diff --git a/.gitignore b/.gitignore index 8884eec..802f8fb 100644 --- a/.gitignore +++ b/.gitignore @@ -8,11 +8,4 @@ /examples.du /examples.ud -/svelte.txt -/svelte23.txt -/rust.txt -/rust23.txt -/seph.txt -/seph23.txt -/automerge.txt -/automerge23.txt +/out diff --git a/automerge_gap.txt b/automerge_gap.txt deleted file mode 100644 index 54f958b..0000000 --- a/automerge_gap.txt +++ /dev/null @@ -1 +0,0 @@ -'''''''''''''''''''''''''''''''''''c'''''''''n''''''''''''''''''''''''''''''''''''}'l'r'u'{'}'s'n'e'h'p'y'h'{'e'g'a'k'c'a'P'o'T's'n'o'i't'p'O's's'a'P''n'''''''''%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'r'u'{''''''''''''''''''''''}'f'e'r'r'e'p'y'h'{'e'g'a'k'c'a'p'e's'u'''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''s'''''n'''''e'''''h'''''p'''''y'''''h'''''{'''''e'''g'a'k'c'a'P'o'T's'n'o'i't'p'O's's'a'P''n''a'r't'E'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'f'e'r'r'e'p'y'h'{'e'g'a'k'c'a'p'e's'u''n'''''''''''''''''''''''''''}'l'r'u'{']'s'n'e'h'p'y'h'['e'g'a'k'c'a'p'e's'u''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''g'''''r'''''o'''''.'''''v'''''i'''''x'''''r'''''a''''' '''''.'''''g'''.'e'(' 's'p'i'v'd' 'g'n'i's'u' 'n'e'h'w' 'g'n'i'k'a'e'r'b' 'e'n'i'l' 'L'R'U' 'x'i'F' '%' '}'l'r'u'k'a'e'r'b'{']'s'k'a'e'r'b'n'e'h'p'y'h'['e'g'a'k'c'a'p'e's'u''n'E'E'I'''''''''''''''o's'p'm'o'c','l'a'n'r'u'o'j',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'s'n'e'h'p'y'h'[''''''}'l'r'u'{'e'g'a'k'c'a'p'e's'u''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%'''''''''''''''%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'n'o'i't'i'n'i'f'e'D'{'}'n'o'i't'i'n'i'f'e'd'{'m'e'r'o'e'h't'w'e'''''''''''''''''''''''''''''''''''''''}'m'e'r'o'e'h'T'{'}'m'h't'-'e'c'n'e'g'r'e'v'n'o'c'{'*'m'e'r'o'e'h't'w'e'n''n''n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''x''''''''''''''''x'i'd'n'e'p'p'a'e'd'u'l'c'n'i'''i'''''d'''''n'''''e'''''p'''p'a'e'd'u'l'c'n'i'''''''''''''''''''''''''''''''''''''''}'a'''''e'u'r't'''m'''''m'''''e'L'{']'m'e'r'o'e'h't'['}'a'm'm'e'l'{'m'e'r'o'e'h't'w'e'n''n'}'m'e'r'o'e'h'T'{'}'m'e'r'o'e'h't'{'m'e'r'o'e'h't'w'e'n'''n'n'}'m'h't's'm'a'{'e'g'a'''''e's'l'a'f''''''k'''''c'a'p'e's'u''n's't'n'e'm'n'o'r'i'v'n'e' 'm'e'r'o'e'h'T' '%'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'T'D'R'C' 'r'o' 'e'p'y't'a't'a'd' 'd'e't'a'c'i'l'p'e'r' 'e'e'r'f'-'t'c'i'l'f'n'o'c' 'a'(' ''''''''''''''''''''''''''''''''''''''b'b'h't'a'm' '%' '}'b'm'y's's'm'a'''''''''' 's'k'r'o'w'''''''''''''''''''''''''''''''-'''''e'u'r't'''t'''''e'''''n''{'e'g'a'k'c'a'p'''''e'''''s'''''u''''''''n''''''''''''''''''''n'n'a'''''''''''''''''''''d'r'o'f's'''''''''''''''''''''.'R''''''''''''''''''''''''e'h't' 'h't'i'w' 'e'r'a' 'd'r'o'f's'e'r'e'B' '''''''B' '.'A' 'd'n'a' '''n'n'a'm'p'p'e'l'K' '.'M'''''''''''''''''''''''''''''.''''k''}'u'.'c'a'.'m'a'c'.'l'c'@'3'3'b'r'a'{'l'r'u'' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y''''''''''','e'g'd'i'r'b'm''''''''''b'm'n'a'C' ''r'o't'a'r'o'b'a'L' 'r'e't'u'p'm'o'C' ''''''''''''''''''''''''''''''''''''''''''''''''}'k'u'.'c'a'.'m'a'c'.'l'c'@'8'2'4'k'm'{'l'r'u'' ':'l'i'a'm'E'n'''t'c'e't'o'r'p''''''.'K'U' ','e'g'd'i'r'b'm'a'C' 'f'o' 'y't'i's'r'e'v'i'n'U' ','y'r'o't'a'r'o'b'a'L' 'r'e't'u'p'm'o'C''''''e'''''r'''''e'''''B''''' '''''.'''''R''''' '''''r'''''i'''''a'''''t'''''s'''''a'''l'''m'''''p'''''p'''''e'l'K' 'n'i't'r'a'M''''''''''''''''''t'''''n'''''e'''''m'n'o'r'i'v'n'''''''v'n'e' 'n'g'i'l'a'''''''''s's'e'r'p'm'o'c'o'''''' '''''%'''''''''''''''''''''''''''e't'i'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o' 't'n'e'm'y'o'l'p'e'd''''''''''p'e'c'''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'''''t'''''i'''''v'''''i'''''t'''''c'''''e'''''n'''''n'''''o'''''c''''' '''''k'''''r'''''o'''''w'''''t'''''e'''''n''''' '''''r'''''o'''''o'''''p''''' '''''h'''''t'''''i'''''w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''d'''''o'''''i'''''r'''''e'''''p''''' '''''r'''''e'''''f'''''f'''''u'''''s''''' '''''t'''''a'''''h'''''t' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'r'o'f' 'e'l'b'a't'i'u's' 't''''''' 's'i' 'g'n'i'k'a'm' '''''''''''''''''''''''''''','y'l'r'a'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l's'u'o'e'n'a't'l'u'm'i'''s'''''t'i'''''''''''''''''''','e'n'o'r'p'-'r'o'r'r'e' 'd'n'a' 'd'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'a'l'e'd' 'l'a'm'i'n'i'm' 'h't'i'w' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 's'e'i'p'o'c' '''s'r'o't'a'r'o'b'a'l'l'o'c' 'r'e'h't'o' 'e'h't' 'n'o' 'd'e't'c'e'l'f'e'r'''''''''''''''''''''''''''''''z'i'n'o'r'h'c'n'y's'''''''n'o's'r'e'p' 'h'c'a'e'''''''''''''''''''''''''s'r'e'p' 'e'n'o' 'h't'i'w' '''''''''''''''''''''''''''''s'i''''''''''''''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''n'''''o''''' '''''k'''r'o'w' 'o''''''''''''''''''''''''''''''''''''''''''''''a'm' 's't'i'd'e' ','e'c'i'v'e'd' 'n'w'o' 'r'i'e'h't' 's'e's'u' 'n'o's'r'e'p' 'h'c'a'e' 'f'i''t' 'e'l'p'o'e'p' 'l'a'r'e''' ';'''v'''''e'''s' 's'e'r'i'u'q'e'r' 'n'e't'f'o' 'k'r'o'w' 'e'v'''i'''m'i'S'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'i' '''}'z'k'i''''''''''''D''''M''''''f'o' 'g'n'i't'i'd'e' 'e'v'i''''''t'''''{'''''e'''''g'''''a'''''k'''''c'''''a'p'e's'u''n'''' 'e'r'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'s'w'''o'''''r'''''r'''''a'''''{'''''y'''''r'''''a'''''r'''''b'''''i'''''l'''''z'''''k'''''i'''''t'''''e'''''s'''''u''''''''n'''''}'''''z'''''k'''''i'''''t'''''{'''''e'''''g'''''a'''''k'''''c'''''a'''''p'''''e'''''s'''''u''''''''''''''''''''n'''''''''''''''''s'''''''''''''''''m'''''''''''''''''a'''''''''''''''''r'''''''''''''''''g'''''''''''''''''a'''''''''''''''''i'''''''''''''''''D''''''''''''''''' '''''''''''''''''%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'b' 'd'l'u'o'h's' 's'c'i't'n'a'm'e's' 'e'h't' 't'a'h'w' 'r'a'e'l'c'n'u' 's'i' 't'i' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'.'e'r'e'h' 's'e'o'g' 'n''''''''''''' 't'c'a'r''''''''''''''''s'd'r'o'w' '0'0'2'-'0'0'1' ':'''t's'b'a'''''''''''' 't'i'm'i'l' 'd'r'o'w' '%'n'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'''''w'''''d'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a'n'o'i't'a'r'e'p'O'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''?')'g'n'i'r'e'd'r'o' 'h't'i'w' 's'''' '''''''''''''w' 's's'e's's'e'm' 'C''''h'c'R''''i'h'w'(' 's'e'c'a'f'r'e't'n'i' 'e'l'p'i't'l'u'm' 'e's'u' 'o's'l'a' 'd'n'a' 'y't'i'v'i't'c''''t'e'n'n'o'c's'i'd' 'f'o' 's'd'o'i'r'e'p' 'r'e'f'f'''''''p'p'u's'''''''''''''''''''s' 'o's'l'a' 'h'c'i'h''''''''''''' 'h'c'i'w' 's'm'e't's'y's' ''''''''''''''''''''''''''''''''''''''''''' 'e'v'i't'a'r'o'b'a'l'l'o'c''''''''''o'c'i'e'l'i'b'o'm' 'r'o'f' 'l'u'f'e's'u' 'y'l'r'a'l'u'c'i't'r'a'p' 's'i' 's'i'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'r'o'p'p'u's' 'd'l'u'o'h's' 'e'w' 't'a's''h't''''''''''m'o's' 'e'r'e'h' 'n'o'i't'n'e'm' 'O'D'O'T'%'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'.'.'e'v'i't'a'r'o'b'a'l'l'o'c' 'n'e't'f'o' 'e'r'a' 's'r'a'd'n'e'l'a'c' 'd'n'''''''d'j'a''''''''''''' 't'e'y' ','e'c'i'v'e'''''''''' 's't'r'o'p'p'u's'''d''''' '''''r'''''i'''''e'''''h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'n'e'r'r'u'c'n'o'c'''''''''''''''''''''''e'W''''''''''''''''','e'l'g'n'i's' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'e'd'o'm' 'r'u'o' 'o't'n'i' ''''''''''''''''''''''' 'a'(' 'm'i's'n''i'''a'h'')'c'e'm' 'l'a'r'e'n'e'g' 'a' 's'e'c'u'''''''''''''''''''''''''''''''''''.'T''''''e'''''s'i'h't'''r''''''''''''''''''','''''s'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'}'n'u'1'1'0'2':'o'r'i'p'a'h'S'{'e't'i'c''~'}'y'c'n'e't's'i's'n'o'c' 'l'a'u't'n'e'v'e' 'g'n'o'r't's'{'h'p'm'e'' 's'a' 'n'w'o'n'k' 't'n'e'm'e'r'i'u'q'e'r' 'a'(' 's'a'b' 't'n'e't's'i's'''n'''''''''''''''''''g'n'i'n'i'a'''''''''''''''''''''''''''''r'''' 'a'i'v'''C''''''''''''''''''''t'u'p'n'i' 'r'e's'u' 'r'e'h't'r'u'f''''''o''''' '''''s'''''n'''''a'''''e'm' 'c'i't'a'm'm'a'r'g'o'r'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''c'i't'a'm'm'a'r'g'o'r'p'(' '''''''''''''''''''s'''''n'''''a'''''e'''''m''''' '''''l'''''a'''''u'''''n'''''a'''''m''''' '''''r'''''o' 'c'i't'a'm'o't'u'a' 'h'''' 'g'u'o'r'h't''''''m'''''e'''''r''''' '''''y'''''n'''''a''''' '''''''''''o'''''''''''''''''''''''''''c'''''''''''''''''''''''''''''''''''''''''''''''h'c'i'h'w' 'n'o' 'e'r'u't'c'u''''''''''''''''s't'c'i'l'f'n'','o'c' 'h'c'','u's'''''''''''''''''''''u't'c'r't's' 'a' 's'e'd'i'v''''i'o'r'p' 'n'e'h't''''''''''''''''u'''''t'''''c'''''u'''''r'''''t'''''s''''' '''''a'''''t'''''a'''''d''''' '''''N'''''O'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'c'i't'n'a'm'e's' 'r'i'e'h't' 'n'o' 'g'n'i'd'n'e'p'e'd' 'y'l'l'a'u'n'a'm' 'r'o' 'y'l'l'a'c'i't'a''''t'm'o''''h't'u'a' 'r'e'h't'i'e' 'e'v'l'o's'e'r' 'n'e'h't' 'n'a'c' 's'n'o'i't'a'c'i'l'p'p'a' 'h'c'i'h'w' ''''''''''''''''''''''''' 'h'c'i'h'w' 's'm'''''''m's'i's'n'a'h'c''''t'e'm'''S''''''''''a'J''''J' 'e'h't' 'n'i' ''''''''''''''''''''''''''''''''''''''' 'r'o'f' 'n'o'i't'c'a'r't's'b'a' 'l'a'r'e'n'e'g' 'a' 'g'n'i'd'i'v'o'r'p' ','s'e'd'o''''d'n' 'd'o'r't'n'i''''''''''''''''''''''''''''''''''''h''''s'e's'u''''''''''''''''''''''W'''''''''''''''a' 's'e'c'u'd''''''''f'a'e'l' 'o't' ''o'r't'n'i''''''''''''''''''''''''''''' 's'e't'a'd'p'''''''p'd'u' 'g'n'i''''''''''''''''''''''''c'''''''''''a'o'r'p'p''T'''a' ''''''' 'a'r'u'O' '.'e'r'u't'c'u'r't's' 'a't'a'd' 'N'O'S'J' 'a' 'o't'n'i' 's'n'o'i't'a'c'i'f''''''''''''''''''''''''''''''''''''''''''''''y'g'o'l'o'p'o't' 'k'r'o'w't'e'n' 'y'n'a' 'n'o' 'd'e'y'o'l'p'e'd' 'e'b' 'n'a'c' 't'a'h't' 'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'f'o''.''' '''e'c'n'e'u'q'e's' 'y'n'a' 'r'e't'f'a' ''''''''''''''''''''''''''''''''w'o'h's' 'o't' 'm'e'r'o'e'h't' 'a' '''''''''''''''''''''''''''''''''''''''''''''''t'n'e'm'e'r'i'u'q'e'r' 's'i'h't' 's'e'i'f's'i't'a's' 'm'h't'i'r'o'g'l'a' 'r'u'o' 't'a'h't' 'e'v'o'r'p' 'e'w' '' 'l'l'a''''''''''''y'l'l'a'u't'n'e'v'e' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''e'k'1'1'0'2':'i'd'h'e'M',''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'p'o' 'f'o' 't'e's' 'e'm'a's' 'e'h't' 'd'e's's'e'c'o'r'p' 'e'v'a'h' 't'a'h't' 's'a'c'i'l'p'e'r' 'o'w't' 'y'n'a' ','y'l'l'a'm'r'o'f' 'e'r'o'm' 'r'o' ','e't'a't's' 'e'm'a's' 'e'h't' 's'd'r'a'w'o't' 'e'g'r'e'v'n'o'c' 's'a'c'i'l'p'e'r' 't'a'h't' 's'i' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'f'o' 't'n'e'm'e'r'i'u'q'e'r' 'y'e'k' 'A'' '''''''''''''''''''''''''''''''''''''''''''''''''''.'''' 'x'i'd'n'e'p'p'a' 'e'h't' 'd'n'a' '}'e'c'n'e'g'r'e'v'n'o'c':'c'e's'{'f'e'r''~'n'o'i't'c'e'S' 'n'I'n'n''d'o'm' 'f'o' 'g'n'i'g'r'e''''''''''''''''''''''''''x'e'l'p'm'o'c' 'e'r'o'm' 'r'u'o'f' 'e'b'i'r'c's'e'd''''''m''''' '''''c'''''i'''''t'''''''''''''''''''''''''''''''r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'g'n'i's'u' 't'u'o'h't'i'w' '''''''''''''a'''''m'''''o'''''t'''''u'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''i'''''g'''''r'''e'm' 'e'h't''' '''''s'''''t'''''r'''''o'''''p'p'u's''''s' 'y'l'l'a'c'i'p'y't' '''''''''''''''''''''s't'n'a'p'i'c'''''i'''''t'''''r'''''a'''''p''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'c'i'l'f'n'o'c' 'l'a'i't'n'e't'o'p' 'd'r'o'c''''''m'u'r'o'u'q''''''''''''''''''e'r' 'o't' 'r'e't's'i'g'''''''g's'e'r' 'e'u'l'''''''e'l'a'v'-'i't'l'u'm' 'a' 'e'r'i'u'q'e'r' 'y'a'm''''''''''''y'n'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'n'o' 'y'n'a' 't'a' 'e'n'i'l'f'f'o' 'e'''''''''''''''''''''''''''''t''' ','s'm'u'r'o'u'q' '''''t'''''u'''o'h't'i'W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' 'm'u'r'o'u'q' 'a' 'h'c'a'e'r' 'o't' '''e'''''l'''g'g'u'r't's'''''r'e't's'''''''e't'i'g'e'r' 'e'u'l'a''''a'v'-'i't'l'u'm' 'a' 'f'o' 'e's'u' 'e'h't' 's'e'r'i'u'q'e'r' 'h'c'a'','o'r'p'p'a' 'r'u'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 't'r'o'p'p'u's'''''''''''''''''''''''''''''''''''''''''''''''''''''''t'r'o'p'p'u's' 'o't' 'd'e'e'n' 'e'w' 's'e's'a'c' 'e'm'o's' 'n'i' ','r'e't'a'l' 'e'e's' 'l'l'a'h's' 'e'w' 's'A' ''''''' 'i''''t''''' '''''s'''''s'''''o'''''r'''''c'a' 'd'e''T'''''''','''w'''''d'''''t'''''a'''''c'''''i'''''l''''''''''''''''''''''''''s'a' 'l'l'e'w' 's'a''''''''''''d'''n'a'''r'o'''''','''y't'i'''''l'''''i'''''b'''''a'z'i'l'a'''T' '.''''''i'''''r'''''e'''''s''''' ''''''''''p'''''e'''''''r''''''''''''''''' ''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-'l'l'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''c'''''i'''''''''''''''''v''''''''''''''''''''''''''''''''''''''''''''y'''''t'''''i'''''l'''''i'''''b'''''a'''''l'''''i'''''a'''''v'''''a''''' '''''''''''''''''e'''''d''''' '''''r'''''i''''''''''''''r'''''e'''''h'''''t''''' '''''s'''''s'''''o'''''r'''''c'''''a''''' '''''d'''''e'''''g'''''r'''''e'''''m''''' '''''r'''''e'''''s'''''u''''' '''''e'''''l'''''g'''''n'''''i'''''s''''' '''''a''''' '''''r'''''o'''''f''''' ''''''''''m'h't'i'r'o'g'l'a'''''''''''''''e'''''''''''r'''''a''''' '''''s't'n'e'm'u'c'o'd' 't'x'e't' 'e'm'o's' '''o't''':'e'''''''e'''''''e'm' 'o't' 'y'''m'''''o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 'd'a'e'h'''y'l'r''d'''''''e''''''e'''v'o' 'a't'a'd'a't'e'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'n'o'i't'n'e'm'e'r'o'f'a''''''''''''''''''''''''''''''''''r'i'e'h't''''''''''s't'i' 'f'''''a' 's'i'''o''''''' 'h'c'a'e'''''''''''g'n'i't's'''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'p'a'm' 'd'n'a' 's't's'i'l' 'T'D'R'C' 'r'o'f' ''x'e' ''''''''''''''''''s'm'h't'i'r'o'g'l'a' 'e's'e'h't' 'f'o' 'l'l'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'l'o'c'o't'o'r'p' 'A'G'R' 'e'h't' 'f'o' 'f'o'o'r'p' 's's'e'n't'c'e'r'r'o'c' 'a' 'e'd'i'v'o'r'p' 'd'n'a' ','s't's'i'l' 'd'e'r'e'd'r'o' 'f'o' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'f'o' 'm'e'l'b'o'r'p' 'e'h't''''''''''''''''''''''''' 'e'z'y'l'a'n'a' 'r'e'h't'r'u'f' '}'h'k'6'1'0'2':'a'y'i't't'A'{'e't'i'c''~'.'l'a' 't'e' 'a'y'i't't'A' '''''n'' 'a''e'h'w'''t''''s'''''''''''''''o'''''h''''o'c'i'd' 'e's'l'a'f''''c' 'a' 'e'k'i'l' 's'm'e'e's' 's'i'h'T' '''O'D'O'T''n''''''''''''''''''s'a' 'l'l'e'w' 's'a' 's'n'o'i't'a'c'i'l'p'p'a' 'e's'e'h't' 'h't'i'w' ''''''''''''''''''''''''''e'''''''''''''''''''''''''''''''n'''''.'''''e'''''l'''''b'''''i'''''s'''''s'''''o'''''p''''' '''''r'''''e'''''v'''''e'''''n''''''''''''''v'''''e'''''h'''''w''''' '''''d'''''e'''''d'''''i'''''o'''''v'''''a''''''b' 'd'l''''''''''''''''''''' ','d'n'a'h' 'r'e'h't'o' 'e'h't' 'n'O'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''A''' '''''''''''''s'p'a'm' 'd'e't's'e'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s's'e'n'e'''''''''''''''''''.'N'O'S'J' 'f'o' 'y't'i'v'i's's'e'r'p'x'e' 'e'h't' 'e'r'u't'p'a'c' 't'o'n' 's'e'o'd' 'e'r'u't'c'u'r't's' 'a'''''''''''a't'a'd' 'p''''''''''''B'D'h'c'u'o'C' 'd'n'a' ''a'm' 'a' 't'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'''','e'c'1'0'0'2':'y'e's'm'a'R','h'j'8'9'9'1':'m'a'i'n'a'm'a'r'b'u's'a'l'a'B'{'e't'i'c''~'n'o'i't'a'z'i'n'o'r'h'c'n'y's' 'm'e't's'y's'e'l'i'f' 'f'o' 't'x'e't'n'o'c' 'e'h't' 'n'i' 'd'e'i'd'u't's' 'n'e'e'b' 's'a'h' 's'e'r'u't'c'u'r't's' 'e'e'r't' 'n'o' 's'e't'a'd'p'u' 't'n'e'r'r'u'c'n'o'c' 'g'n'i'v'l'o's'e'R'n'n'o'h't'i'w' '-'-'~'''''''''''''''''''''''''''''''''''''''''''''''''''' 'h'c'u's' ','}'l'm'x'-'n'o's'j':'c'e's'{'f'e'r''~'n'o'i't'c'e'S' 'n'i' '''''''''''''''''''''''''''''''''''''''d'e's's'u'c's'i'd' 's'A' '.'s't's'i'l' 'd'e'r'e'd'r'o' 'd'e't's'e'n' 'f'o' 'e'e'r't' 'a' ','s'i' 't'a'h't' '-'-'~'s't'n'e'm'u'c'o'd' 'L'M'X' 'f'o' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 't'r'o'p'p'u's' 'o't' '}'x'h'0'1'0'2':'s's'i'e'W'{'e't'i'c''~'t'o'o'g'o'L' 'e'z'i'l'a'r'e'n'e'g' '}'h'i'0'1'0'2':'n'i't'r'a'M'{'e't'i'c''~'.'l'a' 't'e' 'n'i't'r'a'M'n'n''u'o'h's' 'e'r'o'f'e'r'e'h't' 'd'n'a' ''''i'''i'''''''''''''''''''''''''''''''''''''''''''''''''' '''W'W'L''''''''''''e'l'p'm'a'x'e' 'r'o'f''''''''''''''''''y'''''''''''''''''l'''''''''''''''''r'''''''''''''''''a'''''''''''''''''l'''''''''''''''''u'''''''''''c'''''i'''''t'''''r'''''a'''''p''''' '''''s'''''i''''' '''''n'''''o'''''i'''''t'''''u'l'o's' 'r'u'O''''''''''''''t'I'''''''''''''''''''''''''''''g'n'i'g'r'e'm' 'e'h'T''''''''''''''''''''''''' 'g'n'i'g'r'e'M' ''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''u'o'y'a'B''''''''''''''''''''?'t'n'i'o'p' 's'i'h't' 't'a' 'y't'e'l''''''''''''''''''g''''''''''''''''''n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'y'b''''''''''''''''''''n'i'''''''''''''''''''''''''''D''''S''''''''''''''''''''''''''a' 'y't'l'e''''l't'b'u's''''c' 's'i'h't' 'y''''u'e'v'''''''u'o'y'a'B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a't'a'd''''''''''''''''''''''''''''''''''''''''''''''''''''E'''''''E'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'u'c'e'x'e'''']'p'[' 'l'a'i't'n''''''}'}''e'u'q'e's' 'n'i''''''''''''''''''' 'r'e'd'n'u' 'e's'i'r'a' 't'o'n' 'o'd' 't'a'h't' 's'e'r'u't'c'u'r't's' 'd'e't's'e'n' 't'n'e'r'r'u'c'n'o'c' 'f'o' 's'e'i't'i'r'a'i'l'u'c'e'p' 'e'm'o's' 'e't'a'r't's'u'l'l'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's'e'l'p'm'a'x'e' 'e'm'o's' 'e'v'i'g' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'h't'4'1'0'2':'s'i'l'i'a'B'{'e't'i'c''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('t'e'g')''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('t'e'g')''''.'''c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e''''''''''''''n'e'h'w'''''''''''''''''''''''''''''''''''''''''''''''''e's'i'r'a' 's'e'i's''t'l'u'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'h'g'i'''''''i'g'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i's'i'c'e'd' 'n'g'i's'e'd' 'r'u'o' 'r'o'f' 'e'l'a'n'o'i't'a'r' 'e'h't' 'n'i'a'l'p'x'e' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'h't'i'r'o'g'l'a' 'r'u'o' 'y'b''''i' 'd'e'l'd'n'a'h' 'e'r'a' 'y'e'h't' 'w'o'h' 'e't'a'r't's'n'o'm'e'd' 'd'n'a''''''''''''''',''''''''''''''''''''''''''''''''''''e'r'a' '''''''''''''''r'u'c'c'o' 'n'a'c' 't'a'h't' 's'n'o'i't'a'u't'i's' ''''''''''''''''''''''''' 'w'o'h's'''''''''''''''''''''''''''''''e't'a'r't's'u'l'l'i' 'e'w' 's'e'l'p'm'a'x'e' 'g'n'i'w'o'l'l'o'f' 'e''''''''''''''''l'o'f'e' 'h't' 'n'I'' '.'s'e'r'u't'c'u'r't's' 'a't'a'd' 'd'e't's'e'n' 'd'n'a' 'y'c'n'e'r'r'u'c'n'o'c'i'f'f'i'd' ',''''''''''''''''' ','r'e'v'e'w'o'H' ''t'a'l'e'r':'c'e's''''''''''''''.')'}'{'f'e'r''~'n'o'i't'c'e'S' 'e'e's'(' 'e'r'u't'a'r'e't'i'l' 'e'h't' 'n'i' 'd'e'r'o'l'p'x'e' 'y'l'h'g'u'o'r'o'h't' 'n'e'e'b' 'e'v'a'h' 'e'r'u't'c'u'r't's' 'a't'a'd' 't's'i'l' 'r'o' 'p'a'm' 't'a'l'f' 'a' 'g'n'i't'i'd'e' 'y'l't'n'e'r'r'u'c'n'o'c' 'f'o' 's'c'i't'n'a'm'e's' 'e'h't' 'd'n'a' ','n'w'o'n'k'-'l'l'e'w' 'e'r'a' 'e'r'u't'c'u'r't's' 'a't'a'd' 'N'O'S'J' 'a' 'g'n'i't'i'd'e' 'f'o' 's'c'i't'n'a'm'e's' 'l'a'i't'n'e'u'q'e's' 'e'h'T''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'e'e'w't'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c'i't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'p'[''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.')'}'t'i'd'e'-'t'x'e't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'o's'l'a' 'e'e's'(' 'g'n'i'r't's' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'a' 'r'o'f' 's'r'e't'c'a'r'a'h'c' 'f'o' 't's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'r'o' ','d'e't'n'e'm'e'r'c'e'd' 'd'n'a' 'd'e't'n'e'm'e'r'c'n'i' 'e'b' 'y'l'n'o' 'n'a'c' 't'a'h't' 'r'e'b'm'u'n' 'a' 'r'o'f' 'T'D'R'C' 'r'e't'n''''t'u'o'c' 'a' ','e'l'p'm'a'x'e' 'r'o'f' ':'e'c'a'l'p' 's't'i' 'n'i' 'd'e't'u't'i't's'b'u's' 'e'b' 'd'l'u'o'c' 's'T'D'R'C' 'r'e'h't'O' '.'d'e'n'i'f'e'd' 's'i' 'n'o'i't'c'n'u'f'''i'a'm'o't'u'a''''''''''''''''''''''' 'e'g'r'e'm' 'r'e'h't'o' 'o'n' 'h'c'i'h'w' 'r'o'f' 's'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' 'r'o'f' 'y'l'n'o' 't'i' 'e's'u' 'e'W''''''''''''' 's't'I' '.'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'y'n'a' 'm'r'o'f'r'e'p' 'y'l'l'a'u't'c'a' 't'o'n' 's'e'o'd' 't'i' 'e'c'n'i's' ','T'D'R'C' 'e'v'i's's'e'r'p'm'i' 'n'a' 'y'l'd'r'a'h' 's'i' 'r'e't's'i'g'e'r' 'e'u'l'a'v'-''''='i't'l'u'm' 'A'n'n'''b''n'n'' 'n'o'i't'c'a'r'e't'n'i' 'e'h't' 'o't' 'e'u'd' 's'i' 'a't'a'd' 'N'O'S'J' 'r'o'f' 'T'D'R'C'''''''''''''''' 'N'O'S'J' 'a' 'g'n'i'n'i'f'e'd' 'f'o' 'y't'l'u'c'i'f'f'i'd' 'e'h'T'''''''''''''''''''''''''''''''''''''''.'a'c'''''i'''''l'''''p'''''e'''''r''''' '''''e'''''''''''''''''n'''''''''''''''''o''''''''''''''''' '''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''e'''''r'''''t''''''''''' ''''''''''''''''''''''''''$'''''p'''''$''''' ''''''''e'''''''''''h'''''t''''' '''''f'''''o''''' '''''s'''''l'''''e'''''v'''''e'''''l''''' '''''t'''''''''''''''''''''''''''''''''''''' '''''$'''''q'''''$''''' '''''a'''''c'''''i'''''l'''''p'''''e'''''r''''''''n'''''e'''''r'''''e'''''f'''''f'''''''''''''''''i'''''''''''''''''d''''''''''''''''' '''''''''''''''''t'''''''''''''''''a''''''''''''''''' '''''''''''''''''s'''''''''''t'''''i'''''d'''''e''''' '''''t'''''n'''''e'''''r'''''r'''''u'''''c'''''n'''''o'''''c''''' '''''f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'''''''''''''r'e't'F'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''e'''''v'''''o'''''m'''''e'''''r'''''-'''''p'''''a'''''m''''':'''''g'''''i'''''f'''''{'''''f'''''e'''''r''''''''~'''''e'''''r'''''u'''''g'''''i'''''F''''' '''''n'''''i''''' '''''n'''''w'''''o'''''h'''''s''''' '''''s'''''a''''' ''''','''''''''''''':'''''''''''''''''s'''''''''''''''''e'''''''''''''''''g'''''''''''''''''n'''''''''''''''''a'''''''''''''''''h'''''''''''''''''c''''''''''''''''' '''''''''''''''''l'''''''''''''''''l'''''''''''''''''a''''''''''''''''' '''''''''''''''''e'''''''''''''''''v'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''e'''''''''''''''''r'''''''''''''''''p''''''''''''''''' '''''''''''''''''t'''''''''''''''''a'''''''''''''''''h'''''''''''''''''t''''''''''''''' '''''s''''' '''s'i''''''''''''']'p'['t'a'm''''''''''''''''''''''''''''c'''''i'''''t'''''n'''''a'''''m'''e's' 'e'g'r'e'm''''''''''m' 'a' 'e'n'i'f'e'd' 'e'w' ','d'a'e't's'n'I' '.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'o't' 'e'u'd' 't's'o'l' 'e'b' 'd'l'u'o'h's' 't'u'p'n'i' 'r'e's'u' 'o'n''''''''''''''''''' 's't'i'd'e' 't'a'h't'''''''''' 'f'o' 't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' '''''r'e't'f'A''d'l'u'o'w' 'r'o'i'v'a'h'e'b' 't'a'h't' ','r'e'v'e'w'o'H' '.')'s'r'o'l'o'c' 'f'o' 'p'a'm' 'e'r'i't'n'e' 'e'h't' 'f'o' 't'u'o'-'g'n'i'k'n'a'l'b' 'e'h't' 'y'b' 'n'e'd'd'i'r'r'e'v'o' 'e'b' 'd'l'u'o'w' 't'i' 'e'c'n'i's' ','d'e'd'r'a'c's'i'd' 'e'b' 'd'l'u'o'w' '''''d'e'r'`'`' 'f'o' 'n'o'i't'i'd'd'a' 'e'h't' 'n'a'e'm' 'd'l'u'o'w' 't'a'h't' ','e's'a'c' 's'i'h't' 'n'i'(' 'e'e'r't'b'u's' 't'a'h't' 'n'i'h't'i'w' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'e'd'i'r'r'e'v'o' 's'y'a'w'l'a' 'e'e'r't' 'a' 'f'o' 's'l'e'v'e'l' 'r'e'h'g'i'h' 't'a' 's't'i'd'e' 't'e'l' 'o't' 'e'b' 'd'l'u'o'w' 't'c'i'l'f'n'o'c' 'a' 'h'c'u's' 'g'n'i'l'd'n'a'h' 'f'o' 'y'a'w' 'e'l'b'i's's'o'p' 'e'n'O'n'n'.'e'e'r't' 'e'h't' 'f'o' 'l'e'v'e'l' 'r'e'h'g'i'h' 'a' 't'a' 's'r'u'c'c'o' 's'r'o'l'o'c' 'f'o' 'p'a'm' 'e'h't' 'f'o' 'l'a'v'o'm'e'r' 'e'h't' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'l'i'h'w' ','e'e'r't' 'e'h't' 'f'o' 'l'e'v'e'l' 'r'e'w'o'l' 'a' 't'a' 's'r'u'c'c'o' '''''d'e'r'`'`' 'f'o' 'n'o'i't'i'd'd'a' 'e'h't' 't'a'h't' 's'i' 'e'l'p'm'a'x'e' 's'i'h't' 'n'i' 'y't'l'u'c'i'f'f'i'd' 'e'h'T' '''n'n'.'y'e'k' 't'a'h't' 'o't' 'p'a'm' 'y't'p'm'e' 'w'e'n' 'a' 'n'g'i's's'a' 'n'e'h't' 'd'n'a' ','p'a'm' 'r'e't'u'o' 'e'h't' 'm'o'r'f' '''''s'r'o'l'o'c'`'`' 'y'e'k' 'e'r'i't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'y''''''''''''j'j'j'j''w'3'1'0'2':'n'w'o'r'B','s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~'k'a'i'R' 'n'i' 's'p'a'm' 'T'D'R'C' 'f'o' 't'a'h't' 's'e'h'c't'a'm'''''''''' 's'i' 'e'n'i'f'e'd' 'e'w' 'r'o'i'v'a'h'e'b' 'e'h'T''n'n'n'e' 'e'h't' 'e'v'o'm'e'r' 'y'l't'n'e'l'a'v'i'u'q'e' 'd'l'u'o'c' '$'q'$' ',''o' 'e'l'p'm'a'x'e' 'n'a' 's'e'v'i'g' '''o''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'm' 'y't'p'm'e' 'n'a' 'g'n'i'n'g'i's's'a' 'f'o' 'd'a'e't's'n'I' ''''''''''''''('''''t'''''e'''''g''''')''''''.'''d'e'm'r'o'f'r'e'p' 'n'e'e'b' 'e'v'a'''n'n'h' 'y'e'h't' 'r'e't'f'a' 'l'i'a'f' 't'o'n'n'a'c' 's'n'o'i't'a'r'e'p'o' 't'a'h't' 'h'c'u's' 'd'e'n'i'f'e'd' 'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' 'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'t'l'u's'e'r' 'd'e'g'r'e'm' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' ';'''''c'`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'b' ''''b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'p'a' 'e'h'T' '.'e'c'a'p's'e'm'a'n' 'e't'a'r'a'p'e's' 'a' 's't'i'b'a'h'n'i' 'e'p'y't' 'h'c'a'e' 'o's' ',')'y'l'e'v'i't'c'e'p's'e'r' 'e'u'l'a'v' 'r'e't's'i'g'e'r' 'r'o' ','t's'i'l' ','p'a'm' 'a' 'r'o'f' '}'T'g'e'r'{'f's't'x'e't'' 'r'o' ',''''''''''''}'T't's'i'l'''''''e'r'{'f's't'x'e't'' 'r'o' '}'T'p'a'm'{'f's't'x'e't''(' 'n'o'i't'a't'o'n'n'a' 'e'p'y't' 'a' 'h't'i'w' 'y'e'k' 'p'a'm' 'h'c'a'e' 'g'n'i'g'g'a't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'a't' 'e'p'y't' 'a' 'g'n'i'd'd'a' 'y'b' 's'i'h't' 'o'd' 'e'W' '.'y'l'e't'a'r'a'p'e's' 's'e'u'l'a'v' 'h't'o'b' 'e'v'r'e's'e'r'p' 'e'w' 'o's' ','d'e'g'r'e'm' 'e'b' 'y'l'l'u'f'g'n'i'n'a'e'm' 't'o'n'n'a'c' 's''V'''e'p'y't'a't'a'd' 'e's'e'h'T' '.'t's'i'l' 'a' 's't'r'e's'n'i' '$'q'$' 's'a'e'r'e'h'w' ','p'a'm' 'd'e't's'e'n' 'a' 's't'r'e's'n'i' '$'p''''q'$' ':'s'e'u'l'a'v' 's'a' 's'e'p'y't'a't'a'd' 't'n'e'r'e'f'f'i'd' 'h't'i'w' 'o's' 'o'd' 'y'e'h't' 't'u'b' ','y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 't'r'e's'n'i' 'y'l't'n'e'r'r'u'c'n'o'c' 's'a'c'i'l'p'e'r' 'o'w't''''$' 'e'r'e'h'w' ','}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'o'i't'a'u't'i's' 'e'h't' 'f'o' 't'n'a'i'r'a'v' 'a' 's'e't'a'r't's'n'o'm'e'd' '}'h's'a'l'c'-'e'p'y't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F'n'n'.''`' 'd'n'a' '''''a'`'`'''''''a'a' 'n'e'e'w't'e'b' 'd''''''' 'c'e't'r'e's'n'i' 'e'r'a' '''''z'`'`' 'd'n'a' '''''x'`'`' 'h't' 'n'i' 'd'e'v''''';''''''''''''''''''`'`'''''''z'z'r'e's'e'r'p' 'e'r'a' 's'e'g'n'a'h'c' 'l'l'A' ''''''''''''''''''''''''''''''''';''''''''''''''''''''''''''' 'd'n'a' ','d'e't'e'l'e'd' 's'i' '''''b'`'`' ','''''a'`'`' 'e'r'o'f'e'b' 'd'e't'r'e's'n'i' 's'i' '''''y'`'`' '.'s'r'e't'c'a'r'a'h'c' 'f'o' 't's'i'l' 'a' 's'a' 't'n'e'm'u'c'o'd' 'e'h't' 'g'n'i't'a'e'r't' 'y'b''''''''''''''''''''s'o'i'r'a'n'e'c's'''''''''''''''''''''''''s'''''''' 's''a' 'g'n'i's'u' ','''''''''''''''''''''''''}'h's'a'l'c'-'e'p'y't':'g'i'f'{'f'e'r''~'d'n'a' ''d'e't'n'e'm'e'l'p'm'i' 'e'b' 'n'a'c' 'r'o't'i'd'e' 't'x'e't' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'a' 'w'o'h' 's'w'o'h's' '}'t'i'd'e'-'t'x'e't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F'n'n' 's'm'e't'i' '''''''''''''.'r'e'd'r'o' 'e'm'a's' 'e'h't' 'h't'i'w' 'p'u' ''E'''d'n'e' 's'a'c'i'l'p'e'r' 'l'l'a' 't'a'h't' 'd'e'd'i'v'o'r'p' ','''''m'a'h' ','s'g'g'e' ','r'u'o'l'f' ','k'l'i'm'`'`' 'd'n'a' '''''r'u'o'l'f' ','k'l'i'm' ','m'a'h' ','s'g'g'e'`'`' 'n'e'e'w't'e'b' 'e'c'i'o'h'c' 'y'r'a'r't'i'b'r'a' 'n'a' 'e'k'a'm' 'n'a'c' 'm'h't'i'r'o'g'l'a' 'e'h't' 'o's' ','t'l'u's'e'r' 'd'e'g'r'e'm' 'e'h't' 'n'i' 't's'r'i'f' 'r'a'e''''''r'e't'f'A'p'p'a' 'd'l'u'o'h's' 's'm'e't'i' 's'''a'c'i'l'p'e'r' 'h'c'i'h'w' 'n'o' 'n'o'i't'a'm'r'o'f'n'i' 'o'n' 's'i' 'e'r'e'h'T' '.'t'l'u's'e'r' 'd'e'g'r'e'm' 'e'h't' 'n'i' '''''k'l'i'm'`'`' 'r'e't'f'a' 's'r'a'e'p'p'a' '''''r'u'o'l'f'`'`' 'd'n'a' ','''''s'g'g'e'`'`' 'r'e't'f'a' 's'r'a'e'p'p'a' '''''m'a'h'`'`' 'o's' ','a'c'i'l'p'e'r' 'h'c'a'e' 't'a' 'd'e't'r'e's'n'i' 's'm'e't'i' 'f'o' 'y'c'n'e'c'a'j'd'a' 'd'n'a' 'g'n'i'r'e'd'r'o' 'e'h't' 'e'v'r'e's'e'r'p' 'e'W' '.'y'l'l'a'c'i't'a'm'o't'u'a' 'd'e'g'r'e'm' 'e'b' 'n'a'c' 'y'e'h't' 'o's' 'd'n'a' 's't's'i'l' 'e'r'a' 's'e'u'l'a'v' 'h't'o'b' ','}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 't'u'b' ','n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'y'b' 'd'e'v'l'o's'e'r' 'e'b' 'o't' 't'f'e'l' 'e'r'e'w' 'y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 'o't' 's't'n'e'm'n'g'i's's'a' 't'n'e'r'r'u'c'n'o'c' ','}'n'g'i's's'a'-'r'e't's'i'g'e'r':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'f'o' 'e's'a'c' 'e'h't' 'n'I' '.'t's'i'l' 'e'h'''''s'g'g'e'''t'''''''''''r'e't'f'A'' 'o't' 's'm'e't'i' 'd'd'a'''''s'g'g'e''' '''''d'''n'a' ','''''y'r'e'c'''''r'e't'f'A''o'r'g'`'`' ''''''r'e't'f'A'y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 'r'e'd'n'u' 't's'i'l' 'g'n'i'p'p'o'h's' 'w'e'n' 'a' 'e't'a'e'r'c' 'y'l't'n'e'd'n'e'p'e'd'n'i' 'h'c'a'e' '$'q'$' 'd'n'a' '$'p'$' ','e'r'e'H' '.'y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 't'r'e's'n'i' 'y'l't'n'e'r'r'u'c'n'o'c' 'n'a'c' 's'a'c'i'l'p'e'r' 'o'w't' ':'s'p'a'm' 'h't'i'w' 'm'e'l'b'o'r'p' 'r'e'h't'o'n'a' 's'e't'a'r't's'u'l'l'i' '}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F'n'n''a' 's'T'D'R'C' 's'a'e'r'e'h'w' ','s'k'c'a'b'l'l'o'r' 'e'l'd'n'a'h' 'y'l't'i'c'i'l'p'x'e' 'o't' 'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'g'n'i'r'i'u'q'e'r' ','k'c'a'b' 'd'e'l'l'o'r' 'e'b' 'y'a'm' 's'n'o'i't'c'a's'n'a'r't' 'e'v'i't'a't'n'e't' 't'a'h't' 's'i' 'e'd'i's'n'w'o'd' 'e'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'p'['''''''''''''''''' 'h'c'i'h'w' ','t's'a'c'd'a'o'r'b' 'c'i'm'o't'a' 's'e'r'i'u'q'e'r' 't'i' ','r'e'v'e'w'o'H' '.'s'T'D'R'C' 'g'n'i's'u' 'd'e's's'e'r'p'x'e' 'e'b' 't'o'n'n'a'c' 'd'n'a' 'n'o'i't'a'z'i'l'a'i'r'e's' 'e'r'i'u'q'e'r' 'h'c'i'h'w' ','s't'n'i'a'r't's'n'o'c' 's's'e'n'e'u'q'i'n'u' 's'a' 'h'c'u's' 's't'n'a'i'r'a'v'n'i' 'l'a'b'o'l'g' 's's'e'r'p'x'e' 'o't' 'e'l'b'a' 'g'n'i'e'b' 'f'o' 'e'g'a't'n'a'v'd'a' 'e'h't' 's'a'h' 'h'c'a'o'r'p'p'a' 's'i'h'T' 'n'o'c' 'e'w' 'n'a'C' '.')'n'o'i't'n'e'v'r'e't'n'i' 'r'e's'u' 'y'l'b'i's's'o'p' 'd'n'a'(' 's'n'o'i't'u'l'o's' 'c'i'f'i'c'''''''''''''f'i'c'i'e'p's' 'n'o'i't'a'c'i'l'p'p'a' 'e'r'i'u'q'e'r' 'n'e'h't''''''''''e'h't' 'h'c'i'h'w' 's'''''''d'e'r'e't's'i'g'e'r' 'd'e'u'l'a'v'-'i't'l'u'm' 'g'n'i''''t'c'u'd'o'r't'n'i' 'y'b' 's'i'h't' 'o'd' 'e'w' ','s'd'o'm' 't'n'e'r'r'u'c'n'n'o'c' 'e'g'r'e'm' 'y'l'l'a'c'i't'a'm'o't'u'a' 'e'w' 't'a'h't' 'e'''' 'u'r't' 'y'l'l'a'c'i'n'h'c'e''''''''''''''''t' 'e'u'r't' 's'i' 't'i' 'e'l'i'h'w' 'O'D'O'T'%'n''''''''''''''''s'''''e'''''c'''''i'''''v'''''e'''''d'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('t'e'g'.''''''''''''''')''''''''''''''''''''''''''''''''''' 'd'n''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''')'t'n'e'm'e'l'e' 't's'i'l' 't's'r'i'f' 'e'h't' 'e'r'o'f'e'b' 'n'o'i't'i's'o'p' 'l'a'u't'r'i'v' 'a'(' '''''''''''''''''''''''''''h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'i'l' 'a' 'f'o' 'd'a'e'h' 'e'h't' 'g'n'i't'a'c'i'd'n'i' 'r'o's'r'u'c' 'l'a'i'c'e'p's' 'a' 's'i' '}')'0'('x'd'i'.'{'t't't'x'e't'' 'd'n'a' ','1' 'm'o'r'f' 'g'n'i't'r'a't's' 'd'e'x'e'd'n'i' 'e'r'a' 's't's'i'L' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'$'n'$' 'e'h't' 's't'c'e'l''''e'e''''l's' '}')'{'t't't'x'e't''$'n''''''''''''''''''''''e'h't'''''''''''''''''}'n'{'t'i'h't'a'm''$''x'd'i'.'''a''''' ''''''','y't'i'v'''''''''''o't' 'g'n''''''r'e't'f'A'i't'i'r'w'''i'''''''''''''''''''t'''''c''''''''''s'n'g'i's's'a'''''''''e'''''''n'''''n'''''o'''''''''r'e't'f'A''c'''''s'''''i'''''d''' 'f'o' 's'd'o'''''''''i'''''''''''''''''''''''''''''''''''''''''{'h'p'}''n'a'''''''''m''''''''''''''''''''''t'n'e'm'e'l'e' 't's'i'l' 'g'n'i't's'i'x'e'''e'''''''''''''''''''''''''''''''''''''''''''''''''''r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 'r'e't's'i'g'e'r' 'e'h't' 'f'o' 'e'u'l'''a'''''v''''' '''''e'''''h'''''t''''' '''''s'''''t'''''e'''''s''''' ''''''''''''''r'''''''''''''''''''''''''''''''''''e'''''p''''' '''''m'''''o'''''r'''''f''''''''s'g'g'e'''''' '''''''''r'''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'''''''''''''t' '1' 'x'e'd'n'i' 'm'o'r'f' 's'e'v'o'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'f'o' 'e'c'n'e's'e'r'p' 'e'h't' 'n'i' 's'c'i't'n'a'm'e's' 'e'l'b'a'r'i's'e'd' 'g'n'i'v'e'i'h'c'a' 'r'o'f' 'l'u'f'p'l'e'h' 's'i' 'e'r'u't'a'e'f' 's'i'h't' ','r'e't'a'l' 'e'e's' 'l'l'a'h's' 'e'w' 's'A'''''''''''''''' 's'i'h'T' ''''''''.'''''s'g'g'e'`'`' 'r'e't'f'a' 'd'e't'r'e's'n'i'''''''f'a' 's's'e'l'e'h't'r'e'v'e'n'''''''''''''''''''S''''''''''''''''''''''''''''''''''}'s'c'i't'n'a'm'e's':'c'e's'{'l'e'b'a'l''}'s'c'i't'n'a'm'e's' 'l'a'm'r'o'F'{'n'o'i't'c'e's''n'n'' 's'i' '''''k'l'i'm'`'`''''''''''''' 'e'h't' 't'u'b' ','2' 'x'e'd'n'i' 's'a'h' '''''s'g'g'e'`'`' 't'n'e'm'e'l'e' 'e'h't' ','''''e's'e'e'h'c'`'`' 'f'o' 'n'o'i't'r'e's'n'i' 'e'h't' 'r'e't'f'a' ':'x'e'd'n'i' 's't'i' 'y'b' 't'o'n' ','y't'i't'n'e'd'i' 'y'b' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 's'e'i'f'i't'n'e'd'i' '}'s'g'g'e'{'t't't'x'e't''''''''''''''''''''i't'n'e'd'i' '''r'''''o'''''s'''''r'''''u'''''c''''' '''''e'''''h'''''t''''' '''''t'''''a'''''h'''''t''''' '''''e'''''t'''''o'''''N''''' '''''.'''''''''''''''''s'''''g'''''g'''''e'''''`'''''`''''' '''''r'''''e'''''t'''''f'''''a''''' '''''''''''''''''k'''''l'''''i'''''m'''''`'''''`''''' '''''d'''''n'''''a''''' ''''','''''d'''''a'''''e'''''h''''' '''''e'''''h'''''t''''' '''''t'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'$'}'r'u'c'{'t'i'h't'a'm'' '=' ')'x'('p'_'A'$' 't'a'h't' 't'p'e'c'x'e' ','$'p'_'A'$' 's'a' 'e'm'a's' 'e'h't' 's'i' '''''''''''g'n'i'w'o'l'l'o'f' 't'a'h't' 'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'a' 's'e't'o'n'e'd' '$']',''}'r'u'c'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' 'x',''['p'_'A'$' 'n'o'i't'a't'o'n' 'e'h't'(' ''''T' '.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''e'''''s'''''n'''''i''''' '''''s'''''i''''' '''''''''''''''''e'''''s'''''e'''''e'''''h'''''c'''''`'''''`''''' ''''':'''''d'''''e'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''e'''''r'''''a''''' '''''s'''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''e'''''r'''''o'''''m''''' '''''o'''''w'''''t''''' '''''n'''''e'''''h'''''T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'r'e'i'f'i't'n'e'd'i' 'e's'e'''''h'''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''''''''r'o's'r'u'c' 'e'h'T'''''s'r'e'i'f'i't'n'e'd'i' 'e's'e'h't' 'e't'a'r'e'n'e'g' 'o't' 'w'o'h' '}'s't'-'t'r'o'p'm'a'l':'c'e's'{'f'e'r''~'n'o'i't'c'e'S' 'n'i' 's's'u'c's'i'd' 'l'l'i'w' 'e'w'(' 't'n'e'm'e'l'e' 't's'i'l' 's'i'h't' 'd'e't'r'e's'n'i' 't'a'h't' 'n'o'i'''''''''s'a'h' 't'a'h't'''t'''''a'''r'e'p'o' 'e'h't' 'f'o' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'e'h't' 's'i' '$'1'_'}'d'i'{'t'i'h't'a'm''$' 't'a'h't' 'g'n'i'm'u's's'a' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''.'''''''''''''''''s'''''g'''''g'''''e'''''`'''''`''''' '''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''''''''''''''''''d'e's'r'e'v'a'r't' 'g'n'i'e'b' 's'''''i'''''l''''' '''''e'''''h'''''t''''' '''''t'''''a''''' '''''g'''''n'''''i'''''t'''''n'''''''''''''''''''''''''e't'a't's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'p'_'A'$' ' 'a'c'i'l'p'e'r' 'l'a'c'o'l' 'i'''''o'''''p''''' '''''r'''''o'''''s'''''r'''''u'''''c''''' '''''a''''' '''''o'''''t''''' '''''t'''''e'''''s''''' '''''s'''''i''''' '''''}'''''l'''''i'''''a'''''t'''''{'''''t'''''t'''''t'''''x'''''e'''''t'''''''' '''''e'''''l'''''b'''''a'''''i'''''r'''''a'''''v''''' '''''e'''''h'''''t'''''f'''''''''''''''''f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|'''''b'''''r'''''e''''''''s'$''e'l'u'''x'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e't'e'l'e'd' 's'a' 'd'e'k'r'a'm' 'e'r'a' 't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'l'l'a'c'''c'''''c'-'o's''''''''''''''''''')'}'s'e'n'o't's'b'm'o't'{'h'p'm'e'' 'e'm'o'c'e'b' 'y'e'h't'''''''''''''''' 's'i'h't'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i'a'm'''''''''''''''''''''''''''''''''''''''''''''''e'h't'''''''''''''''''''''''''''h'c'i'h'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'h'c'i'h'w''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('''',' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''''''''''s't'n'e'm'e'l'e' 't's'i'l' 's'a' 'm'e'h't' 'g'n'i't'n'u'o'c' 't'o'n' '.'e'.'i' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''x'd'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'm'a's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''x'e'd'n'i' 'e'h't' 'g'n'i't'n'e'm'e'r'c'e'd' 't'u'o'h't'i'w' 't'n'e'm'e'l'e' 't's'i'l' 't'x'e'n' 'e'h't' 'o't' 'g'n'i'v'o'm' 'y'b' 't'e's' '''''''e'c'n'e's'e'r'p' 'y't'p'm'e' 'h't'i'w' 's'''' 't'n'e'm'e'l'e' 't's'i'l' 's'e'l'd'n'a'h' '$'4'_'}'x'd'I'{'c's't'x'e't''$' 'e'l'u'R''''$' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''.')'}'m'e't'i'-'o'd'o't':'g'i'f'{'f'e'r''~'''' 'd'n'a' '}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''~'s'e'r'u'g'i'F' 'n'i' 's'n'o'i't'a'u't'i's' 'e'h't' 'o't' 'g'n'i'd'a'e'l'(' 'n'i'a'g'a' 'y't'p'm'e'-'n'o'n' 'e'm'o'c' 'e'b' 'o't' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'e's'u'a'c' 'n'a'c' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 's'e'c'n'e'r'e'f'e'r' 't'a'h't' 'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'a' ','r'e'v'e'w'o'h' ';'d'e't'e'l'e'd' 's'a' 't'i' 'g'n'i'k'r'a'm' ','t'e's' 'y't'p'm'e' 'e'h't' 'o't' 't'e's' 's'i' 't'e's' 'e'c'n'e's'''''''e'c'e'r'p' 'e'h't' ','d'e't'e'l'e'd' 's'i' 't'n'e'm'e'l'e' 't's'i'l' 'a' 'n'e'h'W' '.'t'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'f'o' 'e'c'n'e't's'i'x'e' 'e'h't' 'd'e't'r'e's's'a' 'e'v'a'h' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'f'o' 't'e's' 'e'h't' 's'i' 't'I' ''''''''''h'T'''''''''''''''''''s' 's'i'h'T' 'a'''''''''''''''''''''''''''''''''''''''.'$'k'$' 'D'I' 'h't'i'w' 't'n'e'm'e'l'e' 't's'i'l' 'h'c'a'e' 'r'o'f' '$')'k'('}'s'e'r'p'{'f's'h't'a'm''$' '}'t'e's' 'e'c'n'e's'e'r'p'{'h'p'm'e'' 'a' 's'n'i'a't'n'o'c' 'e't'a't's' 'l'a'c'o'l' 'e'h't' ','d''''''{'h'p'm'e'''n'e' 's'}''i'h't' 'o'T' '''''''''''''''''''''''''''':'i''''s'w'o'l'l'o'f' 's'a' 'd'e'n'i'f'e'd' 's'i' 't'I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''n'a''''e'h't' ','$'p'$''' '''''a'''''c'''''i'''''l'''p'e'r' 'y'b' 'd'e't'a'r'e'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'l'l'a' 'f'o' 's'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'f'o' 't'e's' 'e'h't' 's'a' '$'}'s'p'e'd'{'t'i'h't'a'm''$''''''''''a'm'''''''''''''' 'e'h't' ''''d'e'n'i'f'e'd' 'e'w' ','r'e'p'a'p'''('' ',''s'i'h't' 'n'I' '.'d'e't'a'r'e'n'e''''''''''''''''''''n'o'i't'c'e'r'i'd' 'r'e'h't'i'e' 'n'i' '')''''g' 's'a'w' '$'2'_'o'$' 'n'e'h'w' 'e'm'i't' 'e'h't' 't'a' '$'p'$' 'n'o' ''g' 's'a'w' '$'2'_'o'$' 'n'o'i't'a'r'e'p'o' 'f'I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'd'a'e'r'l'a' '''''''''''''''''''''''''''''''''''''''''''''' 's'a'w' '$'2'_'o'$' 'e'r'e'h'w' 'a'c'i'l'p'e'r' 'e'h't' 't'a' 'd'e'i'l'p'p'a' 'n'e'e'b' 'd'a'h' 't'a'h't' '$'1'_'o'$' 'n'o'i't'a'r'e'p'o' 'y'n'a' 's'i' '$'2'_'o'$' 'n'o'i't'a'r'e'p'o' 'f'o'''''''''' 's'i' 'y'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' '''''''c' 'A' '.'.'d'e't'e'l'e'd' 's'a' 'd'e'k'r'a'm' 'y'l'n'o' 't'u'b' ',''''''''''''''''''''''''e'''''r'''''u'''''t'''''c'''''u'''''r'''''t'''''s''''' '''''t's'i'l' 'd'e'k'n'i'l' ''''''''''''''''e'h't' 'm'o'r'f' 'd'e'v'o'm'e'r' 'r'e'v'e''''''r'e't'f'A'n' 'e'r'a' 's't'n'e'm'e'l'e' 't's'i'l' 'd'e't'e'l'e'D' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'a'h' 'o's'l'a' 't'''''''''' 't'b'n'e'''''''''''''t'n'e'm'm'e'l'e' 't's'i'l' 'h'c'a'E''''''''''''''''''''''''''''''''''''' 't's'i'l' 'a' 'n'e'h'W' '.'$'k'$' 's'w'o'l'l'o'f' 't'a'h't' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'f'o' 'D'I' 'e'h't' 'o't' '$')'k'('}'t'x'e'n'{'f's'h't'a'm''$' 's'p''''s'a'm' 'e't'a't's' 'l'a'c'o'l' 'g'n'i't'n'e's'e'r'p'e'r' 'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'e'h't' 'd'n'a' ','$'k'$' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'a' 's'a'h' 't'n'e'm'e'l'e' 't's'i'l' 'h'c'a'e' ':''''''''''''''''t's'i'l' 'd'e'k'n'i'l' 'a' 's''''d'e'l'b'm'e's'e'r' 'e'r'u't'c'u'r't's' 't's'i'l' 'e'h'T' '.'s't'n'e'm'e'l'e' 't's'i'l' 'd'e't'e'l'e'd' 'r'e'v'o' 's'p'i'k's' '$'4'_'}'x'd'I'{'c's't'x'e't''$' 'd'n'a' ','x'e'd'n'i' 'e'h't' 's't'n'e'm'e'r'c'e'd' 'd'n'a' 't'n'e'm'e'l'e' 't'x'e'n' 'e'h't' 'o't' 's'e'v'o'm' '$'3'_'}'x'd'I'{'c's't'x'e't''$' 'e'l'i'h'w' ','o'r'e'z' 's'e'h'c'a'e'r' 'x'e'd'n'i' 'e'h't' 'n'e'h'w' 'n'o'i't'a'r'e't'i' 'e'h't' 's'e't'a'n'i'm'r'e't' '$'5'_'}'x'd'I'{'c's't'x'e't''$'n'n'.'d'n'u'o'''''''n'i'f' 's'i' 't'n'e'm'e'l'e' 'd'e'r'i's'e'd' 'e'h't' 'l'i't'n'u' 't's'i'l' 't'a'h't' 'r'e'v'o' 'e't'a'r'e't'i' '$'}'5','4','3'{'_'}'x'd'I'{'c's't'x'e't''$' 's'e'l'u'r' 'e'h't' 'd'n'a' ','n'o'i't's'e'u'q' 'n'i' 't's'i'l' 'e'h't' 's'e'r'o't's' 't'a'h't'''''''''''''''''''''''''''''''''''''''' 'g'n'i't'n'e's'e'r'p'e'r' '$'p'_'A'$' 'f'o' 'e'e'r't'b'u's' 'e'h't' 's'i' '$'}'x't'c'{'t'i'h't'a'm''$' 't'x'e't'n'o'c' 'e'h't' ','y't'p'm'e' 's'i' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'e'h't' 'n'e'h'W' '.'r'o's'r'u'c' 'e'h't' 'n'i' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' 'e't'a't's' 'l'a'c'o'l' 'e'h't' 's'd'n'e'c's'e'd' 'y'l'e'v'i's'r'u'c'e'r' '$'2'_'}'x'd'I'{'c's't'x'e't''$' '.'t's'i'l' 'e'h't' 'r'e'v'o' 'n'a'c's' 'o't' 's'e'l'u'r' 't'n'e'u'q'e's'b'u's' 'e'h't' 'o't' 's'e't'a'g'e'l'e'd' 'd'n'a'''''''''''''''''''''' ','t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 'g'n'i't'n'e's'e'r'p'e'r' 'r'o's'r'u'c' 'a' 's't'c'u'r't's'n'o'c' '$'1'_'}'x'd'I'{'c's't'x'e't''$''''' ','t's'r'i'F' '.'t's'i'l' 'a' 'f'o' 't'n'e'm'e'l'e' 'r'a'l'u'c'i't'r'a'p' 'a' 'o't' 'r'o's'r's''u'c' 'e'h't' 'g'n'i'v'o'm' ','''n'n'|')'|'b'r'e'v''$''''$'n'$'|'('x'd'i'.'c'o'd'|'b'r'e'v'' 'n'o'i's's'e'r'p'x'e' 'e'h't' 'e't'a'u'l'a'v'e' 'o't' 'w'o'h' 'e'n'i'f'e'd' '$'}'5' 's't'o'd'' '''''1'{'_''d'''r''''' ''''''='='''''v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|''''']'''''[''''''''''''''''''''d'''''r'''''i'''''h'''''t'''''''''''|'''''''''''''''''b'''''''''''''''''r''''''''''''''''''''''''''|'''''b'''''r'''''e'''''v''''''''|'''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('t'e'''g'.'')'''''''e'h't''''''''''s't'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''('t')''''e'g'.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','5' 'e'E''''n'i'l' 'n'I' '.'t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 't'a' 'd'e't'r'e's'n'i' 's'i' '''''s'g'g'e'`'`' 't'n'e'm'e'l'e' 't's'i'l' 'e'h'T''''''''''''''''''''''''''''''''''' '''n'n''d'a'e'h'{'t't't'x'e't'' 'd'e'l'l'a'c' 'e'l'b'a'i'r'a'v' 'a' 'n'i' 'r'o's'r'u'c' 'e'h't' 'g'n'i'c'a'l'p' ',''''''''''''v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''t'''''''''''''''''s'''''''''''''''''i'''''''''''''''''l''''''''''''''''' '''''''''''''''''y'''''''''''''''''t'''''''''''p'''''m'''''e''''' '''''e'''''h'''''t''''' '''''o'''''t''''' '''''t'''''e'''''s''''' '''''s'''''i''''' 'p'a'm' 't'a'h't' 'n'i'h't'i'w' ''''''''''''''''''''''''''''''''|''''}'''g'n'i'p'p'o'h's'''{'t't't'x'e't'''''''''''h'`'`' 'y'e'k' 'e'h't' 'n'e'h't' 'd'n'a' ','''''''''''''u'''''u'''''s''''' '''''h'''''c'''''i'''''h'''''w''''' '''''s'''''m'''''e'''''t'''''s'''''y'''''s''''' '''''e'''''l'''i'b'o'm' 'n'o' ',''''''''''''''''''''''''''''''''''''''''''''s'e'i'l'p'p'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'i'l' 'a' 'f'o' 'd'a'e'h' 'e'''s't'i''''''h'''t''''' '''''t'''''a''''' '''''s't'r'e's'n'i' '''''''''g'n'i'y'l'p'p'a'''}'''''t'''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 't'n'e'm'e'l'e''''''''''e't'i' 'e'h't' 's'e'v'o'm'e'r' 'e's'n'i'.')'0'('x'd'i'.'{'t't't'x'e't'' 'd'n'a' ','r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 'n'o'i't'i's'o'p' 'e'h't' 'r'e't'f'a' 't'n'e'm'e'l'e' 'w'e'n' 'a' 's'e'c'a'l'p' '''' ','i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'h'c''''''''8''''''''''''''''''''''''5'.'7'''''''''''']'p'['''''''8''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''5'.'7'''''''''''''''''''''''''''''8''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''s't'-''}'t'r'o'p'm'a'l':'c'e's'{'l'e'b'a'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''5'.'5'''''''''''''''''''''''''''''''''''''''''''6'''''''''''''''.'n'o'i't'p'y'r'c'n'e' 'd'n'e'-'o't'-'d'n'e' 'h't'i'w' 's'm'e't's'y's' 'g'n'i'g'a's's'e'm''''e' 'n'i' 'd'n'a' 's'k'r'o'w't'e'n' 'r'e'e'p'-'o't'-'r'e'e'p' 'n'i' 'd'e'y'o'l'p'e'd' 'e'b' 'o't''''' '''''t'''','''''''''''''''''''','''s'e'n'o'''''h'''s''''p''''''''''''e'u'n'''g'''''n'''''i''''''''i'''''t'''''n'''''o'''''c''''' '''''''''''''''''''''''''''''t'''''''''''''''''r'''''a'''''m'''''s''''' '''''s'''''a''''' '''''h'''''c'''''u'''''s''''' '''''''''''i''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''e'''''t'''''s'''''i'''''g'''''e'''''r''''' '''''e'''''u'''''l'''''a'''''v'''''-'''''i'''''t'''''l'''''u'''''I''''''''''''''m'''''''W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i' 'd'e't'a'e'r'c' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'e'h't' 'f'o' 'r'e'i'f'i't'n'e'd'i' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 's'i' 'e'u'l'a'v' 'r'e't's'i'g'e'r' 'r'o' 't'n'e'm'e'l'e' 't's'i'l' 'w'e'n''''''''''''''''''''''''''''''' 'n'o'i't'a'r'e'p'o' 'e'h't' ','r'e't's'i'g'e'r' 'a' 'o't' 'd'e'n'g'i's's'a' 's'i' 'e'u'l'a'v' 'a' 'r'o' 't's'i'l' 'a' 'o't'n'i' 'd'e't'r'e's'n'i' 's'i' 't'n'e'm'e'l'e' 'n'a' 'r'e'v'e'n'e'h'w' ','' 'a' 's'i' 's't'r'o'p'p'u's' 't'i' 'e'p'y't'a't'a'd' 'y'l'n'o' 'e'h't' ''''''''j''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'}'g'n'i's'o'p'm'o'c':'c'e's'{'f'e'r''~'n'o'i't'c'e'S' 'n'i' 'd'e'n'i'l't'u'o' 's'c'i't'n'a'm'e's' 't'n'e'r'r'u'c'n'o'c' 'e'h't' 'e'v'e'i'h'c'a' 'o't' 'w'o'h' 'y'l'l'a'm'r'o'f' 'n'i'a'l'p'x'e' 'w'o'n' 'e'W''''H'''''''''''''''''''''''''''''''''''''''''''''e't'a'l'o'i'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''O'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'y'w'3'1'0'2':'n'w'o'r'B','s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~'k'a'i'R' 'n'i' 's'p'a'm' 'T'D'R'C' 'f'o' 't'a'h't' 's'e'h'c't'a'm' 'r'o'i'v'a'h'e'b' 's'i'h'T' '.'d'e'd'd'a' 'y'l't'i'c'i'l'p'x'e' 'e'r'e'w' 'y'e'h't' 'e'c'n'i's' ','''' 't'n'e's'e'r'p' 'e'b' 't's'u'm' '''''n'e'e'r'g'`'`' 'd'n'a' '''''d'e'r'`'`' 'e'l'i'h'w' ','p'a'm' 'e'h't' 't'u'o' 'g'n'i'k'n'a'l'b' 'y'b' 'd'e'v'o'm'e'r' 's'a'w' 't'i' 'e'c'n'i's' ','p'a'm' 'l'a'n'i'f' 'e'h't' 'm'o'r'f' ''T'''t'n'e's'b'a' 'e'b' 't's'u'm' '''''e'u'l'b'`'`' ':'}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'w'o'h's' 's'a' ','s'e'g'n'a'h'c' 'l'l'a' 'e'v'r'e's'e'r'p' 't'a'h't' 's'c'i't'n'a'm'e's' 'e'g'r'e'm' 'e'n'i'f'e'd''''e' 'e'w' ','d'a'e't's'n'I' '.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'o't' 'e'u'd' 't's'o'l' 'e'b' 'd'l'u'o'h's' 't'u'p'n'i' 'r'e's'u' 'o'n''''''''''''''''''''''''''''''''''''''' 't'a'h't' 't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' 'd'l'u'o'w' 'r'o'i'v'a'h'e'b' 't'a'h't' ','r'e'v'e'w'o'H' '.'s'r'o'l'o'c' 'f'o' 'p'a'm' 'e'r'i't'n'e' 'e'h't' 'f'o' 't'u'o'-'g'n'i'k'n'a'l'b' 'e'h't' 'y'b' 'n'e'd'd'i'r'r'e'v'o' 'e'b' 'd'l'u'o'w' 't'i' 'e'c'n'i's' ','d'e'd'r'a'c's'i'd' 'e'b' 'd'l'u'o'w' '''''d'e'r'`'`' 'f'o' 'n'o'i't'i'd'd'a' 'e'h't' 'n'a'e'm' 'd'l'u'o'w' 't'a'h't' ','e's'a'c' 's'i'h't' 'n'I' '.'e'e'r't'b'u's' 't'a'h't' 'n'i'h't'i'w' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'e'd'i'r'r'e'v'o' 's'y'a'w'l'a' 'e'e'r't' 'e'h't' 'f'o' 's'l'e'v'e'l' 'r'e'h'g'i'h' 't'a' 's't'i'd'e' 't'e'l' 'o't' 'e'b' 'd'l'u'o'w' 't'c'i'l'f'n'o'c' 'a' 'h'c'u's' 'g'n'i'l'd'n'a'h' 'f'o' 'y'a'w' 'e'l'b'i's's'o'p' 'e'n'O'n'n'.'e'e''''''y'l'p'p'a'''r'''''t''''' '''''o't'''''''''e'''''''''h't''' '''''''g'n'i''''f'''o' 'l'e'v'e'l' 'r'e'h'g'i'h' 'a' 't'a' 's'r'u'c'c'o' 's'r'o'l'o'c' 'f'o' 'p'a'm' 'e'h't' 'f'o' 'l'a'v'o'm'e'r' 'e'h't' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'l'i'h'w' ','e'e'r't' 'e'h't' 'f'o' 'l'e'v'e'l' 'r'e'w'o'l' 'a' 't'a' 's'r'u'c'c'o' '''''d'e'r'`'`' 'f'o' 'n'o'i't'i'd'd'a' 'e'h't' 't'''''a'''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'y'e'k' 'e's'e'h't' 'y'b' 'd'e'b'i'r'c's'e'd' 'h't'a'p' 'e'h't' 'g'n'i'w'o'l'l'o'f' 'y'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y't'p'm'e'-'n'o'n' 's'i' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 's'''h't' 's'i' 'e'l'p'm'a'x'e' 's'i'h't' 'n'i' 'y't'l'u'c'i'f'f'i'd' 'e'h'T' '.'y'e'k' 't'a'h't' 'o't' 'p'a'm' 'y't'p''''t'm'e' 'w'e'n' 'a' 'n'g'i's's'a' 'n'e'h't' 'd'n'a' ','p'a'm' 'r'e't'u'o' 'e'h't' 'm'o'r'f' '''''s'r'o'l'o'c'`'`' 'y'e'k' 'e'r'i't'n'e' 'e'h't' 'e'v'o'm'e'r' 'y'l't'n'e'l'a'v'i'u'q'e' 'd'l'u'o'c' '$'q'$' ','p'a'm' 'y't'p'm'e' 'n'a' 'g'n'i'n'g'i's's'a' 'f'o' ''''e'd'a'e't's'n'I' '.'''''n'e'e'r'g'`'`'''' 's'd'd'a' 'n'e'h't' 'd'n'a' ','s'r'o'l'o'c' 'f'o' 'p'a'm' 'e'r'i't'n'e' 'e'h't' 't'u'o' 's'k'n''S'''a'l'b' 'y'l't'n'e'r'r'u'c'n'o'c' '$'q'$' 'a'c'i'l'p'e'r' 'e'l'i'h'w' ','s'r'o'l'o'c' 'f'o' 'p'a'm' 'a' 'o't' '''''d'e'r'`'`' 's'd'd'a' '$'p'$' 'a'c'i'l'p'e'r' ','e'r'e'H' '.'e'e'r't' 'N'O'S'J' 'e'h't' 'f'o' 's'l'e'v'e'l' 't'n'e'r'e'f'f'i'd' 't'a' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'f'o' 'e'l'p'm'a'x'e' 'n'a' 's'e'v'i'g' '}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F''n'n'''''''' ' ''''''''''''''''2'.'4'''''''''''''''''''''''''''y'a'w'd'i'm','d'e'r'e't'n'e'c' 't'x'e't','m'c'2'='h't'''d'''''i'''''w''''' '''t'x'e't',' ' 'n')'1't'f'e'l'(' '-'-'','s'd'r'o'w'''''''''''''''''e's'a'c' 'e'h't' 's'i' 'h'c'i'h'w'''''' '''''r'e'h'''''('t'e'g'.'''''''('t'e'g')''''.')''''''''t'o' 'n'i' '-'-' ''g'''2'.''''''4'''n'''''i''''''''''d'e'r'e't'n'e'c'''''''''''''''''''d'e'g'g'a'r''''''''''''w'''''o'''''l'l'a' ','k'r'o'w'''''('t'e'g'.'')':'''''''t'e'n' 'e'h't' 'm'o'r'f' 's'e'e't'n'a''-'-''''''r'''' ' ' ' ''''''a'''''u'''''g''''''2''' '''''g'''''n'''''i''''''''d'e'r'e't'n'e'c'''''''''''''''''''d'e'g'g'a''''e'r''''''''''''''''''r'''''''''''''y'''']'p'['a'w'd'i'm',''''e'''''d'''''''''''''''''('''''t'''''e'''''g''''''''''''''''''''''''''t'''''e'''''g'''''.''''''''(''''')''''''''''''''''''''''')''''''''''''''''''''o'd'.''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}';'''''0'0'f'f'0'0'#''`'`' '=':' ')'''''n'e'e'r'g'`'`'('t'e'g'.')'''''s'r'o'l'o'c'`'`'('t'e'g'.'c'o'd'{' ']'d'e'r'e't'n'e'c' 't'x'e't','m'c'1''''3'='h't'd'i'w' 't'x'e't','t'h'g'i'r'[' 'e'd'o'n'n''o' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 'd'n'a'''''''''''''''''''s't's'i'l' 'o'd'-'o't' ','s'l'o'o't' '' 'e'd'i's'-'t'n'e'i'l'c' 'g'n'i'g'r'e'm' 'l'l'a' 's'm'r''0'1''''''9''''''o'f'r'e'p' 'm'h't'i'r'o''5'''g'l'''0'.'9''''a' 'e'h'T'''n'''''e'm'n'g'i's's'a' 'd'5''''n'a' 'n'o'i'''0'.'9''''t'e'l'e'd' ','n'o'i't'r'e's''5'''n'i' 'y'b' 'd'e'i'''''''0'.'7''''f'''''i'''d'G''''o'm' 'O''''e'b' 'n'a'c' 'h''5'''c'i'h'w' ','''''' 't'I' '.'''''''0'.'7'''''' '.'s'e'p'y't' 'p'a'm'''0'.'5'''''' '''d'n'a' 't''''''''''''''''''''''''''''''''5'.'''t''' 'e'h't' ','y't'''''i'l'5''''i'b'a'z'i'l'a'i'''''r'''''e'''''s''''' ''''''0'.''g'''''n'''''i'''''r'''''i'''''u'''0'.'5''''''''''''q'''''e'R''s'i'l' 'd'e'''''''''''''' 'o't' 's''5'.''e'h'c'a'o',''''''' ''5'''t'a'h't'''''''''''r'''''p'''''p'''''a''''''''t's''0'.''e'n' 'y'l'i'r'a'r't'i'b'r'a' 's't'r'o'p'p'u's' 't'I' '.'e't'a't's' 'e'm'a's' 'e''0'.''h't' 's'd''''''e'n'i'f'e'd''''''''r''''''''g'n'i'''''''''''''a'''''w'o't' 'e'g'r'e'v'n'o'c' 's'a'c''0'.''i'l'p'e'r' 'l'l'a''u's''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','k'r'o'w't'e'n' 'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' 'k'r'o'w' 'o't' 's'n'o'i't'a'c'i'l'p'p'a' 'e''''''t'a'h't' 'r'i'u'q'e'r' 'e'w' 'f'I'''''''='''''''''''''''('t'e'g'.''')''''''''''''''}'v'h'5'8'9'1':'n'o's'd'i'v'a'D'{'e't'i'c''~'''''' 't''''''('t'e'')'''g'.'''a'h't' 'd'n'a' ','t's'o'l' 'e'r'a' '''''''''''''' ' ' 'n')'2''''''''''''''''''''''''''''''''''''y' ''''a'w'd'i'm','d'e'r'e't'n'' 'e'c' 't'x'e't','m'''''c'''''4'''''='''''h't'''''''''''''''''''''''' ' ' ''''''''''''''''''''''''''''''''''''y'a'w'd'i'm','d'e'r'e't'n'e'c'' ' 't'x'e't','m'c'4'='''''h'''''t'''''d'''''i'''w'''''''''''''' ' ' '''''n''''''''''''''''''''''''''''''''''''y'a'w'd'i'm','d'e'r'e't'n'e'c' '' 't'x'e't','m'c'''''4''''''''''''''3'''='h''''''''''''''''''''''' ' ' ''''''''''''''''''''''''''''''''''''y'a'w'd'i'm','d'e'r'e't'n'e'c'' ' 't'x'e't','m'c'4'''='''''h'''''t'''''d'''''i'w' 't'x'e't','' 'n')'3't'h'g'i'r'(' '-'-'t'd'i'w' 't'x'e't','')'3't'f'e'l'(' '-'-'' 't'x'e't','' 'n')'2't'h'g'i'r'(' '-'-'''h'd'i'w' 't'x'e't',''t'f'e'l'(' '-'-''''''s'e't'a'd'p'u' 'o'n' 't'a'''''''''(')'''''')'0'('x'd''''''''''t'e'g'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'0'('x'd'''''''''''''''''''''''')'''''''('t'e'g'.'''''''''''''''''''''''''''''''''''''''''''''''''')'1'('x'd'i'.')'''''y'r'e'c'o'r'g'`'`'('t'e'g'.'c'o'd''''''''''''''''''''''''''''''''''''''''''''')'1'('x'd'i'.')'''''y'r'e''''y'c'o'r'g'`'`'''''''`'z'('t'e'g'.'c'o'd''''''''''''''''''''''''''''''''''''''''e's'o'p'r'u'p'-'l'a'r'e'n'e'g' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's'n'o'i't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''5'.'8''''9''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}':'$'q'$' 'a'c'i'l'p'e'R'{' ')'5'.'8','8'(' 't'a' ')'R't'h'g'i'r'(' 'e'd'o'n''n';'}':'$'p'$' 'a'c'i'l'p'e'R'{' ')''''''''''''5'.'8','0'(' 't'a' ' ')'R't'f'e'l'(' 'e'd'o'n''n';')'5'.'7','4'(' '-'-' ')'5'.''''5'0'-','4'(' ']'d'e't't'o'd','w'a'r'd'[' 'h't'a'p'''''''''''''''''''''''''''''''h't'a'p'[' 'w'a'r'd''n''''''''''''''''' ''''''7''''8'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''5'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''3'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''4''''5'''''''''''';'}']'''''c'`'`' ',''''7'''''z'`'`' ','''''x'`'`' ','''''a'`'`' ','''''y'`'`'['{''''[' ']'w'a'5''''r'd','e'l'g'n'a't'c'e'r'[' ')'0','0'(' 't'a' ' ')'4't'f'e'l'(' 'e'd'o'n''3''''n';'}']'''''c'`'`' ','''''x'`'`' ','''''a'`'`'['{' ']'w'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'i'd'e'-'t'x'e't':'g'i'f'{'l'e'b'a'l'''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''';')'4''''3't'h'g'i'r'(' 'o't' ')'3't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'4't'f'e'l'(''' 'o't' ')'3't'f'e'l'(' ']'''''''(' '>'-','k'c'i'h't'[' 'w'a'r'd''n'''''''''''''''''''''''''''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'e'z'i's'e't'o'n't'o'o'f''{' ']'e'u'l'b'=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1'''''''''''''''''''7'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'x'i'r't'''a'm'[' '''''''''''''''''''''''''''''{' 'e'd'o'n'' ' ' ' 'n'''''''''''''''''''''''''''''{' 'e'd'o'n'' ' ' ' 'n''''''';'}'n''' ''' ';'}''''''''''''''''''''('T'''''''''''''''''''''''''''''''''''''''''''''''';'}'}'']'''''z'`'`'[' ':')''''''''''a'`'`'('T't's'i'l' ','}''''''y'`'`' ':'''''x'`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''0'.'2'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'e'z'i's'e't'o'n't'o'o'f''{' ']'e'u'l'b'='t'x'e't'[' ')'5'.'1','4'(' 't'a' ' ')'s'm'm'o'c'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'h's'a'l'c'-'e'p'y't':'''''''''''''p'y't';'g'i'f'{'l'e'b'a'l''''''''''''''''''''''''''''''''''''''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''O''''''o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''';')'t's'a'e' 'h't'r'o'n'.'4't'f'e'l'(' ' ']'5'4'='n'i','0'7'2'='t'u'o'[' 'o't' ')'h't'u'o's'.'3't'h'g'i'r'(' ']'''''''[' '>'-','e'u'l'b','d'e'h's'a'd','k'c'i'h't'[' 'w'a'r'd''n';')'t's'e'w' 'h't'r'o'n'.'4't'h'g'i'r'(' ']'5'3'1'='n'i','0'7'2'='t'u'o'[' 'o't' ' ')'h't'u'o's'.'3't'f'e'l'(' ']'>'-','e'u'l'b','d'e'h's'a'd','k'c'i'h't'[' 'w'a'r'd''n';')'4't'h'g'i'r'(' 'o't' ')'3't'h'g'i'r''''l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'4't'f'e'l'(''''n' 'o't' ' ')'3't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'h'g'i'r'(' '}';')'''''z'`'`'('t'r'e's'n'i'.')'0'('x'd'i'.'''' ')'''''a'`'`'('t'e'g'.'c'o'd'{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'2't'h'g'i'r'(' ']''''''']' '>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'h'g'i'r'(' '}';']'[' '=':' ')'''''a'`'`'('t'e'g'.'c'o'd'{'''''' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'1't'h'g'i'r'(' ']'''' '>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'f'e'l'(' '}';'''''y'`'`' '=':' ')'''''x'`'`'('t'e'g'.')'''''a'`'`'('t'e'g'.'c'o'd'(' ' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ' ')'2't'f'e'l'(' ']'''' '>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'f'e'l'(' '}';'}''{'' '=':' ')'''''a'`'`'('t'e'g'.'c'o'd'{' ' ']'''' 't'f'e'l'[' 'e'd'o'n' 'o't' ' ')'1't'f'e'l'(' ']'''' '>'-','k'c'i'h't'[' 'w'a'r'd''n';'}'n''' ';'}'}'']'''''z'`'`'[' ':')'''''a'`'`'('T't's'i'l'{' 'e'd'o'n'' ' ' ' 'n''' ';'}','}''''''y'`'`' ':'''''x'`'`'{''''''''{'`' ':')'''''a'`'`'('T'p'a'm'{''{' 'e'd'o'n'' ' ' ' 'n'{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'0','8'(' 't'a' ')''''3'4't'h'g'i'r'(' ']'x'i'r't'a'm'[' 'e'd'o'n''n''`'{'' ':')'''p'a'm'''''''a'`'`'{''''_''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'0','0'(' 't'a' ' ')'4''''3't'f'e'l'(' 'e'd'o'n''n';'}'}''}''''''y'`'`' ':'''''x'`'`'{'' ':'''''a'`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''n''''';']'}'']'''''z'`'`'[' ':'''''a'`'`'{''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'3''''4','8'(' 't'a' ')'3't'h'g'i'r'(' 'e'd'o'n''n';'}'}'']'[' ':'''''a'`'`'{''{''''[' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'5','8'(' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n'`'{''{' ']'w'a''''''''''w'a'w'r'd','e'l'g'n'a't'c'e'r'[' ')'3''''4','0'(' 't'a' ' ')'3't'f'e'l'(' 'e'd'o'n''n';'}'}''}''{'' ':'''''a'`'`'{''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'5','0'(' 't'a' ' ')'2't'f'e'l'(' 'e'd'o'n''n'''''''''''''''''''''''''''''''''''''''''''''''''';'}'}''{''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'7','8''''0'(' ''''x'd'''4','''''I'''t'''''a''' ')'1't'h'g'i'r'(' 'e'd'o'n''n';'}'}''{''''''''h't'a'm''''''''''x'e't'''''''''''''h't'a''''''''''''''''''''''''f'i' 'n'e'p'p'a'h' 'd'l'u'o'w' 'h'c'i'h'w' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'i'l' 'e'h't' 'n'i' 's't'n'e'm'e'l'e' 'd'e't'e'l'e'd'-'n'o'n' 'f'o' 'r'e'b'm'u'n' 'e'h't' 'n'a'h't' 'r'e't'a'e'r'g' 's'i' '$'n'$' 'e's'u'a'c'e'b' 'm''''$'''''{''''' ']'''''''''$')'n'(''x'd'i''''''}'''''w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'7','0'(' 't'a' ' ')'1't'f'e'l'(' 'e'd'o'n''n';')'5'.'8','4'(' '-'-' ')'5'.'0'-','4'(' ']'d'e't't'o'd','w'a'r'd'[' 'h't'a'p''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'.'y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 'o't' 's'e'p'y't' 't'n'e'r'e'f'f'i'd' 'f'o' 's'e'u'l'a'v' 'g'n'i'n'g'i's's'a' 'y'l't'n'e'r'r'u'c'n'o'C'{'n'o'i't'p'a'c''n'}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n']'8'.'0'='e'l'a'c's','o't'u'a'['}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n''t'x'e't'[' ')'4'.'1' ','5'(' 't'a' ' ')'s'm'm'o''''''''''''r'd''n''c'(' 'e'd'o'n''n'''''''''''''''''''0'.'7'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''5'''.'''''6'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'''''''''''''''''''''''''''''''''''''''''''''''''''''';')'t's'a'e' 'h't'r'o'n'.'4't'f'e'l'(' ' ']'5'4'='n'i','0'7'2'='t'u'o'[' 'o't' ')'h't'''u'o's'.'3't'h'g'i'r'(' '>'-','e'u'l'b','d'e'''''('t'e'g''''''''''''''''''''''''''''')'1'('x'd'i'.')'''.''''h's'a'd','k'c'i'h't'[' 'w'a'r'd''n'')'''''''''''('t'e'g'')'''''''''''''.')'1'('x'd'i'''';''''')'''''t'''s'e'w' 'h't'r'o'n'.'4't'h'g'i''''''('t'e'g'.'''r'(' ']'5'3'1'='n'i','0'7'2'='t'u'o'[' 'o't' ' ')'h't'u'o's'.'3't'f'e'l'(' ']'>'-','e'u'l'b','d'e'h's'a'd','k'c'i'h't'[' 'w'a'r'd''n''''''''''''''''''''''''''''''';')'3't'h'g'i'r'(' '}';')'''''z'`'`'('t'r'e's'n'i'.')'2'('x'd'i'.'c'o'd'{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'2't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' ''''['w'a'r'd''n';')'2't'h'g'i'r'(' '}';')'''''y'`'`'('t'r'e's'n'i'.')' ''0''''1'('x'd'i'.'c'o'd'{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'1't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'b' 'o't' 'e'c'n'a'l'g' 't's'r'i'f' 't'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'r'o'w' 'n'o'-'w'o'l'l'o'f' 'n'i' 's'c'i't's'i'r'e't'c'a'r'a'h'c' 'e'c'n'a'm'r'o'f'r'e'p' 's't'i' 'n'o' 't'r'o'p'e'r' 'l'l'i'w' 'd'n'a' ','m'h't'i'r'o'g'l'a' 'e'h't' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'l'a'c'i't'c'a'r'p' 'a' 'n'o' 'g'n'i'k'r'o'w' 'o's'l'a' 'e'r'''a'''''n''''l'l'i'f'v''n''''n'n''3't'f'e'l'(' '}';')'''''x'`'`'('t'r'e's'n'i'.')'1'('x'd'i'.'c'o'd'{' ' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ' ')'''' '2't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'f'e'l'(' '}';'e't'e'l'e'd'.')'2'('x'd'i'.'c'o'd'{' ' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';'}']'''''c'`'`' ','''''z'`'`' ','''''x'`'`' ','''''a'`'`'''''' ','''''y'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'0','8'(' 't'a' ')'4''''''')'3't'h'g'i'r'(' 'e'd'o'n''n''r'd','e'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}']'''''c'`'`' ','''''b'`'`' ','''' '''''z'`'`' ','''''a'`'`' ','''''y'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'4''''5','8'(' 't'a' ')'3't'h'g'i'r'('''''''(')' 'e'd'o'n''n';'}']'''''c'`'`' ','''''b'`'`' ','''''a'`'`''''''''''' ','''''y'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'6','8'(' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n'g'n'a't'c'e'r'[' ')'4','0'(' 't'a' ' ')'3't'f'e'l'''''8''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}']'''''c'`'`' ','''''b'`'`''''a''''''''''`'a'a''''''''''' ','''''a'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'8','8''''9'(' 't'a' ')'1't'h'g'i'r'(' 'e'd'o'n''n'(' 'e'd'o'n''n';'}']'''''c'`'`' ','''''a'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'6','0'(' 't'a' ' ')'2't'f'e'l'(' 'e'd'o'n''n''''''''''';'}']'''''c'`'`' ','''''b'`'`' ','''''a'`'`'['{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'0',''''.'8'(' 't'a''' ')'1't'h'g'i'r'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'c'i'v'r'e's' 'b'e'w' 'd'n'a' 's'e's'a'b'a't'a'd' 'S''''y'n'a'm' 'n'i' 'd'e's'u' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','r'e'v'e'w'o'h' ''''''''''''''''','''''''y't''''''''''s'e's's'u'c's'i'd'''''''''''''''''''''''''''''''''''''''''''''''''''''o'w't' 'g'n'i'n'i'a't''''''''''''''''n'i'a't'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'h'c'n'a'r'b''''''''''''''''''''''''''''''''''''''''''''''''''''N'i''''''''''''x'''''x'''''x'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't' 's'i''''' '''''k'r'o'w' 'r'u'o' 'f'o' 'l'a'o'g' 'm'r'e't'-'g'n'o'l' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'a'w''.''''a't'f'o's' 'e's'u'-'o't'-'y's'a'e' 'n'a' 'e'd'i's'n'i' 'n'e'd'd'i'h'''''''n'i' 'e'b' 'y'l'e'g'r'a'l' 'n'a'c' 's'l'i'a't'e'd' 'e's'o'h'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'a'r'b'i'l' 'a' 'e'd'i's'n'i' 'n'o'i't'a'l'u's'p'a'n'''''''''''''''''''''''''''' 'g'n'i'd'd'e'b'm'e' 'o't' 'e'l'b'a'n'e'm'a' 's'i' 't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''''''''''''''''''y'b''''''''' 'o't' 'e'l'b'a'n'e'm'a' 'e'b' 't's'u'm''''''''''''''''''''''''''''''''''''' 'e'b' 'o't' 's'd'e'e'n' 'm'h't'i'r'o'g'l'a' 'n''''l'a' 'h'c'u'S' '.''''''''''''''''''' 'h't'i'w' '''n'o'i't'u'l'o's'e'r' 't'c'i'l''''i'f'n'o'c' 'r'o'f''''t' 'm'h't'i'r'o'g'l'a' 'l'a'r'e'n'e'g' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''P'''''S'''''''''''''''''''''''''''''''''''a''''''b''''''''''''c'`'`' ','''''''''''''''';'}'''']'''']'}'']'''''i'`'`' ','''''h'`'`'''''''z'z'[' ':'''''t'x'e't'`'`'{''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'0','0'(' 't'a' ')'1't'f'e'l'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'.')'t'n'e'm'u'c'o'd' 't'x'e't' 'a' ','.'e'.'i'(' 's'r'e't'c'a'r'a'h'c' 'f'o' 't's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'f'o' 'g'n'i't'i'd'e' 't'n'e'r'r'u'c'n'o'C'{'n'o'i't'p'a'c''n'}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n']'8'.'0'='e'l'a'c's','o't'u'a'['}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n'''''''''''''''''''' 'm'''''''m' 'h't'i'r'o'g'l'a' 'n'''' 'a' 'g'n'i'd'i'v'o'r'p' 'y'b' ''''i''''i''e'h't' 'y'l't'n'e'u'q'e's'n'o'C''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'''''''''''''''''s'''''a''''''''''''''''''''''' '''''t'''''a'''''e'''''r'''''t''''' ''''''''s'''''''''''e'''''''''''W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'c'i'v'e'd' 'o'w't' 'n'o' 'r'''' 'e'g'a'n'a'm' 'd'r'o'w's's'a'p' 'a' 'o't' 's'''' 't'i'd'e' 't'n'e'r'r'u'c'n'o'c' ','e'l'p'm'a'x'e' 'r'o'F' ''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'p'a'm' 'e'h't' 'm'o'r'f' 'd'e'v'o'm'e'r' 'd'n'a' 'd'e'd'd'a' 'e'b' 'n'a'c' 's'g'n'i'p'p'a'm' 'e'u'l'a'v'-'y'e'k' 'd'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s't'n'e'm'e'l'e' 't's'i'l' 'g'n'i't'e'l'e'd' 'r'o' 'g'n'i't'r'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''A' ''f'''.'''''e'd'o'n' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-'e'l'g'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''S''''''''''''''''''''''''''''''''''''''''''''''''' '''.'s't'n'e'm'e'l'e' ''*'t's'i'l' 'f'o''''''''r'e'h't'r'u'f'''''''''''8'.'0'='e'l'a'c's','''''4'-''5'.''''''''''4''''''''''''''''''''d'e'3'''5'.''''t'''5'.'t'o''''3''''''6''''''''''''''''''''''''8''''''''''''''''''''''''''';''''6'''''''''''''''''''''''''''''q'''''''''''''''''''';'''}':'$'2'_'p'$''8''' 'a'c'i'l'''''''''''''''''']'w'a''6'''r'd','e'l'g'n'a't'c'e'r'[' 'p'e'R'{' ')'''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c''8'''e'r'[' '6','4'(' 't'''''''''''''''''']'6''''w'''''a'r'd','e'l'g''''5'.'0'''n'a't'c'e'r'[' 'a' ')'R't'h'''''''''''''''''''''']'w'a'r'd','e'l'g'n''''5'.'0'''a't'c'e'8''''r'[' 'g'i'r'(' 'e''''6''''8'.'1'''''''''''''''''''']'''w'''a'r'6''''d','e'l'g'n'a't'c'e''4'''5''''r'[' 'd'o'n''n'}':'$'1'_'p'$'''''''''''''''''''''''''8'''''''''''']'e'u'l'b'='t'x'e't'[' '''''''''''''''''''t'p'8'='p'e's' 'r'e'n'n'i' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'p'8'='p'e's' 'r'e'n'n'i','''''' 'e'z'i' ''''''s'e't'o'n't'o'''''''''''''''''''''''''''''o'f''''''''''''''''''''''''''''''7'2''''''''''''''''''''5'3'1'='n'i',''''''''''''''''']'0'8'1'''''''''-'''0'8'2'='t'u'o''7'2''''-''''[' '''' 'o't' '''''''''5' ''4'='n'i''''''''''''''''''''''''''''''''''''''''''''''''''''$'q'$' 'd'n'a' '$'p'$' 's'a'c'''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''''''''''''''''i'l'p'''''''''''''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''r'''''e'''''t'''''s'''i'g'e'r' 'y'b' '''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's'''''']'''''''''''''''''y'''e'k'`'`'['c'o'd' 't'a' '''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''r'''''e'''''t'''''s'''i'g'e'r' 'e'h't''''''''''''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's'''''','''''''''''''''''''''''''''''''' 't'a''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''''''''''''''}''''''''''''A'`'`' ':'''''y'e'k'`'`'{'' ''''''''''''''']'0'8'1'''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''=''''''''''''''('t'e'g'.''''''''='''''')'''t'u'o'[' '''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n''i'''''x'd'i'''''i'''''{' ')'5'''o''''('''''''''''''''''''''''''$'0''''' '''''e'''''g'''''''''''''''''''''''''''''''''''e'''x'd'I''''''''''''''g'''''/''''' '''''n'''''$''''' '&' '}')'{'t't't'x'e't''$'n'$''t'a'''t'''''''''.'''2','3'(' 't'a' ' ')'s'm'm'o'c'(' 'e'd'o'n''n''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's'''''''''''' '''''o'''''w'''t'','''''''''''''''''''''''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g''''''''''''''''''''''''''';']'[' '=':' ')'''g'n'i'p'p'o'h's'''('t'e'g'.'c'o'd'n''n'i'p'p'o'''''l'i'a't'''h'''''s'''''''d'a'e''''''''''''''''''l'''''i'''''a'''''t'''''''''''''''''''''''''''''''('t'e'g'.'')'''''h'''''''''''''''''''''''''''''''''''''n''''';''''')'''''''''''k'''''l'''''i'''''m'''''''''''('''''t'''''r'''''e'''''s'''''n'''''i'''''.'''''l'''''i'''''a'''''t'''''''''''''''''d'''''a'''''e'''''h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'1'('x'd'i'.')'''g'n'i''''d'a'e'h''''''p'''''p'o'h's'''('t'e'g'.'c'o'd''''''''''''''')'''''0'''''('x'd'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'L''''''''''y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's''' '''''''''''''''''''''''''''''''''''' 's'i' 'a'c'i'l'p'e'r' 'a' 'r'o'f'''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'''' 't'a't's' 'l'a'c'o'l'''''''''e'k'a'm' 'e'w' ''''''''''''''''' 's'e'g'n'a'h'''''''''''''''''h'''''a''.'''''''''''''''''''''n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w''''o't'e'N'''''''''''''s'i'h'T''''''''''''c''''' '''''e'''''t'''''a'''''t'''''s''''' '''''f'''''o'''''''' '''''o''';''''''t'''''''''''''''''''s'a'c'i'l'p'e'r' 'n'e'e'w't'e'b' 's'''''''''''''''''''''''''''''e''''''''''''''''''''''e'w't'e'b' 'e't'a't's' 'l'a'c'o'l' 'o't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''n'''''.'''''''''''''t'y'r'e'c'o'r'g'''''''''''''''''''''''''g'n'i'p'p'o'h's'''''''''''''''''''''''''''''''$'p'$' 's'''''''w'''''o'''''r'''''r'''''a''''' ''''''''''''$'q'$' 'a'c'i'l'p'e'r'''''''''''''''d'''''''''e'''''h'''''s'''''a'''''d''''' '''''h'''''t'''''i'''''w''''' '''''d'''''e'''''t'''''c'''''i'''''''''''''''''''''''''''n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'a'i'v' '''''p'''''e'''''d'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''h'''''t'''''i'''''w''''' '''''n'''''w'''''o'''''h'''''s' 's'i' 'd'n'a' 'l'e'd'o'm' 'r'u'o' 'n'i' 't'i'c'i'l'p''''''''''''''''t'i'c'i'p''''''''''l'p'm'x'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'i' 's'e'g'n'a'h'c' 'e's'e'h't' 'f'o' 'n'o'i't'a'c'i'n'u'm'm'o'c' ''''''''''''''''''''''''.'e'g'a'p'''''''''''' 'y'l'n'o'''''''' '' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','y''''''r'a'''''w''''' '''''c'''''i'''''f'i'c'e'p's'-'n'o'i't'a'c'i'l'p'p'a' 'n'a' 'n'i' ''''''''''''''''''''''''''''o't' 'g'''r'o'f'''''''''''''''''''n'''''.'''''n'''''o'''''i'''''t'''''u''''''''''''''i'''''l'''''o'''''s'''''''''''l'o'e'r' '''''n'''''i'r'e'f'e'd' 'y'l'l'a'i't'n'e't'o''''''''''n'e't'p' 'r'o' 's't'''''''t's'c'i'l'''''''c'i'f'n'o'c' 'h'c'u's' 'g'n'i'v'l'o's'e'r' 'y'l'l'a'c'i't'a'm'o't'u'a' 'n'i' 'r'e'p'o'l'e'v'e'd' 'e'h't' '''''''''''.'''''e'''''g'''''p'''''a' 'e'h't' 'n'w'o'd' 'g'n'i'n'n'u'r' 'e'm'i't' 'd'n'a' 's'w'o'r'r'a' 'd'i'l'o'''''''o'l's' 'd'e'l'l'e'b'a'l' 'h't'i'w' 'n'w'o'h's' 's'n'o'i't'a'c'i'f'i'F'''''','''''''''''''''''''''''y'l''''d'''''o'''m' 'd'n'a' 's''''d'e'x'o'b' 'n'i' 'n'w'a'r'd' '''''''d' 'e't'a't's' 'l'a'c'o'l'''''''''''''''''''''''''''''''''''''''' 'n'w'a'r'd' 's'e't'a't's' 'h't'i'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'l'p'm'a'x'e' 'e'h't' 'n'i''''''''''''''''''''''''''$'p'$''''g'n'i'v'''''' ''''''''''''''''''''''''''''' 'e'h't' 'n'o' 'y'l'e't'a'r'a'p'e's' 'n'w'o'h's' 'e'r'a' ','s'a'c'i'l'p'e'r' 'n'e'e'w't'e'b' 'e't'a'g'''''''e'g'a''''e'p'o'r'p' 's'e'g'n'a'h'c' 'n'e''''''''''''''''''''''{'{'{'{'{'{'{'h'w' ','''''''b'''''''e's'a'c'''''''''''''''r'''''a' 'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'f''''''' 'd'o' 's'd'o'i'r'e'p''''''''''''''''''''''''' 'k'r'o'w't'e'n'''''''n'e' ','e't'a't's' 'l'a'c'o'l' 'r'i'e'h't' 'y'l''''r'o'f'''n'''o''''''''''''''''''''''''''''''''''''''''''''''''''''e't'a't's' 'l'a'c'o'l' 'r'i'e'h''''e't' 'e't'a'''''''''s'e'i'r'e'c'o''''i'r'g''''''t'''u'm' 's'a'c'i'l'p'e'r' 'e''''''''''s'e'i'r'e'c'o'r'g'''''''c'n'i'S''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g'''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a'c''''''''''s'e'i'r'e'c'o'r'g'''''''o'l' 'r'i'e'h't' 'n'o''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''' 'k'r'o'w'''''''''''''s'e'i'r'e'c'o'r'g''''''''''o'r'c'''''''o't'e'n' 'd'n'a' 'y'l'l'a'c'o'l' 'e't'''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'r'e'c'o'r'g'''''''''''''''''n'a'c' 'd'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'n'a' 'e'r'a'h's' 'o't' 'r'e'd'r'o' 'n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'a' 'h't'i'w' 's'k'r'o'w''''''''''''''''''''''''''''''''''''''''r'o'f' 's'n'o'i't'c'n'u'f' 'm'h't'i'r'o'g'l'a' 'r'u'o' 'd'n'a' ''''''''''''''''''' 'r'u'o' ','s'e's'o'p'r'u'p' 'l'a'n'o'i't'a't'n'e's'e'r'p' 'r'o'f' 'y'l'e'r'u'p' 's'i' 's'a'c'i'l'p''''l'e'r' 'o'w't' 'f'o' 'e'c'i'o'h'c' 'e'h'T' '''''''''''''''''''''F'''''''W'''''s'e'i'r'e'c'o'r'g''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'n'i'b'm'o'c' 'e'r'a' 's'n'''''o'''''i'''t'a'c'i'f'i'd'o'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e't'a'c'i'n'u'm'm'o'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'r'e'e'''''''e'i'p' 'r'i'e'h't' 'h't'i'w' 'n'o'i't'c'e'n'n'o'c' 'k'r'o'w't'e'n' 'm'r'o''''m'f'r'e'p' 'o't' 'n'e'h'w' 'e's'o'o'h'c''''''''''''' 'd'n'a' 'y'l'l''''''''''y'l'l'a'c'o'l' 'e't'a't's' 'e't'a't'u'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'a'c'o'l' 'a't'a'd' 's's'e'c'o'r'p' 's'a'c'i'l'p'e'R' '.')'e'd'i'''''''e'd''''''''''e'z'i's' 'd'n'a'h'-'t'h'g'i'r'(' '$'q'$' 'd'n'a' ')'e'd'''''''''')'e'z'i's' 'd'n'a'h'-'t'f'e'l' 'e'h't' 'n'o' 'n'w'a'r'd'(''''''''''d'n'a' '$'p'$' 's'a' 'd'e'l'l'e'b'a'l'''''''''''''''' 'h't'i'w' '}'s'a'c'i'l'p'e'r'{'h'p'm'e''''''' 'r'o' ','''' 's'e'c'i'v'e'd' 'g'n'i't'u'p'm'o'c' 'o'w't' 'e'm'u's's'a' 'e'w' 's'e'l'p'm'a'x'e' 'l'l'a' 'n'I' '''' ''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ''''p' 'a'c'i'l'p'e''''p'R''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''o'''''i'''''t'''''c'''''e'''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'q'$' 'd'n'a' '$'p'$' 's'''a'c'i'l'p'e'r' 's'a' 'd'e'l'l'e'b'a'l' 's'e'c'i'v'e'd' 'g'n'i'''''''''''''d' 'r'e't'u'''''''u't'p'm'o'c''''''''''''''''''''''s'e'c'i'v'e'd' 'o'w't' 'e'''''''''''' 'y'l'e't'a'i'd'e'm'm'i''m'u's's'a' 'e'w' 'r'e'p'a'p' 's'i'h't' '''''''''''''''' 's'i'h''''''''''''''s'u'o'n'o'r'h'c'n'y's'a' 't'n'i' '''b''s'e'l'p'm'a'x'e' 'r''''h't'a'm''''''u'''''o''f'''t'(''e'g''''s'''''''''''''''''''''')'''''''''a' 'l'''''''''''''r'u'o' 'l'a'''''''''''''''''''''''''''''''''''''''' 's'e'l'p'm'a'x'e' 'l'l'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r' 'o'w't' 'e'r'a' 'e'r'e'h't' 'e'l'p'm'a'x'e' 'e'h't' 'n'I' ''{' ')'6','0'('''''''''''''''''''''''''''''''''''''''''''''''''''''''''i''''''''''''''''''''''''''''''''''''''''''''''' ' ' 'n'''''''''''''''''''''}'''''''''''''''''''''''''''''''i'''''''}')''''}'{'f's'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'''n'_'k' ''','''''''','''''e'''''l'''''g'''''n'''''a'''''r'''''''' '''''}'''''1'''''-'''''n'''''{'''''_'''''k''''' ''''','''''s'''''t'''''o'''''d'''''''' ''''','''''2'''''_'''''k''''' ''''','''''1'''''_'''''k''''' '''''e'''''l'''''g'''''n'''''a'''''l''''''''('''''''''''''' '''''}'''''r'''''o'''''s'''''r'''''u'''''c'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''' ''''' ''''' '''''n''''')'''''i'''''('''''}'''''x'''''d'''''i'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''.''''''''''''''''')'''''n'''''_'''''k''''' ''''','''''''','''''e'''''l'''''g'''''n'''''a'''''r'''''''' '''''}'''''1'-'n'{''''''''''1'-'n'_'k' ','s't'o'd'' ','2'_'k' ','1'_''''1'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'''''''t'a'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'''''$'2'_'}'x'd'I'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'''n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n')'i'('}'x'd'i'{''C'''f's'h't'a'm''.')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','',')'1'_'k'('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '1'_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''a'm''n'''''''''''''''''}'('x'd'i'{'f's'h't'a'm'''i'''.'''''' ' ' ' '''''''''0'='n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'i'('}'x'd'i'{'f's'h't'a'm''.')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'5'_'}'x'd'I'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'0'='i'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''U''''''''''}'''''''''''('''''''' ''''''''''''''''''''''''i'''''''''''''''''''''''''''''''''''''''''''''' ' ' ''f's''''r''''''''''''''''''''')'k' ','','e'l'g'n''i'''a'r''e'l'g'n'a'l'''''''''''''''''''''''''''''''''''''''''''''''}'$'0'>'n'''''''''''''''' ',''e'g'd'e'w'''''n',''''',' '0'>'n'''''''''''''''''''''''''{'t'i'h't'a'm''$'{'C'''''''''''''''''''''''''''''''''''''''''''''''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'1'-'n'('}'x'd'i'{'f's'h't'a'm''.')'i''''''k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'''{'''''i''''f'''''s''''''''''''''''' ',''e'g'd'e'w'','' '0'>'n''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''$'{'C'm'o'i'x'A'''m'o'i'x'A''n'(''''o's''''''r'T'''''x''i''''')''''-'n'(''d'i'''''''''R''''''' 'n''''''''''''''''}'$'''}'x't'c'{'t'i'h't'a'm'' '''''''''''')'''''''''r'''''u'''''c'''''{'''''t''''x''i''''')'n'(''d'i'''''''''''''n''i'''''h'''''t'''''a'''''m''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''''x''')'n'(''d'i'''''''''$'''''''''''''''''''''''''''''''''''''}'''''''''''''x''i''''')'n'(''d'i''''''''''''''''r'''''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' '''''n''''''''''''''''''''''''''')'k' ','','e'''n''''')'0'(''''''''')'''''''''''''''''''''''''0'(''''0'''('''l'g'n''''x''i''''')'n'(''d'i'''a'''''r''''e'l'g'n'a'l''(''''''''''''''''''''''''''''''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' '''''''''''}'''''$''''''''''''}'x't'c'{''f''''''r'o's'r'u'c''''''s''''''''''t'i'h't'a'm'''''''t'a''''''''''''''''''''''%''''')'''''}''''''('''''''''''}')'{'f's'h't'a'm''n''x'd'i''''''''''''d'''''a'''''e'''''h'''''{'''''f'''''s'''''h'''''t'''''a'''''m'' ','','e'l'g'n'a'r'' ')'n'_'k'('}'T't's'i'l'{'f's'h't'a'm'' ','}'1'-'n'{'_'k' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'','e'u'l'b'''$' 't'a' ' ''''$'1''i'B''''_''x'd'''''')'''R't'f'e'l''''''''''p'e'r'''('''''''''''}')'{'f's'h't'a'm''n''x'd''''''(''' 'e'd'o'n''n'''''''''','e'u'l'b''''h's'a'd',''''' ''''''''5''''''''''';')'4','2'(' '-'-' ''-'-'''''')'''''0''''','''2'(' ']''''='5''''''''''''t's'a'e' 'h't'u'o's'.'''''-'-''''''4''''w''''t's'e'w''''''''''''''''t's'e'w' 'h't'u'o's'.''a'''''r'd'''[''''' '''''h'''''t''''''''''''t's'a''''x'd'I'''e''''''''''''2''''''''''t''-'-''''''s'a'e' 'h't'r'o'n'.''''''a'''''p''''''''-'-'''''''''n'''''''''''''''''''''t's'e'w' 'h't'r'o'n'.''''''' '''''''''''''''''s'''''''''''''''''''''0't'f'''3'''4'''e'l''''''''''''n''''''1''''''''''''''''''''''''''''''''''''''''''''''x''3'''d'I'''''''''''''''''''''''''''''''''''o'''''''''0''3'''4'''''''1't'h'g'i'r'''0''''''''''''''''i'''''''1'''2''''''`'''`''''''''''''''''''''''''''''''''''2'''''''''''1'''''''''''''''';'}'}''''']'''''A'`'`' ':'''' '''''y'e'k'`'`'{''{' ')'3','4'(' 't'a' ''')'2't'r'a't's'(' 'e'd'o'n''n''''`'''''''''''''`''''z''''' '''''''''''''''`'`''''''`''''''''''''''''''0't'f'e'l'''`''''''''''''''f'o' 't'n'e'm'p'o'l'e'v'e'd'''''''''''''x'd'I''''''''''''''''4''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''`'`''''''''''''''''''''''''0't'h'g'i'r'''''''''`'''''`' '1''''`'`'''' ''`''''''`'''''''''''''''`' '''''''''`'''''''''''''`'`''''''''''''7'''''''''''''''''''''`'''''''''7''''`' '''''''''''''''''d'e'h's'a'd',''''''''''''''`'`''''`'`''''''''','d'e'h's'a'd''''''''7''''''''''''''''''''''''''''x''5'''d'I'''''''''''''''''''''''''4''1''''''''''5'.'6'''''''''' ''4''''''''''''''''''8'.'0'='e'l'a'c's',''''''4''''''''''''''''''''''''''''''''''''''';')'5','3'(''8''' '-'-' ')''6'''''''''''''''''''''''''''''''''''''''''''''''''s'n'o''''''''''''''''''''''')'e'''s'''''i'''''w'r'e'h't'o' 'r'o'(''' ''''''''''''''''''''''''''''''''''''''h'''''c'''''u'''''s''''' '''''r'''''o'''''f''''' '''''d'''''e'''''e'''''n''''' '''''e'''''h'''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''''''''''''''h'''''t''''' '''''i'''''t'''''a'''''t'''''c'''''e'''''p'''''x'''''e''''' '''''r'''''e'''''p'''''o'''''l'''''e'''''v'''''e'''''d''''' '''''f'''''o''''' '''''''''''''''''''''''''' '''''d'''''n'''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''t'''''i'''''c'''''i'''''''''''''''''''''''i'''''c'''''l'''''p'''''''''''''''''''''''l'''''['''''x'''''e''''' '''''r'''''e'''h't'e'h'w' 'f'o' 's'i's'y'l'a'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''''.'k'r'o'w' 'e'r'u't'u'f' 's'a''''t' 'e'g'a'u'g''''''''''u'g'a'n'a'l' 'a'm'e'h'c's'''''''''''''''''''m'e'h'c's'a' 'a' 'h'c'u's''''a' 'f'o' 'n'g'i's'e'd' 'e'h''''e't' 'e'v'a'e'l' 'e'W' '''5'.'0'-','3'(' ']'d'e't't'o'd','w'a'r'd'[' 'h't'a'p''n''''''''''''''0'' 't'f'5'''''0'''''''''6'''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ''''e'l'3''''''''''''''''''''''n'''''''6'''''''''3''''''''''''''''''']'w'a'r'd','e'l'g'n'a'8''''t'c'e'r'[' ''''''''''''''''''''''''t'i''''''''''''''''''1'.'''t'i'''''''''''5'.'2''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'e'z'i's'e't'o'n't'o'o'f''{' ']'e'u'l'b'='t'x'e't'[' ')'8'.'1','4'(' 't'a' ' ')'s'm'm'o'c'(' 'e'd'o'n''n''t't'''''''''''''''{'}''t't't'x'e't'''t'i''''''''''''''''''''''''t'i''''''''''''''''''''''''''8'$'''''''''''''$''''''']''''''''{''}'t't't'x'e't'''w'a'r'd','e'l'g'n'a't'c'e'r'[' '('''''''''''{'}''t't't'x'e't''''''''$''''''''.'$''''''t't't'x'e'$'$'''''t'''''''''''''''''''4''''''''''''''$''''''t'.''t'''''''''{'}''t't't'x'e'''''''t'x't''t'''x'e't''''''''''''t't'''''''''''''''''''''''''''';'}'}''}''''''f'f'0'0'0'0'#''`'`''t'''t'''' ':'''2''''''''{''$'}''t't't'x'''''''''{'}''t't't'x''''t'e't''$''''e't''''''''''''''e'u'l'b'6''''`'`'{'' ''''''''''''''''']'''m'r'''w'''a'r'd'''m'r''','''e'l'g'n'a't'c'e'r'[' ''6'''':'''''''s''.''t'.''t''''''r'o'l'o''''''''''''''t't'''''''''.''8''''''''']'w'a'''t't'''r''''''t't''''''d','e'l'g''t't''''''n'.''a't'c'e'r'[' ''c'''''''''''''''''''''''r'a'V''''''''}'g'n'i'r't'S'{'m'r'h't'a'm'' 'n'i'' 'x''''''''''`''$'''''''''{''$'m'r'h't''m'r''''''a'm''''''''''''''''''''''''''}'''''''{'t''}'''t''''''''{'''t'}''''t'''''''{''''}'''t't't'x'e't''''''t'''''x'e't'''t'''''x'''e't'''''''''''''''''`'''{'''''''''''''''['{' ''''''''$'1'_'x'$' '&''''''[''''''''''''''''''''''')'''''''''''']''''['''''''4''''',''''''''''''''}'y'e'k'{'t't'h't'a'm'''$'$'''8'''''(''''' 't'a' ')'0't'''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' 'h'g'i'r'(' 'e'd'o'n''n'''''' ''''''''''''''''''''''''''''''''''''`'`''''''''''''''''''''''''''''`'`'''''''''''''''''''''`'6''''`''''''}''''''''''''''''''''''''''']'w'a'r'd','e'''''''''''''''''''''''''''''''''l'g'n'a't'c'e'r'[' '''''''''''''''''''''''''']'5'3'1'='n'i','0'7'2'='t'u'o'[' '''''''''''''''''''''''''''''''''''''''''''''''''''' ']'5'4'='n'i','0''''8'7'2'='t''''=''''t'u'o'[' ''''n'o'i't'a'c'i'l'p'e'r'-'o'r''''''''''''''''`'`'''''''''''`'`'''''''`'`''''''''''''''''''''''''t'''''n'''''i':'c'e's'{'l'e'b'a'l'''''''''''b'a'l't''*'e'''''''`'`''''''''''''''''''''''''''''''''''''''''''''`'`''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'`'''''''''0't'f'e'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'`'''''''''''`'`''''''''''0'''t'h'g'i'r'''''''''''''''''`'`''''''''''''''''''''t's'a'e' 'h't'''''''''''t's'e'w' 'h't'r'o'n'.''u'o's'.''''''''''''''''''''''''''''''''''''''''''t's'a'e' 'h't'r'o'n'.''''''''''''t's'e'w' 'h't'u'o's'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'5'.'8','5'(' '-'-' ')'5'.'0'-','5'(' ']'d'e't't'o'd','w'a'r'd'[' 'h't'a'p''n''''''''''''''''''''' ''''' ''''8'''''''''''''''''''''''''''']'w'a'r'd','e'l'''''''''''''''' '''''''''4''''2'''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' ''''''''s't'n'e''''''''''''e'u'l'a'v'-'i't'l'u'm' ''t'n'o'c''''''k'''''r''''''s'o'w't'e'n' 'e'z'i's'e't'o'n't'o'o'f''{' ']'e'u'l'b'='t'x'e't'[' ')'8'''t't'''.'''1','5'(' '''''' ''''(' 't'a' ')'s'm'm'o'c'(' 'e'd'o'n''n''g''0'1''''n'a't'c'e'r''8'''''''[' '''''''''''t't''''''''''' '''''''''''''''''''''''''''''''''''''t'','h'g'i'r' 'o't' 't'''' ''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'v'a'e'l' 'e'h't''''''''''''' 'e'h't' 's'd'r'a'w'o''''w't'''''''''''''''''''t' 'm'o'r'f' '''''''''''''''''''''''''''','f'a'e'l' 's'd'r'a'w'o't' 't'o'o'r' ',''f'e'l' ',''''''''''h't'a'p' 'e''''''''''''t'i' 's'a's'''' 's'e'k'a't'''h'''t' 's'e'n'i'f'e'd' 'n'o'i's's'e'r'p'x'e' 'e'h'T'''''''''''''''''' '''''''''''''']'''''w'''''a'''''r'''''d''''','''''e'''''l'''''g'''''n'''''a'''''t'''''c'''''e'''''r''''''''6'''''''''''[' '''''''''''''''0'1'''''''0'2'''''''']'w'a'r'd','e'l'g'n'a't'''''''{''''''''''''{''$'''''''''{'''}''t't't'x'e't''}''''m'r'h't'a''t't''''''m'''''m''''l'$'}''t't't'x'e't''''''c'''''e'''''t't'''r'''[' ''''' ''''' '''''6'''''''''''''''''''''''''''']'w'a'r'd','e'l'g' ''n'a't'c'e'r'[' '''''''''4''''''''''''''''''''''''''''t't''''''']'w'a'r'd','e'l'g'n'a'''0'1'''t'c'e'r'[' '''''''''''''''`'2'''''''t't''''''''`''''''''''''''''''']'w'''0'1'''''''0'2'''a'r'd','e'l'g'n'a't''t't''''''c'e'r'[' ''''''''''''''''''''''''''4'''''' ''''''''''''''''''''''''' ']'w'a'r'd','e'l'g'n'a't'c'e'r'['''''`'`'''' '''2''t't''''''''''''''''''''''''''''''0'1'''''''']''t't''''''w'a'r'd','e'l'g'n'a'''''''a'n't'c'e'r'[' '''''''''''''''''''''''''`''''''''''''''''' ']'w'a'r'd','e'l'g'n'a't'c'e'r'['''' ''''''''{''}'t't't'x'e't''''`'''''''''''''s'm'r'o'f'r'e'p'''''''''''''''''''''''''s'e't'u'c'e'x'e'''''''''''''''''''''''''''''''`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'$'p''''q' 'q'e'n''''q'$' 'a'c'i'l'p'e'r' 'r'e'h't'o' 'y'n'a' 'f'o' 'e't'a't's' 'e'h't'(' '$'q'_'A'$' 'n'o' 'd'n'e'p'e'd' 't'o'n' 'o'd' 't't'''''''e'c'n'i'S''''''`'''''''''''''''''''''''''''''''''''']'w'a'r'd','e'l'g'n'a''t't''''''t'c'e'r'[' '''''' '''''''''`'`'''' ''`'`'''''''''''''''''''''''''''''''''''''''''''''''''''''''''`''''''`'`''''''''''''''' '''''''''`'`'''`''''' ''''''''''''`'`''''''''''''''''''''''''''''''''''''''',''`'`''''e'u'l'b','d'''''''`'`'''''''''''''''''t't''' '''''''' ''''''|'b'r'e'v''''''''''''''''''''''{'t't't'x'e't''''''''''''''''''''e''''''''{'t't't'x''}'''e't'''h'''''''t't'''s'''''''a'd''`'`''''''''`'`'''''''`'`''''''`'`'''''''`'`''''''''''''''' '''''''' ''''''''' ''''''''''''''' ''''''''''''''''''''7'''''''5'3'1'''''''5'4'='n'i',''2''''9''''''''']'0'8'1'='t'u'o'[' ''''''''''''''''`'`'''''''t't''''''5'4'''''''''`'`''''''''''5'3'1'='n'i','''''`'`'''''''''''7'2''''9''''''''''''''''']'0'8'1'='t'u'o'[' ''''' '''''''' ''''''''''''''''''8'''''''''''''''''{'t''}'''t't'x'e't'''''''''''''''''''''''''''''''''''''''';')'8','4'(' '-'-' ')'''''''{'t't't'x'e't''''''5'''''.'''0'-''}''','4'(' ']'d'e't't'o'd','w'a'r'd'[' 'h't'a'p''n''''''''''''''''' ''''''''5'.'7''''''''''''''''''''''''''''''''''''''''''''''5'.'7''''''''''n''''''''''''''''''';'}':'$'q'$' 'a'c'i'l'p'e'R'{' ')'8','8'(' 't'a''' ')'R't'h'g'i'r'(' 'e'd'o'n''n';'}':'$'p'$' 'a'c'i'l'p'e'R'{' ')'8',''''.'0'(''''9' 't'a' ')'R't'f'e'l'(' 'e'd'o'''t't'''n''''n''.'0'=''''''''']'x'i'r'''t'a'm'6''''5''''[' ''e'''''0't'f'e'l''''''''''''{' 'e'd'o'n'' ' ' ' 'n'''''''l'''''a''''''''''''''''''''''{' 'e'd'o'n''''''''''''''';'}'n''' '''''d'o'n''' ' ''6''' ' 'n'5'''''' ';'}'c's','''0'4'''''''''''''{' 'e'd'o'n'' ' ' ' 'n'''''''''4''''''''''''''' ''''''''{' 'e'd'o'n'' '' 'n''''''''';'}'n''' ' ''3''';'}''''''''''']'w'a'r'd','e'l'''''''''']'x'i'r't'a'm'[' ''''''''''''''''''''''''''6'''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'e'z'i's'e't'o'n't'o'o'f''{' ']'e'u'l'b'='t'x'e't'[' ')'4'.'1','4'(' 't'a' ' ')'s'm'm'o'c'(' 'e'd'o'n''n'g''''''''']'x'i'r't''''''''''''{' 'e'd'o'n'' ' ' ' 'n''a'm'[' ''n''3'''''''''''''''''''{' 'e'd'o'n'' ' ' ' ''''''';'}'n''' 'n''' ';'}''''a't'c'e'r'[' '''''''`'`''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''''}'''']'}'']'}''e's'l'a'f' ':'''''e'n'o'd'`'`' ','''''k'l'i'm' 'y'u'b'`'`' ':'''''e'l't'i't'`'`'{''[' ':'''''o'd'o't'`'`'{''{' ']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ')'4','8'(' 't'a' ''''''''''`''''''''''''''')'0't'h'g'i'r'(' 'e'd'o'n''n''`''''''''`'`'''''''''''`'`'''''''''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' '''''''''''''''''''''''0't'f'e'l''''''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' '''''''''''''''''''''''0'''t'h'g'i'r''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' '''''t's'a'e' 'h't''''''h't'r''''''''''''''''']'w'a'r'd','e'l'g'n'a't'c'e'r'[' ''o''''`'`''''''''`'`'''''''''''`'`'''''''''''''''''''''''''n''''''''''''`'`''''''''''''''''''`'`'''''''''''''''''''''''''''''''''''''''''2'''''''''`'`''''''t's'e'w''''''''''''''' '''='''`'`''''''''''''''''h't'u'''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''''''''''''''t's'''''''''t''`'`''''s'a'e' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','e'u'l'b'''''''h't'u''''''''''''''''']'5'3'1''''''''''''t's'e'w' 'h't'r'o'n'.'='n'i','''']'0'7'''''''0'8'2'='t'u'o'[' ''o's'.','''''''''''''t's'a'e' 'h't'r'o'n'.'''''''''''''''' ']'5'4'='n'i','0'7'2'='t'u'o'[' ''d'e'h's'a'd'''''''''''''''''''''''''''''''''h't'u'o's'.'','e'u'l'b','d'e'h's'a'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'r'e'w' '''''''''''''''''''h't'u'o's''''''o''''`'`''''''s'''.''u'o's'.''''''''''''''''''''''''''''''''''t's'a'e'''''''o'n'.''''''''''t's'e'w' 'h't'''''r'o'n'.''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''' '''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`''`'`''''`'''''''-''','e''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''8'.'0'='e'''''0't'''`'`'''''`'`'f'e'0''''''''''''''''''''''''''''''''l''''''''l''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'`''''';'}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','e'u'l'b','d'e'h's'a'd'''''''''''''''''''''''''''','e'u'l'b','d'e'h's'a'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''{''{''' ')'0'.'6','''''''''''8'(' 't'a' ')'0't'h'g'i'r'(' 'e'd'o'n''n'a'''c's',''u'l'b','''''''''d'''''e'''''h'''s'a'd''''''''''''''''''''''''''''''''''''''''''''''''''''''`'`''''''''`'`''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'`'''''''''''`'`''''''`'`''''''''''''''''''''''''''''''''''''''''''''''`'`''''''''''''''''''''''''''''''''''''''''''''`'`''''''''''''''''''{'''''''''''''''''''''''''''''''''''''''''''''0't'f'e'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'r'o'p'p'u'''''s'''''''''0'''t'h'g'i'r'''''''''''''''n'o'i't'a'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'd'n'''''''''''''e'h't' 'e'''y'a'm''''''''''''''''''''''''''''m'u's's'a' 'e'W'''''''''''''''''>'-',''''''''''e'u'l'b','d'e'h's'a'd',''a''''''''''''''>'-','''''''''''''''''''''''''e'u'l'b','d'e'h's'a'd',''''''''l'''''e'''''d'''''o'''''m''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''o'''''i'''''t'''''''''''''''''''''''''' ''','y'a''''d'n'a'''''l'''''''''''''y'l'a'y'e'd'a'c'i'l'p'e'R'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'C'{'n'o'i't'c'e's'b'u's''n'n'l'e'd' 'd'n'a' 's'n'o'i't'r'e's'n'i' 's'a' 'd'e's's'e'r'p'x'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''S''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'''''''''''''''''''''''e'e'r'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e's'u' 't'n'e'r'e'f'f'i'd' 'd'n'a' 'r'e's'u' 'e'm'a's' 'e'h't' 'y'b' 'd'e'n'w'o' 's'e'c'i'v'e'd' 'n'e'e'w't'e'b' 'h's'i'u'g'n'i't's'i'd' 't'o'n' 'o'd' 'e'W' ''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'a'c'i't's'i'm'i't'p'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r' 'e'n'''''''''''''''''''''''''''''a'i'v' 'd'e'r'e'v'i'l'e'd' 'e'b' 'o't' 's'e'g'a's's'e'm' ''o' 'y'b' 't'''''''r'e'h't'o' 'n'e's' '''''''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''''''''''s'a'c'i'l'p'e'r' 'l'l'a' 'o't' '''''' 'y'b'''''''''''''''''''''s''''''''''''''''''''''''''''''''' 'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''T' '.'s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'e'r'h'''''''''''n'o'i't'p'y'r'c'n'e' 'd'n'e'-'o't'-'d'n'e' 'h't'i'w' '''''''''''''''''''''''''''''''''''S'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 't'e's' 'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'t'g'2'1'0'2':'a's'u'i'n'e'i'B'{'e't'i'c''~'e't'a't's' 'e'm'a's' 'e'h't' 'o't' 's'd'a'e'l' 'o's'l'a' 's'e't'a'd'p'u' 'e's'o'h't' 'f'o' 'n'o'i't'u'c'e'x'e' 't'n'e'r'r'u'c'n'o'c' 'n'e'h't' ','e't'a't's' 'e'm'a's' 'e'h't' 'o't' 'd'a'e'l' 's'e't'a'd'p'u' 'f'o' 's'n'o'i't'a't'u'm'r'e'p' 'l'a'i't'n'e'u'q'e's' 'l'l'a' 'f'I'''''''''''''''''''''''''''''''''''''''' 't'e's' 'e'm'o's' 'r'o'F'''''''''''''a' 'f'I' 'm'e't'i''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'w''''a''''''''e'v'l'o's'e'r' 'e'r'a' 's't'c'i'l'f'n'o'c' 'w'o'h' '.''''''s'''''e'''b'i'r'c's'e'd' 't'a'h't' 's'c'i't'n'a'm'e's' 'l'a'm'r'o'f' 'e'v'i'g''''''''''o'r'p' 'e'w' '}'s'c'i't'n'a'm'e's':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'I'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''S''''''''''''' '''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'}'d'e't'a'l'e'r':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'e'e's'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'a'c'i'l'p'e'r' 'c'i't's'i'm'i't'p'''''''''''''''''''''''''''''''''''T''''''''''''''''''''''''''''''''''''' 'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'d'k'6'0'0'2':'i'L'{'e't'i'c''~'s'e's'a'e'r'c'n'i' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'f'o' 'r'e'b'm'u'n' 'e'h't' 's'a'''''''''''''''''''''''''''''''''''' 'y'l'd'i'p'a'r' 's'e'd'a'r'g'e'd' 's'm'h't'i'r'o'g'l'a' 'T'O' 'f'o' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o' 't'b'u'o'd' 't's'a'c' 'e'v'a'h' 's'e'i'd'u't's' 'e'c'n'a'm'r'o'f'r'e'p' ','r'e'v'o'e'r'o'M' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'd'n'a' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' ','n'o'i't'a'c'i'l'p'e'r' 'c'i't's'i'm'i't'p'o' 'o't' 's'e'h'c'a'o'r'p'p'a' 'g'n'i't's'i'x'e' 's's'u'c's'i'd' 'e'w' 'n'o'i't'c'e's' 's'i'h't' 'n'I'n'n''o' 'e's'u' 't'a'h't' 's'n'o'i't'a'c'i'l'p'p'a' 'f'o' 't'n'e'm'p'o'l'e'v'e'd' 'e'h't' 'e'h't' 'y'f'i'l'p'm'i's' 'o'''e'b' ''t' 'e'p'''''''o'h' 'e'w' ','s'e'r'u't'c'u'r't's' 'h'c'u's' 'n'o' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 's'e'l'd'n'a'h'''''''''''''''''''''''''''''''''''' 't'a'h't' 'm'h't'i'r'o'g'l'a' 'n'a' 'g'n'i'd'i'v'o'r'p' 'y'b' ';'s'n'o'i't'a'c'i'l'p'p'a' 'y'n'a'm' 'r'o'f''' 't'n'e'm'e'r'i'''''''''''''''''''''''''''''''''''')'}'l'm'x'-'n'o's'j':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'e'e's'(' 'u'q'e'r' 't'n'a't'r'o'p'm'i' 'n'a' 'e'r'a' 's'e'r'u't'c'u'r't's' 'd'e't's'e'n' ','d'n'a'h' 'r'e'h't'o' 'e'h't' 'n'O' '.'}'s'e'l'p'm'a'x'e':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 'e'l'p'm'a'x'e' 'y'b' 's'e'g'n'e'l'l'a'h'c' 'e's'o'h't' 'f'o' 'e'm'o's' 'e't'a'r't's'u'l'l'i' 'e'W' '.'e'e'r't' 'e'h't' 'f'o' 's'l'e'v'e'l' 't'n'e'r'e'f'f'i'd' 't'a' 's'n'e'r'r'u'c'n'o'c'''''t'i'd'e' 'f'o' 'y't'i'l'i'b'i's's'o'p' 'e'h't' 'o't' 'e'u'd' ','s'e'r'u't'c'u'r't's' 't'a'l'f' 'n'i' 'e's'i'r'a' 't'o'n' 'o'd' 't'a'h't' 's'e'g'n'e'l'l'a'h'c' 'e'l't'b'u's' 'p'u' 's'n'e'p'o' 's'e'r'u't'c'u'r't's' 'd'e't's'e'n' 'y'l'i'r'a'r't'i'b'r'a' 'o't'n'i' 's't's'i'l' 'd'n'a' 's'p'a'm' 'g'n'i's'o'p'm'o'C'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'p'y't'a't'a'd' 'e'l'b'a's'o'p'm'o'c' 'y'l'i'r'a'r't'i'b'r'a' 'n'a' 'o't'n'i' 's'e'r'u't'c'u'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'T'D'R'C' 'f'o' 'd'n'i'k' 'a' 's'i' 'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'b'i'r'c's'e'd' 'e'p'y't'a't'a'd' 'N'O'S'J' 'e'h'T' ''t's' 'e's'e'h't' 'f'o' 'l'l'a' 'e't'a'r'g'e't'n'i' 'o't' 't's'r'i'f' 'e'h't' 's'i' 'r'e'p'a'p' 's'i'h't' 'e'g'd'e'l'w'o'n'k' 'r'u'o' '''''''''''''''''''''''''''''''''''''''''''s''' ')'T'D'R'C'(''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 's'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'n'o'i't'a'r'e'p'o' 'e't'a'd'p'u' 'e'v'i't'a't'u'm'm'o'c'-'n'o'n' 'g'n'i'm'r'o'f''''o's'n'a'r't' 'y'b' 's'k'r'o'w' 'T'O' ','t's'a'r't'n'o'c' 'y'B' ''o'i't'a'r'e'p'o' 's'm'r'o'f's'n'a'r't' 'h'c'i'h'w' ','T'O' 'e'k'i'l'n'U' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'v'i't'i'm'i'r'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'c'u'r't's'n'o'c' 'y'b' 'e'v'i't'a't'u'm'm'o'c' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'a'c'i'f'i'd'o'm' 'g'n'i'k'a'm' 'd'n'a' ','e'r'u't'c'u'r't's' 'a't'a'd' 'e'h't' 'o't' 'a't'a'd'a't'e'm' 'l'a'n'o'i't'i'd'd'a' 'g'n'i'h'c'a't't'a' 'y'b' 'k'r'o'w' 'y'e'h'T' '.'s'e't'a'd'p'u' 't'n'e'r'r'u'c'n'o'c' 'h'c'u's' 'f'o' 'e'c'n'e'g'r'e'v'n'o'c' 'e'e't'n'a'r'a'u'g' 't'a'h't' 'd'n'a' 'd'e'i'f'i'd'o'm' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'b' 'n'a'c' 't'a'h'''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''' '''''s'''''e'''''r'''''u'''''t'''''c'''''u'''''r'''''t'''''s''''' '''''a'''''t'''''a'''''d''''' '''''f'''''o''''' '''y'l'i'm'a'f' 'a' 'e'r'a' 's'e'p'y't'a't'a'd' 'd'e't'a'c'i'l'p'e'r' 'e'e'r'f'-'t'c'i'l'f'n'o'C'n'o't' ','y'l'l'a'u'd'i'v'i'd'n'i' 's'r'e't's'i'g'e'r' 'd'n'a' 's'p'a'm' ','s't's'i'l' 'r'o'f' 'd'e'n'i'f'e'd' 'n'e'e'b' 'y'l's'u'o'i'v'e'r'p' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 'r'a'l'i'm'i's' 'h'g'u'o'h't'l'A' '.'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'c'i't'a'm'o't'u'a' 'h't'i'w' 's'e'r'u't'c'u'r't's''S''' 'a't'a'd' 'N'O'S'J' 'f'o' 'g'n'i't'i'd'e' 't'n'e'r'r'u'c'n'o'c' ','e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 's'c'i't'n'a'm'e's' 'l'a'm'r'o''''o'f' 'd'n'a' '''''''''''''''''''''''''t'c'i'l'f'n'o'c' 't'a'h't' 'e'v'e'i'l'e'b' 'e'W'''m'''''h'''''t'''''i'''''r'''''o'''''g'''''l'''''a''''' '''''n'''''a''''' '''''e'''''n'''''i'''''f'''''e'''''d''''' '''''o'''''t''''' '''''s'''''i''''' '''''k'''r'o'w' 's'i'h't' 'n'i' 'n'o'i't'u'b'i'r't'n'o'c' 'n'i'a'm' 'S''''r'u'O'n''s'n'o'i't'u'b'i'r't'n'o'''''''''''''''''''}'d'e't'a'l'e'r':'c'e's'{'l'e'b'a'l'''''''''''''e'l'b'a'''c' 'r'u'O'{'n'o'i't'c'e's'b'u's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'o'l' 'g'n'i'e'b' 't'u'p'n'i' 'r'e's'u' 'f'o' 'k's'i'r' 'e'h't' 's'n'e'p'o'''''''''''' 'y'l'l'a'm'r'o'f'n'.''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'd'r'o'f's'e'r'e'B'/'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'c'i't'n'a'm'e's':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 's'w'o'l'l'o'f' 'm'h't'i'r'o'g'l'a' 'e'h't' 'f'o' 'n'o'i't'a't'n'e's'e'r'p' 'l'a'm'r'o'f' 'A' '.'s'e'r'u't'c'u'r't's' 'a't'a'd' 'N'O'S'J' 'f'o' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c''''''''''''''''''''''' 'o't' 'h'c'a'o'r'p'p'a' 'r'u'o' 'e'c'u'd'o'r't'n'i' '''n'n'' 'o's'l'a' 'k'c'a'b' 'd'e'l'l''T'''o'''''r''''' '''''g'''''n'''''i'''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'l'p'm'a'x'e' 'e'm'o's' 't'n'e's'e'r'p' 'e'w' ','d'e'i'f'i'd'o'm' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'r'a' 's't'n'e'm'u'c'o'd' 'N'O'S'J' 'n'e'h'w' 'b''''' '''''r'''''e'''''t'''''a'''''l''''' '''''s'''''n'''''o'''''i'''''t'''''c'''''a'''''s'''''n'''''a'''''r'''''t''''' '''''e'''''v'''''i'''''t'''''a'''''t'''''n'''''e'''''t''''' '''''f'''''o''''' '''''y'''''t'''''i'''''l'''''i'''''b'''''i'''''s'''''s'''''o'''''p''''' '''''e'''''h'''''T' ''''''''''''''''''''''''''''''''''''''''e'w' ','s'e'c'i'v'e'd' 't'n'e'r'e'f'f'i'd' 'n'o' 'd'e'i'f'i'd'o'm' 'y'l't'n'e'r'r'u'c'n'o'c' 's'i' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'e'h't' 'n'e'h'W'' ''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'p'a'p' 's'i'h't' 'f'o' 'e'p'o'c's' 'e'h't' 'f'o' 'e'd'i's't'u'o' 'e'r'a' 's'l'o'c'o't'o'r'p' 'c'i'h'p'a'r'g'o't'p'y'r'c' 'y'n'a' 'd'n'a' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'k'r'o'w't'e'n' 'e'h't' 'f'o' 's'l'i'a't'e'd' 'e'h't' 'h'g'u'o'h't'l'a' ',''''''''''''''''''''''.'d'e's'u' 'e'b' 'o't' '}'g'k'5'1'0'2':'r'e'g'n'U'{'e't'i'c''~'''' 'l'o'c'o't'o'r'p' 'g'n'i'g'a's's'e'm' 'e'r'u'c'e's' 'a' 'd'n'a' 'k'r'o'w't'e'n' 'r'e'e'p'-'o't'-'r'e'e'p' 'a' 's'w'o'l'l'a' 'h'c'a'o'r'p'p'a' 's'i'h't' ';''''''s'k'r'o'-'''e'd'i'''w'''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'g'a's's'e'm' 's's'e'c'o'r'p' 'r'o' 'm'r'o'f's'n'a'r't' 'o't' 'r'e'v'r'e's' 'y'n'a' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 'd'n'a' 's't'n'e'i'l'c' 'e'h't' 'n'o' 'k'r'o'w' 'l'l'a' 's'm'r'o'f'r'e'p' 'm'h't'i'r'o'g'l'a' 'r'u'O'''''''''' 'e'W' '.'s'e'g'a's's'e'm' 'e't'a'c'i'l'p'u'd' 'r'o' 'r'e'd'r'o'''''''''''''''''''''''''s'i' 'e'r'u't'c'u'r't's','''''t' 'e'u'l'a'v'-'y'e'k' 's'i'''''''''''''''''''''''''''''''''r'''''o'''''-'''''e'r' 'y'l'i'r'a'r't'i'b'r'a' 'o't' 'd'e'w'o'l'l'a' 's'i' 'k'r'o'w't'e'n' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''u'o'b'a' 's'n'''s'i' '''g'n'i'''''o'i't'p'm'u's's'a' 'o'n' 'e'k'a'm' 'e'W' ''l'i'a'f' 'y'r'e'v'i'l'e'd''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''/'.'y'r'a's's'e'c'e'n' 'f'i' 'g'n'i'y'r't'e'r' 'y'b' 'y'r'a's's'e'c'e'n' 'f'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'n'o'i't'i'd'n'''''''''''''''''''''''''''''''''''n'I'd'e'k'n'i'L' 'd'n'a' 'e'v'i't'r'o'p'p'a'R' 'g'n'i'd'u'l'c'n'i' ',''o'c' 's's'e'n'e'v'i'l' 'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'r'e'v''''''''''e'v'e'i'l'e'd' 'y'l'l'a'u't'n'e'v'e' 'e'r'a' 's'e'g'a's's'e'm' 't'a'h't' 'n'o'i't'i'd'''''''''n'''''''''''''''''o'''''c''''' '''''s'''''s'''''e'''''n'''''e'''''v'''''i'''''l''''' '''''e'''''h'''''t''''' '''''s'''''i''''' '''''k'''''r'''''o'''''w'''''t'''''e'''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'c'i'v'r'e's' 't'e'n'r'e't'n'I' 'd'e's'a'b'-'d''''b'u'o'l'c' 'd'n'a' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'n'e'e'w't'e'b' 'n'o'i't'c'a'r'e't'n'i' 'e'h't' 'y'b' 'd'e'c'u'd'n'i' 's'm'e'l'b'o'r'p' 'y'c'a'v'i'''''''v'o'r'p' 'd'n'a' 'y't'i'r'u'c''''''''''r'c'u'e's' 'e'h't' 's'a' 'l'l'e'w' 's'a' ','s'e'v'l'e's'm'e'h't' 's'e'c'i'v'e'd' 'e'h't' 'f'o' 'y'c'a'v'i'r'p' 'd'n'a' 'y't'i'r'u'c'e's' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'l'g'n'a' 'e'e'r'h't' 'm'o'e'r'f' 'n'i'a'm'o'd' 's'i'h't' 't'a' 's'k'o'o'l' 'e'H' '''''''''''''''''''' '''''h'''''c'''''''''''''''''''''''c'''''h'''''i'''''h'''''w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't't'e's' 'g'n'i't'u'p'm'o'c' 'e'l'i'b'o'm' 'a' 'n'i' 'y'c'a'v'i''''''''''a'v'o'r'p' 'n'o'i't'a'c'o'l' 'g'n'i''''e'd'i'v'o'r'p' 'f'o' 's'n'a'e'm' 'a' 's'a' 'y't'i'm'y'n'o'n'a' 'f'o' 's's'e'n'e'v'i't'c'e'f'f'e' 'e'h't' 'd'e'r'o'l'p'x'e''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''t'''''n'''''e'''''m'''''e'''''r'''''i'''''u'''''q'''''e'''''r''''' '''''y'''''l'''''n'''''o''''' '''''r'''''u'''''O'''''''''''''''''''''''''''''''' '''''e'''W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'p'o't'p''''b'a'l' 'd'n'a' 's't'e'l'b'a't' ','''' 's'e'n'o'h'p't'r'a'm's' 's'a' 'h'c'u's' 's'e'c'i'v'e'd' 'e'l'i'b'''''''l'i'o'm' 'd'e'k'r'o'w'''''''''''''r'k'w'o't'e'n'''''''''''''i'b'o'm' 'n'o' 's'u'c'o'f' 'r'a'l'u'c'i't'r'a'p' 'a''''p' 'h't'i'w' ','s'm'e't's'y's' 'd'e't'u'b'i'r't's'i'd' 'e'l'a'c's'-'e'g'r'a'l' 'f'o' 'y'c'a'v'i'r'p' 'd'n'a' 'y't'i'r'u'c'e's' 'e'h't' 's'e'r'o'l''''''''''e'r'o'p'x'e' 'k'r'o'w''''''''''''''''''''''''''''''''''''''''o'f'''''''''''''''''''e'd'u'l'c'n'i' '''''''''''''''''''''' 'r'e'v'o'c' 's''''e't's'e'r'e't'n'i''''''''''t'i'w' 'h'c'r'a'e's'e'r' 't'n'e'r'r'u'c' 's'i'H'''''''''''''''''''''''''''''''''''''''''''''''''''''''h' 'e'h' 'y'l't'n'e'c'e'r' 'e'r'o'M'''''''''w'''''d'''''n'''''n'''''.'''''s'''''a'''c'i'l'p'e'r' 'r'e'h't'o' 'o't' 's't'i'd'e' 'e's'o'h't' 'e't'a'g'a'p'o'r'p' 'y'l's'u'o'n'o'r'h'c'n'y's'a' 'o't' 'd'n'a' ','t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'a'c'i'l'p'e'r'''''''''''''''' 'y'p'o'c' 'l'a'c'o'l' 's't'i' 'y'f'i'd'o'm' 'o't' 'e'c'i'v'e'd''''''''''p'e'r' 'h'c'a'e' 's'w'o'l'l'a' 'l'e'd'o'm' 'r'u'O' ''t'i'v'i't'c'e'n'n'o'c' 'k'r'o'w't'e'n' 't'n'e't't'i'm'r'e't'n'i' 'e'v'a'h' 'h'c'i'h'w' ',''.'s'p'o't'p'a'l' 'd'n'a' ''''''''''''''''''''''e'l'b'a't' ','s'e'n'o'h'p't'r'a'm's' 's'a' 'h'c'u's' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'n'o' 's'u'c'o'f''''p'''''''o'c''''''''''''''''''''''''''''''' 'y'l'i'r'a'm'i'r'p' 'e'w' 't'u'b' ','s'r'e't'n'e'c'a't'a'd' 'n'i' 's'r'e'v'r'e's' 'e''.'b' 'd'l'u'o'c' 's'e'c'i'v'e'd' 'e's'o'h'T' '.'s'e'c'i'v'e'd' 'l'a'r'e'v'e's' 'n'o' 'd'e't'a'c'i'l'p'e'r' 's'i' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'e'h't' 'f'o' 'y'p'o'c' 'l'l'u'f' 'a' 'h'c'i'h'w' 'n'i' 's'm'e't's'y's' 'r'e'd'i's'n'o'c' 'e'W''n'n'e' 'n'e'h't' 'e'r'a' 's't'i'd'e' 'r'e't'c'a'r'a'h'c'-'y'b'-'r'e't'c'a'r'a'h'c' ';'s'g'n'i'r't's' ''''i's''''''''''''''''''''''''''''''''''''''''''''s'r'e't'c'a'r'a'h'c' 'l'a'u'd'i''''''''''''''''''''''''''''v'i'd'n'i' 'f'o' 't's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'y'b' 'd'e't'n'e's'e'r'p'e'r' 'e'b' 'n'a'c' 't'n'e'm'u'c'o'd' 't'x'e't' 'a' ','e'l'p'm'a'x'e' 'r'o'F' '.'s'n'o'i't'a'c'i'l'p'p'a' 'f'o' 'e'g'n'a'r' 'e'd'i'w' 'a' 'f'o' 'e't'a't's' 'e'h't' 's's'e'r'p'x'e' 'o't' 't'n'e'i'c'i'f'f'u's' 's'i' 'l'e'd'o'm' 's'i'h'T'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'a't'a'd' 'n'o'i't'a'c'i'l'p'p'a' 'l'e'd'o'm' 'o't' 'N'O'S'J' 'g'n'i's'u' 'f'o' 's'e'l'p'm'a'x'e' 'e'l'p'm'i's'''''''x'e' 'e'm'o's' 'w'o'h's' 'e'w' '}'s'e'l'p'm'a'x''''a'e':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'I'''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'u'l'a'v' 'w'e'n' 'a' 'd'e'n'g'i's's'a' 'e'b' 'n'a'c' 't'a'h't' '}'r'e't's'i'g'e'r'{'h'p'm'e'' 'a' 's'a' 't'i' 'g'n'i't'a'e'r't' 'y'b' 'd'e'i'f'i'd'o'm' 'e'b' 'o't' 'e'd'o'n' 'f'a'e'l' 'a' 'f'o' 'e'u'l'a'v' 'e'h't''''''' 'a' 'w'o'l'l'a' 't'u'b' ','e'l'b'a't'u'm'm'i' 's'a' 's'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' 't'a'e'r't' 'e'W' '.')'l'l'u'n' 'r'o' ','n'a'e'l'o'o'b' ','r'e'b'm'u'n' ','g'n'i'r't's'(' 'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' 'a' 's'''f'a'e'l' 'a' 'r'o' ','e'd'o'n' ''.'h'c'n'a'r'b' 'r'e'h't'o'n'a' 'r'e'h't'i'e' 'e'b' 'n'a'c' 'e'd'o'n' 'h'c'n'a'r'b' 'a' 'f'o' 'd'l'i'h'c' 'A''''e'''''''''''''''''''''''''''''''''''''' 'n'i'a't'n'o'c' 'e'e'r't' 'e'h't' 'f'o' 's'e'v'a'e'l' 'e'h'T's'n'i' 'y'b' 'd'e't'a't'u'm' 'e'b' 'n'a'c' 't's'i'l' 'e'h'T' '','e'l'b'a't'u'm' 'e'r'a' 's'e'u'l'a'v' 't'u'b' ','e'l'b'a't'u'm'm'i' 'e'r'a' 's'y'e'K' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''[''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''' '.')'l'l'u'n' '''r'o' 'n'a'e'l'o'o'b' ','r'e'b'm'u'n' ','g'n'i'r't's'(' 'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' 'a' 'g'n'i'n'i'a't'n'o'c' 'e'd'o'n' 'f'a'e'l' 'A' ']':'r'e't's'i'g'e'R'['m'e't'i''n'.'}'y'a'r'r'a'{'h'p'm'e'' 'n'a' 's'a' 'n'w'o'n'k' 'o's'l'a' 's'i' 't's'i'l' 'N'O'S'J' 'A'''''''h'T' '.'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'y'b' 'd'e'n'i'f'e'd' 'r'e'd'r'o' 'n'a' 'e'v'a'h' 'n'e'r'd'l'i'h'c' 'e's'o'h'w' 'e'd'o'n' 'h'c'n'a'r'b' 'A' ']'''''':'t's'i'L'{'m'e't'i''n'.'}'t'c'e'j'b'o'{'h'p'm'e'' 'n'a' 's'a' 'n'w'o'n'k' 'o's'l'a' 's'i' 'p'a'm' 'N'O'S'J' 'A' '.'n'e'r'd'l'i'h'c' 'e'h't' 'f'o' 'e'n'o' 's'e'i'f'i't'n'e'd'i' 'y'l'e'u'q'i'n'u' 'y'e'k' 'A' '.'}'y'e'k'{'h'p'm'e'' 'g'n'i'r't's' 'a' 'h't'i'w' 'd'e'l'l'e'b'a'l' 's'i' 'd''''t'x'e'n''''''l'''''i'''''h'''''c''''' '''''h'''''c'''''a'''''e''' 'e'r'e'h'w' 'd'n'a' ','r'e'd'r'o' 'd'e'n'i'f'e'd' 'o'n' 'e'v'a'h''''''''''''''''''''''''''''''''''''''''''''''d'e'r'e'd'r'o' 't'o'n' 'e'r'a' 'n'e'r'd'l'i'h'c' 'e's'o'h'w' 'e'd'o'n' 'h'c'n'a'r'b' 'A' ']':'p'a'M'['m'e't'i''n'''''''''''''''''''}'n'o'i't'p'i'r'c's'e'd'{'d'n'e''n'}'n'o'i't'p'i'r'c's'e'd'{'n'i'g'e'b''n'n':'e'd'o'n' 'f'o' 's'e'p'y't' 'g'n'i'w'o'l'l'o'f' 'e'h't' 'f'o' 'g'n'i't's'i's'n'o'c' 'e'e'r't' 'a' 's'i' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'A'n'n'''''''''''''i'c'i'l'p'm'i's' 'r'o'f' ';''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'a'm'e'h'c's' 't'i'c'i'l'p'x'e' 'n'a' 't'u'o'h't'i'w' 'N'O'S'J' 'd'e'p'y't'n'u' 'y'l'n'o'''''''`'`' 'r'e'd'i's'n'o'c' 'e'w' 'r'e'p'a'p' 's'i'h't' 'n'i' 't'u'b' ','a'm'e'h'c's' 'a' 'y'b' 'd'e'n'i'a'r't's'n'o'c' 'e'b' 'y'l'l'a'n'o'i't'p'o' 'n'a'c' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'a' 'f'o' 'e'r'u't'c'u'r't's' 'e'h'T'''.'t'a'm'r'o'f' 'g'n'i'd'o'c'n'e' 'a't'a'd' 'e's'o'''''p'''''r'''''u'''''p'-'l'a' ''r'e'n'e'g' 'r'a'l'u'p'o'p' 'a' 's'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'l'm'x'-'n'o's'j':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 'r'e'h't'r'u'f' 'm'e'h't' 'e'r'a'p'm'o'c' 'e'w' 'd'n'a' ','L'M'X' 'o't' 's'e'i't'i'r'a'l'i'm'i's' 's'a'h' 't'I' 'N'O'S'J'n'n'}'l'e'd'o'm' 'a't'a'd' 'N'O'S'J'{'n'o'i't'c'e's'b'u's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'c'i'v'e'd' 'e'l'i'b'o'm' 'r'o'f' 's'n'o'i't'a'c'i'l'p'p'a' 'g'n'i'z'i'n'o'r'h'c'n'y's'-'e't'a't's' 'd'n'a' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'f'o' 't'n'e'm'p'o'l'e'v'e'd' 'e'h't' 'y'f'i'l'p'm'i's' 'y'l'l'a'c'i't's'a'r'd'''''''''''''''''''''''''c'i'f'i'n'g'i's' 'a't'n'e'm'e'l'p'm'i'''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'l'i'w' 'e'p'y't'a't'a'd' 's'i'h't' '''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't' 't'c'e'p'x'e' 'e'W' '.'n'o'i't'a'm'r'o'f'n'i' 'f'o' 's's'o'l' 't'u'o'h't'i'w' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'y'n'a' 's'e'g'r'e'm' 'y'l'l'a'c'i't'a'm'o't'u'a' 'd'n'a' ','l'e'd'o'm' 'a't'a'd' 'N'O'S'J' 'e'h't' 'f'o' 's's'e'.''n'e'v'i's's'e'r'p'x'e' 'l'l'u'f' 'e'h't' 's'e'd'i'v'o'r'p' 't'a'h't' 'e'p'y't'a't'a'd' 'a''''''''''''''''''''''''''''t's'r'i'f' 'e'h't''''''''''''''''''''''''''''''''''''}'$'}'d'a'e'h'{'f's'h't'a'm'' '='t'o'n'' 'n'_'k'$'{'C'm'o'i'x'A''n' 't'n'e's'e'r'p' 'e'w' 'r'e''i'B''''p'a'p' 's'i'h't' 'n'I' ''''''''''''''''''s'a'c'i'l'p'e'r''''''''''''''''a'c'i'l'p'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'u'o'b'a' 'n'o's'a'e'r' 'o't' 't'l'u'c'i'f'f'i'd' 'e'r'a' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 's'A' '.'''''''''''''''''''''''''''''''''''''c'e'r'r'o'c' 'e'h't' ','s'm's'i'n'a'h'c'e'm' 'c'i'f'i'c'e'p's'-'n'o'i't'a'c'i'l'p'p'''''''''s'a'c'i'l'p'e'r'''a''''' '''''d'n'a' 'c'o'h'-'d'a' 'f'o' 'e'g'n'a'r' 'a' 'h't'i'w' 'm'e'l'b'o'r'p' 's'i'h't' 'e'v'l'o's' 's'n'o'i't'a'c'i'l'p'p'a' '''''''y'l't'n'e'r'r'u'C'n'n''h't' 'h'c'u's' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 's'e'v'l'o's'e'r' 'y'l'l'a'c'i't'a'm'o't'u'a' 't'a'h't' 'e'r'u't'c'u'r't's' 'a't'a'd' 'N'O'S'J' 'a' 'r'o'f' 's'c'i't'n'a'm'e's' 'l'a'm'r'o'f' 'd'n'a' 'm'h't'i'r'o'g'l'a' 'n'a' 't'n'e's'e'r'p' 'e'w' 'r'e'p'a'p' 's'i'h't' 'n'I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'c'i'v'e'd' 'e'l'p'i't'l'u'm' 'n'o' 'y'l't'n'e'r'r'u'c'n'o'c' 'd'e'i'f'i'd'o'm' 'd'n'a'''''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'i'f'i'd'o'm' 'e'b' 'y'a'm' 't'i' 'e'r'e'h'w' 's'e'c'i'v'e'd' 'e'l'p'i't'l'u'm' 'n'o' 'd'e't'a'c'i'l'p'e'r' 's'i' 'a't'a'd' 'e'h't''''''''''t'a'd' 'f'i' 'r'a'e'l'c'n'u' 's'i''''''''''''' 'e'r'a' 's'c'i't'n'a'm'e's' 'e'h't' 't'u'b' ','a't'a'd' 'e'h't' 'f'o' 'y'p'o'c' 'e'l'g'n'i's' 'a' 'n'o' 'y'l'l'a'i't'n'e'u'q'e's' 'd'e'm'r'o'f'r'e'p''''t' 'f'i' 'd'o'o't's'r'e'd'n'u' 'l'l'e'w' 'e'r'a' 's'n'o'i't'a'c'i'f'i'd'o'm' 'h'c'u'S''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'t'u'p'n'i' 'r'e's'u' 'f'o' 't'l'u's'e'r' 'a' 's'a' 'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'y'b' 'd'e'i'f'i'd'o'm' 's'i' 'e'r'u't'c'u'r't's' 'a't'a'd' 's'i'h'T''''F' '.'N'O'S'J' 's'a' 'h'c'u's' 't'a'm'r'o'f' 'e'g'a'r'o't's' 'e's'o'p'r'u'p'-'l'a'r'e'n'e'g' 'a' 'n'i' 'a't'a'd' 'r'i'e'h't' 'l'e'd'o'm' 's'n'o'i't'a'c'i'l'p'p'a' 'y'n'a'M''''''i'''''t'a'i'l'i'f'f'a' 'r'o'h't'u'A'{'s'k'n'a'h't'''''''''''''''''''''''''''''''''''''i'c'o's'p'm'o'c'E'E'E'I''n'2' 'r'o'h't'u'A' 'd'n'a' '1' 'r'o'h't'u'A'n'n''g'i'f's'y'a'w'e'd'i's' '%''''$' '}'g'n'i't'a't'o'r'{'e'g'a'k'c'a'p'e's'u''n' '}'''''''''''''''''''''''''U'''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'''r'e's'u' 'e'h't'''''''''''''''''''''''''''f'o' 's'e'l'u'r' 'n'o'''i'''''t'''''a'''''u'''''l'''''a'''''v'''''e''''''y'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''a'c'i'l'p''''o'e'r''''''''''''''''d'n'a' ''''''' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 's'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a'''''''''''''''''''''''''''''''''''a' 'g'n'i's'u' 'e'l'p'''''''y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y'l'l'a'c'i't'a'm'o't'u'a' 'd'e'g'r'e'm' 'e'b' 'd'l'u'o'c' 't'a'h't' 's'n'o'i't'a'c'i'f'i'd'o'm' 'f'o' 'e's'a'c' 'n'i' 's'u'o'i'd'e't' 's'i' 'h'c'i'h'w' ','t'c'i'l'f'n'o'c' 'e'h't' 'e'v'l'o's'e'r' 'y'l'l'a'u'n'a'm' 'r'e's'u' 'e'h't' 't'e'l' 'o't' 's'i' 'e'v'i't'a'n'r'e't'l'a' 'n'A' '.'s's'o'l' 'a't'a'd' 's'r'u'c'n'i' 't'i' 's'a' 'e'l'b'a'r'i's''''r'e'd'n'u' 's'i' 'h'c'a'o'r'p'p'a' 's'i'h't' ','r'e'v'e'w'o'H' ''c'i'l'o'p' ''m'a'x'e' 'r'o'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''s'n'i'w' 'r'e't'i'r'w' 't's'a'l'`'`' 's'a' 'n'w'o'n'k' 's'e'm'i't'e'm'o's' 'y'c'i'l'o'p' 'a' ','d'e'r'r'u'c'c'o' 's't'c'i'l'f'n'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''l'f'n'o'c' ','t'n'e'r'r'u'c'n'o'c' 'f'i' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'm'u'c'o'd' 'e'm'o's' 'd'r''''''''''''''''''''''''''''''''''t'c'e's'b'u's''n'n'}'k'r'o'w' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'O'(' '}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'o'h'c'i'N','f'v'8'9'9'1':'n'u'S','x'w'6'9'9'1'''''''''''''''''''''''''''''''''''''''''''''''' ')'e'l'p'm'a'x'e' 'r'o'f' ','s'r'e't'c'a'r'a'h'c' 'f'o'(' 't's'i'l' 'd'e'r'e'd'r'o' 'e'l'g'n':'l'''e's's'e'R','e'u'''':'9'8'9'1':'s'i'l'l'E'{'e't'i'c''~'s'n'o'i't'a'c'i'l'p'p'a'i't'a'r'e'p'o'{'h'p'm'e'' 'n'o' 'd'e's'''a'b' 's'm'h't'i'r'o'g'l'A'n'n'}'t'o'-'d''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''s'r'e'w'e'i'v''''''''''''''d'e'v'o'r'p'm'i' 't'a'h't'''''''''''''''''''''''''''e'r' 's'u'o'm'y'n'o'n'a' 'e'h't' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'g'n'i's'o'p'm'o'c':'c'e's'{'l'e'b'a'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'g'd'e'l'w'o'n'k' 'r'u'o' '''o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'l'p'm'a'x'e':'c'e's'{'l'e'b'a'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''q'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i'1'='h't'd'i'w''''''''''''''']''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''H''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i'n'i'a't'n'i'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'i'n'a'p'm'o'c' 't'e'n'r'e't'n'i' 'l'a'r'e'v'e's' 't'a' 'r'u'e'n'e'r'p'e'r't'n'e' 'd'n'a' 'r'e'e'n'i'g'n'e' 'e'r'a'w't'f'o's' 'a' 's'a' 'd'e''''d'k'r'o'w' 'e'h''''e' ','''' 'y'l's'u'o'i'v'e'r'P' ''''''.''''.'7'0'0'2' 'n'i' 'a'i'd'e'M' 'y'l'l'i'e'R'''O' 'y'b' 'd'e'h's'i'l'b'u'p' 's'a'w' '}'s'n'o'i't'a'c'i'l'p'p'A' 'e'v'i's'n'e't'n'I'-'a't'a'D'''''''''n'l'l'i'f'v''n' 'g'n'i'n'g'i's'e'D'{'h'p'm'e'' 'k'o'o'b' 's'i'''''''''''''''''''''''''''''''''''''''' 'y'l's'u'o'i'v'e'r'p' 'e'H' '.'a't'a'd' 'n'o'i't'a'c'i'l'p'p'a''m' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'o't''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'p'y'r'c'n'e' 'd'n'e'-'o't'-'d'n'e' 'g'n'i'y'l'p'p'a' 'y'b' ''' 'e'v'i't'a'r'o'b'a'l'l'o'c'''''''''''''''''''s'n'o'i't'a'c'i'l'p'p'a' 'd'u'o'l'c' 'n'i' 'y'c'a'v'i'r'p' 'd'n'a' 'y't'i'r'u'c'e's' 'r'e't't'e'b' 's'd'r'a'w'o't' 'g'n'i'k'r'o'w' 's'i' ','a't'a'D' 'E'V'R'T' ','t'c'e'j'o'r'p'''''''''''''''''' 'h'c'r'a'e's'e'r' 't'n'e'r'r'u'c' 's'i'h't' 'n'I''''H'''''''''''''''''''''''''''''''''''''e'r'r'u'c' 's'i'h' 'n'I' '.'e'g'd'i'r'b'm'a'C' 'f'o' 'y't'i's'r'e'v'i'n'U' 'e'h't' 't'a' 'y'r'o't'a'r'o'b'a'L' 'r'e't'u'p'm'o'C' 'e'h't' 'n'i'''''''t'a' 'e't'a'i'c'o's's'A' 'h'c'r'a'e's'e'R' 'a' 's'i''''''}'''''}'g'p'j'.'8'2'4'k'm'{']'['s'c'i'h'p'a'r'g'e'''''''''''''''''''''''''''''''''''''''''}''''}'g'p'j'.'3'3'b'r'a'{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'x'e't' 'e'r'o'm' 'O'D'O'T' '.'y't'i'r'u'c'e's' 'r'e't'u'p'm'o'c' 'd'n'a' 'g'n'i't'u'p'm'o'c' 'e'l'i'b'o'm' 'f'o' 'n'o'i't'c'e's'r'e't'n'i' 'e'h't' 't'a' 'g'n'i'k'r'o'w' ','e'g'd'i'r'b'm'a'C' 'f'o' 'y't'i's'r'e'v'i'n'U' 'e'h't' 'm'o'r'f' 'D'h'P' 's'i'h' 'd'e'n'i'a't'b'o' 'e'H' '.'e'g'd'i'r'b'm'a'C' 'f'o' 'y't'i's'r'e'v'i'n'U' 'e'h't' 't'a' 'y'r'o't'a'r'o'b'a'L' 'r'e't'u'p'm'o'C' 'e'h't' 'n'i' 'r'e'r'u't'c'e'L' 'r'o'i'n'e'S'''''''e's' 'a' 's'i'''''']'''''n'i'1'='h't'd'i'w'['s'c'i'h'p'a'r'g'e'd'u'l'c'n'i'''}'{'']'['d'u'l'c'n'i''{'['''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''O'D'O'T''n''''''''''''''''''''}'y'h'p'a'r'g'o'i'b'E'E'E'I'{'d'n'e''n''''}'d'r'o'f's'e'r'e'B' ''''' '.'R' 'r'i'a't's'a'l'A'{'}'y'h'p'a'r'g'o'i'b'E'E'E'I'{'n'i'g'e'b''n'n'}'y'h'p'a'r'g'o'i'b'E'E'E'I'{'d'n'e''n'O'D'O'T'n'}'n'n'a'm'p'p'e'l'K' 'n'i't'r'a'M'{'}'y'h'p'a'r'g'o'i'b'E'E'E'I'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''a''q'''c'''i'l'p'e'r'''''''''''''''''''''''''''''''''s'a'c'i'l'p'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r''''''''''''''''''''''''''''''''a'c'i'l'p'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''n's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'f'o' 'm'e't's'y's' 'r'e'e'p'-'o't'-'r'e'e'p' 'a' ''$'''n'''''i''''' '''''e'''''v'''''i'''''t'''''i'''''b'''''i'''''h'''o'r'p' 'e'r'a' 's't'n'e'm'e'r'i'u'q'e'r' 'g'n'i'r'e'd'r'o' 'l'a'i'r'e's' 'h'c'u's' ','}'t'o'-'d'e't'a'l'e'r':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 'd'e's's'u'c's'i'd' 's'A' '.'s'n'o'i't'i'd'n'o'c'''''s'e'l'u'r''''''e'''''r'''''p''''' '''s't'i' 'n'o' '''g'n'i'd'n'e'p'e'd' 'l'''''''' 'y'd'a'e'r'l'a''u'f's's'e'c'c'u's' 's''''n'a'w' 'n'o'i't''''''''''''''''''''''}'s'c'i't'n'a'm'e's':'c'e's'{'l'e'b'a'l''c'a's'n'a'r't' 'a' 'r'e'h't'e'h'w' 'g'n'i'd'i'c'e'd' 'd'n'a' ','r'e'd'r'o' 'l'a'i'r'e's' 'e'm'a's' 'e'h't' 'n'i' 's'n'o'i't'c'a's'n'a'r't' 'g'n'i't'u'c'e'x'e' 's'r'e'v'r'e's' 'l'l'a' 'n'o' 's'e'i'l'e'r' 'h'c'a'o'r'p'p'a' 's'i'h'T' '.'e'n'i'l'n'o' 't'x'e'n' 'e'r'a' 'y'e'h't' 'n'e'h'w' 'm'e'h't' 'm'r'i'f'n'o'c''''''''''n'o' ' 'd'n'a' ','y'l'e'v'i't'a't'n'e't' 's'n'o'i't'c'a's'n'a'r't' 'e't'u'c'e'x'e' 'o't' 's'e'd'o'n' 'e'n'i'l'f'f'o' 'w'o'l'l'a' '}'n'd'5'9'9''''0'1':'y'r'r'e'T'{'e't'i'c''~'u'o'y'a'B' 's'a' 'h'c'u's' 's'm'e't's'y's' ','y'l'l'a'n'i'F'n'n'.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'o't' 'e'u'd' 't's'o'l' 'e'b' 'o't' 't'u'p'n'i' 'r'e's'u' 'o'n' 't'n'a'w' 'e'w' 'e'c'n'i's' ','s't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' 's'e'o'd' ''''W'W'W'L' '.'B'D'h'c'u'o'C' 'd'n'a' 'k'a'i'R' 'g'n'i'd'u'l'c'n'i' 's'm'e't's'y's' 'r'e'h't'o' 'y'n'a'm' 'n'i' 'n'o'i't''''e'p'o' 'n'a' 's'i' 't'i' 'd'n'a' ','a'r'd'n'a's's'a'C' 'e'h'c'a'p'A' 'n'i' 'd'e's'u' 's'i' 'h'c'a'o'r'p'p'a' 's'i'h'T' '.'s'r'e'h't'o' 'e'h't' 's'd'r'a'c's'i'd' 'd'n'a' '''''r'e'n'n'i'w'`'`' 's'a' 's'e't'i'r'w' 't'n'e'r'r'u'c'n'o'c' 'l'a'r'e'v'e's' 'g'n'o'm'a' 'e'n'o' 's'e's'o'o'h'c' 'y'l'i'r'a'r't'i'b'r'a' 'h'c'i'h'w' ',')'W'W'L'(' '}'s'n'i'w' 'r'e't'i'r'w' 't's'a'l'{'h'p'm'e'' 's'i' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'o't' 'h'c'a'o'r'p'p'a' 'd'e's'u'-'y'l't'n'e'u'q'e'r'f' 'r'e'h't'o'n'A'n'n'.'s'r'e'm'm'a'r'g'o'r'p' 'n'o'i't'a'c'i'l'p'p'a' 'o't' 't'f'e'l' 'e'b' 'y'l'b'a'n'o's'a'e'r' 'n'a'c' 't''''''' 'n'a'h't' 'r'e't't'a'm' 'e'l'p'm'i's' 'a' 't'o'n' 's'i' 'n'o'i't'u'l'o's'e'r' 't'i'c'l'f'n'o'c' ','s'e't'a'r't's'n'o'm'e'd' 'r'e'p'a'p' 's'i'h't' 'f'o' 'y't'i'x'e'l'p'm'o'c' 'e'h't' 's'A' '.'}'i'u'7'0'0'2':'a'i'd'n'a'C'e'D'{'e't'i'c''~'g'n'i'r'a'e'p'p'a'e'r' 's'm'e't'i' 'd'e't'e'l'e'd''''''''''''' 'e'h't' 's'a' 'h'c'u's' 's'e'i'l'a'm'o'n'a' 't'i'b'i'h'x'e' 'n'e't'f'o' 's'n'o'i't'c'n'u'f' 'e'g'r'e'm' 'n'e's'o'h'c' 'y'l'e'v'i'a'N' '.'e'd'o'c' 'n'o'i't'a'c'i'l'p'p'a' 'o't' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 's'e'v'a'e'l' 'd'n'a' ','s'e'u'l'a'v' 'e's'e'h't' 'f'o' 'l'l'a' 's'e'v'r'e's'e'r'p' 'e's'a'b'a't'a'd' 'e'h''''''''a'c'i'l'p'e'r'''t''''' ''','y'e'k' 'e'm'a's' 'e'h't' 'o't' 'n'e't't'i'r'w' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'r'a' 's'''''''a'c'i'l'p'e'''r''''''''''''''''''''''''''''''''e'''''u'''''l'''''a'''''v''''' '''''l'''''a'''''r'''''e'''''v'''''e'''''s''''' '''''f'''''i''''' ''''','''''}'''''i'''u'7'0'0'2':'a'i'd'n'a'C'e'D'{'e't'i'c''~'o'm'a'n'y'D' 'n'i' ','e'l'p'm'a'x'e' 'r'o'F' '.'c'o'h'-'d'a' 'n'e't'f'o' 'e'r'a' 's'n'o'i't'u'l'o's' 'e'h't' 't'u'b' ','s'n'o'i't'a'c'i'f'i'd'o'm' 'g'n'i't'c'i'l'f'n'o'c' ','t'n'e'r'r'u'c'n''''''''a'c'i'l'p'e'r'''''''''o'c' 'f'o'''''r'e't'f''' '''''s'i' ''''m'a''''' 'm'o'r'f''''''''''''''''''''''''''''''''''''''y'l'l'a'c'o'l' 'd'e'i'l'p'p'a' 's'i' 't'i''' ','e'''''l'''''b'''''o'''''r'''''p''''''n'a' ' 'e'''h't' 'h't'i'w' 'l'a'e'd' 'o't' 'd'e'e'''n' 's'm'e't's'y's' 'a't'a'd' 'd'e't'a'c'i'l'p'e'r' 'y'n'a'M'n'n'}'r'e'h't'o'-'d'e't'a'l'e'r':'c'e's'{'l'e''''''''a'c'i'''''''a'c'i'l'p'e'r''''''''''l'p'e'r'''''''''b'''''''''s'a'c'i'l'p'e'r'''''''''a'l''}'s'e'h'c'a'o'r'p'p'a' 'r'e'h't'O'{'n'o'i't'c'e's'b'u's''n'n'.'e'r'u't'c'u'r't's' 'e'k'i'l'-'N'O'S'J' 'a' 'h't'i'w'''''''''''''''''''''''''''''''''''''''s't'n'e'm'n'g'i's's'a' 'r'e't's'i'g'e'r' 'e'h't' 'd'e'm'r'o'f''''r'e'p' 'r'o'f' ' 'T'D'R'C' 'd'e't's'e'n' 'y'l'i'r'a'r't'i'b'r'a' 'n'a' 'o't'n'i' 'd'e's'o'p'm'o'c' 'e'b' 'o't' ''''''' 't'l'l'a' 'm'e'h't' 's'w'o'l'l'a' 't'a'h't' 'k'r'o'w' 'r'o'i'r'p' 'y'n'a' 'f'o' 'e'r'a'w'a' 't'o'n' 'e'r'a' 'e'w' ','n'o'i't'a'l'o's'i' 'n'i' 's'r'a'e'y' 'r'o'f' 'd'e't's'i'x'e' 'e'v'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e't's'i'g'e'r' 'a' 'n'a'h't' 'r'e'h't'a'r' 'r'e't'n'u'o'c' 'a' 's'a' 'd'e't'a'e'r't' 'e'b' 'd'l'u'o'h's' 'r'e'b'm'u'n' 'a' 't'a'h't' 'g'n'i't'a'c'i'd'n'i' 's'a' 'h'c'u's' ','s'n'o'i't'a't'o'n'n'a' 'c'i't'n'a'm'e's' 't'r'o'p'p'u's' 'o's'l'a' 'd'l'u'o'c' 'e'g'a'u'g'n'a'l' 'a'm'e'h'c's' 'A' ''h' 's't's'i'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '?'a't'a'd' 'e'h't' 'f'o' 'e'm'o's' 'e's'y'l'a'n'a' 'e'w' 's's'e'l'n'u''''i' 'r'e'p'a'p' 's'i'h't' 'o't' 't'n'a'v'e'l'e'r' 'y'l'r'a'l'u'c'i't'r'a'p' 'e'b' 'o't' 'm'e'e's' 't'''n's'e'o'd' 's'i'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'r'a'p' 's'a' 'n'i' 's'i'h't' 't'u'p' 'd'l'u'o'h's' 'e''''w'w' ':'O'D'O'T'%'n'' 'd'e'r'e'd'r'o' 'd'n'a' 's'p'a'm' ','s'r'e't's'i'g'e'r' 'r'o'f' 's'T'D'R'C' 'h'g'u'o'h't'l'A'n'n'.'l'a' 't'e' 't'd'r'a'h'k'c'r'u'B' ''''''''''s'a'c'i'l'p'e'r''''''y'''''b' 'd'e'r'i'p's'n'i' 's'i' 't'n'e'm'e't'a't's' '}'d'l'e'i'y'{'f's't'x'e't'' 'r'u''''''''a'c'i'l'p'e'R'''O''''' '''.'k''''''''''''''''t'u'o' 'n'r'u''''i't' 'y'a'm''''''''''''''''''''''''''''e'r'o'm' 't'r'o'p'p'u's' 'o't'''''''''''''''''''''''''''' 'e'r'''''''''''''s'n'o'i't'a'c'i'l'p'p'a' ''''''o'''m' 'r'o'f' 'd'e'r'i'u'q'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''h'''''t''''' '''''''''''''''''''''''''''''' 'h'c'u's''''''''''''''''''''''a'd'p'u' 'f'o' 't'n'e'm''n'i' 'l'a't'n'e'm''''c'u'r't's'n'i' 'e'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y't'i'x'''''''''''''y't'x'i'e'l'p'm'o'c' 'e'g'a'n'a'm' 'p'l'e'h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y't'i'x'e'l'p'm'o'c' 'e'g'a'n'a'm'''''''''''''p'l'e'h' 'o't'''''''''''''o' ''''o'n'i' 'd'e'r'i'u'q'e'r' 'e'b' 'l'l'i'w''''''''''''''''''''''''''''''''''d'e'r'i'u'q'e'r' 's'i' 'e'g'a'u'g'n'a'l' 'a'm'e'h'c's' 'a' 't'a'h't' 'e'l'b'i's's'o'p' 's'i' 't'I' ''r'o'w'''''''''a'c'i'l'p'e'r''''''''''''''w'o'e'm'a'r'f' 's'i'h't' 'n'i' 'd'e'n'i'f'e'd' 't'o'n' 'e'r'''k' '''''a' 's't's'i'l' 'd'e'''''''''' 'y'l'l'a's'u'a'c'r'e'd'r'o''''''''a'c'i'l'p'e'''''' ';'s'n'o'i't'a'l'e'r' 'r'o' 's''''''''a'c'i'l'p'e'r'''t'''''e'''s' 'd'e'r'e'd'r'o'n'u' 'e'k'i'l' 'e'r'a' 'h'c'i'h'w' ','}'s'e'i't'i't'n'e'{'h'p'm'e'' 'd'''''''a'c'i'l'p'e'''''''n'a' ',''''s'e'p'y't'a't'a'd' 'p'a'm' 'r'u'o' 'o't' 'y'l'r'a'l'i'm'i's' 'e'v'a'h'e'b' 'h'c'i'h'w' ','}'s'y'a'r'r'a' 'd'u'o'l'c'{'h'p'm'e'' 'e'n'i'f'e'd' 'y'e'h'T' '.'d'e's'o'p'm'o'c' 'e'b' 'n'a'c' 'd'n'a' 's'T'D'R'C' 'o't' 'r'a'''''''a'c'i'l'p'e'''''''l'i'm'i's' 'e'r'a' 'h'c'i'h'w' ','}'s'e'p'y'''t' 'd'u'o'l'c'{'h'p'm'e'' 'e'n'i'f'e'd' '}'y'j'2'1'0'2':'t'd'r'a'h'k'c'r'u'B'{'e't'i'c''~''''|'''''''~'|'''''''~'Z'.'l'a' 't'e' 't'd'r'a'h'k'c'r'u'B'n'n'.'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'p'o'l'e'v'e'd' 's'c'i't'n'a'm'e's' 'e'h't' 'r'o'f' 's'i's'a'b' 'a' 's'm'r'o'f' 's'e'p'y't'a't'a'd' 'e's'e'h't' 'n'i' 'y't'i'l'a's'u'a'c' 'f'o' 't'n'e'm't'a'e'r't' 'e'h't' 't'u'b' ','s't's'i'l' 'd'e'r'e'd'r'o' 'r'o'f''''''''''t'c'e'f'f'e' 'r'i''' '''''s'''''T'''''D'''''R'''C' 's'e't'a'r'g'e't'n'i' 'k'r'o'w' 's'i'h't' 'f'o' 'e'n'o'N' '.'s'e'c'i't't'a'l' 'n'o' 'd'e's'a'b' ','s'T'D'R'C' 'd'e's'a'b'-'e't'a't's' 'f'o' 'n'o'i't'i's'o'p'm'o'c' 'r'o'f' 'k'r'o'w'e'm'a'r'f' 'l'a'c'i't'e'r'o'e'h't' 'a' 'e'n'i'f'e'd' '}'m't'5'1'0'2':'o'r'e'u'q'a'B'{'e't'i'c''~'.'l'a' 't'e' 'o'r'e'u'q'a'B' 'd'n'a' ','s'p'a'm' 'd'e't's'e'n' 'r'o'f' 's'n'o'i't'a't'u'm' 'a't'l'''''''a'c'i'l'p'e'R''''''e'''''d' 'e'n'i'f'e'd' 'o's'l'a' '}'k't'6'1'0'2'''''''a'c'i'l'p'e'R'''''''''':'a'd'i'e'm'l'A'{'e't'i'c''~'.'l''''.'a' 't'e' 'a'd'i'e'm'l'A' '.'}'v'i'6'1'0'2':'o'r'e'u'q'a'B'{'e't'i'c''~'e'h'c'r'e'L' 'd'n'a' 'a'd'i'e'm'l'A' ','o'r'e'u'q'a'B' 'y'b' 'd'e'i'd'u't's' 'n'e'e'''''''''''''''''''''}'l'm'x'-'n'o's'j':'c'e's'{'l'e'b'a'l''b' 'e'v'a'h' 'h'c'i'h'w' ','s'c'i't'n'a'm'e's' 'f'o' 's'n'o'i't's'e'u'q' 's'e''''''''''''''}'t'u'm'{'t'i'h't'a'm'' ',''s'i'a'r' 's'p'a'm' 'e'd'i's'n'i' 's'r'e't'n'u'o'c' 'g'n'i'd'd'e'b'm'E' '.'}'y'w'3'1'0'2':'n'w'o'r'B','s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~'s'p'a'm' 'r'e'h't'o' 'n'i'h't'i'w' 's'p'a'm' 'f'o' 'd'n'a' ','s'p'a'm' 'e'd'i's'n'i' 's'r'e't's'i'g'e'r' 'd'n'a' 's'r'e't'n'u'o'c' 'f'o' 'g'n'i't's'e'n' 's'w'o'l'l'a' 'k'a'i'R' '.'y'l't'n'e'c'e'r' 'e'r'o'm' 'd'e'i'd'u't's' 'n'e'e'b' 'y'l'n'o' 's'a'h' ')'}'g'n'i'd'd'e'b'm'e'{'h'p'm'e'' 'r'o' '}'n'o'i't'i's'o'p'm'o'c'{'h'p'm'e'' 's'a' 'n'w'o'n'k' 'o's'l'a'(' 'r'e'h't'o'n'a' 'e'd'i's'n'i' 'T'D'R'C' 'e'n'o' 'g'n'i't's'e'n' 'f'o' 'm'e'l'b'o'r'p' 'e'h'T'n'n'.'T'D'R'C' 'r'e'h't'o'n'a' 't'o'n' ','s'e'u'l'a'v' 'c'i'm'o't'a' 'e'r'a' 't's'i'l' 'r'o' 'p'a'm' 'T'D'R'C' 'e'h't' 'f'o' 's't'n'e'm'e'l'e' 'e'h't' 't'a'h't' 'e'm'u's's'a' 'y'e'h't' ':'g'n'i't's'e'n' 't'r'o'p'p'u's' 'm'e'h't' 'f'o' 'e'n'o'n' ','r'e'v'e'w'o'H' '.'}'y'k'3'1'0'2':'c'e'l'e'd'e'N'{'e't'i'c''~'Q'E'S'L' 'd'n'a' '}'x'h'0'1'0'2':'s's'i'e'W'{'e't'i'c''~'t'o'o'g'o'L' ','}'z'f'9'0'0'2':'a'c'i'u'g'e'r'P'{'e't'i'c''~'c'o'd'e'e'r'T' ','}'w'd'1'1'0'2':'h'o'R'{'e''''''''a'c'i'l'p'e''t'''''i'c''~'A'G'R' ','}'j'w'6'0'0'2''''''''a'c'i'l'p'e'r''':'''''r'''e't's'O'{'e't'i'c''~'T'O'O'W' 'g'n'i'd'u''''u'l'c'n'i' ','d'e's'o'p'o'r'p' 'n'e'e'b' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 's'u'o'i'r'a'v' ','s't's'i'l' 'd'e'r'e'd'r'o' 'r'o'F' '.'}'y'w'3'1'0'2':'n'w'o'r'B','s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~'k'a'i'R' 's'a' 'h'c'u's' 's'm'e't's'y's' 'd'e'y''''''''''''''''''g'n'i't'i'd'e''''''''''''''''''''''''}'i'p'a'-'t'n'e'i'l'c':'c'e's'{'l'e'b''''''r''''''''''''''''''''''''''''''''''''''''''''''}'$'}'e't'e'l'e'd'{'f's'h't'a'm'' '='t'o'n'' '}'t'u'm'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n''e't'n'e'c''''''a'''''l'''''''''''o'''l'p'e'd' 's'u'o'i'r'a'v' 'n'i' 'd'e't'n''$'e'm'e'l'p'm'i'''$'1'_'' 'n'e'e'b' 'e'v'a'h' 'd'n'a' ','}'y'w'1'1'0'2':'o'r'i'p'a'h'S','n'u'1'1'0'2':'o'r'i'p'a'h'S'''r'T'''{'e't'i'c''~'n'w'o'n'k' 'y'l'e'd'i'w' 'e'r'a' 's't'e's' 'd'n'a' 's'p'a''''''''''''''}'t'u'm'{'t'i'h't'a'm'' ',''m' ','s'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm'' ','}'g'a't'{'t'i'h't'a'm''_'k'('}'d'I'd'd'a'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'2'_'}'D'I'-'d'd'A'{'c's't'x'e't'''''''''''''t'x'e'T''$'{''''''''''''''''''''''''''''''')'''' ' ' 'n''}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',''l'e'b'a'L't'f'e'L''''''''''n'}'$'}'e't'e'l'e'd'{'f's'h't'a'm'' '=' '}'t'u'm'{'t'i'h't'a'm''$'{'C'm'o'i'x'A'''e't'n'u'o'c' ','s'r'e't's'i'g'e'r' 'r'o'f' 's'T'D'R'C'n'n'}'s't'd'r'c'-'d'e't'a'l'e'r':'c'e''''''''''''''''''''''''''''''n'%'n'}'m'e'3'{'e'c'a'p's'h''f'o'o'r'P'y'''''''y'u'a'l'p's'i'D''n's'{'l'''''''r'e't'n'e'c'''e'''''b'''''a'''''l''''''}'s'T'D'R'C'{'n'o'i't'c'e's'b'u's''n'n'.'d'e'h's'i'l'b'u'p' 'n'e'e'b' 't'o'n' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 's't'i' 'f'o' 's'l'i'a't'e'd' ','t'c'u'd'o'r'p' 'y'r'a't'e'i'r'p'o'r'p' 'a' 's'A' '.'}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'r'e'v'r'e's' 'e''''''''''''''''''''''''''''''')'''' ' ' 'n''}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',''l'g'n'i's' 'a' 'n'o' 's'e'i'l'e'r' 't'i' ','s'c'o'D' 'e'l'g'o'o'G' 'e'k'i'L' '.'s'p'a'm' 'd'n'a' 's't's'i'l' 'f'o' 'g'n'i't's'e'n' 'y'r'a'r't'i'b'r'a' 's't'r'o'p'p'u's''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'e'r'a'w'a' 'e'r'a' 'e'w' 'h'c'i'h'w' 'f'o' 'T'O' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'l'n'o' 'e'h't' 's'i' '}'k'v'5'1'0'2':'e'l''''o'g'o'o'G'{'e't'i'c''~'I'P'A' 'e'm'i't'l'a'e'R' 'e'l'g'o'o'G' 'e'h'T'n'n'.'}'m'd'5'1'0'2':'a'y'i't't'A'{'e't'i'c''''']'~'g'n'i'r'e''''''''''''''''''''''''''''''')'''' ' ' 'n''}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',''d'r'o' 'l'a's'u'a'c' 's'i' 'e'v'i'g' 'n'a'c' 'm'e't's'y's' 'a' 'h'c'u's' 'e'e't'n'a'r'a'u'g' 't's'e'g'n'o'r't's' 'e'h'T' '.'e'l'b'a'l'i'a'v'a'n'u' 'e'm'o'c'e'b' 'd'l'u'o'w' 't's'a'c'd'a'o'r'b' 'c'i'm'o't'a' 'g'n'i'r'i'u'q'e'r' ''''s'm'h't'i'r'o'g'l'a' 'y'n'a' 'o's' 'd'n'a' ','e'm'i't' 'e'm'a's' 'e'h't' 't'a' 'e'n'i'l'n'o' 'e'r'a' 's't'n'a'p'i'c'i't'r'a'p' 'f'o' 'y't'i'r'o'n'i'm' 'a' 'y'l'n'o' 't'a'h't' 'e's'a'c' 'e'h't' 'e'b' 'y'l't'n'e'u'q'e'r'f' 'l'l'i'w' 't'i' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'f'o' 's'm'e't's'y's' 'r'e'e'p'-'o't'-'r'e'e'p' 'n'i' 't'a'h't' 't'c'e'p'x'e' 'e'W' '.'e'l'b'a'h'c'a'e'r' 'd'n'a' 'e'n'i'l'n'o' 'e'r'a' 's't'n'a'p'i'c'i't'r'a'p' 'f'o' 'y't'i'r'o'j'a'm' 'a' 'f'i' 's's'e'r'g'o'r'p' 'e'k'a'm' 'y'l'e'f'a's' 'y'l'n'o' 'n'a'c' 'y'e'h't' 'o's' ','}'p'c'6'9'9'1':'a'r'd'n'a'h'C'{'e't'i'c''~'s'u's'n'e's'n'o'c' 'o't' 't'n'e'.''l'a'v'i'u'q'e' 'e'r'a' 's'l'o'c'o't'o'r'''''''''''''''p' 'h'c'u's' ','r'e'v'r'e's' ''''''''a'c'i'l'p'e'R'''e'''''l'''g'n'i's' 'a' 'n'o' 'g'n'i'y'l'e'r' 's'd'i'o'v'a' 'h'c'i'h'w' ','}'i'j'4'0'0'2':'o'g'a'f'e'D'{'e't'i'c''~'l'o'c'o't'o'r'p' 't's'a'c'd'a'o'r'b' 'c'i'm'o't'a' 'n'a' 'g'n'i's'u' 'y'b' 's'n'o'i't'a'r'e'p'o' 'f'o' 'g'n'i'r'e'd'r'o' 'l'a'''''''''' 'a'l't'o't' 'a' 'n'o' 'e'd'i'c'e'd' 'o't' 'e'l'b'i's's'o'p' 's'i' 't'i' 'h'g'u'o'h't'l'A' '.'}'g'k'5'1'0'2':'r'e'g'n'U'{'e't'i'c''~'r'e'd'r'o' 'e'm'a's' 'e'h't' 'n'i' 's'e'g'a''''''''''''$'p'$' 'a'c'i'l'p'e'r'''s'''''s'''''e'''''m''''' '''''e'''e's' 'l'l'i'w' 's't'n'e'i'p'i'c'e'r' 't'n'e'r'e'f'f'i'd' 't'a'h't' 'e'e't'n'a'r'a'u'g' 't'o'n' 'o'd' ','n'o'i't'a'r'o'b'a'l'l'o'c' 'd'e't'p'y'r'c'n'e' 'r'o'f' 'e's'u' 'o't' 'n'a'l'p' 'e'w' 'h'c'i'h'w' ','s'l'o'c'o't'o'r'p' 'g'n'i'g'a's's'e'm' 'e'r'u'c'e's' 'y'n'a'M'n'n'.'r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'g'n'i'r'i'u'q'e'r' 't'u'o'h't'i'w' 'n'o'i't'a'r'o'b'a'l'l'o'c' 'r'e'e'p'-'o't'-'r'e'e'p' 't'r'o'p'p'u's' 'o't' 't'n'a'w' 'e'w' 'e'c'n'i's' ','s't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' 's'e'o'd' 't'i' 't'u'b' ','}'s'k'3'0'0'2':'e'n'i'm'I'{'e't'i'c''~'e'n'o'r'p'-'r'o'r'r'e' 's's'e'l' 'd'n'a' 'r'e'l'p'm'i's' 's'n'o'i't'c'n'u'f' 'n'o'i't'a'm'r'o'f'''''''f'o's'n'a'r't' 'e'h't' 'g'n'i'k'a'm' 'f'o' 'e'g'a't'n'a'v'd'a' 'e'h't' 's'a'h' 'h'c'a'o'r'p'p'a' 's'i'h'T' '.'}'d'f'5'9'9'1':'s'l'o'h'c'i'N'{'e't'i'c''~'m'e't's'y's' 'r'e't'i'p'u'J' 'e'h't' 'm'o'r'f' 'd'e't'i'r'e'h'n'i' 'n'o'i's'i'c'e'd' 'n'g'i's'e'd' 'a' ','}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'s'n'o'i't'a'r'e'p'o' 'f'o' 'g'n'i'r'e'd'r'o' 'l'a't'o't' 'a' 'n'o' 'e'd'i'c'e'd' 'o't' 'r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'n'o' 'y'l'$''e'r' ',')'}''''''''$'}'2','1'{'_'o'v'5'1'0'2':'g'n'a'W'{'e't'i'c''~'e'v'a'''''''''s'a''''s'c'i'l'p'e'r'''''''''''W' 'e'l'''''''a'c'i'l'p'e'''''''g'o'o'G' 'y'l'r'e'm'r'o'f'(' 'e'v'a'W' 'e'h'c'a'p'A' 'd'n'a' '}'w'v'0'1'0'2':'k'a'w'e'i'p'S'{'e't'i'c''~'e'b'i'V' 'l'l'e'v'o'N' ','}'m'u'1'1'0'2':'d'a'p'r'e'h't'E'{'e't'i'c'''''{'~'d'a'p'r'e'h't'E' ','}'t't'0'1'0'2':'r'e't'h'c'i'R'y'a'D'{'e't'i'c''~'s'c'o'D' 'e'''''''a'c'i'l'p'e'''''''l'g'o'o'''''''a'c'i'l'p'e'''''''G''''''''a'c'i'l'p'e'' '''''g'n'i'd'u'l'c'n'i' ','s'm'e't's'y's' 'n'o'i't'a'r'o'b'a'l'l'o'c' 'T'O' 'd'e'y'o'l'p'e'd' 't's'o'M'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'p'6'{'e'c'a'p's'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'n'i'f''''''''''''}'t'p'6'{'e'c'a'p's'v'''e'd' 's'a' 's'p'a'm' 'e'u'l'a'v'-'y'e'k' 't'r'o'p'p'u's' 't'o'n' 'o'd' 's'm'h't'i'r'o'g'l'a' 'e's'e'h't' 't'u'b' ','s't's'i'l' 'd'e'r'e'n'd'r'o' 'f'o' 'g'n'i't's'e'n' 's'e'd'i'v'o'r'p' 'h'c'i'h'w' ','}'o'v'5'1'0'2':'g'n'a'W','y'j'3'0'0'2':'t'a'n'g'I','v'i'2'0'0'2':'s'i'v'a'D'{'e't'i'c''~'s't'n'e'm'u'c'o'd' 'L'M'X' 'g'n'i't'i'd'e' 'o't' 'T'O' 'e'z'i'l'a'r'e'n'e'g' 's'm'h't'i'n'r'o'g'l'a' 'e'm'o'S' '.'s'n'o'i't'a'c'i'l'p'p'a' 'y'n'a'm' 'r'o'f' 'd'e'r'i'u'q'e'r' 'e'r'a' 't'a'h't' 's'e'r'u't'c'u'r't's' 'e'e'r't' 'd'e't's'e'n' 'e'h't' 't'r'o'p'p'u's' 't'o'n' 'o'd' 'd'n'a'i's' '''''''''''''}'t'p'6'{'e'c'a'p's'v''a' 's'a' 't'n'e'm'u'c'o'd' 'a' 't'a'e'r't' 'm'e'h't' 'f'o' 't's'o'M' '.'}'d'f'5'9'9'1':'s' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 'd'e's'u' 'n'e'e'b' 'g'n'o'l' 'e'v'a'h' ')'e't'a'l'e'r':'c'e's'{'l'e'b'a'l''}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i'd'e't'a'l'e'R'{'n'o'i't'c'e's''n'n'.'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'n'i'f'e'd' 's'a' 's''''''''''''}'t'p'6'{'e'c'a'p's'v'''p'a'm' 'e'u'l'a'v'-'y'e'k' 't'r'o'p'p'u's' 't'o'n' 'o'd' 's'm'h't'i'r'o'g'l'a' 'i'h'w' ','}'o'v'5'1'0'2':'g'n'a'W','y'j'3'0'0'2':'t'a'n'g'I','v'i'2'0'0'2':'s'i'v'a'D'{'e't'i'c' 'd'e'r'i'u'q'e'r' 'e'r'a' 't'a'h't' 's'e'r'u't'c'u'r't's' 'e'e'r't' 'd'e't's'e'n' 'e'h't' 't'r'o'p'p'u's' 't'o'n' 'o'd' 'd'n'a' ')'e'l'p'm'a'x'e' 'r'o'f' ','s'i's' 'a' 's'a' 't'n'e'm'u'c'o'd' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 'd'e's'u' 'n'e'e'b' 'g'n'o'l' 'e'v'a'h' ')'T'O'(' '}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'o'{'h'p'm'e'' 'n'o' 'd'e's'a'b' 's''}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i'd'e't'a'l'e'R'{'n'o'i't'c'e's'''''''''''''''''''''''''''''''''''''''''''''''''''}'t'p'6'{'e'c'a'p's'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''}'t'p'6'{'e'c'a'p's'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e'e'p' 'e't'o'''''m'''''e'r' 'm'o'r'f' '''''s'''''n'''''o'''''i't'a'r'e'p'o' 'g'n'i'y'l'p'p'a' 'd'n'a' ','s'r'e'e'p' 'r'e'h't'o' 'm'o'r'f' 'd'n'a' 'o't' 's'n'o'i't'a'r'e'p'o' 'g'n'i'v'i'e'c'e'r' 'd'n'a' 'g'n'i'd'n'e's' ':'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 's'm'r'o'f'r'e'p' ','}'y'j'2'1'0'2':'t'd'r'a'h'k'c'r'u'B'{'e't'i'c''~'.'l'a' 't'e' 't'd'r'a'h'k'c'r'u'B' 'y'b' 'd'e'r'i'p's'n'i' ','d'n'a'm'm'o'c' '}'d'l'e'i'y'{'f's't'x'e't'' 'e'h'T'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'p'6'{'e'c'a'p's'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'p'6'{'e'c'a'p's'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'e'r't'b'u's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 'y'l'e'v'i's'r'u'c'e'r' 'e'r'a' 's'e'l'u'r' 's'a' 'e't'a't's' 'e'h't' 'f'o' 's't'r'a'p' 'r'e'n'n'i' 'o't' 'r'e'f'e'r' 'y'a'm' 't'u'b' ','$'p'_''''-'A'$' ''''$'e't'a't's' 'a'c'i'l'p'e'r' 'e'h't' 'y'l'l'a'i't'i'n'i' 's'i' 't'x'e't'n'o'c' 'e'h'T' 'e'm'n'g''''''''''' 'e't'a'd'p'u'''''''''''''''''''''''a'c'i'l'p'e'r' 'a' 'f'o' 'e't'a't's' 'e'h't' 'o't' ''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i's's'a' 'd'n'a' 'n'o'i't'r'e's'n'i' 'g'n'i'y'l'p'p'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 'o't' 'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'w'd'1'1'0'2':'h'o'R'{'e't'i'c''~'m'h't'i'r'o'g'l'a' 'A'G'R' 'e'h't' 'n'o' 'd'e's'a'b' 's'i' 's'n'o'i't'r'e's'n'i' 'g'n'i'l'd'n'a'h' 'r'o'f' 'h'c'a'o'r'p'p'a' 'r'u'O' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'h's'i'l'b'u'p' 'n'e'e'b' 't'o'n' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 's't'i' 'f'o' 's'l'i'a't'e'd' ','t'c'u'd'o'r'p' 'y'r'a't'e'i'r'p'o'r'p' 'a' 's'A' '.'}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'n'o' 's'e'i'l'e'r' 't'i' ','s'c'o'D' 'e'l'g'o'o'G' 'e'k'i'L' '.'s'p'a'm' ''''''''s'a'c'i'l'p'e'r''''''d'''''n'''a' 's't's'i'l' 'f'o' 'g'n'i't's'e'n' 'y'r'a'r't'i'b'r'a' 's't'r'o'p'p'u's' 't'a'h't' 'e'r'a'w'a' 'e'w' 'h'c'i'h'w' 'f'o' 'T'O' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'l'n'o' 'e'''''''a'c'i'l'p'e'''''h'''t' 's'i' '}'k'v'5'1'0'2':'e'l'g'o'o'G'{'e't'i'c''~'I'P'A' 'e'm' 'n'a'c' 'm'e't's'y's' 'a' 'h'c'u's' 'e'e't'n'a'r'a'r'a'u'g' 't's'e'g'n'o'r't's' 'e'h'T' '.'e'l'b'a'l'i'a'v'a'n'u' 'e'm'o'c'e'b'r' 'm'h't'i'r'o'g'l'a' 'y'n'a' 'o's' 'd'n'a' ','e'm'i't' 'e'm'a't' 'e'b' 'y'l't'n'e'u'q'e'r'f' 'l'l'i'w' 't'i' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'f'o' 's'm'e't's'y's' 'r'e'e'p'-'o't'-'r'e'e'p' 'n'o'j'a'm' 'a' 'f'i' 's's'e'r'g'o'r'p' 'e'k'a'm' 'y'l'e'f'a's' 'y'l'n'o' 'n'a'c' 'y'e'h't' 'o's' ','}'p'c'6'9'9'1':'a'r'd'n'a'h'C's' 'a' 'n'o' 'g'n'i'y'l'e'r' 's'd'i'o'v'a' 'h'c'i'h'w' ','}'i'j'4'0'0'2':'o'g'a'f'e'D'{'e't'i'c''~'l'o'c'o't'o'r'p' 't's'a'c'd' 'o't' 'e'l'b'i's's'o'p' 's'i' 't'i' 'h'g'u'o'h't'l'A' '.'}'g'k'5'1'0'2':'r'e'g'n'U'{'e't'i'c''~'r'e'd'r'o' 'e'm'a's' 'e'h't' 'e'e't'n'a'r'a'u'g' 't'o'n' 'o'd' ','n'o'i't'a'r'o'b'a'l'l'o'c' 'd'e't'p'y'r'c'n'e' 'r'o'f' 'e's'u' 'o't' 'n'a'l'p' 'e'w' 'h'c'i'h'w' ','s'l'o'c'o't'o'r'p' 'g'n'a'l'l'o'c' 'r'e'e'p'-'o't'-'r'e'e'p' 't'r'o'p'p'u's' 'o't' 't'n'a'w' 'e'w' 'e'c'n'i's' ','s't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'l'p'm'i's' 's'n'o'i't'c'n'u'f' 'n'o'i't'a'm'r'o'f's'n'a'r't' 'e'h't' 'g'n'i'k'a'm' 'f'o' 'e'g'a't'n'a'v'd'a' 'e'h't' 's'a'h' 'h'i'r'e'h'n'i' 'n'o'i's'i'c'e'd' 'n'g'i's'e'd' 'a' ','}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'s'n'o'i't'a'r'e'p'o' 'f'o' 'g'n'n'a'W'{'e't'i'c''~'e'v'a'W' 'e'l'g'o'o'G' 'y'l'r'e'm'r'o'f'(' 'e'v'a'W' 'e'h'c'a'p'A' 'd'n'a' '}'w'v'0'1'0'2':'k'a'w'e'i'p'S'{'h'c'i'R'y'a'D'{'e't'i'c''~'s'c'o'D' 'e'l'g'o'o'G' 'g'n'i'd'u'l'c'n'i' ','s'm'e't's'y's' 'n'o'i't'a'r'o'b'a'l'l'o'c' 'T'O' 'd'e'v'-'y'e'k' 't'r'o'p'p'u's' 't'o'n' 'o'd' 's'm'h't'i'r'o'g'l'a' 'e's'e'h't' 't'u'b' ','s't's'i'l'W','y'j'3'0'0'2':'t'a'n'g'I','v'i'2'0'0'2':'s'i'v'a'D'{'e't'i'c''~'s't'n'e'm'u'c'o'd' 'L'M'X' 'g'n'i't'i'd'e' 'o't' 'T'O' 'e'z'a'c'i'l'p'p'a' 'y'n'a'm' 'r'o'f' 'd'e'r'i'u'q'e'r' 'e'r'a' 't'a's'i'l' 'd'e'r'e'd'r'o' 'e'l'g'n'i's' 'a' 's'a' 't'n'e'm'u'c'o'd' 'a' 't'a'e'r't' 'm'e'h't' 'f'o' 't's'o'M' '.'}'d'f'5'9'9'1':'s'l'o'h'c'i'N','f'v'8'9'9'1':'n'u'S','x'w'6'9'9'1':'l'e's's'e'R','e'u'9'8'9'1':'s'i'l'l'E'{'e't'i'n'e'e'b' 'g'n'o'l' 'e'v'a'h' ')'T'O'(' '}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'o'{'h'p'm'e'' 'n'o' 'd'e's'a'b' 's''}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i'd'e't'a'l'e'R'{'n'o'i't'c'e's'''n'n''a'c's'i'd' 'o't' 's'i' 's't'c'i'''''''''''''s't'i'c'l'f'n'o'c' 'g'n'i'v'l'o'''''''''''''v'l'o'e's'e'r' 'f'o' 'y'a'w' 't's'e'l'p'm'i's' 'e'h'T'n'n'.'d'e'v'l'o's'e'r' 'e'b' 't's'u'm' 's't'c'i'l'f'n'o'c' 'g'n'i't'l'u's'e'r' 'y'n'a' 'd'n'a' ','s'e'c'i'v'e'd' 't'n'e'r'e'f'f'i'd' 'n'o' 'y'l't'n'e'r'r'u'c'n'o'c' 's'n'o'i't'a'c'i'f'i'd'o'm' 'y'r'a'r't'i'b'r'a' 'e'k'a'm' 'n'a'c' 's'r'e's'u' 't'a'h't' 'e'm'u's's'a' 't's'u'm' 'e'w' 'o's' ','y't'i'v'i't'c'e'n'n'o'c' 'k'r'o'w't'e'n' 'r'o'o'p' 'f'o' 's'e'm'i't' 't'a' 'e'l'b'a's'u'n'u' 'e'm'o'c'e'b' 'o't' 'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'e's'u'a'c' 'd'l'u'o'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y't'i'l'i'b'a'z'i'l'a'i'r'e's' 's'a' 'h'c'u's' 's'e'h'c'a'o'r'p'p'a''''''''''''''''''''''''''''s' 's'd'o'h't'e'm' 'l'o'r't'n'o'c' 'y'c'n'e'r'r'u'c'n'o'c' 'l'a'n'o'i't'i'd'a'r't' 'd'n'a' ','y'l't'n'e'r'r'u'c'n'o'c' 'n'e'p'p'a'h' 'y'a'm' 's'n'o'i't'a'c'i'f'i'd'o'M'''''''t'S' '.'y'l'l'a'c'o'l' 'e't'a't's' 'e'h't' 'y'f'i'd'o'm' 'y'a'm' 'h'c'i'h'w' 'f'o' 'h'c'a'e' ','s'e'c'i'v'e'd' 'l'a'r'e'v'e's' 'o't' 'd'e't'a'c'i'l'p'e'r' 'e'b' 'o't' 's'd'e'e'n' 'e't'a't's' 'n'o'i't'a'c'i'l'p'p'a' 'e'm'a's' 'e'h't' 't'a'h't' 's'i' 'n'o'm'm'o'c' 'n'i' 'e'v'a'h' 's'n'o'i't'a'c'i'l'p'p'a''''d'''''''''''''''''''''''''''''''''''''''''''''''}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'd'e't'a'r't's'u'l'l'i' 's'a' ','' 'e's'e'h't' 't'a'h'W'n'n'''n'i'k' 'r'e'h't'o'''''''''''''''''''''''''''''''''.'s't'n'e'm'u'c'o'd' 'r'a'l'i'm'i's' 'd'n'a' ','s'c'i'h'p'a'r'g' ','s'n'o'i't'a't'n'e's'e'r'p' ','s't'e'e'h's'd'a'e'r'p's' ','''' '''''''''''''' 's't'n'e'm'u'c'o'd' 'n'o' 's'r'e'h't'o' 'h't'i'w' 'e't'a'r'o'b'a'l'l'o'c' 'o't' 't'n'a'w' 'e'l'p'o'e'p' 'y'n'a''''''''''''''''''''''''''''''''''x'i'd'n'e'p'p'a'e'd'u'l'c'n'i''''''''''''''''''''''''.'''''n'o'i't'c'u'd'o''''''''''o'd'u'r't'n'i' 'e'r'o'm' 'O'D'O'T'n'n'm' ','r'e'v'o'e'r'o'M' '.'''''''''''''''''''''''''''''''s'r'e'g'a'n'a'm' 'd'r'o'w's's''''''''' 'g'n''''''''''''''''''''''''''''''' 'e'''''''''''''a'c'i'l'p'e'r' 'a' 'f'o' ''h't' 'e't'a'd'p'u'''''''''''''''''''''''''''''.'e't'a't's' 'a'c'i'l'p'e'r' 'o't' 's'n'o'i't'a'r'e'p'o' 'n'o'i''i'y'l'p'p'a''a'p''' ''''','''''g'''''n'''''i'''''k'''''a'''''t'''''-'''''e'''''t'''o'n'''g'''n'i'r'a'd'n'e'l'a'c''''''''''''''''''a'c' ','s'k'o'o'b' 's's'e'r'd'd'a' 'e'd'u'l'c'n'i' 's'n'o'i't'a'c'i'l'p'p'a' 'h'c'u's' 'f'o' 's'e'l'p'm'a'x'E' ''l'b'a'l'i'a'v'a' 's'i' 'k'r'o'w't'e'n' 'e'h't' 'n'e'h'w' 's'e'c'i'v'e'd' 'r'e'h't'o' 'h't'i'w' ''''''i'i''e't'a't's' 's't'i' 'e'z'i'n'o'r'h'c'n'y's' 'o't' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'r'e'd'n'u' 'g'n'i's'i'r'p'r'u's' 'y'l'''''''s' 'l'a'm'i'n'i'm' 'e'r'a' 't'a'h't' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'n'g'i's'e'd' 'o't' 'd'n'a' 's'r'e'm'm'a'r'g'o'r'p' 'n'o'i't'a'c'i'l'p'p'a' 'f'o' 's'n'o'i't'a't'c'e'p'x'e' 'e'h't' 'd'n'a't's'r'e'd'n'u' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y't'i''''''$'p'_'H'$' ''v'i't'c'e'n'n'o'c' 'k'r'o'w't'e'''':''$'n'$' ''n' 'r'o'o'p' 's'a'h' 'r'o' 'e'n'i'l'f'f'o' 's'i' 'e'c'i'v'e'd' 'e'h't' 'e'l'i'h'w' 'k'r'o'w' 'o't' 'l'l'i't's' 's'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 't'c'e'p'x'e' 's'e'c'i'v'''''''''''''''''''''''''''''''''''''''}'c'e'x'e'-'d'i'l'a'v':'f'e'd'{'l'e'b'a'l'']'n'o'i't'u'c'e'x'e' 'd'i'l'a'v'[''e'd' 'e'l'i'b'o'm' 'n'o' 's'n'o'i't'a'c'i'l'p'p'a' 'f'o'r'e's''''''''''''''q's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'c'u't's' 'g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''l'l''h'c's'''' 'e'r'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i'h'w' 'n'i' 's'e'l'u'r' 'f'o' 'n'o'i't'a'c'i'l'p'p'a' 'o'n' 's'i' 'e'r'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' 'd'r'a'h'c'r'O' 'c'i'n'i'm'o'D'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e't'u'm'm'o'c'-'p'o':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'n'i' ''.'r'e'p'a'p' 's'i'h't' 'f'o' 't'f'a'r'd' 'a' 'n'o' 's't'n'e'm'm'o'c' 'r'o'f' 'e'l'i's'a'V' 'a'n''.'''a'''''i'''''D''''' '''''o'''''t''''' '''''u'''''o''''''''''''s'n'o'i't'a'r'e'p'o''''''''''''y''''''''''''''''' '''''''''''''''''k'''''''''''''''''n'''''''''''''''''a'''''''''''''''''h'''''T''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'''''f'''''e'''''r''''''''~'''''a'''''m'''''m'''''e'''''L''''' '''''n'''''i''''' ''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i''''' ''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''.'r'o'r'r'e' 'e'm'i't'n'u'r' 'a' 'e'b' 'd'l'u'o'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'y'r'o't's'i'h':'f'e'd'{'l'e'b'a'l'''''''''''''''''''''''''''''''''''']'y'r'o't's'i'h'['''''''''''''''''''''''''''''''r'e'd'r'o'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'1'+'n'{'_'o'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'y'l'n'o' 's'n'i'a't'n'o'c' 'x'i'f'f'u's' 'e'h't' ';'$'}'1'+'n'{'_'o'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't''''c''''''''o't' 'd'e'e'n' '' 's'n'o'i't'a'r'e'p'o' 'e'm'o's' 'y'l''''y'b'i's's'o'p' 'd'n'a' ','$'}'1'+'n'{'_'o'$' 'e'd'e'c'e'r'p'' 's'n'o'i't'a'r'e'p'o'''''''''' 'y'l'l'a's'u'a'c' 'l'l'a' 's'n'i'a't'n'o'c' 'x'i'f'e'r'p' 'e'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'n''''''''''=''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''W'''''''''''''''''''''''''''''''''''''''''''''''e'n'i'm'r'e't'e''''''''''''''''''''a'c'i'l'p'e'r' 'n'e'v'i'g' 'a' 't'a' 'd' '''''''''''.'k'c'u't's' 's't'e'g''o't' 'e't'a't's' 'l'a'c'o'l' 's'''a'c'i'l'p'e'r' 'a' 'y'l'n'o' 'd'e'e'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o'''''''''' 'o'n'i't'c'u'd'e'r' 'r'e'h't'e'h'w''''''''''g'n'i'r'a'e'p'p'a''''''''''''''''''''''''''''''''''r'e't'f'a' 'g'n'i'r'r'u'c'c'o''' '''''''''''''''''''''''''''''''''''''s'r'a'e'p'p'a'''''''''''''''''''''''''r'e't'f'a' 's'r'u'c'c'o'''''''''''''''''''''''''''''''''''''''''<''''''''''e'''''''1'-'l'''''''''''''''''n'''''''''''''''''''''''''y'a's' 'e'w' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'i' '''''''''''''''''''''''''''''''''''''''''''.'$'j'_'k' '=' ''''$')')'1'_'k'('''')'}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$' '.'e'.'i' ','y't'p'm'e' 's'i' 'e'c'n'e'u'q'e's' 't'a'h't' 'f'i' '$'1'_'k'$' 'r'a'e'p'p'a'''''''''''''''''''}'r'e't'f'a' 'y'l'e't'a'i'd'e'm'm'i'{'h'p'm'e'' 's'r'a'e'p'p'a' '$'j'_'k''''j'$' ','r'e'v'o'e'r'o'M' '''''''''''''''''''''''''''''''l''' ','$'}'x't'c'{'t'i'h't'a'm''$' 't's'i'''''''''''''''r'e't'f'a' 'g'n'i'r'a'e'p'p'a''''''l''''' '''''d'e'r'''''e'''''d''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'a'''s'''''t'''''n'''''e'''m'e'''l'''''''''''''''''r'e't'f'a' 's'r'a'e'p'p'a''''''e''''''''''' '''''t's'i'l' 'f'o''''''''''''''r'e't'f'a' 's'r'a'e'p'p'a''''''''''''''''' 'e'c'n'e'u'q'e's' ')'y't'p'm'e' 'y'l'b'i's's'o'p'(' 'a' 's''''''''''''''''''' 't's'i'l' '''r'''''o''''' '''''e'''''h'''''t''''' '''''n'''''I'''''o'''''i'''''s'''''s'''''e'''''c'''c'u''j'''s' ''''c''e'u'''s'''''''''''''''''''1'''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'a'-'s'r'a'e'p'p'a''''''''''''''''''''''''''''''''''''''''''''''s'e'i''''''''e''j'''r'a'''''''''''''''''r'e't'f'a'-'s'r'a'e'p'p'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'d'e'n'j''''i'f'e'd'''''''''''''''''''''}'e't'a't''j'''s'-'c'o'e'''''''''''c'''''c'''''u'''''s''''''''''''''''''''d''''''''''':'''''f'''''e'''''d'''''{'''''l'''''e'''''b'''''a'''''l'''''''''''-'''''l'''''l'''''e'''''w''''' '''''s'''''i''''' '''''r'''''e'''''d'''''r'''''o''''' '''''e'''''h'''''t'''''''''''''''''''''''''''''''''''''''''''''''''']'''''e'''''t'''''a'''''t'''''s''''' 't'n'e''''''''s'd'e'e'c'c'u's''e''''''''''''''''''''m'u'c'o'd'['' ','e'm'i'2''''c'u's'''''1'''''''''t' 'a' 't'a' 'n'o'i't'a'r'e'p'o'':'e'''' '''e'n'o' ''''''r'e't'a'l'''''''''''''''''''''''r'e't'f'a' 's'r'a'e'p'p'a'''''''''''''''''r'e't'f'a' 's'r'a'e'p'p'a'''''''''''''''''''''''''''''''''''''''''y'l'p'p'a' 'y'l'l'a''''a'i''2'''t'n'''c'u's'''''''''''''''r'e't'f'a' 's'r'a'''''''''''''r'e't'f'a' 's'r'a'e'p'p'a''''''e'''''p'''''p'''''a''''''''''''1'''''''''''''''e'u'q'e's' 's'e'l'u'r' 'n'o'i't'a'u'l'a'v'e' 'e'h't''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''''''''')'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i's's'e'c'c'u's'''''''''''''''''''''''''''''''''''''''''''''''.'d'e'n'i'f'e'd' '''''''''''''''''''''''''n'o'i's's'e'c'c'u's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2''''''''''''''r'e''1'''t'f'a' 's'r'a'e'p'p'a'''''''''''''''''''''''''''''''' 'e's'''''''''s'n'i'a't'n'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'l'b'''''a'''''''''m'h't'-'''''''''''''e'','c'n'''''''''e'r'o'f'e'r'e'h't''''''''''''' 'd'e't'r'e's'n'i' 's'i''e'''''''''''''''''g'''''r'''''e'v'n'o'c'''''e'm'o''''p'''''r'e't'f'a''''''s''''''''''':'''''m''''''''''''''''i'''''r'''''''''u'-'''a'v' 'e's'e'h't' 's'e'd'u'l'c'x'e' 'e't'a't's' 't'n'e'm'u'c'o'd' 'f'o' 'n'o''''''''''''''''s'd'e'e'c'c'u's' '''''''''''''''''''''''''''''''$'2'_'k'$' 'i't'i'n'i'f'e'd' 'e'h''c' ''u'a'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'c'n'o'c' '''''''''''''''''r''''s''''r''''s''''t'''''''''s''''''''''''''''''''''''' 't's'e't'a'l''''m'''''''''''''''''''r'''''''''s'''''''''''''''''''''.'$'2'_'o'$' 'd'n'''''''''r''''''''''''''s'''''''''''''''''''''''''$'2'_'o'$' 'd'n'a' '$'1'_'o''''O'$' 'f'o' ''''''''''''''''''''''''''''''''''''''''''''''''''s'i' 't'a'h't''''''''''''''$'e'l'g'n'a'r'' ''''''''''''''''''''''''p'a'c'''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'c'n'o'c' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'r'''''''''''''''''''''''''''''''''''''''''''''''r'e't'f'a' 's'r'a'e'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y'l'r'a'l'i'm'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i''''h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'''''''''''''''''''''''''s't'n'e'm'e'l'e' 'd'''''''''''''''''''$'H'$' 'g''''''' 't'n'i'y'l'p'p'a' 'r'e't'f'a' '''''''''''''''''''''''''$'H'$' 'n'i' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 'f'o'''''''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'''''n'''''a''''' '''''c'''''i'''''t's'i'n'i'm'r'e't'e'd' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'c's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'a'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'a'e'p'p'a' 't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'s'_'o'$' 'r'e'''''','s'u'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'D'I' 'e'h't' 'y'b' 'd'e'n'i'm'r'e't'e'd' 's'i' 'r'e'd'r'o' 't's'i'l' 'e'h't' ','d'e't'a'r'e'n'e'g' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'e'm'i'''''''m'o't' 'e'h't' 't'a' 'd'e'x'i'f' 'e'r'a' 's'D'I' 'e's'e'h't' 'e'c'n'i's' 'd'n'a' ','s'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'o' 'y'l'n'o' 's'd'n'e'p'e'd' 'g'n'i'r'e'd'r'o' 'e'h'T''''S' '.'d'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'$'s'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'r'e't'f'a' 's'r'a'e'p'p'a' '$'r'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' ','s'e's'a'c' 'h't'o'b' 'n'I'n''n''t'f'a' 'e'b' 't's'u'm' '$'r'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' ','s'u'h'T' '.'$'r'_'o'$' 'g'n'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'i'l'p'p'a' 'e'r'a' 's'''' 'n'o'i't'a'r'e'p'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o'i'r'p' '''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''''''''''''''s'r'o's'r'u'c' 'f'o' '''''''''''''''''''''''''''''''''''''''''''''''''$'}'t's'r'i'f'{'m'r'h't'a'm''_'o'$' 's'''''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a''d''''''''''''n'o'i't'a'r'e'p'o' '' ','$'H'$' 'y'r'o't's'i'h' 'n'o'i't'a'r'e'p'o' 'n'a' 'n'I''''''''''''''''''''''''t'''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 'e'r'e'w' '$'c'_'o'$' 'd'n'a' '$'d'_'o'$' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 's'n'o'i't'a'r'e'p'o' 'h't'o'b' 'g'n'i'y'l'p'p'a' 'r'e't'f'a' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 't'a'h't' 'w'o'h's' 't's'u'm' 'e'w' ','''''''''''''''''''''''''''''''''''''''''''''n'$'c'_'o'$' 'n'o'i't'a'r'e'p'o' 't'''''''''''n'''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 'x'i'f'e'r'p' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'd'i's'n'o'c' 'w'o'N''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''n'n'.'e'v'i't'a't'u'm'm'o'c' 's'i' 'h'c'i'h'w' ','$'p'u'c''$' 'r'o't'a'r'e'p'o' 'n'o'i'n'u' 't'e's' 'e'h't' 'g'n'i's'u' 'd'e'i'l'p'p'a' 'e'r'a' 'h't'a'p' 'r'o's'r'u'c' 'e'h't' 'f'o' 't'r'a'p' 'd'e'r'a'h's'''''''h's' 'e'h't' 'g'n'o'l'a' '$'1'_'}'D'I'-'d'd'A'{'c's't'x'e't''$' 'd'n'a' '}'d'n'e'c's'e'D'{'c's't'x'''''''''d''''''''''''''''''e'r''c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'u'o'h't'i'w'''''''''''''g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''' 'n'a''''''''''n'o'i't'a'r'e'p'o' '' ','$'H'$' 'y'r'o't's'i'h' 'a' 'n'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''a'_'o'$' 'y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'u'c'e'x'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''' 'r'o'F''''''' '$'''H'$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'H'$' 'n'i' 's'n'o'i't'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''w' 'd'n'a' ',''''''.'''$'}'1'+'n'{'_'o'$' 'h't'i'w' 't'n'e'r'r'''''''''n'e'h't' ' '.''''''u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'y'l'n'o' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'v'i't'a't'u'm'm'o'c' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e'h't' '}'r'e'd'r'o'e'r'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' 'n'e'h't' ','$'}'1''''2'+'n'{''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T''' '.'',''''''''''''''''''''''''''''''''''$'H'$' 'o't'n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e't'r'e's'n'i' 's'i' 'n'o'i't'a'r'e'p'o' 'e'h't' 'h'c'i'h'w' 't'a' 'n'o'i't'i's'o'p' 'e'h't' 'f'o' 't'n'e'd'n'e'p'e'd'n'i' 's'i' 'e't'a't's' 't'n'e'm'u'c'o'd' 'l'a'n'i'f' 'e'h't' 'n'o' 't'c'e'f'f'e''''''''''''''''''' 'e'h't' 'd'n'a' ','s'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 's't'i''''p' 'r'e't'f'a' 't'n'i'o'p' 'y'n'a' 't'a' 'd'e't'r'e's'n'i' 'e'b' 'n'a'c' '$'}'1'+'n'{'_'o''''''''''''''''''''''''''''''$' 'e'r'o'f'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'p'y't'a't'a'd' 'r'u'o' 'f'o' 'e'c'n'e'g'r'e'v'n'o'c' 's'e'v'o'r'p' 's'u'h't' 'd'n'a' ','}'e'c'n'e'g'r'e'v'n'o'c':'m'h't'{'f'e'r''~'m'e'r'o'e'h'T' 'f'o' 'f'o'o'r'p' 'e'h't' 'n'i' 'p'e't's' 'n'o'i't'c'u'd'n'i' 'e'h't' 's'e't'e'l'p'm'o'c' 's'i'h'T'n'n'r'e'h't' 'd'n'a' ','$'H'$' 'n'i' 'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'n'a' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' '$'}'1'''''''1'2'+'n'{'_'o'$' '''''''''''''''' 'e'h't' ','s'u'h'T'''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''s'''''''''''''''''a''''''''''''''''' '''''''''''''''''t'''''''''''''''''s'''''''''''''''''i'''''''''''''''''l''''''''''''''''' '''''''''''''''''e'''''''''''''''''m'''''''''''''''''a'''''''''''''''''s''''' '''''e'''''h'''''t''''' '''''o'''''t'''''n'''''i''''' '''''n'''''o'''''i'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''n'''''a''''' '''''s'''''i''''' '''''$'c'_'o'$' 'f'I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''a'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o't'n'i' 'n'o'i't'r'e's'n'i' 'n'a' 's'i' '$'c'_'o'$' 'f'I' '.'r'e'd'r'o' 'y'n'a' 'n'i' 'd'e'i'l'p'p'a' 'e'b' 'n'a'c' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't' 'o's' 'd'n'a' '$'}'1'+'n'{'_'o'$' 'm'o'r'f' 't'n'e'd'n'e'p'e'd'n'i' 's'i' 't'c'e'f'f'e' 's't'i' ','t'n'e'm'u'c'o'd' 'e'h't' 'n'i' 't's'i'l' 't'n'e'r'e'f'f'i'd' 'a' 'o't'n'i' 'n'o'i't'r'e's'n'i' 'n'a' 's'i' '$'c'_'o'$' 'f'I' '.'y'l'e'v'i't'c'e'p's'e'r' '}'e't'u'm'm'o'c'-'n'g'i's's'a':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'r'o' '}'e't'u'm'm'o'c'-'e't'e'l'e'd''''''''''s's'a':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' '$'}'1'+'n'{'_'o'$' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' 't'i' ','t'n'e'm'n'g'i's's'a' 'r'o' 'n'o'i't'e'l'e'd' 'a' 's'i' '$'c'_'o'$' 'f'I' '.'y'r'o't's'i'h' 'e'h't' 'n'i' '$'c'_'o'$' 'r'e't'f'a' 'd'n'a' 'e'r'o'f'e'b' 'd'e't'r'e's'n'i' 'g'n'i'e'b' '$'}'1'+'n'{'_'o'$' 'f'o''''''''''''''''h't'e'h'w' 's'e's'a'c' 'e'h't' 'r'e'd'i's'n'o'c' 'd'n'a' ','x'i'f'f'u's' 'e'h't' 'n'i' 'n'o'i't'a'r'e'p'o' 'y'n'a' 'e'b' '$'c'_'o'$' 't'e'l' ','n'o'i't'r'e's'n'i' 'n'a' 's'i' '$'}'1'+'n'{''''['_'o'$' 'f'I'n'n'.'x'i'f'f'u's' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' 't'i' '}'e't'u'm'm'o'c'-'n'g'i's's'a':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' ','t'n'e'm'n'g'i's's'a' 'n'a' 's'i' '$'}'1'+'n'{'_'o'$' 'f'i' ','y'l'r'a'l'i'm'i'S' '.'e't'a't's' 't'n'e'm'u'c'o'd' 'l'a'n'i'f' 'e'h't' 'n'o' 't'c'e'f'f'e' ''''e's't'i' 'g'n'i'g'n'a'h'c' 't'u'o'h't'i'w' 'x'i'f'f'u's' 'e'h't' 'r'e't'f'a' 'r'o' ','e'r'o'f'e'b' ','n'i'h't'i'w' 't'n'i'o'p' 'y'n'a' 't'a' 'd'e't'r'e's'n'i' 'e'b' 'n'a'c' '$'}'1'+'n'{'_'o''''#'$' 'o's' 'd'n'a' ','x'i'f'f'u's' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'h't'i'w' 'e'v'i't'a't'u'm'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'p'o' 'l'l'a' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 's'i' 't'i' '}'e't'u'm'm'o'c'-'e't'e'l'e'd':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' ','n'o'i't'e'l'e'd' 'a' 's'i' '$'}'1'+'n'{'''''''{'n'_'o'$' 'f'I''n'n''s'n'i'a't'n'o'c' 'x'i'f'f'u's' 'e'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','x'i'f'e'r'p' 'e'h't' 'r'e't'f'a' 't'n'i'o'p' 'y'n'a' 't'a' 'd'e't'r'e's'n'i' 'e'b' 'o't' '$'}'1'+'n'{'_'o'$' 'w'o'l'l'a' 'e'W' '.'}'e'c'n'e'g'r'e'v'n'o'c':'m'h't'{'f'e'r''~'m'e'r'o'e'h'T' 'f'o' 'f'o'o'r'p' 'e'h't' 'n'i' 'd'e'b'i'r'c's'e'd' 's'a' ','x'i'f'f'u's' 'a' 'd'n'a' 'x'i'f'e'r'p' 'a' 'o't'n'i' 't'i'l'p's' 'e'b' 'n'a'c' '$'H'$'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'$'}'1'+'n'{'_'o'$' 'n'i' 'n'o'i't'a't'u'm' 'f'o' 'e'p'y'''''''''''''''' 'e'p'y'h't' 'e'h't' 'n'o' 'g'n'i'd'n'e'p'e'd' ','e's'a'c'-'y'b'-'e's'a'c' 'a'm'm'e'l' 'e'h't' 'e'v'o'r'p' 'e'W''n'n''r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'n'a' 'f'o' 'g'n'i'r'e'd'r'o' 'e'h't' 'f'o' 't'n'e'd'n'e'p'e'd'n'i' 'd'n'a' ','e'm'a's' 'e'h't' 's'i' 'r'e'd'r'o' 'n'i' '$'''H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'y'l'p'p'a''''''''''' 'm'o'r'f' 'g'n'i't'l'u's'e'r' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' ','y'a'w' 's'i'h't' 'd'e't'c'u'r't's'n'o'c' 'e'b' 'n'a'c'''''''''''''' 't'a'h't' 's'e'i'r'o't's'i'h' '''''''''''''''''''''''''''''''''' 'g'n'i't'l'u's'e'r' 'l'l'A''''T' '.'d'e'i'l'p'p'a' 'n'e'e'b' 'e'v'a'h' '$'}'s'p'e'd'{'t'i'h't'a'm''.'}'1'+'n'{'_''''{'o'$' 'r'e't'f'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'e'h't' 'e'r'e'h'w' '$'H'$' 'n'i' 't'n'i'o'p' 'y'n'a' 't'a' 'd'e't'r'e's'n'i' 'e'b' 'n'a'c' 'n'o'i't'u'c'e'x'e' 't'a'h't' 'm'o'r'f' '$'}'1'+'n'{'_'o'$' 'd'i'l'a'v' 'a' 'm'o'r'f' ''''''''''''''''''' 'n'o'i't'a'r'e'p'o' 'w'e'n' 'a' ','$'e'l'g'n'a'r'' 'n'_'o' ','s't'o'd'' ','1'_'o' 'e'l'g'n'a'l''='H'$' 'y''''''''''$' 'h'r'o't's'i'h' 'n'o'i't'a'r'e'p'o' 'n'a' 'n'e'v'i'G''n'''''''''''''''''''''''''''}'f'o'o'r'p'{'n'i'g'e'b''n'n'}'a'm'm'e'l'{'d'n'e''n''o'i's's'e'r'p'x'e' 'e'h't' 'y'b' '''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''f'o'o'r'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''e'''''o'''''d''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''f'i' 'r'o' 'n'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'e't'u'm'm'o'c'-'n'g'i's's'a':'m'e'l'{'f'e'r''~'a'm'm'e'L' ':'t'n'e'm'n'g'i's's'a' ';'}'e't'u'm'm'o'c'-'e't'e'l'e'd':'m'e'l'''':'{'f'e'r''~'a'm'm'e'L' ':'n'o'i't'e'l'e'd' ';'}'r'e'd'r'o'e'r'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' ':'t's'i'l' 'e'm'a's' 'e'h't' 'o't' 'n'o'i't'r'e's'n'i'n'''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'e't'u'm'm'o'c'-'p'o':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'{'n'i'g'e'b''n'n'i't'a'r'e'p'o' 't'n'e'm'n'g'i's's'a' 'n'a' 't'o'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'a' 'o't' 's'e't'a'd'p'u' 't'n'e'd'n'e''''d'p'e'd'n'i' 'f'o' 'y't'i'v'i't'a't'u'm'm'o'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'a'i'r'e't'a'm'm'i' 's'i' 'r'e'd'r'o' 'r'i'e'h't' 'd'n'a' ',''.'g'n'i'p'p'a'm' 'e'h't' 'o't' 's'y'e'k' 't'n'e'r'e'f'f'i'd' 'o'w't' 'd'd'a' 's't'n'e'm'n'g'i's's'a' 't'n'e'r'r'u'c'n'o'c' 'o'w't' ','e'u'q'i'n'u' 'e'r'a' ')'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L'(' 's'D'I' 'n'o'i't'a'r'e'p'o' 'e'c'n'i'S' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e't'a't's' 't'n'e'm'u'c'o'd' '''s'i'''e'''''h't' 'n'o' ''''''''''''''''''''''''''''''''''e't'u'm'm'o'c' 's'n'o'i't'a'r'e''''p'p'o' 'e'h't' 'o's' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'a'_'o'$' 'r'e't'f'a' 'r'o' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'a'w' '$'c'_'o'$' 'r'e'h't'e'h'w' 'f'o' 's's'e'l'd'r'a'g'e'r' ','t'c'e'f'f'e' 'e'm'a's' 'e'h't' 'e'v'a'h' '$'a''''c'_'o'$' 'g'n'i'y'l'p'p'a' 'f'o' 's's'e'c'o'r'p' 'e'h't' 'f'o' 's't'r'a'p' 'l'l'a''''''''''''''''''''''''' 'l'l'a' 'r'o'f' ','s'u'h'T'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'2'_'}'d'i''''''''''d'i'k'{'t'i'h't'a'm'' '='t'o'n'' '1'_'}'d'i'{'t'i'h't'a'm''$' 't'a'h't' 'd'e'd'i'v'o'r'p' '$']',''''']'1'_'}'l'a'v'{'t'i'h't'a'm'' 'o't's'p'a'm'' '1'_'}'d'i'{'t'i'h't'a'm'',''''''''[']',''2'_'}'l'a'v'{'t'i'h't'a'm'' 'o't's'p'a'm'' '2'_'}'d'i'{'t'i'h't'a'm'',''['}'d'l'i'h'c'{'t'i'h't'a'm'' '=' ']',''2'_'}'l'a'v'{'t'i'h't'a'm'' 'o't's'p'a'm'' '2'_'}'d'i'{'t'i'h't'a'm'',''''','[']',''1'_'}''''_'l'a'v'{'t'i'h't'a'm'' 'o't's'p'a'm'' '1'_'}'d'i'{'t'i'h't'a'm'',''['}'d'l'i'h'c'{'t'i'h't'a'm''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'a' 'o't' 's'e't'a'd'p'u' 'f'o' 'r'e'd'r'o' 'e'h't' 't'a'h't' 't'c'a'f' 'e'h't' 'e's'u' 'e'w' ','r'o's'r'u'c' 'e'm'a's' 'e'h't' 'o't' 's't'n'e'm'n'g'i's's'a' 'e'r'a' '$'c'_'o'$' 'd'n'a' '$'a'_'o'$' 'f'I' '.'e'v'i't'a't'u'm'm'o'c' 'y'l'l'a'i'v'i'r't' 's'u'h't' 'd'n'a' 't'n'e'd'n'e'p'e'd'n'i' 'e'r'a'''''' '''''s'''''i''''' '''$'c'_'o'$' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o't' 'y'l'p'p'a' 's'n'o'i't'a'r'e'p'o''''''''''''''''''''''''' 's'e't'a'd'p'u' 'e'h't' ','$'}'r'o's'r'u'c'{'t'i'h't'a'm''.'c'_'o' '='t'o'n'' '}'r'o's'r'u'c'{'t'i'h't'a'm''.'a'_'o'$' 'f'I'n'n''a'_'o'$' '''''''''''''''''''''''''''r'e't'f'a' 'r'o' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' 't'i' 'r'e'h't'e'h'w' 'f'o' 's's'e'l'd'r'a'g'e'r' ','''''''.'$'}'d'i'{'t'i'h't'a'm''$''''#' 'f'o' 'g'n'i'p'p'a'm' 'e'h't' 't'c'e'f'f'a' 't'o'n'n'a'c' 'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'a' ','g'n'i'p'p'a'm' 'e'h't' 'm'o'r'f' '}'d'i'{'t'i'h't'a'm'' 'e'v'o'm'e'r' 't'o'n' 'o'd' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'e'l'e'd' 't'n'e'r'r'u'c'n'o'c' 'd'n'a' ','e'u'q'i'n'u' 'e'r'a' ')'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L'(' 's'D'I' 'n'o'i't'a'r'e'p'o' 'e'c'n'i'S' ''''''''''''''''''''''''''''''''''''''''.'$']',''}'l'a'v'{'t'i'h't'a'm'' 'o't's'p'a'm'' '}'d'i'{'t'i'h't'a'm'',''['}'d'l'i'h'c'{'t'i'h't'a'm''$''''#' ':'''''''''''''''''''''' 'g'n'i's'u' 'r'e't's'i'g'e'r' 'e'h't' 'o't' 'd'e'd'd'a' 's'i' 'e'u'l'a'v' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'm'o'r'f' 'g'n'i'p'p'a'm' 'e'h't' ','b' 'd'e'n'g'i's's'a' 'e'u'l'a'v' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'l'p'p'a' 'e'l'u'r' '}'n'g'i's's'A'{'c's't'x'e't'' 'e'h't' 'd'n'a' 'e'v'i't'i'm'i'r'p' 'a' 's'i' 'e'u'l'a'v' 'd'e'n'g'i's's'a' 'e'h't' 'e'r'e'h'w' 'e's'a'c' 'e'h't' 'n'i' ','''' 'y'l'l'a'n'i'F'n'n'.'e'v'i't'a't'u'm'm'o'c' 's'i' 'h'c'i'h'w' ','$'p'u'c''$' 'r'o't'a'r'e'p'o' 'n'o'i'n'u' 't'e's' 'e'h't' 'g'n'i's'u' 'd'e'i'l'p'p'a' 'e'r'a' 's'e'g'n'a'h'c' 'e't'a't's' 'e's'e'h'T' '.'r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'b'i'r'c's'e'd' 'e'e'r't' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'o'o'r' 'e'h't' 'm'o'r'f' 'h't'a'p' 'e'h't' 'n'o'''''''l'a' 's't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'o't' '$'}'d'i'{'t'i'h't'a'm''.'a'_'o'$' 's'd'd'a' '}'d'n'e'c's'e'D'{'c's't'x'e't'' 'd'n'a' ','r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'o't' '$'}'d'i'{'t'i'h't'a'm''.'a'_'o'$' 'd'd'a' 'o's'l'a' 's'e'l'u'r' 'e'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n''n''d'e'h'c'u'o't'n'u' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'b' 's'e't'a'd'p'u' 's'e'v'a'e'l' 'd'n'a' ','s'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' 'n'o'i't'a'r'e'p'o' 'g'n'i'r'a'e'l'c' 's'i'h't' ','}'e't'u'm'm'o'c'-'e't'e'l'e'd':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' ';'g'n'i'r'r'u'c'c'o' 's'i' 't'n'e'm'n'g'i's's'a' 'e'h't' 'h'c'i'h'w' 't'a' 'r'o's'r'u'c' 'e'h't' 'm'o'r'f' 'e't'a't's' 'r'o'i'r'p' 'y'l'l'a's'u'a'c' 'y'n'a' 'r'a'e'l'c' 't's'r'i'f' 's'e'l'u'r' 'e'e'r'h't' 'l'l'A' '.'d'e'n'g'i's's'a' 'g'n'i'e'b' 'e'u'l'a'v' 'e'h't' 'n'o' 'g'n'i'd'n'e'p'e'd' ','d'e'i'l'p'p'a' 's'i' '$'a'_'o'$' 'n'o'i't'a'r'e'p'o' 't'n'e'm'n'g'i's's'a' 'n'a' 'w'o'h' 'e'n'i'f'e'd' '}'t's'i'L'-'y't'p'm'E'{'c's't'x'e't'' 'd'n'a' '}'p'a'M'-'y't'p'm'E'{'c's't'x'e't'' ','}'n'g'i's's'A'{'c's't'x'e't'' 's'e'l'u'r' 'e'h'T'n'n'.'d'e'i'l'p'p'a' 'e'r'e'w' '$'c'_'o'$' 'd'n'a' '$'a'_'o'$''''o' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 's'n'o'i't'a'r'e'p'o' 'h't'o'b' 'g'n'i'y'l'p'p'a' 'r'e't'f'a' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 't'a'h't' 'w'o'h's' 't's'u'm' 'e'w' ','$'c'_'o'$' 'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'y'n'a' 'd'n'a' '$'a'_'o'$' 't'n'e'm'n'g'i's's'a' 'n'a' 'n'e'v'i'G'n'''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''t''' ','s'u'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'r'e't's'i'g'e'r' 'd'n'a' 's't'e's' 'e'c'n'e's'e'r'p' 'f'o' 't'n'e't'n'o'c' 's'u'o'i'v'e'r'p' 'e'h't' 'n'o' 'l'a'n'o'i't'i'd'n'o'c' 't'o'n' 'e'r'a'n'''''''''''''''''''''x'i'd'n'e'p'p'a'''' 'e'd'u'l'c'n'i' '''''' '''''''''''''''''n'''''''''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''n'''''a''''' '''''g'''''n'''''i'''''y'''''l'''''p'''''p'''''a''''' '''''r'''''o'''''f''''' '''''s'''''e'''''l'''''u'''''r''''' '''''e'''''h'''''t''''' '''''e'''''s'''''u'''''a'''''c'''''e'''''b''''' '''''d'''''n'''''a''''' ''''',''''''''.'''''s'''''t'''''n'''''e'''''m'''''e'''''l'''''e''''''''''''''''''''''''''''''''''''''''''''''''''s'''''m'''''e'''''t'''''i''''' '''''t'''''s'''''i'''''l''''' '''''r'''''o''''' '''''s'''''y'''''e'''''k''''' '''''p'''''a'''''m''''' '''''y'''''n'''''a''''' '''''e'''''v'''''o'''''m'''''e'''''r''''' '''''y'''''l'''''l'''''a'''''u'''''t'''''c'''''a''''' '''''t'''''o'''''n''''' '''''s'''''e'''''o'''''d''''' '''''t'''''u'''''b''''' ''''','''''s'''''r'''''e'''''t'''''s'''''i'''''g'''''e'''''r''''' '''''d'''''n'''''a''''' '''''s'''''t'''''e'''''s''''' '''''e'''''c'''''n'''''e'''''s'''''e'''''r'''''p''''' '''''s'''''e'''''i'''''f'''''i'''''d'''''o'''''m''''' '''''y'''''l'''''n'''''o''''' '''''n'''''o'''''i'''''t'''''e'''''l'''''e'''''d''''' '''''a''''' '''''g'''''n'''''i'''''y'''''l'''''p'''''p'''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''$'''''d'''''_'''''o'''''$''''''''''''''''''''''' '''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''$'''''d'''''_'''''o'''''$''''' '''''e'''''s'''''u'''''a'''''c'''''e'''''b''''' ''''','''''y'''''l'''''s'''''u'''''o'''''i'''''v'''''e'''''r'''''p''''' '''''d'''''e'''''i'''''l'''''p'''''p'''''a''''' '''''n'''''e'''''e'''''b''''' '''''t'''''o'''''n''''' '''''d'''''a'''''h''''' '''''$'''''d'''''_'''''o'''''$''''' '''''f'''''i''''' '''''s'''''a''''' '''''y''''''''''''''s'''''a'''''w''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''n'''''i''''' '''''s'''''e'''''i'''''l'''''p'''''p'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''t'''''u'''''c'''''e'''''x'''''e''''' '''''o'''''t''''' '''''e'''''l'''''b'''''a''''' '''''l'''''l'''''i'''''t'''''s''''' '''''s'''''i''''' '''''$'''''c'''''_'''''o'''''$''''' ''''','''''''''''''' '''''r'''''e'''''v'''''o'''''e'''''r'''''o'''''M''''' '''''.'''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''e'''''h'''''t''''' '''''o'''''t''''' '''''e'''''u'''''d''''' ''''','''''r'''''e'''''d'''''r'''''o''''' '''''e'''''s'''''r'''''e'''''v'''''e'''''r''''' '''''e'''''h'''''t''''' '''''n'''''i''''' '''''d'''''e'''''i'''''l'''''p'''''p'''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''t'''''u'''''c'''''e'''''x'''''e''''' '''''n'''''e'''''e'''''b''''' '''''d'''''a'''''h''''' '''''y'''''e'''''h'''''t''''' '''''f'''''i''''' '''''s'''''a''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''s'''''i''''' '''''s'''''r'''''e'''''t'''''s'''''i'''''g'''''e'''''r''''' '''''d'''''n'''''a''''' '''''s'''''t'''''e'''''s''''' '''''e'''''c'''''n'''''e'''''s'''''e'''''r'''''p''''' '''''n'''''o''''' '''''t'''''c'''''e'''''f'''''f'''''e''''' '''''e'''''h'''''t''''''''o'''''f'''''e'''''b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''','''''$'''''d'''''_'''''o'''''$''''' '''''r'''''e'''''t'''''f'''''a''''' '''''d'''''e'''''i'''''l'''''p'''''p'''''a''''' '''''s'''''i''''' '''''$'''''c'''''_'''''o'''''$''''' '''''f'''''I'''''n'''''n'''''''''''n'''''n''''''''''''''e'''''t'''''''' '''''y'''''b''''' '''''s'''''e'''''g'''''n'''''a'''''h'''''c''''' '''''e'''''t'''''a'''''t'''''s''''' '''''y'''''n'''''A''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''$'''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''c'''''_'''''o'''''$''''' '''''f'''''o''''' '''''x'''''i'''''f'''''e'''''r'''''p''''' '''''a''''' '''''s'''''i''''' '''''$''''''''''''''''''''''''''''''''''''''''' '''''s'''''i''''' '''''}'''''r'''''u'''''c''''''''''''''''''''''''''e'''''r'''''o'''''f'''''e'''''r'''''e'''''''''''{'''''''''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''d'''''_'''''o'''''$''''' '''''e'''''r'''''e'''''h'''''w''''' '''''e'''''s'''''a'''''c''''' '''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'''''l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''}'''''s'''''p'''''e'''''d'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''d'''''_'''''o'''''$''''' '''''n'''''i''''' '''''s'''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''f'''''o''''' '''''s'''''e'''''c'''''n'''''e'''''r'''''r'''''u'''''c'''''c'''''o''''' '''''y'''''n'''''a''''' '''''g'''''n'''''i'''''v'''''o'''''m'''''e'''''r''''' '''''e'''''l'''''i'''''h'''''w''''' ''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''e'''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''e'''''t'''''u'''''m'''''m'''''o'''''c''''' '''''s'''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''e'''''h'''''t''''' '''''o'''''s''''' ''''','''''$'''''c'''''_'''''o'''''$''''' '''''e'''''r'''''o'''''f'''''e'''''b''''' '''''$'''''d'''''_'''''o'''''$''''' '''''g'''''n'''''i'''''y'''''l'''''p'''''p'''''a''''' '''''s'''''a''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''s'''''u'''''h'''''t''''' '''''s'''''i''''' '''''$'''''d'''''_'''''o'''''$''''' '''''e'''''r'''''o'''''f'''''e'''''b''''' '''''$'''''c'''''_'''''o'''''$''''''''''''''''''''''''''''''''''' '''''g'''''n'''''i'''''y'''''l'''''p'''''p'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'''''p'''''a''''' '''''f'''o' 'f'o' 't'c'e'f'f'e' 'e'h'T' '.'d'e'b'r'u'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 'n'i'''''''t's'i'd'n'u' '$'}'d'i'{'t'i'h't'a'm''.'c'_'o'$' 'f'o' 's'e'c'n'e'r'r'u'c'c'o' 'y'n'a' 'e'v'a'e'l' 'l'l'i'w' '$'d'_'o'$' 'g'n'i't'a'u'l'a'v'e'''''''''''''''''''''''''''''''$' 'g'n'i'y'l'p'p'a' 's'e'l'u'r' '}'*'-'r'a'e'l'C'{'c's't'x'e't'' 'e'h't' ','h't' 'n'o' 's'u'c'o'f' 'e'w' ','''' 'f'o'o'r'p' 's'i'h't' 'f'o' 't's'e'r' 'e'h't' 'r'o'F' '.'e'v'i't'a't'u'm'm'o'c' 'y'l'l'a'i'v'i'r't' 'e'r'a' 'y'e'h't' 'o's' 'd'n'a' ','t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 's'e'e'r't'b'u's' 't'n'i'o'j's'i'd' 't'c'e'f'f'a' 's'n'o'i't'a'r'e'p'o''''o' 'e'h't' ',''''''a''''' '''''t'''''o'''''n''''' '''''s'''''i''''' '''''$'''''}'r'u'c'{'t'i'h't'a'm''.'d'_'o'$' '''' '''''''''''''''''''}'r'''''''''''''''''''' 'n'i'h't'i'w' 'l'l'a'f' 't'o'n' 's'e'o''u'c'{'t'i'h't'a'm''.''''d' '$'c'_'o'$' 'f'I'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'o't's'i'h' 'e'h't''''h' 'n'i' '$'d'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'c'_'o'$' 'f'i' ','s'u'h'T' ''''''''''''','}'n'g'i's's'A'{'c's't'x'e't'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'s'p'e'd'{'t'i'h't'a'm''.'d'_'o' 'n'i't'o'n'' '}'d'i'{'t'i'h't'a'm''.'c'_'o'$' 't'a'h't' 'w'o'n'k' 'e'w' ','$'d'_'o'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 's'i' '$'c'_'o'$' 'e'c'n'i'S'n'n'.'r'o's'r'u'c' 'e'h't' 'y''''''' 'h'b' 'd'e'b'i'r'c's'e'd' 'e'e'r't' 't'n'e'm'u'c'o'd' 'e'h't' 'h'g'u'o'r'h't' 'h't'a'p' 'e'h't' 'g'n'o'l'a' '$')'k'('}'s'e'r'p'{'f's'h't'a'm''$' 's't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'o't' '$'}'d'i'{'t'i'h't'a'm''.'c'_'o'$' 'd'd'a' 's'e'l'u'r' '}'t's'i'L'-'y't'p'm'E'','}'d'n'e'c's'e'D'{'c's't'x'e't'' 'e'h't' 'd'n'a' ','r'e't's'i'g'e'r' 'a' 'r'o'f' 'e'u'l'a'v' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'm'o'r'f' 'g'n'i'p'p'a'm'''''''''''''''''''''' 'f'o' 't'e's' 'e'h't'''''''''' 'e'h' 'o't' '$'}'d'i'{'t'i'h't'a'm''.'c'_'o'$' 's'd'd'a' 'e'l'u'r' ''''''''''''''''''''''''''''''''''''{'c's't'x'e't'' 'd'n'a' '}'p'a'M'-'y't'p'm'E'{'c's't'x'e't'' ','}'n'g'i's's'A'{'c's't'x'e't'' 'e'h't' ','n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 'r'o' 't'n'e'm'n'g'i's's'a' 'n'a' 's'i' '$'c'_'o'$' 'f'I' '.'$'}'s'p'e'd'{'t'i'h't'a'm''.'d'_'o' 'n'i't'o'n'' '}'d'i'{'t'i'h't'a'm''.'c'_'o'$' 't'a'h't' 'w'o'n'k' 'e'w' ','$'d'_'o'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 's'i' '$'c'_'o'$' 'e'c'n'i'S'n'n'''' '''''r'r'u'c'n'o'c' 'r'e'h't'o' 'y'n'a''''' 'd'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'e'd'{'m'r'h't'a'm''''''' '$'d'_'o'$' 'n'o'i't'a'r'e'p'o' 'n'o'i'''''''''''t'''''e'''''l'''''e'd' 'a' 'n'e'v'i'G'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'b' 'd'e'n'i'm'r'e't'e'd' 's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'i''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''.'s'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't''' 'f'o' 's'e'c'n'e'r'e'f''''v'e'r' 'r'o's'r'u'c' 'f'o' 'n'i'a'h'c' 'e'h't' 'n'i' ','''''''r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h't' 'r'e't'f'a' 'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'h't' 'o't'n'i''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''' '''''s'''''''''''''' '''''n'''''o'''''i'''''t'''''r'''''e'''''s'''''n'''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'}'l'e'd'{'m'r'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'s'p'e'd'{'t'i'h't'a'm''.'}'l'e'd'{'m'r'h't'a'm''_'o'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'y'b' 'n'e't't'i'r'w' 's'e'u'l'a'v' 'y'n'a' 'e'v'o'm'e'r' 'o't' 's'r'e't's'i'g'e'r' 'l'l'a' 'g'n'i't'a'd'p'u' 'd'n'a' ','t'a'm''_'o'$' ''''''''''''''''''''''''''''''''''''''''''''''''''''''b'u's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a' '$')'''''''''''''''''''''''e'e'r't'b'u's' 'e'h't' 'n'i' 's'e'd'o'n' 'h'c''k'('}'s'e'r'p'{'f's'h't'a'm''$' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' ''''''''''n'a'r'b' 'l'l'a''''''' 'm'o'r'f' '$'}'s'p'e'd'{'t'i'h't'a'm''.'}'l'e'd'{'m'r'h't'a'm''_'o'$' 'g'n'i'v'o'm'e'r' ',''''''''''''''''''''''''''''''''''e'e'r't' 'e'h't' 'd'n'e'c's'e'd' 'y'l'e'v'i's'r'u'c'e'r' 'y'e'h't' ','n'o'i't'a'r'e'p'o' 'e'h't' 'n'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'i' 'd'e'i'f'i't'n'e'd'i' 'n'o'i't'i's'o'p' 'r'o's'r'u'c' 'e'h't' 't'a' 'g'n'i't'r'a't's' ':'d'e'i'l'p'p'a' 's'i' 'n'o'i't'a'r'e'p'o' 'n'o'i't'e'l'e'd' 'a' 'w'o'h' 'e'n'i'f'e'd' '}'s'e'l''''''''''s'e'o'u'r'-''''_'r'a'e'l'c':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 's'e'l'u'r' 'e'h'T'n'''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''t'''''a'''''h'''''t''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''t'''''s'''''r'''''i'''''f''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''p'''''m'''''a'''''t'''''s'''''e'''''m'''''i'''''t''''' '''''t'''''r'''''o'''''p'''''m'''''a'''''L''''' '''''e'''''h'''''t''''' '''''n'''''o''''' '''''s'''''d'''''n'''''e'''''p'''''e'''''d''''' '''''t'''''s'''''i'''''l''''' '''''l'''''a'''''n'''''i'''''f''''' '''''e'''''h'''''t''''' '''''n'''''i''''' '''''$'''''s'''''_'''''o'''''$''''' '''''d'''''n'''''a''''' '''''$'''''''''''''' '''''r'''''_'''''o'''''$''''' '''''f'''''o''''' '''''r'''''e'''''d'''''r'''''o''''' '''''e'''''h'''''t''''' ''''','''''e'''''r'''''o'''''f'''''e'''''r'''''e'''''h'''''T'''''''' '''''t'''''i''''' '''''n'''''o''''' '''''d'''''e'''''s'''''a'''''b''''' '''''s'''''i''''' '''''t'''''a'''''h'''''t''''' '''''s'''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''f'''''o''''' '''''n'''''i'''''a'''''h'''''c''''' '''''e'''''h'''''t''''' '''''e'''''r'''''o'''''f'''''e'''''b''''' '''''d'''''e'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''o'''''s'''''l'''''a''''' '''''s'''''i''''' '''''t'''''i''''' ''''','''''$'''''}'''''t'''''s'''''r'''''i'''''f'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''_'''''o'''''$''''' '''''e'''''r'''''o'''''f'''''e'''''b''''' '''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''w'''''e'''''n''''' '''''a''''' '''''s'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''$'''''1'''''_'''''}'''''t'''''r'''''e'''''s'''''n'''''I'''''{'''''c'''''s'''''t'''''x'''''e'''''t''''''''$''''' '''''f'''''i''''' ''''';'''''t'''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''a'''''m''''''''_'''''o'''''$'''''''''''''''''''''''t'''''i''''' '''''n'''''o''''' '''''t'''''n'''''e'''''d'''''n'''''e'''''p'''''e'''''d''''' '''''y'''''l'''''l'''''a'''''s'''''u'''''a'''''c''''' '''''e'''''r'''''a''''' '''''t'''''a'''''h'''''t''''' '''''s'''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''l'''''l'''''a''''' '''''r'''''e'''''v'''''o''''' '''''p'''''i'''''k'''''s''''' '''''o'''''s'''''l'''''a''''' '''''l'''''l'''''i'''''w''''' '''''t'''''i''''' ''''','''''$'''''}'''''t'''''s'''''r'''''i'''''f'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''_'''''o'''''$''''' '''''y'''''b''''' '''''d'''''e'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' '''''r'''''e'''''v'''''o''''' '''''s'''''p'''''i'''''k'''''s''''' '''''$'''''2'''''_'''''}'''''t'''''r'''''e'''''s'''''n'''''I'''''{'''''c'''''s'''''t'''''x'''''e'''''t''''''''$''''' '''''f'''''i''''' ''''':''''''''''''''f'''''}'''''t'''''c'''''i'''''l'''''f'''''n'''''o'''''c'''''-'''''t'''''r'''''e'''''s'''''n'''''i''''':'''''m'''''e'''''l'''''{'''''f'''''e'''''r''''''''~'''''a'''''m'''''m'''''e'''''L''''' '''''n'''''i''''' '''''s'''''a''''' '''''t'''''n'''''e'''''m'''''u'''''g'''''r'''''a''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''y'''''l'''''p'''''p'''''a''''' '''''n'''''a'''''c''''' '''''e'''''w''''' ''''','''''s'''''u'''''h'''''T''''' '''''.'''''$'''''}'''''t'''''s'''''r'''''i'''''f'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''_'''''o'''''$''''' '''''n'''''a'''''h'''''t''''' '''''r'''''e'''''t'''''a'''''e'''''r'''''g''''' '''''p'''''m'''''a'''''t'''''s'''''e'''''m'''''i'''''t''''' '''''t'''''r'''''o'''''p'''''m'''''a'''''L''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''e'''''p'''''o''''' '''''n'''''a''''' '''''e'''''v'''''a'''''h''''' '''''t'''''s'''''u'''''m''''' '''''y'''''e'''''h'''''t''''' '''''o'''''s''''' '''''d'''''n'''''a''''' ''''','''''$'''''}'''''t'''''s'''''r'''''i'''''f'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''_'''''o'''''$'''''''''''''''''''''''''' '''''n'''''o''''' '''''t'''''n'''''e'''''d'''''n'''''e'''''p'''''e'''''d''''' '''''y'''''l'''''l'''''a'''''s'''''u'''''a'''''c''''' '''''e'''''r'''''a''''' '''''n'''''i'''''a'''''h'''''c''''' '''''s'''''i'''''h'''''t''''' '''''n'''''i''''' '''''s'''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''l'''''l'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''o'''''s'''''r'''''u'''''c''''' '''''e'''''h'''''t''''' '''''r'''''e'''''t'''''f'''''a''''' '''''n'''''o'''''i'''''t'''''i'''''s'''''o'''''p''''' '''''a''''' '''''t'''''a''''' '''''s'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''s'''''y'''''a'''''w'''''l'''''a''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''n'''''o'''''i'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''n'''''a''''' '''''e'''''c'''''n'''''i'''''s''''' ''''','''''''''''''' ''''''''''''''''''''''''''''''''''''''''' '''''t'''''a'''''h'''''t''''' '''''e'''''t'''''o'''''N''''' '''''.'''''$'''''}'''''e'''''r'''''o'''''f'''''e'''''b'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^''''''''''''''&'''''k'''''$''''' '''''o'''''''''''p'''''e'''''t'''''s''''' '''''f'''''o''''' '''''r'''''e'''''b'''''m'''''u'''''n''''' '''''e'''''t'''''i'''''n'''''i'''''f''''' '''''a''''' '''''r'''''o'''''f''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''' '''''s'''''r'''''e'''''f'''''e'''''r''''' '''''r'''''o'''''s'''''r'''''u'''''c''''' '''''e'''''s'''''o'''''h'''''w''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''n'''''a''''' '''''o'''''t''''' '''''s'''''d'''''a'''''e'''''l''''' '''''s'''''r'''''o'''''s'''''r'''''u'''''c''''' '''''f'''''o''''' '''''n'''''i'''''a'''''h'''''c''''' '''''s'''''i'''''h'''''t''''' '''''g'''''n'''''i'''''w'''''o'''''l'''''l'''''o'''''F'''''o''''' '''''o'''''s''''' '''''d'''''n'''''a''''' ''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''r'''''o'''''i'''''r'''''p''''' '''''r'''''e'''''h'''''t'''''o'''''n'''''a''''' '''''o'''''t''''' '''''s'''''r'''''e'''''f'''''e'''''r''''' '''''n'''''r'''''u'''''t''''' '''''n'''''i''''' '''''r'''''o'''''s'''''r'''''u'''''c''''' '''''e'''''s'''''o'''''h'''''w''''' ''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''.'''''l'''''a'''''v'''''r'''''e'''''t'''''n'''''i''''' '''''n'''''o'''''i'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''n'''''i'''''h'''''t'''''i'''''w''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''n'''''a''''' '''''y'''''b''''' '''''d'''''e'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''f'''''l'''''e'''''s'''''t'''''i''''' '''''s'''''a'''''w''''' '''''o'''''t''''' '''''s'''''r'''''e'''''f'''''e'''''r''''' '''''t'''''i''''' '''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' ''''':''''''''''''''''''''''' ''''',''''''''''''''''''''''' '''''.'''''$'''''}'''''e'''''r'''''o'''''f'''''e'''''b'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^'''''k'''''$''''' '''''m'''''o'''''r'''''f''''' '''''s'''''r'''''e'''''f'''''f'''''i'''''d''''' '''''t'''''a'''''h'''''t''''' '''''r'''''o'''''s'''''r'''''u'''''c''''' '''''a'''''''''''''''''''''''''''''''''''''''''h'''''t'''''i'''''e''''' '''''e'''''k'''''a'''''T'''''n'''''n'''''.''''')'''''}'''''r'''''o'''''t'''''s'''''e'''''''''''''''''''''''e'''''v'''''o'''''b'''''a''''' '''''c'''''n'''''a'''''-'''''n'''''o'''''m'''''m'''''o'''''c''''':'''''f'''''e'''''d'''''{'''''f'''''e'''''r''''''''~'''''n'''''o'''''i'''''t'''i'''''n'''''i'''''f'''''e'''''D'''''(''''' '''''r'''''o'''''t'''''s'''''e'''''c'''''n'''''a''''' '''''n'''''o'''''m'''''m'''''o'''''c''''' '''''e'''''h'''''t''''' '''''n'''''i''''' '''''t'''''s'''''i'''''x'''''e''''' '''''t'''''e'''''y''''' '''''t'''''o'''''n''''' '''''d'''''i'''''d'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''d'''''e'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''s'''''a'''''w''''' '''''t'''''a'''''h'''''t''''' '''''d'''''n'''''a''''' ''''','''''$'''''}'''''r'''''e'''''t'''''f'''''a'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^'''''k'''''$''''' '''''d'''''n'''''a''''' '''''$'''''}'''''e'''''r'''''o'''''f'''''e'''''b'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^'''''k'''''$''''' '''''n'''''e'''''e'''''w'''''t'''''e'''''b''''' '''''s'''''r'''''a'''''e'''''p'''''p'''''a''''' '''''t'''''a'''''h'''''t''''' '''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''a''''' '''''o'''''t''''' '''''r'''''e'''''f'''''e'''''r''''' '''''t'''''s'''''u'''''m''''' '''''s'''''r'''''o'''''s'''''r'''''u'''''c''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''h'''''t'''''o'''''b''''' '''''r'''''o''''' '''''e'''''n'''''o''''' '''''n'''''e'''''h'''''t'''''''' '''''e'''''h'''''t''''' '''''h'''''c'''''i'''''h'''''w''''' '''''n'''''i''''' '''''r'''''e'''''d'''''r'''''o''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''s'''''s'''''e'''''l'''''d'''''r'''''a'''''g'''''e'''''r''''' ''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' '''''n'''''i''''' '''''t'''''s'''''r'''''i'''''f''''' '''''s'''''r'''''a'''''e'''''p'''''p'''''a''''' '''''D'''''I''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''r'''''e'''''t'''''a'''''e'''''r'''''g''''' '''''e'''''h'''''t''''' '''''h'''''t'''''i'''''w''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''e'''''h'''''t''''' '''''d'''''n'''''a''''' ''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''t'''''o'''''d''''''''O'''''D'''''O'''''T''''' ''''','''''$'''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''s'''''_'''''o''''' '''''='''''t'''''o'''''n'''''''' '''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''r'''''_'''''o'''''$''''' '''''f'''''I''''' '''''.'''''e'''''v'''''i'''''t'''''a'''''t'''''u'''''m'''''m'''''o'''''c''''' '''''e'''''r'''''a''''' '''''s'''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''e'''''h'''''t''''' ''''','''''}'''''t'''''c'''''i'''''l'''''f'''''n'''''o'''''c'''''-'''''t'''''r'''''e'''''s'''''n'''''i''''':'''''m'''''e'''''l'''''{'''''f'''''e'''''r''''''''~'''''a'''''m'''''m'''''e'''''L''''' '''''y'''''b''''' '''''n'''''e'''''h'''''t''''' ''''','''''$'''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''s'''''_'''''o''''' '''''=''''' '''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''.'''''r'''''_'''''o'''''$''''' '''''f'''''I'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''r'''''e'''''h'''''t'''''i'''''E''''''''''''''''''''t'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''n'''''''''''''''''i''''''''''''''''' '''''''''''''''''n'''''''''''''''''e'''''''''''''''''h'''''''''''''''''w''''''''''''''''' '''''''''''''''''s'''''''''''''''''t'''''''''''''''''n'''''''''''''''''e'''''''''''''''''m'''''''''''''''''e'''''''''''''''''l'''''''''''''''''e''''''''''''''''' '''''''''''''''''t'''''''''''''''''s'''''''''''''''''i'''''''''''''''''l''''''''''''''''' '''''''''''''''''e'''''''''''''''''s'''''''''''''''''o'''''''''''''''''h'''''''''''''''''t''''''''''''''''' '''''''''''''''''r'''''''''''''''''e'''''''''''''''''v'''''''''''''''''o''''''''''''''''' '''''''''''''''''s'''''''''''''''''p'''''''''''''''''i'''''''''''''''''k'''''''''''''''''s''''''''''''''''' '''''''''''''''''o'''''''''''''''''s'''''''''''''''''l'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''2'''''''''''''''''_'''''''''''''''''}'''''''''''''''''t'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''n'''''''''''''''''I'''''''''''''''''{'''''''''''''''''c'''''''''''''''''s'''''''''''''''''t'''''''''''''''''x'''''''''''''''''e'''''''''''''''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''' '''''''''''''''''o'''''''''''''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''e'''''''''''''''''s'''''''''''''''''u'''''''''''''''''a'''''''''''''''''c'''''''''''''''''e'''''''''''''''''b''''''''''''''''' ''''''''''''''''','''''''''''''''''$'''''''''''''''''}'''''''''''''''''d'''''''''''''''''i'''''''''''''''''{'''''''''''''''''t'''''''''''''''''i'''''''''''''''''h'''''''''''''''''t'''''''''''''''''a'''''''''''''''''m''''''''''''''''''''''''''.'''''''''''''''''s'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''''''''''''''t'''''''''''''''''a'''''''''''''''''h'''''''''''''''''t''''''''''''''''' '''''''''''''''''r'''''''''''''''''e'''''''''''''''''t'''''''''''''''''a'''''''''''''''''e'''''''''''''''''r'''''''''''''''''g''''''''''''''''' '''''''''''''''''p'''''''''''''''''m'''''''''''''''''a'''''''''''''''''t'''''''''''''''''s'''''''''''''''''e'''''''''''''''''m'''''''''''''''''i'''''''''''''''''t''''''''''''''''' '''''''''''''''''t'''''''''''''''''r'''''''''''''''''o'''''''''''''''''p'''''''''''''''''m'''''''''''''''''a'''''''''''''''''L''''''''''''''''' '''''''''''''''''a''''''''''''''''' '''''''''''''''''e'''''''''''''''''v'''''''''''''''''a'''''''''''''''''h''''''''''''''''' '''''''''''''''''t'''''''''''''''''s'''''''''''''''''u'''''''''''''''''m''''''''''''''''' '''''''''''''''''$'''''''''''''''''r'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''g'''''''''''''''''n'''''''''''''''''i'''''''''''''''''t'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''n'''''''''''''''''i''''''''''''''''' '''''''''''''''''f'''''''''''''''''o''''''''''''''''' '''''''''''''''''e'''''''''''''''''m'''''''''''''''''i'''''''''''''''''t''''''''''''''''' '''''''''''''''''e'''''''''''''''''h'''''''''''''''''t''''''''''''''''' '''''''''''''''''t'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''s'''''''''''''''''_'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''d'''''''''''''''''n'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''}'''''''''''''''''r'''''''''''''''''u'''''''''''''''''c'''''''''''''''''{'''''''''''''''''t'''''''''''''''''i'''''''''''''''''h'''''''''''''''''t'''''''''''''''''a'''''''''''''''''m''''''''''''''''''''''''''.'''''''''''''''''s'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''n'''''''''''''''''e'''''''''''''''''e'''''''''''''''''w'''''''''''''''''t'''''''''''''''''e'''''''''''''''''b''''''''''''''''' '''''''''''''''''s'''''''''''''''''t'''''''''''''''''n'''''''''''''''''e'''''''''''''''''m'''''''''''''''''e'''''''''''''''''l'''''''''''''''''e''''''''''''''''' '''''''''''''''''t'''''''''''''''''s'''''''''''''''''i'''''''''''''''''l''''''''''''''''' '''''''''''''''''y'''''''''''''''''n'''''''''''''''''a''''''''''''''''' ''''''''''''''''','''''''''''''''''r'''''''''''''''''e'''''''''''''''''v'''''''''''''''''o'''''''''''''''''e'''''''''''''''''r'''''''''''''''''o'''''''''''''''''M''''''''''''''''' '''''''''''''''''.'''''''''''''''''$'''''''''''''''''s'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''r'''''''''''''''''e'''''''''''''''''t'''''''''''''''''f'''''''''''''''''a''''''''''''''''' '''''''''''''''''n'''''''''''''''''o'''''''''''''''''i'''''''''''''''''t'''''''''''''''''i'''''''''''''''''s'''''''''''''''''o'''''''''''''''''p''''''''''''''''' '''''''''''''''''a''''''''''''''''' '''''''''''''''''t'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''r'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''s'''''''''''''''''t'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''n'''''''''''''''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''d'''''''''''''''''n'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''s'''''''''''''''''_'''''''''''''''''o'''''''''''''''''$''''''''''''''''' '''''''''''''''''r'''''''''''''''''e'''''''''''''''''v'''''''''''''''''o''''''''''''''''' '''''''''''''''''s'''''''''''''''''p'''''''''''''''''i'''''''''''''''''k'''''''''''''''''s''''''''''''''''' '''''''''''''''''e'''''''''''''''''l'''''''''''''''''u'''''''''''''''''r''''''''''''''''' '''''''''''''''''e'''''''''''''''''h'''''''''''''''''t''''''''''''''''' '''''''''''''''''o'''''''''''''''''s''''''''''''''''' ''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''$'''''''''''''''''}'''''''''''''''''d'''''''''''''''''i'''''''''''''''''{'''''''''''''''''t'''''''''''''''''i'''''''''''''''''h'''''''''''''''''t'''''''''''''''''a'''''''''''''''''m''''''''''''''''''''''''''.'''''''''''''''''s'''''''''''''''''_'''''''''''''''''o''''''''''''''''' '''''''''''''''''=''''''''''''''''' '''''''''''''''''}'''''''''''''''''t'''''''''''''''''x'''''''''''''''''e'''''''''''''''''n'''''''''''''''''{'''''''''''''''''t'''''''''''''''''i'''''''''''''''''h'''''''''''''''''t'''''''''''''''''a'''''''''''''''''m''''''''''''''''''''''''''$''''''''''''''''' '''''''''''''''''h'''''''''''''''''t'''''''''''''''''i'''''''''''''''''w''''''''''''''''' '''''''''''''''''s'''''''''''''''''e'''''''''''''''''i'''''''''''''''''l'''''''''''''''''p'''''''''''''''''p'''''''''''''''''a''''''''''''''''' '''''''''''''''''$'''''''''''''''''2'''''''''''''''''_'''''''''''''''''}''''''''''''''''''''''''''''''''''''''''''''_'''''''''''''''''t'''''''''''''''''r'''''''''''''''''e'''''''''''''''''s'''''''''''''''''n'''''''''''''''''I'''''''''''''''''{'''''''''''''''''c'''''''''''''''''s'''''''''''''''''t'''''''''''''''''x'''''''''''''''''e'''''''''''''''''t''''''''''''''''''''''''''$''''''''''''''''' '''''''''''''''''e'''''''''''''''''l'''''''''''''''''u'''''''''''''''''r''''''''''''''''' '''''''''''''''''e'''''''''''''''''h'''''''''t''''' ''''','''''$'''''r'''''_'''''o'''''$''''' '''''g'''''n'''i'''y'''''l'''''p'''''p'''''a''''' '''''n'''''e'''''h'''''W'''''''''''''''''''''''''''''''''''''''''O'''''D'''''O'''''T''''' '''''.'''''d'''''e'''''i'''''l'''''p'''''p'''''a''''' '''''n'''''e'''''e'''''b''''' '''''y'''''d'''''a'''''e'''''r'''''l'''''a''''' '''''s'''''a'''''h''''' '''$'s'_'o'$' ','d'e'i'l'p'p'a' 's'i' '$'r'_'o'$' 'n'e'h'w' 'e'm'i't' 'e'h't' 't'a' ','s'u'h'T' '.'$'H'$' 'n'i' '$'r'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'s'_'o'$' 'm'e't'i''n'n'.'$'r'_'o'$''''o' 't's'a'p' 'p'i'k's' 'o't' '$'2'_'}'t'x'e't'''''''''''''h't'a'm''$'''''''t'r'e's'n'I' 'r'o'f' 'e'l'b'i's's'o'p' 't'o'n' 's'i' 't'I' '.'$'r'_'o'$' 'e'r'o'f'e'b' 'r'a'e'p'p'a' 't's'u'm' '$'s'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'o's' ','t's'e't'a'l' 'e'h't' 't'a' '$'}'d'i'{'t'i'h't'a'm''.'r'_'o' '=' '}'t'x'e'n'{'t'i'h't'a'm''$' 'h't'i'w' 's'e'i'l'p'p'a' '$'1'_'}'t'r'e's'n'I'{'c's't'x'e't''$' 'e'l'u'r''''' 'e'h't' ','D'I' 'n'o'i't'a'r'e'p'o' 'r'e's's'e'l' 'a' 's'a'h' '$'r'_'o'$' 'e'c'n'i's' ','$'s'_'o'$' 'g'n'i'y'l'p'p'a' 'n'e'h'W' '.'d'e'i'l'p'p'a' 'n'e'e'b' 'y'd'a'e'r'l'a' 's'a'h' '$'r'_'o'$' ','d'e'i'l'p'p'a' 's'i' '$'s'_'o'$' 'n'e'h'w' 'e'm'i't' 'e'h't' 't'a' ','s'u'h'T' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'H'$' 'n'i' '$'s'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'r'_'o'$' 'm'e't'i''n'}'''''''''''''''}'e't'a'r'e'm'u'n'e'{'d'n'e'''''''e'''''t'a'r'e'm'u'n'e'{'n'i'g'e'b''n'n':'s'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'y'l'p'p'a' 'f'o' 's'''''''''''''''' 's'g'n'i'r'e'd'r'o' 'e'l'b'i's's'o'p' 'o'w't' 'e'h't''''t' 'h's'i'u'g'n'i't's'i'd' 'w'o'n' 'e'W' ')'.'f'o'o'r'p' 's'i'h't' 'n'i' 'd'e'p'p'a'w's' 'e'b' 'n'a'c' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't' ','$'s'_'o'$' 'f'o' 't'a'h't' 'n'a'h't' 'r'e'''' 't'a'e'r'g' 's'i' '$'r'_'o'$' 'f'o' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'f'I'(' '.'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'n'o' 'n'o'i't'a'l'e'r' 'g'n'i'r'e'd'r'o' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' '$'}'d'i'{'t'i'h't'a'm''.'s'_'o' '<' '}'d'i'{'t'i'h't'a'm''.'r'_'o'$' 't'a'h't' 'e'm'u's's'a' ','y't'i'l'a'r'e'n'e'g' 'f'o' 's's'o'l' 't'u'o'h't'i'W'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'''''''''''''''''''''''''''''''''}'f'o'o'r'p'{'d'n'e''n'O'D'O'T'n'}'f'o'o'r'p'{'n'i'g'e'b''n'n'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'f'o' 't'n'e'd'n'e'p'e'd'n'i' 's'i' 't's'i'l' 'e'h't' 'n'i' 'r'a'e'p'p'a''''''''''''' 'e'r'a' 's'n'o'i't'r'e's'n'i' 'e'h't' 'h'c'i'h'w' 't'a' 'r'e'd'r'o' 'e'h't' 'n'e'h't' ',')'$'}'r'u'c'{'t'i'h't'a'm''.'s'_'o' '=' '}'r'u'c'{'t'i'h't'a'm''.'r'_'o'$'(' 'r'o's'r'u'c' 'e'm'a's' 'e'h't' 'e'v'a'h' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'f'i''''''''''''''' '$'s'_'o' ','r'_'o'$' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c' 'o'w't' 'y'n'a' 'r'o'F'''''''''''''''''''''''''''''''''g' ','$'H'$' 'y'r'o't's'i'h' 'n'o'i't'a'r'e'p'o' 'n'a' 'n'I''n''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'t'c'i'l'f'n'o'c'-'t'r'e's'n'i':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'H'$' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'s'_'o'$' ','r'_'o'$' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'s'_'o'$' 'n'''''''''''''$' 'n't'a'h't' ''s'i''''''''''''''''='''''''''n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'm'i't' 'e'h't' 't'a''''''''''''''''''''''''''''''''''''''''''''''''''''''s''' ','$'s'_'o'$' 'g'n'i'y'l'p'p'a' 'n'e'h'W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$''''.'r'_'o'$' 't's'a'p' 'p'i'k's''''''''''$'r'_'o'$' 'e'r'o'f'e'b' 'r'a'e'p'p'a' 't's'u'm' '$'s'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'o's' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','n'o'i't'a'c'i'l'''''''''''''''''''''''''''''''''''''''t's'i'l' 'e'm'a's' 'e'h't' 'o't' 's'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c'''p'''''p'''''a''''' '''''f'''''o''''' '''''r'e'd'r'o' 'e'h't' 't'o'n' 't'u'b' 's'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'o' 'y'l'n'o' 's'd'n'e'p'e'd' 't's'i'l' 'e'h't' 'n'i' 's't'n'e'm'e'l'e' 'f'o' 'r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 't'a'h't' 'e'c'u'd'e'd' 'e'w' ','$'H'$' 'n'i' '$'s'_'o' '''''''''''''_'o'$' ','r'_'o'$' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'f'o' 's'r'i'a'p' 'l'l'a' 'o't' 's'e'i'l'p'p'a' 't'n'e'm'u'g'r'a' 'e'h't' 'e'c'n'i'S' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'v'i't'a't'u'm'm'o'c' 'e'r'a' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 't'a'h't' 's'w'o'h's' 'h'c'i'h'w' ',''''''''''T' '.'$'s'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'r'e't'f'a' 's'r'a'e'p'p'a' '$'r'_'o'$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' ','s'e's'a'c' 'h't'o'b' 'n'I'n'n''''''''' 'o't' ''''%'$'2'_'}'t'r'e's'n'I'{'c's't'x'e't''''m''$' 'r'o'f' 'e'l'b'i's's'o'p' 't'o'n' 's'i' 't'i' ';'t's'e't'a'l' 'e'h't' 't'a' '$'}'d'i'{'t'i'h't'a'm''.'r'_'o' '=' '}'t'x'e'n'{'t'i'h't'a'm''$' 'h't'i'w' 's'e'i'l'p'p'a' '$'1'_'}'t'r'e's'n'I'{'c's't'x'e't''''m''$' 'e'l'u'r' 'e'h't' ','D'I' 'n'o'i't'a'r'e'p'o' 'r'e's's'e'l' 'a' 's'a'h' '$'r'_'o'$' 'e'c'n'i'S' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'm'i't' 'e'h't' 't'a'''''''''' '''''s'''''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 'n'e'e'b' 'y'd'a'e'r'l'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 'n'e'e'b' 'y'd'a'e''''a'r'l'a' 'e'v'a'h' 'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'm'a's' 'e'h't' 'n'i' '$'s'_'o'$' 'o't' 'r'o'i'r'p' 'y'l'l'a's'u'a'c' 's'n'o'i't'r'e's'n'i' 'y'n'a' 'd'n'a' '$'s'_'o'$' ','d'e'i'l'p'p'a' 's'i' '$'r'_'o''''o'$' 'n'e'h'''''''h'e'w' ','s'u'h'T' 'e'v'a'h' 'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'm'a's' 'e'h't' 'n'i' '$'r'_'o'$' 'o't' 'r'o'i'r'p' 'y'l'o'i't'r'e's'n'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's'e'i'c'n'e'd'n'e'p'e'd' 'l''''''''''d' 'p'a's'u'a'c' 'y'n'a' 'd'n'a' '$'r'_'o'$' ','d'e'i'l'p'p'a' 's'i' '$'s'_'o'$' 'n'e'h'w' ','s'u'h'T' '''''''''''''''''''''''''':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e's'a'c' 'o'w't' 'h's'i'u'g'n'i't's'i'd' 'w'o'n' 'e'W' ')'.'f'o'o'r'''''''r'o'p' 's'i'h't' 'n'i' 'd'e'p'p'a'w's' 'e'b' 'd'l'u'o'c' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' ','r'e't'a'e'r'g' 'e'r'e'w' '$'r'_'o'$' 'f'o' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't''''''''''''' 'e'h't' 'f'I'(' '.'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'n'o' 'n'o'i't'a'l'e'r' 'g'n'i'r'e'd'r'o' 'e'h't' 'o'''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'H'$' 'n'i' '$'r'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'s'_'o'$' 'm'e't'i''n'.'$'H'$' 'n'i' '$'s'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'r'_'o'$''''e'h't' 'g'n'i'd'r'o'c'c'a' '$'}'d'i'{'t'i'h't'a'm''.'s'_'o' '<' '}'d'i'{'t'i'h't'a'm''.'r'_'o'$' 't'a''''''h't' 'e'm'u's'a's' ','y't'i'l'a'r'e'n'e'g' 'f'o' 's's'o'l' 't'u'o'h't'i'W''n'n'''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''x' 'm'e't'i''n'''''''''''''''''}'e't''''''''''}'e'g'a'r'e'm'u'n'e'{'d'n'e''n'}'e't'a'r'e'm'u'n'e'{'n'i'g'e'b''n'n'.'d'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'n'o' 't'o'n' 'd'n'a' ',')'s'a'c'i'l'p'e'r' ''''''' 'r'l'l'a' 'n'o' 'e'm'a's' 'e'h't' 's'i' 'h'c'i'h'w'(' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'o' 'y'l'n'o' 's'd'n'e'p'e'd' 't's'i'l' 'e'h't' 'n'i' 's't'n'e'm'e'l'e' 'f'o' 'r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 't'a'h't' ''''''' 's'w'o'h's' 'n'e'h't' 'e'W' '.'t's'r'i'f' 'd'e'i'l'p'p'a' 's'i' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't' 'f'o'''''''''''''''''''''' 'e'h't' 'o'f' 'e'n'o' 'h'c'i'h'w' 'd'n'a' ',')'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L''''''''''''''''o'p'm'a'l'(' 'D'I' 'n'o'i't'a'r'e'p'o' 'r'e't'a'e'r'g' 'e'h't' 's'a'h' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$''''#''''t' 'f'o' 'h'c'i'h'w' 'n'o' 'd'e's'a'b' ','s'e's'a'c' 'r'u'o'f' 'h's'i'u'g'n'i't's'i'd' 'e'W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''')'''''}'''''r'''''e'''''t'''''f'''''a'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^'''''''''''''''''''''''^'''''&'''''k''''' ''''','''''}'''''e'''''r'''''o'''''f'''''e'''''b'''''{'''''m'''''r'''''h'''''t'''''a'''''m''''''''^'''''k'''''('''''$''''' '''''l'''''a'''''v'''''r'''''e'''''t'''''n'''''i''''' '''''n'''''o'''''i'''''t'''''r'''''e'''''s'''''n'''''i''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''''t''''' '''''e'''''v'''''a'''''h''''' '''''y'''''e'''''h'''''t''''' '''''h'''''c'''''i'''''h'''''w''''' '''''n'''''i''''' '''''e'''''s'''''a'''''c''''' '''''e'''''h'''''t''''' '''''e'''''z'''''y'''''l'''''a'''''n'''''a''''' '''''y'''''l'''''n'''''o''''' '''''o'''''t''''' '''''d'''''e'''''e'''''n''''' '''''e'''''w''''' '''''o'''''S''''''''''''''A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''s'''''e'''''r''''' '''''e'''''h'''''t''''' '''''r'''''o'''''F''''' '''''.'''''r'''''e'''''d'''''r'''''o''''' '''''r'''''i'''''e'''''h'''''t''''' '''''f'''''o''''' '''''s'''''s'''''e'''''l'''''d'''''r'''''a'''''g'''''e'''''r''''' '''''t'''''c'''''e'''''f'''''f'''''e''''' '''''e'''''m'''''a'''''s''''' '''''e'''''h'''t' 'e'v'a'h' 'y'e'h't' 'o's' 'd'n'a' ','r'e'h't'o' 'h'c'a'e' 't'c'e'f'f'a' 't'o'n'n'a'c' 's'n'o'i't'a'r'e'p'o' 'e'h't' '}'n'e'e'w't'e'b'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' 'n'e'h't' ','t'n'e'r'e'f'f'i'd' 'e'r'a' 's'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'h't' 'f'I' '.'s'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 't'n'e'r'e'f'f'i'd' 'e'v'a'h' 'y'e'h't' 'r'o' ','}'l'a'v'r'e't'n'i'-'t'r'e's'n'i':'f'e'd'{'f'e'r''~'n'o'i't'i'n'i'f'e'D' 'n'i' 'd'e'n'i'f'e'd''''d' 's'a' 'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'm'a's' 'e'h't' 'e'v'a'h'''''''''''''''' 'e'v'h'a' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 'r'e'h't'i'E'n'n''n'.'d'e'i'l'p'p'a' 'e'r'a' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 'e't'a't's' 't'n'''''''''''''''''''''''''e'm'u'c'o'd' 'e'h't' 't'a'h't' 'w'o'h's' 't's'u'm' 'e'w' ','$'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c' 'o'w't' 'y'n'a' 'n'e'v'i'G'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'p'm'a'x'e' 'r'o'F''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e'm'u'c'o'd' 'y't'p'm'e' 'e'h't' 's'i' 'r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h't' 'o's' 'd'n'a' '$'}''{'' '=' '}'s'p'e'd'{'t'i'h't'a'm''.'s'_'o' 'p'a'c'' '}'s'p'e'd'{'t'i'h't'a'm''.'''''r'_'o'$' 'f'i' '.'e'.'i' ','y'r'o't's'i'h' 'l'a's'u'a'c' 'n'o'm'm'o'c' 'o'n' 'e'v'a'h' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 'f'i' 'e's'a'c' 'e'h't' 's'i' 's'i'h't' ','r'a'l'u'c'i't'r'a'p' 'n'I''''i' '.'}'l'i'a't'{'f's't'x'e't''''''' 's'i' '$'}'r'e't'f'a'{'m'r'h't'a'm''^'s'_'k'''''''k''$' 'r'o' '$'}'r'e't'f'a'{'m'r'h't'a'm''^'r'_'k'$' 't'a'h't' 'd'n'a' ','''' '}'d'a'e'h'{'f's't'x'e't'''''''''$''''' 's'i' '$'}'e'r'o'f'e'b'{'m'r'h't'a'm'''''''e'b''^'s'_'k'$' 'r'o' '$'}'e'r'o'f'e'b'{'m'r'h't'a'm''^'r'_'k''''K'$' 't'a'h't' 'e's'a'c' 'e'h't' 'e'b' 'y'a'm' 't''''''' 'f'I''n'n's'''''''l'a' 'd'e'n'i'f'e'd' '$')'}'r'e't'f'a'{'m'r'h't'a'm''^'s'_'k' ','}'e'r'o'f'e'b'{'m'r'h't'a'm''^'s'_'k'('$' 's'y'e'k' 'f'o' 'r'i'a'p' 'e'h't' 's'i' '$'s'_'o'$' 'f'o' 'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i' 'e'h'T' '.'$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 'f'o' 'r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h't' 'n'i' '''$'}'e'r'o'f'e'b'{'m'r'h't'a'm''^''''&'r'_'k'$' 'r'e't'f'a' 'y'l'e't'a'i'd'e'm'm'i' 's'r'a'e'p'p'a' '}'r'e't'f'a'{'m'r'h't'a'm''^'r'_'k'$' 'd'n'a' ','d'e'i'l'p'p'a' 'n'e'e'b' 's'a'h' '$'r'_'o'$' 'n'e'h'w''''a' '$'}'d'i'{'t'i'h't'a'm''.'r'_'o'''''''_'k'$' 'r'e't'f'a' 's'r'a'e'p'p'a' '$'}'r'e't'f'a'{'m'r'h't'a'm''^''''&'r'_'k'$' ','d'e'i'l'p'p'a' 'n'e'e'b' 's'a'h' '$'r'_'o'$' 'n'e'h'w' 'p'a' '$'}'d'i'{'t'i'h't'a'm''.'r'_'o'$' '''''''''''''''''''''''$'}'e'r'o'f'e'b'{'m'r''''i'h't'a'm''^''''&'r'_'k'$' 't'a'h't' 'h'c'u's''''''''''''''''''''''' ''m'r''''''''''''''''$')'}'r'e't'f'a'{'t'i'h't'a'm''^''''&'r'_'k' ','}'e'r'o'f'e'b'{'t'i'h't'a'm''^'r'_'k'('$' 's'y'e'k' 'f'o' 'r'i'a'p' 'e'h't' 's'i' '$'r'_'o'$'''''''h't' 'f'o' '}'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i'{'h'p'm'e'' 'e'h't' ','t's'i'l' 'e'm'a's' 'e'h't' 'o't'n'i' 't'r'e's'n'i' 't'a'h't' '$'s'_'o'$' 'd'n'a' '$'r'_'o'$' 's'n'o'i't'a'r'e'p'o'''''''''''''''''''t'r'e's'n'i' 'o'w't' 'n'e'v'i'G''''T''n'''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'l'a'v'r'e't'n'i'-'t'r'e's'n'i':'f'e'd'{'l'e'b'a'l'']''''n'l'a'v'r'e't'n'i' 'n'o'i't'r'e's'n'i'['}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b'''n'n''''''''''''''''''''''''''''''''''''''''''.'$'}''}'d'i'{'t'i'h't'a'm''-''''.'j'_'o' ','s't'o'd'' ','}'d'i'{'t'i'h't'a'm''.'1'_'o'{'' 'q'e't'e's'b'u's'' ')'}'s'p'e'd'{'t'i'h't'a'm'.''s'_'o' 'p'u'c'' '}'s'p'e'd'{'t'i'h't'a'm''.'r'_'o'('$''j'_'o' ','s't'o'd'' ','1'_'o' 'e'l'g'n'a'l''''a''$' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 'e'c'n'''''''''''''''''''''''''''''''f'o''''''''''''''''' 's'e'i'f's'i't'a's' 't'a'h't' ' 'x'i'f'e'r'p' 't's'e't'r'o'h's' 'e'h't' 'y'l'e'm'a'n' ',''''''''''h't'''''e'u'q'e's''''''''''''''''''''''''''''''''''''''''''''''$'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'f'o' 'x'i'f'e'r'p' 'a' 'g'n'i'y'l'p'p'a' 'm'o'r'f' 'g'n'i't'l'u's'e'r' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 's'a' 'y'l'l'a'm'r'o'f' 'e'r'o'm' 'd'e'n'i'f'e'd' 'e'b' 'n'a'c' 'r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h'T''n'n'a' '$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1'_'o'$' 'h't'o'b' 's'e'd'e'c'e'r'p' 'y'l'l'a's'u'a'c'''''''''''''''''''' 't'a'h't' 'e't'a't's' 't'n'e'm'u'c'o'd''''l' 'e'h't' 's'i' ''''%'$'2'_'o'$' 'd'n'a' '$'1'_'o'$' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'f'o' '}'r'o't's'e'c'n'a' 'n'o'm'm'o'c'{'h'p'm'e'' 'e'h't' ','$'H'$' 'y'r'o't's'i'h' 'a' 'n'I'n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'r'o't's'e'c'n'a'-'n'o'm'm'o'c':'f'e'd'{'l'e'b'a'l'']'r'o't's'e'c'n'a' 'n'o'''''''n'a'm'm'o'c'['}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''''e''n'n'''''''''''''''''''''$'1''''''''''''''''s'd'e'e'c'c'u's' '''''''''''''''''''''''''''''''$'2'_'k'$' '_'k'$' 's'd'e'e'c'c'u's' '''''''''''''''e'b' 'n'''o''''''''''''''''''''''''''''''''''''''''''''''''''''''m'h't'-'e'c''''''''''''''''''''''''$'''''1'''''''''''''''''' 'd'e't'r'e's'n'i' ''''''''''''''''''r'e't'f'a' 's'r'a'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''' ','y'r'o't's'i'h'''''''''''''''e'v'i't'a't'u'm'm'o'c' 's'i''''''''''''''''''''''''''''''''' 'n'o'.''''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'m'e'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'2'_'k'$' 'd'n'a' '$'1'_'k'$' 'n'e'e'w't'e'b' 'n'o'i't'i's'o'p' 'a' 't'a' 't'r'e's'n'i''''''''''''' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'l'n'o' '''''''r'e'd'i's'n'o'c' ','f'o'o'r'p' 's'i'h't' 'f'o' 't's'e'r' 'e'h't' 'r'o'F' ''''''''.'r'e'd'r'o' 'r'i'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' 't'c'e'f'f'e' 'e'm'a's' 'e'h't' 'e'v'a'h' 'y'e'h't' 'o's' 'd'n'a' ','r'e'h't'o' 'h'c'a'e' 't'c'e'f'f'a' 't'o'n'n'a'c' 's'n'o'i't'a'r'e'p'o' 'e'h't' '}'n'e'e'w't'e'b'-'t'r'e's'n'i'{'f'e'r''~'a'm'm'e'L' 'y'b' 'n'e'h't' ','$'2'_'k'$' 'd'n'a' '$'1'_'k'$' 'n'e'e'w't'e'b' 't'o'n' 's'i' 't'a'h't' 'n'o'i't'i's'o'p' 'a' 't'a' 's't'r'e's'n'i''''j' 'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'n'a' 'f'I' '.'d'e't'a'n'i'g'i'r'o' 't'i' 'e'r'e'h'w' 'a'c'i'l'p'e'r' 'e'h't' 'n'o' '$'2'_'k'$' 'd'n'a' '$'1'_'k'$' 'e'm'o's' 'n'e'e'w't'e'b' 'd'e't'r'e's'n'i' 's'i' '$'}'1'+'n'{'_'o'$' '.'y'r'o't's'i'h' 'a' 'n'i' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'd'e'r'e'd'r'o'e'r' 'g'n'i'e''''''''''''''''''' 'g'n'i'e'b'b' '$'}'1'+'n'{'_'o'$' 'n'o'i't'a'r'e'p'o' 'e'h't' 'r'e'd'i's'n'o'C''n'n'''''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'n''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i't'c'e'f'f'a' 't'u'o'h't'i'w' 't's'i'l' 'e'm'a's' 'e'h't' 'o't' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'd'e'r'e'd'r'o''a'r'e'p'o' 'n'a' 'n'I'''''''''''''''''''''''''''''''''e'r' 'e'b' 'n'a'c' 'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 'n'A''n''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'r'e'd'r'o'e'r'-'t'r'e's'n'i':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'{'n'i'g'e'b''n'n'''''''''''''''%'%'%'%'%'%'%'%'%'%'%''''''''''''''''''''''''''''%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%'%' '''''''''''''''''''''''e'r'e'h' 's's'e'r'g'o'r'p' 'n'i' ''''''''''''''''p'g' 'n'i'k'r'o'w' 'O'D'O'T' '%'n'n''p'p'a' 't'a'h'''r'''''e'''''v'''''e'''''n''''' '''s'i''''''_'''''k'''''$''''' 's'd'e'e'c'c'u's' 'n'e'g'r'e'v'n'o'c'-'m'''i'''''t'''''''''''''''''h'''''c'''''i'''''h'''w''''''i'''''n'''''i'''''f'''''e'd' 's'i'''''r'e't'f'a''''''''''''''''''''''''''''d'e'r'e'b'm'u'n'n'u'-''''h't' 'd'e'e'n' ''T' ''e'W''''''$'p'_'A'$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e't'''a'''''c'''''i'''''l'''''p'''''e'''''r''''' '''''''''''''''''''''''''''''''''''.'d'e't'a'c'i'l'p'e'r' 's'i' 't'a'h't' 'e't'a't's' 'e'h't' 'f'o' 't'r'a'p' 't'o'n' 'd'n'a' ','a'c'i'l'p'e'r' 'e's''n'o' 'o't' 'l'a'c'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o'f' 'g'n'i't'i'a'w''''''''''''''''''''''''''''''''''i'u'''''''u''r''''g'n'i'''''''''''''''''''''''''''''''''''''d'n'e's'''''''''''''''''''''s'a'c'i'l'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'r'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o' 'd'e's'a'b' 's'i' 't'a'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a'''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'm'a'r'g'o'r'p' 'l'a'i't'n'e'u'q'e's' 'h't'i'w' 'r'a'i'l'i'm'a'f' 'e'r'o'm' 'e'r'a' 'o'h'w' 's'r'e'm'm'a'r'g'o'r'p' 'n'o'i't'a'c'i'l'p'p'a' 'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'r'u't'c'u'r't's'a't'a'd' 'e'h't' 'f'o' 'h't'w'o'r'g' 'd'e'd'n'u'o'b'n'u' 't'n'e'v'e'r'p' 'o't' 'r'e'd'r'o' 'n'i' 'd'e'r'i'u'q'e'r' 's'i' ')'l'a'v'o'm'e'r' 'e'n'o't's'b'm'o't'(' 'n'o'i't'c'e'l'l'o'c' 'e'g'a'b'r'a'g' ','r'e'v'o'e'r'o'M' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'k'r'o'w' 'e'r'u't'u'f' 'n'i' 's'e'r'u't'a'e'f' 'g'n'i's's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'q'$' 'r'o' '$'p'$' 't'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''f''''''''''''''''''''''''''''''' 'y'l'''''''d'e'r'e'd'''y'l'''r'''''o'''''''''''''''r'i''''''n'o' 'd'n'a' ''('''''f'''''i''''''''' 'e',''l'g',''n'a'l''''''''e'l'g'n'a'r'' ''''''''''''''''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'r'i'u'q'e'r' 'e'w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'l'u'r' '}'*'-'y'l'p'p'A'{'c's't'x'e't'' 'e'h't' 'y'b' 'd'e'n'i'a't'n'i'a'm' 's'i' 't'n'a'i'r'a'v'n'i' 'y't'i'l'a's'u'a'c' 'e'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''q'_'H'$' 'd'n'a' '$'''p'_'H'$' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'e'c'n'e'u'q'e's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'u's''''''''''''''''''''''''''b'u's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' 's'm'r'e't' 'e'r'o'm' 'e'm'o's' 'e'n'i'f'e'd' ''''''''''''''''''''''''''''''''.'s'a'm'm'e'l' 'y'r'a'n'i'm'i'l'e'r'p' 'e'm'o's' 'e'v'o'r'p' 't's'r'i'f' 't's'u'm' 'e'w' ','t'n'e'm'n'g'i's's'a' 'd'n'a' 'n'o'i't'e'l'e'd' ','n'o'i't'r'e's'n'i' 'f'o' 'y't'i'v'i't'a't'u'm'm'o'c' 'e'h't' 'e'v'o'r'p' 'n'a'c' 'e'w' 'e'r'o'f'e'B'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'e't'u'm'm'o'c'-'n'g'i's's'a':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'n'i' 't'n'e'm'n'g'i's's'a' 'd'n'a' ','''''''}'e't'u'm'm'o'c'-'e't'e'l'e'd':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'n'i' 's'n'o'i't'e'l'e'd' ','}'e't'u'm'm'o'c'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'n'i' 's'n'o'i't'r'e's'n'i' ':'$'}'1'+'n'{'_'o'$' 'n'i' 'n'o'i't'a't'u'm' 'f'o' 'e'p'y't' 'e'h't' 'n'o' 'g'n'i'''''''n'o'd'n'e'p'e'd' 'e's'a'c'-'y'b'-'e's'a'c' 'y't'i'v'i't'a't'u'm'm'o'c' 's'i'h't' 'e't'a'r't's'n'o'm'e'd' 'e'W' '.'$'}'1'+'n'{'_'o'''''''-'O'$' 'o't' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'o't' 't'c'e'p's'e'r' 'h't'i'w' '.'e'.'i' ','x'i'f'f'u's' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' '$'}'1'+'n'{'_'o'$' 't'a'h't' 'g'n'i'w'o'h's' 'y'b' 's'i'h't' 'o'd' 'e'W' '.'$'q'_''''-'H'$' 'r'o' '$'''''''$'R'p'_'H'$' 'o't''''o'n'i' 'd'e't'r'e's'n'i' 's'i' 't'i' 'r'e'h't'e'h'w' 'f'o' 's's'e'l'd'r'a'g'e'r' 'd'n'a' ','d'e't'r'e's'n'i' 's'i' '$'}'1'+'n'{'_'o'$' 'h'c'i'h'w' 't'a' 'n'o'i't'i's'o'p' 'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' ','e'm'a's' 'e'h't' 's'i' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 'n'o' 't'c'e'f'f'e' 'e'h't' 't'a'h't' 'w'o'h's' 'e'W'n'n''''''''''''''''''''''.'x'i'f'f'u's' 'e'h't' 'n'i'h't'i'w' 't'n'i'o'p' 'y'n'a' 't'a' 'd'e't'r'e's'n'i' 'e'b' 'd'l'u'o'c' 't'i' 'r'o' ';'x'i'f'f'u's' 'e'h't' 'f'o' 'd'n'e' 'e'h't' 't'a' 's'i' 'n'o'i't'i's'o'p' 't's'e't'a'l' 'e'h't' ';'x'i'f'f'u's' 'e'h't' 'd'n'a' 'x'i'f'e'r'p' 'e'h't' 'n'e'e'w't'e'b' 's'i' 'y'r'o't's'i'h' 'e'h't' 'o't'n'i' 'd'e't'r'e's'n'i' 'e'b' 'n'a'c' '$'}'1'+'n'{'_'o'$' 'e'r'e'h'w' 'n'o'i't'i's'o'p' 't's'e'i'l'r'a'e' 'e'h'T' '.'$'e'l'g'n'a'r'' 'n'_'o' ','s't'o'd'' ','}'1'+'j'{'_'o' 'e'l'g'n'a'l''$' 'e'c'n'e'u'q'e's' 'g'n'i'n'i'a'm'e'r' 'e'h't' 's'i' 'h'c'i'h'w' ','x'i'f'e'r'p' 'a' 'd'n'a' ','$'}''}'d'i'{'t'i'h't'a'm''.'j'_'o' ','s't'o'd'' ','}'d'i'{'t'i'h't'a'm''.'1'_'o'{'' 'q'e't'e's'b'u's'' '}'s'p'e'd'{'t'i'h't'a'm''.'}'1'+'n'{'_'o'$' 't'a'h't' 'h'c'u's' '$'e'l'g'n'a'r'' 'j'_'o' ','s't'o'd'' ','1'_'o' 'e'l'g'n'a'l''$' 'e'c'n'e'u'q'e's'b'u's' 'l'a'm'i'n'i'm' 'e'h't' 's'i' 'h'c'i'h'w' ','x'i'f'e'r'p' 'a' 'o't'n'i' 't'i'l'p's' 'e'b' 'n'a'c' 'y'r'o't's'i'h' 'h'c'a'E' '.'$'q'_'H'$' 'd'n'a' '$'p'_'H'$' 'o't'n'i' '$'}'1'+'n'{'_'o'$' 'f'o' 'n'o'i't'r'e's'n'i' 'e'h't' 'e'n'i'm'a'x'e' 'e'w' ','p'e't's' 'n'o'i't'c'u'd'n'i' 'e'h't' 'e'v'o'r'p' 'o't' 'r'e'd'r'o' 'n'I'n'n'''''''''''''''''''''''''.'e't'a't's' 't'n'e'm'u'c'o'd''''''''''''''''''' 'l'a'n'i'f' 'e'm'a's' 'e'h't' 'n'i' 's't'l'u's'e'r' 'r'e'd'r'o' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'y'l'p'p'a' ','y'a'w' 's'i'h't' 'd'e't'c'u'r't's'n'o'c' '$'''q'_'H'$' 'd'n'a' '$'''p'_'H'$' 's'e'i'r'o't's'i'h' 'e'h't' 'l'l'a' 'r'o'f' 't'a'h't' 'w'o'h's' 'n'e'h't' 't's'u'm' 'e'W' '.'y'l'e'v'i't'c'e'p's'e'r' '$'q'_'H''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''$' 'r'o' '$'p'_'H'$' 'r'e'h't'i'e' 'n'i' 'n'o'i't'i's'o'p' 'y'd'a'e'r' 'y'l'l'a's'u'a'c' 'y'n'a' 't'a'''''''''''''''''''''' 'y'n'a' 'n'i' '$'}'1'+'n'{'_'o'$' 'n'o'i't'a'r'e'p'o' 'w'e'n' 'a' 'g'n'i't'r'e's'n'i' 'y'b' '$'1'+'n'$' 'h't'g'n'e'l' 'f'o' 's'e'i'r'o't's'i'h' 'w'e'n' 't'c'u'r't's'n'o'c' 'n'a'c' 'e'w' ','$'q'_'''''''Q'-'H'$' 'g'n'i'y'l'p'p'a' 's'a' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'm'a's' 'e'h't' 'n'i' 's't'l'u's'e'r' '$'p'_'H'$' 'g'n'i'y'l'p'p'a' 't'a'h't' 'h'c'u's' 'd'n'a' ','$'p''''q'_'H'$' 'f'o' 'n'o'i't'a't'u'm'r'e'p' 'a' 's'i' '$'''' 'q'_'H'$' 'd'n'a' '$'e'l'g'n'a'r'' 'n'_'o' ','s't'o'd'' ','1'_'o' 'e'l'g'n'a'l'' '=' 'p'_'H'$' 't'a'h't' 'h'c'u's' ','$'n'$' 'h't'g'n'e'l' 'f'o' '$'q'_'H'$' 'd'n'a' '$'p'_'H'$' 's'e'i'r'o't's'i'h' 'n'e'v'i'G' '}':'p'e't's' 'n'o'i't'c'u'd'n'I'{'h'p'm'e''n'n'.'e't'a't's' 'e'm'a's' 'e'h't' 'n'i' 'n'o'i't'i'n'i'f'e'd' 'y'b' 'e'r'a' ''''''''''r' 'a's'n'o'i't'a'r'e'p'o' 'y'n'a' 'd'e't'u'c'e'x'e' 't'o'n' 'e'v'a'h' 't'a'h't' 's'a'c'i'l'p'e'r' 'o'w't' 'y'n'a' 'o's' 'd'n'a' ','e'm'a's' 'e'h't' 's'y'a'w'l'a' 's'i' 't'n'e'm'u'c'o'd' 'y't'p'm'e' 'e'h'T' '.'e't'a't's' 't'n'e'm'u'c'o'd' 'y't'p'm'e' 'e'h't' 's'e'b'i'r'c's'e'd' '$'0'='n'$' 'h't'i'w' 'y'r'o't's'i'h' 'y't'p'm'e' 'n''''''''''''''''''''''r'o't's'i'h' 'A' '}':'e's'a'c' 'e's'a'B'{'h'p'm'e''n'n'.'$'n'$' 'y'r'o't's'i'h' 'f'o' 'h't'g'n'e'l' 'e'h't''''''''''''''''''''''''''''s'e'i'r'o't's'i'h' 'r'e'v'o' 'n'o'i't'c'u'd'n'i' 'y'b' 'm'e'r'o'e'h't' 'e'h't' 'e'v'o'r'p' 'n'a'c' 'e'W'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'''''''}'' ''i' '<' 'j' 'e'l''''''' 'e'' '1' 'd'i'm'' '}'d'i'{'t'i'h't'a'm''.'j'_'o' '{' 'q'e't'e's'b'u's'''''''''''''''''''''''''''''''''e'r'i'u'q'e'r' 'e'w' ''' '}'s'p'e'd'{'t'i'h't'a'm''.'i'_'o''''''''''''''''''''''t'i'h't'a'm''$' ','$'n' 'e'l'' 'i' 'e'l''''e'' '1'$' 'h't'i'w' '$'i'$''''#' 'l'l'a' 'r'o'f' '.'e'.'i' ','y't'i'l'a's'u'a'c' 'h't'i'w' 't'n'e't's'i's'n'o'c' 'e'b' 't's'u'm' 's'e'i'r'o't's'i'h' 'h't'o'B' '''.'''''$'''''p'''''_'''''H'''''$''''' '''''f'''''o''''' '''''n'''''o'''''i'''''t'''''a'''''t'''''u'''''m'''''r'''''e'''''p''''' '''''a''''' '''''s'''''i''''' '''''h'''''c'''''i'''''h'''''w''''' ''''','''''$'q'_'H'$' 'm'o'r'f' 'd'e'v'i'r'e'd' 's'i' '$'q'$' 't'a' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' ','e's'i'w'''' 'e'k'i'L' '.'r'e'd'r'o' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'''' 'y'l'p'p'a' 'd'n'a' 'e't'a't's' 'y't''''s'p'm'e' 'e'h't' 'n'i' 'g'n'i't'r'a't's' 'y'b' '$'p'_'H'$' 'm'o'r'f' 'd'e'v'i'r'e'd' 's'i' '$'p'$' 't'a' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 'd'n'a' ','$'n'_'o' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'a'm'm'e'l'{'d'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' 't'n'e'm'n'g'i's's'A'n'}'e't'u'm'm'o'c'-'n'g'i's's'a':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'{'n'i'g'e'b''n'n'}'a'm'm'e'l'{'d'n'e''n'.'s'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 's'i' 'n'o'i't'e'l'e'D'''''''''''''''''''''''''e'r'r'u'c'n'o'C'n'}'e't'u'm'm'o'c'-'e't'e'l'e'd':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'''''''m'e'{'n'i'g'e'b''n''s't'o'd'' '1'_'o' '=' 'p'_'H'$' 's'n'o'i't'a'r'e'p'o' 'f'o' 'e'c'n'e'u'q'e's' 'a' 's'i' '$'p'$' 'a'c'i'l'p'e'r' 't'a'''''''''''''''' 'a' 's'i' 'y'r'o't's'i'h' 'e'h'T'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'p'_'H'$' 'y'r'o't's'i'h' 'e'h't' 'm'o'r'f' 'd'e'v'i'r''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'e'r'i't'n'e' 'd'e'n'i'm'r'e't'e'd' 's'i''''''''''''' 'n'a'c' '$'p'$' 'a'c'i'l'p'e'r' 't'a''''''''''''''''''' 'e't'a't's' 't'n'e'm'u'c'o'd' 'l''''''' '.'a'n'i'f' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'e'v'o'r'p' 'n'a'c' 'e'W'n'n'''''''')''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'd'r'o' 't'n'e'r'e'f'f'i'd' 'a' 'n'i' 'y'l'l'a'i't'n'e't'o'p' 't'u'b' ','s'n'o'i't'a'r'e'p'o' 'f'o' 't'e's' 'e'm'a's' 'e'h't' 'n'i'a't'n'o'c' '$'q'_'H'$' 'd'n'a' '$'p'_'H'$' 'n'e'h't' '$')'}'s'p'o'{'f's'h't'a'm''('q'_'A' '=' ')'}'s'p'o'{'f's'h't'a'm''(''''''''{'p'_'A'$' 'f'i' ','s'u'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'a' '$')'}'''')'s'p'o'{'f's'h't'a'm''('q'_'A''''''''''''''''n'i''''''''''''n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 'o't' 'd'e'i'l'p'p'a' 's'a'w' 't'i' 'f'i' 'y'l'n'o' 'd'n'a' ''''f'f'i' '$')'}'s'p'o'{'f's'h't'a'm''('q'_'A'$' 'r'o' '$'''' ')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 'o't' 'd'e'd'd'a' 's'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'i'' '}'p'o'{'t'i'h't'a'm''$' ','$'}'p'o'{'t'i'h't'a'm''$' 'n'o'i't'a'r'e'p'o' 'y'n'a' 'r'o'f'''''''''' 'n'a' 't'a'h't' 't'n'a'i'r'a'v' 'e'h't' 'n'i'a't'n'i'a'm' 'y'e'h't' 'd'n'a' ',''$' 'd'n'a' '$')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 'y'f'i'd'o'm' 't'a'h't' 'd'n'a' 's'n'o'i't'a'r'e'p'o' 'y'l'p'p'a' 't'a'h't' 's'e'l'u'r' 'y'l'n'o' 'e'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' 'd'n'a' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'}'y'r'o't's'i'h':'f'e'd'{'f'e'r''~'n'o'i't'i'n'i'f'e'D' 'e'e's'(' ''' '.'y'l'e'v'i't'c'e'p's'e'r' '$'q'$' 'd'n'a' '$'p'$' 't'a' '$'q'_'H'$' 'd'n'a' '$'p'_'H'$' 's'e'i''''''' 'y'r'o't's'i'h' 'e'h't' 'r'e'd'i's'n'o'C'n'''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'n'}'m'e'r'o'e'h't'{'d'n'e''''b''n'.'e't'a't's' 't'n'e'm'u'c'o'd' 'e'm'a's' 'e'h't' 'e'v'a'h' '$'q'$' 'd'n'a' '$''''4'p'$' 'n'e'h't' ','$')'}'s'p'o'{'f's'h't'a'm''('q'_'A' '=' ')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 'f'i' ','n'o'i't'u'c'e'x'e' 'd'i'l'a'v' 'a' 'n'i' 'd'e't'a'p'i'c'i't'r'a'p' 't'a'h't' '$'q'$' 'd'n'a' '$'p'$' 's'a'c'i'l'p'e'r' 'o'w't' 'y'n'a' 'r'o'F'n'}'e'c'n'e'g'r'e'v'n'o'c':'m'h't'{'l'e'b'a'l''}'m'e'r'o'e'h't'{'n'i'g'e'b'''''''m''''' '''''e'''''s'''''e'''''h'''''t''''' '''''s'''''s'''''e'''''''''''''''''''''''''''''''''''e'''''g'''''a'''''p'''''r'''''a'''''e'''''l'''''c''''''''n''''''''r'''''d'''''d'''''a''''' '''''o'''''t''''' '''''n'''''a'''''l'''''p''''' '''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'N'O'S'J'''''''''''.'s't'n'e'''''''''''''''''''''''''']'e'c'n'e'd'e'c'e'r'p' 't'n'e'm'e'l'e' 't's'i'l'['m''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''t's'i'l' 'd'e'r'e'd'r'o' 'e'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''$'''''n''''' '''''<''' 'i''''''''''''''''n'o'i't'''''''n'o'i'n'i'f'e'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'd'e'c'e'r'p'''''''''''''''''}'r'e'd'r'o''''''''''e'r'p'-'t's'i'l':'m'e'l'{'l'e'b'a'l'''''''''''''''''''''''''''''''''''.'t's'i'l' 'e'h't' 'r'e'v'o' 'e't'a'r'e't'i' 's'e'l'u''n'r' '}'t'x'e'N'{'c's't'x'e't'' 'e'h't' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'o't' 's'd'n'o'p's'e'r'r'o'c' '}'g'n'i'd'e'c'e'r'p'{'h'p'm'e''''''''''''''''''''''s'r'e't'n'i'o'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'x'e't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'v'r'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'i'l' 'e'h't' 'n'i' '$'2'_'k'$' 's'e'd'e'c'e'r'p' '$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 'd'n'a' 't's'i'l' 'e'h't' 'n'i' '}'w'e'n'{'t'i'h't'a'm''_'k'$' 's'e'd'e'c'e'r'p' '$'1'_''''1'k'$'''''.'t's'i'l' 'e'm''''''''''''''''''''''''''}'n'e'e'w't'e'b'-'t'r'e's'n'i':'m'e'l'{'l'e'b'a'l'''a's' 'e'h't' 'o'''' 't'n'i' 's't'n'e'm'e'l'e' 'w'e'n' 't'r'e's'n'i' 'y'l't'n'e'r'r'u'c'n'o'c' 's'a'c'i'l'p'e'r' 'l'a'r'e'v'e's' 'n'e'h'w' 's'n'e'p'p'a'h' 't'a'h'w' 'r'e'd'i's'n'o'c' 'w'o'n' 'e'W' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''.'r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 'n'a' 'r'o' '}'l'i'a't'{'f''''c's't'x'e't'' 'r'e'h't'i'e' 's'i' '$'2'_'k'$' 'd'n'a' ','r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 'n'a' 'r'o' '}'d'a'e'h'{'f's't'x'e't'' 'r'e'h't'i'e' 's'i' '$'1'_'k'$' 't'a'h't' 'e'r'u's'n'e' 's'n'o'i't'a'r'e'p'o' 't's'i'l' 'g'n'i't'a'r'e'n'e'g' 'r'o'f' 's'e'l'u'r' 'e'h'T'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''n'n''1'_'k'$' 's'e'd'e'c'e'r'p' 't'a'h't' 'n'o'i't'i's'o'p' 'a' 't'a' '$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 't'r'e's'n'i' 'r'e'v'e'n' 'd'n'a' '$'1'_'k'$' 't'a' 't's'i'l' 'e'h't' '''''t'x'e't'''''''''''''h't'a'm'''g'''''n'''i't'a'r'e't'i' 't'r'a't's' 's'e'l'u'r' 'e'h't' 'o's' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'2'_'k'$''''''''''''''''''''''''''''''''''''''''a'c'i'l'p'e'r'''''''''''''''''''''']'r'o'''''''r']'t's'e'c'n'a' 'n'o'm'm'o'c'['''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i' 'r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h't' ','s'd'r'o'w' 'r'e'h't'o' 'n'I''''''''''''''''''''s'a'c'i'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'2','1'{'_'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' 'r'o't's'e'c'n'a' 'n'o'm'm'o'c' 'e'h't' 'n'e'e'w't'e'b' 's'n'o'i't'a'r'e'p'o' 'f'o' 'r'e'b'm'u'n' 'y'n'a' 'e'b' 'y'n'a'm' 'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''1''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'t'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'w'o'h's' 'o't' 'd'e'e'n' 'e'W' '.'$'}'r'e't'f'a'{'t'i'h't'a'm''^'2'_'k' '=' '}'r'e't'f'a'{'t'i'h't'a'm''^'1'_'k' '=' '}''h't'a'm''''''r'e't'f'a''^'k'$' 'd'n'a' '$'}'e'r'o'f'e'b'{'t'i'h't'a'm''^'2'_'k' '=' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^'1'_'k' '=' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^'k'$' 'f'o' 'e's'a'c' 'e'h't' 'r'e'd'i's'n'o'c' ','f'o'o'r'p' 's'i'h't' 'f'o' 't's'e'r' 'e'h't' 'r'o'F'n'n'''.'s'e'g'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r' 'e'v'i't'c'e'p's'e'r' 'r'i'e'h't' 'f'o' 'e'd'i's't'u'o' 't's'i'l' 'e'h't' 'f'o' 's't'r'a'p' 't'c'e'f'f'a' 't'o'n' 'o'd' 'y'e'h't' '}'n'e'e'w't'e'b'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b' 'd'n'a' ','t's'i'l' 'e'h't' 'f'o' 's't'r'a'p' 't'n'e'r'e'f'f'i'd' 't'c'e'f'f'a' 'y'e'h't' 's'a' ','e'v'i't'a't'u'm'm'o'c' 'y'l'l'a'i'v'i'r't' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'e'h't' ','e's'a'c' 'r'e't't'a'l' 'e'h't' 'n'I' '.')'s't'n'e'm'e'l'e' 't's'i'l' 'f'o' 's'l'a'v'r'e't'n'i' 't'n'i'o'j's'i'd' 'o't'n'i' 'g'n'i't'r'e's'n'i' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e'h't' '.'e'.'i'(' '$'}'r'e't'f'a'{'t'i'h't'a'm''^'2'_'k' '='t'o'n'' '}'r'e't'f'a'{'t'i'h't'a'm''^'1'_'k' 'e'g'd'e'w'' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^'2'_''''''k' '='t'o'n'' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^''''&''''&'2'_'k'$' 'r'o' ',')'s't'n'e'm'e'l'e' 't's'i'l' 'f'o' 'l'a'v'r'e't'n'i' 'e'm'a's' 'e'h't' 'o't'n'i' 'g'n'i't'r'e's'n'i' 'e'r'a' '$'2'_'''''''_')'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' '$'1'_'}'p'o'{'t'i'h't'a'm''$' '.'e'.'i'(' '$'}'r'e't'''''''''''''r'e't'g'f'a'{'t'i'h't'a'm''^'2'_'k' '=' '}'r'e't'f'a'{'t'i'h't'a'm''^'1'_'k' 'e'g'd'e'w''''v'' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^'2'_'k' '=' '}'e'r'o'f'e'b'{'t'i'h't'a'm''^'1'_'k'$''r'e'h'T' 'p'e'r' '''n'n'}'n'o'i'''''t'''''i'''''''''''''''''''''''''''''$'}'c'n'a'''''''''''''''''}''''''''''''''''''''''''''$'}'e'r'o'f'e'b'{'t''''''''''''''''''''''$'}'c'n'a'{'t'i'h't'a'm''_'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'e'h't'i'e' ','}'n'e'e'w't'e'b'-'t'r'e's'n'i':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'B'n'n'.'y'l'e'v'i't'c'e'p's'e'r' '$'2'_'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' '$'1'_'}''''_'p'o'{'t'i'h't'a'm''$' 'f'o' 'n'o'i't'i's'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'y'b' 'd'e'd'e'c'e'r'p' 'y'l'e's'o'l'c' 't's'o'm' '$'}'c'n'a'{'t'i'h't'a'm''_'A'$' 'n'i' 's't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'e'b' '$'}'r'e't'f'a'{'t'i'h't'a'm''^'2'_'k'$' 'd'n'a' '$'}'r'e't'f'a'{'t'i'h't'a'm''^''''&'1'_'k'$' 't'e'l' 'd'n'a' ','y'l'e'v'i't'c'e'p's'e'r' '$'2'_'''''''2')'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' '$'1'_'}'p'o'{'t'i'h't'a'm''$' 'f'o' 'n'o'i't'i's'o''''''''''i's'i'p' 'n'o'i't'r'e's'n'i' 'e'h't' ''''A'$' 'n'i' 's'i'h't'a'm'''''&'^'2'_'k'$' 'd'n'a' ''e'r'o'f'e'b''''b'{'t'i'h't'a'm''^'{'t'i'h't'a'm''_'''''A'$'''''''$'#' 'r'o't's'e'c'n'a''n'''''i'''''f'''''e'''''d'''''{'''d'n'e''n'.'''''''''''''''''''''''''''''''''a'c'i'l'p'e'r''''''''''''''''''''''''''''''''''''''''''''''''''y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'g'r'e'v'i'd' 's'e't'a't's' 't'n'e'm'u'''''''''''''''' 'n'o'm'm'o'c' 'a' 'h't'i'w' 'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'd'e'c'e'r'p' 'y'l'e's'o'l'c' 't's'o'm' 't'a'h't' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'e'b' '$'1'_'k'$' 't'e'L'o'd' 'e'h't' 'h'c'i'h'w' 'r'e't'f'a' ','s'n'o'i't'a'r'e'p'o' 'h't'o'b' 's'e'd'e'c'e'r'p' 'y'l'l'a's'u'a'c' 't'a'h't' 'e't'a't's' 't'n'e'm'u'c'o'd' 't'n'e'c'e'r' 't's'o'm' 'e'h't' '.'e'.'i' ','$'}'s'p'e'd'{'t'i'h't'a'm''.'2'_'}'p'o'{'t'i'h't'a'm'' 'p'u'c'' '}'s'p'e'd'{'t'i'h't'a'm''.'1'_'}'p'o'{'t'i'h't'a'm''$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'g'n'i'y'l'p'p'a' 'm'o'r'f' 'g'n'i't'l'u's'e'r' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 's'i' '}'r'o't's'e'c'n'a' 'n'o'm'm'o'c'{'h'p'm'e'' 'e'h't' ','$'2'_'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' '$'1'_'}'p'o'{'t'i'h't'a'm''$' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'o'w't' 'r'o'F'n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'r'o't's'e'c'n'a'-'n'o''''a'm'm'o'c':'f'e'd'{'l'e'b'a'l''}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'q':''''''''''''''''''''''''''''''''''''''''''''''''''' '.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''$''''' 'd'n'a' '$'1'_'}'p'o'{'t'i'h't'a'm''$' 's'n'o'i't'a'r'e'p'o' 'o'w'T'n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'t'n'e'r'r'u'c'n'o'c':'f'e'd'{'l'e'b'a'l''}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'v'i't'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'c'n'''''''''''''''''''''''''''''''''''''''''''' '}'s'p'e'd'{'t'i'h't'a'm''.'1'_'}''''_'p'o'{'t'i'h't'a'm''$' '.'e'.'i' ',''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 'e'v'i't'a't'u'm'm'o'c' 'o'w't' 'e'b' '$'2'_'}'p'o'{'t'i'h't'a'm''$' 'd'n'a' '$'1'_'}'p'o'{'t'i'h't'a'm''$' 't'e'L'n'''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'n't'u'm'm'o'c' 'e'r'a' 't's'i'l' 'e'm'a's' 'e'h't' 'o't'n'i' 's'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'C''n''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'e't'u'm'm'o'c'-'t'r'e's'n'i':'m'e'l'{'l'e'b'a'l''}'a'm'm'e'l'{'n'i'g'e'b''n'n' 's'e'd'e'c'e'r'p' 't'a'h't' 'n'o'i't'i's'o'p' 't's'i'l''''p' 'a' 't'a' '$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 't'r'e's'n'i' 's'y'a'w'l'a' 's'u'h't' 'd'n'a' ','$'2'_'k'$' 't's'a'p' 'e't'a'r'e't'i' 'r'e'v'e'n' 's'u'h't' 's'e'l'u'r' '$'}'2','1'{'_'}'t'r'e's'n'I'{'c's't'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'a'm'''''''''''''h't'a'm''$' 'e'h'T' '.'t's'e't'a'l' 'e'h't' 't'a' '$'2'_'k'='}'t'x'e'n'{'t'i'h't'a'm''$' 'h't'i'w' 'y'l'p'p'a' 'l'l'i'w' '$'1'_'}'t'r'e's'n'I'{'c's't'x'e't''$' 'o's' 'd'n'a' ','$'}'l'i'a't'{'f's'h't'a'm'' '=' '2'_'k' 'e'e'v'' '}'w'e'n'{'t'i'h't'a'm''_'k' '<' '2'_'k'$' 't'a'h't' 'w'o'n'k' 'e'w' ','r'e'v'e'w'o'H' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 'n'a'h't' 'r'e't'a'e'r'g' 's'i' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e's'o'h'w' 's't'n'e'm'e'l'e' 't's'i'l' 'y'n'a' 'r'e'v'o' 's'p'i'k's' '$'2'_'}'t'r'e's'n'I'{'c's't'x'e't''$' ','r'a'l'u'c'i't'r'a'p' 'n'I' '.'y'l'p'p'a' 'y'a'm' '$'2'_'}'t'r'e's'n'I'{'c's't'x'e't''$''''' 'r'o' '$'1'_'}'t'r'e's'n'I'{'c's't'x'e't'''''''''''''h't'a'm''$' 'r'e'h't'i'e' 's'u'h't' 'd'n'a' ','$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 'n'a'h't' 's's'e'l' 'r'o' 'n'a'h't' 'r'e't'a'e'r'g' 'e'b' 'y'a'm' 'D'I' 'n'o'i't'a'r'e'p'o' 'r'i'e'h't' ','$'2'_'k'$' 'd'n'a' '$'1'_'k'$' 'n'e'e'w't'e'b' 'd'e'r'r'u'c'c'o' 's'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'f'I' '.'$')'1'_'k' ','e'l'g'n'a'r''s't'o'd''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''$' 's'i' 'n'o'i't'a'r'e'p'o' 'e'h't' 'f'o' 'r'o's'r'u'c' 'e'h'T''''n''''$' ''''''''''''''''''''''''''''''''''''''''''''''''''''.')'y't'i'l'a's'u'a'c' 'd'n'a' '}'s'e'd'e'c'e'r'p'-'t's'i'l':'m'e'l'{'f'e'r''~'a'm'm'e'L' 'y'b'(' 'a'c'i'l'p'e'r'''''''' 't'a'h't' 'n'o' '$'2'_'k'$' 's'e'd'e'c'e'r'p' '$'1'_'k'$'''''''''''''L' 'y'b' ','$'}'2','1'{'_'}'t'r'e's'n'I'{'c's't'x'e't''$' 'd'n'a' '}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' 'g'n'i's'u' ''''e's'a'c'i'l'p'e'r' 'r'e'h't'o' 'n'o' 'd'e'i'l'p'p'a' 's'i' 'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 'e'h't' 'n'e'h'W'n'n'.'$'}'l'i'a't'{'f's'h't'a'm'' '=' '2'_'k'$' 'r'o' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'r'o'f' '$'<'$' 'n'o'i't'a'l'e'r' 'g'n'i'r'e'd'r'o' 'e'h't' 'r'e'd'n'u' '$'}'w'e'n'{'t'i'h't'a'm''_'k' '<' '2'_'k'$' 'r'e'h't'i'e' ','''' 's'u'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l''''''''''T'n'n'p'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'}'l'i'a't'{'f's't'x'e't'' 'e'b' 't's'u'm' 't'i' ','r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 'n'a' 't'o'n' 's'i' '$'2'_'k'$' 'f'I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''o'p' 'r'e'h't'o' 'y'l'n'o' 'e'h'T'''''''''''''''','s'u'h'T' '.'''' 'n'o'i't'r'e's'n'i' 'n'a' 'g'n'i'y'l'p'p'a' 'n'e'h'w' '$')'}'s'p'o'{'f's'h't'a'm''('p'_''''-'A'$' 'o't' 's'D'I' 'n'o'i't'a'r'e'p'o' 'd'd'a' '}'e't'o'm'e'R'-''''_'y'l'p'p'A'{'c's't'x'e't'' 'd'n'a' '}'l'a'c'o'L'-''''_'y'l'p'p'A'{'c's't'x'e't'' 'h't'o'b' 'e'c'n'i's' ','$')'}'s'p'o'{'f's'h't'a'm''('p'_'A' 'n'i'''''''n'o'' '2'_'k'$' 'e'v'a'h' 't's'u'm' 'e'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 'n'a' 's'i' '$'2'_'k'$' 'f'I' '.'$')'}'s'p'o'{'f's'h't'a'm''('p'_''''-'A'''''$' 'n'i' 'D'I' 'n'o'i't'a'r'e'p'o' 'g'n'i't's'i'x'e' 'y'n'a' 'f'o' 'r'e't'n'u'o'c' 'e'h't' 'n'a'h't' 'r'e't'a'e'r'g' 's'i' 't'a'h't' '$'}'r't'c'{'t'i'h't'a'm''$''''' 'e'u'l'a'v' 'r'e't'n'u'o'c' 'a' 'n'e'v'i'g' 's'i'''''''''''''''''''''''''''''''''' 'a' 's'n'i'a't'n'o'c' 'r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 's't'i' ','e'l'u'r' '}'p'O'-'e'k'a'M'{'c's't'x'e't'' 'e'h't' 'g'n'i's'u' 'd'e't'a'r'e'n'e'g' 's'i' 'n'o'i't'a'r'e'p'o' 'n'o'i't'r'e's'n'i' 'e'h't' 'n'e'h'W'n''''''''''''f'o'o'r'p''}'{'''''''p'P'd'n'e''n'''''}'f'o'o'r'p'{'n'i'g'e'b''n'p'a' 's'i' 'n'o'i't'a'r'e'p'o' 't'a'h't' 'e'r'e'h'w' 'a'c'i'l'p'e'r' 'r'e'h't'o' 'y'r'e'v'e' 'n'o' '$'2'_'k'$' 's'e'd'e'c'e'r'p' '$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 'd'n'a' '$'}'w'e'n'{'t'i'h't'a'm''_'k'$' 's'e'd'e'c'e'r'p' '$'1'_'k'$' 'n'e'h't' ','}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 'g'n'i'y'l'p'p'a' 'r'e't'f'a' 'a'c'i'l'p'e'r' 'e'c'r'u'o's' 'e'h't' 'n'o' '$'2'_'k' '=' ')')'}'w'e'n'{'t'i'h't'a'm''_'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$' 'd'n'a' '$'}'w'e'n'{'t'i'h't'a'm''_'k'''''''''''''''''''''''''''''''''''''''''''''''''a'm''('}'x't'c'{'t'i'h't'a'm'' '=' ')')'1'_'k'('}'t'x'e'n'{'f's'h't'a'm''''''''e'n'('}'x't'c'{'t'i'h't'a'm''$' 'f'i' '.'e'.'i' ','$'2'_'k'$' 'd'n'a''''''''''''' 'D'N'A' '$'1'_'k'$' 'n'e'e'w't'e'b' '$'}'w'e'n'{'t'i'h't'a'm''_''''{'k'$' 't'n'e'm'e'l'e' 't's'i'l' 'a' 's't'r'e's'n'i' 'a'c'i'l'p'e'r' 'e'n'o' 'f'I'n'''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'a'm'm'e'l''''e'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$')'k'('}'s'e'r'p'{'f's'h't'a'm''$' 't'e's' 'e'c'n'e's'e'r'p' 's't'i' 's'r'a'e'l'c' 'y'l'n'o' 't'u'b' ',''''''''''''''''''''''''''''''''''''''s'r'e't'n'i'o'p' '}'t'x'e'n'{'f's't'x'e't'' 'f'o' 'e'c'n'e'u'q'e's' 'e'h't' 'm'o'r'f' 't'i' 'e'v'o'm'e'r' 't'o'n' 's'e'o'd' 't's'i'l' 'a' 'm'o'r'f' 't'n'e'm'e'l'e' 'n''''l'a' 'f'o' 'n'o'i't'e'l'e'd' 't'a'h't' 'e't'o'N'n'n's'e'r'p' 's'y'a'w'l'a' 's'i' 'e'c'n'e'd'e'c'e'r'p' ','r'e'd'r'o' 't's'i'l' 'e'h't' 's't'c'e'f'f'a' 'e'l'u'r' 'r'e'h't'o' 'o'n' 'e'c'n'i'S' '''''''''''''''''''''''''''''''''''''''''''''''''.'s't'n'e'm'e'l'e' 't's'i'l' 'g'n'i't's'i'x'e' 'o'w't' 'y'n'a' 'n'e'e'w't'e'b' 'p'i'h's'n'o'i'''''''''''''s'n'i'o't'a'l'e'r' 'e'c'n'e'd'e'c'e'r'p' 'e'h't' 's'e'v'r'e's'e'r'p' 'n'o'i't'a'c'i'f'i'd'o'm' 's'i'h'T' '.')'}'l'i'a't'{'f's't'x'e't'''''''''''''''''''''' 'r'o'/'d'n'a' '}'d'a'e'h'{'f's'h't'a'm'' 'y'l'b'i's's'o'p'(' 's't'n'e'm'e'l'e' 't's'i'l' 'g'n'i't's'i''''c'x'e' 'o'w't''''r' 'n'e'e'w't'e'b' 't'n'e'm'e'l'e' 't's'i'l' 'w'e'n''''p' 'a' 's't'r'e's'n'i'''''''''''''''''''''''''''' 's'e'i'f'i'd'o'm' 't'i' 'd'n'a' ','$'1'_'}'t'r'e's'n'I'{'c's't'x'e't''''''''''''''''''''''{'f's'h't'a'm''$' 's'i' 't'x'e't'n'o'c' 'e'h't' 'n'i' 's'e'i'r't'n'e' '}'t'x'e'n'{'f's't'x'e't'' 'e'h't' 's'e'i'f'i'd'o'm' 't'a'h't' 'e'l'u'r' 'y'l'n'o' 'e'h'T'n'''''''''''''}'f'o'o'r'p'{'d'n'e''n'}'f'o'o'r'p'{'n'i'g'e'b''n'' 'f'o' 'n'o'i't'o'n' 'e'h'T'n'n'' 'i''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'1'+'i'{'''l'' '1'$' 'h't'i'w' '$'i'$' 'l'l'a' 'r'o'f' ''''''''''' 'l'l'a'r'o'f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2'_'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' ';''e'g'd'e'w'';'' '2'_'k' '=' ')')'1'_'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$' 't'a'h't' 'h'c'u's' '$'}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k'$' 't's'i'x'e' 'e'r'e'h't'''''' 'f'i' '$'}'x't'c'{'t'i'h't'a'm''$''''' 'n'i' '$'2'_'k'$' 't'n'e'm'e'l'e' 't's'i'l' '}'s'e'd'e'c'e'r'p'{'h'p'm'e'' '$'1'_'k'$' 't'''''''''' 't' 'n'e'm'e''k'''l'''''e''''k''''''''' '''''''''''''''''t'''''''''s''''''''t'i'L''u'c'o'd' 'e't'i's'o'p'm'o'c' ''k'''x'''''''''''''' '''''e'''''l'''p'm'o'c' 'e'r'o'm' 'k''''''s'''''d'''''r'''''a'''''w'''o't' 'y'a'w' 'r'u'o' 'k'r'o'w' 'n'e'h't' 'd'n'a' ','s't's'i'l' 'd'e'r'e'd'r'o' 't'u'o'b'a' 's'a'm'm'e'l' 'e'm'o's' 'h't'i'w' 'n'i'g'e'b' 'e'W' ''''''''''''''''''''''n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n'.''''''''''''''''''''''''''''''''''''''''''s'e'd'e'c'e'r'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e't'a't's' 't'n'e'm'u'c'o'd'''''''t's' 'e'v'i's's'e'c'c'u's''''''''''''''''''''''''''''''' 'g'n'i't'l'u's'e'r' 'l'l'a' 'n'i' '$'2'_'}'d'i'{'t'i'h't'a'm''$' 's'e'd'e'c'e'r'p' 'o's'l'a' '$'1'_'}'d'i'{'t'i'h't'a'm''$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','s'e'l'u'r' 'n'o'i't'a'u'l'a'v'e''''v' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' 'd'e't'a't'u'm' 's'i' 't's'i'l' 'e'h't' 'd'n'a' ','t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'n'i' '$'2'_'}'d'i'{'t'i'h't'a'm''$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' '$'1'_'}'d'i'{'t'i'h't'a'm''$' 'f'I''''''''''''''''''''''''''''''''''t'a'u'l'a'v'e' 'e'h'T'n'''''''''''''}'a'm'm'e'l'{'d'n'e''n'}'a'm'm'e'l'{'n'i'g'e'b'''n'n''}'e'c'n'e'g'r'e'v'n'o'c':'c'e's'{'f'e'r''~'n'o'i't'c'e'S'''''''e's' 'n'i' 'd'e't'a't's' 'm'e'r'o'e'h't' 'e'h't' 'f'o' 'f'o'o'r'p' 'a' 'e'd'i'v'o'r'p' 'e'w' 'x'i'd'n'e'p'p'a' 's'i'h't' 'n'I''n'n'W' '.'n'o'i't'a'r'e'p'o' '}'o'd'n'u'{'h'p'm'e'' 'n'a' 'd'n'a' ')'r'e'h't'o'n'a' 'o't' 't'n'e'm'u'c'o'd' 'a' 'n'i' 'n'o'i't'i's'o'p' 'e'n'o' 'm'o'r'f' 'e'e'r't'b'u's' 'a' 'e'v'o'm' 'o't' 'r'o' ','t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'n'i' 's't'n'e'm'e'l'e' 'f'o' 'r'e'd'r'o' 'e'h't' 'e'g'n'a'h'c' 'o't'(' 'n'o'i't'a'r'e'p'o' '}'e'v'o'm'{'h'p'm'e'' 'a' 't'r'o'p'p'u's' 'o't' 'l'u'f'e's'u' 'e'b' 'd'l'u'o'w' 't'i' ','e's'e'h't' 'o't' 'n'o'i't'i'd'd'a' 'n'I' '.'s'n'o'i't'a'r'e'p'o' 't'n'e'm'n'g'i's's'a' 'd'n'a' 'n'o'i't'e'l'e'd' ','n'o'i't'r'e's'n'i' 's't'r'o'p'p'u's' 'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'n'i'f'e'd' 'T'D'R'C' 'e'h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'r'u't'a'''''''''''''u't'a'r'e'f' 't'n'a't'r'o'p'm'i' 'o'w'T''n'''t''''' '''''g'''''n'''''i'''''s'''''i'''''r'''''p'''''r'''''u'''''s''''' '''''e'''''b''''' '''''y'''''a'''''m''''' '''''t'''''a'''''h'''''t''''' '''''s'''''e'''''t'''''a'''''t'''''s''''' '''''t'''''n'''''e'''''m'''''u'''''c'''''o'''''d''''' '''''d'''''e'''''g'''r'e'm''''''''''''''''r'p'r'u's''''''''''''''''''''''''' 'o't' 's'd'a'e'l' 't'i''''' ','}'m'e't'i'-'o'd'o't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'd'e't'a'r't's'u'l'l'i' 's'a' 't'u'b' ','e'l'b'a'n'o's'a'e'r' 's'r'a'e'p'p'a' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c''''o' 'o't' 'e'u'd' 't'u'p'n'i' 'g'n'i's'o'l' 't'o'n' 'f'o' 'e'l'p'i'c'n'i'r'p' 'r'u'O'''''''''''''''' 'd'e't'a'r't's'u'l'l'i' 's'A's'm'h't'i'r'o'g'l'a' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'f'o' ''c'i'r'i'p'm'e''''''''''p'x'e''''''y'd'u't's' 'e'h't' 'r'o'f' 't'e's'a't'a'''''''''''''''''''''''''''''''''''''''''''''' ','}'m'e't'i'-'o'd'o't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'd'e't'a'r't's'u'l'l'i' 's'A''d' 'a' 'e'd'i'v'o'r'p' 'o't' 'r'e'd'r'o' 'n'i' ','r'e'p'a'p' 's'i'h't' 'f'o' 'a't'a'd' 'l'a't'n'e'm'e'l'p'p'u's' 's'a' 'e'l'b'a'l'i'a'v'a' 't'n'e'm'u'c'o'd' 's'i'h't' 'f'o' 'e'c'a'r't' 'g'n'i't'i'd'e' 'r'e't'c'a'r'a'h'c'-'y'b'-'r'e't'c'a'r'a'h'c' 'e'h't' 'g'n'i'k'a'm' 'e'r'a' 'e'W' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''}'k'v'5'1'0'2':'e'l'g'o'o'G'{'e't'i'c''~'I'P'A' 'e'm'i't'l'a'e'R' 'e'l'g'o'o'G' '.'s'e'r'u't'c'u'r't's' 'a't'a'd' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'f'o' 'e'r'i'u'q'e'r' 'd'n'a' 't'c'e'p'x'e' 's'r'e'm'm'a'r'g'o'r'p' 'n'o'i't'a'c'i'l'p'p'a' 't'a'h't' 's'c'i't'n'a'm'e's' 'e'h't' 'e'r'o'l'p'x'e' 'o't' 'd'e'd'e'e'n' 'e'b' 'l'l'i'w' 'k'r'o'w' 'r'e'h't'r'u'F'n'n'.'T'D'R'C' 's'i'h't' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'u'o' 'g'n'i's'u' 'r'o't'i'd'e' 't'x'e't' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'l'a't'n'e'm'i'r'e'p'x'e' 'n'a' 'g'n'i's'u' 'r'e'p'a'p' 's'i'h't' 'f'o' 't'x'e't' 'e'c'r'u'o's' '}'X'e'T'a'L''{' 'e'h't' 'e't'o'r'w' 'e'w' ','t'c'a'f''w' 'n'o'-'w'o'l'l'o'f'''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'I' '.'r'e'p'a'p' 'e't'a'r'a'p'e's' 'a' 'n'i' 's'c'i't's'i'r'e't'c'a'r'a'h'c' 'e'c'n'a'm'r'o'f'r'e'p' 's't'i' 'n'o' 't'r'o'p'e'r' 'l'l'i'w' 'd'n'a' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'l'a'c'i't'c'a'r'p' 'a' 'd'e't'a'e'r'c' 'o's'l'a' 'e'v'a'h' 'e'W' '.'l'e'd'o'm' 'l'a'c'i't'a'm'e'h't'a'm' 'a' 's'a' 'd'e't'n'e's'e'r'p'e'r' ','T'D'R'C' 'N'O'S'J' 'e'h't' 'f'o' 's'c'i't'n'a'm'e's' 'l'a'm'r'o'f' 'e'h't' 'n'o' 'd'e's'u'c'o'f' 'k'r'o'w' 's'i'h'T'n'n'.'c'i'g'o'l' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'''''''''''''n'o'c' 'c'i'f'i'c'e'p's'-'n'o'i't'a'c'i'l'p'p'a' 'y'n'a' 'g'n'i'r'i'u'q'e'r' 't'u'o'h't'i'w' 'e't'a't's' 'e'm'a's' 'e'h't' 's'd'r'a'w'o't' 'e'g'r'e'v'n'o'c' 's'a'c'i'l'p'e'r' 't'a'h't' 's'e'r'u's'n'e' 'h'c'i'h'w' ','e'v'i't'a't'u'm'm'o'c' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'C' '.'s'n'o'i't'a'r'e'p'o' 'f'o' 'e'r' 'r'e'h't'o' 'o't' ''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a't'u'm''''''''''''''''''''''''''''m'r'o'f' 'e'h't' 'n'i' 's't'i'd'e''''''''''a'h'c' 'e't'a'c'i'n'u'm'm'o'c' 'y'l's'u'o'n'o'r'h'c'n'y's'a' 's'a'c'i'l'p'e'R' '.''''''''''''''''''''''g'm'o'r'o'i'q'e'r' '''''''''''''' 'k'r'o'w't''n'o''''''e'n' 'y'n'a'''''''''''''''''''' 'h't'i'w' 'g'n'i't'a'c'i'n'u'm'm'o'c' 't'u'o'h't'i'w' 'a't'a'd' 'e'h't' 'o't' 's'e'g'n'a'h'c' 'y'r'a'r't'i'b'r'a' 'e'k'a'm' 'o't' 's'a'c'i'l'p'e'r' 's'w'o'l'l'a''''l' 't'i' 'd'n'a' ','s'p'a'm' 'd'n'a' 's't's'i'l' 'd'e't's'e'n' 'y'l'i'r'a'r't'i'b'r'a' 's't'r'o'p'p'u's' 't'I' '.'l'e'd'o'm' 'a't'a'd' 'N'O'S'J' 'a' 'h't'i'w' 'T'D'R'C' 'd'n'u'o'p'm'o'c' 'a' 'o't'n'i' 's'r'e't's'i'g'e'r' 'd'n'a' 's'p'a'm' ','s't's'i'l' 'd'e'r'e'd'r'o' 'r'o'f' 's'T'D'R'C''''C' 'e's'o'p'm'o'c' 'o't' 'w'o'h' 'd'e't'a'r't's'n'o'm'e'd' 'e'w' 'r'e'p'a'p' 's'i'h't' 'n'I''''''''''''''''''''''''''''''''''l' 'e'r'a' 'y'e'h't' 'e'c'n'i's' ','}'t'e'l'{'f's't'x'e't'''''''''''''h't'a'm'' 'h't'i'w' 'd'e'n'i'f'e'd' 's'e'l'b'a'i'r'a'v' 'y'n'a' 's'e'd'u'l'c'x'e' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h'T'n'n''s'i' 'r'e'v'e'h'c'i''''c'h'w' ','$')'}'c'o'd'{'f's'h't'a'm''('}'T'g'e'r'{'f's'h't'a'm''('p'_'A'$' 'r'o' '$')'}'c'o'd'{'f's'h't'a'm''('}'T't's'i'l'{'f's'h't'a'm''('p'_'A'$' 'r'o' '$')'}'c'o'd'{'f's'h't'a'm''('}'T'p'a'm'{'f's'h't'a'm''('p'_'A'$' ','s'i' 't'a'h't' ':'''' 't'n'e'm'u'c'o'd' 'e'h't' 'g'n'i'n'i'a't'n'o'c' '$'p'_'A'$' 'f'o' 'e'e'r't'b'u's' 'e'h't' 's'i' '$'p'$' 'a'c'i'l'p'e'r' 'a' 'f'o' '}'e't'a't's' 't'n'e'm'u'c'o'd'{'h'p'm'e''''m'' 'e'h'T'n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e't'a't's' 't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a'n'i'b'm'o'c' 'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'l'a'u's'u' '''''''''''''''''''''' 'y'l'l'a'u's'u''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'a'r'u'd' 'e't'i'n'i'f' 'f'o' 'y'l'l'a'u's'u' 'e'r'a' 's'n'o'i't'p'u'r'r'e't'n'i' 'k'r'o'w't'e'n' 's'a' ','e'c'i't'c'a'r'p' 'n'i' 'd'e'd'i'v'o'r'p' 'e'b' 'n'a'c' 't'i' 't'a'h't' 't'r'e's's'a' 't'u'b' ','r'e'p'a'p' 's'i'h't' 'n'i' 'y't'r'e'p'o'r'p' 's's'e'n'e'v'i'l' 'e'h't' 'e'z'i'l'a'm'r'o'f' 't'o'n' 'l'l'i'w' 'e'W' '.'y'l'r'i'a'f' 'n'e's'o'h'c' 'g'n'i'e'b' '}'d'l'e'i'y'{'f's't'x'e't'''''''''''x'e't' 'r'o'f' 's'e'l'u'r' 'c'i't's'i'n'i'm'r'e't'e'd'n'o'n' 'l'l'a' 'd'n'a' ','n'e't'f'o' 'y'l't'n'e'i'c'i'f'f'u's' '}'d'l'e'i'y'{'f's't'x'e't'''''''a'm'' 'g'n'i'k'o'v'n'i' 's'a'c'i'l'p'e'r' 'f'o' 's'n'o'i't'p'm'u's's'a' 'n'o' 's'd'n'e'p'e'd' 'y't'r'e'p'o'r'p' 's's'e'n'e'v'i'l' 'e'h'T'n'n'.'e't'a't's' 'e'm'a's' 'e'h't' 'n'i' 'p'u' 'd'n'e' 'y'l'l'a'u't'n'e'v'e' 's'a'c'i'l'p'e'r' 'l'l'a' ':'e'c'n'e'g'r'e'v'n'o'c' 'f'o' 'n'o'i't'o'n' 'd'e'r'i's'e'd' 'e'h't' 'n'i'a't'b'o' 'e'w' ','s'n'o'i't'a'r'e'p'o' 'l'l'a' 's'e's's'e'c'o'r'p' 'y'l'l'a'u't'n'e'v'e' 'a'c'i'l'p'e'r' 'y'r'e'v'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'y'l'e'm'a'n' ','y't'r'e'p'o'r'p' 's's'e'n'e'v'i'l' 'a' 'h't'i'w' 'd'e'l'p'u'o'c' 'e'b' 'o't' 's'd'e'e'n' 't'I' '.'e't'a't's' 'e'm'a's' 'e'h't' 'n'i' 'e'r'a' 'y'e'h't' 'n'e'h't' ','r'e'd'r'o' 't'n'e'r'e'f'f'i'd' 'a' 'n'i' 'y'l'b'i's's'o'p' ','s'n'o'i't'a'r'e'p'o' 'f'o' 't'e's' 'e'm'a's' 'e'h't' 'd'e's's'e'c'o'r'p' 'e'v'a'h' 's'a'c'i'l'p'e'r' 'o'w't' 'f'i' ':'e'c'n'e'g'r'e'v'n'o'c' 'f'o' 'y't'r'e'p'o'r'p' 'y't'e'f'a's' 'e'h't' 's'e'z'i'l'a'm'r'o'f' 't'I' '.'x'i'd'n'e'p'p'a' 'e'h't' 'n'i' 'd'e'v'o'r'p' 's'i' 'm'e'r'o'e'h't' 's'i'h'T'n'n''n'e'm'u'c'o'd' 'e'm'a's' 'e'h't' 'e'v'a'h' '$'q'$' 'd'n'a' '$'p'$' 'n'e'h't' ','$')'}'s'p'o'{'f's'h't'a'm''('q'_'A''''$' '=' ')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 'f'i' ','n'o'i't'u'c'e'x'e' 'd'i'l'a'v' 'a' 'n'i' 'd'e't'a'p'i'c'i't'r'a'p' 't'a'h't' '$'q'$' 'd'n'a' '$'p'$' 's'a'c'i'l'p'e'r' 'o'w't' 'y'n'a' 'r'o'F'n''''''''''''''''}'*'m'e'r'o'e'h't'{'d'n'e''n'}'*'m'e'r'o'e'h't'{'n'i'g'e'b''n'n'''e'''''c'''''n'''''i'''''S''''''''k'''''c'''''e'''''h'''''c''''' '''''n'''''a'''''c''''' '''''e''''''''''''''''''''''''''''''''''n'a' 'f'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.')'y'r'o't's'i'h' 'e'h't' 'n'i' 's'e'i'c'n'e'd'n'e'p'e'd' 'e's'o'h't' 'r'e't'f'a' 't'n'i'o'p' 'e'm'o's' 't'a' 's'r'a'e'p'p'a' 't'i' ','s'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 's'a'h' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''s'r'a'e'p'p'a' 'n'o'i'''''''''''''''''k'r'o'w' 'r'e'h't'r'u'f' 'd'n'a' ''t'a'r'e'p'o' 'y'r'e'v'e'''''''''''''''''''''''''''''''''''''''' '''''r'''''e'''''h'''''t'''''e'''''h'''''w''''' ''''','''''s'''''u'''''h'''''T''''' '''''.'''''e'''''l'''''u'''''r''''' '}'v'c'e'R'{'c's't'x'e't'' 'e'h't' 's'e'i'l'p'p'a' 'r'e'v'e'n' '}'d'l'e'i'y'{'f's't'x'e't'' 'f'o' 'n'o'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'n'i'f'e'd'-'l'l'e'w' 's'i' 'r'e'd'r'o' 'e'h't' ','e'm'i't' 'a' 't'a' 'n'o'i't'a'r'e'p'''''''''''''y'r'o't's'i'h' 'y'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(' 'y't'i'l'a's'u'a'c' 'h't'i'w' 't'n'e't's'i's'n'o'c' 's'i' 'r'e'd'r'o' 'e'h't' ',''''''o''''' '''''e'''''n'''''o''''' '''''y'''''l'''''p'''''p'''''a''''' '''''y'''''l'''''l'''''a'''''i'''''t'''''n'''''e'''''u'''''q'''''e'''''s''''' '''''s'''''e'''''l'''''u'''''r''''' '''''n'''''o'''''i'''''t'''a'u'l'a'v'e' 'e'h't' 'e'''''''''''''h't'e' 'c'n'i'S' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' 'n'i' '$')'}'s'p'o'{'f's'h't'a'm''('p'_'A' 'q'e't'e's'b'u's'' '}'s'p'e'd'''''''d'i'.'p'o'{'t'i'h't'a'm''$' 'e's'i'm'e'r'p' 'e'h't' 'o't' 'e'u'D' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'm'i't' 'a' 't'a' 'n'o'i't'a'r'e'p'o' 'e'n'o' 'y'l'p'p'a' 'y'l'l'a'i't'n'e'u'q'e's' 's'e'l'u'r' 'n'o'i't'a'u'l'a'v'e' 'e'h't' 'e'c'n'i'S' 't'u'c'e'x'e' 'c'i't's'i'n'i'm'r'e't'e'd'n'o'n' 'e'h't' 'e's'u'a'c'e'b' 'r'o' ','d'n'a'm'm'o'c' '}'d'l'e'i'y'{'f's't'x'e't'' 'e'h't' 's'e'k'o'v'n'i'''''''''''''''''''t' 's'e's'u' 'r'e'v'e'n' 't'i' 'e's'u'a'c'e'b' 'r'e'h't'i'e' ','n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'y'n'a' 'm'r'o'f'r'e'p' 'r'e'v'e'n' 'o't' 'n'o'i't'u'c'e'x'e' 'n'a' 'r'o'f' 'd'i'l'a'v' 's'i' 't'i' 't'a'h't' 'e't'o'N'n'n'''' '''''''''''''''''''''''''''''''''''''''''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e't'o'm'e'R'-'y'''''''''''''''''''''''''''''''''''$'q'$' 'd'n'a' '$'p'$' '''''''''''''''''''''f'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'c'n'o'c' 'y'n'a'''''''''''''''''''''''''''''''''''''''''''.'r'e'd'r'o' 't'n'e'r'e'f'f'i'd' 'a' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'd'e'i'l'p'p'a' 'e'v'a'h' 'y'a'm' 'y'e'h't' ','$')'}'s'p'o'{'f's'h't'a'm''('q'_'A' '=' ')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' '.'e'.'i' ','''''''''''''''''''''''''s'n'o'i't'a'r'e'p'o' 'f'o' 't'e's' 'e'm'a's' 'e'h't' 'd'e'i'l'p'p'a' 's'a'c'i'l'p'e'r' 'o'w't' 'f'i' 'n'e'v'E''''N'n'n'l'p'p'A'{'c's't'x'e't'' 'd'n'a' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 's'e'l'u'r' 'e'h't' 'f'o' 'n'o'i't'a'c'i'l'p'p'a' 'y'b' ',''.'$'p'$' 'a'c'i'l'p'e'r' 'r'a'l'u'c'i't'r'a'p' 'e'n'o' 't'a' 'd'e'i'l'p'p'a' 's'a'w' 't'i' 'r'e'd'r'o' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p''''''''''''o' 'f'o' 'e'c'n'e'u'q'e's' 'e'h't' 's'i''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n' '}'y'r'o't's'i'h'{'h'p'm'e'' 'A'n'}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n'.'t's'i'x'e' 'y'l'l'a'u't'c'a' 't'a'h't' 's't'n'e'm'e'l'e' 't's'i'l' 'o't' 'r'e'f'e'r' 'y'l'n'o' 's'n'o'i't'a'r'e'p'o' 't'a'h't' 'e'r'u'' 's'i'h't' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'l'a'e'r' 'a' 'n'I'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'e' 'e'w' ','k'c'u't's' 't'e'g' 't'o'n' 'o'd' 't'a'h't' 'e's'o'h't' 'o't' 's'n'o'i't'u'c'e'x'e' 'd'i'l'a'v''''''''''e'x'e' 'g'n'i'n'i'a'r't's'n'o'c' 'y'B' '.'t's'i'l' 'a' 'f'o' 'd'n'e' 'e'h't' 't's'a'p' 'e't'a'r'e't'i' 'o't' 's'e'i'r't' '}'t'x'e'n'{'f's't'x'e't'' 'f'i' 'k'c'u't's' 't'e'g' '}'s'e'l'u'r'-'r'p'x'e':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 's'e'l'u'r' '$'}'3','2'{'_'}'t'x'e'N'{'''c's't'x'e't'' 'e'h't' ','e'l'p'm'a'x'e' 'r'o'F' '.'d'e'i'f's'i't'a's' 'e'b' 't'o'n'n'a'c' 's'n'o'i't'a'c'i'l'p'p'a' 'e'l'u'r' 'e'h't' 'f'o' 'e'n'o' 'n'i' 'e's'i'm'e'r'p' 'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''o'n'n'a'c' 's'e's'i'm'e'r'p''''''''''e'r'p' 's't'i' 'f'i' 'k'c'u't's' 's't'e'g' 'n'o'i't'c'u'd'e'r' 'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'g'n'i'n'i'a'r't's'n'o'c' 'y'B'n'n't't'e'g' 't'u'o'h't'i'w' ''.'$'e'l'g'n'a'r'' 'n'_'}'d'm'c'{'t'i'h't'a'm'' '}'''']';'{'n'i'b'h't'a'm'' 's't'o'd'' '}';'{'n'i'b'h't'a'm'' '1'_'}'d'm'c'{'t'i'h't'a'm'' 'e'l'g'n'a'l''$' 's'd'n'a'm'm'o'c' 'f'o' 'e'c'n'e'u'q'e's' 'a' 'g'n'i'c'u'd'e'r' 'h'c''''h'a'e' ','$'}'D'I'a'c'i'l'p'e'R'{'m'r'h't'a'm'' '=' '}''k'_'p' ','s't'o'd'' ','1'_'p'{''$' 's'a'c'i'l'p'e'r' 'f'o' 't'e's' 'a' 'y'b' 'd'e't'a'r'e'n'e'g' 's'n'o'i't'a'r'e'p'o' 'f'o' 't'e's'''''''e's' 'a' 's'i' '}'n'o'i't'u'c'e'x'e' 'd'i'l'a'v'{'h'p'm'e'' 'A'n''''''''''''''''''}'n'o'i't'i'n'i'f'e'd'{'d'n'e''n'}'n'o'i't'i'n'i'f'e'd'{'n'i'g'e'b''n'n'f'o'o'r'p's's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e'm'e'r'i'u'q'e'r' 's'i'h't' 'y'f's'i't'a's' '}'s'e'l'u'r'-'r'a'e'l'c':'g'i'f'{'f'e'r''~'''' 'o't' '}'s'e'l'u'r'-'r'p'x'e':'g'i'f'{'f'e'r''~'s'e'r'u'g'i'F' 'n'i' 's'e'l'u'r' 'e'h't' 't'a'h't' 'w'o'h's' 'd'n'a' ','n'o'i't'o'n' 's'i'h't' 'e'z'i'l'a'm'r'o'f' 'w'o'n' 'e'W'D'R'C' 'a' 'f'o' 't'n'e'm'e'r'i'u'q'e'r' 'y'e'k' 'a' '-'-' ''''''''''''i'h'T' '.'e't'a't's' 'e'm'a's' 'e'h't' 's'd'r'a'w'o't' 'e'g'r'e'v'n'o'c' 'y'l'l'a'c'i't'a'm'o't'u'a' 's'a'c'i'l'p'e'r' 'l'l'a' 't'a'h't' 'e'r'i'u'q'e'r' 'e'w' ','}'n'o'i't'a'c'i'l'p'e'r'-'o'r't'n'i':'c'e's'{'f'e'r''~'n'o'i't'c'e'S' 'n'i' 'd'e'n'i'l't'u'o' 's'A''u'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'}'e'c'n'e'g'r'e'v'n'o'c':'c'e's'{'l'e'b'a'l''}'e'c'n'e'g'r'e'v'n'o'C'{'n'o'i't'c'e's'b'u's''n''''''''''''''r''''t'i't'r'a'p'h't'a'm'''''''''''''e's'l'a'f'''''''''''''e'u'r't''''''''''''''''''''''''''''c'i't'n'a'm'e's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e's'l'a'f't'f'a'r'd'f'o'o'r'p''n't'f'a'r'd'f'o'o'r'p'f'i''f'i'w'e'n'''n'n'''''''''''''''''''''''''' 'r'o'f' 'n'o'i't'a't'o'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'O'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'}'s'd'r'o'w'y'e'k'E'E'E'I'{'d'n'e''n'.'y'c'n'e't's'i's'n'o'C' 'l'a'u't'n'e'v'E' ','s'c'i't'n'a'm'e'S' ','n'o'i't'a'c'i'l'p'e'R' 'c'i't's'i'm'i't'p'O' ','N'O'S'J' ','P'2'P' ','g'n'i't'i'd'E' 'e'v'i't'a'r'o'b'a'l'l'o'C' ','s'T'D'R'C'n'}'s'd'r'o'w'y'e'k'E'E'E'I'{'n'i'g'e'b''n'n'''''}'t'c'a'r't's'b'a'{'d'n'e''D'O'T'n'}'t'c'a'r't's'b'a'{'n'i'g'e'b''n'%'{'t'x'e't'x'e'd'n'i't'c'a'r't's'b'a'e'l't'i't'E'E'E'I''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''''''''''''''''''''''{'g'n'i'd'a'e'h'n'o'i''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'a'r'e' 't'i'd'n'a'l'b' 'l'e'v' ','s'u'r'u'p' 'm'u'd'n'e'b'i'b' 'd'e's' 'c'e'n'o'D' '.'t'n'u'd'i'c'n'i't' 's'i't't'a'm' 'r'o't'r'o't' 's'u's'r'u'c' 'o'e'l' 's'i't't'a'm' 'e's's'i'd'n'e'p's'u'S' '.'t'i'l'e' 'g'n'i'c's'i'p'i'd'a' 'r'u't'e't'c'e's'n'o'c' ','t'e'm'a' 't'i's' 'r'o'l'o'd' 'm'u's'p'i' 'm'e'r'o'L' '.')'O'D'O'T'(' 'o'g' 'd'l'u'o'h's' 'n'o'i't'c'u'd'o'r't'n'i' 'e'h't' 'e'r'e'h'w' 's'i' '}'s'i'h't'{'}'T'{'t'r'a't's'R'A'P'E'E'E'I''n''}'n'o'i't'c'u'd'o'r't'n'i':'c'e's'{'l'e'b'a'l''t'c'e's'e's'i'a'r'E'E'E'I'''n'e'm'n'o'r'i'v'n'e' 'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'm' 't'a'n'g'i'l'a' 'n'a' 'n'i'h't'i'w' 's'n'm'u'l'o'c' 'e'l'p'i't'l'u'm' 'n'a'p'S' '%'n'''''''''''''s'e'l'u'r' 'e'c'n'e'r'e'f'n'i' '%' '}'r'i't'r'a'p'h't'a'm'''''''a'p'{'e'g'a'k'c'a'p'e's'u''n'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'n'%'}'$'2'#'}''''''''''''''''''''''''''''' 'o'w't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'a'c'i't'a'm'o't'u'a''''''''''''''''m'o't'u'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'a'c'i'l'p'p'a' 'o'N' 'm'e't'i''n''''''''''''''''''''''''t'n'e'm'u''''''''''''''''''''''y'n'a' 'd'n'a' ','y'l'i'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'h'c'a'o'r'p'p'a' 'l'u'f'e'r'a'c' 'e'r'o'm' 'a' 's'e'r'i'u'q'e'r' 't'u'p'n'i' 'r'e's'u' 'e'v'r'e's'e'r'p' 'o't' 't'n'e'm'e'r'i'u'q'e'r' 'e'h't' ','r'e'v'e'w'o'H' '.'d'e'd'r'a'c's'i'd' 'e'r'a' ''''''a'''''r'''''t'i'b'r'a' 'c'o'd' 'a' 'f'o' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' ','s''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''s'n'i'w' 'r'e't'i'r'w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'f'o' 't'e's' 'a' 'm'o'r'f' 'n'e's'o'h'c' 's'i' 'n'o'i's'r'e'v'''''''''''''''''''''' 'e't'a'd'p'u' 'e'n'o' 'h'c'i'h'w' 'n'i' ','t'n'e'i'c'i'f'f'u's' 's'i'' 't's'a'l'`'`'''''''''''''''''''''''''''' 'y'c'i'l'o'p' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'e'l'p'm'i's' 'a' ','d'e't't'i'm'o' 's'i' 'e'l'p'i'c'n'i'r'p' 'd'n'o'c'e's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'r'a'p'r'e't'n'u'o'c'''''''''''''''''''''''.'n'o'i's'r'e'v' 'd'e't'a'c'i'l'p'e'r'-'n'o'n' ','r'a'i'l'i'm'a'f' 's'''''''''''''''''''''''''''''' '''''''c' 'd'r'i'h't' 'e'h't' 'f'I'n''n'n'}'e't'a'r'e'm'u'n'e'{'d'n'e'''t'i' 'e'k'i'l' 'e'v'a'h'e'b' 'd'l'u'o'h's' 'e'r'u't'c'u'r't's' 'a't'a'd' 'e'h't' ','s'n'o'i't'a'c'i'f'i'd'o'm' 't'n''''''''''y'c'n'e'r'r'u'c'n'o'c' 'f'o' 'e'c'n'e's'b'a' 'e'h't' 'n'I''''U''''''''''n'I'W' 'm'e't'i''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'o't' 'e'u'd' 't's'o'l' 'e'b' 'd'l'u'o'h's' 't'u'p'n'i' 'r'e's'u''3''' 'o'N' 'm'e't'i''n'.'e't'a't''''a's' 'e'm'a's' 'e'h't' 's'd'r'a'w'o't' 'e'g'r'e'v'n'o'c' 'd'l'u'o'h's' 'e'r'u't'c'u'r't's' 'a't'a'd' 'e'h't' 'f'o' 's'a'c'i'l'p'e'r' 'l'l'A' 'm'e't'i''n'}'e't'a'r'e'm'u'n'e'{'n'i'g'e'b''n'''' ':'s'e'l'p'i'c'n'i'r'p' 'e'l'p'm'i''''''''''''''t'p'8''''''''''m'''e'''''1''''''''''''''''''''''''t'''''p'''''5'='p'e'''s' '''''''''''''''''r'e'n'n'i','''''''''''''n'i' ',''''''t'f'e'l'''''''''''''''''''''''''s' 'o'w''''t'p'8'''t''''''' 'n'''''''''''''''''''''''''''''''''''''''''''''o' 'd'e's'a'b''''''''''''''m'e'1''''''''''t'p'5'='p'e's' 'r'e'n'n'i','' 's'i' 'n'g'i's'e'd' 'r'u'O''n'n'{'e'l'y't's'y''''''t'h'g'i'r'''''''''''''''''''''''''a'l'p's'i'd''$'{'x'o'b'm''}'1'#'{'n'a'p's'i't'l'u'm'' ' 'n'%'{']'2'['}'n'g'i'l'a'i't'l'u'm''{'d'n'a'm'm'o'c'w'e'n''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 'n'I'''''''''''''''''''''''''''''''''''''''''''''e'u'l'a'v' 'h't'i'w' 'r'e't's'i'g'e'r' 'a' '''''''''''''''''''''''''''''''''''''''''''''''''''r'e't's'i'g'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'r'e'w' 't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'a'u'n'a'm''''''''''''''''''''''''.'t'c'i'l'f'n'o'c' 'e'h't' 'g'n'i'v'l'o's'e'r' 'h't'i'w' 's'r'e's'u' 't's'i's's'a' 'o't' ''')'e'm'i't' 't'a'h'w' 't'a' 'e'c'i'v'e'd' 'h'c'i'h'w' 'n'o' ','e'g'n'a'h'c' 'e'h't' 'e'd'a'm' 'o'h'w'(' 'e'u'l'a'v' 'h'c'a'e' 'f'o' 'e'c'n'a'n'e'v'o'r'p' 'e'h't' 't'u'o'b'a' 'a't'a'd'a't'e'm' 'p'e'e'k' 'y'a'm' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'n'A' ''s'e'u'l'a'v' 'e'l'p'i't'l'u'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''4''''5'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'{' ':'''s'r'o'l'o'c'''3''''''''''5'.'2''''''''''''''''''''''''''''''''''5'.'1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '4''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'x'' 'i'r'''t'a'm'' '''''' ' 'x'' ' '''''''''''''''''''''''''''''''''''''|','''f'f'0'0'0'0'''''''''''''''''''''''''|'}'}''''''''''''' ''''''''8''''''''''''''''x''''''''''''''''''''''8'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'x'i'r't'a'm'[' ''''8''''''''''''''{' 'e'd'o'n'' ' ' ''''''''}''{'' '=' ''' '''''n''''''''''''''''''''''''''''' '''2'1''' '''''t'p'8'='p'e's' 'r'e'n'n'i',''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'2't'f'e'l'''''''''''''f'e'l'A'(' '''''''''''n'e't't'i'r'w'r'e'v'o''''''o'''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''0'.'6'''''''''''''''''''''''''''''''''''''''''''5'.'4''' ''''''''''''''''''y'u'b''''''''''''''''''''''''5'.'4''''''''''''''''''''''y'u'b''''''''''''''''''''''''0'.'3''''''''''''''''''''''y'u'b''''''''''''''''''''''''''''''5'.'''''''''''''''''''y'u'b'''''''''m'a'h''''''''''''''''''''''0'.'3'''''''''''''''''''''''(''''''k'l''''''''''''''''''''''''5'.''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''0'.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''0'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''' ''''''''''''''''x'8'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''8'''''''''x''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'4'''''''4'3't'f'e'l'(' 'o't' ')''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i'p'p'o'h's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'd'r'o' 'e'm'a's' 'e'h't' 'h't'i'w' 'p'u' 'd'n'e'''''''''''''v'n'o'c' 's'a'c'i'l'p'e'r' 'l'l'a' 't'a'h't' 'd'e'd'i'v'o'r'p' ','''''m'a'h' ','s'g'g'e' ','r'u'o'l'f' ','k'l'i'm'`'`' 'd'n'a' '''''r'u'o'l'f' ','k'l'i'm' ','m'a'''''''a'j'h' ','s'g'g'e'`'`' 'n'e'e'w't'e'b' 'e'c'i'o'h'c'''''''o'n' 'y'r'a'r't'i'b'r'a' 'n'a' 'e'k'a'm' 'n'a'c' 'm'h't'i'r'o'g'l'a' '''''''''' 'e'r'e'h't' 'o's' ','t'l'u's'e'r' 'd'e'g'r'e'm' 'e'h't' 'n'i' 't's'r'i'f' 'r'a'e'p'p'a' 'd'l'u'o'h's' 's'm'e't'i' 's'''a'c'i'l'p'e'r' 'h'c'i'h''''i'''''''''''''''''''''' 'r'e'h't'e'h'w' 'n'o' 'n'o'i't'a'm'r'o'f'n'i' 'o'n' 's'i' 'e'r'e'h'T''''''''''''''''''''''''' 'r'e'h't'e'h'W' '.'t'l'u's'e'r' 'd'e'g'r'e'm' 'e'h't' 'n'i' '''''k'l'i'm'`'`' 'r'e't'f'a' 's'r'a'e'p'p'a' ''''''''`'r'u'o'l'f'`'`' 'd'n'a' ','''''s'g'g'e'`'`' 'r'e't'f'a' 's'r'a'e'p'p'a' '''''''' 'm'a'h'`'`' 'o's' ','a'c'i'l'p'e'r' 'h'c'a'e' 't'a' 'd'e't'r'e's'n'i' 's'm'e't'i' 'f'o' 'y'c'n'e'c'a'j'd'a' 'd'n'a''''''''''''''''''''''a'j'd'a' 'f'o' 'g'n'i'r'e'd'r'o' 'e'h't' 'e'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''L'M'X''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'''''}'a'v'5'1'0'2':'g'n'a'W','y'j'3'0'0'2':'t'a'n'g'I','v'i'2'0'0'2':'s'i'v'a'D'{'e't'i'c''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e't's'e'n' 'y'l'i'r'a'r't'i'b'r'a' 'e'b' 'n'a'c' 't'a'h't' ''''''''''''' 'n'I''''','L'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''L'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'p'a'm''''''''''''''''''r'e'h'''''''''''''''''''''''''''''''''''''''''''''''''''''t''' ':'N'O'S'J' '''n'''''a'''''h'''''t''''' '''''e'''''v'''''i'''''s'''''s'''''e'''''r'''''p'''''x'''''e''''' '''''s'''''s'''''e'''''l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'i'l' 'd'e'g'r'e'm' 'e'n'o' 'n'a'h't' 'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'t'o'-'d'e't'a'l'e'r':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 's'm'h't'i'r'o'g'l'a' 'g'n'i't's'i'x'e'''''''''''''''''''''''''''''''''''''''' 'k'r'o'w' 'd'e't'a'l'e'r' 's's'u'c's'i'd' 'e'W'n'n''''''''''''''''g'n'i't'e'r'p'r'e't'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'k'i'l' 'm'e'h't' 'g'n'i'g'r'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''I'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'm''''s'h't'i'r'o'g'l'a' 'g'n'i't's'i'x'e' ','d'e't'a'e'r'c' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'r'a' 'y'e'k' 'e'm'a's' 'e'h't' 'h't'i'w' 'n'e'r'd'l'i'h'c' 'e'l'p'i't'l'u'm''''''''.'L'M'X' 'r'o'f' 's'm'h't'i'r'o'g'l'a' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'g'n'i't's'i'x'e' 'y'b' ''''''''e'n''''''''''''''''''''''''''''''''''o'n' 'e'l'p'i't'l'u'm' 'f'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m' 'n'a'h't' 'r'e'h't'a'r' 'y'e'k' 'e'm'a's' 'e'h't' 'h't'i'w' 'n'e'r'd'l'i'h'w' 'e't'a'c'i'l'p'u'd' 'e't'a'e'r'c' 'd'l'u'o'w' 'L'M'X' 'r'o'f' 's'm'h't'i'r'o'g'l'a' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'g'n'i't's'i'x'e'''''''''''''o'c' 'a' ':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'o't'i'd'e' 'L'M'X' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'a' 'y'b' 'd'e'c'r'o'f'n'e' 'e'b' 't'o'n' 'd'l'u'o'w' 'd'n'a' 'f'l'e's't'i' 'L'M'X' 'f'o' 't'r'a'p' 't'o'n' 'e'r'a' 's'c'i't'n'a'm'e's' 'e's'e'h't' ','r'e'v'e'w'o'H' '.'y'e'k' 's'a''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''' 'd'l'i'h'c'''''''''''''''''''''''''''''e't'u'b'i'r't't'a' 'n'a' 'r'o' 'e'm'a'n' 't'n'e'm'e'l'e' 'e'h't' 'g'n'i's'u' 'y'b' 'e'l'p'm'a'x'e' 'r'o'f' ',''e'h't'a'r' 's't's'i'l' 'e't'a'r'a'p'e's' 'o'w't' 'n'i' 't'l'u's'e'r' 'd'l'u'o'w' 't'i' 's'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'm'u'c'o'd' 'L'M'X' 'n'a' 'f'o' 'n'e'r'd'l'i'h'c' 'e'h't' 'o't' 's'c'i't'n'a'm'e's' 'e'k'i'l'-'p'a'm' 'h'c'a't't'a' 'y'a'm' 's'n'o'i't'a'c'i'l'p'p'a' 'e'm'o''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''i'r't's'e'r' 'e'r'o'm' 's'i' 'L'M'X' ','d'r'a'g'e'r' 's'i'h't' 'n'I' ''''''''''''''''''' 's'i'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o's'a'e'r' 's'i'h't' 'r'o'f' 'L'M'X' 'n'i' 'r'u'c'c'o' 't'o'n'n'a'c' '}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'l'p'm'a'x'e' 'e'h'T' 't'o' '' 'r'o' '''''''''''''''''S'n'n'.'s'p'a'm' 'n'i'h't'i'w' 's't's'i'l' 't'o'n' 't'u'b' ','s't's'i'l' 'n'i'h't'i'w' 's'p'a'm'''''' 's't'r'o'p'p'u's' 'l'M'X' ','s'u'h'T' '.'e'p'y't'a't'a'd' 'e'v'i't'i'm'i'r'p' 'a' 'e'b' 'y'l'n'o' 'n'a'c' 'e't'u'b'i'r't't'a' 'n'a' 'f'o' 'e'u'l'a'v' 'e'h't' '-'-' 's'e't'u'b'i'r't't'a' 'e'd'i's'n'i' 's't'n'e'm'e'l'e'''''''h'c' 'd'e't's'e'n' 'w'o'l'l'a' 't'o'n' 's'e'o'd' 'L'M'X'''''''''''''''''''L'M'X' 'n'i' ','r'e'v'e'w'o'H' '.'s'r'i'a'p' 'e'u'l'a'v'-'y'e'k' 'd'e'r'e'd'r'o'n'u' 'e'r'a' 't'n'e'm'e'l'e' 'n'a' 'f'o' 's'e't'u'b'i'r't't'a' 'e'h't' 'e'l'i'h'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''b'b'b'b'b'b'''''''''''''''''e'c'n'e'u'q'e's' 'd'e'r'e'd'r'o' 'n'a' 'm'r'o'f''''''''''''''''a' 'e'r'a' 't'n'e'm'e'l'e' 'n'a' 'f'o' 'n'e'r'd'l'i'h'c' 'e'h't' ':'d'r'a'g'e'r' 's'i'h't' 'n'i' 'd'e't'c'i'r't's'e'r' 'e'r'o'm' 's'i' 'L'M'X''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'s'e'c'n'e'u'q'e's' 'd'e'r'e'd'r'o' 'r'o'f' 's't's'i'l' 'd'n'a' ','s'r'i'a'p' 'e'u'l'a'v'-'y'e'k' 'd'e'r'e'd'r'o'n'u' 'r'o'f' 's'p'a'm' ':'s't'c'u'r't's'n'o'c' 'n'o'i't'c'e'l'l'o'c' 'o'w't' 's'a'h' 'N'O'S'J'n'n'.'t'h'g'i'l'h'g'i'h' 'd'l'u'o'h's' 'e'w' 't'a'h't' 'e'c'n'e'r'e'f'f'i'd' 't'n'a't'r'o'p'm'i' 'n'a' 's'i' 'e'r'e'h't' ','r'e'v'e'w'o'H' '.'r'a'l'i'm'i's' 'e't'i'u'q' 's'r'a'e'p'p'a' 'N'O'S'J' 'd'n'a' 'L'M'X' 'f'o' ' ','s'e'c'n'e'r'e'f'f'i'd' 'l'a'c'i't'c''''t'a't'n'y's' 'l'a'i'c'i'f'r'e'p'u's' 'e'h't' 's'e'd'i's'e'B''''''''''''''''''''''''''''e'r'u't'c'u'r't's' 'e'e'r't' 'e'h't' 'h'g'u'o'h't'l'A''''''''y'l's'u'o'i'v'e'r'p'''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''0''''.')'3'0'2' ','e'i'r'r'o'N' 'd'n'a' 't'a'n'g'I'(' ''''''' '.'d'e'i'd'u't's' 'y'l'e'v'i's'n'e't'x'e' 'n'e'e'b' 's'a'h' 's't'n'e'm'u'c'o'd' 'L'M'X' 'f'o' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'd'n'a' ','L'M'X' 's'i' 'N'O'S'J' 'o't' 'e'v'i't'a'n'r'e't'l'a' 'n'o'm'm'o'c' 't's'o'm' 'e'h'T'n'n'}'s'l'e'd'o'm' 'r'e'h't'o' 's'u's'r'e'v' 'N'O'S'J'{'n'o'i't'c'e's'b'u's''n'''''''''''''''''''''''''''''''''''''n'}'I'P'A' 'g'n'i't'i'd'e' 't'n'e'm'u'c'o'D'{'n'o'i't'c'e's'b'u's''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e's'u' 'd'n'a' 's'r'e'p'o'l'e'v'e'd' 'n'o'i't'a'c'i'l'p'p'a' 'f'o' 's'n'o'i't'a't'c'e'p'x'e' 'e'h't' 's'e'h'c't'a'm' 'r'o'i'v'a'h'e'b' 's'i'h't' 'e'e'r'g'e'd' 't'a'h'w' 'o't' 'e'n'i'm'r'e't'e'd' 'o't' 'd'e'r'i'u'q'e'r' 'e'b' 'l'l'i'w' 'y'd'u't's' 'r'e'h't'r'u'F' '.'}'m'e't'i'-'o'd'o't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'w'o'h's'''''''''' 'n'i' 'r'o'i'v'a'h'e'b' 'e'h't' 's't'i'b'i'h'x'e' 't'i' 'o's' 'd'n'a' ','t'u'p'n'i' 'r'e's'u''''o' 'l'l'a' 's'e'v'r'e's'e'r'p' 'r'e'p'a'p' 's'i'h't' 'n'i' 'm'h't'i'r'o'g'l'a' 'e'h'T''''S'n'n'.'d'l'e'i'f' '''''e'n'o'd'`'`' 'a' 'd'n'a' '''''e'l't'i't'`'`' 'a' 'h't'o'b' 's'a'h' 'm'e't'i' 'o'd'-'o't' 'a' 't'a'h't' 'a'm'e'h'c's' 't'i'c'i'l'p'm'i' 'e'h't' 'e'v'r'e's'e'r'p' 's'u'h't' 'd'n'a' ','s'e't'a'd'p'u' 't'n'e'r'r'u'c'n'o'c' 'e'h't' 'f'o' 'e'n'o' 'd'r'a'c's'i'd' 'o't' 'e'l'b'a'r'i's'e'd' 'e'r'o'm' 'e'b' 'y'a'm' 't'i' 'e'l'p'm'a'x'e' 's'i'h't' 'n'I' '.'s'r'e's'u' 'o't' 'g'n'i's'i'r'p'r'u's' 's'p'a'h'r'e'p' 's'i' 't'i' 't'u'b' ','}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''''l''~'e'r'u'g'i'F' 'n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'p'm'a'x'e' 'e'h't' 'h't'i'w' 't'n'e't's'i's'n'o'c' 's'i' 'r'o'i'v'a'h'e'b' 's'i'h'T' '.')'m'e't'i' 't's'i'l' 'e'h't' 'g'n'i't'e'l'e'd' 'f'o' 't'r'a'p' 's'a' 'd'e't'e'l'e'd' 's'a'w' 'e'l't'i't' 'e'h't' 'e'c'n'i's'(' 'e'l't'i't' 'a' 't'u'o'h't'i'w' 'm'e't'i' ''''-'o'd'-'o't' 'a' 'o't' 'g'n'i'd'a'e'l' ',''''''' '.'a'c'i'l'p'e'r' 't'f'e'l' 'e'h't' 'n'o' 'd'e't'c'e'r'r'u's'e'r' 'e'b' 'o't' 'm'e't'i' 't's'i'l' 'e'h't' 's'e's'u'a'c' 'y'l'e'v'i't'c'e'f'f'e' '''''e'n'o'd'`'`' 'y'e'k' 'p'a'm' 'e'h't' 'f'o' 'e't'a'd'p'u' 'e'h't' ','d'e'g'r'e'm' 'e'r'a' 's'e'g'n'a'h'c' 'e'h't' 's'A' '.'e'n'o'd' 's'a' 'm'e't'i' 'e'm'a's' 'e'h't' 's'k'r'a'm' 'y'l't'n'e'r'r'u'c'n'o'c' 'a'c'i'l'p'e'r' 'r'e'h't'o'n'a' 'e'l'i'h'w' ','t's'i'l' 'e'h't' 'm'o'r'f' 'm'e't'i' 'o'd'-'o't' 'a' 's'e'v'o'm'e'r' 'a'c'i'l'p'e'r' 'e'n'o' ','n'o'i't'a'c'i'l'p'p'a' 't's'i'l' 'o'd'-'o't' 'a''''''''''''' 'o't''''''''''''' 'o'T' 'a' 'n'I' '.'t'u'p'n'i' 'r'e's'u' 'l'l'a' 'g'n'i'v'r'e's'e'r'p' 'f'o' 'e'l'p'i'c'n'i'r'p' 'e'h't' 'f'o' 'n'o'i't'a't'i'm'i'l' 'a' 's'w'o'h's' '}'m'e't'i'-'o'd'o't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'l'p'm'a'x'e' 'l'a'n'i'f' 'r'u'O'n'n''r'e's'e'r'p' 'e'W' '.'o's'l'a' '''' 'd'e'g'r'e'm' 'e'b' 'o't' 'd'e'e'n' 's't's'i'l' 'e'h't' ','d'e'g'r'e'm' 'e'r'a' 's'a'c'i'l'p'e'r' 'e'h't' 'n'e'h'W' '.'t's'i'l' 'e'h't' 'o't' 's'm'e't'i' 'g'n'i'd'd'a' 'd'n'a' ','''''y'u'b'`'`' 'y'e'k'''''''''''''' 'd'e'r'e'd'r'o''''''''''''''''''''''''' 'p'a'm' 'e'm'a's' 'e'h't' 'r'e'd'n'u' 't's'i'l' 'w'e'n' 'a' 'g'n'i't'a'e'r'c' 'y'l't'n'e'r'r'u'c'n'o'c' 's'a'c'i'l'p'e'r' 'o'w't' 's'w'o'h's' '}'s't's'i'l'-'o'w't':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'l'p'm'a'x'e' 'e'h'T'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''0'.'3''''4'''''''''''''''''''''' '''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''5'.'1'''''''''''''''''''''''''''''''''''''''''''''''''''''5'.'1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''0'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''0'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'2't'f'e'l'(' 'o't' ')'1't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'h'g'i'r'(' 'o't' ' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'h'g'i'r'(' '}';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'1't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'f'e'l'(''''[' '}';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'1''''2't'h'g'i'r'(' '}';'e'u'r't' '=':' ']'''''e'n'o'd'`'`'['t'x'e'n'.'r'e't'i'.'''']']'''''o'd'o't'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'p'2'1'='p'e's'x' 'r'e'n'n'i','t'h'g'i'r'[' 'e'd'o'n' 'o't' ' ')'t'r'a't's'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'1't'f'e'l'(' '}';'e't'e'l'e'd'.'t'x'e'n'.'r'e't'i'.']'''''o'd'o't'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'p'2'1'='p'e's'x' 'r'e'n'n'i' ','t'f'e'l'[' 'e'd'o'n' 'o't' ' ')'t'r'a't's'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n'''''''''''''''''''''''''''''''''''';'}'|'}']'}'e'u'r't' ':'''e'n'o'd'''{''''''[' ':'''o'd'o't'''{'|'b'r'e'v''{' ')'0','8'(' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n';'}'|'}']'}'e'u'r't' ':'''e'n'o'd'''{'[' ':'''o'd'o't'''{'''''''''['|'b'r'e'v''{' ')'0','0'(' 't'a' ' ')'2't'f'e'l'(' 'e'd'o'n''n';'}'|'}']'}'e'u'r't' ':'''e'n'o'd''' ','''k'l'i'm' 'y'u'b''' ':'''e'l't'i't'''{'[' ':'''o'd'o't'''{'|'b'r'e'v''{' ')'2','8'(' 't'a' ')'1't'h'g'i'r'(' 'e'd'o'n''n';'}'|'}']'[' ':'''o'd'o't'''{'|'b'r'e'v''{' ')'2','0'(' 't'a' ' ')'1't'f'e'l'(' 'e'd'o'n''n'''''''}']'}'e's'l'a'f' ':'''''':'e'n'o'd''' ','''k'l'i'm' 'y'u'b''':'''e'l't'i''''''''''t'x'e't'''{'[':'''o'd'o't'''{'''';'}'|'|'b'r'e'v''{' ')'5','4'(' 't'a' ' ')'t'r'a't's'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'m'e't'i'-'o'd'o't':'g'i'f'{'l'e'b'a'l''}'s't'n'e't'n'o'c' 's't'i' 's'e't'a'd'p'u' 'y'l't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o'n'a' 'e'l'i'h'w' ','t'n'e'm'e'l'e' 't's'i'l' 'a' 's'e'v'o'm'e'r' 'a'c'i'l'p'e'r' 'e'n'O'{'n'o'i''''u't'p'a'c''n'}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n']'o't'u'a'['}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'''''''''''''''}'''']'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n'' '3't'h'g'i'r'(' ']'''' '>'-','k'c'i'h't'[' 'w'a'r'd''n';')'4''''5't'h'g'i'r'(' '''o'''''t''''' ''''')'''''3''''''''''''''''''''''}'f'o'o'r'p':'c'e's'{'l'e'b'a'l''t'''f''''''''''['x'i'd'n'e'p'p'a'''e'''''l'''''(''''' ''']'>'-','k'c'i'h't'['']''' 'w'a'r'd''n';')'4't'h'g'i'r'(' '}';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'3't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'4''''5't'f'e'l'(' '}'''']';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ')'3't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'h'g'i'r'(' '}';')'''''r'u'o'l'f'`'`'('t'r'e's'n'i'.'k'l'i'm' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'2't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'f'e'l'(' '}';')'''''m'a'h'`'`'('t'r'e's'n'i'.'s'g'g'e' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ')'2't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'h'g'i'r'(' '}';')'''''k'l'i'm'`'`'('t'r'e's'n'i'.'r'e't'i'.']'''''y'u'b'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'1't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'f'e'l'(' '}';')'''''s'g'g'e'`'`'('t'r'e's'n'i'.'r'e't'i'.']'''''y'u'b'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'f'e'l'[' 'e'd'o'n' 'o't' ')'1't'f'e'l'(' ']'''' '>'-','k'c'i'h't'[' 'w'a'r'd''n''''''''''''''''''';')'1't'h'g'i'r'(' '}';']'[' '=':' ']'''''y'u'b'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'p'2'1'='p'e's' 'r'e'n'n'i'''' ','t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'t'r'a't's'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'1't'f'e'l'(' '}';']'[' '=':' ']'''''y'u'b'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'p'2'1'='p'e's' 'r'e'n'n'i','t'f'e'l'[' 'e'd'o'n' 'o't' ')'t'r'a't's'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';'}'|'}']'''r'u'o'l'f''','''k'l'i'm''','''m'a'h''','''s'g'g'e'''[':'''y'u'b'''{'|'b'r'e'v''{' ')'0','8'(' 't'a' ')'4't'h'g'i'r'(' 'e'd'o'n''n';'}'|'}']'''r'u'o'l'f''','''k'l'i'm''','''m'a'h''','''s'g'g'e'''[':'''y'u'b'''{'|'b'r'e'v''{'''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'd'o'n'' ' ' ' 'n'{' ')'0','0'(' 't'a' ')'4't'f'e'l'(' ']'x'i''''x'r't'a'm'[' 'e'd'o'n''n';'}'|'}']'''r'u'o'l'f''','''k'l'i'm'''[':'''y'u'b'''{'|'b'r'e'v''{' ')'1','8'(' 't'a' ')'3't'h'g'i'r'(' 'e'd'o'n''n';'}'|''i'm'''''''''''''''''''''''''''''''}']'''m'a'h'''[':'''y'u'b'''{'|'b'r'e'v''{' ''')'2','8' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'|'}']'''k'l'i'm''','''s'g'g'e'''[':'''d'o'o'f'''{'|'b'r'e'v''{' ')'1','0'(' 't'a' ' ')'3't'f'e'l'(' 'e'd'o'n''n';'}'|'}']'''s'g'g'e'''[':'''d'o'o'f'''{'|'b'r'e'v''{' ')'2','0'(' 't'a' ' ')'2't'f'e'l'(' 'e'd'o'n''n';'}'|'}']'[''''p':'''d'o'o'f'''{'|'b'r'e'v''{' ')'3','8'(' 't'a' ''''')'1't'h'g'i'r'(' 'e'd'o'n''n';'}'|''''''}']'[':'''d'o'o'f'''{'|'b'r'e'v''{' ')'3','0'(' 't'a' ')'1't'f'e'l'(' 'e'd'o'n''n';'}'|'}'{'|'b'r'e'v''{' ')'4','4'(' 't'a' ')'t'r'a't's'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'s't's'i'l'-'o'w't':'g'i'f'{'l'e'b'a'l''}'y'e'k' 'p'a'm' 'e'm'a's' 'e'h't' 'r'e'd'n'u' 's't's'i'l' 'd'e'r'e'd'r'o'''''''''' 'n'a' 'e't'a'e'r'c' 'y'l't'n'e'r'r'u'c'n'o'c' 's'a'c'i'l'p'e'r' 'o'w'T'{'n'o'i't'p'a'c''n'}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n']'o't'u'a'['}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b'''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'v'i'a'n' 'A'n'n'.'d'e'd'd'a' 'y'l't'i'c'i'l'p'x'e' 'e'r'e'w' 'y'e'h't' 'e'c'n'i's' ','t'n'e's'e'r'p' 'e'b' 't's'u'm' '''''n'e'e'r'g'`'`' 'd'n'a' '''''''''''`'`'d'e'r'`'`' 'e'l'i'h'w' ','p'a'm' 'e'h't' 't'u'o' 'g'n'i'k'n'a'l'b' 'y'b' 'd'e'v'o'm'e'r' 's'a'w' 't'i' 'e'c'n'i's' ','p'a'm' 'l'a'n'i'f' 'e'h't' 'm'o'r'f' 't'n'e's'b'a' 'e'b' 't's'u'm' '''''e'u'l'b'`'`' ':'d'e'v'r'e's'e'r'p' 'e'b' 't's'u'm' 's'e'g'n'a'h'c' 'l'l'a' ','s't'i'd'e' 'r'i'e'h't' 'e'g'r'e'm' 's'a'c'i'l'p'e'r' 'e'h't' 's'A' '.'''''n'e'e'r'g'`'`' 's'd'd'a' 'n'e'h't' 'd'n'a' ','''' 's'r'o'l'o'c' 'f'o' 'p'a'm' 'e'r'i't'n'e' 'e'h't' 't'u'o' 's'k'n'a'l'b' 't's'r'i'f' 't'n'e'i'l'c' 'r'e'h't'o'n'a' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'l'i'h'w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'{'}'s'e'c'n'e'r'e'f'e'r'{'y'h'p'a'r'g'o'i'l'b'i'b''n'}'n'a'r't'E'E'E'I'{'e'l'y't's'y'h'p'a'r'g'o'i'l'b'i'b''n'n'.'y'n'a'p'm'o''''''''''''''''''''''''''''''''''''''''''''n'}'e'c'n'e'g'r'e'v'n'o'c' 'f'o' 'f'o'o'r'P'{'n'o'i't'c'e's''n's'e'c'i'd'n'e'p'p'a''C' 'g'n'i'e'o'B' 'e'h'T' 'm'o'r'f' 't'n'a'r'g' 'a' 'y'b' 'd'e't'r'o'p'p'u's' 's'a'w' 'h'c'r'a'e's'e'r' 's'i'h'T'n'n'}'s't'n'e'm'e'g'd'e'l'w'o'n'k'c'A'{'*'n'o'i't'c'e's''n'n'n'.'n'o'i's'u'l'c'n'o'c' 'O'D'O'T'n'n'}'n'o'i's'u'l'c'n'o'C'{'n'o'i't'c'e's''n'n'n' ','s'r'o'l'o'c' 'f'o' 'p'a'm' 'a' 'o't' '''''d'e'r'`'`' 's'd'd'a' 'a'c'i'l'p'e'r' 'e'n'o' ','e'r'e'H' '.'}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'e'v'i'g' 's'i' 'e'l'p'm'a'x'e' 'r'e'h't'o'n'A'n'n''' ''')'2't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'h'g'i'r'(' 'o't' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'3't'h'g'i'r'(' '}''''n'''']';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'2''''1't'h'g'i'r'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'2't'f'e'l'(' '}'''']';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'f'e'l'''''''f'e'[' 'e'd'o'n' 'o't' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'h'g'i'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'2't'h'g'i'r'(' '}';'''''0'0'f'f'0'0'#''''''`'`' '=':''''''' '=' ']'''''n'e'e'r'g'`'`'[''''.']'''''s'r'o'l'o'c'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'1't'f'e'l'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n';')'1't'h'g'i'r'(' '}';'e't'e'l'e'd'.']'''''s'r'o'l'o'c'`'`'['c'o'd' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'p'2'1'='p'e's' 'r'e'n'n'i','t'h'g'i'r'[' 'e'd'o'n' 'o't' ')'t'r'a't's'(' ']'>''''.'-','k'c'i'h't'[' 'w'a'r'd''n'd''n'e'''''''|'b'r'e'v''{''d'o'n''''' ''''' ''''''%'''''''''''''''''''''''''''''''''''''''%''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'f'e'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'m'e'1'{'e'c'a'p's'h'''''''''''''d'a'u'q''''''''''''''''''''''''''''''''''}'m'e'1'{'e'c'a'p's'h''''''''~'~''''';'''''0'0'0'0'f'f'#''`'`' '=':' ']'''''d'e'r'`'`'[''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'1't'f'e'l'(' '}']'''''s'r'o'l'o'c'`'`'['c'o'd'''''''''''''''''''''''''''''''''''''['}'c'o'd'{'t'x'e't''$' 'e'z'i's'e't'o'n't'o'o'f''{' ']'d'e'p'o'l's','e'v'o'b'a'[' 'e'd'o'n' 'o't' ')'t'r'a't's'(' ']'>'-','k'c'i'h't'[' 'w'a'r'd''n''''''''''''' ''''''''''''''''''''''''''''%''';'''n''}'n';'}'|'}'}'''0'0'f'f'0'0'#''' ':'''n'e'e'r'g'''|'b'r'e'v''{' 'e'd'o'n'' ' ' ' 'n';'}'|''''}','''0'0'0'0'f'f'#''' ':'''d'e'r'''{' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''{' 'e'd'o'n'' ' ' ' 'n'{' ')'0'''' ','8'(' 't'a' ')'3't'h'g'i'r'(' ']'x'i'r't'a'm'[' 'e'd'o'n''n';'}'n' ' ' 'n';'}'|'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'|'}'}'''0'0'f'f'0'0'#''' ':'''n'e'e'r'g''' ','''0'0'0'0'f'f'#''' ':'''d'e'r'''{' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''{' ')'0','0'(' 't'a' ')'2't'f'e'l'(' 'e'd'o'n''n'''''''''''''''''''''';'}'|'}'}'''0'0'f'f'0'0'#''' ':'''n'e'e'r'g'''{'''''''#''' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''{' ')'2','0'1'(' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n';'}'|'}'{'|'b'r'e'v''{' ')'3''''2','0'1'(' 't'a' ')'1't'h'g'i'r'(' 'e'd'o'n''n'0'0'0'0'f'f'#''' ':'''''':'d'e'r''''''{'|'b'r'e'v'''''#''' ':'''e'u'l'b''''''''''d'e'r'''{' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''''''';''''''''''''''''';''b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''n''''''''{' 'e'd'o'n''[' ''''''''''''''''''' ' ' '' 'n''''''''}'''''''''{'e'd'o'n'n''''''''''''''''''''}'''{'x'o'b'm''''''''''''''''''''' ''' '''''''''''''''''''''''',''''''''''|'''''''''''''''''''}'|'}'}''''''''0'0'0'0'f'f'#''' ':'''d'e'r'''{'b'r'e'v'' ''' ''''';'}'|'''f'f'0'0'0'0'#''' ':'''e'u'l'b'''{' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''{' ')'2','0'(' 't'a''' ' ')'1't'f'e'l'(' 'e'd'o'n''n';'}'|'}'}'''f'f'0'0'0'0'#''' ':'''e'u'l'b'''{' ':'''s'r'o'l'o'c'''{'|'b'r'e'v''{' ')'4','5'(' 't'a' ')'t'r'a't's'(' 'e'd'o'n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'v'o'm'e'r'-'p'a'm':'g'i'f'{'l'e'b'a'l''}'d'e'v'o'm'e'r' 's'i' 'p'a'm' 'e'r'i't'n'e' 'e'h't' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'l'i'h'w' 'p'a'm' 'd'e't's'e'n' 'a' 'f'o' 's't'n'e't'n'o'c' 'e'h't' 'g'n'i'y'f'i'd'o'M''''''''''''''''''''''''''''''''''''''''o'm' 't'n'e'r'r'u'c'n'o'C'{'n'o'i't'p'a'c''n'}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n']'o't'u'a'['}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b'''''''n'n'''''''''''''''''''''''''''''''''''''''''''''.'s'e'u'l'a'v' 'n'e't't'i'r'w' 'y'l't'n'e'r'r'u'c'n'o'c' 'f'o' 't'e's' 'a' 'n'r'u't'e'r' 'y'a'm' 'r'e't's'i'g'e'r' 'e'h't' 'g'n'i'd'a'e'r''''''''''''''''''''''''''''''''''''' 'e'v'a'h' 'y'a'm' 't'i' ','r'e't's'i'g'e'r' 'e'h't' 'o't' 'e'u'l'a'v' 'e'l'g'n'i's' ''''s'a' 'n'g'i's's'a' 'y'l'n'o' 'n'a'c' 'a'c'i'l'p'e'r' 'a' 'h'g'u'o'h't'l'a' ':'}'r'e't's'i'g'e'r' 'e'u'l'a'v'-'i't'l'u'm'{'h'p'm'e'' 'a' 's'a' 'n'w'o'n'k' 's'i' ''''s'e'p'y't'a't'a'd' 's'i'h'T' '.'s'e't'a'd'p'u' 't'n'e'r'r'u'c'n'o'c' 'h't'o'b' 'e'v'r'e's'e'r'p' 't's'u'm' 'm'e't's'y's' 'e'h't' ','d'e'g'r'e'm' 'e'b' 'y'l'l'u'f'g'n'i'n'a'e'm' 't'o'n'n'a'c' '''''C'`'`' 'd'n'a' '''''B'`'`' 's'g'n'i'r't's' 'e'h't' 'd'n'a' ','s't'i'd'e' 'e'h't' 'f'o' 'e'n'o' 'd'r'a'c's'i'd' 'y'l'p'm'i's' 'o't' 't'n'a'w' 't'o'n' 'o'd'''''''''''''''''''''''''''''''''''''''' 'e'h't' 't'u'o' 'e'l'u'r' 'e'w' 'e'c'n'i'S' '.'t'c'i'l'f'n'o'c' 'e'h't' 't'c'e't'e'd'''''''''''''''''''''''''' 'y'e'h't' ','s't'i'd'e' 'e'g'n'a'h'c'x'e' 'y'l't'n'e'u'q'e's'b'u's' 's'a'c'i'l'p'e'r' 'e'h't' 's'A' '.'''''C'`'`' 'o't' 't'i' 's't'e's' 'y'l't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o'n'a' 'e'l'i'h'w' ','''''B'`'`' 'o't' 'y'e'k' 'e'h't' 'f'o' 'e'u'l'a'v' 'e'h't' 's't'e's' 'a'c'i'l'p'e'r' 'e'n'o' ','''''A'`'`' 'o't' '''''y'e'k'`'`'''''''''''' 's'p'a'm' 't'a'h't' 't'n'e'm'u'c'o'd' 'A' '.'}'n'g'i's's'a'-'r'e't's'i'g'e'r':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'w'o'h's' 's'i' 'e'l'p'm'a'x'e' 't's'r'i'f' 'r'u'O'n'n'.'e's'i'r'a' 't'a'h't' 's'e'i't'e'l't'b'u's' 'e'h't' 'f'o' 'e'm'o's' 'e't'a'r't's'u'l'l'i' 'o't' 'r'e'd'r'o' 'n'i' ','''' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'a' 'n'i' 'r'u'c'c'o' 'y'a'm' 't'a'h't' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'f'o' 's'e'l'p'm'a'x'e' 'e'm'o's' 'e'n'i'm'a'x'e' 'l'l'i'w' 'e'w' 'n'o'i't'c'e's' 's'i'h't' 'n'I'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'''''''''''''''''''''''}'b'j'3'8'9'1':'r''''''':'R'J'r'e'k'r'a'P'{'e't'i'c''~'''''''''''''''''''''''''''''''}'x'f'2'1'0'2':'a'c'i'u'g'e'r'P'{'e't'i'c''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o' ','}'e'u'9'8'9'1':'s'i'l'l'E'{'e't'i'c''~'s'r'o't'c'e'v' 'e't'a't's' ',''''''n'''i'w'o'l'l'o'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s's'e'n't'c'e'r'r'o'c' 's't'i' 'e'v'o'r'p' 'd'n'a' 'e'p'y't'a't'a'd''''''''''''''''''''''''''''''' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'''''''a'e'r'o'b'a'l'l'o'c' 'r'u'o' 'f'o' 's'c'i't'n'a'm'e's' 'l'a'm'r'o'f' 'e'd'i'v'o'r'p' 'e'w' 'n'o'i't'c'e's' 't'x'e'n' 'e'h't' 'n'I' '''.'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'e'd'a'm' 'e'r'a' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'd'e't's'e'n' 'n'e'h'w' 'r'u'c'c'o' 't'a'h't' 'm'e'l'b'o'r'p' 'e'h't' 'f'o' 'e'm'o's' 'e't'a'r't's'n'o'm'e'd' 'd'n'a' ','e'l'p'm'a'x'e' 'y'b' 'h'c'a'o'r'p'p'a' 'r'u'o' 'e'n'i'l't'u'o' 'e'w' 'n'o'i't'c'e's' 's'i'h't' 'n'I''''''''''''''''''''''''''''''''''''''''s'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'o't''''d'u'a'['''''''4''''5''''''''''''' '''''''4'''''''''''''y'''e''5'.'''''''3'.''k'''1''''''''''''''''''''''''''''5'.''''''''';''''''''y'1''''''e'k''''''''''''''''''1''2'''''')'''t'a'''''''y'''e'k''''''''''''''''''''''''t'f'e'l'('''''''''y'''e'k'''''''''','k'c'i'h't''''h''''''''''c'i't'''''''''''2'''''''1'''''''''''''''''''''''''y'''e'''o't'''''''''''''''''''''''''''''''','k'c'i'h't''' 'e'z'i's'e't'o'n't'o'o'f''''d'e'p'o'l's','']'e'v'o'b'a'[' ''''''''k'''''''''''$''''t'x'e't''''''''''''''','k'c'i'h't'''''''''''''' 'e'z'i's'e't'o'n't'o'o'f'''''''''h'''t'a'''''','k'c'i'h't''''''''''''''''d'e'p'''''','k'c'i'h't''o'l's',''{'t'x''''''''''','k'c'i'h't'''''''''''''''''''''''''''''''''}';'d'l'e'i'y' 'e'z'i's'e't'o''o't''''''n't'o'o'f''{' ']'t'f'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}';'d'l'e'i'y' 'e'z'i's'e't'o'''''''''''''''''''''''''''''''''''''''}';'d'l'e'i'y' 'e'z'i's'e't'o'n't'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't'''n'''t'o'o'f''{' ']'t'h'g'i'r'[' 'e'd'o'n' 'o't''''''l'[' 'e'd'o'n' 'o't'''''''''''''']'e'v'o'b'a'[' 'e'}''''''''''{'t'x''}'e't''o't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}';'''''C'`'`'{'t'x'e't'' '=':' ']'}'''''y'e'k'`'`'{'t'x'e't''['}'c'o'd'{'t'x'e't''$'{' 'e'd'o'n' 'e'g'd'e'''''''t'''}''$'''m''''''''''''''''''''''''''''''''''''''''''''}'';'''''B'`'`' '=':' ']'''''y'e'k'`'`'['c'o'd'{'f's't'x'e't'''''''''''''''''''e'd'o'n' 'e'g'd'e' ''''''''''''''''''''}'x'{' 'e'g'd'e'''''''''''''''''''''''''''''''''''''''''''''''''e'd'o'n' '}'x'{' 'e'd'o'n' 'o't'''''''''''''''';'''''' 'w''o't''''''a'r'd'''''''']'>'-'['''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'}'|'}'}'''C''','''B'''{' ''1':'''e'l't'i't'''{'|'b'r'e'v'''1'{' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')'2't'h'g'i'r'(' '-'-' ')'1''''2't'h'g'i'r'(' ']'>'-'[' 'w'a'r'd''n';')'2't'f'e'l'(' '-'-' ')'1't'h'g'i'r'(' ']'>'-'[' 'w'a'r'd''n';')'2'''''''2'y't'h'g'i'r'(''''(' '-'-' ')'1't'f'e'l'(' ']'>'-''''p'[' 'w'a'r'd''n';')'2't'f'e'l'(' '-'-' ')'1't'f'e'l'''''(' ']'>'-'[' 'w'a'r'd''n')'0','4'(' 't'a' ')'2't'h'g'i'r'(' 'e'd'o'n''n';'}'|'}'}'''C''','''B'''{' ''''''''''{' ':':'''e'l't'i't'''{'|'b'r'e'v''{' ')'0'''')'''''''0' ','0'(' 't'a' ' ')'2't'f'e'l'(' 'e'd'o'n''n'''''''''''''''''''''';'}'|'}'''C''' ':'''e'l't'i't'''''''''''''''''''''''''''''''';')'t'h'g'i'r'(' '-'-' ')'t'r'a't's'(' ']'>'-'[' 'w'a'r'd''n'''{'|'b'r'e'v''{' ')'1','4'(' 't'a' ')'t'h'g'i'r'(' 'e'd'o'n''n''''''''''''''''''''''''''''''''''''''''''''''''';')'t'f'e'l' 'r'e't'n'e'(' '-'-' ')'t'r'a't's'(' ']'>'-'[' 'w'a'r'd''n'' 'e'd'o'n''''''''''')'2','2'(' 't'a' ')'t'r'a't's'(' '''''''''''''''''''''']'t'r'a't's'['e'd'o'n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i'r'e't'n'e'c''n'''''''''''2''''''''''''''''''''''''''''|''' ' 'n'''''' '1'''}'''A''' '''''''''''''''''''''|'}'''B'''''':' ':'''e'l't'i't'''{'|'b'r'e'v''''''':'''''''''e'l't'i't'''{'|'b'r'e'v'''''v'''''''''''''''''''''''''0'''' '''''''''''''''''''''''''''''''''''''''';'}'d'l'r'o'W'{' 'e'd'o'n' ')''''2' ','0'''(' '-'-' '}'o'l'l'e'H'{' 'e'd'o'n' ')'0','2'('w'a'r'd''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'n'g'i's's'a'-'r'e't's'i'g'e'r':'g'i'f'{''''['l'e'b'a'l''}'r'e't's'i'g'e'r' 'a' 'o't' 't'n'e'm'n'g'i's's'a' 't'n'e'r'r'u'c'n'o'C'{'n'o'i't'p'a'c''n'''' '}'e'r'u't'c'i'p'z'k'i't'{'d'n'e''n'}'e'r'u't'c'i'p'z'k'i't'{'n'i'g'e'b''n''''''''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n'}'s'e'l'p'm'a'x'e' 'g'n'i't'i'd'e' 't'n'e'r'r'u'c'n'o'C'{'n'o'i't'c'e's'b'u's''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'u't'c'u'r't's' 'a't'a'd' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'g'n'i's'o'p'm'o'C''''T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'p'y't'a't'a'D' 'N'O'S'J' 'd'e't'a'c'i'l'p'e'R' 'e'e'r'F'-'t'c'i'l'f'n'o'C'''''''''''''='m'o'c' 'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''%''''''''e'''''l'''''u'''''r''''' '''''e'''''c'''''n'''''e'''''r'''''c''''''''e'''''f'''''n'''''i''''' '''n'''''''''''''''''''''''''';'''''''''''''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'u's's'i' '')'h'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'a'M' 'l'l'u'B'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't''''':''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''K' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'm' 'e'h't' 'm'o'r'f' 'd'e'v'o'm'e'r' 'd'n'a' 'd'e'd'd'a' 'e'b' 'n'a'c' 's'g'n'i'p'p'a'm' 'e'u'l'a'v'-'y'e'k' 'd'n'a' ','e'l'b'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s't'n'e'm'e'l'e' 't'''''s'''''i'''''l''''' '''''g'''''n'''''i'''''t'''''e'''''l'''''e'''''d''''' '''''r'''''o''''' '''''g'''''n'''''i'''''t'''''r'''''e'''''s'''''''''''''''''''''''''''''''''''''''''''n'''''i''''' '''''y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'i's'a'e' ''''''''''''''''''o''' 'o't' 's'e'z'i'l'a'r'e'n'e'g' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y't'i'v'e'r'b' 'f'o' 's't's'e'r'e't'n'i' 'e'h't' 'n'i' 'l'i'a't'e'd' 'n'i' 't'u'o' 'l'l'e'p's' 't'o'n' 'o'd' 'e'w' 'h'c'i'h'w' ','''o's'l'a' 'h'c'a'o'r'p'p'a' 'r'u'O''''''''''''''''''''''''''''''''''''''''''''''''''''' 's't'e's' 'r'o' 's'r'e't'n'u'o'c' 's'a' 'h'c'u's' 's'e'p'y't'a'''['''[''''']'''''''y'e'k''''''''''''|'''r't's'''t't'''''''|'b'r'e'v'''''''''''''''''''''t''''''''''''']''''a'''''d''''' '''''d'''''e'''''t'a'c'i'l'p'e'r' 'r'e'h't'O' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '}'s'y'e'k'{'f's't'x'e't''.'R'P'X'E' '&' '$'|'$' '&''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m''''''r'e'b'm'u'N''''r'''''''''''''''''''''''''''''''.'w'o'l'e'b' 'd'e'''''''''''''''''''''''''''''''''''''''|'''''''''['''''''''']''''''''''''|'''''' 'l'l'u'n'|'b'''r'''''e'''''v'' '''''''$'|'$' 'e's'l'a'f'|'b'r'e'v'' '$'|'$' '|'e'u'r't'|'b'r'e'v'' '&' '$'|'$' '&'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e'e'p' 'r'e'h't'o' 'o't' 'g'n'i't's'a'c'd'a'o'r'b' 'r'o'f' 'd'e'u'e'u'q'n'e' 'o's'l'a' 'd'n'a' ','t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 'l'a'c'o'l' 'e'h't' 'o't' 'd'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e's'o'h'T' '.'n'o'i't'a't'u'm' 'e'h't' 'g'n'i'b'i'r'c's'e'd' '}'s'n'o'i't'a'r'e'p'o'{'h'p'm'e'' 'g'n'i'c'u'd'o'r'p' 'f'o' 't'c'e'f'f'e' 'e'h't' 's'a'h' 't'n'e'm'u'c'o'd' 'e'h't' 'g'n'i'y'f'i'd'o'm' 't'u'b' ','s't'c'e'f'f'e'-'e'd'i's' 'o'n' 's'a'h' 's'e'i'r'e'u'q' 'y'l'n'o'-'d'a'e'r' 'g'n'i'm'r'o'f'r'e'P' '.'d'e'i'f'i'd''''t'o'm' 'd'n'a' 'd'e'i'r'e'u'q' 'e'b' 'o't' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 'l'a'c'o'l' 's'''r'e'e'p' 't'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'f'o' 'e't'a't's' 'l'a'c'o'l' 'e'h't' 's'w'o'l'l'a' 'h'c'i'h'w' 'd'n'a' ','s'r'e'e'p' 'e'h't' 'f'o' 'y'n'a' 't'a' 'y'l'l'a'c'o'l' 'd'e't'u'c'e'x'e' 's'i' 't'a'h't' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'l'p'm'i's' 'a' 'e'n'i'f'e'd' 't's'r'i'f' 'e'w' ','s'e'r'u't'c'u'r't's' 'a't'a'd' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 's'c'i't'n'a'm'e's' 'e'h't' 'e'n'i'f'e'd' 'o'T'n'n''P'A' 'g'n'i't'i'd'e' 't'n'e'm'u'c'o'D''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'c'u'd'o'r't'n'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'u't'c'u'r'''' 't's' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' ''''''''''''''''''''''''.'y'''l'''''i'''''s'''''a'''''e''''' '''''d'''''e'''''d'''''d'''''a''''' '''''e'''''b''''' '''''d'''''l'''''u'''''o'''''c''''' '''''s'''''n'''''o'''''i'''''t'''''c'''''i'''''r'''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'c'i't'n'a'm'e's' 'e'g'r'e'm' 't'n'e't's'i's'n'o'c' 'e'n'i'f'e'd' 'o't' 's'u' 'w'o'l'l'a' 'o't' 'r'e'd'r'o' 'n'i' ','''s'''''e'''''g'''''a'''''u'''''g'''''n'''''a'''''l''''' '''''g'''''n'''''i'''''m'''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'm'u'c'o'd' 'e'h't' 'n'i' 'n'o'i't'i's'o'p' 'a' 's'e'i'f'i't'n'e'd'i' 'h'c'i'h'w' '}'r'o's'r'u'c'{'h'p'm'e'' 'a' 't'c'u'r't's'n'o'c' 'o't' 'd'n'a' ','a'r'g'o'r'p' 'y'n'a'm' 'n'i' 'd'n''''''''''''''''''''''''''''''''e'h't' 'h'g''''''''''''''''''''''''''''''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''|']'''y'e'k'''['|'b'r'e'''''d'n'a' '''v'' 'r'o't'a'r'e'p'o' 't'p'i'r'c's'b'u's' 'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'e't'a't''''e'h'''''''''''''''''''''''r'o's'r'u'c' 't'n'e'r'r'u'c' 'e'h't' 't'a' 't'''s' 'e'h't' 'y'r'e'u'q'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a' 'o't''''''''''''' 's'r'e'f'e'r' 'r'o's'r'u'c' 'e'h't' 'f'i'''''''''''''''''''''''''''''''r'o's'r'u'c' ' 'o's'l'a' 'n'a'c' 'R'P'X'E' 't'c'u'r't's'n'o'c' 'n'o'i's's'e'r'p'x'e' 'e'h'T'n'n'.'''e'r't' 'e'h't' 'h'g'u'o'r'h't' 'd'e't'a'g'i'v'a'n' 's'i' 'r'o's'r'u'c' 'e'h'''''''''''''''''''''''''''''''''''''''e'h't' '''''t'a'h't''''s'e'i''' ''''''''''s'e'n'i'f'e'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'b' 'd'e'i'f'i't'n'e'd'i' 's'i' 'd'e'i'f'i'd'o'm' 'g'n'i'e'b' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'r'a'p' 't''' ',''u'o'r'h't' 't'h'g'i'r' 'o't' 't'f'e'l' 'g'n'i'v'o'M''''''u'''o'f'''' 's'e'''''i'''''r'''''a'''''i'''''r'''''b'''''i'''''l''''' '''''N'''''O'''''S'''''J''''' '''''e'''''h'''''t''''' '''''m'''''o'''''r'''''f''''' 'y'l't'h'g'i'l's' 's'r'e'f'f'i'd' 'I'P'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'I'P'A' 'e'h't' 'f'o' 's'e'r'u't'a'e'f' 'e'h'T' ''''''s'''''e'''''r' 'h'c'u's' 't'u'b' ','s'e'l'u'r' 'g'n'i'k'c'e'h'c'-'e'p'y't' 'c'i't'a't's' 'r'o' 'e'g'a'u'g'n'a'l' 'a'm'e'h'c's' 'a' 'e'n'i'f'e'd' 't'o'n' 'o'd' 'e'w' 'y't'i'c'i'l'p'm'i's' 'r'o'F''''W' '.'y'l'i'r'a'r't'i'b'r'a' 'r'e'h't'o' 'h'c'a'e' 'n'i'h't'i'w' 'd'e't's'e'n' 'e'b' 'y'a'm' 's't's'i'l' 'd'n'a' 's'p'a'M' '.'s'r'e't'n'u'o'c' 'r'o' 's'r'e't's'i'g'e'r' 'r'e'h't'i'e' 'e'r'a' 's'e'd'o'n' 'f'a'e'l' 'e'h't' 'l'l'a' 'd'n'a' ','s't's'i'l' 'r'o' 's'p'a'm' 'r'e'h't'i'e' 'e'r'a' 's'e'd'o'n' 'h'c'n'a'r'b' 'r'o'i'r'e't'n'i' 'e'h't' 'l'l'a' ','t'n'e'm'u'c'o'd' 'N'O'''''''''''''''''''''''''''''''''''''''''''''''','p'a'm' 'a' 'n'i' 's'y'e'k' 'f'o' 't'e's' 'e'h't' 's'n'r'u't'e'r' '}'s'y'e'''''''''''''''''''''''''s'c'i't'n'a'm'e's' 'l'a'm'r'o'F'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'{'''''''l'a'c'o'L'{''''L'''f'''''s'''''t'''''x'''''e'''''t'''''' ''S'J' 'a' 'f'o' 'e'e'r't' 'e'h't' 'n'i' ','s'u'h'T'n'n'b'i'r'c's'e'd' 's'a' ','n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'r'e'd'n'u' 's'c'i't'n'a'm'e's' 't'n'e'''''''''''''''''''''''''''''''''''''''''';'t'x'e'n'.'t's'i'l' '=' 's'g'g'e' 't'e'l''n'''r'e'f'f'i'd' 's'a'h' 't'u'b' ','r'e't's'i'g'e'r' 'a' 'o't' 'r'a'l'i'm'i's' 's'i' 't'I''''S' '.'r'e'b'm'';''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''','}''3'_'}'d'i'{'t'i'h't'a'm''{'' 'o't's'p'a'm'' '}'3'_'}'d'i'{'t'i'h't'a'm''('}'s'e'r'p'{'f's'h't'a'm'' ''u'n' ''''''' 'n'a' 'g'n'i'n'i'a't'n'o'c' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','}''1'_'}'d'i'{'t'i'h't'a'm''{'' 'o't's'p'a'm'' ')'1'_'}''''_'d'i'{'t'i'h't'a'm''('}'s'e'r'p'{'f's'h't'a'm'' ';''e'd'o'n' 'f'a'e'l' 'A' ']':'r'e't'n'u'o'C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''2'_'}'''''''''''''''{'}'3'''' ' ' 'n''{'n'g'i'l'a'i't'l'u'm'''d','''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''}''''''''''''''''''''''''''''''''' ''';''3'_'}'d'i'{'t'i'h't'a'm'' ','2'_''''+'}'d'i'{'t'i'h't'a'm'' ','1'_'}'d'i'{'t'i'h't'a'm''{'' 'o't's'p'a'm'' ')'}'''''g'n'i'p'p'o'h's'`'`'{'t'x'e't'''''''''''''''''h't'a'm''('}'s'e'r'p'{'f's'h't'a'm'' ''i'{'t'i'h't'a'm''{'' 'o't's'p'a'm'' ')'2'_'}'d'i'{'t'i'h't'a'm''('}'s'e'r'p'{'f's'h't'a'm'' ';'','['m'e't'i''n'.'t'i' 'o't' 'e'u'l'a'v' 'w'e'n' 'a' 'g'n'i'n'g'i's's'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o't' 't'i'''''''''''''''''''''''''''''''''''''''' 'g'n'i't't'e's' 'y'b' 'd'e't'a't'u'm' 'e'b' 'n'a'c' 'r'e't's'i'g'e'r' 'a' 'f'o' 'e'u'l'a'v' 'e'h't' ','e'l'b'a't'u'm'm'i' 's'e'v'l'e's'm'e'h't' 'e'r'a' 's'e'v'i't'i'm'i'r'p' 'h'g'u'o'h't'l'A' '.')'l'l'u'n' 'r'o' 'n'a'e'l'o'o'b' ','''' 'r'e'b'm'u'n' ','g'n'i'r't's'(' 'e'u'l'a'v' 'e'v'i't'i'm'i'r'p' 'a' 'g'n'i'n'i'a't'n'o'c'b' ''' 'r'o''d'e't'a't'u'm' 'e'b' 'n'a'c' 't's'i'l' 'e'h'T' ''t'u'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'r'a' 's'e'u'l'a'v' 't'u'b' ',''''''''''''''''''''''''''''''''''(' 'e'l'b'a't'u'm'm'i' 'e'r'a' 's'y'e'k' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''.'}'t'c'e'j'b'o'{'h'p'm'e'' 'n'a' 's'a' 'n'w'o'n'k' 'o's'l'a' 's'i' 'p'a'm' 'N'O'S'J''''''''''''''''''''''''''''''''''''''''''''''.'}'y'a'r'r'a'{'h'p'm'e'' 'n'a' 's'a' 'n'w'o'n'k' 'o's'l'a' 's'i' 't's'i'l' 'N'O'S'J' 'A' '' 'A' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'd'o'n' 'f'a'e'l' 'A' ']':'r'e't's'i''''t'x'e't''''''g'''''e''t'[''''''''t''''''''t'x'e't''''''''''''''''''}']'{'t't'h't'a'm'''''''''R'['m'e't'i''n'.'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'y'b' 'd'e'n'i'f'e'd' 'r'e'd'r'o' 'n'a' 'e'v'a'h' 'n'e'r'd'l'i'h'c' 'e's'o'h'w' 'e'd'o'n' 'h'c'n'a'r'b' 'A' ']''''}':'t's'i'L'['m'e't'i''n'.'n'e'r'd'l'i'h'c' 'e'h't' 'f'o' 'e'n'o' 's'e'i'f'i't'n'e'''''d'''''i''''' '''''y'''''l'''''e''''n'''''u'''''q'i'n'u' 'y'e''''t'u'p'''k''''''''''''r'i'a'p' 'e'u'l'a'v'-''''' '''''A''' '.'}'y'e'k'{'h'p'm'e'' 'g'n'i'r't's' 'a' 'h't'i'w' 'd'e'l'l'e'b'a'l' 's'i' '''''''''''''''''''''''''''''''' 'r'e't'n'u'o'c' 'r'o' 'r'e't's'i'g'e'r' 'e''''''''t'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'.'s'e'd'o'n' 't's'i'l' 'r'o' 'p'a'm' 'r'o'f' 'd'e'n'i'f'e'd' 't'o'n' 's'i' '}'s'e'u'l'a'v'{'f's'h't'a'm''(' 'h't' 'f'o''''''''''''''''''''r'e't's'i'g'e'r' 'a''''''''''''''''''''''''''''''''''''' '''s'i' 'n'''''t'a'h't' ''s''''''e'''r'd'l'i'h'c' 'h'c'a'e' 'e'r'e'h'w' 'd'n'a' ','d'e'r'e'd'r'o' 't'o'n' 'e'r'a' 'n'e'r'd'l'i'h'c' 'e's'o'h'w' 'e'd'o'n' 'h'c'n'a'r'b' 'A'''''' ']'.'p'a'''''''P'A'M'[''''p'i'r''''''''''''n'o'i't'p'i'r'c's'e'd'''c'''''s'''''e'''''d'''''''''''''''''''''''''''''''''''''''' 'm'e't'i''n'''''''''''''''''}'e't'a'r'e'm'u'n'e'{'d'n'e''n'}'e't'a'r'e'm'u'n'e'{'n'i'g'e'b''n'n':'e'd'o'n' 'f'o'''''''o'n' 's'e'p'y't' 'g'n'i'w'o'l'l'o'f' 'e'h't' 'h't'i'w' 'e'e'r't' 'a' 'f'o' 's't's'i's'n'o'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'o'f'e'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'g'g'e' 'r'e't'f'a' 'd'e't'r'e's'n'i' 's'i' 'k'l'i'm' 'o's' ','''''s'g'g'e'`'`' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'o't' 's'r'e'f'e'r' '|'s'g'g'e'|'b'r'e'v'' 'e'l'b'a'i'r'a'v' 'e'h't' 't'u'b' ','s'g'g'e' 'f'o' 'd'a'e'h'a' 'd'e't'r'e's'n'i' 's'i' 'e's'e'e'h'c' 'o's' ','d'a'e'h' 'e'h't' 'o't' 's'r'e'f'e'r' '|'t's'i'l'|''''''b'r'e'v'' 'e'l'b'a'i'r'a'v' 'e'h'T' '.'t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 't'a' 's'i' 'r'o's'r'u'c' 'e'h't' 'f'i' 'd'a'e'h' 'e'h't' 't'a' 'r'o' '''''' '.' 't'I' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'N'O'S'J' 'n'o' 'd'e's'a'b' 's'i' 't'n'e'm'u'c'o'd' 'a' 'r'o'f' 'l'e'd'o'm' 'a't'a'd' 'r'u'O'''''''''' 'e'W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'i'l' 'y't'p'm'e' 'e'h't' 'o't' 't'e's' 'd'n'a' 'd'e't'a'e'r'c' 'y'l't'i'c'i'l'p'm'i' 's'i' 't'i' ','t's'i'x'e' 't'o'n' 's'e'o'd' 'y'e'k' 'e'h't' 'f'I' ''''''''''''''''''''''''e'e'r't'f'o'o'r'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''''''''''f'f'f''''''''''''''''''''''''''}''''''''''''''''''''}'''''e'''''e'''''r'''''t'''''f'''''o'''''o'''''r'''''p'''''{'''''n'''''i'''''g'''''e'''''b''''''''n''''''''''''''e''''''''e'''''r'''''t'''''f'''''o'''''o'''''r'''''p''B'''''''''{'''''d'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''}'r'u'c'{'t'i'h't'a'm'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$''''''''}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'t'x'e'n'{'f's'h't'a'm''.')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''o't'l'a'v'e'' '}'t'x'e'n'{'f's'h't'a'm''.')'''k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'4''''r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n''''''''''''''''''''''''''''''''n'}'$''''#'3'_'}'t'x'e'N'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}''{'' '=' ')')'k'('}'''''''''''''''''''''''''''''''''''''''' ''''''''' ' ' 'n'''''''''''' ''''''''''''''''''''''''''{'t'}''i'h't'a'm''''''''''''''''''''''''''''''''''''''''''''''{'t'}''i'h't'a'm''''''''''''''''''''' ''''''''''''''''''''''''''{'t'}''i'h't'a'm'''''''''''''''''''''''''''''''''''''''')'x't'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''p''''' '=' ''a'm''''''''''i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'n'o'i't'a'u'l'a'v'e' 'n'o'i's's'e'r'p'x'E'{'n'o'i't'c'e's'b'u's''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'s'y'e'k'{''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'s'y'e'k'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n'}'s'y'e'k'{'f's'h't'a'm''.')'n'_'k' ','','''''e'l'g'n'a'r'' '}'''']'1'-'n'{''''''''''''''h'c'i'h'w' ','''''''''''''''''''''''''''''''''''''''_'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'''''''}'#'3'_'}'s'y'e'K'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'s'y'e'k'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n'}'s'y'e'k'{'f's'h't'a'm''.')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('r'o's'r'u'c'{'f's'h't'a'm'' ','',')'1'_'k'('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '1'_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n't'i'h't'a'm'' 'o't'l'a'v'e'' '}'s'y'e'k'{'f's'h't'a'm''.')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'''''''''''''h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'2'_'}'s'y'e'K'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'';'' '}''{'' '='t'o'n'' ')')'k'('}'s'e'r'p'{'f's'h't'a'm''('}'p'a'm'{'t'i'h't'a'm'' ' ' ' 'n',''e'g'd'e'w'','' ')'}'p'a'm'{'t'i'h't'a'm''('}'s'y'e'k'{'m'r'h't'a'm'' 'n'i'' 'k' 'd'i'm'' 'k' ';''{'' '=' '}'s'y'e'k'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$''''''''''('}'s'y'e'k'{'m'r'h't'a'm'''''')'''''''''''''''''''''''''''')')'k'('}'T'p'a'm'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p''''P'{'d'n'e''n'}'$'}'s'y'e'k'{'t'i'h't'a'm'' 'o't'[''''''l''']''''''a'''v'e'' '}'s'y'e'k'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'1'_'}'s'y'e'K'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n's'y'e'k''''''''''l'a''''']'.'.'.'[''''''v'''''{'t'i'h't'a'm'' 'o't'l'a'v'e'' '''}'$'}'s'y'e'k'{'f's'h't'a'm''.'}'r'u'c'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'''''''=''e'e'r't'f'o'o'r'p'{'n'i'g'e'b''''''''''r'u'o'f'''''''''''''''''''''3','2''''''''''''''''''4','s't'o'd'''''''''''''''''''''''r'o'{'f's'h't'a'm''n'n'('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T'g'e'r'{'f's'h't'a'm'' ' ' ' 'n',''e'e'v'','' ')'x't'c'('}'m'o'd'{'m'r'h'''''t'''''a'm'' 'n'i'' ')'k'('}'T't's'i'l'{'f's'4''''h't'a'm'' ' ' ' 'n''''''''''''''''''''''''''''' ',''e'e'v'','' ')'x't'c'('}'m'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.')'d'e't'e'l'e'd' 'n'e'e'b' 's'a'h' 'y'e'k' 'e'h''''''''''''''''n'o'i't'a'c'i'l'p'p'a' 'e'h't'''''''''''''''''''t' 't'a'h't' 'g'n'i't'a'c'i'd'n'i'(' 'y't'p'm'e' 's'i' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'h'c'i'h'w' 'r'o'f' 's'y'e'k' 'y'n'a' 'g'n'i'd'u'l'c'x'e' 'd'n'a' ','e't'a't's' 'l'a'c'o'l' 'e'h't' 'g'n'i'n'i'm'a'x'e' 'y'b' 'd'e'n'i'm'r'e't'e'd' 's'i' 't'e's' 's'i'h'T' '.'p'a'm' 'a' 'n'i' 'd'e'n'i'f'e'd' 'e'r'a' 't'a'h't' 's'y'e'k' 'f'o' 't'e's' 'e'h't' 't'c'e'p's'n'i' 'o't' 'n'o'i't'a'c'i'l'p'p'a' 'e'h't' 'w'o'l'l'a' 's'e'l'u'r' '$'}'3','2','1'{'_'}'s'y'e'K'{'c's't'x'e't''$' 'e'h'T'n'n'.'s'e'i'l'p'p'a' '$'2'_'}'t'x'e'N'{'c's't'x'e't''$' ','''' 'y't'p'm'e''''-'''''''-'='n'o'n' 's'i' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'f'I' '.'t'n'e'm'e'l'e' 'e'h't' 'r'e'v'o' 's'p'i'k's' '$'3'_'}'t'x'e'N'{'c's't'x'e't''$' 'o's' 'd'n'a' ','d'e't'e'l'e'd' 's'a'w' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 's'n'a'e'm' 't'a'h't' ','y't'p'm'e' 's'i' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'f'i' ':'t's'i'l' 'e'h't' 'n'i' 't'n'e'm'e'l'e' 'n'a' 'f'o' '}'e'c'n'e's'e'r'p'{'h'p'm'e'' 'e'h't' 's'e'd'o'c'n'e' 'h'c'i'h'w' ','$'p'_'A'$' 'n'i' '$')'''k'('}'s'e'r'p'{'f's'h't'a'm''$' 'y'r't'n'e' 'n'a' 'n'o' 'l'a'n'o'i't'i'd'n'o'c' 'e'r'a''''''''''''''''''''''''' 't'c'e'p's'n'i' '$'}'3','2'{'_'}'t'x'e'N'{'c's't'x'e't''$' 'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T'p'a'm'{''''m''''''''''i'l'{'f's'h't'a'm'' 'd'i'm'' 'k' ' ' ' 'n''''''''']'' '}'';''n';''{'' '=' ')'}'x't'c'{'t'i'h't'a'm''('}'s'y'e'k'{'m'r'h't'a'm'' '[''n'n''s'e'r'p'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'l'i'a't'{'f's'h't'a'm'' '='t'o'n'' '''k' ',''e'g'd'e'w'','' '''k' '=' ')')'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'''''e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''}'$'}''{'' '''''''''''''''''''''''''''''='t'o'n'' ')')'k'('}''r'T''''s'e'r'p'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i''''o'x'A''n'l'i'a't'{'f's'h't'a'm'' '='t'o'n'' '''k' ',''e'g'd'e'w'''''''''''e'e'r't'f'o'o'r'p''','''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'm' 'a' 'o't'n'i' 'y'e'k' 'w'e'n' 'a' 't'r'e's'n'i' 'o't' 'd'n'a'm'm'o'c' 'a' 'r'o'f' 'd'e'e'n' 'o'n' 's'i''''' '''''e'''''r'''''e'''''h'''''t''''' '''''o'''''s''''' ''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''e'''''W'''''n'''''n'''''}'''l'e'd'o'm' 'a't'a'D'{'n'o'i't'c'e's'b'u's'''''n'n''''''''''''''''''''''''''''g'n'i'r'e't'n'e'c''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'l'':'c'r'{''''''''''{'m''}'r'''h't'a'm''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''{'m''}'''''h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'}'N'{'b'b'h't'a'm'' 'n'i'' 'n'$' '&' '$')'n'('}'r'c'n'i'{'f's'h't'a'm''.'}'R'P'X'E'{'m'r'h't'a'm''$' '&' '$'|'$' '&'n''''' '}'e't'e'l'e'd''''''''''''''''y'e'K'm'r'{'f's'h't'a'm'''''''''''''''''''''''''''''''''' '}'r'e't'i'{'f's't'x'e't''.'R'P'X'E' '&' '$'|'$' '&'n'.'}'R'P'X'E'{'''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'''''''$' '}'R'A'V'{'m'r'h't'a'm'' 'n'i'' 'x'$' '&' '$'x'$' '&' ''''''g'n'i'r't'S''''''$''$'$'''''&''''''' 'n'i''''''' ''' ''''''''''''''''''''''''''{'''}'r't''t't'h't'a'm''''''''''''''''''''''''''''|'r't's''' '|'''''''''|'''|'b'r'e'v'' ''''|'b'r'e'v'''''''$''''''''''''''''''''''''''''''''''''''''''''|'}'{'|'b'r''''''''''|']'['|'b'r'e'v''''''''''''''''''''''''''''''':'''''''''''''''''''' '=' 't's'i'l' '''''r'e't'i'''''''''''''t'''''x'''''e'''''n'''''.'''''''';''''t'e''':''''t's'i'l'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''}'k'l'i'm'''{' 'o't' 's'e't'a'u'l'a'v'e' '/'/' 's'e'u'l'a'v'.'t'x'e'n'.'s'g'g'e'n'}'''s'g'g'e'''{' 'o't' 's'e't'a'u'l'a'v'e' '/'/' 's'e'u'l'a'v'.'s'g'g'e'n'n''''''f'l'''''t's'i'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' 't'u'p'n'i' 'r'e's'u' 's't'p'e'c'c'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'o'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'd'd'e'b'm'e' 's'i' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'h't' 'h'c'i'h'w' 'n'i' 'm'a'r'g'o'r'p' 'e'h't' 't'u'o'b'a' 'g'n'i'h't'y'n'a'''''' '''''o'd''''''''''''' 't'a'h't' 'e'm'u's's'a' 'd'n'a' ','s'd'n'a'm'm'o'c' 'e's'o'h't' 'f'o' 's'c'i't'n'a'm'e's' 'e'h't' 'y'l'n'o' 'l'e'd'o'm' 'e'W' '.'I'P'A' 'e'h't' 'o't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','s'd'n'a'm'm'o'c' 'f'o' 'e'c'n'e'u'q'e's' ')'e't'i'n'i'f'n'i' 'y'l'b'i's's'o'p'(' 'a''''a' 's'e'u's's'i' 'm'a'r'g'o'r'p' 'r'e's'u' 'e'h't' 't'a'h't' 'e'm'u's's'a' 'e'W' '.'d'e'i'f'i'd'o'm' 'd'n'a' 'd'e'i'r'e'u'q' 's'i' 'e't'a't's' 't'n'e'm'u'c'o'd' 'e'h't' 'h'c'i'h'w' 'h'g'u'o'r'h't' 'I'P'A' 'n'a' 'r'e'h't'a'r' 't'u'b' ','e'g'a'u'g'n'a'l' 'g'n'i'm'm'a'r'g'o'r'''''''='''''''g'o'r'p' 'l'l'u'f' 'a' 't'o'n' 's'i' 't'I' '''''';')'''e's'e'e'h'c'''('t'r'e's'n''''''''''' ','''e's'e'e'h'c'''i'.'t's'i'l'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''s'''''g'''''g'''''e''''''''''''''''''''=''''''''''''''''''''''''''''' '''''''''''''''''}'''''''''''''''''t'''''''''''''''''s'''''''''''''''''i'''''''''''''''''l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''q'w':'.'y'n'a'p'm'o'C' 'g'n'i'e'o'B' 'e'h'T' 'm'o'r'f' 't'n'a'r'g' 'a' 'y'b' 'd'e't'r'o'p'p'u's' 's'a'w' 'h'c'r'a'e's'e'r' 's'i'h'T''''i'n'n'}'s't'n'e'm'e'g'd'e'l'w'o'n'k'c'A'{'*'n'o'i't'c'e's''n''''''n'n'i'''''''' ','t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'r'e'v'o' 'g'n'i't'a'r'e't'i' 's't'r'a't's' '}'r'e't'i'{'f's't'x'e't'''''''''''''''''''''''''''''''''''''''':'e't'a't's' 'l'a'n'i'F' '/'/'n'n';')'''k'l'i'm'''('t'r'e's'n'i'.'s'g'g'e'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'o'-'d'e't'a'l'e'r':'c'e's'{'l'e'b'a'l'''n'}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i't'c'e's'b'u's''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''t's'i'l' 'd'e'r'e'd'r'o' 'e'''l'g'n'i's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a'r'o'b'a'l'l'o'c' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'d'f'5''''''''' 'h'c'a'o'r'p'p'a''9'9'1':'s'l'o'h'c'i'N'{'e't'i'c''~'m'e't's'y's' 'r'e't'i'p'u'J' 'e'h't' 'm'o'r'f' 'd'e't'i'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'e'p'-'o't'-'r'e'e'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'g'k'5'1'0'2':'r'e'g'n'U'{'e't'i'c''~'r'e'd'r'o' 'e'm'a's' 'e'h't' 'n'i' 's'e'g''''''''''''' 's'e'g'a's's'e'm' 'e'e's' 'l'l'i'w' 's't'n'e'i'p'i'c'e'r' 't'n'e'r'e'f'f'i'd' 't'a'h't' 'e'e't'n'a'r'a'u'g' 't'o'n' 'o'd' ','n'o'i't'a'r'o'b'a'l'l'o'c''''d' 'd'e't'p'y'r'c'n'e' 'r'o'f' 'e's'u' 'o't' 'n'a'l'p' 'e'w' 'h'c'i'h'w' ','s'l'o'c'o't'o'r'p' 'g'n'i'g'a's's'e'm' 'e'r'u'c'e's' 'y'n'a'M'' 'n'n''''''''''''''''''''''''''''''''d' ''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'h's'i'''''''i''''''''''''''''''''''''''}'s't'd'r'c'-'d'e't'a'l'e'r':'c'e's'{'l'e'b'a'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','n'u'1'1''''''''''''''y'w'3'1'0'2':'n'w'o'r'B','0'2':'o'r'i'p'a'h'S''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o' '}'n'o'i't'i's'o'p'm'o'c'{'h'p'm'e'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' ','s'p'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'm'r'o'f'''''''''''''''''''''''''''d'e'p'o'l'e'v'e'd' ''''''''''''''''''''''''''''''''.'r'e'p'a'p'''''''p'a' 's'i'''''''i's'h't' 'n'i' 's'c'i't'n'a'm'e's' 'e'h't' 'r'o'f' 's'i's'a'b' 'a''''''''''''' 'e'h't' 's'i' 's'e'p'y't'a't'a'd' 'e's'e'h't' 'n'i' 'y't'i'l'a's'u'a'c' 'f'o' 't'n'e'm't'a'e'r't' 'e'h't' 't'u'b' ','s't's'i'l' 'd'e'r'e'd'r'o' 'r'o'f' 's'T'D'R'C' 's'e't'a'r'g'e't'n'i' 'k'r'o'w' 's'i'h't' 'f'o' 'e'n'o'N''' '''''d'''''e'''''t'''''s'e'n' 'r'o'''''f''''' '''s'''' 'n'o'i't'a't'u'm' 'a't'l'e'd' 'e'n'i'f'e'd' 'o's'l'a' '}'k't'6'1'0''''''''''' 'h'g'u'o'h't'l'A' '2':'a'd'i'e'm'l'A'{'e't'i'c''~'.'l'a' 't'e' 'a'd'i'e'm'l'A' '''''' ',''.'}'v'i'6'1'0'2':'o'r'e'u'q'a'B'{'e't'''''o's'l'a' ''i'c''~'e'h''''''''''k'r'o'w'e'm'a'r'f'''c'''''r'''''e'L' 'd'n'a' 'a'd'i'e'm'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'e'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a'l'e'r' 'r'o' 's't'e's' 'd'e'r'e'd'r'o'n'u' 'e'k'i'l' 'e'r'a' 'h'c'i'h'w' ','}'s'e'i't'i't'n'e'{'h'p'm'e'' 'd'n'a' ',''''''''''''''''''s'e'n'i'f'e'd' 'l'''''''''''''''''''''''}'s'e'i'''''''e'v'a'h'''y'l'e'b' ''t'i't'n'e'''o'''';''''''{'''''h'''''p'''''m'''''e'''''''' '''''d'''''n'''''a''''' ''''''''''''''''''''''''''h'''''c'''''i'''''h'''''w''''' ''''','''''}'''''''''''s'''''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''O''''.'l'e'd'o'm' 'l''''''''''''''''''''''''''k'r'o'w'e'm'a'r'f' 's'i'h't' 'n'i' 'd'e'n'i'f'e'd'''a'''''n'''''o'''''i'''''t'a'l'e'r' 'e'h't' 'n'i' 's'e'l'p'u't' 'e'k'i'l' 'e'r'a' 'h'c'i'h'w' ','}'s'e'i''''y't'i't'n'e'{'h'p'm'e'' 'd'n'a' ','d'o'm' 's'i'h'T''''' 'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e't'r'o'p'p'u's' 't'o'n' 'e'r'a' 's't's'i'l' 'd'e'r'e'd'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''n'a'r't'E'E'E'I''''''''''''''''''''''''''''f's'r'''''''''''''''''''''''a'e'y' 'r'o'f' '''''''''''''''''''''l'l'a' ''''''''s'r'a'e'y' 'r'o'f' ''''''''d'e't's'e'n' 'n'o'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'i'r'a'r't'i'b'r'a' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'r'u't'c'u'r't's' 'e'k'i'l'-'N'O'S'J' 'a' 'h't'i'w' 'T'D'R'C' 'd'n'u'o'p'm'o'c' 'a' 'o't'n'i' 'd'e's'o'p'm'o'c' 'e'b' 'o't' 'm'e'h't' 's'w'o'l'l'a' 't'a'h't' 'k'r'o'w' 'r'o'i'r'p't'a'l'o's'i' 'n'i' 'd'e't's'i'x'e' 'e'v'a'h' 's't's'i'l' 'd'e'r'e'd'r'o' 'd'n'a' 's'p'a'm' ','s'r'e't's'i'g'e'r' 'r'o'f' 's'T'D'R'C'''''''i'l' 'h'g'u'o'h't'l'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'n'a' 'f'o' 'e'r'a'w'a' 't'o'n' 'e'r'a' 'e'w' ','l'a'r'e'n'e'g' 'n'I'n'n'o' ';'e'p'y't'a't'a'd' 'p'a'm' 'r'u'o' 'o't' 'r'a'l'i'm'i's' 's'i' 'h'c'i'h'w' ','}'y'a'r'r'a' 'd'u'o'l'c'{'h'p'm'e'' 'e'h't' 's'i' 'e'p'y't' 'n'o'i't'c'e'l'l'o'c' 'd'e'n'i'f'e'd' 'y'l'n'o' 'e'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'l'a' 't'e' 't'd'r'a'h'k'c'r'u'B' 'y'b' 'd'e'r'i'p's'n'i' 's'i' 't'n'e'm'e't'a't's' '}'d'l'e'i'y'{'f's't'x'e't'' 'r'u'O' '.'d'e's'o'p'm'o'c' 'e'b' 'n'a'c' 'd'n'a' 's'''''''''''''''' 't'u'b' 'T'D'R'C' 'o't' 'r'a'l'i'm'i's' 'e'r'a' 'h'c'i'h'w' ','}'s'e'p'y't' 'd'u'o'l'c'{'h'p'm'e'' 'e'n'i'f'e'd' '}'y'j'2'1'0'2':'t'd'r'a'h'k'c'r'u'B'{'e't'i'c''~'.'l'a' 't'e' 't'd'r'a'h'k'c'r'u'B''n'n'A' ','o'r'e'u'q'a'B''''A' 'y'b' 'd'e'i'd'u't's' 'n'e'e'b' 'e'v'a'h' 'h'c'i'h'w' ','s'c'i't'n'a'm'e's' 'f'o' 's'n'o'i't's'e'u'q'''''''i'd' 's'e's'i'a'r' 's'p'a'm' 'e'd'i's'n'i' 's'r'e't'n'u'o'c' 'g'n'i'd'd'e'b'm'E' '.'}'y'w'3'1'0'2':'n'w'o'r'B','s'h'4'1'0'2':'n'w'o'r'B'{'e't'i'c''~'s't's'i'l' 'd'e'r'e'd'r'o' 't'r'o'p'p'u's' 't'o'n' 's'e'o'd' 't'u'b' ','s'p'a'm' 'r'e'h't'o' 'n'i'h't'i'w' 's'p'a'm' 'f'o' 'd'n'a' ','s'p'a'm' 'e'd'i's'n'i' 's'r'e't's'i'g'e'r' 'd'n'a' 's'r'e't'n'u'o'c' 'f'o' 'g'n'i't's'e'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's'l'e'v'e'l' 'e'l'p'i't'l'u'm' 's'w'o'l'l'a' 'k'a'i'R' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'c'i't't'a'l' 'n'o' 'd'e's'a'b' ','s'T'D'R'C' 'd'e's'a'b'-'e't'a't's' 'f'o' 'n'o'i't'i's'o'p'm'o'c''''C' 'r'o'f' 's'i's'a'b' 'l'a'c'i't'e'r'o'e'h't' 'a' 'e'n'i'f'e'd''''=''''''''''''''''''''''''' 't'n'e's'e'r'p' '}'m't'5'1'0'2':'o'r'e'u'q'a'B'{'e't'i'c''~'.'l'a' 't'e' 'o'r'e'u'q'a'B' '''''''''''''''''''''''''''''''''''''''''''e'h't' 't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'r'e'h't'o'-'d'e't'a'l'e'r':'c'e's'{'l'e'b'a'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i''' ','e'l'p'm'a'x'e' 'r'o'F'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'l'l'','a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'b'a'n'o's'a'e'r' 'n'a'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e'm'm'a'r'g'o'r'p' 'n'o'i't'a'c'i'l'p'p'a' 'o't' 't'f'e'l' 'e'b' 'd'l'u'o'h's' 't'a'h't' 'r'e't't'a'm' 'e'l'p'm'i's' 'a' 't'o'n' 's'i' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c''''''''''''' 's't'i''''c' ','s'e't'a'r't's'n'o'm'e'd' 'r'e'p'a'p' 's'i'h't' 'f'o' 'y't'i'x'e'l'p'm'o'c' 'e'h't' 's'A' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'W'W'L'(' '''''''l'l''''''''''''''''''''''''''''''''''''''''e'm'a's' 'e'h't''''s'''''''g'n'i'''''''''''''''''''g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'a'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'n'o'i't'i'd'n'o'c''''d'e'r'p' 's't'i' 'n'o' 'g'n'i'd'n'e'p'e'd' 'l'u'f's's'e'c'c'u's' 's'a'w' 'n'o'i't'c'a's'n'a'r't' 'a' 'r'e'h't'e'h'w' 'e'd'i'c'e'd' 'd'n'a' ','r'e's''''''''''''''''''''''r'e'd'r'o' 'l'a't'o't' 'a''''''l'a'i'r'e's'''''' '''''n'''i' 's'n'o'i't'c'a's'n'a'r't' 'e't'u'c'e'x'e''''''''''b'b'b' 'o't' 'r'e'v'r'e's' 'l'a'r't'n'e'c' 'a' 'n'o' 's'e'i'l'e'r' 'h'c'a'o'r'p'p'a' 's'i'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'c'i'v'e'd' 'e'l'i'b'o'm' 'f'o' 'm'e't's'y's' 'r'e'e'p'-'o't'-'r'e'e'p' 'a' 'n'i' 'e'v'i't'i'b'i'h'o'r'p' 'e'r'a' 's't'n'e'm'e'r'i'u'q'e'r' 'r'e'd'r'o' 'l'a't'o't' 'h'c'u's' ','}'t'o'-'d'e't'a'l'e'r':'c'e's'{'f'e'r''~'n'o'i't'c'e's' 'n'i' 'd'e's's'u'c's'i'd' 's'A''''T' '.'e'n'i'l'n'o' 't'x'e'n' 'e'r'a' 'y'e'h't' 'n'e'h'w' 'm'e'h't' 'm'r'i'f'n'o'c' 'd'n'a' ','y'l'e'v'i't'a't'n'e't' 's'n'o'i't'c'a's'n'a'r't' 'e't'u'c'e'x'e' 'o't' 's'e'd'o'n' 'e'n'i'l'f'f'o' 'w'o'l'l'a' '}'n'd'5'9'9'1':'y'r'r'e'T'{'e't'i'c''~'u'o'y'a'B' 's'a' 'h'c'u's'''''''''''''''' 's'm'e't's'y's' 'y'n'a'm' ','y'l'l'a'n'i'F'n'n''''''''''''''''''''''''''''''''''.'B'D'h'c'u'o'C' 'd'n'a' ''''''' ','k'a'i'R' 'g'n'i'd'u'l'c'n'i' 's'm'e't's'y's' 'r'e'h't'o' 'y'n'a'm' 'n'i' 'n'o'i't'p'o' 'n'''' 'a' 's'i' 't'i' 'd'n'a' ','a'r'd'n'a's's'a'C' 'e'h'c'a'p'A' 'n'i' 'd'e's'u' 's'i' 'h'c'a'o'r'p'p'a' 's'i'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'o't' 'e'u'd' 't's'o'l' 'e'b' 'o't' 't'u'p'n'i' 'r'e's'u' 'o'n' 't'n'a'w' 'e'w' 'e'c'n'i's' ','s't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' 's'e'o'd' 'W'W'L''''''''''''''''''''''''''''l' 'e'''''''''' 's'i'h'T''''p' '.'s'r'e'h't'o' 'e'h't' 's'd'r'a'c's'i'd' 'd'n'a' '''''r'e'n'n'i'w'`'`' 's'a' 's'e't'i'r'w' 't'n'e'r'r'u'c'n'o'c' 'l'a'r'e'v'e's' 'g'n'o'm'a' 'e'n'o' 's'e's'o'o'h'c' 'y'l'i'r'a'r't'i'b'r'a' 'h'c'i'h'w' ','}'s'n'i'w' 'r'e't'i'r'w' 't's'a'l'{'h'p'm'e'' 's'i' 'n'o'i't'u'l'o's'e'r' 't'c'i'l'f'n'o'c' 'o't' 'h'c'a'o'r'p'p'a' 'd'e's'u'-'y'l't'n'e'u'q'e'r'f' 'r'e'h't'o'n'A'n'n'.'}'i'u'7'0'0'2':'a'i'd'n'a'C'e'D'{'e't'i'c''~'g'n'i'r'a'e'p'p'a'e'r' 's'm'e't'i' 'd'e't'e'l'e'd' 's'a' 'h'c'u's' ','s'e'i'l'a'm'o'n'a' 't'i'b'i'h'x'e' 'n'e't'f'o' 's'n'o'i't'c'n'u'f' 'e'g'r'e'm' 'n'e's'o'h'c' 'y'l'e'v'i'a'N'''''''''''''p'm'i'S' '''''o'''''t''''' '''''n'''''o'''''i'''''t'''''u'''''l'''''o'''''s'''''e'r' 't'c'i'l'f'n'o'c' 's'e'v'a'e'l' ''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'c'i'l'f'n'o'c' 'e'h't' 'e'v'l'o's'e'r' 'o't' 'e'd'o'c' 'n'o'i't'a'c'i'l'p'p'a' 's'e'r'i'u'q'e'r'''e''''''''''''''''''''''''''''''''''''''''''' 's't'n'e's'e'r'p' 'd'n'a' 's'e'u'l'a'v' 'e's'o'h't' 's'e'v'r'e's'e'r'p' 'e's'a'b'a't'a'd' 'e'h't' ','y'e'k' 'e'm'a's' 'e'h't' 'o't' 'n'e't't'i'r'w' 'y'l't'n'e'r'r'u'c'n'o'c' 'e'r'a' 's'e'u'l'a'v' 'l'a'r'e'v'e's' 'f'i''''''''''''''''u'c'n'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't'''''''''''''''' 'e's'a'b'a't'a'd' 'e'h't' ','''a'''''l'''''e'''''r'''''''''''''''''''''''''''''''d'e'r'i'p's'n'i' 't'i' 's't'c'e'j'o'r'p''''l''''p' 'd'n'a' '}'i'u'7'0'0'2':'a'i'd'n'a'C'e'D'{'e''''''''''{'e'4't'i'c''~'o'm'a'n'y'D' 'n'I' '.'''''''''''''''' 'd'n'a' 'c'o'h'-'d'a' 'n'e't'f'o' 'e'r'a' 's'n'o'i't'u'l'o's' 'e'h't' 't'u'b' ',''''s'n'o'i't'a'c'i'f'i'd'o'o'm' 'g'n'i't'c'i'l'f'n'o'c' ','t'n'e'r'r'u'c'n'o'c' 'f'o' 'm'e'l'b'o'r'p' 'e'h't' 'h't'i'w' 'l'a'e'd' 'o't' 'd'e'e'n' 's'm'e't's'y's' 'a't'a'd' 'd'e't'a'c'i'l'p'e'r' 'y'n'a'M'n'n'}'s'e'h'c'a'o'r'p'p'a' 'r'e'h't'O'{'n'o'i't'c'e's'b'u's'''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y'l't'n'e'c'e'r' 'e'r'o'm' 'd'e'i'd'u't's' 'n'e'e'b' 'y'l'n'o' 's'a'h' ')'}'g'n'i'd'd'e'b'm'e'{'h'p'm'e'' 's'a' 'n'w'o'n'k' 'o's'l'a'(' 'r'e'h't'o'n'a' 'e'd'i's'n'i' 'T'D'R'C' 'e'n'o' 'g'n'i't's'e'n' 'f'o' 'm'e'l'b'o'r'p' 'e'h'T'n'n''D'R'C' 'r'e'h't'o'n'a' 't'o'n' ',''.'''''''''''''''''''''''''''e'l'b'a't'u'm'm'i' ',''''''''s'e'u'l'a'v' 'c'i'm'o't'a' 'e'r'a' 't's'i'l' 'r'o' 'p'a'm' 'T'D'R'C' 'e'h't' 'f'o'a'h't' 'e'm'u's's'a' 'y''''''''''' 's't'n'e'm'e'l'e' 'e'h't' ':'g'n'i't's'e'n' 't'r'o'p'p'u's' 'm'e'h't' 'f'o' 'e'n'o'n' ','r'e'v'e'w'o'H' '.'}'y'k'3'1'0'2':'c'e'l'e'd'e'N'{'e't'i'c''~'Q'E'S'L' 'd'n'a' '}'x'h'0'1'0'2':'s's'i'e'W'{'e't'i'c''~'t'o'o'g'o'L' ','}'z'f'9'0'0'2':'a'c'i'u'g'e'r'P'{'e't'i'c''~'c'o'd'e'e'r'T'''''''''''''''''''t'o'o'g'o'L' ','}'w'd'1'1'0'2':'h'o'R'{'e't'i'c''~'A'G'R' ','}'j'w'6'0'0'2':'r'e't's'O''''o'{'e't'i'c''~'T'O'O'W' 'g'n'i'd'u'l'c'n'i' ','d'e's'o'p'o'r'p' 'n'e'e'b' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 's'u'o'i'r'a'v' ','s't's'i'l' 'd'e'r'e'd'r'o' 'r'o'F' '.'k'a'i'R' 's'a' 'h'c'u's' 's'm'e't's'y's' 'd'e'y'o'l'p'e'd' 's'u'o'i'r'a'v' 'n'i' 'd'e't'n'e'm'e'l'p'm'i' 'n'e'e'b' 'e'v'a'h' 'd'n'a' ','}'y'w'1'1'0'2':'o'r'i'p'a'h'S'{'e't'i'c''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e't'i'u'q' 'e'r'a' 'y'e'h't' 'd'n'a' ','n'w'o'n'k' 'y'l'e'd'i'w' 'e'r'a' 's't'e's' 'd'n'a' 's'p'a'm' ','s'r'e't'n'u'o'c''''m' ','s'r'e't's'i'g'e'r' 'r'o'f' 's'T'D'R'C'n'n's'l'b'u'p' 'n'e'e'b' 't'o'n' 'e'v'a'h' 's'm'h't'i'r'o'g'l'a' 's't'i' 'f'o' 's'l'i'a't'e'd' ','t'c'u'd'o'r'p' 'y'r'a't'e'i'r'p'o'r'p' 'a' 's'A' '.'}'h'w'6'1'0'2':'k'i'n'o'm'e'L'{'e't'i'c''~'r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'n'o' 's'e'i'l'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o't' 's'r'a'e'p'p'a' 't'i' ','s'c'o'D' 'e'l'g'o'o'G' 'e'k'i'L'''''''''''''''''''''''''''''''''''''''''''''''''''' 'o's'l'a'''''''''' 's'i' 't'i' ','r'e'v'e'w'o'H' '.'s'p'a'm' 'd'n'a' 's't's'i'l' 'f'o' 'g'n'i't's'e'n' 'y'r'a'r't'i'b'r'a' 's't'r'o'p'p'u's' 't'a'h't' 'e'r'a'w'a' 'e'w' 'h'c'i'h'w' 'f'o' 'T'O' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'l'n'o' 'e'h't' 's'i' '}'k'v'5'1'0'2':'e'l'g'o'o'G'{'e't'i'c''~'I'P'A' 'e'm'i't'l'a'e'R' 'e'l'g'o'o'G' 'e'h'T'n'n''''','''''r'''''e'''''v'''''r'''''e'''''s''''' '''''e'''''l'''''g'''''n'''''i'''''s''''' '''''a''''' '''''n'''''o''''' '''''g'''''n'''''i'''''y'''''l'''''e'''''r''''' '''''s'''''d'''''i'''''o'''''v'''''a''''' '''''h'''''c'''''i'''''h'''''w''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'T'D'R'C'{'n'o'i't'c'e's'b'u's''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'e'f'a's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f''' 'd'n'a' ','''''''''''''''t''' 'r'o'F'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'c'n'e'g'r'e'v'n'o'c' 'e'v'e'i'h'c'a' 'o't' 't'n'e'i'c'i'f'f'u's' 's'i' 'g'n'i'r'e'd'r'o' 'l'a's'u'a'c' ',''''''''''''''''' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'f'o' 'y'l'i'm'a'f' 'T'D'R'C' 'e'h'T'n'n'.'}'m'd'5'1'0'2':'a'y'i't't'A'{'e't'i'c''~'g'n'i'r'e'd'r'o' 'l'a's'u'a'c' 's'i' 'e'v'i'g' 'n'a'c' 'm'e't's'y's' 'a' 'h'c'u's' 'e'e't'n'a'r'a'r'a'u'g' 't's'e'g'n'o'r't's' 'e'h'T' '.'e'l'b'a'l'i'a'v'a'n'u' 'e'm'o'c'e'b' 'd'l'u'o'w' 't's'a'c'd'a'o'r'b' 'c'i'm'o't'a' 'g'n'i'r'i'u'q'e'r' 'm'h't'i'r'o'g'l'a' 'y'n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'l'b'a' 'e'b' 't'o'n' 'l'l'i'w' 'm'e't's'y's' 'e'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e'i'l'e'r' 't'a'h't' 'm'h't'i'r'o'g'l'a' 'y'n'a' 'o's' 'd'n'a' ','e'm'i't' 'e'm'a's' 'e'h't' 't'a' 'e'n'i'l'n'o' 'e'r'a' 's't'n'a'p'i'c'i't'r'a'p' 'f'o' 'y't'i'r'o'n'i'm' 'a' 'y'l'n'o' 't'a'h't' 'e's'a'c' 'e'h't' 'e'b' 'y'l't'n'e'u'q'e'r'f' 'l'l'i'w' 't'i' 's'e'c'i'v'e'd' 'e'l'i'b'o'm' 'f'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'i'w' 's'm'e't's'y's' 'r'e'e'p'-'o't'-'r'e'e'p' 'n'i' 't'a'h't' 't'c'e'p'x'e' 'e'W' '.'e'l'b'a'h'c'a'e'r' 'd'n'a' 'e'n'i'l'n'o' 'e'r'a' 's't'n'a'p'i'c'i't'r'a'p' 'f'o' 'y't'i'r'o'j'a'm' 'a' 'f'i' '''''''''''''''s's'e'r'g'o'r'p' 'e'k'a'm' 'y'l'n'o' 'n'a'c' 'y'e'h't' 'o's' ','}'p'c'6'9'9'1':'a'r'd'n'a'h'C'{'e't'i'c''~'s'u's'n'e's'n'o'c' 'o't' 't'n'e'l'a'v'i'u'q'e' 'e'r'a' 's'l'o'c'o't'o'r'p' 'h'c'u's' ','}'i'j'4'0'0'2':'o'g'a'f'e'D'{'e't'i'c''~'l'o'c'o't'o'r'p' 't's'a'c'd'a'o'r'b' 'c'i'm'o't'a' 'n'a' 'g'n'i's'u' 'y'b' 's'n'o'i't'a'r'e'p'o' 'f'o' 'g'n'i'r'e'd'r'o' 'l'a't'o't' 'a'o'''''t' 'e'l'b'i's's'o'p' 's'i''''p' 't'i' 'h'g'u'o'h't'l'A''''''''''''''' 'n'o' 'g'n'i'd'i'c'e'D' '.'r'e'v'r'e's' 'e'l'g'n'i's' 'a' 'g'n'i'r'i'u'q''''''''''''''''''' 'g'n'i'y'l'e'r'' '''''''''''''''''''''''' 't'u'o'h't'i'w' 'n'o'i't'a'r'o'b'a'l'l'o'c' 't'r'o'p'p'u's' 'o't' 't'n'a'w' 'e'w' 'e'c'n'i's' ','''' 's't'n'e'm'e'r'i'u'q'e'r' 'r'u'o' 't'e'e'm' 't'o'n' 's'e'o'd' 't'i''e'h'n'i' 'n'o'i's'''''i'''''c'''''e'''''d''''' '''''n'''''g'''''i'''''s'''''e'''d' 'a' ','''''''''''''''''''''''''''''''''''g'n'i'k'a'm' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'l'b'a't'p'e'c'c'a' 't'o'n' 's'i' 't'i' 't'u'b' ','}'s'k'3'0'0'2':'e'n'i'm'I'{'e't'i'c''~'e'n'o'r'p'-'r'o'r'r'e' 's's'e'l' 'd'n'a' 'r'e'l'p'm'i's' 's'n'o'i't'c'n'u'f''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'a'm'r'o'f's'n'a'r't' 'e'h't' 'g'n'i'y'f'i'l'p'm'i's' 'f'o' 'e'g'a't'n'a'v'd'a' 'e'h't' 's'a'h' 's'i'h'T' '.'s'n'o'i't'a'r'e'p'o' 'f'o' 'g'n'i'r'e'd'r'o' 'l'a't'o't' 'a' 'n'o' 'e'd'i'c'e'd' 'o't' 'r'e'v'r'e's' 'e'l'g'n'i's''''''''''''''''''''''''''''' 'a' 'n'o' 'y'l'e'r' ',')'}'o'v'5'1'0'2':'g'n'a'W'{'e't'i'c''~'e'v'a'W' 'e'l'g'o'o'G' 'y'l'r'e'm'r'o'f'(' 'e'v'a'W' 'e'h'c'a'p'A' 'd'n'a' '}'w'v'0'1'0'2':'k'a'w'e'i'p'S'{'e't'i'c''~'e'b'i'V' 'l'l'e'v'o'N' ','}'m'u'1'1'0'2':'d'a'p'r'e'h't'E'{'e't'i'c''~'d'a'p'r'e'h't'E' ','}'t't'0'1'0'2':'r'e't'h'c'i'R'y'a'D'{'e't'i'c''~'s'c'o'D' 'e'l'g'o'o'G''''' 'g'n'i'd'u'l'c'n'i' ','s'm'e't's'y's' 'T'O' 'd'e'y'o'l'p'e'd' 't's'o'M'n'n'.'r'e'p'a'p' 's'i'h't' 'n'i' 'd'e'n'i'f'e'd' 's'a' 's'p'a'm' 'e'u'l'a'v'-'y'e'k' 't'r'o'p'p'u's' 't'o'n' 'o'd' 's'm'h't'i'r'o'g'l'a' 'e's'e'h't' 't'u'b' ','s't's'i'l' 'd'e'r'e'd'r'o' 'f'o' 'g'n'i't's'e'n' 's'e'd'i'v'o'r'p' 'h'c'i'h'w''5'1'0'2':'g'n'a'W',''}' ''','y'j'3'0'0'2':'t'a'n'g'I','v'i'2'0'0'2':'s'i'v'a'D'{'e't'i'c''~'s't'n'e'm'u'c'o'd' 'L'M'X' 'g'n'i't'i'd'e' 'o't' 'T'O' 'e'z'i'l'a'r'e'n'e'g' 's'm'h't'i'r'o'g'l'a' 'e'm'o'S' '.'s'n'o'i't'a'c'i'l'p'p'a' 'y'n'a'm' 'r'o'f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'r'i'u'q'e'r' 'e'r'a' 't'a'h't' 's'e'r'u't'c'u'r't's' 'e'e'r't' 'd'e't's'e'n' 'e'h't' 't'r'o'p'p'u's' 't'o'n' 'o'd' 'd'n'a' ')'e'l'p'm'a'x'e' 'r'o'f' ','s'r'e't'c'a'r'a'h'c' 'f'o'(' 'e'c'n'e'u'q'e's' 't'a'l'f' 'a' 's'a' 't'n'e'm'u'c'o'd' 'a' 't'a'e'r't' 'm'e'h't' 'f'o' 't's'o'M' '.'}'d'f'5'9'9'1':'s'l'o'h'c'i'N','f'v'8'9'9'1':'n'u'S','x'w'6'9'9'1':'l'e's's'e'R','e'u'9'8'9'1':'s'i'l'l'E'{'e't'i'c''~'s'n'o'i't'a'c'i'l'p'p'a' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 'd'e's'u' 'n'e'e'b' 'g'n'o'l' 'e'v'a'h' ')'T'O'(' '}'n'o'i't'a'm'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'o'{'h'p'm'e'''''_' 'n'o' 'd'e's'a'b' 's'm'h't'i'r'o'g'l'A'n'n'}'k'r'o'w''''W' 'd'e't'a'l'e'R'{'n'o'i't'c'e's''n'n'';')'''s'g'g'e'''('t'r'e's'n'i'.')'''g'n'i'p'p'o'h's'''('t'e'g'.'c'o'd' '=' 's'g'g'e' 't'e'l'n';']'[' '=' ')''''}'''g'n'i'p'p'o'h's'''('t'e'g'.'c'o'd'n';'}'{' '=' 'c'o'd'n''''''''''''''''''''''''''''''''}']'''k'l'i'm''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'l'e'i'f'''''''''''''''''''t'c'e'j'b'o' ''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','r'o's'''''g'n'i'y'''r'''''u'c' 'a' 's'a' 's't'c'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''r'e't'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't' 's'e't'a'g'i'v'a'n' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'c'a'e' 'r'o'F'''''''''''''''a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'T'p'a'm'{'f's't'x'e't'' '.'t'n'e'm'u'c'o'T''''''''''p'a'm' 'd''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''s'''''t'''''n'''''e'''''t'''''n'''''o'''''c''''' '''''e'''''h'''''t''''' '''''g'''''n'''''i'''''t'''''n'''''e'''''s'''''e'''''r'''''p'''''e'''''r''''' '''''n'''''o'''''i'''''t'''''c'''''n'''''u'''''f''''' '''''l'''''a'''''i'''''t'''''r'''''a'''''p' 'd'e't's'e'n' 'a' 'o't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't' 's'p'a'm' '$'p'_'A'$' ','n'o'i't'i'd'd'a' 'n'I' '.'w'o'l'e'b' 'd'e'b'i'r'c's'e'd' 's'a' 't'n'e'm'u'c'o'd' 'e'h't' 'n'i' ''''''''''''''''''''''''''n'o'i't'p'm'u's's'a' 'e'h't' 's'e'z'i'l'a'm'r'o'f'''n'''''o'''''i'''''t'i's'o'p' 'a' 's'e'i'f'i't'n'e'd'i' 'h'c'i'h'w' ','}'r'o's'r'u'c'{'h'p'm'e'' 'a' 'o't' 'e'm'a'n' 'e'l'b'a'i'r'a'v' 'e'h't' 's'p'a'm' '$'p'_'''''''p'-'A'$' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'd'n'a'm'm'o'c' '}'t'e'l'{'f's't'x'e't'' 'h't'i'w' 'd'e'n'i'f'e'd' 's'e'l'b'a'i'r'a'v' 'l'a'c'o'l' 'e'h't' 's'n'i'a't'n'o'c' '''''''''''''''''''''''''''''''''''','y'l'l'a'n'i'F' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 's't'c'e'l'e's' 'd'n'a' 't's'i'l' 'a' 's'a' 'y'e'''k''''' ''''' '['''''''''t'''''a'''''h'''''t''''' '''''t'''''a''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'{''''''''}'n'%'}'$'2'#'e'l'y't's'y'a'l'p's'i'd''$'{''''''''''''''''5''''''{'}'';'''3'{''''''}'''''n'''''g'''i'l'a'''''''''''''''''''''}'D'I'r'e'e'P'{'m'r'h't'a'm'' 'n'i'' 'i't'l''''' ' ' 'n'u'm''''''''''''''''''''''''''''''''''''''''''''''''''&'&''''''''''''''''''''''''''b'b''''''''''}'N'{'B'B'h't'a'm'' 'n'i'' ''''''''''''''''''''''''''''''{'}''''' '''''''''''4'3'{'n'g'i'l'a'i't'l'u'm'' '&''''''''''''''''' '&''''' '''''''''''''''''''''n''' '{'' '=' 'p'_'A''''_' '''%'''''''''''5'''''''''''{'}'3''''n'''''{'''''''n'g'i'l'a'i't'''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'h't'i'e' ','e'd'o'n' 'h'c'n'a'r'b' 'e'h't' 'f'o' 'e'p'y't'a't'a'd' 'e'h't' 'h't'i'w' 'd'e'g'g'a't' 'e'r'a''''''l'''''u'''''m'''''''' '''''&'''''''''''''''''''''''''''''''''''''' ''''' ''''' ' 'n''''''''''''&'&' '}''x'&''o'b'm''}'1'''' '}''''#'{'n'a'p's'i't'l'u'''''''''m'' ' 'n'%'{'' ''}']'2'['}'n'g'i'l'a'i't'l'u'm''{'d'n'a'm'm'o'c'w'e'n''n''''''''''''''''''''''''''''''''''''''''''''''3'''''''' '&'''''''''''''''''''''''''''''''''''''''''''''''''''''&'''''''''''''&'&'''''''''''''''''''''''''g'S''''''&'&'''n'''''i'''''t'''''a'''''e'''''r'''c' '''''''''''''''''''&'&''''''''''''''n'o'i't'a'u'l'a'v'e' 'n'o'i's's'e'r'p'x'e'''''''''b'''''''''''''''''''''''''''''&'&''''''''''''''o'''''''''''''''''''''''''''''t's'p'a'm'' '''&'&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&'&''''''''''''o't's'p'a'm'' '''''''''''''''''''''''&''''''''''''&'&''''''''''&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&''3'''&''''''''''''''''''''o't's'p'a'm'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'&''''''2'{'}'''''''&'&'''''''' ''&' ''*'t'a'n'g'i'l'a'{'n'i'g'e'b''n'''''' ''''''''&'&'''''''''&' ''''''''''''''''' ' ' ' 'n''''''''''''''''''''''''' ''''''''''''&'&''''&' '''''''''d'a'u'q''''''''''' 'd'q'u''''''''''''''''L''''''''''}'R'A'V'{'m'r'h't'a'm'' ':'v' '&'&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ')'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''''''l'l'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''' ','r'e'v'e'w'o'H'''''''''''''''''''''''''''y't'i'u''''''''''''''''e'l'p'm'i's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'n'o'i't'a'r'e'p'o' 'g'n'''i't'a'r'e'n'e'''''''''''$'''''''''''''''''''-'e'k'a'M'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''',''''''''''''''''''}'l'a'v''''''''' ' ' 'n't'','''x''''''''''''''''''''''t'''''''g'''''''g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'}'n'g'i's's'A'{'c's't'x'e't''{'l'e'''''-'e'k'a'M''','''''''b' ''''',''' ''''''a'''''L'''''t'''f'e'L''n'}'''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-'e'k'a'M''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''p'_'A' 'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')''''''''''''''''''''1' ''''''''''''''''''''''''''B''''''''''''''''''''''''''''(''''''''''''r'''''''')'p' ','1' '+' ''t'''' ' ' 'n''c''''''''''''''''''''''''''''''''''''''''b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e't'a't's' 'r'e'e'p' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','r'e't's'i'g'e'r' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','|'}'{'|'b'r'e'v'' 'l'a'''''r''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l't'n'e't's'i's'n'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''}'e't'a't's' 'r'o'i'r'p' 'g'n'i'r'a'e'l'C'{'n'o'i't'c'e's'b'u's'b'u's''n''n''e't'a't's' 'e'm'a's' 'e'h't' 's'd'r'a'w'o't' 'e'g'r'e'v'n'o'c' 's'r'e'e'p' 'l'l'a' 'e'r'u's'n'e' 's'e'l'u'r' 'e's'e'h't' 't'a'h't' 'r'e't'a'l' 'w'o'h's' 'e'W' ''''''''''''''''''''''''''''' ''.'t'n'i'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'e'n'i'm'r'e't'e'd' 'o't' 's'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'n'o' '$'<'$' 'n'o'i't'a'l'e'r' 'g'n'i'r'e'd'r'o' 'e'h't' 's'e's'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i't'a'c'o'l''''o' 'y'b' 'r'e''''''''''''''''''''''''}'s'p'e'd'{'t'i'h't'a'm'' 's'u'n'i'm't'e's'' ''d'r'o' 't'n'e't's'i's'n'o'c' 'a' 's'e'r'u's'n'e' 'd'n'a' ','n'o'i't'i's'o'p' 'e'm'a's' 'e'h't' 't'a' 's't'n'e'm'e'l'e' 't's'i'l' 'g'n'i't'r'e's'n'i' 'y'l't'n'e'r'r'u'c'n'o'c' 's'r'e'e'p' 'e'l'p'i't'l'u'm' 'f'o' 'e's'a'c' 'e'h't' 's'e'l'd'n'a'h' '$'2'_'}'t'r'e's'n'I'{'c's't'x'e't''$' '.'''''''''''''n'a' ','e'r'u't'c'u'r't's' 't's'i'l' 'd'e'k'n'i'l' 'e'h't' 'g'n'i't'a'l'u'p'i'n'a'm' 'y'b' 'n'o'i't'r'e's'n'i' 'e'h't' 's'm'r'o'f'r'e'p' '$'1'_'}'t'r'e's'n'I'{'c's't'x'e't''$''''''''''''' 'e'h'T' '.'t's'i'l' 'e'h't' 'n'i' 'n'o'i't'i's'o'p' 't'a'h't' 'r'e't'f'a' 'd'e't'r'e's'n'i' 's'i' 't'n'e'm'e'l'e' 'w'e'n' 'e'h't' 'd'n'a' ','$'}'v'e'r'p'{'t'i'h't'a'm''$' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'o't' 's'r'e'f''''v'e'r' 'r'o's'r'u'c' 'e'h't' ','e's'a'c' 's'i'h't' 'n'I' '.'t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'o't'n'i' 't'n'e'm'e'l'e' 'w'e'n' 'a' 'f'o' 'n'o'i't'r'e's'n'i' 'e'l'd'n'a'h' 's'e'l'u'r' '$'}'2','1'{'_'}'t'r'e's'n'I'{'c's't'x'e't''$' 'e'h'T''n'n''e't'a't's' 'l'a'c'o'l' 'f'o' 'e'e'r't' 'e'h't' 'o't'n'i' 'e'u'l'a'v' 'w'e'n' 'e'h't' 'g'n'i't'a'r'o'p'r'o'c'n'i' 'y'l'l'a'n'i'f' 'd'n'a' ','t'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'd'd'a' 'n'e'h't' ',')'n'o'i't'c'e's' 't'x'e'n' 'e'h't' 'n'i' 'd'e's's'u'c's'i'd' 's'a'(' 'r'o's'r'u'c' 'e'h't' 't'a' 'e'u'l'a'v' 'r'o'i'r'p' 'e'h't' 'g'n'i'r'a'e'l'c' 't's'r'i'f' ':'e'r'u't'c'u'r't's' 'r'a'l'i'm'i's' 'a' 'e'v'a'h' '}'n'g'i's's'a'{'f's't'x'e't'' 'r'o'f''''''''''''''''' 'e'e'r'h't'''''''''''''''''' 's'e'l'u'r' 't'n'e'm'n'g'i's's'a' 'e's'e'h'T' '.'|']'['|'b'r'e'v'' 't's'i'l' 'y't'p'm'e' 'e'h't' 'f'o' 't'n'e'm''''''''''''e'''''''''''''''''t'''''i'''''l''''' '''''p'''''a'''''m''''' '''y't'p'''m'''''e' 'e'h't' 's'i' 'e'u'l'a'v' 'e'h't' 'e'r'e'h'w' 't'n'e'm'n'g'i's's'a' 's'e'l'd'n'a'h' ''a' 'f'o' 't'n'e'm'n'g'i's's'a' 's'e'l'd'n'a'h' 'e'l'u'r' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'}'n'g'i's's'a'{'f's'h't'a'm''''''''''x'e't''$''''' 'e'h't' 'f'o' 'n'o'i't'a'u'l'a'v'e' 'e'l'd'n'a'h' 's'e'l'u'r' '}'t's'i'L'-'y't'p'm'E'{'c's't'x'e't'' 'd'n'a' '}'p'a'M'-'y't'p'm'E'{'c's't'x'e't'' ','}'n'g'i's's'A'{'c's't'x'e't'' 'e'h'T''''' '.'s'e'i'l'p'p'a' 'n'o'i't'a't'u'm' 'e'h't' 'h'c'i'h'w' 'o't' 'e'd'o'n' 'e'e'r't' 'e'h't' 'f'o' 't'x'e't'n'o'c' 'e'h't' 'o't' 'd'e'd'n'e'c's'e'd' 'n'e'h'w' '.'e'.'i' ','y't'p'm'e' 's'i' 'r'o's'r'u'c' 'e'h't' 'n'i' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'e'h't' 'n'e'h'w' 'y'l'p'p'a' '}'s'e'l'u'r'-'n'o'i't'a'r'e'p'o':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 's'e'l'u'r' 'g'n'i'n'i'a'm'e'r' 'e'h'T'n'n'.'n'o'i't'a'r'e'p'o' 's'i'h't' 'y'b' 'e'd'a'm' 'n'o'i't'a't'u'm' 'a''''''''''t'u'm' 's'e'd'u'l'c'n'i' 'e'e'r't'b'u's' 'e'h't' 't'a'h't' 'e't'a'c'i'd'n'i' 'o't' '$')'k'('}'s'e'r'p'{'f's'h't'a'm''$' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'd'd'a' ','r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'b'i'r'c's'e'd' 'h't'a'p' 'e'h't' 'g'n'o'l'a' 'e'd'o'n' 'e'e'r't' 'h'c'a'e' 't'a' '}'D'I'-''''_'d'd'A'{'c's't'x'e't'' 's'e'k'o'v'n'i' 'o's'l'a' 'e'l'u'r' '}'d'n'e'c's'e'D'{'c's't'x'e't'' 'e'h'T'''''n'n'''' '.'y'l'e'v'i't'c'e'p's'e'r' 't's'i'l' 'r'o' 'p'a'm' 'y't'p'm'e' 'n'a' 'e't'a'e'r'c''''c' '}'t's'i'L'-'d'l'i'h'C'{'c's't'x'e't'' 'd'n'a' '}'p'a'M'-'d'l'i'h'C'{'c's't'x'e't'' 'e's'i'w'r'e'h't'o' ','t'i' 's'd'n'i'f''l'a'c'o'l' 'e'h't' 'n'i' '''''''''''''''''''''' '}'t'e'G'-'d'l'i'h'C'{'c's't'x'e't'' ','s't's'i'x'e' 'y'd'a'e'r'l'a' 'e'd'o'n' 'e'e'r't' 'e'h't' 'f'I' '.'r'o's'r'u'c' 'e'h't' 'n'i' 'n'e'v'i'g' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' 'e'e'r't' 't'n'e'm'u'c'o'd' 'e'h't' 's'd'n'e'c's'e'd' 'y'l'e'v'i's'r'u'c'e'r''''d' 't'I' '.'s'e'i'l'p'p'a' 't's'r'i'f' 'e'l'u'r' '}'d'n'e'c's'e'D'{'c's't'x'e't'' 'e'h't' ','$'}'c'o'd'{'f's'h't'a'm''$''''' 't'o'o'r' 't'n'e'm'u'c'o'd' 'e'h't' 't'o'n' 's'i' 't'a'h't' 'e'd'o'n' 'e'e'r't' 'a' 'o't' 's'r'e'f'e'r''o'i't'a'r'e'p'o'''''''' 'r'o's'r'u'c' 'e'h't' 'n'e'h'W'n'n'.'t'n'e'm'u'c'o'd' 'a' 'n'o' 's'e't'a'd'p'u' 'e't'a't's' 'e'h't' 'm'r'o'f'r'e'p' 'o't' '}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' 'd'n'a' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 'y'b' 'd'e's'u' 'e'r'a' 's'e'l'u'r' 'e's'e'h'T' '.'$'''}'x't'c'{'t'i'h't'a'm''$' 't'x'e't'n'o'c' 'd'e't'a'd'p'u' 'n'''''''''''''''' 'w'e'n' 'a' 'e'c'u'd'o'r'p' 'd'n'a' ','$'}'x't'c'{'t'i'h't'a'm''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 't'c'e'f'f'e' 'e'h''''''''''''''' 'A''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''C''''-'''c'''''''''','n'r'u't' 'n'I' 's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'u'l'a'v' 'o't''''''''''''''''''''''' 'y'b'''''''''''''''''''''''''''''''''''''''''''h't'a'm''''''''''''''''''''''''('''''''''''''''''''''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'a''''''''''''''''''''''''.'d'''''''''''''''''''''''''''''''n'o'n' 'r'i'e'h't' 'e'v'r'e's'e'r'p' 'l'l'i'w' 'n'o'i't'a'r'e'p'o' 'g'n'i'r'a'e'l'c' 'e'h't' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'g'n'i'n'i'a't'n'o'c' 's't'n'e'm'e'l'e' 't's'i'l' 'r'o' 'p'a'm' 'y'n'A' '.'d'e't'e'l'e'd' 'd'e'r'e'd'i's'n'o'c' 'e'b' 's'u'h't' 'd'n'a' ','s't'e's' 'e'c'n'e's'e'r'p' 'y't'p'm'e' 'h't'i'w' 'p'u' 'd'n'e' 'l'l'i'w' 'n'o'i't'a'r'e'p'o' 'g'n'i'r'a'e'l'c' 'e'h't' 'e'd'e'c'e'r'p' 'y'l'l'a's'u'a'c' 's'n'o'i't'a'c'i'f'i'd'o'm' 'e's'o'h'w' 's'e'i'r't'n'e' 'p'a'm' 'r'o' 's't'n'e'm'e'l'e' 't's'i'l' 'y'n'a' ','s'u'h'T' '.'$'}'s'p'e'd'{'t'i'h't'a'm''$' 'e'd'u'l'c'x'e' 'o't' 'd'e't'a'd'p'u' 'e'r'a' 's't'e's' 'e'c'n'e's'e'r'p' 'd'n'a' ','}'m'e'l'E'r'a'e'l'c'{'f's't'x'e't'''''$' 'g'n'i's'u' 'd'e'r'a'e'l'c' 'y'l'e'v'i's'r'u'c'e'r' 's'i' 't's'i'l' 'r'o' 'p'a'm' 'e'h't' 'f'o' 't'n'e'm'e'l'e' 'h'c'a'e' ':'h'c'a'o'r'p'p'a' 'r'a'l'i'm'i's' 'a' 's'e'k'a't' 's't's'i'l' 'd'n'a' 's'p'a'm' 'g'n'i'r'a'e'l'C'n'n'.')'n'o'i't'a'r'e'p'o' 'g'n'i'r'a'e'l'c' 'e'h't' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 't'n'e'm'n'g'i's's'a' 'm'o'r'f'(' '''''''''''''''''''''$'}'s'p'e'd'{'t'i'h't'a'm'''''''''''''t'x'e't''$' 'n'i' 'r'a'e'p'p'a' 't'o'n' 'o'd' 't'a'h't'''''''' 's'D'I' 'n'o'i't'a'r'e'p'o' 'l'l'a' 'g'n'i'n'i'a't'e'r' 't'u'b' ','n'o'i't'a'r'e'p'o' 'g'n'i'r'a'e'l'c' 'e'h't' 'e'd'e'c'e'r'''''''''''''p' 'y'l'l'a's'u'a'c' 'e'r'a' 'h'c'i'h'w' '.'e'.'i' ','$'}'s'p'e'd'{'t'i't'x'e't''$' 'n'i' 'r'a'e'p'p'a' 't'a'h't' 's'D'I' 'n'o'i't'a'r'e'p'o' 'l'l'a' 'g'n'i'''''' '''r'e't's'i'g'e'r' 'a' 's'e't'a'd'p'u' 's'D'I' 'n'o'i't'a'r'e'p'o' 'm'o'r'f' 'g'n'i'p'p'a'm' 'a' 's'n'i'a't'n'i'a'm' 'r'e't's'i'g'e'r' 'a' ','e'l'u'r' '}'n'g'i's's'A'{'c's't'x'e't'' 'e'h't' 'y'b' 'd'e'n'i'f'e'd' 's'A'' '''''''''''''''''''''''''''' 's'e'v'o'm'e'r' '}'g'e'R'-'r'a'e'l'C'{'c's't'x'e't''n'n'.'t'n'e's'b'a' 's'i' 'y'e'k' 'e'h't' 'f'i' ')'g'n'i'h't'o'n' 's'e'o'd' 'h'c'i'h'w'(' '}'e'n'o'N'-'r'a'e'l'C'{'c's't'x'e't'' 'y'b' 'r'o' ','$'}'x't'c'{'t'i'h't'a'm''$' 'n'i' 's'r'a'e'p'p'a' 'y'e'k' 'e'v'i't'c'e'p's'e'r' 'e'h't' 'f'i' '}'g'e'R'-'r'a'e'l'C'{'c's't'x'e't'' 'd'n'a' '$'1'_'}'t's'i'L'-'r'a'e'l'C'{'c's't'x'e't''$' ','$'1'_'}'p'a'M'-'r'a'e'l'C'{'c's't'x'e't''$' 'y'b' 'd'e'i'f's'i't'a's' 'e'r'a' '}'y'n'A'-'r'a'e'l'C'{'c's't'x'e't'' 'f'o' 's'e's'i'm'e'r'p' 'e'h'T''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'a'm'''''''''''''''''''''''.'$'}'s'p'e'd'{'t'i't'x'e't''$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'y'n'a' 'e'd'u'l'c'x'e' 't'u'b' ','s'D'I' 'n'o'i't'a'r'e'p'o' 'd'e't's'e'n' 'y'n'a' 'e'd'u'l'c'n'i' 'o't' 't'e's' 'e'c'n'e's'e'r'p' 'e'h't' 's'e't'a'd'p'u' 'o's'l'a' 'd'n'a' ','}'T'g'e'r'{'f's't'x'e't'' 'r'o' '}'T't's'i'l'{'f's't'x'e't'' ','}'T'p'a'm'{'f's't'x'e't'' 'e'p'y't' 'f'o' 's'i' 't'i' 'r'e'h't'e'h'w' 'f'o' 's's'e'l'd'r'a'g'e'r' ','''' 'y'e'k' 'n'e'v'i'g' 'a' 'h't'i'w' 'a't'a'd' 'y'n'a' 't'u'o' 'r'a'e'l'c'''''''''''''''''''''''''''''''''''''''''''l'c' 'y'l'e'v'i's'r'u'c'e'r' 'o't' '}'y'n'A'-'r'a'e'l'C'{'c's't'x'e't'' 's'e's'u' '}'m'e'l'E'-'r'a'e'l'C'{'c's't'x'e't'' '.'}'m'e'l'E'r'a'e'l'c'{'f's't'x'e't'' 'o't' 'g'n'i't'a'g'e'l'e'd' 'y'b' ','d'e't'a'u'l'a'v'e' 's'i' 'n'o'i't'a'r'e'p'o' 's'i'h't' 'w'o'h' 's'w'o'h's' 'e'l'u'r' '}'e't'e'l'e'D'{'c's't'x'e't'' 'e'h'T' '.'o't' 's'r'e'f'e'r' 'r'o's'r'u'c' 'e'h't' 't'a'h'w' 'n'o' 'g'n'i'd'n'e'p'e'd' ','p'a'm' 'a' 'm'o'r'f' 'y'e'k' 'a' 'r'o' 't's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'm'o'r'f' 't'n'e'm'e'l'e' 'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'e'h't'i'e' 'e't'e'l'e'd' 'o't' 'd'e's'u' 'e'b' 'n'a'c' 'h'c'i'h'w'(' 's'n'o'i't'a'r'e'p'o' '''''''''''''}'e't'e'l'e'd'{'f's't'x'e't'' 'e'h't' 'w'o'h' 's'w'o'h's' 'e'l'u'r' '}'e't'e'l'e'D'{'c's't'x'e't'' 'e'h'T'n'n'.'d'e'h'c'u'o't'n'u' ''t''''''''''''''''''''''''''s'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'n'a' 'g'n'i'v'a'e'l' 'e'l'i'h'w' ','n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c' 'e'h't' 'e'd'e'c''''d'e'r'p' 'y'l'l'a's'u'a'c' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'y'n'a' 'g'n'i'o'd'n'u' 'y'b' 'e't'a't's' 'y't'p'm'e' 's't'i' 'o't' 't'i' 't'e's'e'r' 'o't' 's'i' 'g'n'i'h't'e'm'o's' 'g'n'i'r'a'e'l'c' 'f'o' 't'c'e'f'f'e' 'e'h't' ','y'l'e'v'i't'i'u't'n'I' '.'}'s'e'l'u'r'-'r'a'e'l'c':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'e'v'i'g' 'e'r'a' 's's'e'c'o'r'p' 'g'n'i'r'a'e'l'c' 's'i'h't' 'e'l'd'n'a'h' 'o't' 's'e'l'u'r' 'e'h'T' '.'t's'o'l' 't'o'n' 'e'r'a' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n''''m'e'r'r'u'c'n'o'c' 't'a'h't' 'g'n'i'r'u's'n'e' 'o's'l'a' 'e'l'i'h'w' ','''' 'd'e'r'a'e'l'c' 's'i' ')'d'e't'e'l'e'd' 'r'o' 'n'e't't'i'r'w'r'e'v'o' 'g'n'i'e'b' 'e'u'l'a'v' 'e'h't'(' 'e't'a't's' 'r'o'i'r'p' 't'a'h't' 'e'r'i'u'q'e'r' 's'n'o'i't'a'r'e'p'o' 'n'o'i't'e'l'e'd' 'd'n'a' 't'n'e'm'n'g'i's's'A' 't'x'e't'n'o'c' 'a' 'n'i'h't'i'w' '$'}'p'o'{'f's'h't'a'm''$' 'n'o'i't'a'r'e'p'o' 'n'a' 'e't'a'u'l'a'v'e' 't'a'h't' 's'e'l'u'r' 'e'h't' 's'e'v'i'g' '}'s'e'l'u'r'-'n'o'i't'a'r'e'p'o':'g'i'f'{'f'e'r''~'e'r'u'g'i'F'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''$'''''''''''p'''''_'''''A'''''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''')'''''}'''''t'''''u'''''m'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''':'''''''''''''''''''''''m'''''P''''''''''''''D'''''I'''''''''''''''''r''''''''''''''''''''''''''''' ''''''''''','''''}'''''r'''''u'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''p'''''O'''''e'''''k'''''a'''''m'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''p'''''_'''''A'''''$'''''{'''''C'''''f'''''n'''''I'''''y'''''r'''''a'''''n'''''i'''''r'''''T''''''''n'''''}'''''}'''''p'''''O'''''-'''''e'''''k'''''a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-'e'k'a'M'''''''''''''-'e'k'a'M''''''''''''''''-'e'k'a'M'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$'''''p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'d'l'e'i'Y'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'g'a's'e'm''''''''''''''''''''''''''' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''$''''''''''''''''''''''''''''''''x''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'y'a'''w'e'd'i's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'d'l'i'h'c'''''''''''''''''''' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''{'t'i'h't''''d'l'i'h''''' '''''''a'''''''''''m'' 'o't'l'a'v'e'''''e' '1'_'k' ','','''''''''''''''''''''''''''''''''''''''''' ' ' ' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''}'x't'c'{'t'i'h't'a'm'' '''r'T'''o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm'' ','1'_'k'('}'d'I'd'd'a'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n''''''''''''d''''''''''''}'m'e'3'{'e'c'a'p's'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'%''''''r'''''e'''''t'''''n'''''e'''''c'''''{'''d'n'e''n't'n'u'o'm'A'p'i'k'S'f'o'o'r'p''''''''''''''''''''''''''''''''''''''%'''''''''''''''''''''''''''''''''n''''''''''''''}'r'e't'n'e'c'{'n'i'g'e'b'''''}'r'e't'n'e'c'{'d'n'e''n't'n'u'o'm'A'p'i'k'S'f'o'o'r'p'''''''''''''''''''''''''''''''''}'r'e't'n'e'c'{'n'i'g'e'b'''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f''''''''''e'e'r't'f'o'o'r'p'''o'''''o'''''r'''p''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'}''{''''''''m'' 'o't'l'a'v'e''''''''''''''''' ','','}'x't'c'{'t''''''o't'l'''t''''s'''''''''''''''''''''''''''''''''''e'''''''''''''''''r'''''''''''p''''''''''''''''''''''''''i'''''''''''''''''a'''''v'''''e''''''''''''''''''''i'''''''''''''''''''h'''''''''''''''''''''''''''''''''''t'''''''t'i'''a'''''''m''''''''''''''''''' ''''')'''''k'''''('''''}'''''''''''''''''s'''''''''''''''''e'''''''''''''''''r'''''''''''''''''p'''''''''''''''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''$'''''{'''''C'''''f'''''n'''''I'''''y'''''r'''''a'''''n'''''U''''''''n'''''}'''''$'''''2'''''_'''''}'''''e'''''c'''''n'''''e'''''s'''''e'''''r'''''P'''''{'''''c'''''s'''''t'''''x'''''e'''''t''''''''$'''''{'''''l'''''e'''''b'''''a'''''L'''''t'''''f'''''e'''''L''''''''n'''''}'''''$''''')'''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''m'''''o'''''d'''''{'''''m'''''r'''''h'''''t'''''a'''''m'''''''' '''''n'''''i'''''t'''''o'''''n'''''''' ''''')'''''k'''''('''''}'''''s'''''e'''''r'''''p'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''$'''''{'''''C'''''m'''''o'''''i'''''x'''''A''''''''n'''''%'''''n'''''}'''''m'''''e'''''3'''''{'''''e'''''c'''''a'''''p'''''s'''''h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$')')'k'('}'s'e'r'p'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k'('}'s'e'r'p'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'1'_'}''''n'''e'c'n'e's'e'r'P'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L'''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'s'e'r'p'{'f's'h't'a'm''$'{'C''''''''''e'e'r't'f'o'o'r'p'''m'''''o'''''i'''x'A'n'%'n'}'m'e'3'{'e'c'a'p's'h''''''''''''''''''''''''''''''''''''}'''''''''''m'''''e'''''3'''''{'''''e'''''c'a'p's'h''''''''''''''''''''''''''''''''''''''''''''''''' '}'x'i'r't''' '''a'm'{'d'n'e'' ' ' ' 'n'''''''''d''''l'i'h'c'''l'''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'e'G'-''''''''''''''''''''''''''''''''''''''''''''r'e't'n'e'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'M'-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'l'i'f'''''''''''''''''''''''''''''''}'''%''''''''m'''''e'''''3'''''{'''''e'''''c'''''a'''''p's'h''f'o'o'r'P'y'a'l'p's'i'D''''''''''''''''''''''''''''''''''''(''''')''}'T't'''s'i'l'{'f''''''t'''''''s'i'L'-'s'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' 'n''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'''''''''''''r'e't'n'e'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''$'1'_'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']','' '}''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'d'''l'i'h'c'{'t'i'h'''t'a'm'' '''''''r'e't'a'u'Q'''''o't'l'a'v'e'''''''e'3'' ')'k'('}'T'p'a'm'{'f's'h't'a'm'' ','','''''''''''''''''''''''''''''''1'''''''''''''''}'d'l'i'h'c'{'t'i'h't'a''2'''m''''''''_'''''''''''''3'_''''+''''''''''''''''''''''1''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''2'''''''''''''''''''''''''''''''''}'$'}'m'e'l'e'{'t'i'h't'a'm''_'}'s'e'r'p'''''''''''''''}'d'l'i'h''''''''''''''''''''''3'_'''''''''''}''''''''3'_''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''' '3'_'}'s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}''{'' ','','}'x't'c'{'t'''''''t'o'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x'''t'''c'{'t'i'h'''''t'a'm''$'{'C'''''f'n'I'y'r'a'''''n'U''n'}'}'e'n'o'N'-'r'a'e'l'C'{'c's't'x'e't''{'l'e'''''b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' 'k'$'{'C'm'o'i'x'A''n''''''''''''''''''''r'''''''''''''''''''''''''''''''''''''''''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''')''''')'''''k'''''('''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' '''''''''''''''''''''''''''''''''''''''''''''''''t'f'e'L''n'}'$'}''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'s'e'r'p'{'''''''''''''''''''''''''''''''''''''''''''''''' ' ' 'n'' '}'x'i'r't'a'm'{'n'i'g'e'b'''''' ' ' ' 'n'''''''''''''''''''''''''''''''''''}'x'i'r't'a'''''''''''''''''''' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''m'{'d'n'e'' '''''''''' ' ' 'n''' '''''''''''''''''''''''''''''''''''''''''}'x'i'r't'a''''''''''''''''''''''' ' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''m'{'d'n'e'' '''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'x'i'r't'a'm'{'d'n'e'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''','''''''''}'$'}''{'' ','}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n')'}'e'n'o'd'{'t'i'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'p'a'M''''''''''t'''''''''''''''''''''''''''''')'}'d'''''a'''''e'''''h'''''{'''''''''''''''''}'s'e'r'p'{'t''$'i'h't'a'm'' ','','''''$'1'_'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''''''''''''''''''''''''''''''''''''''s'''''i'''''L'''''r'''''a'''''e'''''l'''''c'''''''''''''''''r'''''''''''''''''''''}'s'e'r'p'{'t'i'h't'a'm'' ','',''a'''''e'''''''''''''''''''' ' ' ' 'n'}'x'i'r't'a''','''''''''''' ' ' ' '''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''' ' ' ' 'n'}'x'i'r't'a'm''''''''''m''''''''''''''''''''''' ')'''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'x'i'r't'a'm'{'d'n'e'' '2'_'}'s'e'r'p'{'t'i'h't'a'm'' ','''''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n''' ')'}'t'x'e'n'{'','''t'i'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'t's'i'L'r'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'i'L''''''''''''''''''''''''''''''''''''''''''''t'''''''''''''''''''''''''''''''''''''''''''''''''''}'''''$'''''}''''''''{'''''''' '''''''''''''''' 'd'n'a'''''''e't'a't's' ' 'g'n'i't'e'l'e'd''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''')'''''k''''' '''''''''''''''''''''''''''''''''''''''''s'''''i'''''L'''''r'''''a'''''e'l'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'c'{'f's'h't'a'm'' ','','''}'x't'c'{'t'i'h't'a'm'''''''t'a'' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''$'{'C'm'o'i'x'A''n'x'i'r't'a'm'{'d'n'e''''' ' '1'_'}'s'e'r'p'{'t'i'h't'a'm'' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k' '''''''''''''e'l'E''''L'r'a'e'l'c'''{'''n'i'g'e'b'''''''''' '}'x'i'r't'a'm'{'d'n'e'' ' ' ' 'n''''''''''''''''''''''''''''''''''''''' ''''' ' 'n''' ''m'{'n'i'g'e'b''''''l'''''c'''''{'''''f'''''s'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'3'_'}'p'a'M'-'r'a'e'l'C'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'s'y'e'k'{'m'r'h't'a'm''''''r''''''''''''''''''''''''''''''''''''''''''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''''t's'i'L'''''''''''')''''''2''''')'''''k''''''''''''''t''''''''''''''''''''''''''''o'''''t'''''l''''''''''''''''''''''''''''''''''''''''''''''2'_'}'s'e'r'p'{'t'i'h't'a'm'' ',''p'u'c'','' '1'_'}'s'e'r'p'{'t'i'h't'a'm'' ','''''''''''a'''''''''''''''''v'''''''''''''''''e'''''''''''''''''''''''''' ''''''''''''''''')'''''''''''''''''k''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''i'''''L'''''r'''''a'''''e'''''l'''''c'''''''''''''''''('''''''''''''''''}'''''''''''''''''T'''''''''''''''t'''''s'''''i'''''l'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''''''''''''''''''''''''''''''''''''''a'''''e'''''l'''c'''''' '=' '}'e'n'o'd'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'2'_'}''''{'s'e'r'p'{'t'i'h't'a'm'' 'p'u'c'' '1'_'}'s'e'r'p'{'t'i'h't'a'm'' ','','''''}'x't'c'{'t'i'''''''''''''''''''' 'o't'l'a'v'e'''''''h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'e'n'o'd'{'t'i'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'p'a'M'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'$'2'_'}'p'a'M'-'r'a'e'l'C'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'2'_'}'s'e'r'p'{'t'i'h't'a'm'' ','','''''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n')'}''k'{'' 'p'u'c'' '}'e'n'o'd'{'t'i'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''(''''{'}'p'a'M'r'a'e'l'c'{'f's'h't'a'm'' ','','''''''''',''','''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'1'_'}'s'e'r'p'{'t'i'h't'a'm'' ','''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'m'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'e'n'o'd'{'t'i'h't'a'm'' 'n'i't'o'n'' 'k' ',''e'g'd'e'w'','' ')'}'x't'c'{'t'i'h't'a'm''('}'s'y'e'k'{'m'r'h't'a'm'' 'n'i'' 'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''e'n''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n't'i'h't'a'm'' ','',']','' '}'d'e'r'a'e'l'c'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' ')'k'('}'T'p'a'm'{'f's'h't'a'm'' ',''[' '}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')')'k'('}'T'p'a'm'{'f's'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}''''('r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n's'e'r'p'{'t'i'h't'a'm'' ','','}'d'e'r'a'e'l'c'{'t'i'n'''''''h't'a'm'' 'o't'l'a'v'e'' ')'}''{'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'p'a'M'r'a'e'l'c'{'f's'h't'a'm'' ','',''''')')'k'('}'T'p'a'm'{'f's'h't'a'm''('''''''','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n''''''''''''''$''''''''''''''''''''$'''''1'_'''''''n'}'}'p'a'M'-'r'a'e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T'p'a'm'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''')'}'t'n'e'r'r'u'c'n'o'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r''''''''''{'t'i'h't'a'm'' ','','''''T'''''g'''''e'''''r'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''''''''''''''''''''''''''''''''''''''a'''''e'''''l'''''c'''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''e'r'p'{'t'i'h't'a'm'' ',''p'u'c'',''''''''c'' '2'_'}'s'e'r'p'{'t'i'h't'a'm'' ',''p'u'c'','' '1'_'}'s'e'r'p'{'t'i''''t'h't'a'm'' ','','3'_''''-'}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'y'n'A'''''''''''''m'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'}'y'n'A'-'r'a'e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'x'i'r't'a'm'{'d'n'e'' ''''''' '}'3'_'}'s'e'r'p'{'t'i'h't'a'm'' ','','3'_'}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n''' ')')'k'('}'T'g'e'r'{'f's'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'r'a'e'l'c'{'f's'h't'a'm'' ','','2'_'}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''$'{'C'm'o'i'x'A''n'}'$'}'x'i'r't'a'm'{'d'n'e'' '2'_'}'s'e'r'p'{'t'i'h't'a'm'' ','','2'_'}''''_'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n''' ')')'k'('}'T't's'i'l'{'f's'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'r'a'e'l'c'{'f's'h't'a'm'' ','','1'_'}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''$'{'C'm'o'i'x'A''n'}'$'}'x'i'r't'a'm'{'d'n'e'' '1'_'}'s'e'r'p'{'t'i'h't'a'm'' ','','1'_'}''''_'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n''' ')')'k'('}'T'p'a'm'{'f's'h't'a'm'' ','}'s'p'e'd'{'t'i'h't'a'm''('}'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''}'s'e'r'p'{'t'i'h't'a'm'' ','',']','' '''}'s'e'r'p'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' ')'k'('}'s'e'r'p'{'f's'h't'a'm'' ',''[' '''''''''''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')''''}'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'m'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'}'m'e'l'E'-''''_'r'a'e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'm'e'l'e'{'t'i'h't'a'm''_'}'s'e'r'p'{'t'i'h't'a'm''c'{'t'i'h't'a'm''_''{'t'i'h't'a'm'' 'o't'l'a'v'e'''''=' '''''''''''''''''''''''''''''''''')'k'('}'s'e'r'p'{'f's'h't'a'm'' ','','''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'''''''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm'' ',')'k'('}'T'p'a'm''''''''''g'e'r'{'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']','' '}'d'l'i'h'c'{'t'i'h't'a'm'' ',''''' 'o't's'p'a'm'','' ')'k'('}'T't's'i'l'{'f's'h't'a'm'' ',''['''''}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')')'}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'r'e't'a'u'Q''n'}'}'t's'i'L'-'y't'p'm'E'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'d'l'i'h'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k'('}'T't's'i'l'{'f's'h't'a'm'' ','','''''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'''''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm'' ',')'k'('}'T't's'i'l'{'f's'h't'a'm''('}'d'I'd'd'a'{'f's'h't'a'm'' ','','''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''''m''n'}'$'}'s'e'r'p'{'t'i'h't'a'm'' ','','''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'m'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}']'['{'t't't'x'e't'' '=' '}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b'''''''''''''''''''''''''''''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'a'l'i'm'i's''''''''''''''''''''''r'a'l'i's'm'i' 's'i' 't's'i'L'-'y't'p'M'E' 'O'D'O'T' '%'n'n''s'h't'a'm''('}'d'I'd'd'a'{'''f'''''s'''''''''%''''''''''''''''''%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'r'p'{'t'i'h't'a'm'' ',''''' ','''}'%''x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ','}'s'%''p'e'd'{'t'i'h't'a'm''('}'m'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ','','''' '''h'''''t'''''a'''''m''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$' ',''p'u'c'','' '}'s'e'r'p'{'t'i'h't'a'm'' '=' '''}'s'e'r'p'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'s'e'r'p'{'t'i'h't'a'm'' ','''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ','}'s'p'e'd'{'t'i'h't'a'm''('}'y'n'A'r'a'e'l'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''''''' ''''','''''''','''''''''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''m''$'{'C'm'o'''i'x'A''n's'e'r'p'{'t'i''''''e't'e'''h'''''t'''a'm'' ','','''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'k' ''''''''''''''''t'a'm'' ','}'s'p'e'd'{'t'i''''''f'f'''k''''''''''''''''e't'e'l'e'' '''d'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'''''t'''''a'''''m''''''''('''''}'''''m'''''e'''''l'''''E'''''r'''''a'''''e'''''l'''''c'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''' ','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'a'v'{'t'i'h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'M'-'y't'p'm'E''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''','''''''''''''''''''''''''''}'$']','' '}''}''''''''''''''{'t't't'''''T'p'a'm'''x'''''e'''''''''''''''''']','' '}'d'l'i'h'c'{'t'i'h't'a'm'''''t'''''''''''''''' ',''o't's'p'''''''''''''''''''''''''''''''''}'''''}'''''g'''''n'''''i'''''r'''''t'''''s''''''''{'''''g'''''n'''''i'''''r'''''t'''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'i'{'t'i'h't'a'm''{'' 'p'u'c'' ')')'k'('}'s'e'r'p'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' ')'k'('}'''''s'''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'r'p'{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'d'l'i'''h'c'{'t'i'h't'a'''''''r'e't'a'u'Q'''''''''m'''''' 'o't'l'a'v'e'' ')'k'('}'T'g'e'r'{'f's'h't'a'm'' ','''''}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'''''''a'm'' ',')'k'('}'T'g'e'r'{'f's'h't'a'm''(''''d'l'i'h''''''}'''''d'''''I'''''d'''d'a'{'f's'h't'a'm'' ','''}'x't'c'{'t'i'h't'a'm''''''t'''''i'''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''''''''}'''''x'''''t'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' ''''')''''')'''''k'''''('''''}'''''T'''''g'''''e'''''r'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''}'''''s'''''p'''''e'''''d'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''r'''''a'''''e'''''l'''''c'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''''',''''''''''''''''''''''','''''''''''''''''''''''r'''''''''''''''''p'''''''''''''''''{'''''''''''''''''f'''''''''''''''''s'''''''''''''''''h'''''''''''''''''t'''''''a'''''m'''''''' ''''',''''''''['''''}'''''x't'c'{'t'i'h'''t'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm'' ','}'g'a't'{'t'i'h't'a'm''_'k'('}'d'I'd'd'a'{'f's''''i'h't'a'm'' ','','}'''','x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'2'_'}'D'I'-'d'd'A'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')''''('}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'s'e'r'p'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'')'k'('}'T'g'e'r'{'f's'h't'a'm'' ',')'k'('}'T't's'i'l'{'f's'h't'a'm'' ',')'k'('}'T'p'a'm'{'f's'h't'a'm'''''m'{'' 'n'i'' '}'g'a't'{'t'i'h't'a'm''_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'd'i'{'t'i'h't'a'm''{'' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''}'*'e'r'u'g'i'f'{'n'i'g'e'b''n''*'e'r'u'g'i'f's'y'a'w'e'd'i's'{'d'n'e''n'}'s'e'l'u'r'-'n'o'i't'a'r'e'p'o':'g'i'f'{'l'e'b'a'l''}'e't'a't's' 't'n'e'm'u'c'o'd' 'g'n'i'y'f'i'd'o'm' 'd'n'a' 's'n'o'i't'a'r'e'p'o' 'g'n'i't'a'u'l'a'v'e' 'r'o'f' 's'e'l'u'R'{'n'o'i't'p'a'c''n'o't's'p'a'm'','' ')'k'('}'s'e'r'p'{'f's'h't'a'm'' ',''['}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm'' ','}'g'a't'{'t'i'h't'a'm''_'k'('}'d'I'd'd'a'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'1'_'}''''-'D'I'-'d'd'A'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''(''''{'}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' ')'k'('}'s'e'r'p'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'')'k'('}'T'g'e'r'{''''('f's'h't'a'm'' ',')'k'('}'T't's'i'l'{'f's'h't'a'm'' ',')'k'('}'T'p'a'm'{'f's'h't'a'm''{'' 'n'i'' '}'g'a't'{'t'i'h't'a'm''_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'r'e't'n'e'c'{'d'n'e'''n'''''u'''''o'''''m'''''A'''''p'''''i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'}''{'' 'o't'l'a'v'e'' ')'k'('}'T'g'e'r'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'}'g'e'R'-'d'l'i'h'C'{'c's't'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' ')'k'('}'T'g'e'r'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''''''''''''''''''h't'a'm''$'{'C'm'o'i'x'A''n''''$'%'n'}'m'e'3'{'e'c'a'p's'h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'}'','' '}'l'i'a't'{'f's'h't'a'm''''''''','''''' 'o't's'p'a'm'' ')'}'d'a'e'h'{'f's'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm'',''{'' 'o't'l'a'v'e'' ')'k'('}'T't's'i'l'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'3'_'}'d'l'i'h'C'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' 'k'$'{'C'm'o'i'x'A''n'}'r'e't'n'e'c'{'n'i'g'e'b''n'n't'n'b'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'}''{'' 'o't'l'a'v'e'''''e' ')'k'('}'T'p'a'm'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'2'_'}''''_'d'l'i'h'C'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r''''i'h't'a'm'' 'n'i't'o'n'' ')'k'('}'T'p'a'm'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'%'n'}'m'e'3'{'e'c'a'p's'''''''''''''l'l'i'f'h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$')'k'('}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' 'k''''' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'1'_'}'d'l'i'h'C'{'c's't'x'e't''$''''''''''e't''{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' 'k'$'{'C'm'o'i'x'A''n''''''''''''''}'r'e't'n'e'c'{'d'n'e''n'}'r'e't'n'e'c'{'n'i'g'e'b'''''h'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l''}'g'n''''''r'a'e'l'c'''''''''''''''''''''i'r'a'e'l'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*'''''''''''''''''''''''''''''''''''''''',''''''','''''''''''''''''''''''']','' '}'e't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'y'a'w'e'd'i's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']','' '''''b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' 'n'}'x'i'r't'a'm'{'n'i'g'e'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '}'x'i'r't'a'm'{'d'n'e'' ' ' ' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' 'n'}'''''''t'n'e'r'r'u'x'i'r't'a'm'{'n'i'g'e'b'''''' ' ' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'x'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'''''''''''''''''''t'i'''''''''''''''''''''''''''''''''''''''''''''''''' ' ' 'n''''''''''''t'n'e'r'r'u''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')''''''''''''''''''t'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']',''}'','' '}'l'a'v'{'t'i'h't'''a'''''m'''''''''''''}''''''''''''''('}'t'x'e'n'{')''f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'h't'a'm'''x't'c'{'t'i'h't'a'm''''''''''''''''''''''f's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'x't'c'{'t'i'h't'a'm'''''''' '''''''i'r'T'''''''''''''''''}'x't'c'{'t''o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','','e'l'g'n'a')'''''''''''''''''''''''''''''')'}'l'a'v'{'t'''''''''''''}'x'''''''''''''''('}'t'x'e'n'{')''f's'h't'a'''''''''''''''''''''''''''''''''''''('}'t'x'e'n')''{'f's'h't'''a'''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n's'e'l'u'r' 'o'w't' 't'x'e''''''''''''''''''''''''''''('}'t'x'e'n'{')''f'''''''''''''''''''''''''''''''''t'r'e's'n'i'''''''''''''''''''''''''''''''''''''''''''''''''''''x't'c''''''''o''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''' ','','e'l'g'')'''''''''''''''''''''''''{'''')'}'l'a''t''''''''''''}'x't'c'{'t'i'h't'a'm'''''''''''''''''''''i'h'''t'''''''''''''}'x't'c'{'t''o'''i'''''h''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('}'m'o'd'{'')'m'r'h't'a'm'' 'n'i'' '''''''''''''''''''''''''''''''''''''''U'''''''''''''''''''''''''''''}'x't'c'{'t'''p'o'''i'''''h''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','','e'l'g'n'a''''''''''''''''''')'}'l'e'D't's''''''''''''}'x'''''''''''''''''('}'d'e't'e'l'e')''d'{'f's'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''_''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''']','' '}'t'n'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ',''e'g'd'e'w'','' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'s'p'e'd'{'t'i'h't'a'm'' 'n'i'' 'k'$'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'t'x'e'n'{'t'i'h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i'r'T'''''''''''''''$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''e'''''e'''''r'''''t'''''f'''''o'''''o'''r'p'{'d'n'e''n'}'$'}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'s'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'U''n'}'$'3'_'}'s'm'e'l'E'-'r'a'e'l'C'{'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'u't'c'u'r't's' 'e'h't' 'o't' 's'n'o'i't'a't'u'm' 't'n'e'r'r'u'c'n'o'c' 'o'n' 'e'r'a' 'e'r'e'h't' 'f'i' 't'i' 'e'v'o'm'e'r' 'd'l'u'o'h's' 'e'r'u't'c'u'r't's' 'a' 'g'n'i'r'a'e'l'C''''C' 'm'e't'i''n's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'l'i'a't'{'f's'''''''f's'h't'a'm'' '=' 'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p''''['{'d'n'e''n'}'$'''}'x't'c'{'t'i'h't'a'm'' ''''n'o't'l'a'v'e'' ')'}'s'''''''s'e'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'$'2'_'}'s'm'e'l'E'-'r'a'e'l'C'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'s'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'}'t'x'e'n'{'t'i'h't'a'm'' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{''''$'C'm'o'i'x'A''n'}'$'}'t'x'e'n'{'t'i'h't'a'm'' '=' ')')'k'('}'''')'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'s'p'e'd'{'t'i'h't'a'm'' 'n'i't'o'n'' 'k' ',''e'g'd'e'w'','' '}'l'i'a't'{'f's'h't'a'm'' '='t'o'n'' 'k'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$']',''}'e'u'r't'{'f's'h't'a'm'' ',''o't's'p'a'm'','' ')'k'''''''''''''''''''''''''{'''''''k'('t'i'h't'a'm''('}'d'e't'e'l'e'd'{'f's''''h't'a'm'' ',''['''}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'''' 'o't'l'a'v'e'' ')'}'''''''''''''''''''''''''''''s'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''''','e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'r'e't'a'u'Q''n'}'$'1'_'}'s'm'e'l'E'-'r'a'e'l'''''''''e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'''}'x't'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'s''''e'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'{'C'm'o'i'x'A''n'}'$'}'t'x'e'n'{'t'i'h't'a'm'' '=' ')')'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'l'i'a't'{'f's'h't'a'm'' '='t'o'n'' 'k''''''''''''''''h't'a'm''$'{'C'm'o'i'x'A''n'}'''''e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$']','' '}'d'e'r'a'e'l'c'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' ')'k'('}'T't's'i'l'{'f's'h't'a'm'' ',''['}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'t's'i'L'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'t's'i'L'-'r'a'e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'d'e'r'a'e'l'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'s''''e'm'e'l'E'r'a'e'l'c'{'f's'h't'a'm'' ',')'}'d'a'e'h'{'f's'h't'a'm'' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i''''s'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','',')')'k'('}'T't's'i'l'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T't's'i'l'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''r'r'u'c'n'o'c'{'t'i'h't'a'm'' ',''''' 'o't's'p'a'm'','' ')'k'('}'T'g'e'r'{'f's'h't'a'm'',''''''''''''''''''''''['}'x't'c'{'t'i'''''''f's'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'''')'g'e'R'r'a'e'l'c'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''''}'$'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'g'e'R'-'r'a'e'l'C'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'' '}'s'p'e'd'{'t'i'h't'a'm'' 'n'i't'o'n'' 'i'_'}'d'i'{'t'i'h't'a'm'' ',''e'g'd'e'w'','' ' ' ' 'n'''''''' ')')'k'('}'T'g'e'r'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' 'n'i'' ')'i'_'v' 'o't's'p'a'm'' 'i'_'}'d'i'{'t'i'h't'a'm''(' ' ' ' 'n'd'i'm'' 'i'_'v' 'o't'''''''t'o's'p'a'm'' 'i'}'d'i'{'t'i'h't'a'm'' '{'' '=' '}'t'n'e'r'r'u'c'n'o'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'''' 'm'r'h't'a'm'' 'n'i'' ')'k'('}'T'g'e'r'{''''+'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''t'a'm'''''''e'''''''''''''''''''''''''''''''''''''''''''u'r't'''''''''''''t'c'{'t'i'h't'a'm'''''''i'''''l'{'f's'h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'e'D'p'a'm'{'f's't'x'e't'' 'd'n'a' '}'l'e'D't's'i'l'{'f's't'x'e't'' 'n'e'e'w't'e'b' 'n'o'i't'c'n'i't's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'s'y'a'r'r'a' 'D'2'('''''''2'9' 's't's'i'l' 'd'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 'r'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'n'i'f'e'd' 't''''d'o'n' 's'i' 'r'e't's'i'g'e'r' 'f'i' 't'e's' 'y't'p'm'e' 'o't' 't'l'u'a'f'e'd' 'd'l'u'o'h's' 's'e'u'l'a'v' 't'n'e'r'r'u'c'n'o'c' 'f'o' 't'e's' ':''''s'i'g'e'R'''''''''''''' 't'n'e'm'n'g'i's's'A' 'm'e't'i''n''t's'e'n' 'g'n'i't'a'e'r'c' 'r'o'f' 'd'e'd'e'e'n' 'o's'l'a' '-'-' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'a'm' 'm'o'r'f' 't'n'e'm'e'l'e' 'g'n'i't'e'l'e'D' 'm'e't'i''n'''''''''''''''''''''',''''''''''''''''''''''''''''''''' 'd'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'n'o't's'b'm'o't' 'r'e'v'o' 'p'i'k's' 'd'l'u'o'h's' '}'t'x'e'n'.'{'f's't'x'e't'' 'm'e't'i''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'p'y't'a't'a'd'/'')'e'c'n'e't's'i'x'e' 's't'i' 'e'v'r'e's'e'r'p' 't'u'b' 'e'u'l'a'v' 't'e's'e'r' 'o't' 'd'e'e'n'(' 'd'e'n'i'f'e'd' 't'o'n' 's'i' 'y'a'r'r'a' 'y't'p'm'e' 'd'n'a' 't's'i'l' 'y't'p'm'e' 'f'o' 't'n'e'm'n'g'i's's'A' 'm'e't'i''n'''''''''''''''''}'e't'a'r'e'm'u'n'e'{'d'n'e''n'}'e't'a'r'e'm'u'n'e'{'n'i'g'e'b''n'n':'s'm'e'l'b'o'r'p' 'n'w'o'n'k' 'O'D'O'T''t'a'm'' ',''r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'''''t'''''a'''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ')'}'t'e'g'r'a't'{'t'i'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm''''''''''''''''''''''')'k'('''''''' '''x'''t'c'''''','''''''','''e'l'g'')'''''''''''''''''''''''''{''''''')')'}'l''''''''''''}'x't'c'{'t'i'h't'a'm'''''''''a''t'i'h't'a'm''('}'t'r'e'''''t's''''t'i'L'''''''''''s'n'i'{'f's'h't'a'm''n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ''t'''''a'm''''''''r'e''t'a'm''('}'n'g'i's's'a'{'f's'h't'a'm''n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' '''''''''''s'h't'a'm''''('}'x't'c'{'t'i'h't'a'm''''''''n' 'e'h't' 'e't'a'd'p'u' 'o't' 'd'e'e'n' 'O'D'O'T' '%'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m''t'c'{'t'i'h't'a'm''''i'''''h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'''''r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ''i'h't'a'm'''''''''''''''''o'''t'l'''t'r'e''a'v'e'' ')')'}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',')'}'d'i'{'t'i'h't'a'm'' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n''''','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'t'i'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm'''''''''''''''''''''''''''''''''''''''' ''''''''''''''''',''''''''''''''''''''''''''o'''''''''''''''''t'''''''''''''''''s'''''''''''''p'''''a'''''m'''''''','''''''' '''''}'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''' ',''{'' ',''o't's'p'a'm'','' ')'k'('}'T'g'e'r'{'f's'h't'a'm'' ',''['}'x't'c'{'f's'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('''''}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'2'_'}'n'g'i's's'A'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' ')'k'('}'T'g'e'r'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'}'g'n'i'r't's''{'g'n'i'r't's''{'t't't'x'e't'' '='t'o'n'' '}'l'a'v'{'t'i'h't'a'm'' ',''e'g'd'e'w'','' '}']'['{'t't't'x'e't'' '='t'o'n'' '}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''''''''''''''''''''''''''}'$']','']','' '}'l'a'v'{'t'i'h't'a'm'' ',''o't's'p'a'm'','' '}'d'i'{'t'i'h't'a'm'' ',''['}'c'n'o'c'{'t'i'h't'a'm'' ',''o't's'p'a'm'''''m','' ')'k'('}'T'g'e'r'{'f's'h't'a'm'' ',''['}'x't'c'{'f's'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ',')'k' ','','e'l'g'n'a'r''''' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'''''''''''''S'P'E'D'{''''['t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'$'1'_'}'n'g'i's's'''''''''''A'{'c's'c's'e't''''''''''''''''s'h't'a'm''$'{'l'e'b'a'L't'f'e'L''n'}'$' '}'x'i'r't'a'm'{'d'n'e'' ' ' ' 'n'}'' '}'s'p'e'd'{'t'i'h't'a'm'' 'n'i't'o'n'' 'i'_'}'d'i'{'t'i'h't'a'm'' ','''''''' 'e'g'd'e'w'' ' ' ' 'n''' ')')'k'('}'T'g'e'r'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' 'n'i'' ')'i'_'v' 'o't's'p'a'm'' 'i'_'}'d'i'{'t'i'h't'a'm''(' ''''''''''''''''''''''''''''''''''''''d'i'm'' 'i'_'v''''''''''''''''''''''t'i'h't'a'm'' 'o't's'p'a'm'' 'i'_'}'d'i'{'t'i'h't'a'm'' '{'''''''' '{' '=' '}'c'n'o'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''''m''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T'g'e'r'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'''' '}'}'g'n'i'r't's''{'''''g'n'i'r't's''{'t't't'x'e't'' '='t'o'n'' '}'l'a'v'{'t'i'h't'a'm'' ',''e'g'd'e'w'','' '}']'['{'t't't'x'e't'' '='t'o'n'' '}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$']','''''''''''''''''''''''''''''''''' '}'e't'a't's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''''''''''''''''''''''''''}'''''s'''''e'''''l'''''u'''''r'''''-'''''n'''''o'''''i'''''t'''a'r'e'p'o':'g'i'f'{'l'e'b'a'l'''t'a't's' 't'n'e'm'u'c'o'd' 'g'n'i'y'f'i'd'o'm' 'd'n'a' 's'n'o'i't'a'r'e'p'o' 'g'n'i't'a'u'l'a'v'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'t'i'h't'a'm'' ',''''' 'o't's'p'a'm'','' '1'_'k' ',''['}'x't'c'{'f's'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ',''''s't'o'd'' ','2'_'k'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'}'t's'i'L'-'f'e'D'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'e't'a't's'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','}''}'l'i'a't'{'f's'h't'a'm'' 'o't's'p'a'm'' ')'}'d'a'e'h'{'f's'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm''''''''''''''a'm'' '{''$'{'C'm'o'i'x'A''n'}'$')'}'w'e'n'{'t'i'h't'a'm''_'k'('}'T't's'i'l'{'f's'h't'a'm'' '=' '1'_'k'$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' '1'_'k'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e't'a't's'{'t'i'h't'a'm'' ',''''' 'o't's'p'a'm'','' '1'_'k' ',''['}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'''''f's'h't'a'm'' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's''''i'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'}'p'a'M'-'f'e'D'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'e't'a't's'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''{'}'p'o'{'f's'h't'a'm'' ','','}''{''$'{'C'm'o'i'x'A''''''''''f'e'L''n'}'$')'}'w'e'n'{'t'i'h't'a'm''_'k'('}'T'p'a'm'{'f's'h't'a'm'' '=' '1'_'k'$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i't'o'n'' '1'_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''a't's'{'t'i'h't'a'm'' 'o't's'p'a'm'' '1'_'k' ',''['}'x't'c'{'t'i'h't'a'm'' ' ' ' 'n'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''''}'$'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'d'n'e'c's'e'D'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'e't'a't's'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n'''' ','}'s'p'e'd'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' ','',')'1'_'k'('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '1'_'k''''K'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'l'u'r'-'n'o'i't'a'r'e'p'o':'g'i'f'{'l'e'b'a'l''''''''''g'i'f''}'e't'a't's' 't'n'e'm'u'c'o'd' 'g'n'i'y'f'i'd'o'm' 'd'n'a' 's'n'o'i't'a'r'e'p'o' 'g'n'i'''''''''''''''' 'g'n'o'i't'a'u'l'a'v'e' 'r'o'f' 's'e'l'u'R'{'n'o'i't'p'a'c''n'''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n'O'D'O'T' '%'n'n''''''''''T' '%'}'s'n'o'i't'a'r'e'p'o' 'g'n'i'y'l'p'p'A'{'n'o'i't'c'e's'b'u's''n'n'''.'n'o'i't'c'e's' 't'e'n' 'e'h't' 'n'i' 's's'u'c's'i'd' 'e'w' 'h'c'i'h'w' ','s'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n''''''''''g'n'o'i't'a'u'l'a'v'e' 'y'b' 'd'e'm'r'o'f'r'e'p' 'e'r'a' 's'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'm'u'c'o'd' 'l'a'u't'c'a' 'e'h'T'n'n'.'$')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 's'n'o'i't'a'r'e'p'o' 'd'e's's'e'c'o'r'p' 'f'o' 't'e's' 'e'h't' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 's'd'd'a' 'd'n'a' ','}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 's'a' 'y'a'w''''s' 'e'm'a's' 'e'h't' 'n'i' 'n'o'i't'a'r'e'p'o' 'e'h't' 's'e't'a'u'l'a'v'e' '}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' ','d'e'i'f'i's'i't'a's' 'e'r'a''''''''''v'a'h' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 's't'i' 't'a'h't' 'd'n'a' '''d'e's's'e'c'o'r'p' 'n'e'e'b' 'y'd'a'e'r'l'a' 't'o'n' 's'a'h' 'n'o'i't'a'r'e'p'o' 'e'h't' 't'a'h't' 'n'o'i't'i'd'n'o'c'e'r'p' 'e'h't' 'r'e'd'n'U' '.'y'l'p'p'a' 'y'a'm' '}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' 'e'l'u'r' 'e'h't' ','$')'}'v'c'e'r'{''s'h't'a'm'''''''''''''''''''''''''''''''''''f's't'x'e't''('p'_'A'$' 'r'e'f'f'u'b' 'e'v'i'e'c'e'r' 'e'h't' 'n'i' 's'r'a'e'p'p'a''''h' 'n'o'i't'a'r'e'p'o' 'n'a' 'e'c'n'O'n'n'.'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 'l'l'a' 's'l'e'd'o'm' 't'i' 'd'n'a' ','r'e'e'p' 'e'n'o' 'n'a'h't' 'e'r'o'm' 's'e'v'l'o'v'n'i' 't'a'h't' 'e'l'u'r' 'y'l'n'o' 'e'h't' 's'i' 's'i'h'T' '.'$'p'$' 'r'e'e'p' 'f'o' '$')'}'v'c'e'r'{'f's't'x'e't''('p'_'A'$''''o' 'r'e'f'f'u'b' 'e'v'i'e'c'e'r' 'e'h't' 'o't' 'm'e'h't' 's'd'd'a' 'd'n'a' '$'q'$' 'r'e'e'p' 'f'o' 'r'e'f'f'u'b' 'd'n'e's' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p'o' 's'e'k'a't' 'e'l'u'r' '}'v'c'e'R'{'c's't'x'e't'' 'e'h't' ','y'l'g'n'i'd'n'o'p's'e'r'r'o'C' '.'$')'}'d'n'e's'{'f's'h't'a'm''('p'_'A'$' 'r'e'f'f'u'b' 'd'n'e's' 'a' 'o't' 'm'e'h't' 's'd'd'a' 'd'n'a' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 'y'b' '$')'}'e'u'e'u'q'{'f's'h't'a'm''('p'_'A'$' ''''''''''h't' 'n'i' 'd'e'c'a'l'p' 'e'r'e'w' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'y'n'a' 's'e'k'a't' 'e'l'u'r''''''''' '}'d'n'e'S'{'c's't'x'e't''n'n''''''''''''''k'r'o'w't'e'n' 'e'h't' 'n'i' 'e'e't'n'a'r'a'u'g' 'g'n'i'r'e'd'r'o' 'o'n' 's'i' 'e'r'e'h't' 'd'n'a' ',''.'e'm'i't' 'n'i' 't'n'i'o'p' 'r'e't'a'l' 'y'l'i'r'a'r't'i'b'r'a' 'e'm'o's' 't'a'''''''''''''''' 'e'm'o's'''''''''''''''' 'e'm'o's' 'r'e'e'p' 'r'e'h't'o'n'a' 't'a' 's'e'v'i'r'r'a' 'r'e'e'p' 'e'n'o' 'y'b' 't'n'e's' 'e''''''g'a's's'e',' 'a' ':'s'r'e'e'p' 'n'e'e'w't'e'b' 'k'r'o'w't'e'n' 'e'h't''''n' 'f'o' 'y't'i'c'i'n'o'r'h'c'n'y's'a' 'e'h't' 's'l'e'd'o'm' 'h'c'i'h'w' ','c'i't's'i'n'i'm'r'e't'e'd'n'o'n' 's'i' 's'c'i't'n'a'm'e's' 'e'h't' ','}'d'l'e'i'y'{'f's't'x'e't'' 'e't'a'u'l'a'v'e' 'o't' 'd'e's'u' 'e'b' 'n'a'c' 's'e'l'u'r' 'e's'e'h't' 'f'o' 'y'n'a' 'e'c'n'i'S'''''''''''''''''''''''''''''''n'a'm'e's' 's'i''''''''''''' 'e's'e'h'T' '.'d'n'a'm'm'o'c' '}'d'l'e'i'y'{'f's't'x'e't'' 'e'h't' 'f'o' 's'c'i't'n'a'm'e's' 'e'h't' 'e'n'i'f'e'd' '}'d'l'e'i'Y'{'c's't'x'e't'' 'd'n'a' '}'v'c'e'R'{'c's't'x'e't'' ','}'d'n'e'S'{'c's't'x'e't'' ','}'e't'o'm'e'R'-'y'l'p'p'A'{'c's't'x'e't'' ','''' '}'v'c'e'r'-'d'n'e's':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 's'e'l'u'r' 'g'n'i'n'i'a'm'e'r' 'e'h'T'n'n'.'$')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 's'n'o'i't'a'r'e'p'o' 'd'e's's'e'c'o'r'p' 'f'o' 't'e's' 'e'h't' 'o't' 'D'I' 'n'o'i't'a'r'e'p'o' 'e'h't' 's'd'd'a' 't'i' 'd'n'a' ','$')'}'e'u'e'u'q'{'f's'h't'a'm''('p'_'A'$' 's'n'o'i't'a'r'e'p'o' 'd'e't'a'r'e'n'e'g'''''''''''''b't'u'o' 'f'o' 'e'u'e'u'q' 'e'h't' 'o't' 'n'o'i't'a'r'e'p'o' 'e'h't' 's'd'd'a' 't'i' ','$'''p'_'A'$' 'e't'a't's' 'l'a'c'o'l' 'd'e'i'f'i'd'o'm' 'a' 'e'c'u'd'o'r'p' 'o't' 'n'o'i't'a'r'e'p'o' 'e'h't' 's'e't'a'u'l'a'v'e' 't'i' ':'s'g'n'i'h't' 'e'e'r'h't' 's'e'o'd' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' '.'n'o'i't'a'r'e'p'o' 'e'h't' 's's'e'c'o'r'p' 'o't' 'e'l'u'r' '}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't'' 'e'h't' 'o't' 's'e't'a'g'e'l'e'd' 'd'n'a' ','e'v'o'b'a' 'd'e'b'i'r'c's'e'd' 'm'r'o'f' 'e'h't' 'f'o' 'e'l'p'u't'(''' '}'p'o'{'f's't'x'e't'' 'n'a' 's't'c'u'r't's'n'o'c' '}'p'O'-'e'k'a'M'{'c's't'x'e't''n'n'.'t'n'e'm'u'c'o'd' 'e'h't' 'o't' 'd'e'i'l'p'p'a' 'n'e'e'b' 'e'v'a'h' 't'a'h't' 's'D'I' 'n'o'i't'a'r'e'p'o' 'l'l'a' 'f'o' 't'e's''' 'e'h't' '$')'}'s'p'o'{'f's'h't'a'm''('p'_'A'$' 'n'i' 'r'e't'n'u'o'c' 'g'n'i't's'i'x'e' 'y'n'a' 'n'a'h't' 'r'e't'a'e'r'g' '1' 's'i' 't'a'h't' 'e'u'l'a'v' 'r'e't'n'u'o'c' 'a' 'g'n'i's'o'o'h'c' 'y'b' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'w'e'n' 'a' 's'e't'a'r'e'n'e'g'''''''''''''''''''''''''''''''''''''s'e't'a'l'u's'p'a'c'n'e' '}'p'O'-'e'k'a'M'{'c's't'x'e't'' '.'n'o'i't'a'r'e'p'o' 'e'h't' 'y'l'p'p'a' 'd'n'a' 'e'''''''''''''''''''''''''' 'g'n'i't'a'r'e'n'e'g' 'r'o'f' 'e'l'u'r' '}'p'O'-'e'k'a'M'{'c's't'x'e't'' 'e'h't' 'o't''''''''''''' 'e'h't' 'e't'a'g'e'l'e'd' 'e'e'r'h't' 'l'l'a' ':'t'n'e'm'u'c'o'd' 'e'h't' 'e't'a't'u'm' 's'd'n'a'm'm'o'c' 'e'v'i't'c'e'p's'e'r' 'e's'e'h't' 'w'o'h' 'e'n'i'f'e'd'''''''''''''''' 'w'o'h's' 's'e'l'u'r' '}'e't'e'l'e'D'{'c's't'x'e't'' 'd'n'a' '}'t'r'e's'n'I'{'c's't'x'e't'' ','}'n'g'i's's'A'{'c's't'x'e't'' 'e'h'T' '''''p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'''' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'''p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'M'''''{'''''c'''''s'''''''''''g'n'i't'a'r'''' 'd'n'a''e'n'e'g'''''''''''''''t'''''''''''''''''x'''''''''''''''''e'''''''t''''''''{'''''l'''''''''''''''''e'''''''''''''''''b'''''''''a'''''L'''''t'''''f'''''e'''''L''''''n'}'$'''p'_'A' 'o't'l'a'v'e'' ')'}'t'u'm'{'t'i'h't'a'm'' ','}'''''r'''''u'''''c'''''{'''''t'''''i'''''''h'''''t'''''a'''''m'''''''' ''''',''''')'''''}'''''s'''''p'''''o'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''('''''p'''''_'''''A''''' ''''','''''}'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''p'''''o'''''{'''''f'''s'h't'a'm''('}'''y'''''l'''''p'''''p'''''a'''''{''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'}'s'p'o'{'f's'h't'a'm''('''''p'_'A'''' 'n'i''t'o'n'' '}'d'i'.'p'o'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''f'''''s''''''''''''.'p'o'n'''''''r'e't'a'u'Q'''''''U'''''''''''''''''''''p'p'a'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'+' ''''')'p' ','}'r'''d'i'.''t'c'''''('''p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''''''''''''''''f'o'o'r'p''n'}'$']','')'}'d'n'e's'{'f's'h't'a'm''('q'_'A' ',''p'u'c'','' ')'}'v'c'e'r'{'f's'h't'a'm''('p'_'A' ',''o't's'p'a'm'','' '}'v'c'e'r'{'f's'h't'a'm'',''['p'_'A' ' ' ' 'n'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'v'c'e'R'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'D'I'r'e'e'P'{'m'r'h't'a'm'' ':'q'''''''''' ':'a'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$']','')'}'e'u'e'u'q'{'f's'h't'a'm''('p'_'A''''' ',''p'u'c'','' ')'}'d'n'e's'{'f's'h't'a'm''('p'_'A' ',''o't's'p'a'm'','' '}'d'n'e's'{'f's'h't'a'm'',''['p'_'A' ' ' ' 'n'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'d'n'e'S'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'_'A''{'t''''''''''''''''''''''''''}''}'p'o'{'t'i'h't'a'm''{'' ',''p'u'c'','' ')''''f's'''i'''h't'a'm''(' '=' '}'d'i'{'t'i'h't'a'm''$'{'C'''m'o'i'x'A''n'}'$'''''''}'#'}'' ')''''d'i'.'}''''''''''''''''''''''''''''''''''''}'d'i'{'f's'h't'a'm''.''s'p'o'{'f's'h't'a'm''('p'_'A' 'n'i'' ')'i'_'p' ','i'_'c'(' 'd'i'm'' 'i'_'c' '{'' ',''p'u'c'','' '}''0'{''('}'x'a'm'{'m'r'h't'a'm'' '=' '}'r't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$'''p'_'A' 'o't'l'a'v'e'' '}'''' 'e't'e'l'e'd'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'e't'e'l'e'D'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'''p'_'A' 'o't'l'a'v'e'' ')'}'e't'e'l'e'd'{'f's'h't'a'm'' ','}'r'u'c'{'t'i'h't'a'm''('}'p'O'e'k'a'm'{'f's'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n't'l'a'v'e'' ')'}'l'a'v'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_''''-'A'$'{'C'f'n'I'y'r'a'n'i'r'T''n'}'}'t'r'e's'n'I'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n''''}'$'''p'_''''-'A'' 'o't'l'a'v'e'' ')')'}'l'a'v'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','}'r'u'c'{'t'i'h't'a'm''('}'p'O'e'k'a'm'{'f's'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'L'A'V'{'m'r'h't'a'm'' ':'}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''T'''$''''''''''''''''''''''''''''''''''''''''{''}'''''''''''''''''''''''''''$'''p'_'A' 'o't'l'a'v'e'' '}'l'a'v'{'t'i'h't'a'm'' ''t'x'e't'''''}'=':'{''''''':'('n'i'b'h't'a'm''''''''''''''''''':'{'t'x'e't''''''''e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'''p'''_'A' 'o't'l'a'v'e'' ')')'}'l'a'v'{'t'i'h't'a'm''('}'n'g'i's's'a'{'f's'h't'a'm'' ','''' '}'r'u'c'{'t'i'h't'a'm''('}'p'O'e'k'a'm'{'f's'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n''r't's'n'i'r't's'''''''''''''''}'}''{''{'t't'x'e't'' '='t'o'n'' '}'l'a'v'{'t'i'h't'a'm'' ',''e't'''''''''''''''''']'[''''''''''''''''''''''''''''''''''''''''''''}'k'c'a'r'b'r''k'c'a'r'b'l''{'t't'h't'a'''''''''''''''{'''''x'''''o'''''b'''''m'''}'''''''''|'b'r'e'v'''{'''''''''''''''''''''|'''''''''''{'''t'''''''''' 'e'g'd'e'w'' ''t'h't'a'm'''''''''''''''''''}''''''''''''''''''''''}'k'o''''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'|']'['|'b'r'e'v'' '='t'o'n'' 't'i'h't'a'm'' 'e'g'd'e'w'' '}'L'A'V'{'m'r'h't'a'm'' ':'}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n''$''}'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'{'C'm'o'i'x'A'''''|'n'g''' 'f'o' 's'c'i't'n'a'm'e'S'{'n'o'i't'c'e's'b'u's'b'u's''n'n'.'r'e'd'r'o' 'y'n'a' 'n'i' 'd'e'i'l'p'p'a' 'e'b' 'n'a'c' ','y'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'o'n' 's'i' 'e'r'e'h't' 'e'r'e'h'w' '.'e'.'i' ','''' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'O' '.'r'e'e'p' 'r'e'h't'o' 'y'r'e'v'e' 't'a' 'r'e'd'r'o' 'e'm'a's' 'e'h't' 'n'i' 'd'e'i'l'p'p'a' 'e'b' 'l'l'i'w' 'r'e'e'p' 'r'a'l'u'c'i't'r'a'p' 'e'n'o' 't'a' 'd'e't'a'r'e'n'e'g' 's'n'o'i't'a'r'e'p'o' 'f'o' 'e'c'n'e'u'q'e's' 'e'h't' 't'a'h't' 's'n'a'e'm' 's'i'h't' ','r'a'l'u'c'i't'r'a'p' 'n'I' '.'d'e'i'l'p'p'a' 'n'e'e'b' 'e'v'a'h' 't'i' '''''e'r'o'f'e'b' 'd'e'n'e'p'p'a'h'`'`' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'r'e't'f'a' 'd'e'i'l'p'p'a' 'e'b' 'y'l'n'o' 'n'a'c' 'n'o'i't'a'r'e'p'o' 'n'a' ':'s'n'o'i't'a'r'e'p'o' 'n'o' 'g'n'i'r'e'd'r'o' 'l'a'i't'r'a'p' 'a' 'e's'o'p'm'i' 'o't' 's'i' '$'}'s'p'e'd'{'t'i'h't'a'm''$' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'e'h't' 'f'o' 'e's'o'p'r'u'p' 'e'h'T'n'n'''''''''''''''''''''''''''''''''''g'i'b'm'a' 'd'i'o'v'a' 'o'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'''''''''''''''''''''''''.'e'''''''e' 'c'n'i's' 's'D'I' 'n'o'i't'a'r'e'p'o' 'f'o' 't'e's' 'a' 's'a' 's'e'i'c'n'e'd'n'e'p'e'd' 'e'h't' 'e'v'i'g' 'e'w' 's'c'i't'n'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'}'v'c'e'r'-'d'n'e's':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'e'v'i'g' 'e'r'a' 's'd'n'a'm'm'o'c' 'r'o'f' 's'e'l'u'r' 'n'o'i't'a'u'l'a'v'e' 'l'a'm'r'o'f' 'e'h'T'n'n'e's' 'e'h't' 'f'o' 'n'o'i't'a't'n'e's'e'r'p' 't'c'a'r't's'b'a' 'r'u'o' 'n'i' ','r'e'v'e'w'o'H' '.')'s'n'o'i't'a't'i'c''''i' 'O'D'O'T'(' 's'r'o't'c'e'v' 'n'o'i's'r'e'v' 'd'e't't'o'd' 'r'o' 's'r'o't'c'e'v' 'n'o'i's'r'e'v' ','e'l'p'm'a'x'e' 'r'o'f' '-'-' 'd'a'e't's'n'i' 'd'e's'u' 'e'b' 'd'l'u'o'w'''''''''''''''' 'h'c'u's' 'y'r'o't's'i'h' 'l'a's'u'a'c' 'f'o' 'n'o'i't'a't'n'e's'e'r'p'e'r' 't'c'a'p'm'o'c' 'a' 'o's' ','e'g'r'a'l' 'y'l'b'a'c'i't'c'a'r'p'm'i' 'e'm'o'c'e'b' 'd'l'u'o'w' 't'e's' 's'i'h't' ','n'o'i't'a't'n'e'm'e'l'p'm'i' 'l'a'e'r' 'a' 'n'I' '.'d'e't'a'r'e'n'e'g' 's'a'w' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'e'h'w' 'e'm'i't' 'e'h't' 't'a' 't'n'e'm'u'c'o'd' 'e'h't' 'o't' 'd'e'i'l'p'p'a' 'n'e'e'b' 'd'a'h' 't'a'h't''''''''' 's'D'I' 'n'o'i't'a'r'e'p'o' 'f'o' 't'e's' 'e'h't' 'e'b' 'o't' '$'}'s'p'e'd'{'t'i'h't'a'm''$'''''''''''''''''''=' 's'i'h't' 'e'n'i'f'e'd' 'w'o'l'e'b' 's'c'i't'n'a'm'e's' 'e'h'T' '.'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'f'o' 't'e's' 'a' 's'a' 'n'e'v'i'g' ','n'o'i't'a'r'e'p'o' 'e'h't' 'f'o' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'f'o' 't'e's' 'e'h't' 's'i' '$'}'s'p'e'd'{'t'i'h't'a'm''$'n'n'.'n'o'i't'i's'o'p' 'd'e'i'f'i'c'e'p's' 'e'h't' 't'a' 'd'e't's'e'u'q'e'r' 's'a'w'''''''''''''''''''''''''''''''''''''''' 'r'u'c'c'o' 'd'l'u'o'h's' 't'a'h't' 'n'o'i't'a't'u'm' 'e'h't' 's'i' '$'}'t'u'm'{'t'i'h't'a'm''$' 'd'n'a' ','d'e'i'f'i'd'o'm' 'g'n'i'e'b' 't'n'e'm'u'c'o'd' 'e'h't' 'n'i' 'n'o'i't'i's'o'p' 'e'h't' 'g'n'i'b'i'r'c's'e'd' 'r'o's'r'u'c' 'e'h't' 's'i' '$'}'r'u'c'{'t'i'h't'a'm''$' ','n'o'i't'a'r'e'p'o' 'e'h't' 's'e'i'f'i't'n'e'd'i' 'y'l'e'u'q'i'n'u' 't'a'h't' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e'h't' 's'i' '$'}'d'i'{'t'i'h't'a'm''$'''''''t'' 'e'r'e'h'w'n''('}'n'g'i's's'a'{'f's'h't'a''%'m'' 'd'i'm'''' ''%'' '}'e't'e'l'e'd'{'f's'h't'a'm'' 'd'i'm'' ')'v'('}'t'r'e's'n'i'{'f's'h't'a'm'' ':'&' ''&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'*'t'a'n'g'i'l'a'{'d'n'e''n')' '&'''''''''''''''''''''''''''''''''''''''''''''''}'t'u'm'{'t'i'h't'a'm'' ' ' ' 'n',')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ':'}'r'u'c'{'t'i'h't'a'm'' ' ' ' 'n',')'}'D'I'r'e'e'P'{'m'r'h't'a'm'' 's'e'm'i't'' '}'N'{'b'b'h't'a'm''''' '('}'P'{'l'a'c'h't'a'm'' ':'}'s'p'e'd'{'t'i'h't'a'm'' ' ' ' 'n','''''''''''}'D'I'r'e'e'P'{'m'r'h't'a'm'' 's'e'm'i't'' '}'N'{'b'b'h't'a'm''''''''''''''''''''''''''{'m'r'h't'a'm'' ':'}'d'i'{'t'i'h't'a'm''('}'p'o'{'f's'h't'a'm'' '[''n'm'r'o'f' 'e'h't' 'f'o' 'e'l'p'u'''''''p'y't' 'a' 's'i' 'n'o'i't'a'r'e'p'o' 'n'A'n'n'}'e'r'u't'c'u'r't's' 'n'o'i't'a'r'e'p'O'{'n'o'i't'c'e's'b'u's'b'u's'''''''''''''''''''' '&'&'''''&'''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''g''''''''''''''='''''}'''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''{'''''''''''''''''''''''}'''''{'''''{'''''}'''''3'''''{'''''n'''''g'''''i'''''l'''''a'''''i'''''t'''''l'''''u'''''m'''''''''''''''''i'''''l'''''a'''''''''''''''''''''''''''''''''''''''''n'''''a''''''''''''''%'''''''''''''''''''''''''''''''''''''''''''''''$'''''{'''''x'''''o'''''b'''''m''''''''''''''''''''''' '''''&'''''''''''''''''''''''''''''''''''p'''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''a''''' '''''r'''''e'''''t'''''s'''''i'''''g'''''e'''''r''''' '''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''='''''}''''''''''''''''''''''''''='''''{'''''}'''''{'''''''''''''''''''''''''''''''''''''' '''''A'''''''''''[''''''''''''''''']'''''''''''''''''[''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''[''''''''''''''''']'''''''''''''''''['''''''''''''''''{''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o's'r'u'c' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' '''''''''''''''''$'p'_'A'$' 'n'i' 's't's'i'x'e' 'r'e't's'i'g'e'r' 'e'h't' 'f'i' 'y'l'p'p'a' 'y'l'n'o' 's'e'l'u'r' '}'l'a'V'{'c's't'x''''-'-' '''e't'' 'e'h't' 'd'n'a' ',''''''''}'''''''''''''''''''''''''''''''''''''''''''s''''''n'e'h'W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''' 'a''''''''''''''''''''''''''''s'e'i''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'e't'a'i'd'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o's'l'a' 's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'r'e'e'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'.'w'o'l'e'b' 'd'e'l'i'a't'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i''''''''''''''''''''n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i'r'i'u'q'e'r'''''''''''''''''''''w''''''''''n'o'i't'a'n'i'd'r'o'o'c' 's'u'o'n'''' '''.'''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'u'q'i'n'u' 's'i' '$')'p' ','c'('$' 'r'i'a'p' 'e'h't' ','$'c'$' 's'e'u'l'a'v' 'r'e't'n'u'o'c' 'f'o' 'e'c'n'e'u'q'e's' 'g'n'i's'a'e'r'c'n'i' 'y'l'l'a'c'i'n'o't'o'n'o'm' 'y'l't'c'i'r't's' 'a' 's'e't'a'r'e'n'e'g' 'r'e'e'p' 'h'c'a'e' 'e'c'n'i'S'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''s'''''''''''''''''r'''''''''''''''''e'''''''''''''''''e''''''''''''' '['''''''''''''p''''''''''''''''' '''''''''''''''''n'''''''''''''''''e''''''''''''''''''']'' ''''''e'''''''''''w'''''t'''''e'''''b''''' '''''n'''''o'''''i'''''t'''''a'''''z'''''i'''''n'''''o'''''r'''''h'''''c'''''n'''''y'''''s''''' '''''t'''''u'''''o'''''h'''''t'''''i'''''w''''' '''''s'''''r'''''e'''''i'''''f'''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s't's'i'l' 'd'e'r'e'd'r'o' 'f'o' 's'c'i't'n'a'm'e's' 'e'h't' 'f'o' 'n'o'i't'i'n'i'f'e'd' 'r'u'o' 'r'o'f' 't'n'a't'r'o'p'm'i' 's'i' 'y't'r'e'p'o'r'p' 'g'n'i'r'e'd'r'o' 's'i'h'T' '''''t'''''n'''''e'''''d'''''i''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''e'''''u'''''q'''''i'''''n'''''u''''' '''''y'''''l'''''l'''''a'''''b'''''o'''''l'''''g''''' '''''e'''''t'''''a''''''q'r'e'n'e'g' 'o't' 'r'e'd'r'o' 'n'I'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c'i'h'p'a'r'g'o't'p'y'r'c' 'a' ''''''''''''''''''''''''''''''''''''')'y'e'k' 'c'i'l'b'u'p' 's't'i' 'f'o' 'h's'a'h' 'e'h't' ','e'l'p'm'a'x'e' 'r'o'f'(' '''''' ','s'r'e'i'f'i't'n'e'd'i' 'n'o'i't'a'r'e'p'o' 's'a'''''''''''''''''''''''''''''''''''''''''''h't' 'e't'a'r'e'n'e'g' 'o't' '}'q'j'8'7'9'1':'t'r'o'p'm'a'L'{'e't'i'c''~'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e's'u' 'e'W'''''''''' 'n'I'n'n'.'s't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'd'e't'r'e's'n'i' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'f'o''' 's'r'e'i'f'i't'n'e'd'i' 'e'h't' 't'c'a'f'n'i' 'e'r'a'''' '$'}','3','2','1'{'_'}'d'i'{'t'i'h't'a'm''$' 's'r'e'i'f'i't'n'e'd'i' 'e's'o'h'T' '.'s'r'e't's'i'g'e'r' 'f'o' 's'e'u'l'a'v' 'e'h't' 'o's'l'a' 'd'n'a' 's't'n'e'm'e'l'e' 't's'i'l' 'y'f'i't'n'e'd'i' 'o't' 'd'e's'u' 'e'r'a' '$'}'3','2','1'{'_'}'d'i'{'t'i'h't'a'm''$' ','}'e'l'p'm'a'x'e'-'e't'a't's':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' ','e'l'p'm'a'x'e' 'r'o'F' '''''''''''''''''''''''''''''''''''''''''''''.'s'r'o's'r'u'c' 'f'o' 'd'n'a' 'e't'a't's' 'l'a'c'o'l' 'e'h't' 'f'o' 't'r'a'p' 's'a' 'd'e's'u' 's'i' 'h'c'i'h'w' ','r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'a' 'n'e'v'i'g' 's'i' 'l'e'd'o'm' 'r'u'o' 'n'i' 'n'o'i't'a'r'e'p'o' 'y'r'e'v'E'n''n''d' 's'a' ','d'e'i'f's'i't'a's' 'e'r'a' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 's't'i' 'n'e'h'w' 's'e'd'o'n' 'e't'o'm'e'r' 'm'o'r'f' 'd'e'v'i'e'c'e'r' 's'n'o'i't'a'r'e'p'o' 's''''''' 's'e'i'l'p'p'a' 'r'e'e'p' 'A' '.'s'r'e'e'p' 'r'e'h't'o' 'e'h't' 'o't' 't's'a'c'd'a'o'r'b'' 'n'o'i't'a'r'e'p'o' 'e'h't'''''''''''''''' 'y'l's'u'o'n'o'r'h'c'n'y's'a' 'd'n'a' ','y'l'l'a'c'o'l' 't'c'e'f'f'e' 's'e'k'a't' 't'i' 't'a'h't' 'o's''''''m'''''m'''''i'''''''''''''''''''''''''''''''''''''''''' 'o't' 'r'e'd'r'o' 'n'i' '$'p'_'A'$' 'o't' 'd'e'i'l'p'p'a' 'n'e'''''''''' 't'a'h't' 's'i' 'n'o'i't'a'r'e'p'o' 't'a'h'T' '''''''''''''''''''.'n'o'i't'a'r'e'p'o' 'n'a' 'e't'a'r'e'n'e'g' 'y'l'n'o' 't'u'b' ','$'p'_'A'$' 'e't'a't's' 'r'e'e'p' 'l'a'c'o'l''''''''''''' 'e'h't' 'e'h't' 'y'f'i'd'o'm' 'y'l't'c'e'r'i'd' 'r'e'v'e'n' 's'd'n'a'm'm'o'c' ','s'c'i't'n'a'm'e's' 'r'u'o' 'n'I' ''o'i't'a't'u'm' 'e'h't' 'e'b'i'r'c's'e'd' 't'a'h't' '}'s'n'o'i't'a'r'e'p'o'{'h'p'm'e'' 'e't'a'r'e'n'e'g' 'y'e'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' 'f'''''''''''''''t'a'h''e'''t'''''''o''''' 's'c'i''''''''''' 't's'u'm' 'e'w' ','''' 't'n'a'm'e's' 'l'a'm'r'o'f' 'e'h't' 'e'n'i'f'e'd' 'n'a'c' 'e'w' 'e'r'o'f'e'B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'e't'a't's' 'e'h't' 'g'n'i't'a't'u'm' 'r'o'f' 's'd'n'a'm'm'o'c' 'e'h't' 'o't' 'n'r'u't' 'w'o'n' 'e'W'''''''''''''''''''''' 'e'r'o'f'e'B'n'n''n'o'i't'a'r'e'p'o' 'g'n'i't'a'r'e'n'e'G''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''3'''''''''''''''''{'''''''''''''''''n''''''b'u's'''''''''g''''''''s'i' 'r''''''i'''''''''l'a'i't'l'u'm'''''''''$'''''''''''''''''''''''''''''''''''' '}'1'{'r'o'f'}''s't'o'd'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''{'}'c'{'}'2'{'n'm'u'l'o'c'i't'l'u'm''''''''''''''''''''''''''%'''''''''''''''''''''''''{'n'm'u'l'o'c'i't'l'u'm''''''''''''''''''''}'''''''''''''''''''' '}'2'{'n'a'p's'''''''''''''''''''''''''''''''''''''''''''''''''''''}'3'{'n'a'p's'i't'l'u'm'' ''{'}'l'{'}'2'{'n'm'u'l'o'c'i't'l'u'm'''''''''''''''''''''''''''''''''','''''''''''''''''''''' '''''&'''''&''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''''''''''''''' '}'2'{'n'a'p's''''''''''''''''''''''''''''''''''''''''{'}'l'{'}'2'{'n'm'u'l'o'c'i't'l'u'm''''''''''''''''''''''''' '''''''''''''''''''''''''b'b'b'b'b'b'b'b' ' 'n'''''''''''''''''''''}''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '&''''n'n''''''''''''''''n't'f'a'r'd'f'o'o'r'p'f'i''n'''''''''''''''''''''''}''n''' ')'1'_'}'d'i'{'t'i'h't'a'm'' ','','e'l'g'n'a'r'')'}'''''g'n'i'p'p'o'h's'`'`'{'t'x'e't''('}'T't's'i'l'{'f's'h't'a'm'' ' ' ' 'n',')'}'c'o'd'{'f's'h't'a'm''('}'T'p'a'm'{'f's'h't'a'm'' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't's'p'a'm'' '&' '}'s'g'g'e'{'f's'h't'a'm'' '&'&'n''' ',')'}'d'a'e'h'{'f's'h't'a'm'' ''''''''','','e'l'g'n'a'r'')'}'''''g'n'i'p'p'o'h's'`'`'{'t'x'e't''('}'T't's'i'l'{'f's'h't'a'm'' ',')'}'c'o'd'{'f's'h't'a'm''('}'''''T'''''p'''''a'''''m'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''e'''''l'''''g'''''n'''''a'''''l''''''''('''''}'''''r'''''o'''''s'''''r'''''u'''''c'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''o'''''t'''''s'''''p'''''a'''''m'''''''' '''''&'''''''''''''''''''''''''''''''' ''''' '''''}'''''t'''''s'''''i'''''l'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''n''''''''''' ''''''''''''''''''''''''''''''''''''''&''''''''''';'''''l''''''''''''''&''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''e'''''t'''''f'''''a''''' '''''$'''''p'''''$''''' '''''r'''''e'''''e'''''p''''' '''''f'''''o''''' '''''$'''''p'''''_'''''A'''''$''''' '''''e'''''t'''''a'''''t'''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'''''''''''''''''''''''''''''''''''&''''''''''''''''''''''''''f'''''''''''''''''f'''''f'''''f'''''&''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&'''''&''''''''''''''''''''''''''&''''''''''''''''' '''''&'''''&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''f'''''''''''''''''f'''''''''''f'''''''''''''''''t'''''x'''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''' ''''' '''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''}'''''''','''''''')'''''}'''''''''''''''''e'''''s'''''e'''''e'''''h'''''c'''''`'''''`'''''{'''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'''''f'''''f'''''f'''''''''''''''''f'''''''''''''''''''''''''''''''''''''''''g'''''n'''''i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''i''''' '''''s'''''d'''''n'''''a'''''m'''''m'''''o'''''c''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''n'''''o'''''i'''''t'''''u'''''c'''''e'''''x'''''e''''' '''''e'''''h'''''t''''' ''''''''t'''''l'''''u'''''s'''''e'''''r''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''''' '''''}'''''''','''''''',''''')'''''}'''''''''''''''''s'''''g'''''g'''''e'''''`'''''`'''''{'''''t'''''x'''''e'''''t'''''''' ''''':'''''}'''''e'''''u'''''l'''''a'''''v'''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''g'''''''''''('''''}'''''n'''''a'''''r'''''{'''''m'''''r'''''h'''''t'''''a'''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''' '''''}'''''''',''''''''''''''''')'''''}'''''''''''''''''k'''''l'''''i'''''m'''''`'''''`'''''{'''''t'''''x'''''e'''''t'''''''' ''''':'''''}'''''e'''''u'''''l'''''a'''''v'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''2'''''_'''''}'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''''''''''''''''''''a'''''n'''''m'''''''' ''''':'''''}'''''d'''''i'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''('''''}'''''p'''''o'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''',''''''''{'''''''' ''''' ''''' ''''' '''''n''''''''''''''''''''''''''''' '''''o'''''t'''''s'''''p'''''a'''''m'''''''' '''''&''''' ''''')'''''2'''''_'''''}''''''''''''''_'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''T'''''g'''''e'''''r'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''' '''''&'''''&'''''n''''''''f'''''s'''''h'''''t'''''a'''''m'''''''' ''''','''''''','''''1'''''_'''''}'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' ''''':'''''}'''''d'''''i'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''('''''}'''''p'''''o'''''{'''''f'''''s'''''h'''''t'''''a'''''m'''''''',''''''''{'''''''' ''''' ''''' ''''' '''''n'''''''''' 'o't's'p'a'm'' '&' ')'1'_'}'d'i'{'t'i'h't'a'm''('}'T'g'e'r'{'f's'h't'a'm'' '&'&'n''x'e't'' ':'}'e'u'l'a'v'{'f's'h't'a'm'' ','3'_'}'d'i'{'t'i'h't'a'm'' ':'}'d'i'{'f's'''''''t'i'h't'a'm''('}'p'o'{'f's'h't'a'''''''''' '&'&'''''m'',''{'' 'o't's'p'a'm'' '&' ')'3'_'}'d'i'{'t'i'h't'a'm''('}'T'g'e'r'{'f's'h't'a'm'' '&'&'n't''''''''''''''''''''''`'''`'{'f''''}'''''''s'''h't'a'm'''f'' '&''''''f''''''''}'*'n''''',''o'''''i't'a'u'q''%'e'''''%''{''' '&'n'i'g'e'b''''['' ''''''''''','''''''''''''''&''&' ''''''''' '&''''''''''' '&'''}'2'{'''}'*'t'a',''n'g'i'l'a'{'n'i'g'e'b''''''''''''''''}'';''}'';'''',''}'' '&'n''' '''' '&'''%''&''' '''' '&''['''''''' ''''''''''''''''''''''''''''''''''%''''&''&'y'''''a'''''r'' '&'''''''''''''''''''''''''''''''''%''''''&''''&'''''''''''''''''' '&'''''''''''''''''''''''''%''''''''&''''''''&'''''''''''''' '''''o'''''t'''''s'''''p'''a''''' '&'''''''''''''''''''''''''''''''''&'''''''''''''}''''''''''''''''}'*'n'o'i't'a'u'q'e'{'d'n'e'''''''''''''''''''' '&'''''''''''''''''''''''''''''''''}'''''''''']'' ''''''''n''''''''''''''''''''''''}'*'t'a'n'g'i'l'a'{'d'n'e'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'i'a't'{'f's'h't'a'm'' 'o't's'p'a'm'' ')'2'_'}'d'i'{'t'i'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm''n''' '}'2'_'d'i'{'t'i'h't'a'''''''a'n'm'' 'o't's'p'a'm'' ')''''''}'1'_'d'i'{'t'i'h't'a'm'''''m'('}'t'x'e'n'{'f's'h't'a'm''n''' '}'1'_'d'i'{'t'i'h't'a'm'' 'o't's'p'a'm'' ')'3'''''''3'2'_'}'d'i'{'t'i'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm''n''' '3'''m'''''''' ''''')'''''}'''''d'''a'e'h'{'f's'h't'a'm''''''''''''''''''''''''' 'o't's'p'a'm'' ')'3'_''''-'}'d'i'{'t'i'h't'a'm''('}'t'x'e'n'{'f's'h't'a'm''''''''''''''''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''{'' 'o't's'p'a'm'' ')'|'''g'n'i'p'p'o'h's'''|''''''b'r'e'v''('}'T't's'i'l'{'f's'h't'a'm'' '''{' 'o't's'p'a'm'' ')'}'c'o'd'{'f's'h't'a'm''('}'T'p'a'm''''''''''''''''''''m'o'r'f'''''''n'i' 't'n'e'm'u'c'o'd'''o'''d'{'f's'h't'a'm'' '&' ';''{' '=' 'p'_'A'r'a''''''''y''']'' ''a'r'r'a'''n''''''''''''''''''''''''''''''''''''''''''''''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'l'p'm'a'x'e'-'e't'a't's':'g'i'f'{'l'e'b'a'l''}'.'}'c'o'd'-'e'k'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'f'o' 'e'l'p'm'a'x'e' 'e'h't' 'f'o' 'n'o'i't'a't'n'e's'e'r'p'e'r' 'l'a'n'r'e't'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'u'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'l'a'v'{'t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'l'a'v'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n'}'s'e'u'l'a'v'{'f's'h't'a'm''.')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'3'_'}'l'a'V'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'l'a'v'{'t'i'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n'}'s'e'u'l'a'v'{'f's'h't'a'm''.')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_''''{'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''''('r'o's'r'u'c'{'f's'h't'a'm'' ','',')''''}'1'_'k'('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '1'_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$'}'l'a'v'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'s'e'u'l'a'v'{'f's'h't'a'm''.')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''''''''''''''''''''''' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B'''''''n'}'$'2'_'}'l'a'V'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'','' ')')'k'('}'T'g'e'r'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm'' 'n'i'' '}'p'o'{'t'i'h't'a'm'' 'd'i'm'' '}'l'a'v'{'f's'h't'a'm''.'}'p'o'{'t'i'h't'a'm'' ',''{'' '=' '}'l'a'v'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'T'g'e'r'{'f's'h't'a'm''$'{'C'm'o'i'x'A''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'i'h't'a'm'' 'o't'l'a'v'e'' '}'s'e'u'l'a'v'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'1'_'}'l'a'V'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'}'l'a'v''''c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'s'e'u'l'a'v'{'f's'h't'a'm''.'}'r'u'c''''''''''''''''{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'l'a'v'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''I'{'n'o'i't'p'a'c''n'}'r'a'l'u'b'a't'{'d'n'e''n'}'l'l'{'}'r'a'l'u'b'a't'{'n'i'g'e'b''n'g'n'i'r'e't'n'e'c''n'''''''''''''''''''''''''''''''''''''''''''''''''y'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'e'v'i't'c'e'p's'e'r' ','''''''''''''''''''''''''''''''''''''''t''' 's'e'v'i'g' '}'s'e'l'u'r'-'r'p'x'e':'g'i'f''''r'{'f'e'r''~''''''''''''''''''''''d'e't'a'u'l'a'v'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'x'e't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n't'f'a'r'd'f'o'o'r'p' '%' 'i'f''n''''''''''''''''''''''.'r'o's'r'u'c' 'e'h't' 'n'i' 'd'e'd'o'c'n'e' 's'i' 'n'o'i't'r'e's's'a' 's'i'h't' 'd'n'a' ','}'T'p'a'm'{'f's't'x'e't''''''''''''''''''''''''''''''p'a'm'' 'e'p'y't' 'f'o' 's'i' '}'c'o'd'{'f's'h't'a'm'' 't'a'h't' 's't'r'e's's'a' 'y'l't'i'c'i'l'p'm'i' '|'t'e'g'.'c'o'd'|''''''b'r'e'v'' 'n'o'i's's'e'r'p'x'e' 'e'h't''''''''''''' 'e'h't' 't'a'h't' 'e't'o'N' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'l'u'r' '}'t'x'e'N'{'c's't'x'e't'' 'e'h't' 's'a' 'e'r'u't'c'u'r't's' 'e'l'u'r' 'e'v'i's'r'u'c'e'r' 'r'a'l'i'm'i's' 'a' 'g'n'i's'u' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'n'o'i't'a't'u'm' 'l'a'c'o'l' 'f'o' 's'c'i't'n'a'm'e'S''''''''''''''''''''''''''''''''''''' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i't'c'e's'b'u's'b'u's''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e't'a'l' 'h't'p'e'd' 'r'e't'a'e'r'g' 'n'i' 'e'r'o'''''''o';'l''''o'p'x'e' 'l'l'i'w' 'e'w' 'e'u's's'i' 'n'a' ','t'i' 'o't' 's'e'u'l'a'v' 'n'g'i's's'a' 'y'l't'n'e'r'r'u'c'n'o'c' 's'r'e'e'p' 'e'l'p''''l'i't'l'u'm' 'f'i' 's'e'u'l'a'v' 'e'l'p'i't'l'u'm' 'n'i'a't'n'o'c' 's's'e'l'e'h't'r'e'v'e'n' 'n'a'c' 'r'e't's'i'g'e'r' 'a' ','r'e't's'i'g'e'r' 'a' 'o't' 'e'u'l'a'v' 'e'l'g'n'i's' 'a' 'n'g'i's's''''''''''''''''''''''a' 'y'l'n'o' 'n'a'c' 'r'e'e'p' 'e'l''''l'g'n'i's' 'a' 'h'g'u'o'h't'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''u'm' 'e'v'a'h' 'y'a'm' 'r'e't's'i''''u'g'e'r' 'A' '.'e't'a't's' 'l'a'c'o'l' 'e'h't' 'n'i' 'n'o'i't'a't'o'n'n'a' 'e'p'y't' '}'T'g'e'r'{'f's't'x'e't'''''''''$' 'e'h't' 'g'n'i's'u' 'd'e''''s's'e'r'p'''p'x'e' '}'s'r'e't's'i'g'e'r'{'h'p'm'e'' 's'y'a'w'l'a' 'e'r'a' 'e'e'r't' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 's'e'v'a'e'l' 'e'h'T' '.'n'o'i't'i's'o'p' 'r'o's'r'u'c' 'r'a'l'u'c'i't'r'a'p' 'a' 't'a' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 's't'n'e't'n'o'c''''''''''''''''''' 'e'u'l'a'v' 'e'h't' 'd'a'e'r' 'o't' 'm'a'r'g'o'r'p' 'a' 'w'o'l'l'a''''d' 's'e'l'u'r' '$'}'3','2','1'{'_'}'l'a'V'{'c's't'x'e't''$' 'e'h't' ','y'l'l'a'n'i'F'n'n'''''''''''''''''''''''''''s'i' 'n'o'd''i's's'e'r'p'x'e' 'n'a''''''''''''''''''''''''' 'y'l's'u'o'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'n'''' ','e'l'p''''''''''e'k'p'm'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'$''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'l'p'm'a'x'e'-'e't'a't's''''''''''''''''''''''''''''''''''''''''s'e'h's'i'n'i'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'y't'p'm'e' 'y'l'b'i's's'o'p'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$')'}'c'o'd'{'f's'h't'a'm'' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''$' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'''''''}'''''3''''','''''2''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'o's'r'u'c' 'e'h't' 'n'i' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' 'e't'a't's' 'l'a'c'o'l' 'e'h't' 's'd'n'e'c's'e'd' 'y'l'e'v'i's'r'u'c'e'r' '$''''''3'_'+'}'t'x'e'N'{'c's't'x'e't'' 'e'h't' 'd'n'a' ','$'p'_'A'$' 'n'i' 's't's'i'x'e' 't's'i'l' 'e'h't' 'f'i' 'y'l'n'o' 'y'l'p'p'a' 's'e'l'u'r' '}'t'x'e'N'{'c's't'x'e't'' 'e'h'T' '.'t'n'e'm'e'l'e' 't's'i'l' 't'x'e'n' 'e'h't' 'f'o' 'r'e'i'f'i't'n'e'd'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'o't' 'r'o's'r'u'c' 'e'h't' 'n'i' 'y'e'k' 'l'a'n'i'f' 'e'h't' 'g'n'i't't'e's' 'y'b' 't's'i'l' 'd'e'k'n'i'l' 'a' 'h'g'u'o'r'h't' 'n'o'i't'a'r'e't'i' 'e'l'd'n'a'h' '$'}'t'x'e'N'{'c's't'x'e't''$' 'd'n'a' '$'2'_'}'t'x'e'N'{'c's't'x'e't''$' ','$'1'_'}'t'x'e'N'{'c's't'x'e't''$' 's'e'l'u'r' 'e'e'r'h't' 'e'h'T' '.'$'p'_'A'$' 'n'i' 't'n'e't's'i'x'e'n'o'n' 'r'o' 'y't'p'm'e' 's'i' 't's'i'l' 'e'h't''''$' 'f'i' 'n'e'v'e' 's'e'i'l'p'p'a' 'e'l'u'r' 's'i'h'T' '.'t's'i'l' 'e'h't' 'f'o' '}'d'a'e'h'{'f's't'x'e't'''''''a'm'' 'e'h't' 't'a' 't'i''''''''''''' 'e'h't' 's'n'o'i't'i's'o'p' 'd'n'a' '''''''''''''l'a'v' 't's'i'l' 'a' 'o't'n'i' 'r'o's'r'u'c' 'e'h't' 's't'f'i''''u'h's' 'e'l'u'r' '}'r'e't'I'{'c's't'x'e't'' 'e'h'T'n'n'.'s'e'l'u'r' '}'t'e'G'{'c's't'x'e't'' 'd'n'a' '}'c'o'D'{'c's't'x'e't'' 'e'h't' 'g'n'i'y'l'p'p'a' 'y'b' '$')'}'''''g'n'i'p'p'o'h's'`'`'{'t'x'e't'' ','','e'l'g'n'a'r'' ')'}'c'o'd'{'f's'h't'a'm''('}'T'p'a'm'{'f's'h't'a'm'' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''$'''''''''''''''''''''''''''''''''''''$' 'r'o's'r'u'c' 'e'h't' 'o't' 's'e't'a'u'l'a'v'e' '|')'''g'n'i'p'p'o'h's'''('t'e'g'.'c'o'd'|'b'r'e'v'''''''''$' 'n'o'i's's'e'r'p'x'e' 'e'h't' ','e'l'p'm'a'x'e' 'r'o'F' '.'p'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't'n'e's'e'r'p'e'r' 's'i' 't'n'e'm'u'c'o'd' 't'o'o'r' 'e'h't' 'n'i' '''''g'n'i'p'p'o'h's'''''''h'w'`'`' 'y'e'k' 'e'h't' 'o's' ','p'a'm' 'a' 'n'i'h't'i'w' 'y'e'k' 'r'a'l'u'c'i't'r'a'p' 'a' 'o't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'o's'r'u'c' 'a' 's'e't'a'g'i'v'a'n' 'e'l'u'r' '}'t'e'G'{'c's't'x'e't'' 'e'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'e'l'p'm'a'x'e' 'e'h't' 'n'i' 's'a'(' 'p'a'm' 'a' 's'i' 't'o'o'r' 'e'h't' 'f'I' '.'}'c'o'd'{'f's't'x'e't'''''''a'm'' 'm'o't'a' 'l'a'i'c'e'p's' 'e'h't' 'g'n'i's'u' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'o'o'r' 'e'h't' 'g'n'i'c'n'e'r'e'f'e'r' ','r'o's'r'u'c' 't's'e'l'p'm'i's' 'e'h't' 's'e'n'i'f'e'd' '}'s'e'l'u'r'-'r'p'x'e':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'l'u'r' '}'c'o'D'{'c's't'x'e't''''''''''t'a'm'' 'e'h'T'n'n'.'}'T't's'i'l'{'f's't'x'e't'' 'r'o' '}'T'p'a'm'{'f's't'x'e't'''''''''$' 's'a' 'h'c'u's' 'm'o't'a''''''''''n'n'a' 'e'p'y't'a't'a'd' 'a' 'e'v'a'h' 'r'o't'c'e'v' 'e'h't' 'f'o' 's't'n'e'm'e'l'e' 'e'h't' 's'a'e'r'e'h'w' ','e'p'y't'a't'a'd' 'a' 'h't'i'w' 'd'e'g'g'a't' 't'o'n' 's'i' 't''''s'i' 't'a'h't' 'n'o'i't'c'n'i't's'i'd' 'e'h't' 'h't'i'w' ','r'o't'c'e'v' 'e'h't' 'f'o' 't'n'e'm'e'l'e' 'l'a'n'i'f' 'e'h't' 's'a' 'f'o' 't'h'g'u'o'h't' 'e'b' 'n'a'c' '$'n'_'k'$' '.')'t'n'e's'e'r'p' 's'y'a'w'l'a' 's'i' 'h'c'i'h'w'(' '$'n'_'k'$' 'y'e'k' 'l'a'n'i'f' 'a' 'd'n'a' ','$'e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','''''''''''''''''''''''''''''''''''s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''$' 's'y'e'k' 'f'o' 'r'o't'c'e'v' 'a' 'f'o' 's't's'i's'n'o'c' '$')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k'''''''k'' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's't's'i's''''''''''''''''s'n'i'a't'n'o'c' 'r'o's'r'u'c' 'a' ','l'a'r'e'n'e'g' 'n'I'n'n''''''''''''''''''''y'r't'n'e''''''''''''''''''t'x'e't''''''''''''''''{'f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'1'_'}'d'i'{'t'i'h't'a'm''$' 'r'e'i'f'i't'n'e'd'i' 'h't'i'w' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'h't'i'w' 's'd'n'e' 'd'n'a' ','}'T's'h't'a'm'''''''''''''''''''''''''t's'i'l' 'e'p'y't' 'f'o' '''''g'n'i'p'p'o'h's'`'`' 'y'e'k' 'p'a'm' 'e'h't' 'h'g'u'o'r'h't' 's'e's'r'e'v'a'r't' 't'i' ','t'o'o'r' 'e'h't' 't'a' 'p'a'm' '}'c'o'd'{'f's't'x'e't'''''''a'm'' 'e'h't' 'm'o'r'f' 'g'n'i't'r'a't's'':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'e'r'u't'c'u'r't's' 'e'h't' 'h'g'u'o'r'h't' '''''''''''''''''''''''''''' ':'t'h'g'i'r' 'o't' 't'f'e'l' 'm'o'r'f' 'd'a'e'r' ','h't'a'p' 'a' 's'a' 'd'e't'e'r'p'r'e't'n'i' 'e'b' 'n'a'c' 't'I''''''''''''''''''''''r'u'c' 'e'h'T' '.'}'c'o'd'-'e'k'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' '|'''s'g'g'e'''|'b'r'e'v'' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'g'n'i't'n'e's'e'r'p'e'r' 'r'o's'r'u'c' 'a' 's'i' '$')'1'_'}'d'i'{'t'i'h't'a'm'' ','','e'l'g'n'a'r'' ')'}'''''g'n'i'p'p'o'h's'`'`'{'t'x'e't''('}'T't's'i'l'{'f's'h't'a'm'' ',')'}'c'o'd'{'f's'h't'a'm''('}'T'p'a'm'{'f's'h't'a'm'' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm''$' ','e'l'p'm'a'x'e' 'r'o'F'n'n'.'t'n'e'm'u'c'o'd' 'e'h't' 'n'i' 'n'o'i't'i's'o'p' 'e'm'a's' 'e'h't' 'e't'a'c'o'l' 'o't' 'd'e's'u' 'e'b' 'n'a'c' 't'i' 'e'r'e'h'w' ','r'e'e'p' 'r'e'h't'o'n'a' 'o't' 'k'r'o'w't'e'n' 'e'h't' 'r'e'v'o' 't'n'e's' 'e'b' 'n'a'c' 't'i' 'o's' ','s'r'e'i'f'i't'n'e'd'i' 'd'n'a' 's'y'e'k' 'e'l'b'a't'u'm'm'i' 'f'o' 'y'l'n'o' 's't's'i's'n'o'c' 'r'o's'r'u'c' 'A''''S' '.'e'd'o'n' 'f'a'e'l' 'r'o' 'h'c'n'a'r'b' 'e'm'o's' 'o't' 'e'e'r't' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'o'o'r' 'e'h't' 'm'o'r'f' 'h't'a'p' 'a' 'g'n'i'b'i'r'c's'e'd' 'y'b' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'a' 'n'i' 'n'o'i't'i's'o'p' 'r'a'l'u'c'i't'r'a'p''g'i'b'm'a'n'u'''''''''''''' 'a' 's'e'i'f'i't'n'e'd'i' 'r'o's'r'u'c' 'A' '.'''''''''''''''''''''''''''''''''' 's'i' 'h'c'i'h'w' ',''''''' '.'''''' 'w'o'h' 'w'o'h's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','m'o't'a' '}'r'o's'r'u'c'{'h'p'm'e'' 'a' 'o't' 'e't'a'u'l'a'v'e''''''''''''''''''''''''' 'e'''''''r'o't'a'r'e'p'o' '}'s'e'l'u'r'-'r'p'x'e':'g'i'f'{'f'e'r''~'e'r'u'g'i'F''''f' 'n'i' 's'e'l'u'r' 'g'n'i'n'i'a'm'e'r''''''''''''''''r'e'h't'o' 'e'h'T'n'n'.'e'l'b'a'i'r'a'v' 'd'e'n'i'f'e'd' 'y'l's'u'o'i'v'e'r'p' 'a' 'f'o' 'e'u'l'a'v' 'e'h't' 'e'v'e'i'r't'e'r' 'o't' 'm'a'r'g'o'r'p' 'e'h't' 's'w'o'l'l'a' 'e'l'u'r' '}'r'a'V'{'c's't'x'e't'' 'g'n'i'd'n'o'p's'e'r'r'o'c' 'e'h't' 'd'n'a' ','e't'a't's' 'l'a'c'o'l' 'e'h't' 'o't' 'd'e'd'd'a' 's'i' 'h'c'i'h'w' ','e'l'b'a'i'r'a'v' 'l'a'c'o'l' 'a' 'e'n'i'f'e'd' 'o't' 'm'a'r'g'o'r'p' 'e'h't' 's'w'o'l'l'a' 'e'l'u'r' '}'t'e'L'{'c's't'x'e't'' 'e'h'T' '.'y'l'l'a'i't'n'e'u'q'e's' 'd'e't'u'c'e'x'e' 'e'r'a' 's'd'n'a'm'm'o'c' 't'a'h't' 's'e'n'i'f'e'd' 'e'l'u'r' '}'c'e'x'E'{'c's't'x'e't'' 'e'h'T' ''''''''''''''''''''''''''''''''''''''''.'$'p'_'A'$' 'e't'a't's' 'r'e'e'p' 'l'a'c'o'l' 'e'h't' 'f'o' 't'x'e't'n'o'c' 'e'h't' 'n'i' 'd'e'i'l'p'p'a' 'e'r'a' 'h'c'i'h'w' ','e'r'u'g'i'F''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'h't' 'n'i' 's'n'o'i's's'e'r'p'x'e' 'R'P'X'E' 'g'n'i't'a'u'l'a'v'e' 'r'o'f' 's'e'l'u'r' 'e'h'T'n'n'.'t's'i'l' 'e'h't' 'f'o' 'd'n'e' 'd'n'a' 'g'n'i'n'n'i'g'e'b' 'e'h't' 'g'n'i't'o'n'e'd' 's'm'o't'a' '}'l'i'a't'{'f's't'x'e't'' 'd'n'a' '}'d'a'e'h'{'f's't'x'e't'' 'l'a'i'c'e'p's' 'd'n'a' ','''' ')'$'3'_'}'d'i''''3'{'t'i'h't'a'm'' ','2'_'}'d'i'{'t'i'h't'a'm'' ','1'_'}'d'i'{'t'i'h't'a'm''$'(' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'a' 'd'e'n'g'i's's'a' 't'n'e'm'e'l'e' 't's'i'l' 'h'c'a'e' 'h't'i'w' ','t's'i'l' 'd'e'k'n'i'l' 'a' 'g'n'i'l'b'm'e's'e'r' 'r'e'n'n'a'm' 'a' 'n'i' 'd'e't'n'e's'e'r'p'e'r' 's'i' 't's'i'l' 'e'h'T' '.'}'T't's'i'l'{'f's't'x'e't'' 'e'p'y't' 'f'o' '''''g'n'i'p'p'o'h's'`'`' 'y'e'k' 'e'h't' 's'i' 'y'r't'n'e' 'y'l'n'o' 'e'h't' ','e'r'e'h'''''''''''''t' 'n'i' ';'p'a'm' 'e'h't' 'f'o' 's'r'i'a'p' 'e'u'l'a'v'-'y'e'k' 'e'h't' 'g'n'i'n'i'a't'n'o'c' 'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'r'e'h't'o'n'''' 'a' 'o't' 's'p'a'm' '}')''''''' '}'c'o'd'('T'p'a'm'{'f's't'x'e't'' '.'p'a'm' 'e'p'y't'''''''''''''''''''''''''''''''e'p'y't' 'p'a'm' 'a' 'f'o'''''''f'o' 's'i' '}'c'o'd'{'f's't'x'e't''''m'' 't'n'e'm'u'c'o'd' 'e'h't' 't'a'h't' 's'e't'o'n'e'd' 'h'c'i'h'w' ','}')'c'o'd'('T'p'a'm'{'f's't'x'e't''''m'''''''''$' 'm'o't'a' 'e'l'g'n'i's' 'e'h't' 's'i' 'n'i'a'm'o'd' 'e's'o'h'w' 'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'a' 's'i' '$'p'_'A'$' ','}'e'l'p'm'a'x'e'-'e't'a't's':'g'i'f''''s'{'f'e'r''~'e'r'u'g'i'F' 'n'I' '.'}'c'o'd'-'e'k'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'f'o' 'e'l'p'm'a'x'e' 't's'i'l' 'g'n'i'p'p'o'h's' 'e'h't' 'o't' 's'd'n'o'p's'e'r'r'o'c' 'h'c'i'h'w' ','}'e'l'p'm'a'x'e'-'e't'a't's':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'e'v'i'g' 's'i' '$'p'_'A'$' 'e't'a't's' 'r'e'e'p' 'e'h't' 'f'o' 'e'l'p'm'a'x'e' 'e'v'i't'a'r't's'u'l'l'i' 'n'A'n'n'.'$'p'$' 'r'e'e'p' 'e'l'g'n'i's' 'a' 't'a' 's'd'n'a'm'm'o'c' 'f'o' 'n'o'i't'u'c'e'x'e' 'e'h't' 'n'o' 'e't'a'r't'n'e'c'n'o'c' 'e'w' ','''' 'w'o'n' 'r'o'F' '.'r'e't'a'l' 's's'u'c's'i'd' 'e'w' 'h'c'i'h'w' ','d'n'a'm'm'o'c' '}'d'l'e'i'y'{'f's't'x'e't'' 'e'h't' 'f'o' 'n'o'i't'a'u'l'a'v'e' 'e'h't' 'n'i' 's'r'u'c'c'o' 's'r'e'e'p' 'n'e'e'w't'e'b'''''''e'p' 'n'o'i't'a'c'i'n'u'm'm'o'c' 'y'l'n'o' 'e'h'T' '.'$'''p'$' 'r'e'e'p' 'r'e'h't'o' 'y'n'a' 'f'o' '$'}'''p'{'_'A'$'''''''''' 'f'o' 'e't'a't's' 'e'h't' 'f'o' 't'n'e'd''''t'n'e'p'e'd'n'i' 'e'r'a' 'h'c'i'h'w' 'd'n'a' ','$'p'_'A''''''''''P'-'A'$' 'e't'a't's' 'l'a'c'o'l' 's'i'h't' 'y'f'i'd'o'm' 'd'n'a' 't'c'e'p's'n'i' 't'a'h't' 's'e'l'u'r' 'y'b' 'd'e'n'i'f'e'd' 'e'r'a' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'h't' 'f'o' 's'c'i't'n'a''''e'm'e's' 'e'h'T''''E' '''''''''''''''''.'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'e't'i'n'i'f' 'a' ','$'p'_'A'$' 'h't'i'w' 'd'e'b'i'r'c's'e'd' 's'i' '$'p'$' 'r'e'e'p' 'f'o' 'e't'a't's' 'e'h'T'n'n''''''n'}'e'r'u'g'i'f'{'d'n'e''n'}'e'r'u'g'i'f'{'n'i'g'e'b''n''''''''''''''''''''''''''''''''}'r'e't'n'e'c'{'n'i'g'e'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''p'_'A' 'o't'l'a'v'e'' '1'_'}'d'm'c'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''''E''n'''''''''''''''''''''''''''}'}''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''4'''''''}'m'e'6'{'e'c'a'p's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''}'r'e't'n'e'c'{'n'i'g'e'b''n''r'e't'n'e'c'{'d'n'e''n''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'r'e't'n'e'c'{'d'n'e''n'''''''''''''''''''''''3'''''''''''''''''''''''''''',''''''''''''''''''''}'m'e'6'{'e'c'a'p's'''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'}'t'e'G'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$')'n'_'k' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p''''P'{'n'i'g'e'b''n'n'}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'n'e'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'''''''''''''''''l'''''''''''''''''i'''''''''''''''''f''''''''''''''''''''''''''''''''''''''''''''1'''''''''''}'m'e'2'{'e'c'a'p's'h'''''''''''''d'a'u'q''f'o'o'r'P'y'a'l'p's'i'D''n'''%''''''''''''''''%'%''''''''''''''''''''''''''}'$'''}'r'u'c'{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n''''''''''''''}'r'e't'n'e'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'''k' ','',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'''n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't'l'a'v'e'' ' ' ' 'n'}'t'x'e'n'{'f's'h't'a'm''.'''''''.'')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_''''{'k' ','s't'o'd'' ','2'_'k' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$''''%'''''''$'%'{'C'f'n'I'y'r'a'n'i'B''n'}'$'3'_'}'t'x'e'N'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$')'''n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't'l'a'v'e''''''''e''' ' ' ' 'n''''''''''''''''a'v'e'' '}'t'x'e'n'{'f's'h't'a'm''.')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k' ','s't'o'd'' ','2'_'k' 'e'l'g'n'a'l''(''o's'r'u'c''}'{'f's'h't'a'm'' ','',')'1'_'k'('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '1'_'k'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n'''' 'o't'l'a'v'e'' '}'t'x'e'n'{'f's'h't'a'm''.')'k' ','','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ','','}'x't'c'{'t'i'h't'a'm''$'{'C'f'n'I'y'r'a'n'i'B''n'}'$'2'_'}'t'x'e'N'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L''n'}'$'''k' '=' ')')'k'('}'t'x'e'n'{'f's'h't'a'm''('}'x't'c'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')'}'x't'c'{'t'i'h't'a'm''('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' ')'k'('}'t'x'e'n'{'f's'h't'a'm''$'{''C'm'o'i'x'A'n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{''''P'd'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n't'i'h't'a'm'' 'o't'l'a'v'e'' '}'t'x'e''''''''''x'e' 'n'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'''''''y'e'r'a'n'i'B'''''A'n'}'$'1'_'}'t'x'e'N'{'c's't'x''''s'e't'''''''a'm''$'{'l'e'b'a'L't'f'e'L''n'}'$'''}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'t'x'e'n'{'f's'h't'a'm''.'}'r'u'c'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'''''''''''''''''''f'o'p'o'r'['{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''''''''''''0'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'}'$')'}'d'a'e'h'{'f's'h't'a'm'' '''','','e'l'g'n'a'r'' ')'n'_'k'('}'T't's'i'l'{'f's'h't'a'm'' ','}'1'-'n'{'_'k' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n'''' 'o't'l'a'v'e'' '}'r'e't'i'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'r'e't'I'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'''''''}'%'$')'n'_'k' ','','e'l'g'n'a'r'' '}'1'-'n'{'_'k''''' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('''' '}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'%'n'}'m'e'4'{'e'c'a'p's'h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$')'}'y'e'k'{'t'i'h't'a'm'' ','e'l'g'n'a'r'' ')'n'_'k'('}'T'p'a'm'{'f's'h't'a'm'' ','}'1'-'n'{'_'k' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' ' ' ' 'n' ','e'l'g'n'a'r'' '}'1'-'n'{'_'k''''' ','s't'o'd'' ','1'_'k' 'e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's''''''''''{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'''''''''''''{'C'f'n'I'y'r'a'n'U''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't'l'a'v'e'' ')'}'y'e'k'{'t'i'h't'a'm''('}'t'e'g'{'f's'h't'a'm''.'}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p''''r'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm''''''''''''''''t'n'u'o'M'A'p'i'k'S'f'o'o'r'p''''h''f'o'o'r'P'y'a'l'p's'i''''''''''''''''''''''''''''''''''F'O'O'R'P'Y'A'L'P'S'I'D''n'}'$')'x'('p'_'A' 'o't'l'a'v'e'' 'x' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'r'a'V'{'c's't'x'e't'''''''''''e't'|'{'l'e'b'a'L't'f'e'L''''''''''''''''''''''''''''%'$'{'C'm'o'i'x'A''n'}'$')'p'_'A'('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' 'x'$'{'C'm'o'i'x'A''n'%'n'l'l'i'f'h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$']',''}'r'u'c'{'t'i'h't'a'm'' ','''''''' 'o't's'p'a'm'' 'x',''['p'_'A' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' '=' 'x' '}'t'e'l'{'f's'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'t'e'L'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'r'u'c'{'t'i'h't'a'm'' 'o't'l'a'v'e'' '}'r'p'x'e'{'t'i'h't'a'm'' ','','p'_'A'''''$'{'C'm'o'i'x'A''n'n't'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''''''''i'D'n'}'$')'}'c'o'd'{'f's'h't'a'm'' ','e'l'g'n'a'r''e'l'g'n'a'l''('}'r'o's'r'u'c'{'f's'h't'a'm'' 'o't'l'a'v'e'' '}'c'o'd'{'f's'h't'a'm'' ','','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'c'o'D'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'{'C'm'o'i'x'A''n'%'n'l'l'i'f'h''f'o'o'r'P'y'a'l'p's'i'D''n'}'$'e'l'g'n'a'r'' 's't'o'd'' '}';'{'n'i'b'h't'a'm'' '2'_'}'d'm'c'{'t'i'h't'a'm'' 'e'l'g'n'a'l'' ',''''' ','''p'_'A' 'o't'l'a'v'e'' ' ' ' 'n''c'e'x'E'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'''''''''''''C'f'n'I'y'r'a'n'i'B'''''''''''''''''''''''''''''''''''' 'e'l'g'n'a'l''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'g'n'a'r'' 's't'o'd'' '}';'{'n'i'b'h't'a'm'' '2'_'}'d'm'c'{'''t'i'h't'a'm'' '}';'{'n'i'b'h't'a'm'' '''<'''''''''''''''1'_'}'d'm'c'{'t'i'h't'a'm'' ','','p'_'A'$'{'C'm'o'i'x'A''n'}'$'}'D'M'C'{'m'r'h't'a'm'' '}':'{'n'i'b'h't'a'm'' '1'_'}'d'm'c'{'t'i'h't'a'm''''a''$'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'l'u'r'-'r'p'x'e''''c':'g'i'f'{'l'e'b'a'l''}'r'o's'r'u'c' 'a' 'n'i'a't'b'o' 'o't' 'n'o'i's's'e'r'p'x'e' 'n'a' 'g'n'i't'a'u'l'a'v'e' 'r'o'f' 's'e'l'u'R'{'n'o'i't'p'a'c''n'g'n'i'r'e't'n'e'c''n'''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b'''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'f'o' 's'c'i't'n'a'm'e's' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i't'c'e's'b'u's'b'u's''n'n'''''''''''''''''''.'s'n'o'i't'a'c'i'f'i'd'o'm' 't'n'e'r'r'u'c'n'o'c' 'f'o' 'e'c'n'e's'e'r'p' 'e'h't' 'n'i' 's'c'i't'n'a'm'e's' 'e'l'b'a'r'i's'e'd' 'g'n'i'v'e'i'h'c'a'''''''e'd' 'r'o'f' 'l'u'f'p'l'e'h' 'e'r'''''''''''''''''''''''''''''''''''''''''''''' 'r'o'f' 'l'u'f'p'l'e'h' 'e'r'a' 's'e'r'u't'a'e'f' 'e's'e'h't' ','r'e't'a'l' 'e'e's' 'l'l'a'h's' 'e'w' 's'A' '.'s'n'o'i't'c'e'l'l'o'c' 'y't'p'm'e'-'n'o'n' 'r'o'f' 't'o'n' 't'u'b' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''c' 's't's'i'l' 'd'n'a' '''' 's'p'a'm' 'r'o'f' 't'o'n' 't'u'b' ','s't's'i'l' 'd'n'a' 's'p'a'm' 'y't'p'm'e' 'r'o'f' 's'l'a'r'e't'i'l' 's'a'h' 'e'g'a'u'g'n'a'l' 'e'h't' 'd'n'a' ';'x'e'd'n'i' 'y'b' 't'o'n' 't'u'b' ')'}'t'x'e'n'{'f's't'x'e't''(' 'n'o'i't'a'r'e't'i' 'y'b' 'd'e't'a'g'i'v'a'n' 'e'b''''n' 'y'l'n'o' 'n'a'c' 's't's'i'l' ';'d'e's's'e'c'c'a' 't's'r'i'f' 'e'r'a' 'y'e'h't' 'n'e'h'w' 'd'e't'a'e'r'c' 'y'l't'i'c'i'l'p'm'i' 'e'r'a' 's'p'a'm' 'n'i' 's'y'e'k'''''''h't' ':'s'e'g'a'u'g'n'a'l' 'g'n'i'm'm'a'r'g'o'r'p' 'm'a'e'r''''e't's'n'i'a'm' 't's'o'm' 'm'o'r'f' 'r'e'f'f'i'd' 'y'l'e't'a'r'e'b'i'l'e'd' 'e'g'a'u'g'n'a'l' 's'i'h't' 'f'o' 's'e'r'u't'a'e'f' 'w'e'f' 'A'n'n'.'d'a'e'h' 'e'h't' 'o't' 'r'e'f'e'r' 'o't' 's'e'u'n'i't'n'o'c' '|'t's'i'l'|'b'r'e'v'' 'e'l'b'a'i'r'a'v' 'e'h't' 'e's'u'a'c'e'b' ','t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't''e'''''u'''''l'''''a'''''v''''' '''''e'''''h'''''t''''' '''''s'''''t'''''a'''''e'''''r'''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'o't' 's'e'v'o'm' 'h'c'i'h'w' ','}'t'x'e'n'{'f's't'x'e't'' 's'l'l'a'c' 'd'n'a' ',')'t's'i'x'e' 't'o'n' 's'e'o'd' 't'i' 'f'i' 'd'e't'a'e'r'c' 'y'l't'i'c'i'l'p'm'i' 's'i' 'h'c'i'h'w'(''n'i'l' 'd'n'o'c'e's' 'e'h'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 't'a' 's'n'e'p'p'a'h' 'n'o'i't'r'e's'n'i' ','e'l'o'h'w' 'a' 's'a' 't's'i'l' 'e'h't' 'o't' 's'r'e'f'e'r' 'r'o's'r'u'c' 'e'h't' 'f'I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a' 'd'e't'r'e's'n'i' 's'''''''s'n'i' 'e's'e'e'h'c' 't'u'b' ','s'g'g'e' 'r'e't'f'a' 'd'e't'r'e's'n'i' 's'i' 'k'l'i'm''''' ','s'u'h'T' '.'t'n'e'm'e'l'e' 'd'e't'r'e's'n'i' 'y'l'''' 'w'e'n' 'e'h't' 'f'o' 'n'o'i't'i's'o'p' 'r'o's'r'u'c' 'e'h't' 's'n'r'u't'e'r' 'd'n'a' ','n'o'i't'i's'o'p' 'r'o's'r'u'c' 't'n'e'r'r'u'c' 'e'h't' '}'r'e't'f'a'{'h'p'm'e'' 't'n'e'm'e'l'e''''a' 't's'i'l' 'w'e'n' ''''''' 'n'a' 's'd'd'a'''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a'm'm'o'c' '}'t'r'e's'n'i'{'f's't'x'e't'' 'e'h'T' '.'t's'i'l' 'e'h't' 'o't'n'i' 'd'e't'r'e's'n'i' 'e'r'a' 's'm'e't'i' 'e'e'r'h't' 'n'e'h't' 'd'n'a' ','|']'['|'b'r'e'v'' 't's'i'l' 'y't'p'm'e' 'e'h't' 'o't' 't'e's' 's'i' '|'''g'n'i'p'p'o'h's'''|'b'r'e'v''''''''''' 'y'e'k' 'e'h't' ','p'a'm' 't'a'h't' 'n'i'h't'i'W' '.'l'a'r'e't'i'l' 'p'a'm' 'y't'p'm'e' 'e'h't' ','|'}'{'|'b'r'e'v'' 'o't' 't'e's''''''''''s's'a' 's'i' '}'c'o'd'{'f's't'x'e't'' 't's'r'i'F' '.'t's'i'l' 'g'n'i'p'p'o'h's' 'a' ''''''' 'a'g'n'i't'n'e's'e'r'p'e'r' 't'n'e'm'u'c'o'd' 'w'e'n' 'a' 'g'n'i't'c'u'r't's'n'o'c' 's'd'n'a'm'm'o'c' 'f'o' 'e'c'n'e'u'q'e's' 'a' 'f'o' 'e'l'p'm'a'x'e' 'n'a' 's'w'o'h's' '}'c'o'd'-'e'k'a'm':'g'i'f'{'f'e'r''~'e'r'u'g'i'F'''d'''''e'''i'f'i'd'o'm' 'g'n'i'e'b' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'r'a'p' 'e'h't' 's'e'i'f'i't'n'e'd'i' 'R'P'X'E' 'n'o'i's's'e'r'p'x'e' 'g'n'i'd'e'c'e'r'p' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d' 's'i' 'd'e'i'f'i'd'o'm' 'g'n'i'e'b' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 't'r'a'p' 'e'h'T' ''''''' 'e'h'T'n'n''''''''''''''''''''''''''''''' 't'r'a'p' 'e'h'T' '.')'}'r'c'n'i'{'f's't'x'e't''(' 'r'e't'n'u'o'c' 'a' 'g'n'i't'n'e'm'e'r'c'n'i' 'y'b' 'r'o' ',')'}'e't'e'l'e'd'{'f's''''f't'x'e't''(' 'p'a'm' 'a' 'r'o' 't's'i'l' 'a' 'm'o'r'f' 't'n'e'm'e'l'e' 'n'a' 'g'n'i't'e'l'e'd' 'y'b' ','''''')'}'t'r'e'n's'i'{'f's't'x'e't''(' 't's'i'l' 'a' 'o't'n'i' 't'n'e'm'e'l'e' 'n'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't'r'e's'n'i' 'y'b' ',')'=':' 'r'o't'a'r'e'p'o' 't'n'e'm'n'g'i's's'a' 'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i's'u'(' 'd'l'e'i'f' 'e'm'o's' 'f'o' 'e'u'l'a'v' 'e'h't' 'g'n'i'n'g'i's's'a' 'y'b' 'd'e'i'f'i'd'o'm' 'e'b' 'n'a'c' 't'n'e'm'u'c'o'd' 'A' '.'t'n'''''''''''''''''''''''''''''''''''''x'e't'' ','=':'''''(' 't'n'e'm'u'c'o'd' 'e'h't' 's'e'i'f'i'd'o'm' 'r'o' ',')'}'d'l'e'i'y'{'f's't'x'e't''(' 'n'o'i't'a'c'i'n'u'm'm'o'c' 'k'r'o'w't'e'n' 's'm'r'o'f'r'e'p' ',')'}'t'e'l'{'f's't'x'e't''''m''(' 'e'l'b'a'i'r'a'v' 'l'a'c'o'l' 'a' 'f'o' 'e'u'l'a'v' 'e'h't' 's't'e's' 'r'e'h't'i'e' 'D'M'C' 'd'n'a'm'm'o'c' 'A'''''''p'''''p''''''''''''''''' '}'t'e'''''s'''''''''''''''''''''''''''''''''''''')'|'''g'n'i'p'p'o'h's'''|''''''b'r'e'v''('}'''''''(')'t'e'g'.'c'o'd'{'f's't'x'e't'' '=' ''g'g'e'''l'''''{'''f's't'x'e't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';')''''''')'}''''''''''''''''''''''''''''''''''''''''''''''''''''','''s'g'g'e'''[' ':'''g'n'i'p'p'o'h's'''{'n''''''''''''''''}'m'i't'a'b'r'e'v'{'d'n'e''n'}'m'i't'a'b'r'e'v'{'n'i'g'e'b'''''n'n':'e't'a't's' 'l'a'n'i'F'n'|'''k'l'i'm'''|'b'r'e'v''('}'t'r'e's'n'i'{'f's't'x'e't''.'}'t's'i'l'{'t'i't'x'e't''n''' ';')''''|''''''''''''''s'g'g'e'|'''''''b'r'e'v''('}'t'r'e's'n'i'{'f's't'x'e't''.'}'t's'i'l'{'t'i't'x'e't''n''' ''''';'''o'h's'{'t'i't'x'e't'' '}'t'e'l'{'''' 'f's't'x'e't''''''''''''''''''''''''''''''''''''''.')'|'''g'n'i'p'p'o'h's'''|''''''b'r'e'v''('}'t'e'g'.'c'o'd'{'f's't'x'e't''n''';'|']'['|'b'r'e'v'' '=' ')'|''''''|'g'n'i'p'p'o'h's'''|'b'r'e'v'''''''''''''''''t'x'e't'''''''''''''h't'a'm''(''e'g'.''}'c'o'd'{'f's't'x'e't''n''';'|'}'{'|'b'r'e'v'' '=' '}'c'o'd'{'f's't'x'e't''n'''''''''''''''}'r'a'l'u'b'a't'{'d'n'e''n'}'l'{'}'r'a'l'u'b'a't'{'n'i'g'e'b''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'r'u'g'i'f'{'d'n'e''n'}'c'o'd'-'e'k'a'm':'g'i'f'{'l'e'b'a'l''}'t'n'e'm'u'c'o'd' 'N'O'S'J' 'a' 'g'n'i't'c'u'r't's'n'o'c' 'y'l'l'a'c'i't'a'm'm'a'r'g'o'r'p' 'f'o' 'e'l'p'm'a'x'E''''''''''''''''''''''{'n'o'i't'p'a'c''n'g'n'i'r'e't'n'e'c''n'}'e'r'u'g'i'f'{'n'i'g'e'b''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' ','y't'i'v'e'r'b' 'r'o'F'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'c'i't'n'a'm'e's' 'l'a'm'r'o'f' 's't'i' 'g'n'i'v'i'g' 'e'r'o'f'e'b' ','y'l'l'a'm'r'o'f'n'i' 'e'g'a'u'g'n'a'l' 'e'h't' 'n'i'a'l'p'x'e' 't's'r'i'f' 'e'W'' '''''''''''''''''''''''''t'c'u'''''''''''o't' 'd'e's'u' 's'i' ''''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'c' 'e'''e'h't'''''.'''h'''''t''''' '''''t'''''a''''' '''e'u'l'a'v' 'e'h't' 's'n'r'u't'e'r''' '''''}'''''s'''''e'''''u'''''l'''''a'''''v'{'f's't'x'e't'' 'd'n'a' ','t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'f'o' 't'n'e'm'e'l'e' 't'x'e'n' 'e'h't' 'o't' 's'e'v'o'm' '}'t'x'e'n'{'f's't'x'e't'''''$' ',')'t'c'e'j'b'o' 'N'O'S'J' 'a'(' 'p'a'm' 'a' 'n'i'h't'i'w' 'y'e'k' 'a' 's't'c'e'l'e's' '$')''''_'}'y'e'k'{'t'i'h't'a'm''('}'t'e'g'{'f's'h't'a'm''$' ':'s'l'l'a'c' 'd'o'h't'e'm'''''''''''''''''''''''''''' 'n'o'i't'c'n'u'f' 'f'o' 'e'c'n'e'u'q'e's' 'a' 'h't'i'w' 's'e'u'n'i't'n'o'c' 'n'e'h't' 'n'o'i's's'e'r'p'x'e' 'e'h'T' '.'d'n'a'm'm'o'c'''''''''''''''''''s'e'r'p'x'e' '}'t'e'l'{'f's't'x'e't''''']' 'a' 'n'i' 'd'e'n'i'f'e'd' 'y'l's'u'o'i'v'e'r'p' 's'a'w' 't'a'h't' '$'x'$' 'e'l'b'a'i'r'a'v' 'a' 'r'o' ','e'e'r't' 't'n'e'm'u'c'o'd' 'N'O'S'J' 'e'h't' 'f'o' 't'o'o'r' 'e'h't' 'g'n'i'y'f'i't'n'e'd'i' ','}'c'o'd'{'f's't'x'e't'' 'n'e'k'o't' 'l'a'i'c'e'p's' 'e'h't' 'r'e'h't'i'e' 'h't'i'w' 's't'r'a't's' 'n'o'i's's'e'r'p'x'e' 'n'A' '.''''t'''''s'''n'o'c' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''s'''''''''''''''''y''''''''''''''''''''''''''''''''''''y'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'm'o'c' 'a' 'd'n'a' ','t'n'e'm'u'c'o'd' 'a' 'n'i'h't'i'w' 'n'o'i't'i's'o'p' 'a' 's'e'i'f'i't'n'e'd'i' 'd'n'a' 't'n'e'm'u'c'o'd' 'a' 'f'o' 'e't'a't's' 'e'h't' 's'e'i'r'e'u'q' 'h'c'i'h'w' ','R'P'X'E' 'n'o'i's's'e'r'p'x'e' 'n'a' ':'t'c'u'r't's'n'o'c' 'f'o' 's'd'n'i'k' 'n'''' '''''''''''''k' 's'n'i'a'm' 'o'w't' 's'a'h' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'h'T'n'n'.'e'g'a'u'g'n'a'l' 'g'n'i'm'm'a'r'g'o'r'p' 'e's'o'p'r'u'p'-'l'a'r'e'n'e'g' 'a' 'n'i' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 's'i'h't' 'g'n'i'd'd'e'b'm'e' 'y'b' 'd'e't'n'e'm'e'l'p'm'i'''''''''''''''''''d'i'v'o'r'p' 'e'b' 'y'l'i's'a'e' 'n'a'c' 's'e'i't'i'l'i'c'a'f' 'h'c'u's' 't'u'b' ','s'''''''n'o'i't'c'n'u'f' ','s'p'o'o'l' ','s'l'a'n'o'i't'i'd'n'o'c' 's'a' 'h'c'u's' 's'e'r'u't'c'u'r't's' 'l'o'r't'n''''''''''t's'n'o'c' 'l'a'u's'u' 'e'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i'd'n'o'c' ','s'p'o'o'l' 'e'd'i'v'o'r'p' 't'o'n' 's'e'o'd' '}'x'a't'n'y's'-'l'a'c'o'l':'g'i'f'{'f'e'r''~'''''''''''''e'r''`'e'r'u'g'i'F' 'f'o' 'e'g'a'u'g'n'a'l' 'e'h'T' '.'s'd'n'a'm'm'o'c' 'f'o' 'e'c'n'e'u'q'e's' ','e't'i'n'i'f'n'i' 'y'l'b'i's's'o'p' ','r'a'e'n'i'l' 'a' 'e'b' 'o't' 'd'e'm'u's's'a' 's'i' 'm'a'r'g'o'r'p' 'A' '.'}'x'a't'n'y's'-'l'a'c'o'l':'g'i'f'{'f'e'r''~'e'r'u'g'i'F' 'n'i' 'n'e'v'i'g' 's'i' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'h't' 'f'o' 'x'a't'n'y's' 'e'h''''R'T'n'n'}'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'C'{'n'o'i't'c'e's'b'u's''n'n'''''''''''r'e'v'n' ''''''e'''''v'''''''''''''''''''''''''''''''''''''''''''''t'''''t'''''''''''''''''''''''''''''t't''''''''''''''''''''','''''$'}']'['{'f's'h't'a'm''$''''''''''''''''''''''''''''''''''''''''}']''[''{'f's't'x'e't'' '&' '$'|'$''''|' '&'n''' '}'}''{''{'f's't'x'e't'''''''a'm'' '&' '$'|'$' '&'n''' '''''$'}'g'n'i'r't'S'{'m'r'h't'a'm'' 'n'i'' 's'$' '&' '$'''''''s' '&' '$'|'$''''|' '&'n'''''''' '''''n''''' '''''n''''' ''''''''''''''|'''''$''''' '''''&'''''n'''$''''%''''''''m'r'h't'a'm'' '&' '$'|'$''''$' '&'n''' '$''''''''''''''}'m'e'5'.'0'{'e'c'a'p's'v'''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''L'A'V'{'m'r'h't'a'''''m'''''''' '''''n'''''i'''''''''''''''' '''''''''''''''''v'''''''''''''''''$''''''''''''''''' '''''''''''''''''&''''''''''''' '''''$''''')'''''v''''''''''''''''r'h't'a'm''$'''''''''''''''''''''''''''''''''''''('}'r'e't'f'A't'r'e's'n'i'{'f's't'x'e't'''''''a'm''.'R'P'X'E' '&' '$'|'$' '&'n'''''''''''''''''''$'$'''''''''|''''''''''''''''''''''''5'.'0''''''''''''''''''''''''t'x'e't''''''''''''''''''''''''''''''''''''''''m'''''e'''''''''''}'t'p'0'1'{'e'c'a'p's'v'''' '}'d'l'e'i'y'{'f's'h't'a'm'' '&' '' '&''$'|'$' '&''''''' ''''''''''''''''''''''''m'r''''''''''''''''''' '}'y'e'K'l'e'd'{'f's't'x'e'''''''''''''''''''''' '}'m'e'l'E'm'r'''5'.'0''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'m'e'5'.'';''''';''0'{'e'c'a'p's'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''$'''''''''''''''''''''''''''''''$'}'g'n'i'r't'S'{'m'r'h't'a'm'' 'p'u'c'' '}'N'{'''b'b'h't'a'm'' '&' '=':':' '&' 'L'A'V'n'$'}'s't'o'd'' ','2'_'x' ','1'_'x'{'$' '&' '=':':' '&' 'R'A'V'n'''}'m'e'1'{'e'c'a'p's'v'' '$'}'R'A'V'{'m'r'h't'a'm'' 'n'i'' 'x'$' '&' '$'x'$' '&' '$'|'$' '&'n''' ''''''''''''l'e'd'{'f's't'x'e't''.'R'P'X'E' '&' '$'|'$' '&'n't''.'R'P'X'E' '&' '$'|'$' '&'n''^'n''''''''''''''''''''''''''''''''''''''''''''''''''' '&'''''''''''''''''''t'x'e''' '&'t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'s'e'u'l'a'v'{'f's't'x'e't''''''.'R'P'X'E' '$'|'$' '&'n''' '}'t'x'e'n'{'f's't'x'e't''.'R'P'X'E' '$'|'$' '&'n''' '$'}'L'A'V'{'''' 'm'r'h't'a'm'' 'n'i'' '}'y'e'k'{'t'i'h't'a'm''$''''''''' '&' ')'}'y'e'k'{'t'i't'x'e't''''''''''''''''''''''('}'t'e'g'{'f's'h't'a'm''.'R'P'X'E' '$'|'$' '&'n''' '}'c'o'd'{'f's't'x'e't'' '&' '=':':' '&' 'R'P'X'E'n''' 'D'M'C' ';'D'M'C' '&' '$'|'$' '&''''^'n''''''{'m''''''' '$'}''r'h't'a'm'''''L'A'V' 'n'i'' 'v'$' '&' '$'v'$' '=' 'R'P'X'E' '&' '|' '&'n''' '''''''''''''$'}'R'A'V'{'m'r'h't'a'm'' 'n'i'' 'x'$' '&' 'R'P'X'E' '=' '$'x'$' '}'t'e'l'{'f's't'x'e't'''''''a'm'''''l' '&' '=':':' '&' 'D'M'C'n'''''''''''''''}'r'a'l'u'b'a't'{'d'n'e''n'}'r'a'l'u'b'a't'{'n'i'g'e'b''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'x'a't'n'y's'-'l'a'c'o'l':'g'i'f'{'l'e'b'a'l''}'t'n'e'm'u'c'o'd' 'a' 'g'n'i'y'f'i'd'o'm' 'd'n'a' 'g'n'i'y'r'e'u'q''''''''''''''''''''''''' 'y'l'l'a'c'o'l' 'r'o'f' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'f'o' 'x'a't'n'y'S'{'n'o'i't'p'a'c''n''''''''''''''}'e'r'u'g'i'f'{'d'n'e''n'}'e'r'u'g'i'f'{'n'i'g'e'b''n'n' '.'s'r'e'e'p' 'r'e'h't'o' 'o't' 'g'n'i't's'a'c'd'a'o'r'b' 'r'o'f' 'd'e'u'e'u'q'n'e' 'o's'l'a' 'd'n'a' ','''' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 'l'a'c'o'l' 'e'h't' 'o't' 'd'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'e's'o'h'T' '.'n'o'i't'a't'u'm' 'e'h't' 'g'n'i'b'i'r'c's'e'd' '}'s'n'o'i't'a'r'e'p'o'{'h'p'm'e'' 'g'n'i'c'u'd'o'r'p' 'f'o' 't'c'e'f'f'e' 'e'h't' 's'a'h' 't'n'e'm'u'c'o'd' 'e'h't' 'g'n'i'y'f'i'd'o'm''''''''''r'e'p' 't'u'b' ','s't'c'e'f'f'e'-'e'd'i's' 'o'n' 's'a'h' 's'e'i'r'e'u'q' 'y'l'n'o'-'d'a'e'r''''''''''''''''''''''''' 's'e'i'r'e'u'q' 'g'n'i'm'r'o'f'r'e'P' '.'d'e'i'f'i'd'o'm' 'd'n'a' 'd'e'i'r'e'u'q' 'e'b' 'o't' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 's'''r'e'e'p' 't'a'h't' 'f'o' 'e't'a't's' 'l'a'c'o'l' 'e'h't' 's'w'o'l'l'a' 'h'c'i'h'w' 'd'n'a' ','s'r'e'e'p' 'e'h't' 'f'o' 'y'n'a' 't'a'''''''''''''''''''''''''o' 'e'n'o' 'n'o' 'y'l'l'a'c'o'l' 'd'e't'u'c'e'x'e' 's'i' 't'a'h't' 'e'g'a'u'g'n'a'l' 'd'n'a'm'm'o'c' 'e'l'p'm'i's' 'a' 'e'n'i'f'e'd' 'e'w' ','y'l't's'r'i'F' '.'s'w'o'''''''0'w'l'l'o'f' 's'a' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'e'l'b'a't'i'd'e' 'y'l'e'v'i't'a'r'o'b'a'l'l'o'c' 'r'o'f' 's'c'i't'n'a'm'e's' 'e'h't' 'g'n'i'n'i'f'e'd' 't'u'o'b'a' 'o'g' 'e'W'n'n'''''''''''''''''''''''''''''''''''n'}'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L'{'n'o'i't'c'e's'b'u's''n'E'D' 'n'i' 'o's'l'a'(' 'a'e'l'e'u'Q' 's'''C'K' 't'a' 'k'o'o'L' '%'n'%'n'a's'u'i'n'e'i'B' '&' 'r'e'l'l'e'Z' '%'n')'4' 'm'e'r'o'e'h't' ','3'1'-'8' 's'a'm'm'e'l'(' 't'r'o'p'e'r' 'h'c'e't' 's'''l'a' 't'e' 'h'o'R' '%'n't'd'r'a'h'k'c'r'u'B' 'n'a'i't's'a'b'e'S' 'y'b' 's'r'e'p'a'p' 's'u'o'i'r'a'v' '%'n'6'1'0'2' 'L'P'O'P' ','''h'g'u'o'n'e' 'g'n'o'r't's' 'm'''I' 'e's'u'a'c''' ','l'a' 't'e' 'n'a'm's't'o'G' '%'n':'r'a'l'i'm'i's' 'r'o' 's'T'D'R'C' 'f'o' 'n'o'i't'a'c'i'f'i'r'e'v' 'l'a'm'r'o'f' 'n'o' 's'r'e'p'a'p' 'O'D'O'T' '%''n'n''''''''''''''}'d'a'u'q''w'o'r'r'a't'h'g'i'r'g'n'o'L''d'a'u'q''{'}'o't'l'a'v'e''{'d'n'a'm'm'o'c'w'e'n''n'n'i'h't'i'w' ''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e's'i'm'e'r'p''{' 'l'l'a' ''}'r'o'f' 'e'd'o'm' 'h't'a'm' 'e's'u' ','e'g'a'k'c'a'p' 'c'i't'n'a'm'e's' 'r'o'F' '%''''''' '$'n''''''''''''''''''''''''''''''''''''''n'}'$' '1'#' '$'{']'1'['}'e't'a'i'd'e'r'p''{'d'n'a'm'm'o'c'w'e'n'e'r''n'a'm's'm'a'{'e'g'a'k'c'a'p'e's'u''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'm'a't's'-'e'm'i't' ''''''''''''''''''''''''''''''''''''''''''''l''' 'r'e't'c'a'r'a'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''7''''8'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'n'%'}' ' 'n'm'e'7'0'.'n'r'e'k''''' ' ' ' ' 'n'x'e'3'.'t'h'g'i'e'h' 'e'l'u'r'v'' ' ' ' 'n'l'l'i'f'e'l'u'r'h'' ' ' ' 'n'x'e'3'.'t'h'g'i'e'h' 'e'l'u'r'v'' ' ' ' 'n'm'e'7'0'.'n''''''''''.'0'n'r'e'k'' ' ' ' 'n'%'{']'m'e'5'.'0'['x''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p''''''''''p'''''''''''''''''''''''''''''''''''''r'e'e'p''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''r'e'e'p'''''''''''''''d'n'a' ','e'd'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'm'a't's'''''''''''''''''''n'o'i't'a'r'e'p'o' 't'a'h't'''n'n''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'<'$' '''''''''''''''''''''''''''''''''''''''''''''''''''''';'''''' ''''' '''''''''';'';''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'i'''''''''''''''''''1'o't' 'g'n'i'd'r'o'c'c'a' '''''''e'''''''''$'<'$' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'c'i't's'i'n'i'm'r'e't'e'd' 't'u'b' 'y'r'a'r't'i'b'r'a' 's'i' 'g'n'i'r'e'd'r'o' 's'i'h't' ','t'n'e'r'r'u'c'n'o'c' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'o'w't' 'f'I' '.')'p'm'a't'e's'e'm'i't' 'r'e'w'o'l' 'a' '''''''''''''''''''')'}'r't'c'{'f'''''s'''''h'''''t'''''a'''''m''''''''('''p'_'A' '=' ''''''''''''''''''','''''''''''''''''''''''''''}'''''x'''''a'''''m'''''{'''''t',''''''''i'''''h'''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''.'''p' 's't's'i'x'e'' '' 'd'i'm'' 'c'a'm''''''''','''''''''}'f'l'e's'{'t'i'h't'a'm''_'''_''s''''''''''''''''''}''{''')'('}'x'a'm'{'m'r'h't'a'm'' ''''''a'''''h''''' '''''n'''''o'''''i'''''t'''''a'''''r'e'p'o' 'r'e'i'''~''l'r'a'e' 'e'h't'(' 'y't'i'l'a's'u'a'c' ',''''h't'i'w' 't'n'e't's'i's'n'o'c' 's'i' 'g'n'i'r'e'd'r'o' 's'i'h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''''''''''''''''''''''''n'g'n'i'''' ''p'_'',''''=' 'c''r'e't'''n'''''e'''c''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'_''''''''}'$'}')'('D'I'r'e''p'_''e'P'y'm'{'m'''i'B''''r'h't'';'''',''''''''D'I'w'e',''''n'''a'''''m''''' '=' 'p'$'{'C'm'o'i'''''''''''''''''}'d'i'{'t'i'h't'a'm''_''l'l'i'f'h'''x'A''n'''''''p'_''''''''''''''''''''%'%'n''''''''''''''''p'_'''''''''''''''''o'''''''''''l'l'e'h'n'n''''''1'+''''''''''''''' '''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p'''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b'''''''''''''''''''''',''''''''''''''''''''''''''''''''' ' ' 'n'''''''''''''''','''''''','''''''''''''''''''',''''''''''',''''',''';'''''''';''''''''''''''''''''''''''''e'u'e'u'q'''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''' '',''' ' 'n''''''''''''''''''','''''''''','''''''''''''''''''''';'''''''';'''''p'o''''''' ',''''e'''d'''''o'''''m'''''',''''''''''''}'e'u'e'u'q'{'t'i'h't'a'm''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'')'}'p'o'{'t'i'h't'a'm'' ',')'}'s'','''p'o'{'f's'h't'a'm''('''p'_'A'('{''',''''''''{'P'' ',''p'u'''c'','' ')'}'e'u'e'u'q'{'f's'h't'a'''''''''{'''''}'e'u'e'u''t'i'''''''f's'h't'a'm'''q'''m'''',''''''''('''''''''''p'''''_''','''''''''''''''''''''A''''' '''''='''''',''' '''''q''''''''''''''''''''''''''''''''''''''''''''''''''''''''v'''''''''''''''''''''''''''''''''''''''''''''''''''''e''''''''''''',''''''''''''''''''''''v'''''''''''''''''a''''''''''''''''',''''e'''''''''''l'''''t'n'u'o'm'A'''''''''''''''''''''''''''''''''''''''''''''}'$'''''p'_'A' 'o't'l'a'v'e'' '}'p'o'{'','''t'i'h't'a'm'' ''''''''''''','''''''('}'y'l'p'p')''a'{'f's'h't'a'm''',''''''n';'','''''',''''''''''''''''g'n'i'y'l'p'p'a' 'd'n'a' ',''''''p''p'o''''''_'''A'$'{'C'm'o'i'''''''''''''''''''''''''''''''$'''','''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'}'d'i'{'t'i'h't'a'm'' ';','''''''' ','''''p'_'A' 'o't'l'a'v'e'' ''''''''('}'d'm'C't's'i'l''''a'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'t's'i'L'-'c'o'l'l'A'{'c's't'x'e't''{'l'e'b'a'L't'f'''''''e'v'e'L''n'}'$'''''p'_'A' 'o't'l'a'v'e'' ')')'}'d'i'{'t'i'h't'a'm''('}''''''p'O't's'i'l'{'f's'h't'a'm''('}'y'l'p'p'a'{'f's'h't'a'm'' ';'','''p'_'A'$'{'C'm'o'i'x'A''''n'}'$'}'d'i'{'t'i'h't'a'','''m'' ';'','''p'_'A' 'o't'l'a'v'e'' '}'D'I'w'e'n'{'f's'h't'a'm'';'','p'_'A'{'C'm'o'i'x'A''n''''''''''','''''''''''n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n''x'A''n''p'i'k'S'f'o''''''''''''''''''''''''''''i'B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('}'s't'{'f''''''''''''''''}'$'''p'_'A' 'o't'l'a'v'e'' ')','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' ''''''''''''''''''',''''''''''''''''''''''''''''''''''',''''''''''''''''']','')'}'l'i'a't'{'f's'h't'a'm'' ','t'o'b''('}'l'E't's'i'l'{'f's'h't'a'm'' ','''''o't's'p'a'm'' '}'d'i'{'t'i'h't'a'm'',''[''' 'n'''''p'_'A' 'o't'l'a'v'e'' ')'}'d'i'{'t'i',''''h't'a''''''''''''''''''''''''''''''',''''','''''''''''''''''''''''''''''''''''}'l'i'a't''''''n'n''{'','''f's'h't'a'm'' '=' '}'t'x'e'n'{'t'i'h't'a'm'' 'e'e'v'' ''''''''''''''''''''''''''''''''''''''''''''''''''''a't'{'f's'h't'a'm'' '=' '}'t'x'e'n'{'t'i'h't'a'm''m''('}'p'O't's'i'l'{'f's'h't'a'm'' ';'','p'_'A'''}'$'$'{'C'f'n'I'y'r'a'n'i'B''n's'h't'a'm'' ';'','p'_'A''''''''''''}'d'i'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'}'$')''''}'p'_'A'('}'m'o'd'{'m'r'h't'a'm'' 'n'i''t'o'n'' '}'d'i'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''''}'}'t's'i'L'-'y'l'p'p'A'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''''','''''''',''''''''''''''''''''''','''''''''','''''''''''''p'O''''''''''''''''''''''''''''''''''''''''''''''''''''''',''';'''',''''';''''''''''''''','''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';''''';'''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'$']',''}''}'p'o'{'t'i'h't'a'm''{'' '''''''p'u'c'' ')'}'s'p'o'{'f's'h't'a'm''('''p'_'A'' 'o't's'p'a'm''''p'O' '}'s'p'o'{'f's'h't'a'm'' ' ' ' 'n';''''''',''',''}'')'','''}'p'o'{'t'i'h't'a'm'' '',''',','''')'}'s'p'o'{'f's'h't'a'm''('''p'_'A'(''''' ' ' 'n'{'' 'p'u'c'' ')'}'e'u'e'u'q'{'f's'h't'a'm''('''p'';''''';''''''';''''_'A' 'o't's'p'a'm'' '}'e'u'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''''p'_'A' 'o't'l'a'v'e'' ')')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'''''''''''''''''''''''''}'''''$'''''}'''''d'''''i'''''''p'O'{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' ''''';'''''''','''''''''''''''''p'''''_'''''A''''' ''''''''t'''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''''p'_'A' 'o't'l'a'v'e'' ')')'}'t'e'g'r'a't'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'''''''',''''''''t'o'b'' ';''''''}'''''$'''''''''''''''''p'''''_'''''A''''''p'O'' '''''e'''''t'''''e'''''l'''''e'''''d'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''('''''}'''''y'''''l'''''p'''p'O'''''p'''''a'''''{'''''f's'h't'a'm'' ';'','''p'_'A'$'{'C'm'o'i'x'A''n'''''e'''''s'''''n'''''i'''''{'''r'T'''''''f'''s'h't'a'm''('}'y'l'p'p'a'{'f's'h't'a'm'' ';'','''p'_'A'$'{'C'm'o'i'x'A''n''u'q'{'f's'h't'a'm'' ''''' ''''''i'r'T''''''' ''''' '''''n''''',''''''''[''''''''p'O'd'm'C''''''''''''''''l'a'c'o'L''''''''''d'm'C'''''''''''''''''''''''''''''''''','''''''''''p'''''_'''''A''''' '''''o'''''t'''''''''''l'''''''''''''''''a'''''i'B'''''''''''''''''''''''''''v'''''''''''''''''e'''''''''''''''''''''''''' '''''''''''''''''}''''''''''''''''''''''''''''''''''''''''''''''''d'm'C'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'}'t'e'g'r'a't'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm'' ';'','''p'_'A' ' ' ' 'n'o't'l'a'v'e'' ')'}'t'e'g'r'a't'{'t'i'h't'a'm''('}'l'a'c'o'L'e't'e'l'e'd'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'}'}'e't'e'l'e'D'{'c's''''''t'x'e'T''{'l'e'b'a'L't'f'e'L''n'}'$'}'d'i'{'t'i'h't'a'm'' ';'','''p'_'A' 'o't'l'a'v'e'' '}'D'I'w'e'n'{'f's'h't'a'm'' ';'','p'_'A''',''$'{''',''C'm'o'i'x'A''n'}'$')'p'_'A'('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '}''',''t'e''',''g'r'a't'{'t'i'h't'a'm''$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''d'''''''''''''''''''''''''m'''''''''''''''''c'''''''''''''''''{'''''''''''''''''''''''''t'''''''''''''''''i'''''''''''''''''h'''''''''''''''''t'''''''''''''''''a'''''''''''''''''''''''''m'''''''''''''''''''''''''' ''''''''''''''''''''''''';'''''''''''''''','''''p'''''_'''''A'''''$'''''{'''''''''''''C'''''f'''''n'''''I'''''y'''''r'''''a'''''''''''''n'''''U''''''''n'''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'}'$')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''''''''''('}'t'r'e's'n'i'{'f's'h't'a'm'' ';'',''''''''''''}'''''l'''''a'''''c'''''o'''''L'''''-'''''y'''''l'''''p'''''p'''''A'''''{'''''c'''''s'''''t'''''x'''''e'''''t''''''''{'''''''''''''l'''''e'''''b'''''a'''''L'''''t'''''f'''''e'''''L''''''''n'''''}'''''''''''''$'''''}'''''p'''''o'''''{'''''t'''''i'''''h'''''t'''''a'''''''''''''m'''''''' ''''';'''''''','''''''''''''''''''p'''''_'''''A''''' '''''o'''''t'''''l'''''a'''''v'''''e'''''''' '''''}'''''d'''''''''''''m'''''c'''''{'''''t'''''i'''''h'''''t'''''a'''''m'''''''' ''''';'''''''','''''p'''''_'''''A'''''$'''''{'''''C'''''m'''''o'''''i'''''x'''''A''''''''n'''''}'''''e'''''e'''''r'''''t'''''f'''''o'''''o'''''r'''''p'''''{'''''n'''''i'''''g'''''e'''''b''''''''n'''''n'''''o'''''r'''''p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e't'o'm'e'R'-'''''''R'-''''''''''''''''''''''''''''''''''''''''''''''}'''''e'''''e'''''r'''''t'''''f'''''o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''}'}'l'a'c'o'L'-'y'l'p'p'A'{'c's't'x'e't''{''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']',''}''}'p'o'{'t'i'h't'a'm''{'' 'p'u'c'' ')'}'s'p'o'{'f's'h't'a'm''('''p'_'A' 'o't's'p'a'm'' '}'s'p'o'{'f's'h't'a'm'' ' ' ' 'n';'','}'')'}'p'o'{'t'i'h't'a'm'' ',')'}'s'p'o'{'f's'h't'a'm''('''p'_'A'('{'' 'p'u'c'' ')'}'e'u'e'u'q'{'f's'h't'a'm''('''p'_'A''''' 'o't's'p'a'm'' '}'e'u'e'u'q'{'f's'h't'a'm'' ' ' ' 'n''''''''''l'e'b'a'L't'f'e'L''n'}''U'''''$'}'p'o'{'t'i'h't'''a'm'';'','''p'_'A' 'o't'l'a'v'e'' '}'d'm'c'{'t'i'h't'a'm'' ';'','p'_'A'$'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''''''''''''''''''''',''[''''''''''''' ';'','''p'_'A' 'o't'l'a'v'e'' '}'d'm'c'{'t'i'h't'a'm'' ''''''''''';'','p'_'A'$'{'C'f'n'I'y'r'a'n'i'B''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n''''''''''''''''''''''m'''''e'''''''''''''''''''''''''''''''''''}'''''t'''''p'''''0'''''3'''''{'''''e'''''c'''''a'''''p'''''s'''''h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'P'O'N'-'d'l'e'i'Y'{''''''c's't'x'e'T''{'l'e'b'a'L't'f'e'L''n'}'{'C'm'o'i'x'A''n'''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''f'o'o'r'P'y'a'l'p's'i'D''n'%'n'''''f'o'o'r'P'y'a'l'p's'i'D'''o'''''r''''''''''''''''''''''''''''''''''''''''''''''''''''}''}'p'o'{'t'i'h't'a'm''{'' 'p'u'c'' ')'}''''''''''' '}'s'p'o'{'f's'h't'a'm''('''''p'_'A' 'o't's'p'a'm'' '''p'''''{''''''''''''''P'''''n'i'g'e'b''n''''e'e'r't'f'o'o'r'p'{'d'n'e''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'p'_'A'('}'m'o'd'{'m'r'h't'a'm'' 'n'i'' '}'v'e'r'p'{'t'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'_'A' 'o't'l'a'v'e'' '}'p'o''''''r'e't'a'u'Q''''''{'''t'i'h't'a'm'' ','''p'_'A'''}'$'$'{'C'm'o'i''''c'x'A''n'}'$')'v''''''e'u'e'u'q''' ''''',''''''''''e'u'e'u'q'''}'''''''''''v'''e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'''''''''''''''''''''}'s'p'o'{'f's'h't'a'm'' ' ' ' 'n';'','m'' '=' '}'p'o'{'t'i'h't'a'm''''''''''''''''''''''';'','''p'_'A'$'{'C'm'o'i'x'A''n''h't'a'm'''''A'$'{'C'm''''' ' ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ',')'}'s'p')''o'{'f's''''''''''{'t'i'h't'a'm''('''''p'_'A'(''''''''''''''''''''']',''}''}'p'o'{'t'i'h't'a'm''{'' 'p'u'c'' ')'}'s'p'O'w'e'n'{'f's'h't'a'm''('''''p'_'A' 'o't's'p'a'm'' '}'s'p'O'w'e'n'{'f's'''''''t'i'h't'a'm'',''['' 'n''''o'i'x'A''n'''''''''''''''''' '''''''''''''''''''''''''''''''''''v''''''''''''''''}'$'''''p'_'A' 'o't'l'a'v'e'' '' ',''''''t''''''''}'d'i'{'d'i'h't'a'm'' ';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'}'v'e'r'p'{'t'i'h't'a'm''('}'l'a'c'o'L't'r'e's'n'i'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'i'r'T''n'','''p'_'A' 'o't'l'a'v'e'' '''}'D'I'w'e'n'{'f's'h't'a'm'';''''';','p'_'A'''}'$'$'{'C'm'o'i'x'A''n''''''''''''''''''''''''''''''''n'}'}'t'r'e's'n'I'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n''''''''''''''''''n'}'e'e'r't'f'o'o'r'p''''P'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{''}'t'i'h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}''''''''''''''''}'*'e'r'u'g'i'f'{'n'i'g'e'b''n''*'e'r'u'g'i'f'{'d'n'e''n'}'v'c'e'r'-'d'n'e's':'g'i'f'{'l'e'b'a'l''n'}'s'n'o'i't'a'r'e'p'o' 'g'n'i'v'i'e'c'e'r' 'd'n'a' 'g'n'i''''''''''n'i'c'd'n'e's' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L'''''''''''''''''''i't'n'i'a'm' 'r'o'f' 's'e'l'u'R'{'n'o'i't'p'a'c''n'''''}'$']',''}''p'o'{'' 'p'u'c'' ')'}'s'p'o'{'f's'h't'a'm''('''p'_'A' 'o't's'p'a'm'' '}'s'p'o'{'f's'h't'a'm'',''['''p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'i'r'''''''''''''''''''y'r'a'n'r'e'T''n'}'}'y'l'p'p'A'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'''p'_'A' 'o't'l'a'v'e'' '}'p'o'{'t'i'h't'a'm'' ','p'_'A'$'{'C'm'o'i'x'A''n'}'$')'}'s'p'o'{'f's'h't'a'm''('p'_'A' 'q'e't'e's'b'u's'' '}'s'p'e'd'{'t'i'h't'a'm''''' '$'{'C'm'o'i'x'A''n'}'$')'}'v'c'e'r'{'f's'h't'a'm''('p'_'A' 'n'i'' ')'}'p'o'''''''p'i'{'t'i'h't'a'm'' ','}'s'p'e'd'{'t'i''''''''''{'f's'h't'a'm''('$'{'C'm'o'i'x'A''n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''''''''''''''''%'''''n'''''l'''''l'''''i'''''f'''''h''''''''f'''''o'''''o'''''r'P'y'a'l'p's'i'D''n'}'$']','')'}'s'p'O'w'e'n'{'f's'h't'a'm''('p'_'A' 'p'u'c'' ')'}'d'n'e's'{'f's'h't'a'm''('p'_'A' 'o't's'p'a'm'' '}'d'n'e's'{'f's'h't'a'm''''''''''''''f'o'o'r'P'y'a'l'p's'i'D''',''['p'_'A' 'o't'l'a'v'e'' '}'d'l'e'i'y'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'d'n'e'S'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'{'C'm'o'i'x'A''n''''e'd'o'm'v'e'v'a'e'l'' 't'n'u'o'm'A'p'i'k'S'f'o'o'r'p'''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'''''''''''''''''''''''''''''''''''''''''''''''''''t'n'u'o'm'A'p'i'k'S'f'o'o'r'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''''''''''''''''''''''''''''''''''f'o'o'r'P'y'a'l'p's'i'D''n'}'$']','')'}'d'n'e's'{'f's'h't'a'm''('q'_'A' 'p'u'c'' ')'}'v'c'e'r'{'f's'h't'a'm''('p'_'A' 'o't's'p'a'm'' '}'v'c'e'r'{'f's'h't'a'm'',''''','['p'_'A' 'o't'l'a'v'e'' '}''''|'d'l'e'i'y'{'f's'h't'a'm'' ';'','p'_'A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'v'c'e'R'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L''n'}'$'}'s'r'e'e'p'{'t'i'h't'a'm'' 'n'i'' 'q'$'{'C'm'o'i'x'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b'''''''''''''''''''''''''''''''''''''''''n'''n'n'''''f'''''o'''''o'''''p'_'''r'''P'y'a'l'''p'_'p's'i'D'''''n'n'}'$')'p'''''';'''''''''''''''}'v'e'r'p'{'t'i'h't'a'm''''''''''''' ''''','c'(';'',']',''1'+'c' 'o't's'p'a'''p'_'m'' '}'r't'c'{'f's'h't''''''''''''''p'_''''''''''''n'd'l'r'o'w'n'''''''''''''''''''''''''''''''''''''''''''p'_''''''f'o'o'r'P'y'a'l'p's'i'D''''''''''''''''''''''''''''''''''p'_'''''''''''''''''''''''''a'm'',''['A' 'o''''''''''''''}'v'e'r'p'{'t'i'h't'a'm''''']'''t'l'a'v'e'' '}'D'I'w'e'n'{'f's'''''''F'S'h't'a'm'' ','A'$'{'C'f'n'I'y'r'a'n'U''n'}'}'S'T'-'n'e'G''';''''p'_'{'c's't'x'e't''{'l'e'b'a'L't'f'e'''''''''''''}'v'e'r'p'{'t'i'h't'a'm'''''L''n'}'$'c' '=' ')'}'r't'c'{'f's'h't'a'm''('A'$'''p'_'{'C'm'o'i'x'A''n''';''''''''''''''''''''''''''''''''''$'''''''p'_'''''''''''''''''}'$')'p' ','c'(' '=' ''d'i'{'t'i'h't'a''p'_''m'''}'{'C'm'o'i'x'A'' ' ' ' 'n'''''''''''''''''''''''''''p'_''''''''''''''''''''''''n'''e''u'o''''''''''''''''''p'_'''''''''''''''''''''''n'''e''u'o''' ' ' ' ' ' ' ' 'n''''''''''''''''p'_'''''''''''''''''''''''''''''']',''''p'_')'c' ',')'}'r't'c'{'f's'h't'a'm''('A'('}'x'a'm'''''''''p'_'''''''';''''''''''''{'m'r'h't'a'm'' 'o't's'p'a'm'' '}'r't'c'{'f''p'_''s'''''''t'i'h't'a'm'',''['A' 'o't'l'a'v'e'''''''''''''''''''''''';''''''''''''''''''''''''''''''''''}'$'''A' 'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'''''''r'e't'a'u'Q'''m''''''('}'s't'{'f's'h't'a'm'' ','A'$'{'C'm'o'i'x'A'' ' ' ' 'n'''''' ')'}'d'i'{'t'';'''i'h't'a'm''('}'s't'{'f's'h't'a'm'' ','A'''}'$'$'{'C'f'n'I'y'r'a'n'''''''''''''''''''''''''';'''''''''''''''r'a'N'U'' ' ' ' 'n'}'}'S'T'-'y'l'p'p'A'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L'' ' ' ' 'n''''''''''''''''''n'}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$')'A'('}'m'o'd'{''''('m'r'h't'a'm'' 'n'i''t'o'n'' '}'d'i'{'t'i'h't'a'm''$'{'C'm'o'i'x'A'' ' ' ' 'n'''''''''''''$'{'C'm'o'i'x'A''''''''''''''''''''n'i'g'e'b''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$'''A' 'o't'l'a'v'e'' ')'}'d'i'{'t'i'h't'a'm''('}'s't'{'f's'h't'a'm'' ','A'$'{'C'm'o'i'x'A'' ' ' ' 'n'''''''''''}'l'E''''t's'i'l'{'f's'h't'a'm''''''i'B''''''''n'i'r'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-'y'l'p'p'A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'E't's'i'l'{'f's'h''''''''' ' ' ' ' ' ' ' 'n''''''''''''''''''}'l'E't's'i'l'{'f's'h't'a'm'''t'a'm'''''''$''''t'x'e't''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'E't's'i'l'{'f's'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''''''''}']','')'}'t'x'e'n'{'t'i'h'''t'''''a'''''m'''''''' ''''','''''v'''''(''''' '''''o'''''t'''''s'''''p'''''a'''''''''''-'y'l'p'p'A'm'''''' '}'''''''''''''''}'l'E't's'i'l'{'f's'h't'a'm'''d'i'{'t'i'h't'a'm'' ';'',')'}'d'i'{'t'i'h't'a'm'' ','p'_'v'(' 'o't's'p'a'm'' '}'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'E't's'i'l'{'f's'h't'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'$']','')'}'t'x'e'n'{'t'i'h't'a'm'' ','t'o'b''(' 'o't's'p'a'm'' '}'t'e'g'r'a't'{'t'i'h't'a'm'',''['A' ' ' ' ' ' ' ' 'n'''' 'o't'l'a'v'e'' ')'}'t'e'g'r'a't'{'t'i'h't'a'm'' ','}'d'i'{'t''''d'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm'''''''m'a'' ','A'$'{'C'f'n'I'y'r'a'n'U'' ' ' ' 'n'}'''''''$'}'l'e'D'-'y'l'p'p'A'{'c's't'x'e't''$'{'l'e'b'a'L't'f'e'L'' ' ' ' 'n'}'$')'}'t'x'e'n'{'t'i'h't'a'm'' ','v'(' '=' ')'}'t'e'g'r'a't'{'t'i'h't'a'm''('A'$'{'C'm'o'i'x'A'' ' ' ' 'n'''''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e''n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'n'e'r'p'{'t'i'h't'a'm'',''['A' ' ' ' ' ' ' ' 'n'''' 'o't'l'a'v'e'' ')'v' ','}'v'e'r'p'{'t'i'h't'''''t'x'e't'''a'''''m'''' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','A'$'{'C'f'n'I'y'r'a'n'i'B'' ' ' ' 'n'}'$'1'_'}'s'n'I'{'c's'h't'a'm''''{'l'e'b'a'L't'f'e'L'' ' ' ' 'n'}'$'}'d'i'{'t'i'h't'a'm'$''''h't'a'''''$'2'_''m'''''''''''''''' '<' '}'t'x'e'n'{'t'i'h't'a'm''$'{'C'm'o'i'x'A'' ' ' ' 'n'}'$')'}'t'x'e'n'{'t'i'h't'a'm'' ','p'_'v'(' '=' ')'}'v'e'r'p'{'t'i'h't'a'm''('A' ';''.'}'t'x'e'n'{'t'i'h't'a'm'' ','p'_'v' 's't's'i'x'e''$'{'C'm'o'i'x'A'' ' ' ' 'n''''''''''''''''''n'}'e'e'r't'f'o'o'r'p'{'d'n'e'''''}'n'}'e'e'r't'f'o'o'r'p'{'n'i'g'e'b''n'''''''''''''''''''}'''''''''''''$'{'C'm'o'i'x'A'' ' ' ' ''''';''.'''''''''''''''''''''''''''''''''''''''e'''''e'''''r'''''t'''''f'''''o'''''o''$''}'''''''''''''$'{'C'm'o'i'x'A'''''''''r'''$''''}'''''''''''''$'{'C'm'o'i'x'A''''''''''''''''''''''''''''''''}'}'t'r'e's'n'I'{'c's't'x'e't''{'l'e'b'a'L't'f'e'L'' ' ' ' 'n'''''p'''''{'n'i'g'e'b'''n'''''''''''''''''''''''''''''''''''''$'''''''''''{'C'f'n'I'y'r'a'n'i'r'T'' ' ' ' '''''''''$''}'''''}'''''''''''''''}'e'e'r't'f'o'o'r'p'{'d'n'e'''''$''''''''''''''''''''''''''''''''''''''''''''''''e'l'u'r'''''''''''''''''''''.'e'u'l'a'v' 'a' 'f'o' 'e'c'n'e's'b'a' 'e'h't' 'g'n'i't'a'c'i'd'n''''''''' ' ' ' 'n''''''i' ','$'t'o'''''''b''$' 'e'u'l'a'v' 'l'a'i'c'e'p's' 'e'h't' 'r'o' ','s't'n'e'm'e'l'e' 't's'i'l' 'f'o' 'e'p'y't'a't'a'd' 'e'h't' 'f'o' 'e'u'l'a'v' 'y'n'a' 's'i' '$'}'e'u'l'a'v'{'t'i'h't'a'm''$' '''''n'n'.'t's'i'l' 'e'h't' 'f'o' 'd''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}':'{'n'i'b'h't'a'm'' '''''''''';'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't'l'a'v'e'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''o't'l'a'v'e'' ''''''''''''''''A' '>'='=' ')'v' ','}'t'x'e'n'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h''}'n''t'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','A' ' ' ' 'n'&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''A' '>'='=' ')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''('}'y'l'p'p'a'{'m'r'h't'a'm'' ','A' ' ' ' 'n'{'}'n'}'t'x'e'n'{'t'i'h't'a'm'' '<' '}'d'i'{'t'i'h't'a'm'' '&' ')'}'t'x'e'n'{'t'i'h't'a'm''''n'' ','p'_'v'(' '=' ')'}'v'e'r'p'{'t'i'h't'a'm''('A' '.'}'t'x'e'n'{'t'i'h't'a'm'' ','p'_''''P'v''''''''''''''''''''''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''t'''''n'''''e'''''m'''''e'''''l'''''e''''' '''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''D'''''I''''' '''''e'''''h'''t' 'p'm'a't's'e'm'i't' '''t'''''r'''''o'''''''''''''''''' 's't's'i'x'e'' ' ' ' 'n'{''p'''''m'''''a'''''L''''' '''''t'''''a''''''''''''''''''']'t'r'e's'n'I'''''''''''''''''''t'r'e's'n'i'['e'c'n'e'r'e'f'n'i''n''h't' 'l'l'a'c' 'e'W' ''n'e''''''''''''''''''']'t'r'e's'n'i'['e'l'u'r'r'e'f'n'i''n''m'u'c'o'd' 'e'h't' 'f'o' 'e'm'i't'e'f'i'l' 'e'h't' 'r'o'f' ''.'e'l'b'a't'u'm'm'i' 's'n'i'a'm'e'r' 'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'s'e'l'u'r'-'a'g'r':'g'i'f'{'l'e'b'a'l''n'}'t's'i'l' 'd'e'r'e'd'r'o' 'n'a' 'g'n'i't'a't'u'm' 'r'o'f' 's'e'l'u'R'{'n'o'i''''u't'p'a'c''n'''''''''''''''}'*'e'r'u'g'i'f'{'d'n'e''n'}'*'e'r'u'g'i'f'{'n'i'g'e'b''n'n'c'i'h'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'b' 'n'a'c' 't'n'e'm'e'l'e' 't's'i'l' 'a' ','p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'a' 's'a'h' 'n'o'i't'a'r'e'p'o' 'h'c'a'e' 'e'c'n'i'S' '.'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$' 'n'a' 'h't'i'w' 'd'e't'a'e'r'c' 's'i' 't'n'e'm'e'l'e' 't's'i'l' 'A''''''''''''''''''''''''' 't'n'e'm'e'l'E''''''''''s'i'L'n'''''''''''''''''''t'n'e'm'e'l'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'''' '''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e'h't' 'l'l'a'c' 'e'W'''''''''''''''t'n'e'm''''''''''''''''''''''''''''''$')'p' ','c'(' '<' '}'d'a'e'h'{'f's'h't'a'm''$' 'd'n'a' 'e'r'i'u'q'e'r' 'l'a''''''''''''''''a'''''e'''''r'''''c''''''''''''''''''''''''''''''''''''''t'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''h'T' '.'m'e't'i' 'e'h't' 'd'e't'r'e's'n'i' 't'a'h't' 'n'o'i't'a'r'e'p'o' '$'''' '}'t'r'e's'n'i'{'f's'h't'a'm''$''''' 'e'h't' 'f'o' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e'h't' 'y'b' 'd'e'i'f'i't'n'e'd'i' 'y'l'e'u'q'i'n'u' 's'i' 'm'e't'i' 't's'i'l' 'h'c'a'E''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't'r'e's'n'i' 'e'r'a' 's'm'e't'i' 't's'i'L'n'n'n'e' 'e'h't' 'g'n'i't'o'n'e'd' ','$'}'l'i'a't'{'f's'h't'a'm''$' 'l'o'b'm'y's' 'e'h't' 'r'o' 'p''' ','A''m'a't's'e'm'i't' 't'r'o'p'm'a'L' 'a' 'r'e'h'' '''.''''''''''''''t'''''i'''''e''''' '''''s'''''i''''' '''''$'''''}'''''t'''''x'''''e'''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&''''''''''''r'''''''''''''''''''''''''''''''''r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r''''''''''''''''''''''''''''''''' '&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r''''''''''''''''''''''''''''''''''''''''''' '&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'r'e'd'r'o' 'e'm'a's' 'e'h't' 'y'l''''''''''''''''' '}'''' '.'f'o'o'r'P'{'f'b't'x'e't'''E'''i'''''r'''''a'''''s's'e'c'e'n' 't'o'n' 't'u'b'(' ''''''''''''''''''''''t'u'b' ''''''''''''''''''''''''''''''''''''''''''w' ','e'r'o'e''''f'e'r'e'''h''''''$'p'$' ''T' '.'''''m'o'r'''''f'''''''''''''''''''''''''''''d'e'''''t'a'h','''''''''' 'd'e's's'e'c'o'r'p'''''''t'''''''''''p'_'H''''''''''''i'''''''''''''''''''''''''''''''''''''l'''''''''''p'''''p'''''a''''' '''''$'''''n'''''_'o' 's't'o'd'' '1'_'o'='p'_'H'$'''''''''.'''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''' '''''b'''''n'''''e'''''h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'$' ')'n'_'o' ',')'}'1'-'n'{'_'o' ','s't'o'd'' ',')'1'_'o' ','t'e's'y't'p'm'e''_'A'('}'y'l'p'p'a'{'m'r'h't'a'm'' 's't'o'd''('}'y'l'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d''' 'f'o' 'y't'i'v'i't'a't'u'm'm'o'C'''''''''''n'}'n'o'i't'e'l'e'D'{'n'o'i't'c'e's'b'u's'b'u's''n''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'i'x'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''y'l'n'o' 's'e'i''''''$''''')'''''',''''''''''''''''''''s'e'v'a'e'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','t''''s'u'h'T' '.'$')'}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm''$' 'o't' 'r'o'i'r'p' 'r'u'c'c'o' 'y'l'n'o' 'n'a'c' 'n'o'i't'a'r'e'p'o' '$')'r'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'i'''''''''''''''''''''''''e'r'o'n'g'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'i''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't'r'e's'n'i' 's'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'e'l' ','d'e't'a'r'e'n'''$'p'$''''''e'''''g''''' '''''s'''''a'''''w''''' '''''$'''''}'''''1'''''+'''''$'p'$''''''''''''n'''''''''''''''''{'''''''''''_'''''o''''''''''''''{'''''$''''' '''''h'c'i'h'w' 'n'o' 'r'e'e'p' 'e'h't' 'y'b' '$'p'$' ''''''p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'o'f'e'b''''''''''''''''''''''''''''''''''''''''',''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''';''''&''' '&'''&''*'''n'g'i'l'a'{'n'i'g'e'b''n'''''''''''''''p'_''''''''''''''''''''''''''''''''t'i'''''''''''''}'v'e'r'p'{''''''''''{''''''d'a'u'q''''''t'''''x'''''''''&'''' '&''d'''a'u'q''}''''e't''&'''''m'''r''''&'h't'a'm''''''''''''''''''''' '&''''''''n''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('q'_'A''''''')'''''''''$'''''''''''''''''''''''''''''$'}'l'i'a't'{'f's'h't'a'm'' '=' '}'t'x'e'n'{'t'i'h'''t'a'm'' 'r'o' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','r''''''''''''''''''''''''''''''''''''''''''''''''f'o' 's'g'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'b' 'd'e'i'f'i't'n'e'''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 'w'o'n'k' 'o's'l'a' 'e'w' ','e'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's't'n'e'm'e'l'e' 't's'i'l'''''''''''''''''''''y'd'a'e'r'l'a' 'e'r'e'w'''''''''''''''y'r'o't's'i'h' 'e'h'''''t''''' '''''n'''''i''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''''''s'e'i'r''''''''''''''''''e'm'a's' ''''''h't' 'n'i' 't'l'u's'e'r''''''o''''''''''''''''''''''''''''''$'c'_'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h'T' '.'''t'''''''''''''s'''''i'''h'-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'''e'h't''''''o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'''''''''''''''''''''''','m'_'}'d'i'{''''''''''''''''''','}'1'+'m'{'_'}'d'i'{'t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'}'1'+'n'{'_'o'$' 'f'o' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e'h't' 's'i' '$'}'d'i'{'t'i'h't'a'm''$' 'e'r'e'h'w' ',''i'h't'a'm'' ''t'i'h't'a'm'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'i'c'i'f'f'u's'''''''''''''''''''''''''''''''''''''''''''''r'e'd'r'o' 'l'''''''''''''''''' 's'i'h'T' ''a'n'i'f' 'e'h't' 'n'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'d'i'{'t'i'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'B' '.'e'm'a's' 'e'h't' 's'i' '$'}'1'+'n'{'_'o'$' '''''''''''''t'e's' 'e'h't' ''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i'a't'n'o'c'''''''''''''''''''''''''''''''''''''''''''''{'''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i'''f'o' ''t's'i's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'u'o'i'v'b'o' 'e'b' 't'o'n' 't'h'g'i'm' 't'i' ','')'a'm'm'e'l' 'a' 'n'i' 's'i'h't' 'e'v'o'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'd'r'o' 's''''''$'i'_'o'$' ''''i'h's''t' 'n''''''''''''''''''''''''''''''''''''''''''''''s't'i' ''''''''''''''''''''s''''''''''''''''''''''''''s't'i''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''''''''''''''''s't'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''.'d'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'h'c'i'h'w' 'n'i' ''''''''''''' 'f'o' 'r'e'd'r'o' 'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' ','$'}'1'+'n'{'_'o'$' 'r'e't'f'a' 's'r'a'e'p'p'a' 'o's'l'a' '$'i'_'o'$' ','r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'r'e't'f'a' 's'r'a'e'p'p'a' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'f'I'''''''''' 'f'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o'f' 't''''''''' 'n'i'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'f'o'o'r'p' 'e'h't' 's'u'h't' 'd'n'a' ','p'e't's' 'n'o'i't'c'u'd'n'i' 'e'h't' 's'e't'e'l'p'm'o'c' 't'a'h'T' '.'k'o' 's'i' 'h'c'a'o'r'p'p'a' 'l'a'r'e'n'e'g' 'e'h't' 'k'n'i'h't' 'I' 't'u'B' '.'e's'i'c'e'r'p' 'e'r'o'm' 't'i' 'e'k'a'm' 'o't' 'd'e'e'n' ','y'v'a'w'-'d'n'a'h' 't'i'b' 'a' 's'i' 't'n'e'm'u'g'r'a' 'e'h't' 'f'o' 't'i'b' 't's'a'l' 't'a'h't' 'O'D'O'T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o''''a' 'h'c'i'h'w' 'n'i' 'r'e'd'r'o' 'e'h't' 'f'o' 's's'e'l'd'r'a'g'e'r' ','$'i'_'o'$' 's'e'o'd' 'o's' ','r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{''''['_'o'$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'f'i'''''''''''''''' 'h't'o'b' ','y'a'w' 'r'e'h't'i'E' '.'$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 'r'e'''''''''''''''''''''''''n'a'h't' 'r'e'h't'a'e'r'g' 's'i' '$'i'_'o'$' 'r'o'f' 'p'm'a't's'e'm'i't' 'e'h't'g'a''''''''' 'e's'u'a'c'e'b' ','n'e'm'e'l'e' 't's'i'l' 'e'h't' '''''''''''$'}'1'+'n'{'_'o'$' 'r'e'v'o' 'p'i'k's' 't'o'n' 's'e'o'd' '$'i'_'o'$' 'r'o'f' 'e'l'u'r' 'y'l'p'p'a' 'e'h't' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i''''''''''''' 'd'n'a''''','''''''''''''''''''''''''' 'f'''''''''''''''''''''''''''''''''''''''''''''''''$'}'1'+'n'''''''''''$'i'_'o'$' 'r'e't'f'a''''''{'''''_'''''o'''''$''''' '''''f'''''I''''' '.'$'}'d'i'{'t'i'h't'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''{'''''$''''' '''''n'''''a'''''h'''''t''''' '''''r'''''e'''''t'''''a'''''e'''''r'''''g''''' '''''o'''''s'''''l'''''a''''' '''''s'''''i''''' ''''''''o''''' '''''p'''''m'''''a'''t's'e'm'i't' 'e'h't' 'o's' '''''''''''''''''''''''''''''$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 'r'e't'a'e'r'g' 's'i' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'f'o' 'p'm'a't's'e'm'i't' 'e'h't' 's'n'a'e'm' 't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'o't's'i'h' ''''i'e'h't' 'n'i' '$'}'1'+'n'{'_'o''''#'$' 'r'e't'f'a' 's'r'a'e'p'p'a' '$'i'_'o'$' 'd'n'a' ','r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'f'I' '.'$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 'r'e''''''''''''''''''''''a'h't' 'r'e'h't'a'e'r'g' 's'p'm'a't's'e'm'i't' 'e'v'a'h' 'h't'o'b' 't's'u'm' 'y'e'h't' 'e'c'n'i's' ','t'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'd'n'a' '$'i'_'o'$' 'h't'o'b' 'r'e'v'o' 's'p'i'k's' '$'}'1'+'n'{'_'o'$''''#' 'r'o'f'''''''''''''''' 'l'l'i'w' 'e'l'u'r' 'y'l'p'p'a' 'e'h't' 'n'e'h't' ','y'r'o't's'i'h' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' '$'i'_'o'$''''''''''''''''$' 'd'n'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' ','r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'e'h't' 'f'I' '.'t'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'r'i'e'h't' 'n'a'h't' 'r'e't'a'e'r'g' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'a' 'e'v'a'h' 'd'n'a' ','r'e'd'r'o' 't's'i'l' 'l'a'n'i'f' 'e'h't' 'n'i' 't'n'e'm'e'l'e' 'e'c'n'e'r'e'f'e'r' 'r'i'e'h't' 'r'e't'f'a' 'n'o'i't'i's'o'p' 'e'm'o's' 't'a''''a' 'r'a'e'p'p'a' 'n'o'i't'i's'o'p' 'e'c'n'e'r'e'f'e'r' 'r'i'e'h't' 's'a' ')'''' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 't'o'n'(' 't'n'e'm'e'l'e' 't's'i'l' 't'n'e'r'e'f'f'i'd' 'a' 'e's'u' 't'a'h't'''i'''''h'''''t'''''i'''''w''' 'n'o'i't'i's'o'p' 'c'i't's'i'n'i'm'r'e't'e'd' 'a' 's'a'h' '$'}'d'i'{'t'i'h't'a'm''$' 'p''''y'n'A''' '''''''''''' '$'c'_'H'$' 'n'i'''O'''D'O'T'(' ''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'd'd'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'n'e'h'W'n'n'.'e'u'q'i'''''''i'q'n'u' 'd'n'a' 'c'i't's'i'n'i'm'r'e't'e'd' 's'i' 'r'e'd'r'o' 't's'i'l' 's'i'h't' ','d'e'r'e'd'r'o' 'y'l'l'a't'o't' 'e'r'a' 's'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'e'c'n'i'S' '.'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'g'n'i'd'n'e'c's'e'd' 'f'o' 'r'e'd'r'o' 'n'i' 'y'l'e'm'a'n' ','r'e'd'r'o' 't's'i'l' 'l'a'n'i'f' 'e'm'a's' 'e'h't' 'n'i' 's't'l'u's'e'r' ','r'e'd'r'o' 'y'n'a' 'n'i' ','''' '''''''''''''''''''''''''' 'y'l'n'o'''''''''''''''''s'n'o'i't'a'r'e'p'o' 'e's'e'h't' 'g'n'i'n'i'a't'n'o'c' 'y'r'o't's'i'h' 'y'n'A' '''''''}''}'d'i'{''''t'i'h't'a'm'' 'p'''''''p'''''''''''''''''''$' 'd'n'a' ' 'u'c'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'i's'o'p' 'e'c'n'e'r'e'f'e'r' 'r'i'e'h't' 's'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'e's'u' 't'a'h't' '$'c'_'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'l'l'a' 'f'o' 's'D'I' 'e'h't' 'e'b' '$'}''c'_'H' 'n'i'' ')'r'e'd'l'o'h'e'c'a'l'p'' ','}'v'e'r'p'{'t'i'h't'a'm'' ','i'_'}'d'i'{'t'''''''{'d'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' 'd'i'm'' 'i'_'}'d'i'{'t'i'h't'a'm''{''''''' '=' '}'t'f'e'l'{'t'i'h't'a'm'''''{'_'O'$' 't'e'L'n'n''r''''''''''''''''}''''''''''''''''''''}'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'i'l'p'p'a' 's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '<' '}'d'i'{'t'i'h't'a'm'''''''''''''''''.'$'''' 'i'_'}'d'i'{'t'i'h't'a'm''$' 's'e'i'l'p'm'i' 't'a'h't' ','$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 'd'e'i'l'p'p'a' 's'i' '$'i'_'o'$' 'f'I''''''''''''''''''''''''''''''''''''''' '.'$'c'_'H'$' 'n'i' '$'}'1'+'n'{'_'o'$' 'r'e't'f'a' 'r'o' 'e'r'o'f'e'b' 'r'e'h't'i'e' 's'r'u'c'c'o' '$'i'_'}'d'i'{'t'i'h't'a'm''$' 's't'r'e's'n'i' 't'a'h't' '$'''''''$'#'i'_'o''''O'$' 'n'o'i't'a'r'e'p'o' 'e'h'T' '.'r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 's'r'a'e'p'p'a' 't'a'h't' 't'n'e'm'e'l'e' 't's'i'l' 'y'n'a' 'f'o' 'D'I' 'e'h't' 'e'b' ''}'m'_'}'d'i'{'t'i'h't'a'm'' ','s't'o'd'''' ','1'_'d'i'{'t'i'h't'a'm''{' 'n'i'' 'd'i'{'t'i'h't'a'm''''''''$'i'_'o'$' 't'e'L''o'f' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't''''$' '}'e'r'o'f'e'b'{'h'p'm'e'' 'r'a'e'p'p'a' 't'a'h't' '$'}''m'_'}'d'i'{'t'i'h't'a'm'' ','s't'o'd'' ',''''1'_'}'d'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''$'''''i'''''_'''''o'''''$''''' '''''n'''''a'''''h'''''t''''' '''''D'''''I''''' '''''r'''''e'''''t'''''a'''''e'''''r'''''g''''' '''''a''''' '''''e'''''v'''''a'''''h''''' '''''t'''''s'''''u'''''m''''' '''''$'''''i'''''_'''''o''''''''''''''O'''''$''''' '''''n'''''o'''''i'''''t'''''a'''''r'''''e'''''p'''''o''''' '''''n'''''a''''' '''''n'''''o''''' '''''s'''''d'''''n'''''e'''''p'''''e'''''d''''' '''''y'''''l'''''l'''''a'''''s'''u'a'c' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'y'n'a' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'f'o' 'n'o'i't'i'n'i'f'e'd' 'e'h't' 'y'b' 't'a'h't' 'e't'o'n' 'r'e'h't'r'u'F' '''n'n'{'t'i'h't'a'm''$' 's't'n'e'm'e'l'e' 't's'i'l' 'f'o' 't'e's' 'e'h't' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'c'_'H'$' 'o't' 'd'e't'r'e's'n'i'''''''''''''e'd'd'a' 's'i' '$'}'1''''$'+'n'{'_'o'$' 'e'r'e'h'w' 's's'e'l'd'r'a'g'e'r' 't'a'h't' 'w'o'h's' 'o't' 't'n'e'l'a'v'i'u'q'e' 's'i' 't'i' ','s't'n'e'm'e'l'e' 't'n'e'c'a'j'd'a' ','g'n'i't's'i'x'e'''''''d'a' 'o'w't' 'n'e'e'w't'e'b' 't'n'e'm'e'l'e' 'w'e'n' 'a' 'd'd'a' 'y'l'n'o' 's'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's''''''''''{'t'i'h't'a'm''$'''''''n'i' 'e'c'n'i'S'n'n'''' '.'$']'k'_'}'d'i'{'t'i'h't'a'm'' ','s't'o'd'' ','}'d'i'{'t'i'h't'a'm'''' ','s't'o'd'' ','1'_'d'i'{'t'i'h't'a'm''['$' 's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'w'o'h's' 'n'a'c' 'e'w' ','y'l't'n'e'l'a'v'i'u'q'E' '.'s't'n'e'm'e'l'e' 't's'i'l' 'f'o' 'e'c'n'e'u'q'e's' 'e'm'a's' 'e'h't' 's'i' 'e'm'o'c't'u'o' 'e'h't' ','$'}'1'+'n'{'_'o'$' 'n'o'i't'a'r'e'p'o' 'e'h't' 't'r'e's'n'i' 'e'w' '$'c'_'H'$' 'n'i' 'n'o'i't'i's'o'p' 't'a'h'w' 't'a' 's's'e'l'd'r'a'g'e'r' 't'a'h't' 'w'o'h's' 'o't' 'd'e'e'n' 'e'W' '.'$'c'_'H'$' 'y'b' 'd'e'n'i'f'e'd' 'y'l's'u'o'u'g'i'b'm'a'n'u' 'r'e'd'r'o' 't's'i'l' 'e'h't' 'n'i' ','$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'n'e'e'w't'e'b' 'l'a'v'r'e't'n'i' 'e'h't' 'n'i'''''''''''''''''''e'n'i'f'e'd'''''''''''''''''''t'r'e's'n'i''' '''''s'''''p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' ''''''''''''''''''''''''' 's't'n'e'm'e'l'e' 't's'i'l' 'f'o' 'r'e'd'r'o' 'e'h't' 'e'b' '$']'k'_'}'d'i'{'t'i'h't'a'm'' ','s't'o'd'' ','1'_'}'d'i'{'t'i'h't'a'm''['$' 't'e'L'n'n'.'n'o'i't'a'l'o's'i' 'n'i' '$'c'_'H'$' 'r'e'd'i's'n'o'c' 'n'a'c' 'e'w' 'o's' ','''b'''''u'''''s''''' '''''e'''''l'''''b'''''i'''''s'''''s'''''o'''''p''''' '''''l'''''l'''''a''''''''''''''''''''s'''''''''''''''''i'''''''''''''''''s'''''''''''''''''e'''''''''''''''''h'''''''''''''''''t'''''''''''''''''o'''''''''''''''''p'''''''''''y'''''h''''' '''''n'''''o'''''i'''''t'''''c'''''u'''''d'''''n'i' 'e'h't' 'y'B' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'''''o''''' '''''s''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'i'h't'i'w' 'r'e'd'r'o' 't's'i'l' 'l'a'n'i'f' 'e'm'a's' 'e'h't' 'n'i' 't'l'u's'e'r''e'c'i'o'h'c' 'e'l'b'i's's'o'p' 'l'l'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'c'_'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' ','s'i's'e'h't'o'p'y'h' 'n'o'i't'c'u'd'n'i' 'e'h't' 'y'B' '.'l'a'v'r'e't'n'i' 't'a'h't' 'f'o' 'e'd'i's't'u'o' 'r'e'd'r'o' 't's'i'l''''''''''''''''r'e'd'r'o' 'e'h't' ')'y'b' 'd'e't'c'e'f'f'a' 't'o'n' 'e'r'a' 'd'n'a'(' 't'c'e'f'f'a' 't'o'n' 'o'd' 'd'n'a' ','l'a'v'r'e't'n'i' 't'a'h't' 'n'i'h't'i'w' 's't'n'''''''t'm'e''''''''''''' 's'n't'm'e'l'e' 't's'i'l' 'f'o' 'r'e'd'r'o' 'l'a'n'i'f' 'e'h't' 'e'n'i'm'r'e't'e'd' '$'c'_'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h'T' '.'$'}'t'x'e'n'{'t'i'h't'a'm''$' 'o't' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'm'o'r'f' 'l'a'v'r'e't'n'i' 'e'h't' 'n'i'h't'i'w' 'n'o'i't'i's'o'p' 'a' 't'''' 'a' 't'r'e's'n'i' 't'a'h't' 'd'n'a' '$'}'1'+'n'{'_'o''''{'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$' 'y'l'n'o' 'g'n'i't'c'e'l'e's' 'y'b' '$'2'_'H'$' 'r'o' '$'1'_'H'$' 'r'e'h't'i'e' 'm'o'r'f' 'd'e'v'i'r'e'd' ','s'n'o'i't'a'r'e'p'o' 'f'o' 'y'r'o't's'i'h' 'a' 'e'b' '$'c'_'H'$' 't'e'L'''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'i'o'p' 'n'o'i't'r'e's'n'i' 'e'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't'c'e'l'e's'''''''''''''''''''''''''''''''''''''''''''''''''{'f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 't'e's'b'u's''''' '''''''''''''''''e'''''''''''''''''h'''''''''''''''''t''''''''''''''''' '''''e'''''b''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''''''''''''s'_'H' 'n'i'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'.'e't'a't's' 'l'a'n'i'f' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'e'r'o'f'e'b' 'r'a'e'p'p'a' 'o's'l'a' 'y'l'i'r'a's's'e'c'e'n' '$'i'_'o'$' 'n'o' 'd'n'e'p'e'd' 'y'l'l'a's'u'a'c' 't'a'h't' 's'n'o'i't'a'r'e'p'o' 'l'l'a'''''''o'$' 'n'e'h't' ','$'i'_'o'$' 'r'e't'f'a' '$'}'1'+'n'{'_'o'$' 's't'r'e's'n'i' 'e'l'u'r' '$'}'y'l'p'p'a'{'m'r'h't'a'm''$' 'e'h't' 'f'i''''$' ','s'u'h'T' '.'$'i'_'o'$' 'n'a'h't' 'p'm'a't's'e'm'i't' 'r'e't'a'e'r'g' 'a' 'e'v'a'h' 't's'u'm' '$'i'_'o'$' 'n'o' 's'd'n'e'p'e'd' 'y'l'l'a's'u'a'c' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'y'n'a' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'f'o' 'n'o'i't'i'n'i'f'e'd' 'e'h't' 'y'b' 't'a'h't' 'e't'o'N' '.'n'o'i't'a'r'e'p'o'''''''''''''''' 'g'n'i't'r'a't's' 'a' 'e'b' '$'i'_'o''''O'$' 't'e'L'n'n''c'_'H'$' 'n'i' 's'e'i'c'n'e'd'n'e'p'e'd' 'l'a's'u'a'c' 'y'n'a' 'e'v'a'h' 't'o'n' 's'e'o'd' 't'i' 'e'c'n'i's' ',''.'n'o'i't'a'r'e'p'o' 'g'n'i't'r'a't's' 'a' 'o's'l'a' 's'i' '$'}'1'+'n'{'_'o'$' 't'a'h't' 'e't'o'N'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'{'_'o''''#'$' 'g'n'i'y'l'p'p'a' 'r'e't'f'A' ''''$'''''s'''''_''''''-'H'$' 't'e'L'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'c'_'H'$' 'n'i' 'n'o'i't'a'r'e'p'o' 'r'e'h't'o' 'y'n'a' 'n'o' 'd'n'e'p'e'd' 'y'l'l'a's'u'a''''u'c' 't'o'n' 'o'd' 'y'e'h't' ':'''''s'n'o'i't'a'r'e'p'o' 'g'n'i't'r'a't's'`'`' 'e'r'a' 't'a'h't' '$'s'_'H'$' 's'n'o'i't'a'r'e'p'o' 'f'o' 't'e's'b'u's' 'a' 's'i' 'e'r'e'h't' '$'c'_'H'$' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'o'm'A' '.'$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'n'e'e'w't'e'b' 'n'o'i't'i's'o'p' 'a' 't'a' 't'r'e's'n'i' 't'a'h't' 'd'n'a' ''s'''$'}'''''''''''''''''''''''''''''''''''''''''''$'}'1'+'n'{'_'o'$' 'h't'i'w' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'a'r'e''h't'a'm''$''''''''''p'o' 't'r'e's'n'i' 'y'l'n'o' 'g'n'i'r'e'd'i'd'n'o'c' 'y'b' '$'2'_'H'$' 'r'o' '$'1'_'H'$' 'r'e'h't'i'e' 'm'o'r'f''''b' 'd'e'v'i'r'e'd' ','''' 's'n'o'i't'a'r'e'p'o' 'f'o' 'y'r'o't's'i'h' 'a' 'e'b' '$'c'_'H'$' 't'e'L'n'n'.'s't'n'e'm'e'l'e' 't's'i'l' 'f'o' 'e'c'n'e'u'q'e's' 'e'm'a's' 'e'h't' 's'i' 'e'm'o'c't'u'o' 'e'h't' ','$'2'_'H'$' 'd'n'a' '$'1'_''''-'H'$' 'n'i' 'd'e't'r'e's'n'i' 's'i' '$'}'1'+'n'{'_''''{'o'$' 'e'r'e'h'w' 'r'e't't'a'm' 'o'n' 't'a'h't' 'w'o'h's' 'o't' 'y't'r'e'p'o'r''''o'p' 's'i'h't' 'e's'u' 'e'W' '.'$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 's's'e'l' 'D'I' 'n'a' 's'a'h' 't'n'i'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'g'n'i'w'o'l'l'o'f' 't'n'e'm'e'l'e' 't's'i'l' 'e'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' ','$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 'r'e't'a'e'r'g' 'D'I' 'n'a' 'e'v'a'h''''''''''''' 'e'r'a' '$'}'d'i'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'n'e'e'w't'e'b' 's't'n'e'm'e'l'e' 't's'i'l' 'l'l'a' ','d'e't'r'e's'n'i' 's'i' '$'}'d'i'{'t'i'h't'a'm''$' 'r'e't'f'a' 't'a'h't' 's'e'r'u's'n'e''''''''''s'a'h' 'e'l'u'r' '$'}'y'l'p'p'a'{'m'r'h't'a'm''$' 'e'h't' 't'a'h't' 'e't'o'N' '.'$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'n'e'e'w't'e'b' 'n'o'i't'i's'o'p' 'e'm'o's' 't'a' 't'r'e's'n'i' 't'a'h't' 'd'n'a' '$'}'1'+'n'{''''['_'o'$' 'o't' 't'n'e'r'r'u'c'n'o'c' 'e'r'a' 't'a'h't' 's'n'o'i't'r'e's'n'i' 'r'e'd'i's'n'o'c' 'y'l'n'o' 'd'e'e'n' 'e'w' ','''' 'e'r'o'f'e'r'e''''''''''r'e'h'''''''''''''''''''''' 'e'w' ','s'u'h'T'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'n'e'e'w't'e'b' 'n'o'i't'i's'o'p' 'e'm'o's' 't'a' '$'}'d'i'{'t'i'h't'a'm''$' 't'r'e's'n'i' 'o't' 'd'e'e't'n'a'r'a'u'g' 's'i' 'e'l'u'r' '$'}'y'l'p'p'a'{'m'r'''''''''''''''''''p'p'a'{'t'i'h't'a'm''$' 'e'h't' ','s'u'h'T' '.'$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'o'y'e'b' 's'e'u'n'i't'n'o'c' 'r'e'v'e'n' 'n'o'i's'r'u'c'e'r' 'e'''''''''''''''''''''''''''''''''''''''' 'n'o'i't'a'r'e't'i' 's'i'h't' ','$''''''}'d'i'{'d'i'h't'a'm'' '<' '}'t'x'e'n'{'d'i'h't'a'm''$' 'e'c'n'i'S' '.'$'}'d'i'{'t'i'h't'a'm''$' 'n'a'h't' 'r'e't'a'e'r'g' 'D'I' 'n'a' 'h't'i'w' 's't'n'e'm'e'l'e' 'y'n'a' 'r'e'v'o' 's'p'i'k's' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 't'a' 'g'n'i't'a'r'e't'i' 's't'r'a't's' 'e'l'u'r' '$')')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','r'e'd'l'o'h'e'c'a'l'p''('}'y'l'p'p'a'{'m'r'h't'a'm''$' 'e'h't' ','d'e'i'l'p'p'a' 's'i' '$'}'1'+'n'{'_'o'$' 'n'e'h'W' '.'y'r'o't's'i'h' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'o't' 'r'o'i'r'p' 't'n'i'o'p' 'e'm'o's' 't'a''''b' 'd'e't'r'e's'n'i' 'e'r'a' '''''''''''''''''''''''''''''$'}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 't'a'h't' 's'd'n'a'm'e'd' 'y't'i'l'a's'u'a'c' ','s'e'i'r'o't's'i'h' 'e's'e'h't' 'f'o' 'r'e'h't'i'e''''''''''''''''t'h'e'i't' 'o't'n'i' 'd'e't'r'e's'n'i' 's'i' '$'}'1'+'n'{'_'o'$' 'n'e'h'W' '.'d'e'i'l'p'p'a' 'n'e'h'w' 'e't'a't's' 'l'a'n'i'f' 'e'm'a's' 'e'h't' 'n'i' 't'l'u's'e'r' 'h'c'i'h'w' '$'n'_'o' 's't'o'd'' '1'''''''''' '1'n'_'o'$' 's'n'o'i't'a'r'e'p'o' 'f'o' 's'e'i'r'o't's'i'h' 'l'a's'u'a'c' 'e'b''''''''''''''''''''''''''''''' '$'2''''@'_''''J'H'$' 'd'n'a' '$'1'_'H''''#'$'''''''1'H' 's'e'i'r'o't's'''''''t's'i'h' 't'e'l'''''''''''''''''''''''''''''''''''''''''''''' 'e'v'a'h' 'e'w''''''' 'a' 'e'm'u's's'a' ','''' 's'i's'e'h't'o'p'y'h' 'n'o'i't'c'u'd'n'i' 'e'h't' 'y'B''o'b'a' 'n'o'i't'a'v'r'e's'b'o' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'A' '.''n'n''''''''''''''''''''''''''''''''''''''' '''''e'''''w''''' '''''d'''''n'''''a''''' ''''','''''r'''''e'''''d'''''r'''''o''''' '''''e'm'a's' 'e'h't' 'n'i' 'e'b' 'l'l'i't's' 't's'u'm' 'y'e'h't''''''''''''''''''''''''''''$'''}'d'i'{'t'i'h't'a'm''$' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'v'o'b'a' 'n'o'i't'a'v'r'e's'b'o' 'e'h't' 'o't' 'g'n'i'd'r'o'c'c'a' '$'''}'d'i'{'t'i'h't'a'm'' '<' '}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'''}'d'i'{'t'i'h't'a'm'' '<' '}''''''''''''''''''''''''''''''v'e'r'p'{'t'i'h't'a'm''$' 'e'v'a'h' 't's'u'm' 's't'n'e'm'e'l'e' 'e's'o'h't' 'n'e'e'w't'e'b' 'd'e't'r'e's'n'i' 'D'I' 'r'e'h't'o' 'y'n'a' 't'a'h't'''''''''''''''' 'm'o'r'f' 'w'o'n'k' 'e'w' 't'u'b''''''''''''' 'T'U'B' ','$''''4'q'_'A'$' 'n'i''''''''''''''''a' 's'a'(' 't'n'e'c'a'j'd'a' 'y'l'i'r'a's's'e'c'e'n' 'r'e'g'n'o'l' 'o'n' 'e'r'a' '$'}'t'x'e'n'{'t'i'h't'a'm''$''d'i' '''''''''''''''''''''' 'd'n'a' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 's't'n'e'm'e'l'e' 'e'h't' ','$'q'$' 'r'e'e'p' 't'a' 'd'e'i'l'p'p'a' 's'i' '$'}'1'+'n'{'_''''{'o'$' 'n'e'h'W' '.'s't'n'e'm'e'l'e' 't'n'e'c'a'j'd'a' ','g'n'i't's'i'x'e' 'o'w't' 'n'e'e'w't'e'b' 't'n'e'm'e'l'e' 'w'e'n' 'a' 'g'n'i't'r'e's'n'i' 'y'b' 'd'e'i'f'i'd'o'm' 'y'l'n'o' 's'i' 'e'r'u't'c'u'r't's' 't's'i'l' 'e'h't' ','r'e'v'o'e'r'o'M''n'n'''''s'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$''''' 't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'o't' 't'c'e'p's'e'r' 'h't'i'w''i'r'e'd'r'o' 'e'l'b'i's's'o'p' 'l'l'a' 'r'e'd'i's'n'o'c' 'y'l'n'o' 'd'e'e'n' 'e'w' ''e't'a'l' 'y'l'l'a's'u'a'c' 'd'e'n'e'p'p'a'h' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'y'n'a' 'e'r'o'f'e'b' 'd'n'a' 'e'r'o'f'e'b' 'd'e'n'e'p'p'a'h' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'y'n'a' 'r'e't'f'a'''''''''''''''''''''''''''''''''''''''' 'd'e'i'l'p'p'a''''''''''''''''''''''''''''''''''''''''t'f'a' 'd'e'r'e'v'i'l'e'd' 'e'b' 'o't' '$'}'1'+'n'{'_'o'$' 's'e'r'i'u'q'e'r' 'y'r'e'v'i'l'e'd' 'd'e'r'e'd'r'o' 'y'l'l'a's'u'a'C' '.'''''''''''''''''' '$'}'1'+'n'{'_'o'$' 'o's' ',''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'y'a'w'l'a' 'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$' 'n'a' 'g'n'i'y'l'p'p'a' 'd'n'a' ',')'t's'i'l' 'e'h't' 'n'i' 's'm'e't'i' 'f'o' 'r'e'd'r'o' 'e'h't' 't'o'n''''t' 't'u'b' ','s'e'u'l'a'v' 'y'f'i'd'o'm' 's'n'o'i't'a'r'e'p'o' '$'''' '}'e't'e'l'e'd'{'f's'h't'a'm''$'(' 's'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm'''']''$' 'g'n'i'y'l'p'p'a' 'y'b' 'd'e'i'f'i'd'o'm' 'y'l'n'o' 's'i' 'e'r'u't'c'u'r't's' 't's'i'l' 'd'e'k'n'i'l' 'e'h't' 't'a''''s'h't' 'e't'o'N'n'n'''''''''''''''''''''$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 's'i' '$'}'1'+'n'{'_'o''''O'$' 'n'e'h'w' 'e'm'i't' 'e'h't' 't'a' '$'q''''Q'$' 'f'o' '$'q'_'A'$' 'e't'a't's' 'e'h't' 'n'i' 'd'e'n'i'f'e'd' 'e'b' 't's'u'm' '$')'}'t'x'e'n'{'t'i'h't'a'm''('q'_'A'$' 'd'n'a''''''''''' '$'}'v'e'r'p'{'t'i'h't'a'm''$' ','y'r'o't's'i'h' 's't'i' 'n'i' 'e'm'i't' 'y'd'a'e'r' 'y'l'l'a's'u'a'c' 'y'n'a' 't'a' '$'q'$' 'r'e'e'p' 'r'e'h't'o'n'a' 't'a' 'd'e'i'l'p'p'a' 's'i' '$'}'1'+'n'{'_'o'$' 'n'e'h'w' ','s'u'h'T' '.')'d'e'i'l'p'p'a' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 's'a' 's'w'o'r'g' 'y'l'l'a'c'i'n'o't'o'n'o'm' '$'A'$' 'n'o'i't'c'n'u'f' 'l'a'i't'r'a'p' 'e'h't' 'f'o' 'n'i'a'm'o'd' 'e'h't' ''.'e'.'i''''''''''''''''''''''''''''''''''''''''''''''(' 'e't'a't's' 'e'h't' 'm'o'r'f' 'D'I' 'n'a' 'e'v'o'm'e'r' 'r'e'v'e'n' 'e't'a't's' 's'''r'e'e''''p'p' 'a' 'y'f'i'd'o'm' 't'a'h't' 's'e'l'u'r' 'e'h'T''n'n''''''''''''''''{'t''''''d'''a'u'q''}''x'e't''d'a'u'q''''''''''''''}'*'n'g'i'l'a'{'d'n'e''n''''''''}'t'x'e'n'{'t'i'h't'a'm''''''';'''''t'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$'}'d'i''''n'{'t'i'h't'a'm'' '<' '}'t'x'e'n'{'t'i'h't'a'm''$' 'd'n'a' '$'}'d'i'{'t'i'h't'a'm'' '<' '}'v'e'r'p'{'t'i'h't'a'm''$' 'd'n'a' '''''''''''''''''$''''''''''p'_''$' '''$''''''''''''''''m'''''}'v'e'r'r''''''''{'t'i'h't'a'm''''''''''''''''''}'t'x'e'n'{'t'i'h't'a'm''''''' ''''''''''''''''''''''''''''''''''''''''''d'a'u'q''''''''''''''''''''''''''''''''''''''''''$'$' '.')'n' ','p'_'v'(' '=' ')'}'v'e'r'p'{'t'i'h't'a'm''('A' ';''}' 'e'r'e'h'w' '{'t'x'e't''d'a'u'q''n']','')'n' ','v'(' 'o't's'p'a'm'' '}'d'i'{'t'i''''h't'a'm'' ',')'}'d'i'{'t'i'h't'a'm'' ','p'_'v'(' '''''o't's'p'a'm'' '}'v'e'r'p'{'t'i'h't'a'm'',''['A' '=' '''p'_'A' '$'$'n':'e'v'a'h' 'e'w' 'e'r'o'f'e'r'e'h'T' '''''''''d''n'n''''e'i'l'p'p''.'a' 's'a'w' '$'}'1'+'n'{'_''''{'o'$' 'r'e't'f'a' 'y'l'e't'a'i'd'e'm'm'i'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'p'_'A'''' 'n'''''''''''''e'''''''' '=' '''p'_'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'p'p'a' 't's'u'm' ')'$'}'d'i'{'t'i'h't'a'm'' '<' 'n'$'(' 'e's'a'c' 'e'v'i's'r'u'c'e'r'-'n'o'n''''''''''c'e's' 'e'h't' '$')')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','p'_'A'(''P'A't'a'd'p'u' 'e't'a't's' ''i'$' ''' ''n'i' 'g'n'i'r'r'''''u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'''p'_'A'$' 'o't'n'i' '$'p'_'A'$' 'd'e'm'r'o'f's'n'a'r't' 't'a'h't' 'n'o'i't'c'n'u'f''c'c'o' 'p'm'a't's'e'm'i't' 'y'n'a' 'n'a'h't' 'r'e't'a'e'r'g' 'd'n'a' ','' 'r'e'e'p' 'e'm'a's' 'e'h't' 'f'o' 'e't'a't's' 'e'h't' 'e'b' '$'''p'_'A'$' 't'e'l' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$'}'y'l'p'p'a'{'m'r'h't'a'm''$' 'e'h't' ','e'r'o'f'e'r'e'h'T' '.'$'o'_'A'$' 'n'i' 'p'm'a't's'e'm'i't' 't's'e't'a'e'r'g' 'e'h't' 's'i' '$'}'d'i'{'t'i'h't'a'm''$' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'f'o' 'n'o'i't'i'n'i'f'e'd' 'e'h't' 'y'B' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''.'d'e'i'l'p'p'a' 'y'l'l'a'c'o'l' 's'a'w' '$'}'1'+'n'{'_'o'$' 'r'e't'f'a' 'y'l'e't'a'i'd'e'm'm'i' ','d''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e'i'l'p'p'a' 'y'l'l'a'c'o'l' 's'a'w' '$'}'1'+'n'{'_'o''''#'$' 'r'e't'f'a' 'y'l'e't'a'i'd'e'm'm'i' ','d'e't'a'r'e'n'e'g' 's'a'w' '$'}'1'+'n'{'_'o'$' 'h'c'i'h'w' 'n'o' 'r'e'e'p' 'e'h't' 'f'o' 'e't'a't's' 'e'h't' 'e'b' '$'o'_'A'$' 't'e'L'''e't'a'r'e'n'e'g' 's'a'w' '$'}'1'+'n'{'_'o'$' 'h'c'i'h'w' 'n'o' 'r'e'e'p' 'e'h't' 'f'o' 'e't'a't's' 'e'h't' 'e'b' '$'o'_'A'$' 't'e'L'''n'n''''''''''''''''''''''p'm'a't's'e'm'i't''''' 't'r'o'p'm'a'''''''''''''''''''''''''''''''''''''''''''''''B' '.'d'e'm'r'o'f'r'e'p' 's'a'w' 't'i'd'e' 'e'h't' 'h'c'i'h'w' 'n'o' 'r'e'e'p' 'e'h't' 'y'b''''''''''''''t' 'y'b''''''''''''''''''''''''''''''''''L' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'd'e't'a'r'e'n'e'g' 'y'l'h's'e'r'f' 'a' 's'i' '$'}'d'i'{'t'i'h't'a'm''$' ','n'o'i't'a'r'e'p'o' 's'i'h't' 'n'I' '.'$')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''='}'1'+'n'{'_'o''''{'$' 't'a'h't' 'e's'a'c' 'e'h't' 'r'e'd'i's'n'o'c' 'w'o'N'n'n'}'n'o'i't'r'e's'n'i' 'f'o' 'y't'i'v'i't'a't'u'm'm'o'C'{'n'o'i't'c'e's'b'u's'b'u's''n'n'.'s'n'o'i't'a'r'e'p'o' 'g'n'i'w'o'l'l'o'f' 'r'o' 'r'o'i'r'p' 'y'n'a' 'h't'i'w' 't'c'a'r'e't'n'i' 't'o'n' 's'e'o'd' 'n'o'i't'a'r'e'p'o' 'd'e't'r'e's'n'i' 'e'h't' 'e's'u'a'c'e'b' ','t'n'i'o'p' 'n'o'i't'r'e's'n'i' 'e'h't' 'n'o' 'd'n'e'p'e'd' 't'o'n' 's'e'o'd' 'e't'a't's' 'l'a'n'i'f' 'e'h't' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'r'o't's'i'h' 'a' 'n'i' 't'n'i'o'p' 'y'd'a'e'r' 'y'l'l'a's'u'a'c' 'y'n'a' 't'a' '$')'}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm''='}'1'+'n'{'_'o'$' 'g'n'i't'r'e's'n'i' ','s'u'h'T'n'n'''''''''''''''''''''''''''''''''' 'e'h't' ','s'u'h'T' '.'d'e'g'n'a'h'c'n'u' 't'n'e'm'e'l'e' '$'}'t'x'e'n'{'t'i'h't'a'm''$' 'e'h't' 's'e'v'a'e'l' 'd'n'a''''''''''''' 'd'n'a' ','$')'}'d'i'{'t'i'h't'a'm''('A'$' 'f'o' 't'n'e'm'e'l'e' '$'}'e'u'l'a'v'{'t'i'h't'a'm''$' 'e'h't' 'y'l'n'o' 's'e'i'f'i'd'o'm' '$')'}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm'''''|'$' 'g'n'i'y'l'p'p'a''''$' ','t's'a'r't'n'o'c' 'y'B' '.'e'l'p'u't' 'e'h't' 'f'o' 't'n'e'm'e'l'e' '$'}'t'x'e'n'{'t'i'h't'a'm''$' 'e'h't' 'y'f'i'd'o'm' 'd'n'a' 'e'n'i'm'a'x'e' 'y'l'n'o' 'd'n'a' ','d'e'g'n'a'h'c''''a'n'u' 't'i' 'e'v'a'e'l' 'd'n'a' 'e'l'p'u't''''''''''''$'''''''''''''''''''''''''''''' 'e'h't' 'f'o' 't'n'e'm'e'l'e' '$'''}'e'u'l'a'v'{'t'i'h't'a'm'' 'e'h't' 's'e'r'o'n'g'i' '$')'}'v'e'r'p'{'t'i'h't'a'm''('A'$' 'r'o'f' 'y'r'e'u'q' 'e'h't' ','n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$''''''''''''''''r'e's'n'i' 'n'a' 'h'c'u's' 'g'n'i'y'l'p'p'a' 'n'e'h'w''''''''''''''''''''''''''''''''''''' 's'p'u'k'o'o'l' 'l'l'a' 't'a'h't' 'e't'o'N' ''l'l'a'n'r'e't'n'i' 'n'o'i't'a'r'e'p'o' 'n'a' 'h'c'u's' 's'e's'u' 't'a'h't' 'n'o'i't'c'n'u'f' '$'}'y'l'p'p'a'{'m'r'h't'a'm''$' 'e'h't' 'o't' 'l'l'a'c' 'e'v'i's'r'u'c'e'r' 'a' 'r'o' ',''d'l'o'h'e'c'a'l'p'' ','r'e'd'l'o'h'e'c'a'l'p'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''$' 'n'a' 't'a'h't' 'd'e'w'o'h's' 'e'W'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'r'e'd'l'o'.''h'e'c'a'l'p'' ','}'d'i'{'t'i'h't'a'm'' ','r'e'd'l'o'h'e'c'a'l'p''('''''''''''''''''''''''''''''''''''''''''' 'h'c'i'h'w' 'n'i' 'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$''''' 'n'a' 's'i' '$')'}'d'i'{'t'i'h't'a'm''('A'$' 'y'f'i'd'o'm' 'r'o' 'n'o' 'd'n'e'p'e'd' 'n'a'c' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'f'o' 'd'n'i'k' 'r'e'h't'o' 'y'l'n'o' 'e'h'T'n'n'.'e't'a't's' 'l'a'n'i'f' 'e'h't' 'n'o' 't'c'e'f'f'e' 'y'n'a' 'e'v'a'h' 't'o'n' 's'e'o'd' 'y'r'o't's'i'h' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o''''{'$' 'r'e't'f'a' 'r'o' 'e'r'o'f'e'b' 's'n'o'i't'a'r'e'p'o' '$')'}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm''$' 'r'e'h't'o' 'y'n'a' 'f'o' 'e'c'n'e's'e'r'p' 'e'h't' ','t'n'e't'o'p'm'e'd'i' 's'i' 'n'o'i't'a'r'e'p'o' 's'i'h't' 'g'n'i'y'l'p'p'a' 'r'o'f' 'e'l'u'r' 'e'h't' 's'A' '.'$'}'d'i'{'t'i'h't'a'm''$' 't'n'e'm'e'l'e' 't's'i'l' 'e'm'a's' 'e'h't' 'r'o'f' 'n'o'i't'a'r'e'p'o' '$'}'e't'e'l'e'd'{'f's'h't'a'm''$' 'a' 's'i' '$')'}'d'i'{'t'i'h't'a'm''('A'$' 'e'm'a's' 'e'h't' 'y'f'i'd'o'm''''a' 'n'a'c' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'f'o' 'd'n'i'k' 't's'r'i'f' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$''''''''n'''''n'''''''')'''''}'''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''A'''''$''''' '''''n'''''o''''' '''''d'''''n'''''e'''''p'''''e'''''d''''' '''''r'''''o''''' '''''y'''''f'''''i'''d'o'm' 't'o'n' 's'e'o'd' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'y'n'a' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c' 'y'l'l'a'i'v'i'r't' 's'i' 't'i' 'o's' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' ','''''''''''''''''''''''''''''''''''''a' 'o't' 't'c'e'p's'e'r' 'h't'i'w' 'e'v'i't'a't'u'm'm'o'c'''''''''''''' 'y'l'l'a'i'v'i'r't' 's'i' 't'i' ';'$')'}'d'i'{'t'i'h't'a'm''('A'$' 'r'o'f' 'g'n'i'p'p'a'm' 'e'h't' 's'e'i'f'i'd'o'm' 't'a'h't' 'n'o'i't'a'r'e'p'o' 'r'e'h't'o'n'a' 'h't'i'w' 't'c'a'r'e't'n'i' 'y'l'n'o' 's'u'h't' 'n'a'c' 'n'o'i't'a'r'e'p'o' 'e'h'T' '.'d'e'g'n'a'h'c'n'u' '$'A'$'' 'e's'i'w'r'e'h't'o' 'd'n'a''''''}''''''''''''' 'e't'a't's' 'e'h't' 'n'i''''''d'''''i'''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''('''''}'''''e'''''t'''e'l'e'd'{'f's'h't'a'm''$' 'g'n'i'y'l'p'p'a''''''''''''' 'e'h't' 't'a'h't' 'e't'o'N'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '$')''''$'}'d'i'{'t'i'h't'a'm''('A'$''''''''''''' 'e'h't' 'r'o'f' 'g'n'i'p'p'a'm' 'e'h't' 'y'f'i'd'o'm' 'n'a'c' 't'a'h't' 'n'o'i't'a'r'e'p'o''''m' 'y'l'n'o' 'e'h't' ','s'u'h'T'n'n'.'y'r'o't's'i'h' 'e'h't' 'n'i' '$'}'1'+'n'{'_'o'$' 'r'e't'f'a' 't'n'i'o'p' 'a' 't'a' '$'}'d'i'{'t'i'h't'a'm''$' 'e'm'a's' 'e'h't' 'r'o'f' 'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n''''''''''''''''t'r'e'n's'i'{'f's'h't'a'm''$' 'y'n'a' 'e'b' 't'o'n'n'a'c' 'e'r'e'h't' 'd'n'a' ','n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$' 'h'c'u's' 'e'n'o' 'y'l't'c'a'x'e' 'e'b' 't's'u'm' 'e'r'e'h't' 'o's' ','e'u'q'i'n'u' 's'i' '$'}'d'i'{'t'''''''{'d'i'h't'a'm''$''''' 's'a'''''''''''' 'd'e's'u' 's'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' ','r'e'v'o'e'r'o'M' '.'y'r'o't's'i'h' 'e'h't' 'n'i' 't'n'i'o'p' 'r'o'i'r'p' 'a' 't'a' '$')'r'e'd'l'o'h'e'c'a'l'p'' ','r'e'd'l'o'h'e'c'a'l'p'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''='i'_'o'$' 'n'o'i't'a'r'e'p'o' 'n'''''''''''''''''''''' 'r'o'i'r'p' 'a' 'e'b' 't's'u'm' 'e'r'e'h't' ','y't'i'l'a's'u'a'c' 'y'b' 'o's' ','t's'i'l' 'e'h't' 'n'i' 's't's'i'x'e' 't'i' 'f'i' 'd'e't'e'l'e'd' 'e'b' 'y'l'n'o' 'n'a'c' 't'n'e'm'e'l'e' 't's'i'l' 'A'''''''''''''''''''''''''''''''''''''''''''''''''h't' ','y't'i'l'a's'u'a'c' 'y'B' '.'$')'}'d'i'{'t'i'h't'a'm''('}'e't'e'l'e'd'{'f's'h't'a'm''='}'1'+'n'{''''''''_'o'$' 't'a'h't' 'e's'a'c' 'e'h't' 'r'e'd'i's'n'o'c' 't's'r'i'F' '.'d'e't'r'e's'n'i' 'e'b' 'y'a'm' 't'a'h't' '$'}'1'+'n'{'_'o''''P'$' 'n'o'i't'a'r'e'p'o' 'f'o' 'e'p'y't' 'h'c'a'e' 'g'n'i'r'e'd'i's'n'o'c' ','e's'a'c' 'y'b' 'e's'a'c' 'p'e't's' 'n'o'i't'c'u'd'n'i' 'e'h't' 'w'o'h's' 'e'W'n'n'p'a'{'m'r'h't'a'm''('}'y'l'p'p'a'{'m'r'h't'a'm'''''''' '=' '''}'}'l'a'n'i'f'{'m'r'h't'a'm''_'A' '$'$'n':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'$'n'_'o' 's't'o'd'' '1'_'o'='p'_'''''''''''''''''''''''''''''''''''''''''''''{'h'p'm'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'n'''''''u'm'a'''''''''''''''$'n'$' 'h't'g'n'e'l' 'f'o' ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'o'f'''''''''''''''''''''''''''' 'g'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e't'a't's' 'l'a'n'i'f' 'e'm'a's' 'e'h't' 'n'i' 's't'l'u's'e'r' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'y'l'p'p'a' ','''i'y'l'p'p'a''''''''''''''''''''''''''''''''''''''''''' 'y'a'w' 's'i'h't' 'd'e't'c'u'r't's'n'o'c' 's'e'i'r'o't's'i'h' 'e'h't' 'f'o' 'l'l'a' 't'a'h't' 'w'o'h's' 'n'e'h't' 't's'u'm' 'e'W' '.'$'2'_'H'$' 'r'o' '$'1'_'H'$'''''''''''''''''''''''''''' '.'y'r'o't's'i'h' 'r'e'h't'i'e' 'n'i' 'n'o'i't'i's'o'p''''''''''''''''''''''''''''' 'y'd'a'e'r' 'y'l'l'a's'u'a'c' 'y'n'a' 't'a' '$'}'1'+'n'{'_'o'$' 'n'o'i't'a'r'e'p'o' 'n'a' 'g'n'i't'r'e's'n'i' 'y'b' '$'1'+'n'$' 'h't'g'n'e'l' 'f'o' 's'e'i'r'o't's'i'h' 'w'e'n' 't'c'u'r't's'n'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'b' 'y'r'o't's'i'h' 'e'h't' 'd'n'e't'x'e' 'n'a'c' 'e'w' ',''''''''''''''''''''''''''''''''''''$'2'_'H'$' 'g'n'i'y'l'p'p'a' 's'a' 'e't'a't's' 'e'm'a's' 'e'h't' 'n'i' 's't'l'u's'e'r' '$'1'_'H'$' 'g'n'i'y'l'p'p'a' 't'a'h't' 'h'c'u's' 'd'n'a''''w' ','$'1'_''''1'H'$' 'f'o' 'n'o'i't'a't'u'm'r'e'p' 'a' 's'i' '$'2'_'H'$' 'd'n'a' '$'n'_'o' 's't'o'd'' '1'_'o'='1'_'H'$' 't'a'h't' 'h'c'u's' ','$'2'_'H'$' 'd'n'a' '$'1'_'H'$''''H' 's'e'i'r'o't's'i'h' 'l'a's'u'a'c' 'n'e'v'i'G' '}':'p'e't's' 'n'o'i't'c'u'd'n'I'{'h'p'm'e''n'n'.'e't'a't's' 'e'm'a's' 'e'h't' 'n'i' 'n'o'i't'i'n'i'f'e'd' 'y'b' 'e'r'a' 's'n'o'i't'a'r'e'p'o' 'y'n'a' 'd'e't'u'c'e'x'e' 't'o'n' 'e'v'a'h' 't'a'h't' 's'r'e'e'p' 'o'w't' 'y'n'a' 'o's' ','d'e'n'i'f'e'd' 'y'l'l'a'c'i't's'i'n'i'm'r'e't'e'd' 's'i' 't'n'e'm'u'c'o'd' 'y't'p'm'e' 'n'A' '.'t'n'e'm'u'c'o'd' 'y't'p'm'e' 'n'a' 's'e'b'i'r'c's'e'd' 's'n'o'i't'a'r'e'p'o' '$'0'='n'$' 'f'o' 'y'r'o't's'i'h' 'A' '}'''''''''''':'e's'a'c' 'e's'a'B'n'n'.'$'n'$' 'y''''''''''$' 'n'r'o't's'i'h' 'e'h't' 'f'o' 'h't'g'n'e'l' 'e'h't' 'r'e'v'o' 'H'$' 's'n'o'i't'a'r'e'p'o' 'f'o' 'e'c'n'e'u'q'e's' 'a' 'f'o' 'g'n'i't's'i's'n'o'c' ','$'p'$' 'r'e'e'p' 't'a' '$'p'_'H'$'''''''''' 't'a' 's'n'o'i't'a'r'e'p'o' 'f'o' 'y'r'o't's'i'h' 'e'h't' 'r'e'd'i's'n'o'C''''''''''''''''''''''''''''''''''''''n'o'i't'c'u'd'n'i' 'y'b' 'm'e'r'o'e'h't' 'e'h't' 'e'v'o'r'p' 'n'a'c' 'e'W''''C''''W'n'n'.'y'r'o't's'i'h' 'e'h't' 'f'o' 'r'e'd'r'o' 'e'h't' 'n'i' 's'n'o'i't'a'r'e'p'o' 'e'h't' 'g'n'i'y'l'p'p'a' 'd'n'a' 'r'e'e'p' 'h'c'a'e' 't'a' 's'n'o'i't'a'r'e'''''''''p'o' 'f'o' '}'y'r'o't's'i'h'{'h'p'm'e'' 'e'h't' 'g'n'i'r'e'd'i's'n'o'c' 'y'b' 'r'e'e'p' 'a' 'f'o' 'e't'a't's' 'e'h't' 'e'v'i'r'''''''''''''''''''''' 'e'b'i'r'c's'e'd' 'n'a'c' 'e'w' ','s'n'o'i't'a'r'e'p'o' 'y'b' 'y'l'n'o' 'd'e'i'f'i'd'o'm' 's'i' 'r'e'e'p' 'a' 'f'o' 'e't'a't's' 'e'h't' 'd'n'a' ','r'e'd'r'o' 'l'a'i't'n'e'u'q'e's' 'e'm'o's' 'n'i' 's'n'o'i't'a'r'e'p'o' 's'e's's'e'c'o'r'p' 'r'e'e'p' 'h'c'a'e' 'e'c'n'i'S'''''''''''''''''''''''''r'e'd'i's'n'o'C'''''''''''''''''''''''''i's'n'o'c' 'e'W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a'r'e'p'o' 'l'l'a' 'g'n'i's's'e'c'o'r'p' 'r'e't'f'a' 's'''e'r'a'''''''t''''''''''''''''''''''''''''''''''n'n'.'l'a'c'i't'n'e'd'i' 's'i' 'e't'a't's' 'l'a'n'i'f' 'r'i'e'h't' ','s'r'e'd'r'o' 't'n'e't's'i's'n'o'c' 'y'l'l'a's'u'a'c' 't'n'e'r'e'f'f'i'd' 'n'i' ','s'n'o'i't'a'r'e'p'o' '$'}'e't'e'l'e'd'{'f's'h't'a'm''$' 'd'n'a' '$'}'t'r'e's'n'i'{'f's'h't'a'm'''''''e't''$''''' 'f'o' 't'e's' 'e'm'a's' 'e'h't' 's's'e'c'o'r'p' 's'r'e'e'p' 'o'w't' 'f'I' '}'.'m'e'r'o'e'h'T'{'f'b't'x'e't''n'n'.'e'r'u't'c'u'r't's' 'a't'a'd' 's'i'h't' 'r'o'f' ','}'y'c'n'e't's'i's'n'o'c' 'l'a'u't'n'e'v'e'{'h'p'm'e'' 's'a' 'n'w'o'n'k' 'o's'l'a' ','y't'r'e'p'o'r'p' 'e'c'n'e'g'r'e'v'n'o'c' 'e'h't' 'e'v'o'r'p' 'w'o'n' 'e'W'n'n'}'e'c'n'e'g'r'e'v'n'o'C'{'n'o'i't'c'e's'b'u's''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'l'i'a't'{'f's'h't'a'm'' '=' '}'d'i'{'t'i'h't'a'm'' ';''''';'}' 'f'i'{'t'x'e't'' 'd'a'u'q'' ']'[''''p' ' ' ' 'n''' 't'o'b'' '=' 'v' ';''e'g'd'e'w'';'' ')'n' ','v'(' '=' ')'}'d'i'{'t'i'h't'a'm''('A' ';''}' 'f'i'{''''''''' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ''''''''''''''''''''''''''''''''t'x'e't'' 'd'a'u'q'' ')'n' ','A'('}'r'e't'i'{'m'r'h't'a'm'' ' ' ' 'n''' 't'o'b'' 'q'e'n'' 'v' ';''e'g'd'e'w'''''w';'' ')'n' ','v'(' '=' ')'}'d'i'{'t'i'h't'a'm''('A' ';''''';'}' 'f'i'{'t'x'e't'' 'd'a'u'q'' ')'n' ','A'('}'r'e't'i'{'m'r'h't'a'm'' '}':':'{'n'i'b'h't'a'm'' ''''''''''''' ':':' ']'v'[' ' ' ' 'n'''''''''''''}'s'e's'a'c'{''''['d'n'e''n'}'s'e's'a'c'{'n'i'g'e'b'' '='&' ')'}'d'i''''I'{'t'i'h't'a'm'' ','A'('}'r'e't'i'{'m'r'h't'a'm''n''''' ')'}'d'a'e'h'{'f's'h't'a'm'' ','A'('}'r'e't'i'{'m'r'h't'a'm'''''''t'a'' '=' ')'A'('}'w'e'i'v'{''''('m'r'h't'a'm''n''''''''''''''}'*'n'g'i'l'a'{'d'n'e''n'}'*'n'g'i'l'a'{'n'i'g'e'b''n':')'s'e'n'o't's'b'm'o't'(' 's't'n'e'm'e'l'e' 'd'e't'e'l'e'd' 'y'n'a' 'g'n'i'p'p'i'k's' ','$'}'l'i'a't'{'f's'h't'a'm''$' 'o't' '$'}'d'a'e'h'{'f's'h't'a'm''$''''' 'm'o'r'f' 's't'n'e'm'e'l'e' 't's'i'l' 'e'h't' 'r'e'v'o' 's'e't'a'r'e't'i' 'A' 't's'i'l' 'a' 'f'o' 'w'e'i'v' 'r'e's'u' 'e'h'T'n'n''''''{'''''t'''''i'''''h'''''t'''''a'''''m''''''''$''''''''''''''%''''' '''''.'''''t'''''s'''''i'''''l''''' '''''e'''''h'''''t''''' '''''f'''''o''''' '''''d'''''a'''''e'''''h''''' '''''e'''''h'''''t''''' '''''g'''''n'''''i'''''t'''''a'''''c'''''i'''''d'''''n'''''i''''' ''''','''''$'''''}'''''d'''''a'''''e'''''h'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''$''''' '''''l'o'b'm'y's' 'l'a'i'c'e'p's' ''''''d'a'u'q''e'h't' 'r'o' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'a' 'r'e'h't'i'e' 's'i' '$'}'d'i'{'t''''d'i'h't'a'm''$' 'r'e't'e'm'a'r'a'p' 'e'h'T' 't' ','r'e'h't'o'n'a' 'e'r'o'f'e'b' 'd'e'n'e'''''d'a'u'q'''p'p'a'h' 'n'o'i't'a'r'e'p'o' 'e'n'o' 'f'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'$')'p' ','c'('$''''(' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'y'n'a' 'r'o'f' '$'}'d'a'e'h'{'f's'h't'a'm''''''''a'm' '<' ')'p' ','c'(' '<' '}'l'i'a't'{'f's'h't'a'm''$' 't'a'h't' 'n'o'i't'i'd'd'a' 'e'h't' 'h't'i'w' ','s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'n'o' 'r'e'd'r'o' 'l'a't'o't' 'e'h't' 's'i' '$'<'$' 'e'r'e'h'w'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'w'o'l' 'a' 's'a'h'''''''''''''''''''''''''''''''''''''e'e't'n'a'r'a'u'g' 's'i' '$'1'_'o'$' 'n'e'h't' ','$'2'_'o'$' 'e'r'o'f'e'b' 'd'e'n'e'p'p'a'h' '$'1'_'o'$' 'n'o'i't'a'r'e'p'o' 'f'i' ','s'i' 't'a'h't' ','y't'i'l'a's'u'a'c' 'h't'i'w' 't'n'e't's'i's'n'o'c' 's'i' 'g'n'i'r'e'd'r'o' 's'i'h'T'n'$'$'.')'2'_'p' '<' '1'_'p' 'e'g'd'e'w'' '2'_'c' '=' '1'_'c'(' 'e'e'v'' ')'2'_'c' '<' '1'_'c'(' 'd'a'u'q''}'f'f'i'{'t'x'e't'''''{'d'a'u'q'' ')'2'_'p' ','2'_'c'(' '<' ')'1'_'p' ','1'_'c'('''' '$'$'n':'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'r'o'f'''''''''''''''''''''''''''''''''''''''''''''' '.'s'n'o'i't'a'r'e'p'o' 'n'o' 'g'n'i'r'e'd'r'o' 'l'a't'o't' 'a' 'e'n'i'f'e'd' 's'u'h't' 'n'a'c' 'e'W'n'n'.'s'e'u'l'a'v' 'r'e't'n'u'o'c' 'l'a'u'q'e' 'e'v'a'h' 'n'a'c' 's'n'o'i't'a'r'e'p'o' 't'n'e'r'r'u'c'n'o'c' 'y'l'n'O' '.'$'1'_'o'$' 'n'a'h't' 'e'u'l'a'v' 'r'e't'n'u'o'c' 'r'e't'a'e'r'g' 'a' 'e'v'a'h' 't's'u'm' '$'2'_'o'$' 'n'e'h't' ',')'d'e't'a'r'e'n'e'g' 's'a'w' '$'2'_'o'$' 'e'r'o'f'e'b' '$'1'_'o'$' 'd'e's's'e'c'o'r'p' 'd'n'a' 'd'e'v'i'e'c'e'r' 'd'a'h'''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 't'u'o'b'a' 'w'e'n'k' '$'2'_'o'$' 'd'e't'a'r'e'n'e'g' 't'a'h't' 'r'e'e'p' 'e'h't' ','s'i' 't'a'h't'(' '$'2'_'o'$' 'e'r'o'f'e'b' 'd'e'n'e'p'p'a'h' '$'1'_'o'$' 'n'o'i't'a'r'e'p'o' 'f'i' 't'a'h't' 's'e'r'u's'n'e' 's'i'h'T' ''''''''.'r'e't'n'u'o'c' 'g'n'i'm'o'c'n'i' 'e'h't' 'f'o' 'e'u'l'a'v' 'e'h't' 'o't' 'd'e's'a'e'r'c'n'i' 's'i' 'r'e't'n'u'o'c' 'l'a'c'o'l' 'e'h't' ','e'u'l'a'v' 'r'e't'n'u'o'c' 'd'e'r'o't's' 'y'l'l'a'c'o'l' 'e'h't' 'n'a'h't' 'r'e'''' 't'a'e'r'g' 's'i' 't'a'h't' '$'c'$' 'e'u'l'a'v' 'r'e't'n'u'o'c' 'a' 'h't'i'w' 'n'o'i't'a'r'e'p'o' 'n'a' 's'e'v'i'e'c'e'r' 'r'e'e'p' 'a' 'f'I'''''''''''''''' 'n'e'h'W''''r'o'f' ''e'm''''''''''''''''''''''''''I' '.'e'g'a's's'e'm' 'e'h't' 'n'i' 'd'e'd'u'l'c'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i't' 't'r'o'p'm'a'L' 'e'h't' ','s'r'e'e'p' 'r'e'h't'o' 'o't' 't'n'e's' 's'i' 'n'o'i't'a'r'e'p'o' 'n'a' 'r'e'v'e'n'e'h'W'''''''''''''''''''''''''''''''''''''''''''''''''''r'e'h't'o' 'o't' 't'n'e's' 's'i' '$')'p' ','c'('$' 'r'i'a'p' 'e'h'T'''m''''' ''''''''''''''''''''''''''''''''''''''''''''''' 'n'a' 's'e'v'i'e'c'e'r' 'r'e'e'p' 'a''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'e'v'e'n'e'h'w' ','r'e'v'o'e'r'o'M' '.'n'o'i't'a'r'e'p'o' 'y'r'e'v'e' 'r'o'f' 'd'e't'n'e'm'e'r'c'n'i' 'd'n'a' 'e'd'o'n' 'h'c'a'e''''''s'''''i''' 't'i'd'e' 'e'h't' 'h'c'i'h'w' 'n'o' 'e'd'o'n' 'e'h't' 'f'o' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'e'h't' 's'i' '$'n'$' '''''''''''''''''''''''''''''''''''''''''' 'e'd'o'n' 't'a' 'd'e'r'o't's' 's'i' 't'a'h't' 'r'e't'n'u'o'c' 'a' 's'i' '$'c'$' 'e'r'e'h'w' '$')'n' ','c'''')'('$''''(' 'r'i'a'p' 'a' 's'i' 'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'A'n'n'''' '.'}'q'j'8'7'9'1':'t'r'o'p'm'a'L'{'e't'i'c''~'s'p'm'a't's'e'm'i't' 't'r'o'p'm'a'L' 'g'n'i's'u' 'n'o'i't'a'r'e'p'o' 't'i'd'e' 't'a'h't' 'r'o'f' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'a' 'e't'a'r'e'n'e'g' 'e'w' ','s'r'e'e'p' 'e'h't' 'f'o' 'e'n'o' 't'a' 'e'd'a'm' 's'i' 't'n'e'm'u'c'o'd' 'a' 'o't' 't'i'd'e' 'n'a' 'r'e'v'e'n'e'h'W''''''''''''''''''''''''''''''''''''' 'n'e'h't' 'n'a'c' 'e'W' '.')'y'e'k' 'c'i'l'b'u'p' 's't'i' 'f'o' 'h's'a'h' 'e'h't' ','e'l'p'm'a'x'e' 'r'o'f'(' 'r'e'i'f'i't'n'e'd'i' 'e'u'q'i'n'u' 'a' 's'a'h' 'r'e'e'p' 'h'c'a'e' 't'a'h't' 'e'm'u's's'a' 'e'W'n'n'o''''''''''''''''''''''''''''''''''''''n'}'s'n'o'i't'a'r'e'p'''''''''''''a'r'e'P'O' 't's'i'L' 'd'e'r'e'd'r'O'{'n'o'i't'c'e's'b'u''''b's''n''b'e'k'a'm'' ' 'n'%'{'r'e'd'l'o'h'e'c'a'l'p''d'n'a'm'm'o'c'w'e'n''n'e'd'o'm' 'h't'a'm' 'n'i' 's'k'r'o'w' 't'u'b' ',''c' 'r'e'd'l'o'''''''o'j'h'''' 'e'c'a'l'P'''''''''''''''''''''''e'c'a'p's'e'l'b'i's'i'v't'x'e't'' 'e'k'i'L' '%'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''D'''I'm'e't'I'''''''''''''''''('$''''''t's'i'l'''''' '''''''''f'o' 'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''f's''''''''''''''$'}'d'a'e'h'{'t'i'h't'a'm''$' 'e'u'l'a'v' 'e'l'g'n'i's' 'e'h't' 's'i' 'n'i'a'm'o'd' 'e's'o'h'w' 'n'o'i't'c'n'u'f' 'a''''''''''''''''''''''s'w'o'l'l'o'f' 's'a'''''''''''''''}'d'a'e'h'{'f's'h''''''''''''}'l'i'a't'{'f's''''''''''''''''''''''''',''''''''''''''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'g'i''&'l'a''''''''''''''''''''''''''''''''''''n'}'*'n'o'i't'a'u'q'e'{'n'i'''''g'e' '''='&''''&''b''''''''' '''$''''''' 'd'a'u'q''$'''''''''''''''''''''''''''''''''''''''''''''''''''q''''''''''''''''''''''''' ''''''';''''l''''''''''''''''''''' ' ' ''';''''''';''''''''''''''''''''''''' 'd'a'u'q''''n' '<' '}''';''d'i'{'t'i'h't'a'm'''''''''''''' '>' 'n' 'e'g'd'e'w'' '' 'n'''''''''''''''q'''''''''''''''''''''''''''''''''''''''''''''''';'''''''''A'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'}'d'i'{'t'i'h't'a'm''(''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('''''''''''&'n'''' ''''''''''''''''''''''''''''''''''''''''''''''''n''''d'a'u'q''''''''''''' '';''''''''''''''''''''''''''''d'n'e''''''''''''''''''''''''')'n' ','r'e'd'l'o'h'e'c'a'l'p''(' '='''''' ')'}'d'i'{'t'i'h't'a'm''('A' '}'f'i'{'t'x'e't'';'' ']','')'n' ','t'o'b''(' 'o't's'p'a'm'' '}'d'i'{'t'i'h't'a'm'',''['A' '''''''''''''''n'}'*''''&'n'g'i'l'a'{'n'i'g'e'b'''=' ')')''''''}'d'i'{'t'i'h't'a'm''{'}''''('e't'e'l'e'd'{'f's'h't'a'm''('}'y'l'p'p'a'{'m'r'h't'a'm'' '='&' '''A'n'}'*'n'g'i'l'a'{'n'i'g'e'b'''''''''''''g'e'b'e''n':'s'c'i't'n'a'm'e's' 'g'n'i'w'o'l'l'o'f' 'e'h't' 's'a'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''t' 'd'e'i'l'p'p'a' 's'i' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'e'h'W' '.'t's'i'l' 'e'h't' 'm'o'r'f' '$'}'d'i'{'t'i'h't'a'm''$' 'D'I' 'h't'i'w' 't'n'e'm'e'l'e' 'e'h't'''''''''''''''''''''''''' 'e't'e'l'e'd' 'o't' 'n'o'i't'c'u'r't's'n'i' 'n'a' 's'i' '$'}'e't'e'l'e'd'{'f's'h't'a'm''$''''' 'n'o'i't'a'r'e'p'o' 'e'h'T'n'n'.'w'o'l'e'b' 'y'l'l'a'm'r'o'f' 'd'e'v'o'r'p' 's'i' 'y't'r'e'p'o'r'p' 's'i'h'T' '.'t's'i'l' 'e'h't' 'f'o' 'n'o'i't'i's'o'p' 'e'm'a's' 'e'h't' 't'a' 'e'd'a'm' 's'n'o'i't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'c' 'g'n'i'r'e'd'r'o' 'y'l'l'a'c'i't's'i'n'i'm'r'e't'e'd' 'f'o' 't'c'e'f'f'e' 'e'h't' 's'a'h' 's'i'''''''''' 's'u'h'T' '.'d'e't'r'e's'n'i' 'g'n'i'e'b' 't'n'e'm'e'l'e' 'w'e'n' 'e'h't' 'f'o' 'D'I' 'e'h't' 'n'a'h't' 'r'e't'a'e'r'g'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'D'I' 'n'a' 'h't'i'w'''''''''''''''' 't'a'h't' 's't'n'e'm'e'l'e' 't's'i'l' 'r'e'v'o' 's'p'i'k's' 't's'r'i'f' 'n'o'i't'c'n'u'f' 'e'h't' 't'a'h't' 't'p'e'c'x'e'''''''''''''''''''''''''e'h't' 'h't'i'w' ','t's'i'l' 'd'e'k'n'i'l' 'a' 'o't'n'i' 't'n'e'm'e'l'e' 'n'a' 'g'n'i't'r'e's'n'i' 'e'k'i'l' 's'i' 'n'o'i't'a'r'e'p'o' '$'}'t'r'e's'n'i'{'f's'h't'a'm''$''''' 'n'a' 'g'n'i'y'l'p'p'a' ','y'l'l'a'm'r'o'f'n'i' 'd'e'n'i'a'l'p'x'E'n'n'';''''''''''''''''''''''''''''''''}'d'i'{'t'i'h't'a'm'' '<' 'n' 'e'g'd'e'w'' ')'n' ','p'_'v'(' '=' ')'}'v'e'r'p'{'t'i'h't'a'm''('A' '''''''''''''''''''''''''''''''''''''''',''''''''''''''''''''''' '''';'''''''''''''''''''''''''''''''''''''''n'g'i'l'a''' ''''' ''''' '''''n'''''''''''''''''''''''''''''''',''']'''''''''''''''''''}' 'f'i'{'t'x'e't''d'a'u'q'' '&' ')'n' ','v'(' 'o't's'p'a'm'' '}'d'i'{'t'i'h't'a'm'' ',')'}'d'i'{'t'i'h't'a'm'' ','p'_'v'(' 'o't's'p'a'm'' '}'''']'v'e'r'p'{'t'i'h't'a'm''['A'n''' ''''''''''''''''''''''''''''''n'}'*'n'o'i't'a'u'q'e'{'d'n'e''n''''''''''''''''''''''''''''''''''''')')'v' ','n' ','' '''}'''''''$'$'''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'n' ','r'e'd'l'o'h'e'c'a'l'p''(' '=' ')'}'v'e'r'p'{'t'i'h't'a'm''('A' 'd'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','A'('}'y'l'p'p'a'{'m'r'h't'a'm''''''''''''''''''''''''''''''''}'o'o'f' 'f'i'{'t'x'e't''d'a'u'q'' '&' 'a'n'''''''''''''}'s'e's'a'c'{'d'n'e''n'}'s'e's'a'c'{'n'i'g'e'b''n''' '''''''''''''''''''''''''''''''''''''''''''''''=' ')')'v' ','}'v'e'r'p'{'t'i'h't'a'm'' ','''' '}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm'' ','A'('}'y'l'p'p'a'{'m'r'h't'a'm'' '=' 'e'm'i'r'p''^'A'n''''''''''''''}''''&'*'n'g'i'l'a'{'d'n'e''n'}'*'''''''*'&'n'g'i'l'a'{'n'i'g'e'b''n':'s'w'o'l'l'o'f' 's'a' '$'e'm'i'r'p''^'A'$' 'e't'a't's' 't's'i'l' 'd'e'i'f'i'd'o'm' 'a' 's'e'c'u'd'o'r'p' 't'i' ','$'A'$' 'e't'a't's' 't's'i'l' 'e'h't''''''' 'a' 'o't' 'd'e'i'l'p'p'a' 's'i' 'n'o'i't'a'r'e'p'o' 'e'h't' 'n'e'h'W''''''''''''' 'e'h'T'n'n'.'n'o'i't'a'r'e'p'o' 's'i'h't' 'f'o' 'D'I' 'e'u'q'i'n'u' 'e'h't' 's'i' '$'}'d'i'{'t'i'h't'a'm''$' 'e'h'T' '.'$')'v' ','}'d'a'e'h'{'f's'h't'a'm'' ','}'d'i'{'t''''d'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''$' 's'a' 'd'e's's'e'r'p'x'e' 's'i' 't's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 't'a' 'n'o'i't'r'e's'n'i' 'n'A' '.'''''''(' '$'}'v'e'r'p'{'t'i'h't'a'm''$' 'D'I' 'h't'i'w' 't'n'e'm'e'l'e' 't's'i'l' 'g'n'i't's'i'x'e' 'e'h't' 'g'n'i'w'o'l'l'o'f' 'n'o'i't'i's'o'p' 'a' 't'a' 't's'i'l' 'a' 'o't'n'i' '$'v'$' 'e'u'l'a'v' 'e'h't' 't'r'e's'n'i' 'o't' 'n'o'i't'c'u'r't's'n'i' 'n'a' 's'i' '$')'v' ','''' '}'v'e'r'p'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('}'t'r'e's'n'i'{'f's'h't'a'm''$' 'n'o'i't'a'r'e'p'o' 'e'h'T''n'n''''''.'$')'c','b'('=')'a'('A'$' 't'a'h't' 't'p'e'c'x'e' ','$'A'$' 'o't' 'l'a'c'i't'n'e'd'i' 'n'o'i't'c'n'u'f' 'a' 'e't'o'n'e'd' 'o't' '$']'')'c' ','b'(' 'o't's'p'a'm'' 'a'[''A'$' 'n'o'i't'a't'o'n' 'e'h't' 'e's'u' 'e'W'''''''''''''}''''''''''''''''''''''''e'r'$'''''}'s''l'i'a't'{'f's'h'''''''''l'i'a't' 'd'n'''''''''''''''y'''''l'''''''''''s'e't'o'n'e'd''''''e'''''v'''''''''''''''''i'''''''''''''''''t'''''''''''''''''c'''''''''''''''''e'''''''''''''''''p'''''''''''''''''s'''''''''''''''''e'''''''''''''''''r''''''''''''''''' ''''''''''''''''''''''''''a''''''''''''''''' ''''''''''''''''''''''''''t'''''''''''''''''a'''''''''''''''''m''''''''''''''''''''$''''' '''''d'''''n'''''a''''' ''''''''d'''''a'''''e'''''h'''''{'''''f'''''s'''''h'''''t'''''a'''''m''''''''''''''''''''h'''''''''''''''''t'''''''''''a'''''m''''''''''''''''''''t'''''''''''''''''a'''''''''''m''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'''''t'''''s'''''p'''''a'''''m'''''''' '''''''''''i''''''''('''''''''''''''''a'''''''''''p''''' '''''a''''' '''''o'''''t''''' '''''$'''''''' '''''n'''''a''''' '''''m'''''o'''''r'''''f''''' '''''n'''''o'''''i'''''t'''''c'''''n'''''u'''''f''''' '''''l'''''a'''''i'''''t'''''''''''r'''''''''''''''''a'''''''''''''''''p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''~'s'T'D'R'C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '&''''s's'e'&''n't'c'e'r'r'o'c'''''''''''''''''''''''''''''r'e'&''d'l'o'h'e'c'a'l'p'''''''''''''''''''''''''''''''''''''&'&''''''''''''''''''''''''''''''''''''''''q't''''''''''''&'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'd'l'o'h'e'c'a'l'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''$'t'e's'y't'''''''''''''''''''''''''''''''''''''''''''' '$'$''''''''''''''''''''''''''''''''''''''$'$' '''''''''''''''''''''''''''''''''''''''''''''''*'''''''''''''''''''''''''''''''''''''''''''''''}')'v'h's'a'd'''''''''''''''''''''''''''''''''''''''''t'x'e't''''''''''d'a'u'q'''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''A' 'n'i'' ')'e'c'a'p's'e'l'b''''s'i's'i'v't'x'e't'' ','v'''''' ','}'d'i'{'d'i'h't'a'm''(' 'd'a'u'q'' '}'t'a'h't' 'h'c'u's'{'t'x'e't'' 'd'a'u'q'' 'n' '='&' ' ')'}'d'i'{'t'i'h't'a'm'' ','A'('}'l'a'v'{'m'r'h't'a'm''n''''''''''''''''''''''''n'g'i'l'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&'&''''''''''''''''''''''''''''''''''''''''''''''''n'g'i'l'a'''''''''''''''''''''t'''x'e't'''''''''''''''''''''''A' 'n'i'' ')'n' ','e'c'a'p's'e'l'b'i's'i'v'' ','}'d'i'{'t'i'h't'a'm''(' ';'' '}'t'a'h't' 'h'c'u's'{'m'r'h't'a'm'' 'd''''t'a'u'q'' 'n''''' '=' ')'}'d'i'{'t'i'h't'a'm'' ','A'('}'t'x'e'n'{'m'r'h't'a'm''n'''''''''''''''''}'*'y'a'r'r'a'n'q'e'{'d'n'e''n'}'*'y'a'r'r'a'n'q'e'{'n'i'g'e'b''n':'$'A'$' 'e't'a't's' 'e'h't' 'g'n'i's's'e'c'c'a' 'r'o'f' 's'n'o'i't'c'n'u'f' 'e'c'n'e''''c'i'n'e'v'n'o'c' 'e'm'o's' 'e'n'i'f'e'd''''t''''''''''''' 'n'a'c' 'e'W'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'u'l'a'v' 'a' 'f'o' 'e'c'n'e's'b'a''''b' 'e'h't' 's'i' '$'t'o'b''$' 'd'n'a' ','t's'i'l' 'e'h't' 'f'o' 'd'n'e' 'e'h't' 's'e't'a'c'i'd'n'i' '$'v'h's'a'd''$' ','t's'i'l' 'e'h't' 'f'o' 'd'a'e'h' 'e'h't' 'g'n'i't'o'n'e'd' 'D'I' 'l'a'i'c'e'p's' 'a' 's'i' '$'h's'a'd'v''$' 'e'r'e'h'w'n' ','t'o'b'' ','h's'a'd'v''('{' '=' 't'e's'y't'p'm'e''_'A'n''''''''''''''''}'n'o'i't'a'u'q'e'{'d'n'e''n'}'n'o'i't'a'u'q'e'{'n'i'g'e'b''n':'e'l'p'u't' 'e'l'g'n'i's' 'a' 'g'n'i'n'i'a't'n'o'c' 't'e's' 'a' 'y'b' 'd'e't'p'm'e''_'A'$' '''''''''''''n'e's'e'r'p'e'r' 's'i' 'y'a'r'r'a' 'y't'p'm'e' 'e'h'T' '.'$')'}'t'x'e'n'{'t'i'h't'a'm'' ','}'e'u'l'a'v'{'t'i'h't'a'm'' ','}'d'i'{'t'i'h't'a'm''('$''''(' 's'e'l'p'i'r't' 'f'o' 't'e's' 'a' 's'i' 'h'c'i'h'w' ','$'A'$' 'e't'a't's' 's't'i' 'f'o' 'y'p'o'c' 'a' 's'e'r'o't's' 'A'G'R' 'n'a' 'f'o' 'a'c'i'l'p'e'r' 'a' 's'n'i'a't'n'i'a'm' 't'a'h't' 'r'e'e'p' 'h'c'a'E'n'n'.'s'f'o'o'r'p' 'o't' 'e'l'b'a'n'e'm'a' 'e'r'o'm' 's'i' 'h'c'i'h'w' 'm'r'o'f' 'e'v'i't'a'n'r'e't'l'a' 'n'a' 'n'i' 'm'h't'i'r'o'g'l'a' 'e'h't' 't'n'e's'e'r'p' 'e'w' 'n'o'i't'c'e's' 's'i'h't' 'n'I' '.'}'w'd'1'1'0'2':'h'o'R'{'e't'i'c''~'e'd'o'c'o'd'u'e's'p' 'g'n'i's'u' ''.'l'a' 't'e' 'h'o'R' 'y'b' 'd'e'n'i'f'e'd' 'y'l'l'a'n'i'g'i'r'o' 's'a'w' 'e'p'y't'a't'a'd' ')'A'G'R'(' '}'y'a'r'r'A' 'e'l'b'a'w'o'r'G' 'd'e't'a'c'i'l'p'e'R'{'h'p'm'e''''''''''''''l'p'e'R' 'e'h'T'n'n'}'s'c'i't'n'a'm'e'S' 'l'a'n'o'i't'a'r'e'p'O'{'n'o'i't'c'e's''n''n','y'w'1'1'0'2':'o'r'i'p'a'h'S''''''''''''}'w'd'1'1'0'2':'h'o'R'{'e't'i'c''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''}'}'{'}'s'e'c'n'e'r'e'f'e'r'{'y'h'p'a'r'g'o'i'l'b'i'b''n'}'t'a'n'n'i'a'l'p'{'e'l'y't's'y'h'p'a'r'g'o'i'l'b'i'b''n'e'z'i's'e't'o'n't'o'o'f''{'n'''''''''''''''''n'}'t'n'e'm'u'c'o'd'{'d'n'e''n'n'n'}'n'o'i't'c'u'd'o'r't'n'I'{'n'o'i't'c'e's''n'n'}'t''''''''''}'t'g'c'a'r't's'b'A'{'*'n'o'i't'c'e's'b'u's''n'n'e'l't'i't'e'k'a'm''n'}'{'r'o'h't'u'a''n'}'g'n'i't'i'd'E' 't'n'e'm'u'c''''''''''''''''t'n'e'm'u'o'D' 'e'v'i't'a'r'o'b'a'l'l'o'C' 'r'o'f' 's'e'r'u't'c'u'r't'S' 'a't'a'D' 'g'n'i's'o'p'm'o'C'{'e'l't'i't''n'y'p'p'o'l's''n'}'t'n'e'm'u'c'o'd'{'n'i'g'e'b''n'n'g'n'i'c'a'p's'h'c'n'e'r'f''n'}'s'r'e't'-'n'e'c'-'a't'-'a'd' 'r'e't'-'n'e'c'-'a't''''d'-'''''''a't'a'd'{'n'o'i't'a'n'e'h'p'y'h''n'}'b''''t'i'b't'a'n'{']'t'r'o's','s'r'e'b'm'u'n'['e'g'a'k'c'a'p'e's'u''n'}'f'e'r'r'e'p'y'h'{'e'g'a'k'c'a'p'e's'u''n'}'i'o'd'{'e'g'a'k'c'a'p'e's'u''n'}'l'r'u'{']'s'n'e'h'p'y'h'['e'g'a'k'c'a'p'e's'u''n'h't'a'm' 'g'n'i'd'u'l'c'n'i' ','n'a'm'o'r' 's'e'm'i't' '%' '}'x'm't'p'h't'a'm'{'e'g'a'k'c'a'p'e's'u''n'}'c'n'e't'u'p'n'i'{']'8'f't'u'[''''{'e'g'a'k'c'a'p'e's'u''n'}'e'l'c'i't'r'a'{']'t'p'0'1','n'm'u'l'o'c'o'w't','r'e'p'a'p'4'a'['s's'a'l'c't'n'e'm'u'c'o'd'' \ No newline at end of file diff --git a/bench_rope b/bench_rope deleted file mode 100755 index f70b11e..0000000 Binary files a/bench_rope and /dev/null differ diff --git a/rust.sml b/rust.sml index ae49cf5..620338c 100644 --- a/rust.sml +++ b/rust.sml @@ -1,40173 +1,41081 @@ -val rust_arr = #[(0, 0, "'/// This is an implementation of a general purpose skip list. It was originallyn/// ported from a version of skiplists intended for efficient string handlingn/// found here - https://github.com/josephg/rustropenn/// This implementation is not optimized for strings (there's some stringn/// specific features like unicode handling which have been intentionallyn/// removed for simplicity). But it does have another somewhat unusual feature -n/// users can specify their own size function, and lookups, inserts and deletesn/// can use their custom length property to specify offsets.nn/// Unlike other rust rope implementations, this implementation should be veryn/// fast; but it manages that through heavy use of unsafe pointers and C-stylen/// dynamic arrays.nnuse std::{mem, ptr};nuse std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min;nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of items in each node. Must fit in a u8 thanks to Node.n// const NODE_NUM_ITEMS: usize = 100;nconst NODE_NUM_ITEMS: usize = 100;nn/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the contents are smaller.nconst MAX_HEIGHT: usize = 20;nnconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.nn/// The whole list is configured through a single generic trait parameternpub trait ListConfig {n type Item: Default + Copy;nn /// Applications which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_item: &Self::Item) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n })n }nn fn split_item(_item: Self::Item) -> (Self::Item, Self::Item) {n unimplemented!('Cannot insert in the middle of an item - split_item is not defined in trait');n }nn // type RngType: rand::RngCore = rand::rngs::SmallRng;n // fn get_rng() -> Self::RngType {n // use rand::SeedableRng;n // // rand::rngs::SmallRng::from_seed(SeedableRng::seed_from_u64(10))n // rand::rngs::SmallRng::from_entropy()n // }n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEntry {n fn clone(&self) -> Self { *self }n}nnimpl SkipEntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on a node's height. Thisn/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but In/// could be wrong here. You probably wouldn't lose much performance in practicen/// by replacing the inline structure with a smallvec - but that would wasten/// memory in small nodes, and require extra pointer indirection on large nodes.n/// It also wouldn't remove all the unsafe here.n///n/// A different representation (which might be better or worse - I can't tell)n/// would be to have the nodes all be the same size in memory and change then/// *proportion* of the node's memory that is used by the string field vs then/// next pointers. That might be lighter weight for the allocator because then/// struct itself would be a fixed size; but I'm not sure if it would be better.n#[repr(C)] // Prevent parameter reordering.nstruct Node {n /// We start with the items themselves. Only the first `num_items` of thisn /// list is in use. The user specified length of the items in the node isn /// stored in nexts[0].skip_items. This is initialized withn /// Default::default() for the type, but when MaybeUninit completely lands,n /// it will be possible to make this a tiny bit faster by leaving the listn /// initially uninitialized.n items: [C::Item; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn // #[repr(align(std::align_of::()))]n n /// In reality this array has the size of height, allocated using more orn /// less direct calls to malloc() at runtime based on the randomly generatedn /// size. The size is always at least 1.n nexts: [SkipEntry; 0],n}nn// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)n// This test will fail if this ever stops being true.n#[test]nfn test_align() {n struct TestConfig;n impl ListConfig for TestConfig {n type Item = u8;n fn get_usersize(_item: &Self::Item) -> usize { 1 }n }n #[repr(C)] struct Check([SkipEntry; 0]);n assert!(mem::align_of::() >= mem::align_of::>());n // TODO: It'd be good to also check the alignment of the nexts field in Node.n}nnfn random_height(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and then iterators will be able to outlast a move of then // skiplist parent). But its also very nice having the code run fast forn // small lists. Most lists are small, and it makes sense to optimize forn // that.nn // TODO: For safety, pointers in to this structure should be Pin<> if wen // ever want to hold on to iterators.nn /// The total number of items in the skip list. This is not used internally -n /// just here for bookkeeping.n num_items: usize,n /// Size of the list in user specified units.n num_usercount: usize,nn /// The RNG we use to generate node heights. Specifying it explicitly allowsn /// unit tests and randomizer runs to be predictable, which is very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: SmallRng,nn /// The first node is inline. The height is 1 more than the max height we'ven /// ever used. The highest next entry points to {null, total usersize}.n head: Node,nn /// This is so dirty. The first node is embedded in SkipList; but we need ton /// allocate enough room for height to get arbitrarily large. I could insistn /// on SkipList always getting allocated on the heap, but for small lists itsn /// much better to be on the stack.n ///n /// So this struct is repr(C) and I'm just padding out the struct directly.n /// All accesses should go through head because otherwise I think we violaten /// aliasing rules.n _nexts_padding: [SkipEntry; MAX_HEIGHT],n}nnnnimpl Node {n // Do I need to be explicit about the lifetime of the references being tiedn // to the lifetime of the node?n fn nexts(&self) -> &[SkipEntry] {n unsafe {n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)n }n }nn fn layout_with_height(height: u8) -> Layout {n Layout::from_size_align(n mem::size_of::>() + mem::size_of::>() * (height as usize),n mem::align_of::>()).unwrap()n }nn fn alloc_with_height(height: u8) -> *mut Node {n assert!(height >= 1 && height <= MAX_HEIGHT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut Node;n (*node) = Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: height,n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node {n Self::alloc_with_height(random_height(rng))n }nn unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n &self.items[..self.num_items as usize]n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }nn /// I dunno where this logic should live, but we want to get the index ofn /// the item at the specified offset into the node (and the offset into then /// item).n /// n /// If the offset lands between items, we could return either the previous or next item.n /// n /// Returns (index, item_offset).n fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {n if usersize_offset == 0 { return (0, 0); }nn for (i, item) in self.content_slice().iter().enumerate() {n let usersize = C::get_usersize(item);n if usersize > usersize_offset {n return (i, usersize_offset);n } else if usersize == usersize_offset {n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }n } else {n usersize_offset -= usersize;n }n }n panic!('Could not find requested offset within the node');n }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone, Debug)]nstruct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nn // This isn't strictly necessary. Earlier versions tacked this on to then // last item in entries... I'm still not sure the cleanest way to do this.n userpos: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;nn nextn }n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userpos { return false; }n for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: SmallRng::seed_from_u64(123),n head: Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: 1, // Stores max height of list nodesn nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn new_from_slice(s: &[C::Item]) -> Self {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut iter = [SkipEntry {n // Bleh.n node: &self.head as *const Node as *mut Node,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for n in self.iter() {n // println!('visiting {:?}', n.as_str());n assert!((n as *const Node == &self.head as *const Node) || n.num_items > 0);n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(&n.items[0..n.num_items as usize]);n assert_eq!(local_count, n.get_userlen());nn // assert_eq!(n.as_str().chars().count(), n.num_chars());n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const Node, n as *const Node);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor is a list of nodes which point past then /// specified position, as well as offsets of how far into their charactern /// lists the specified characters are.n /// n /// Note this does not calculate the index and offset in the current node.n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> Cursor {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());n cursorn }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize) {n // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(contents.len() <= NODE_NUM_ITEMS);nn let new_node = Node::alloc(&mut self.rng);n (*new_node).num_items = contents.len() as u8;n (*new_node).items[..contents.len()].copy_from_slice(contents);n let new_height = (*new_node).height;nn let mut head_height = self.head.height as usize;n let new_height_usize = new_height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = (*new_node).nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n cursor.entries[i] = SkipEntry {n node: new_node,n skip_usersize: new_userlenn };n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n cursor.entries[i].skip_usersize += new_userlen;n }nn self.num_items += contents.len();n self.num_usercount += new_userlen;n cursor.userpos += new_userlen;n }nn unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, contents: &[C::Item]) {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();n // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(item_idx <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n let num_inserted_usercount = C::userlen_of_slice(contents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && item_idx == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n item_idx = 0;n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n c[..].copy_within(item_idx..e_num_items,n item_idx + num_inserted_items);n }nn // Then copy in the new itemsn c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // TODO: For consistency we might want to think about updating then // iterator here.n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node. That optimization hasn't beenn // added.n n for chunk in contents.chunks(NODE_NUM_ITEMS) {n let userlen = C::userlen_of_slice(chunk);n self.insert_node_at(cursor, chunk, userlen);n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n self.insert_node_at(cursor, end_items, end_usercount);n }n }n }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);n if trailing_items > 0 {n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn for i in 0..(*e).height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;n }n }nn pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // For validation. This is where the cursor should end up.n // let expected_final_position = start_userpos + inserted_content.len() - removed_items;nn start_userpos = min(start_userpos, self.get_userlen());nn let mut cursor = self.iter_at_userpos(start_userpos);n let (mut index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn // Replace as many items from removed_items as we can with inserted_content.n unsafe {n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n let mut e = cursor.here_ptr();n if index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n index = 0;n }nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let old_items = &mut (*e).items[index..index + replaced_items_here];n let new_items = &inserted_content[0..replaced_items_here];nn // Replace the items themselves.n old_items.copy_from_slice(new_items);nn // And bookkeeping. Bookkeeping forever.n let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;n if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }nn inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(&mut cursor, index, inserted_content);n } else if removed_items > 0 {n self.del_at_iter(&mut cursor, index, removed_items);n }n }nn // TODO: Assert that the iterator is after replaced content.n // #[cfg(debug_assertions)] {n // let c2 = self.iter_at_userpos(expected_final_position);n // if &cursor != &c2 { panic!('Invalid cursor after replace'); }n // }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let mut cursor = self.iter_at_userpos(userpos);n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');n unsafe { self.insert_at_iter(&mut cursor, index, contents); }nn #[cfg(debug_assertions)] {n let c2 = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));n if &cursor != &c2 { panic!('Invalid cursor after insert'); }n }n // TODO: Assert that the iterator now points after removed content.n }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let mut cursor = self.iter_at_userpos(userpos);n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, index, num_items); }n // TODO: Assert that the iterator remains where it was.n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nnimpl From> for SkipList {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList {n fn into(self) -> Vec {n let mut content = Vec::with_capacity(self.num_items);nn for node in self.iter() {n content.extend(node.content_slice().iter());n }nn contentn }n}nnimpl SkipList where C::Item: std::fmt::Debug {n // TODO: Don't export this.n pub fn print(&self) {n println!('items: {}tuserlen: {}, height: {}', self.num_items, self.get_userlen(), self.head.height);nn print!('HEAD:');n for s in self.head.nexts() {n print!(' |{} ', s.skip_usersize);n }n println!('');nn for (i, node) in self.iter().enumerate() {n print!('{}:', i);n for s in node.nexts() {n print!(' |{} ', s.skip_usersize);n }n println!(' : {:?}', node.content_slice());n }n }n}nn// impl usize> PartialEq for SkipList {n// // This is quite complicated. It would be cleaner to just write a bytesn// // iterator, then iterate over the bytes of both strings comparing along then// // way.n// // However, this should be faster because it can memcmp().nn// // Another way to implement this would be to rewrite it as a comparison withn// // an iterator over &str. Then the rope vs rope comparison would be trivial,n// // but also we could add comparison functions with a single &str and stuffn// // very easily.n// fn eq(&self, other: &SkipList) -> bool {n// if self.num_items != other.num_itemsn// || self.num_chars() != other.num_chars() {n// return falsen// }nn// let mut other_iter = other.iter().map(|n| { n.as_str() });nn// let mut os = other_iter.next();n// let mut opos: usize = 0; // Byte offset in os.n// for n in self.iter() {n// let s = n.as_str();n// let mut pos: usize = 0; // Current byte offset in sn// debug_assert_eq!(s.len(), n.num_bytes as usize);nn// // Walk s.len() bytes through the other ropen// while pos < n.num_bytes as usize {n// if let Some(oss) = os {n// let amt = min(s.len() - pos, oss.len() - opos);n// // println!('iter slen {} pos {} osslen {} amt {}', s.len(), pos, oss.len(), amt);nn// if &s[pos..pos+amt] != &oss[opos..opos+amt] {n// return falsen// }nn// pos += amt;n// opos += amt;n// debug_assert!(opos <= oss.len());nn// if opos == oss.len() {n// os = other_iter.next();n// opos = 0;n// }n// } else {n// panic!('Internal string length does not match');n// }n// }n// }nn// truen// }n// }n// impl usize> Eq for SkipList {}nn// impl Clone for SkipList where F: Fn(&T) -> usize {n// fn clone(&self) -> Self {n// let mut r = SkipList::new(self.get_usersize);n// r.num_items = self.num_items;n// let head_str = self.head.as_str();n// r.head.items[..head_str.len()].copy_from_slice(head_str.as_bytes());n// r.head.num_bytes = self.head.num_bytes;n// r.head.height = self.head.height;n n// {n// // I could just edit the overflow memory directly, but this is safern// // because of aliasing rules.n// let head_nexts = r.head.nexts_mut();n// for i in 0..self.head.height as usize {n// head_nexts[i].skip_items = self.nexts[i].skip_items;n// }n// }nn// let mut nodes = [&mut r.head as *mut Node; MAX_HEIGHT];nn// // The first node the iterator will return is the head. Ignore it.n// let mut iter = self.iter();n// iter.next();n// for other in iter {n// // This also sets height.n// let height = other.height;n// let node = Node::alloc_with_height(height);n// unsafe {n// (*node).num_bytes = other.num_bytes;n// let len = other.num_bytes as usize;n// (*node).items[..len].copy_from_slice(&other.items[..len]);nn// let other_nexts = other.nexts();n// let nexts = (*node).nexts_mut();n// for i in 0..height as usize {n// nexts[i].skip_items = other_nexts[i].skip_items;n// (*nodes[i]).nexts_mut()[i].node = node;n// nodes[i] = node;n// }n// }n// }nn// rn// }n// }n'"), -(25738, 108, "''"), -(25738, 0, "'n '"), -(25747, 4, "''"), -(25743, 4, "''"), -(25739, 4, "''"), -(25738, 1, "''"), -(25737, 1, "''"), -(25737, 0, "'n '"), -(25750, 0, "'/'"), -(25751, 0, "'/'"), -(25752, 0, "' '"), -(25753, 0, "'T'"), -(25754, 0, "'h'"), -(25755, 0, "'i'"), -(25756, 0, "'s'"), -(25757, 0, "' '"), -(25758, 0, "'i'"), -(25759, 0, "'s'"), -(25760, 0, "' '"), -(25761, 0, "'s'"), -(25762, 0, "'u'"), -(25762, 1, "''"), -(25761, 1, "''"), -(25761, 0, "'u'"), -(25762, 0, "'s'"), -(25763, 0, "'u'"), -(25764, 0, "'a'"), -(25765, 0, "'l'"), -(25766, 0, "'l'"), -(25767, 0, "'y'"), -(25768, 0, "' '"), -(25769, 0, "'n'"), -(25770, 0, "'o'"), -(25771, 0, "'t'"), -(25772, 0, "' '"), -(25773, 0, "'n'"), -(25774, 0, "'e'"), -(25775, 0, "'e'"), -(25776, 0, "'d'"), -(25777, 0, "'e'"), -(25778, 0, "'d'"), -(25779, 0, "','"), -(25780, 0, "' '"), -(25781, 0, "'s'"), -(25782, 0, "'o'"), -(25783, 0, "' '"), -(25784, 0, "'i'"), -(25785, 0, "'t'"), -(25786, 0, "' '"), -(25787, 0, "'f'"), -(25788, 0, "'e'"), -(25789, 0, "'e'"), -(25790, 0, "'l'"), -(25791, 0, "'s'"), -(25792, 0, "' '"), -(25793, 0, "'l'"), -(25794, 0, "'i'"), -(25795, 0, "'k'"), -(25796, 0, "'e'"), -(25797, 0, "' '"), -(25798, 0, "'a'"), -(25799, 0, "' '"), -(25800, 0, "'b'"), -(25801, 0, "'i'"), -(25802, 0, "'t'"), -(25803, 0, "' '"), -(25804, 0, "'o'"), -(25805, 0, "'f'"), -(25806, 0, "' '"), -(25807, 0, "'a'"), -(25808, 0, "' '"), -(25809, 0, "'w'"), -(25810, 0, "'a'"), -(25811, 0, "'s'"), -(25812, 0, "'t'"), -(25813, 0, "'e'"), -(25814, 0, "' '"), -(25815, 0, "'o'"), -(25816, 0, "'f'"), -(25817, 0, "' '"), -(25818, 0, "'C'"), -(25819, 0, "'P'"), -(25820, 0, "'U'"), -(25821, 0, "' '"), -(25822, 0, "'a'"), -(25823, 0, "'n'"), -(25824, 0, "'d'"), -(25825, 0, "' '"), -(25826, 0, "'c'"), -(25827, 0, "'o'"), -(25828, 0, "'m'"), -(25829, 0, "'p'"), -(25830, 0, "'l'"), -(25831, 0, "'e'"), -(25832, 0, "'x'"), -(25833, 0, "'i'"), -(25821, 13, "','"), -(25822, 0, "' '"), -(25823, 0, "'b'"), -(25824, 0, "'u'"), -(25753, 72, "'U'"), -(25754, 0, "'p'"), -(25755, 0, "'d'"), -(25756, 0, "'a'"), -(25757, 0, "'t'"), -(25758, 0, "'i'"), -(25759, 0, "'n'"), -(25760, 0, "'g'"), -(25761, 0, "' '"), -(25762, 0, "'t'"), -(25763, 0, "'h'"), -(25764, 0, "'e'"), -(25765, 0, "' '"), -(25766, 0, "'c'"), -(25767, 0, "'u'"), -(25768, 0, "'r'"), -(25769, 0, "'s'"), -(25770, 0, "'o'"), -(25771, 0, "'r'"), -(25772, 0, "' '"), -(25773, 0, "'a'"), -(25774, 0, "'f'"), -(25775, 0, "'t'"), -(25776, 0, "'e'"), -(25777, 0, "'r'"), -(25778, 0, "' '"), -(25779, 0, "'t'"), -(25780, 0, "'h'"), -(25781, 0, "'e'"), -(25782, 0, "' '"), -(25783, 0, "'o'"), -(25784, 0, "'p'"), -(25785, 0, "'e'"), -(25786, 0, "'r'"), -(25787, 0, "'a'"), -(25788, 0, "'t'"), -(25789, 0, "'i'"), -(25790, 0, "'o'"), -(25791, 0, "'n'"), -(25792, 0, "' '"), -(25793, 0, "'d'"), -(25793, 1, "''"), -(25793, 0, "'f'"), -(25794, 0, "'e'"), -(25795, 0, "'e'"), -(25796, 0, "'l'"), -(25797, 0, "'s'"), -(25798, 0, "' '"), -(25799, 0, "'a'"), -(25800, 0, "' '"), -(25801, 0, "'b'"), -(25802, 0, "'i'"), -(25803, 0, "'t'"), -(25804, 0, "' '"), -(25805, 0, "'e'"), -(25806, 0, "'x'"), -(25807, 0, "'c'"), -(25808, 0, "'e'"), -(25809, 0, "'s'"), -(25810, 0, "'s'"), -(25811, 0, "'i'"), -(25812, 0, "'v'"), -(25813, 0, "'e'"), -(25814, 0, "','"), -(25815, 0, "' '"), -(25816, 0, "'b'"), -(25817, 0, "'u'"), -(25818, 0, "'t'"), -(25819, 0, "' '"), -(25820, 0, "'i'"), -(25821, 0, "'t'"), -(25822, 0, "'s'"), -(25823, 0, "' '"), -(25824, 0, "'i'"), -(25825, 0, "'m'"), -(25826, 0, "'p'"), -(25827, 0, "'o'"), -(25828, 0, "'r'"), -(25829, 0, "'t'"), -(25830, 0, "'a'"), -(25831, 0, "'n'"), -(25832, 0, "'t'"), -(25833, 0, "' '"), -(25752, 82, "' '"), -(25753, 0, "'U'"), -(25754, 0, "'s'"), -(25755, 0, "'u'"), -(25756, 0, "'a'"), -(25757, 0, "'l'"), -(25758, 0, "'l'"), -(25759, 0, "'y'"), -(25760, 0, "' '"), -(25761, 0, "'t'"), -(25762, 0, "'h'"), -(25763, 0, "'e'"), -(25764, 0, "' '"), -(25765, 0, "'c'"), -(25766, 0, "'u'"), -(25767, 0, "'r'"), -(25768, 0, "'s'"), -(25769, 0, "'o'"), -(25770, 0, "'r'"), -(25771, 0, "' '"), -(25772, 0, "'w'"), -(25773, 0, "'i'"), -(25774, 0, "'l'"), -(25775, 0, "'l'"), -(25776, 0, "' '"), -(25777, 0, "'b'"), -(25778, 0, "'e'"), -(25779, 0, "' '"), -(25780, 0, "'d'"), -(25781, 0, "'i'"), -(25782, 0, "'s'"), -(25783, 0, "'c'"), -(25784, 0, "'a'"), -(25785, 0, "'r'"), -(25786, 0, "'d'"), -(25787, 0, "'e'"), -(25788, 0, "'d'"), -(25789, 0, "' '"), -(25790, 0, "'a'"), -(25791, 0, "'f'"), -(25792, 0, "'t'"), -(25793, 0, "'e'"), -(25794, 0, "'r'"), -(25795, 0, "' '"), -(25796, 0, "'o'"), -(25797, 0, "'n'"), -(25798, 0, "'e'"), -(25799, 0, "' '"), -(25800, 0, "'c'"), -(25801, 0, "'h'"), -(25802, 0, "'a'"), -(25803, 0, "'n'"), -(25804, 0, "'g'"), -(25805, 0, "'e'"), -(25806, 0, "','"), -(25807, 0, "' '"), -(25808, 0, "'b'"), -(25809, 0, "'u'"), -(25810, 0, "'t'"), -(25811, 0, "' '"), -(25812, 0, "'f'"), -(25813, 0, "'o'"), -(25814, 0, "'r'"), -(25815, 0, "' '"), -(25816, 0, "'c'"), -(25817, 0, "'o'"), -(25818, 0, "'m'"), -(25819, 0, "'p'"), -(25820, 0, "'o'"), -(25821, 0, "'u'"), -(25822, 0, "'n'"), -(25823, 0, "'d'"), -(25824, 0, "' '"), -(25825, 0, "'e'"), -(25826, 0, "'d'"), -(25827, 0, "'i'"), -(25828, 0, "'t'"), -(25829, 0, "'s'"), -(25830, 0, "' '"), -(25831, 0, "'i'"), -(25832, 0, "'t'"), -(25833, 0, "'s'"), -(25834, 0, "' '"), -(25835, 0, "'i'"), -(25836, 0, "'m'"), -(25837, 0, "'p'"), -(25838, 0, "'o'"), -(25839, 0, "'r'"), -(25840, 0, "'t'"), -(25841, 0, "'a'"), -(25842, 0, "'n'"), -(25843, 0, "'t'"), -(25844, 0, "' '"), -(25845, 0, "'t'"), -(25846, 0, "'h'"), -(25847, 0, "'e'"), -(25848, 0, "' '"), -(25849, 0, "'p'"), -(25850, 0, "'a'"), -(25851, 0, "'s'"), -(25852, 0, "'s'"), -(25853, 0, "'e'"), -(25854, 0, "'d'"), -(25855, 0, "' '"), -(25856, 0, "'c'"), -(25857, 0, "'u'"), -(25858, 0, "'r'"), -(25859, 0, "'s'"), -(25860, 0, "'o'"), -(25861, 0, "'r'"), -(25812, 50, "'f'"), -(25813, 0, "'o'"), -(25814, 0, "'r'"), -(25815, 0, "' '"), -(25816, 0, "'c'"), -(25817, 0, "'o'"), -(25818, 0, "'n'"), -(25819, 0, "'s'"), -(25820, 0, "'i'"), -(25821, 0, "'s'"), -(25822, 0, "'t'"), -(25823, 0, "'e'"), -(25824, 0, "'n'"), -(25825, 0, "'c'"), -(25826, 0, "'y'"), -(25827, 0, "' '"), -(25828, 0, "'o'"), -(25829, 0, "'f'"), -(25830, 0, "' '"), -(25831, 0, "'c'"), -(25832, 0, "'o'"), -(25833, 0, "'m'"), -(25834, 0, "'p'"), -(25835, 0, "'o'"), -(25836, 0, "'u'"), -(25837, 0, "'n'"), -(25838, 0, "'d'"), -(25839, 0, "' '"), -(25840, 0, "'e'"), -(25841, 0, "'d'"), -(25842, 0, "'i'"), -(25843, 0, "'r'"), -(25844, 0, "'s'"), -(25845, 0, "' '"), -(25845, 1, "''"), -(25844, 1, "''"), -(25843, 1, "''"), -(25843, 0, "'t'"), -(25844, 0, "'s'"), -(25845, 0, "' '"), -(25846, 0, "'w'"), -(25847, 0, "'e'"), -(25848, 0, "' '"), -(25848, 1, "''"), -(25848, 0, "' '"), -(25849, 0, "'k'"), -(25850, 0, "'e'"), -(25851, 0, "'e'"), -(25852, 0, "'p'"), -(25853, 0, "' '"), -(25854, 0, "'t'"), -(25855, 0, "'h'"), -(25856, 0, "'e'"), -(25857, 0, "' '"), -(25858, 0, "'c'"), -(25859, 0, "'u'"), -(25860, 0, "'r'"), -(25861, 0, "'s'"), -(25862, 0, "'o'"), -(25846, 17, "'w'"), -(25847, 0, "'e'"), -(25848, 0, "'''"), -(25849, 0, "'l'"), -(25850, 0, "'l'"), -(25851, 0, "' '"), -(25852, 0, "'u'"), -(25853, 0, "'p'"), -(25854, 0, "'d'"), -(25855, 0, "'a'"), -(25856, 0, "'t'"), -(25857, 0, "'e'"), -(25858, 0, "' '"), -(25859, 0, "'t'"), -(25860, 0, "'h'"), -(25861, 0, "'e'"), -(25862, 0, "' '"), -(25863, 0, "'c'"), -(25864, 0, "'u'"), -(25865, 0, "'r'"), -(25866, 0, "'s'"), -(25867, 0, "'o'"), -(25868, 0, "'r'"), -(25869, 0, "' '"), -(25870, 0, "'t'"), -(25871, 0, "'o'"), -(25872, 0, "' '"), -(25873, 0, "'p'"), -(25874, 0, "'o'"), -(25875, 0, "'i'"), -(25876, 0, "'n'"), -(25877, 0, "'t'"), -(25878, 0, "' '"), -(25879, 0, "'t'"), -(25880, 0, "'o'"), -(25881, 0, "'t'"), -(25882, 0, "' '"), -(25882, 1, "''"), -(25881, 1, "''"), -(25881, 0, "' '"), -(25882, 0, "'t'"), -(25883, 0, "'h'"), -(25884, 0, "'e'"), -(25885, 0, "' '"), -(25886, 0, "'e'"), -(25887, 0, "'n'"), -(25888, 0, "'d'"), -(25889, 0, "' '"), -(25890, 0, "'o'"), -(25891, 0, "'f'"), -(25892, 0, "' '"), -(25893, 0, "'t'"), -(25894, 0, "'h'"), -(25895, 0, "'e'"), -(25896, 0, "' '"), -(25897, 0, "'n'"), -(25898, 0, "'o'"), -(25899, 0, "'e'"), -(25899, 1, "''"), -(25898, 1, "''"), -(25898, 0, "'e'"), -(25899, 0, "'w'"), -(25900, 0, "' '"), -(25901, 0, "'c'"), -(25902, 0, "'o'"), -(25903, 0, "'n'"), -(25904, 0, "'t'"), -(25905, 0, "'e'"), -(25906, 0, "'n'"), -(25907, 0, "'t'"), -(25908, 0, "'.'"), -(25738, 171, "' // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.'"), -(25939, 0, "'n '"), -(25952, 0, "'c'"), -(25953, 0, "'u'"), -(25954, 0, "'r'"), -(25955, 0, "'s'"), -(25956, 0, "'o'"), -(25957, 0, "'r'"), -(25958, 0, "'.'"), -(25952, 7, "''"), -(25952, 0, "'c'"), -(25953, 0, "'u'"), -(25954, 0, "'r'"), -(25955, 0, "'s'"), -(25956, 0, "'o'"), -(25957, 0, "'r'"), -(25958, 0, "'.'"), -(25959, 0, "'userpos'"), -(25966, 0, "' '"), -(25967, 0, "'+'"), -(25968, 0, "'='"), -(25969, 0, "' '"), -(25970, 0, "'n'"), -(25971, 0, "'u'"), -(25972, 0, "'m'"), -(25973, 0, "'_'"), -(25970, 4, "'num_inserted_usercount'"), -(25992, 0, "';'"), -(25939, 0, "'n '"), -(25952, 0, "'f'"), -(25953, 0, "'o'"), -(25954, 0, "'r'"), -(25955, 0, "' '"), -(25956, 0, "'_'"), -(25957, 0, "' '"), -(25958, 0, "'i'"), -(25959, 0, "'n'"), -(25960, 0, "' '"), -(25956, 5, "'e'"), -(25957, 0, "'n'"), -(25958, 0, "'t'"), -(25959, 0, "'r'"), -(25960, 0, "'y'"), -(25956, 0, "'&'"), -(25957, 0, "'m'"), -(25958, 0, "'u'"), -(25959, 0, "'t'"), -(25960, 0, "' '"), -(25966, 0, "' '"), -(25967, 0, "'i'"), -(25968, 0, "'n'"), -(25969, 0, "' '"), -(25970, 0, "'c'"), -(25971, 0, "'u'"), -(25972, 0, "'r'"), -(25973, 0, "'s'"), -(25974, 0, "'o'"), -(25975, 0, "'r'"), -(25976, 0, "'.'"), -(25977, 0, "'entries'"), -(25984, 0, "' '"), -(25985, 0, "'{'"), -(25986, 0, "'n '"), -(26003, 0, "'n '"), -(25987, 16, "''"), -(25988, 16, "' }'"), -(25984, 0, "'['"), -(25985, 0, "'0'"), -(25986, 0, "'.'"), -(25987, 0, "'.'"), -(25988, 0, "'s'"), -(25989, 0, "'e'"), -(25990, 0, "'l'"), -(25991, 0, "'f'"), -(25992, 0, "'.'"), -(25993, 0, "'h'"), -(25994, 0, "'e'"), -(25994, 1, "''"), -(25993, 1, "''"), -(25993, 0, "'h'"), -(25994, 0, "'e'"), -(25995, 0, "'a'"), -(25996, 0, "'d'"), -(25997, 0, "'.'"), -(25998, 0, "'h'"), -(25999, 0, "'e'"), -(26000, 0, "'i'"), -(26001, 0, "'g'"), -(26002, 0, "'h'"), -(26003, 0, "'t'"), -(26004, 0, "' '"), -(26005, 0, "'a'"), -(26006, 0, "'s'"), -(26007, 0, "' '"), -(26008, 0, "'u'"), -(26009, 0, "'s'"), -(26010, 0, "'i'"), -(26011, 0, "'z'"), -(26012, 0, "'e'"), -(26013, 0, "')'"), -(26013, 1, "''"), -(26013, 0, "']'"), -(26017, 0, "' '"), -(26017, 16, "''"), -(26014, 0, "'.'"), -(26015, 0, "'i'"), -(26016, 0, "'t'"), -(26017, 0, "'e'"), -(26018, 0, "'r'"), -(26019, 0, "'('"), -(26020, 0, "')'"), -(26019, 0, "'_'"), -(26020, 0, "'m'"), -(26021, 0, "'u'"), -(26022, 0, "'t'"), -(26028, 0, "' '"), -(26044, 0, "'e'"), -(26045, 0, "'n'"), -(26046, 0, "'t'"), -(26047, 0, "'r'"), -(26048, 0, "'y'"), -(26049, 0, "'.'"), -(26050, 0, "'s'"), -(26051, 0, "'k'"), -(26052, 0, "'i'"), -(26053, 0, "'p'"), -(26054, 0, "'_'"), -(26055, 0, "'u'"), -(26050, 6, "'skip_usersize'"), -(26063, 0, "' '"), -(26064, 0, "'+'"), -(26065, 0, "'='"), -(26066, 0, "' '"), -(26067, 0, "'num_inserted_usercount'"), -(26089, 0, "';'"), -(25956, 5, "''"), -(1150, 3, "'1'"), -(1449, 2, "'1'"), -(1150, 1, "''"), -(1150, 0, "'2'"), -(20926, 0, "','"), -(20927, 0, "' '"), -(20928, 0, "'m'"), -(20929, 0, "'o'"), -(20930, 0, "'v'"), -(20931, 0, "'e'"), -(20932, 0, "'_'"), -(20933, 0, "'c'"), -(20934, 0, "'u'"), -(20935, 0, "'r'"), -(20936, 0, "'s'"), -(20937, 0, "'o'"), -(20938, 0, "'r'"), -(20939, 0, "':'"), -(20940, 0, "' '"), -(20941, 0, "'b'"), -(20942, 0, "'o'"), -(20943, 0, "'o'"), -(20944, 0, "'l'"), -(20941, 4, "'bool'"), -(22884, 0, "'n '"), -(22897, 0, "'f'"), -(22897, 1, "''"), -(22897, 0, "'i'"), -(22898, 0, "'f'"), -(22899, 0, "' '"), -(22900, 0, "'m'"), -(22901, 0, "'o'"), -(22902, 0, "'v'"), -(22903, 0, "'e'"), -(22904, 0, "'_'"), -(22900, 5, "'move_cursor'"), -(22911, 0, "' '"), -(22912, 0, "'{'"), -(23033, 12, "' '"), -(22990, 16, "' '"), -(22958, 16, "' '"), -(22914, 12, "' '"), -(23063, 0, "'n '"), -(23064, 16, "' }'"), -(23088, 0, "'n '"), -(23097, 0, "'i'"), -(23098, 0, "'f'"), -(23099, 0, "' '"), -(23100, 0, "'m'"), -(23101, 0, "'o'"), -(23102, 0, "'v'"), -(23103, 0, "'e'"), -(23100, 4, "'move_cursor'"), -(23111, 0, "' '"), -(23112, 0, "'{'"), -(23306, 8, "' '"), -(23246, 12, "' '"), -(23163, 12, "' '"), -(23114, 8, "' '"), -(23331, 0, "'n '"), -(23332, 12, "' }'"), -(23113, 53, "''"), -(23089, 8, "' '"), -(23089, 0, "' for i in new_height_usize..head_height {n'"), -(23166, 87, "''"), -(23138, 12, "' '"), -(23138, 0, "' (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n'"), -(23341, 0, "'n }'"), -(23332, 8, "' '"), -(23318, 14, "''"), -(23221, 16, "' '"), -(23328, 12, "' '"), -(28502, 0, "','"), -(28503, 0, "' '"), -(28504, 0, "'t'"), -(28505, 0, "'r'"), -(28506, 0, "'u'"), -(28507, 0, "'e'"), -(28503, 5, "''"), -(28502, 1, "''"), -(28502, 0, "','"), -(28503, 0, "' true'"), -(28792, 0, "','"), -(28793, 0, "' '"), -(28794, 0, "'f'"), -(28795, 0, "'a'"), -(28796, 0, "'l'"), -(28797, 0, "'s'"), -(28798, 0, "'e'"), -(28674, 0, "'n '"), -(28687, 0, "'/'"), -(28688, 0, "'/'"), -(28689, 0, "' '"), -(28675, 15, "''"), -(28674, 1, "''"), -(28723, 0, "'n '"), -(28740, 0, "'/'"), -(28741, 0, "'/'"), -(28742, 0, "' '"), -(28743, 0, "'P'"), -(28744, 0, "'a'"), -(28745, 0, "'s'"), -(28746, 0, "'s'"), -(28747, 0, "'i'"), -(28748, 0, "'n'"), -(28749, 0, "'g'"), -(28750, 0, "' '"), -(28751, 0, "'f'"), -(28752, 0, "'a'"), -(28753, 0, "'l'"), -(28754, 0, "'s'"), -(28755, 0, "'e'"), -(28756, 0, "' '"), -(28757, 0, "'t'"), -(28758, 0, "'o'"), -(28759, 0, "' '"), -(28760, 0, "'i'"), -(28761, 0, "'n'"), -(28762, 0, "'d'"), -(28763, 0, "'i'"), -(28764, 0, "'c'"), -(28765, 0, "'a'"), -(28766, 0, "'t'"), -(28767, 0, "'e'"), -(28768, 0, "' '"), -(28769, 0, "'w'"), -(28770, 0, "'e'"), -(28771, 0, "' '"), -(28772, 0, "'d'"), -(28773, 0, "'o'"), -(28774, 0, "'n'"), -(28775, 0, "'''"), -(28776, 0, "'t'"), -(28777, 0, "' '"), -(28778, 0, "'w'"), -(28779, 0, "'a'"), -(28780, 0, "'n'"), -(28781, 0, "'t'"), -(28782, 0, "' '"), -(28783, 0, "'t'"), -(28784, 0, "'o'"), -(28785, 0, "' '"), -(28783, 3, "'t'"), -(28784, 0, "'h'"), -(28785, 0, "'e'"), -(28786, 0, "' '"), -(28787, 0, "'c'"), -(28788, 0, "'u'"), -(28789, 0, "'r'"), -(28790, 0, "'s'"), -(28791, 0, "'o'"), -(28792, 0, "'r'"), -(28793, 0, "' '"), -(28794, 0, "'u'"), -(28795, 0, "'p'"), -(28796, 0, "'d'"), -(28797, 0, "'a'"), -(28798, 0, "'t'"), -(28799, 0, "'e'"), -(28800, 0, "'d'"), -(28801, 0, "' '"), -(28802, 0, "'a'"), -(28803, 0, "'f'"), -(28804, 0, "'t'"), -(28805, 0, "'e'"), -(28806, 0, "' '"), -(28807, 0, "'t'"), -(28807, 1, "''"), -(28806, 1, "''"), -(28806, 0, "'r'"), -(28807, 0, "' '"), -(28808, 0, "'t'"), -(28809, 0, "'h'"), -(28810, 0, "'i'"), -(28811, 0, "'s'"), -(28812, 0, "' '"), -(28813, 0, "'-'"), -(28814, 0, "' '"), -(28815, 0, "'i'"), -(28816, 0, "'t'"), -(28817, 0, "' '"), -(28818, 0, "'s'"), -(28819, 0, "'h'"), -(28820, 0, "'o'"), -(28821, 0, "'u'"), -(28822, 0, "'l'"), -(28823, 0, "'d'"), -(28824, 0, "' '"), -(28825, 0, "'r'"), -(28826, 0, "'e'"), -(28827, 0, "'m'"), -(28828, 0, "'a'"), -(28829, 0, "'i'"), -(28830, 0, "'n'"), -(28831, 0, "' '"), -(28832, 0, "'a'"), -(28833, 0, "'t'"), -(28834, 0, "' '"), -(28835, 0, "'t'"), -(28836, 0, "'h'"), -(28837, 0, "'e'"), -(28838, 0, "' '"), -(28839, 0, "'e'"), -(28840, 0, "'n'"), -(28841, 0, "'d'"), -(28842, 0, "' '"), -(28843, 0, "'o'"), -(28844, 0, "'f'"), -(28845, 0, "' '"), -(28846, 0, "'t'"), -(28847, 0, "'h'"), -(28848, 0, "'e'"), -(28849, 0, "' '"), -(28850, 0, "'n'"), -(28851, 0, "'e'"), -(28852, 0, "'w'"), -(28853, 0, "'l'"), -(28854, 0, "'y'"), -(28855, 0, "' '"), -(28856, 0, "'i'"), -(28857, 0, "'n'"), -(28858, 0, "'s'"), -(28859, 0, "'e'"), -(28860, 0, "'r'"), -(28861, 0, "'t'"), -(28862, 0, "'e'"), -(28863, 0, "'d'"), -(28864, 0, "' '"), -(28865, 0, "'c'"), -(28866, 0, "'o'"), -(28867, 0, "'n'"), -(28868, 0, "'t'"), -(28869, 0, "'e'"), -(28870, 0, "'n'"), -(28871, 0, "'t'"), -(28872, 0, "','"), -(28873, 0, "' '"), -(28874, 0, "'w'"), -(28875, 0, "'h'"), -(28876, 0, "'i'"), -(28877, 0, "'c'"), -(28878, 0, "'h'"), -(28879, 0, "' '"), -(28880, 0, "'i'"), -(28881, 0, "'s'"), -(28882, 0, "' '"), -(28883, 0, "'b'"), -(28884, 0, "'e'"), -(28885, 0, "'f'"), -(28886, 0, "'o'"), -(28887, 0, "'r'"), -(28888, 0, "'e'"), -(28883, 0, "'*'"), -(28890, 0, "'*'"), -(28891, 0, "' '"), -(28892, 0, "'t'"), -(28893, 0, "'h'"), -(28894, 0, "'i'"), -(28895, 0, "'s'"), -(28896, 0, "' '"), -(28897, 0, "'a'"), -(28898, 0, "'e'"), -(28898, 1, "''"), -(28897, 1, "''"), -(28897, 0, "'e'"), -(28898, 0, "'n'"), -(28899, 0, "'d'"), -(28900, 0, "' '"), -(28901, 0, "'b'"), -(28902, 0, "'i'"), -(28903, 0, "'t'"), -(28904, 0, "'.'"), -(28724, 181, "' // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.'"), -(23221, 0, "' if move_cursor {n'"), -(23278, 64, "''"), -(23250, 12, "' '"), -(23250, 0, "' cursor.entries[i].skip_usersize += new_userlen;n'"), -(23346, 14, "''"), -(23314, 16, "' '"), -(23314, 0, "' }n'"), -(23364, 10, "''"), -(23328, 20, "' '"), -(23328, 0, "' }n'"), -(23378, 1, "''"), -(23338, 24, "' '"), -(23338, 0, "' n'"), -(23371, 42, "''"), -(23347, 8, "' '"), -(23347, 0, "' self.num_items += contents.len();n'"), -(23417, 43, "''"), -(23389, 12, "' '"), -(23389, 0, "' self.num_usercount += new_userlen;n'"), -(23432, 16, "' '"), -(23432, 12, "' '"), -(23465, 0, "' '"), -(23499, 0, "'n '"), -(23500, 12, "' }'"), -(12303, 0, "'n '"), -(12320, 0, "' '"), -(12304, 4, "''"), -(12317, 0, "'f'"), -(12318, 0, "'i'"), -(12319, 0, "'e'"), -(12320, 0, "'l'"), -(12321, 0, "'d'"), -(12347, 1, "' '"), -(12348, 0, "'-'"), -(12350, 1, "''"), -(12350, 0, "'e'"), -(12305, 162, "' // This field isn't strictly necessary - earlier versions tacked this on ton // the last item in entries... I'm still not sure the cleanest way to don // this.'"), -(12468, 0, "'/'"), -(12391, 0, "'/'"), -(12311, 0, "'/'"), -(12304, 0, "'n '"), -(12309, 0, "'/'"), -(12310, 0, "'/'"), -(12311, 0, "'/'"), -(12312, 0, "' '"), -(12313, 0, "'T'"), -(12314, 0, "'h'"), -(12315, 0, "'e'"), -(12316, 0, "' '"), -(12317, 0, "'g'"), -(12318, 0, "'l'"), -(12319, 0, "'o'"), -(12320, 0, "'a'"), -(12320, 1, "''"), -(12320, 0, "'b'"), -(12321, 0, "'a'"), -(12322, 0, "'l'"), -(12323, 0, "' '"), -(12324, 0, "'u'"), -(12325, 0, "'s'"), -(12326, 0, "'e'"), -(12327, 0, "'r'"), -(12328, 0, "' '"), -(12329, 0, "'p'"), -(12330, 0, "'o'"), -(12331, 0, "'s'"), -(12332, 0, "'i'"), -(12333, 0, "'t'"), -(12334, 0, "'i'"), -(12335, 0, "'o'"), -(12336, 0, "'n'"), -(12337, 0, "' '"), -(12338, 0, "'i'"), -(12339, 0, "'n'"), -(12340, 0, "' '"), -(12341, 0, "'t'"), -(12342, 0, "'h'"), -(12343, 0, "'e'"), -(12344, 0, "' '"), -(12345, 0, "'l'"), -(12346, 0, "'i'"), -(12347, 0, "'s'"), -(12348, 0, "'t'"), -(12338, 0, "'o'"), -(12339, 0, "'f'"), -(12340, 0, "' '"), -(12341, 0, "'t'"), -(12342, 0, "'h'"), -(12343, 0, "'e'"), -(12344, 0, "' '"), -(12345, 0, "'c'"), -(12346, 0, "'u'"), -(12347, 0, "'r'"), -(12348, 0, "'s'"), -(12349, 0, "'o'"), -(12350, 0, "' '"), -(12351, 0, "'r'"), -(12362, 1, "''"), -(12361, 1, "''"), -(12360, 1, "''"), -(12359, 1, "''"), -(12358, 1, "''"), -(12357, 1, "''"), -(12356, 1, "''"), -(12355, 1, "''"), -(12354, 1, "''"), -(12353, 1, "''"), -(12352, 1, "''"), -(12351, 1, "''"), -(12350, 1, "''"), -(12350, 0, "'r'"), -(12351, 0, "' '"), -(12352, 0, "'i'"), -(12353, 0, "'n'"), -(12354, 0, "' '"), -(12355, 0, "'t'"), -(12356, 0, "'h'"), -(12357, 0, "'e'"), -(12358, 0, "' '"), -(12359, 0, "'e'"), -(12360, 0, "'n'"), -(12361, 0, "'t'"), -(12362, 0, "'i'"), -(12363, 0, "'r'"), -(12364, 0, "'e'"), -(12365, 0, "' '"), -(12366, 0, "'l'"), -(12367, 0, "'i'"), -(12368, 0, "'s'"), -(12369, 0, "'t'"), -(12370, 0, "'.'"), -(12371, 0, "' '"), -(12372, 0, "'T'"), -(12373, 0, "'i'"), -(12374, 0, "'s'"), -(12375, 0, "' '"), -(12375, 1, "''"), -(12374, 1, "''"), -(12373, 1, "''"), -(12373, 0, "'h'"), -(12374, 0, "'i'"), -(12375, 0, "'s'"), -(12376, 0, "' '"), -(12377, 0, "'i'"), -(12378, 0, "'s'"), -(12379, 0, "' '"), -(12380, 0, "'u'"), -(12381, 0, "'s'"), -(12382, 0, "'e'"), -(12383, 0, "'d'"), -(12384, 0, "' '"), -(12385, 0, "'f'"), -(12386, 0, "'o'"), -(12387, 0, "'r'"), -(12388, 0, "' '"), -(12389, 0, "'h'"), -(12389, 1, "''"), -(12389, 0, "'w'"), -(12390, 0, "'h'"), -(12391, 0, "'e'"), -(12392, 0, "'n'"), -(12393, 0, "' '"), -(12394, 0, "'t'"), -(12395, 0, "'h'"), -(12396, 0, "'e'"), -(12397, 0, "' '"), -(12398, 0, "'h'"), -(12399, 0, "'e'"), -(12400, 0, "'i'"), -(12401, 0, "'g'"), -(12402, 0, "'h'"), -(12403, 0, "'t'"), -(12404, 0, "' '"), -(12398, 7, "'m'"), -(12399, 0, "'a'"), -(12400, 0, "'x'"), -(12401, 0, "' '"), -(12402, 0, "'s'"), -(12403, 0, "'e'"), -(12404, 0, "'e'"), -(12405, 0, "'n'"), -(12406, 0, "' '"), -(12407, 0, "'h'"), -(12408, 0, "'e'"), -(12409, 0, "'i'"), -(12410, 0, "'g'"), -(12411, 0, "'h'"), -(12412, 0, "'t'"), -(12413, 0, "' '"), -(12414, 0, "'i'"), -(12415, 0, "'n'"), -(12416, 0, "'c'"), -(12417, 0, "'r'"), -(12418, 0, "'e'"), -(12419, 0, "'a'"), -(12420, 0, "'s'"), -(12421, 0, "'e'"), -(12422, 0, "'s'"), -(12423, 0, "','"), -(12424, 0, "' '"), -(12425, 0, "'s'"), -(12426, 0, "'o'"), -(12427, 0, "' '"), -(12428, 0, "'w'"), -(12429, 0, "'e'"), -(12430, 0, "' '"), -(12431, 0, "'c'"), -(12432, 0, "'a'"), -(12433, 0, "'n'"), -(12434, 0, "' '"), -(12435, 0, "'p'"), -(12436, 0, "'o'"), -(12437, 0, "'p'"), -(12438, 0, "'u'"), -(12439, 0, "'l'"), -(12440, 0, "'a'"), -(12441, 0, "'t'"), -(12442, 0, "'e'"), -(12443, 0, "' '"), -(12444, 0, "'f'"), -(12445, 0, "'i'"), -(12446, 0, "'e'"), -(12447, 0, "'l'"), -(12448, 0, "'d'"), -(12449, 0, "'s'"), -(12450, 0, "' '"), -(12451, 0, "'i'"), -(12452, 0, "'n'"), -(12453, 0, "' '"), -(12454, 0, "'t'"), -(12455, 0, "'h'"), -(12456, 0, "'e'"), -(12457, 0, "' '"), -(12458, 0, "'c'"), -(12459, 0, "'u'"), -(12460, 0, "'r'"), -(12461, 0, "'s'"), -(12462, 0, "'o'"), -(12463, 0, "'r'"), -(12464, 0, "' '"), -(12465, 0, "'a'"), -(12466, 0, "'n'"), -(12467, 0, "'d'"), -(12468, 0, "' '"), -(12469, 0, "'i'"), -(12470, 0, "'n'"), -(12471, 0, "' '"), -(12444, 7, "'p'"), -(12445, 0, "'r'"), -(12446, 0, "'e'"), -(12447, 0, "'v'"), -(12448, 0, "'i'"), -(12449, 0, "'u'"), -(12450, 0, "'s'"), -(12451, 0, "'l'"), -(12451, 1, "''"), -(12450, 1, "''"), -(12449, 1, "''"), -(12448, 1, "''"), -(12448, 0, "'i'"), -(12449, 0, "'o'"), -(12450, 0, "'u'"), -(12451, 0, "'s'"), -(12452, 0, "'l'"), -(12453, 0, "'y'"), -(12454, 0, "' '"), -(12455, 0, "'u'"), -(12456, 0, "'n'"), -(12457, 0, "'u'"), -(12458, 0, "'s'"), -(12459, 0, "'e'"), -(12460, 0, "'d'"), -(12461, 0, "' '"), -(12462, 0, "'e'"), -(12463, 0, "'n'"), -(12464, 0, "'t'"), -(12465, 0, "'r'"), -(12466, 0, "'i'"), -(12467, 0, "'e'"), -(12468, 0, "'s'"), -(12469, 0, "' '"), -(12484, 7, "'a'"), -(12485, 0, "'n'"), -(12486, 0, "'d'"), -(12487, 0, "' '"), -(12488, 0, "'i'"), -(12489, 0, "'n'"), -(12490, 0, "' '"), -(12491, 0, "'t'"), -(12492, 0, "'h'"), -(12493, 0, "'e'"), -(12494, 0, "' '"), -(12495, 0, "'h'"), -(12496, 0, "'e'"), -(12497, 0, "'a'"), -(12498, 0, "'d'"), -(12499, 0, "' '"), -(12500, 0, "'n'"), -(12501, 0, "'o'"), -(12502, 0, "'d'"), -(12503, 0, "'e'"), -(12504, 0, "'''"), -(12505, 0, "'s'"), -(12506, 0, "' '"), -(12507, 0, "'h'"), -(12508, 0, "'e'"), -(12509, 0, "'i'"), -(12510, 0, "'g'"), -(12511, 0, "'h'"), -(12512, 0, "'t'"), -(12504, 9, "'.'"), -(12505, 0, "'assert_eq!'"), -(12505, 10, "''"), -(12505, 0, "'n /// '"), -(12305, 209, "' /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///'"), -(12722, 0, "'n '"), -(12727, 0, "'n '"), -(12723, 4, "''"), -(12728, 0, "'l'"), -(12729, 0, "'o'"), -(12730, 0, "'c'"), -(12731, 0, "'a'"), -(12732, 0, "'l'"), -(12733, 0, "'_'"), -(12734, 0, "'i'"), -(12735, 0, "'n'"), -(12736, 0, "'d'"), -(12737, 0, "'e'"), -(12738, 0, "':'"), -(12738, 1, "''"), -(12738, 0, "'x'"), -(12739, 0, "':'"), -(12740, 0, "' '"), -(12741, 0, "'u'"), -(12742, 0, "'s'"), -(12743, 0, "'i'"), -(12744, 0, "'z'"), -(12745, 0, "'e'"), -(12746, 0, "','"), -(12723, 0, "'n '"), -(12728, 0, "'/'"), -(12729, 0, "'/'"), -(12730, 0, "'/'"), -(12731, 0, "' '"), -(12732, 0, "'T'"), -(12733, 0, "'h'"), -(12734, 0, "'i'"), -(12735, 0, "'s'"), -(12736, 0, "' '"), -(12737, 0, "'i'"), -(12738, 0, "'s'"), -(12739, 0, "' '"), -(12740, 0, "'n'"), -(12741, 0, "'e'"), -(12742, 0, "'e'"), -(12743, 0, "'d'"), -(12744, 0, "'e'"), -(12745, 0, "'d'"), -(12746, 0, "' '"), -(12747, 0, "'e'"), -(12748, 0, "'b'"), -(12749, 0, "'c'"), -(12750, 0, "'a'"), -(12732, 19, "'W'"), -(12733, 0, "'h'"), -(12734, 0, "'e'"), -(12735, 0, "'n'"), -(12736, 0, "' '"), -(12737, 0, "'t'"), -(12738, 0, "'h'"), -(12739, 0, "'e'"), -(12740, 0, "' '"), -(12741, 0, "'u'"), -(12742, 0, "'s'"), -(12743, 0, "'e'"), -(12744, 0, "'r'"), -(12745, 0, "'p'"), -(12746, 0, "'o'"), -(12747, 0, "'s'"), -(12748, 0, "' '"), -(12749, 0, "'o'"), -(12750, 0, "'f'"), -(12751, 0, "' '"), -(12752, 0, "'a'"), -(12753, 0, "'n'"), -(12754, 0, "' '"), -(12755, 0, "'e'"), -(12756, 0, "'n'"), -(12757, 0, "'t'"), -(12758, 0, "'r'"), -(12759, 0, "'y'"), -(12760, 0, "' '"), -(12761, 0, "'i'"), -(12762, 0, "'s'"), -(12763, 0, "' '"), -(12764, 0, "'0'"), -(12765, 0, "' '"), -(12766, 0, "'('"), -(12767, 0, "'t'"), -(12768, 0, "'o'"), -(12769, 0, "'t'"), -(12770, 0, "'a'"), -(12771, 0, "'l'"), -(12772, 0, "'l'"), -(12773, 0, "'y'"), -(12774, 0, "' '"), -(12775, 0, "'v'"), -(12776, 0, "'a'"), -(12777, 0, "'l'"), -(12778, 0, "'i'"), -(12779, 0, "'d'"), -(12780, 0, "' '"), -(12781, 0, "'a'"), -(12782, 0, "'n'"), -(12783, 0, "'d'"), -(12784, 0, "' '"), -(12785, 0, "'u'"), -(12786, 0, "'s'"), -(12787, 0, "'e'"), -(12788, 0, "'f'"), -(12789, 0, "'u'"), -(12790, 0, "'l'"), -(12791, 0, "')'"), -(12792, 0, "','"), -(12793, 0, "' '"), -(12794, 0, "'t'"), -(12795, 0, "'h'"), -(12796, 0, "'e'"), -(12797, 0, "' '"), -(12794, 4, "'a'"), -(12795, 0, "' '"), -(12796, 0, "'c'"), -(12797, 0, "'u'"), -(12798, 0, "'r'"), -(12799, 0, "'s'"), -(12800, 0, "'o'"), -(12801, 0, "'r'"), -(12802, 0, "' '"), -(12803, 0, "'b'"), -(12804, 0, "'e'"), -(12805, 0, "'c'"), -(12806, 0, "'o'"), -(12807, 0, "'m'"), -(12808, 0, "'e'"), -(12809, 0, "'s'"), -(12810, 0, "' '"), -(12811, 0, "'a'"), -(12812, 0, "'m'"), -(12813, 0, "'b'"), -(12814, 0, "'i'"), -(12815, 0, "'g'"), -(12816, 0, "'u'"), -(12817, 0, "'o'"), -(12818, 0, "'u'"), -(12819, 0, "'s'"), -(12820, 0, "' '"), -(12821, 0, "'i'"), -(12822, 0, "'n'"), -(12823, 0, "' '"), -(12824, 0, "'w'"), -(12825, 0, "'h'"), -(12826, 0, "'e'"), -(12827, 0, "'r'"), -(12828, 0, "'e'"), -(12829, 0, "' '"), -(12830, 0, "'i'"), -(12831, 0, "'t'"), -(12832, 0, "'s'"), -(12833, 0, "' '"), -(12834, 0, "'p'"), -(12835, 0, "'o'"), -(12836, 0, "'i'"), -(12837, 0, "'n'"), -(12838, 0, "'t'"), -(12839, 0, "'i'"), -(12840, 0, "'n'"), -(12841, 0, "'g'"), -(12842, 0, "'.'"), -(12724, 119, "' /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous in where its pointing.'"), -(12829, 2, "'a'"), -(12830, 0, "'b'"), -(12831, 0, "'o'"), -(12832, 0, "'u'"), -(12833, 0, "'t'"), -(12854, 0, "' '"), -(12855, 0, "'T'"), -(12856, 0, "'h'"), -(12857, 0, "'i'"), -(12858, 0, "'s'"), -(12859, 0, "' '"), -(12860, 0, "'i'"), -(12861, 0, "'s'"), -(12862, 0, "' '"), -(12863, 0, "'u'"), -(12864, 0, "'s'"), -(12865, 0, "'e'"), -(12866, 0, "'d'"), -(12829, 5, "'w'"), -(12830, 0, "'i'"), -(12831, 0, "'t'"), -(12832, 0, "'h'"), -(12833, 0, "' '"), -(12834, 0, "'r'"), -(12835, 0, "'e'"), -(12836, 0, "'g'"), -(12837, 0, "'a'"), -(12838, 0, "'r'"), -(12839, 0, "'d'"), -(12840, 0, "' '"), -(12841, 0, "'t'"), -(12842, 0, "'o'"), -(12849, 0, "' '"), -(12850, 0, "'e'"), -(12851, 0, "'x'"), -(12852, 0, "'a'"), -(12853, 0, "'c'"), -(12854, 0, "'t'"), -(12855, 0, "'l'"), -(12856, 0, "'y'"), -(12870, 0, "' '"), -(12871, 0, "'i'"), -(12872, 0, "'n'"), -(12873, 0, "' '"), -(12874, 0, "'t'"), -(12875, 0, "'h'"), -(12876, 0, "'e'"), -(12877, 0, "' '"), -(12878, 0, "'c'"), -(12879, 0, "'u'"), -(12880, 0, "'r'"), -(12881, 0, "'r'"), -(12882, 0, "'e'"), -(12883, 0, "'n'"), -(12884, 0, "'t'"), -(12885, 0, "' '"), -(12886, 0, "'e'"), -(12887, 0, "'n'"), -(12888, 0, "'t'"), -(12889, 0, "'r'"), -(12890, 0, "'y'"), -(12803, 102, "' /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used'"), -(12913, 0, "'t'"), -(12914, 0, "' '"), -(12914, 1, "''"), -(12913, 1, "''"), -(12913, 0, "' '"), -(12914, 0, "'t'"), -(12915, 0, "'o'"), -(12916, 0, "' '"), -(12917, 0, "'r'"), -(12918, 0, "'e'"), -(12919, 0, "'s'"), -(12920, 0, "'o'"), -(12921, 0, "'v'"), -(12922, 0, "'l'"), -(12923, 0, "'e'"), -(12924, 0, "' '"), -(12925, 0, "'t'"), -(12926, 0, "'a'"), -(12917, 10, "'r'"), -(12918, 0, "'e'"), -(12919, 0, "'s'"), -(12920, 0, "'o'"), -(12921, 0, "'l'"), -(12922, 0, "'v'"), -(12923, 0, "'e'"), -(12924, 0, "' '"), -(12925, 0, "'t'"), -(12926, 0, "'h'"), -(12927, 0, "'a'"), -(12928, 0, "'t'"), -(12929, 0, "' '"), -(12930, 0, "'a'"), -(12931, 0, "'m'"), -(12932, 0, "'b'"), -(12933, 0, "'u'"), -(12933, 1, "''"), -(12933, 0, "'i'"), -(12934, 0, "'g'"), -(12935, 0, "'u'"), -(12936, 0, "'i'"), -(12937, 0, "'t'"), -(12938, 0, "'y'"), -(12939, 0, "'.'"), -(19299, 0, "'('"), -(19309, 0, "','"), -(19310, 0, "' '"), -(19311, 0, "'u'"), -(19312, 0, "'s'"), -(19313, 0, "'i'"), -(19314, 0, "'z'"), -(19315, 0, "'e'"), -(19316, 0, "')'"), -(18943, 4, "'c'"), -(18944, 0, "'o'"), -(18945, 0, "'n'"), -(18946, 0, "'t'"), -(18947, 0, "'a'"), -(18948, 0, "'i'"), -(18949, 0, "'n'"), -(18950, 0, "'s'"), -(18905, 213, "' /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///'"), -(19126, 70, "'B'"), -(19127, 0, "'y'"), -(19128, 0, "' '"), -(19129, 0, "'d'"), -(19130, 0, "'e'"), -(19126, 5, "'T'"), -(19127, 0, "'h'"), -(19127, 1, "''"), -(19126, 1, "''"), -(19126, 0, "'i'"), -(19127, 0, "'t'"), -(19128, 0, "'e'"), -(19129, 0, "'r'"), -(19130, 0, "'_'"), -(19131, 0, "'a'"), -(19132, 0, "'t'"), -(19133, 0, "'_'"), -(19134, 0, "'u'"), -(19135, 0, "'s'"), -(19136, 0, "'e'"), -(19137, 0, "'r'"), -(19138, 0, "'p'"), -(19139, 0, "'o'"), -(19140, 0, "'s'"), -(19141, 0, "' '"), -(19142, 0, "'c'"), -(19143, 0, "'u'"), -(19144, 0, "'r'"), -(19145, 0, "'r'"), -(19146, 0, "'e'"), -(19147, 0, "'n'"), -(19148, 0, "'t'"), -(19149, 0, "'l'"), -(19150, 0, "'y'"), -(19151, 0, "' '"), -(19152, 0, "'r'"), -(19153, 0, "'e'"), -(19154, 0, "'t'"), -(19155, 0, "'u'"), -(19156, 0, "'r'"), -(19157, 0, "'n'"), -(19158, 0, "'s'"), -(19159, 0, "' '"), -(19160, 0, "'t'"), -(19161, 0, "'h'"), -(19162, 0, "'e'"), -(19163, 0, "' '"), -(19164, 0, "'l'"), -(19165, 0, "'a'"), -(19166, 0, "'s'"), -(19167, 0, "'t'"), -(19168, 0, "' '"), -(19126, 43, "'S'"), -(19127, 0, "'o'"), -(19128, 0, "'m'"), -(19129, 0, "'e'"), -(19130, 0, "'t'"), -(19131, 0, "'i'"), -(19132, 0, "'m'"), -(19133, 0, "'e'"), -(19134, 0, "'s'"), -(19135, 0, "' '"), -(19136, 0, "'a'"), -(19137, 0, "' '"), -(19138, 0, "'c'"), -(19139, 0, "'a'"), -(19140, 0, "'l'"), -(19141, 0, "'l'"), -(19142, 0, "' '"), -(19143, 0, "'t'"), -(19144, 0, "'o'"), -(19145, 0, "' '"), -(19146, 0, "'i'"), -(19147, 0, "'t'"), -(19148, 0, "'e'"), -(19149, 0, "'r'"), -(19150, 0, "'_'"), -(19151, 0, "'a'"), -(19152, 0, "'t'"), -(19153, 0, "'_'"), -(19154, 0, "'u'"), -(19155, 0, "'s'"), -(19156, 0, "'e'"), -(19157, 0, "'r'"), -(19158, 0, "'p'"), -(19159, 0, "'o'"), -(19160, 0, "'s'"), -(19161, 0, "' '"), -(19162, 0, "'i'"), -(19163, 0, "'s'"), -(19164, 0, "' '"), -(19165, 0, "'a'"), -(19166, 0, "'m'"), -(19167, 0, "'b'"), -(19168, 0, "'i'"), -(19169, 0, "'g'"), -(19170, 0, "'u'"), -(19171, 0, "'o'"), -(19172, 0, "'u'"), -(19173, 0, "'s'"), -(19174, 0, "':'"), -(19175, 0, "'assert_eq!'"), -(19185, 0, "'n /// '"), -(19194, 0, "'-'"), -(19185, 10, "''"), -(19175, 10, "''"), -(19175, 0, "'n /// '"), -(19184, 0, "'n /// '"), -(19193, 0, "'-'"), -(19194, 0, "' '"), -(19195, 0, "'T'"), -(19196, 0, "'h'"), -(19197, 0, "'e'"), -(19198, 0, "' '"), -(19199, 0, "'u'"), -(19200, 0, "'s'"), -(19201, 0, "'e'"), -(19202, 0, "'r'"), -(19199, 4, "''"), -(19199, 0, "'i'"), -(19200, 0, "'t'"), -(19201, 0, "'e'"), -(19202, 0, "'m'"), -(19203, 0, "' '"), -(19204, 0, "'c'"), -(19205, 0, "'a'"), -(19206, 0, "'n'"), -(19207, 0, "' '"), -(19208, 0, "'c'"), -(19209, 0, "'o'"), -(19210, 0, "'n'"), -(19211, 0, "'t'"), -(19212, 0, "'a'"), -(19213, 0, "'i'"), -(19214, 0, "'n'"), -(19215, 0, "' '"), -(19216, 0, "'z'"), -(19217, 0, "'e'"), -(19218, 0, "'r'"), -(19219, 0, "'o'"), -(19220, 0, "'-'"), -(19221, 0, "'s'"), -(19222, 0, "'i'"), -(19223, 0, "'z'"), -(19224, 0, "'e'"), -(19225, 0, "'d'"), -(19220, 6, "'i'"), -(19216, 5, "'i'"), -(19217, 0, "'t'"), -(19218, 0, "'e'"), -(19219, 0, "'m'"), -(19220, 0, "'s'"), -(19221, 0, "' '"), -(19222, 0, "'w'"), -(19223, 0, "'i'"), -(19224, 0, "'t'"), -(19225, 0, "'h'"), -(19226, 0, "' '"), -(19227, 0, "'z'"), -(19228, 0, "'e'"), -(19229, 0, "'r'"), -(19230, 0, "'o'"), -(19231, 0, "' '"), -(19232, 0, "'u'"), -(19233, 0, "'s'"), -(19234, 0, "'e'"), -(19235, 0, "'r'"), -(19236, 0, "'s'"), -(19237, 0, "'i'"), -(19238, 0, "'z'"), -(19239, 0, "'e'"), -(19240, 0, "'.'"), -(19241, 0, "' '"), -(19242, 0, "'T'"), -(19243, 0, "'h'"), -(19244, 0, "'e'"), -(19245, 0, "' '"), -(19246, 0, "'c'"), -(19247, 0, "'u'"), -(19248, 0, "'r'"), -(19249, 0, "'s'"), -(19250, 0, "'o'"), -(19251, 0, "'r'"), -(19252, 0, "' '"), -(19253, 0, "'c'"), -(19254, 0, "'o'"), -(19255, 0, "'u'"), -(19256, 0, "'l'"), -(19257, 0, "'d'"), -(19258, 0, "' '"), -(19259, 0, "'p'"), -(19260, 0, "'o'"), -(19261, 0, "'i'"), -(19262, 0, "'n'"), -(19263, 0, "'t'"), -(19264, 0, "' '"), -(19265, 0, "'t'"), -(19266, 0, "'o'"), -(19267, 0, "' '"), -(19268, 0, "'t'"), -(19268, 1, "''"), -(19268, 0, "'a'"), -(19269, 0, "'n'"), -(19270, 0, "'y'"), -(19271, 0, "' '"), -(19272, 0, "'o'"), -(19273, 0, "'f'"), -(19274, 0, "' '"), -(19275, 0, "'t'"), -(19276, 0, "'h'"), -(19277, 0, "'e'"), -(19278, 0, "'m'"), -(19279, 0, "'.'"), -(19280, 0, "'assert_eq!'"), -(19280, 10, "''"), -(19280, 0, "'n /// '"), -(19289, 0, "'/'"), -(19289, 1, "''"), -(19289, 0, "'-'"), -(19290, 0, "' '"), -(19291, 0, "'T'"), -(19292, 0, "'h'"), -(19293, 0, "'e'"), -(19294, 0, "' '"), -(19295, 0, "'c'"), -(19296, 0, "'u'"), -(19297, 0, "'r'"), -(19298, 0, "'s'"), -(19299, 0, "'o'"), -(19300, 0, "'r'"), -(19301, 0, "' '"), -(19302, 0, "'c'"), -(19303, 0, "'o'"), -(19304, 0, "'u'"), -(19305, 0, "'l'"), -(19306, 0, "'d'"), -(19307, 0, "' '"), -(19308, 0, "'o'"), -(19308, 1, "''"), -(19280, 0, "' '"), -(19281, 0, "'F'"), -(19282, 0, "'o'"), -(19283, 0, "'r'"), -(19284, 0, "' '"), -(19285, 0, "'n'"), -(19286, 0, "'o'"), -(19287, 0, "'w'"), -(19288, 0, "' '"), -(19289, 0, "'w'"), -(19289, 1, "''"), -(19289, 0, "'t'"), -(19290, 0, "'h'"), -(19291, 0, "'i'"), -(19292, 0, "'s'"), -(19293, 0, "' '"), -(19294, 0, "'m'"), -(19295, 0, "'e'"), -(19296, 0, "'t'"), -(19297, 0, "'h'"), -(19298, 0, "'o'"), -(19299, 0, "'d'"), -(19300, 0, "' '"), -(19301, 0, "'a'"), -(19302, 0, "'l'"), -(19303, 0, "'w'"), -(19304, 0, "'a'"), -(19305, 0, "'y'"), -(19306, 0, "'s'"), -(19307, 0, "' '"), -(19308, 0, "'r'"), -(19309, 0, "'e'"), -(19310, 0, "'t'"), -(19311, 0, "'u'"), -(19312, 0, "'r'"), -(19280, 33, "''"), -(19295, 0, "'r'"), -(19296, 0, "'e'"), -(19297, 0, "'t'"), -(19298, 0, "'u'"), -(19299, 0, "'r'"), -(19300, 0, "'n'"), -(19301, 0, "'e'"), -(19302, 0, "'d'"), -(19303, 0, "' '"), -(19317, 0, "'b'"), -(19318, 0, "'e'"), -(19319, 0, "' '"), -(19320, 0, "'e'"), -(19321, 0, "'i'"), -(19322, 0, "'t'"), -(19323, 0, "'h'"), -(19324, 0, "'e'"), -(19325, 0, "'r'"), -(19326, 0, "' '"), -(19327, 0, "'a'"), -(19328, 0, "'t'"), -(19329, 0, "' '"), -(19330, 0, "'t'"), -(19331, 0, "'h'"), -(19332, 0, "'e'"), -(19333, 0, "'e'"), -(19333, 1, "''"), -(19333, 0, "' '"), -(19334, 0, "'e'"), -(19335, 0, "'n'"), -(19336, 0, "'d'"), -(19337, 0, "' '"), -(19338, 0, "'o'"), -(19339, 0, "'f'"), -(19340, 0, "' '"), -(19341, 0, "'t'"), -(19342, 0, "'h'"), -(19343, 0, "'e'"), -(19344, 0, "' '"), -(19338, 0, "'o'"), -(19339, 0, "'f'"), -(19340, 0, "' '"), -(19291, 57, "'I'"), -(19292, 0, "'f'"), -(19293, 0, "' '"), -(19294, 0, "'t'"), -(19295, 0, "'h'"), -(19296, 0, "'e'"), -(19297, 0, "' '"), -(19298, 0, "'l'"), -(19299, 0, "'o'"), -(19300, 0, "'c'"), -(19301, 0, "'a'"), -(19302, 0, "'t'"), -(19303, 0, "'i'"), -(19304, 0, "'o'"), -(19305, 0, "'n'"), -(19306, 0, "' '"), -(19307, 0, "'i'"), -(19308, 0, "'s'"), -(19309, 0, "' '"), -(19310, 0, "'a'"), -(19311, 0, "'t'"), -(19312, 0, "' '"), -(19313, 0, "'t'"), -(19314, 0, "'h'"), -(19315, 0, "'e'"), -(19316, 0, "' '"), -(19317, 0, "'e'"), -(19318, 0, "'n'"), -(19319, 0, "'d'"), -(19320, 0, "' '"), -(19321, 0, "'o'"), -(19322, 0, "'f'"), -(19323, 0, "' '"), -(19324, 0, "'a'"), -(19325, 0, "' '"), -(19326, 0, "'n'"), -(19327, 0, "'o'"), -(19328, 0, "'d'"), -(19329, 0, "'e'"), -(19330, 0, "','"), -(19331, 0, "' '"), -(19332, 0, "'i'"), -(19333, 0, "'t'"), -(19334, 0, "' '"), -(19335, 0, "'i'"), -(19336, 0, "'s'"), -(19337, 0, "' '"), -(19338, 0, "'e'"), -(19339, 0, "'q'"), -(19340, 0, "'u'"), -(19341, 0, "'a'"), -(19342, 0, "'l'"), -(19343, 0, "'l'"), -(19344, 0, "'y'"), -(19345, 0, "' '"), -(19346, 0, "'v'"), -(19347, 0, "'a'"), -(19348, 0, "'l'"), -(19349, 0, "'i'"), -(19350, 0, "'d'"), -(19351, 0, "' '"), -(19352, 0, "'t'"), -(19353, 0, "'o'"), -(19354, 0, "' '"), -(19355, 0, "'r'"), -(19356, 0, "'e'"), -(19357, 0, "'t'"), -(19358, 0, "'u'"), -(19359, 0, "'r'"), -(19360, 0, "'n'"), -(19361, 0, "' '"), -(19362, 0, "'a'"), -(19363, 0, "' '"), -(19364, 0, "'p'"), -(19365, 0, "'o'"), -(19366, 0, "'s'"), -(19367, 0, "'i'"), -(19368, 0, "'t'"), -(19369, 0, "'i'"), -(19370, 0, "'o'"), -(19371, 0, "'n'"), -(19372, 0, "' '"), -(19373, 0, "'a'"), -(19374, 0, "'t'"), -(19375, 0, "' '"), -(19376, 0, "'t'"), -(19377, 0, "'h'"), -(19378, 0, "'e'"), -(19379, 0, "' '"), -(19380, 0, "'e'"), -(19380, 1, "''"), -(19380, 0, "'s'"), -(19381, 0, "'t'"), -(19382, 0, "'a'"), -(19383, 0, "'r'"), -(19384, 0, "'t'"), -(19385, 0, "' '"), -(19386, 0, "'o'"), -(19387, 0, "' '"), -(19387, 1, "''"), -(19387, 0, "'f'"), -(19388, 0, "' '"), -(19389, 0, "'t'"), -(19390, 0, "' '"), -(19390, 1, "''"), -(19390, 0, "'h'"), -(19391, 0, "'e'"), -(19392, 0, "' '"), -(19393, 0, "'n'"), -(19394, 0, "'e'"), -(19395, 0, "'x'"), -(19396, 0, "'t'"), -(19397, 0, "' '"), -(19398, 0, "'n'"), -(19399, 0, "'o'"), -(19400, 0, "'d'"), -(19401, 0, "'e'"), -(19402, 0, "'.'"), -(19176, 227, "' ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.'"), -(19422, 0, "'n /// '"), -(19431, 0, "'n /// '"), -(19440, 0, "'B'"), -(19441, 0, "'e'"), -(19442, 0, "'c'"), -(19443, 0, "'a'"), -(19444, 0, "'u'"), -(19445, 0, "'s'"), -(19446, 0, "'e'"), -(19447, 0, "' '"), -(19448, 0, "'i'"), -(19449, 0, "'t'"), -(19450, 0, "'s'"), -(19451, 0, "' '"), -(19452, 0, "'i'"), -(19453, 0, "'m'"), -(19454, 0, "'p'"), -(19455, 0, "'o'"), -(19456, 0, "'s'"), -(19457, 0, "'s'"), -(19458, 0, "'i'"), -(19459, 0, "'b'"), -(19460, 0, "'l'"), -(19461, 0, "'e'"), -(19462, 0, "' '"), -(19463, 0, "'m'"), -(19464, 0, "'t'"), -(19464, 1, "''"), -(19463, 1, "''"), -(19463, 0, "'t'"), -(19464, 0, "'o'"), -(19465, 0, "' '"), -(19466, 0, "'m'"), -(19467, 0, "'v'"), -(19468, 0, "'o'"), -(19468, 1, "''"), -(19467, 1, "''"), -(19467, 0, "'o'"), -(19468, 0, "'v'"), -(19469, 0, "'e'"), -(19470, 0, "' '"), -(19471, 0, "'b'"), -(19472, 0, "'a'"), -(19473, 0, "'c'"), -(19474, 0, "'k'"), -(19475, 0, "'w'"), -(19476, 0, "'a'"), -(19477, 0, "'r'"), -(19478, 0, "'d'"), -(19479, 0, "'s'"), -(19480, 0, "' '"), -(19481, 0, "'i'"), -(19482, 0, "'n'"), -(19483, 0, "' '"), -(19484, 0, "'t'"), -(19485, 0, "'h'"), -(19486, 0, "'e'"), -(19487, 0, "' '"), -(19488, 0, "'l'"), -(19489, 0, "'i'"), -(19490, 0, "'s'"), -(19491, 0, "'t'"), -(19492, 0, "','"), -(19493, 0, "' '"), -(19494, 0, "'w'"), -(19495, 0, "'e'"), -(19496, 0, "' '"), -(19497, 0, "'r'"), -(19498, 0, "'e'"), -(19499, 0, "'t'"), -(19500, 0, "'u'"), -(19501, 0, "'r'"), -(19502, 0, "'n'"), -(19503, 0, "' '"), -(19504, 0, "'t'"), -(19505, 0, "'h'"), -(19506, 0, "'e'"), -(19507, 0, "' '"), -(19508, 0, "'f'"), -(19509, 0, "'i'"), -(19510, 0, "'r'"), -(19511, 0, "'s'"), -(19512, 0, "'t'"), -(19513, 0, "' '"), -(19514, 0, "'v'"), -(19515, 0, "'a'"), -(19516, 0, "'l'"), -(19517, 0, "'i'"), -(19518, 0, "'d'"), -(19519, 0, "' '"), -(19520, 0, "'l'"), -(19521, 0, "'o'"), -(19522, 0, "'c'"), -(19523, 0, "'a'"), -(19524, 0, "'t'"), -(19525, 0, "'i'"), -(19526, 0, "'o'"), -(19527, 0, "'n'"), -(19494, 2, "'i'"), -(19495, 0, "'t'"), -(19496, 0, "'e'"), -(19497, 0, "'r'"), -(19498, 0, "'_'"), -(19499, 0, "'a'"), -(19500, 0, "'t'"), -(19501, 0, "'_'"), -(19502, 0, "'u'"), -(19503, 0, "'s'"), -(19504, 0, "'e'"), -(19505, 0, "'r'"), -(19506, 0, "'p'"), -(19507, 0, "'o'"), -(19508, 0, "'s'"), -(19516, 0, "'s'"), -(19528, 0, "'*'"), -(19534, 0, "'*'"), -(19534, 1, "''"), -(19528, 1, "''"), -(19528, 5, "'a'"), -(19528, 1, "''"), -(19528, 0, "'a'"), -(19529, 0, "'d'"), -(19530, 0, "'m'"), -(19531, 0, "'i'"), -(19532, 0, "'s'"), -(19533, 0, "'s'"), -(19534, 0, "'i'"), -(19535, 0, "'o'"), -(19536, 0, "'n'"), -(19536, 1, "''"), -(19535, 1, "''"), -(19535, 0, "'b'"), -(19536, 0, "'l'"), -(19537, 0, "'e'"), -(19547, 0, "' '"), -(19548, 0, "'w'"), -(19549, 0, "'i'"), -(19550, 0, "'t'"), -(19551, 0, "'h'"), -(19552, 0, "' '"), -(19553, 0, "'t'"), -(19554, 0, "'h'"), -(19555, 0, "'e'"), -(19556, 0, "' '"), -(19557, 0, "'s'"), -(19558, 0, "'p'"), -(19559, 0, "'e'"), -(19560, 0, "'c'"), -(19561, 0, "'i'"), -(19562, 0, "'f'"), -(19563, 0, "'i'"), -(19564, 0, "'e'"), -(19565, 0, "'d'"), -(19566, 0, "' '"), -(19567, 0, "'u'"), -(19568, 0, "'s'"), -(19569, 0, "'e'"), -(19570, 0, "'r'"), -(19571, 0, "'p'"), -(19572, 0, "'o'"), -(19573, 0, "'s'"), -(19574, 0, "'.'"), -(19423, 152, "' ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.'"), -(19582, 0, "'n /// '"), -(19591, 0, "'n /// '"), -(19600, 0, "'@'"), -(19601, 0, "'r'"), -(19602, 0, "'e'"), -(19603, 0, "'t'"), -(19604, 0, "'u'"), -(19605, 0, "'r'"), -(19600, 6, "'R'"), -(19601, 0, "'e'"), -(19602, 0, "'t'"), -(19603, 0, "'u'"), -(19604, 0, "'r'"), -(19605, 0, "'n'"), -(19606, 0, "'s'"), -(19607, 0, "' '"), -(19608, 0, "'c'"), -(19609, 0, "'u'"), -(19610, 0, "'r'"), -(19611, 0, "'s'"), -(19612, 0, "'o'"), -(19613, 0, "'r'"), -(19614, 0, "','"), -(19615, 0, "' '"), -(19608, 0, "'('"), -(19617, 0, "'l'"), -(19618, 0, "'e'"), -(19619, 0, "'n'"), -(19620, 0, "'g'"), -(19621, 0, "'t'"), -(19622, 0, "'h'"), -(19617, 6, "'o'"), -(19618, 0, "'f'"), -(19619, 0, "'f'"), -(19620, 0, "'s'"), -(19621, 0, "'e'"), -(19622, 0, "'t'"), -(19623, 0, "' '"), -(19624, 0, "'i'"), -(19625, 0, "'n'"), -(19626, 0, "'t'"), -(19627, 0, "'o'"), -(19628, 0, "' '"), -(19629, 0, "'t'"), -(19630, 0, "'h'"), -(19631, 0, "'e'"), -(19632, 0, "' '"), -(19633, 0, "'c'"), -(19634, 0, "'u'"), -(19635, 0, "'r'"), -(19636, 0, "'r'"), -(19637, 0, "'e'"), -(19638, 0, "'n'"), -(19639, 0, "'t'"), -(19640, 0, "' '"), -(19641, 0, "'i'"), -(19642, 0, "'t'"), -(19643, 0, "'e'"), -(19644, 0, "'m'"), -(19645, 0, "')'"), -(19633, 7, "''"), -(19632, 1, "''"), -(19632, 0, "' '"), -(19633, 0, "'p'"), -(19634, 0, "'o'"), -(19635, 0, "'i'"), -(19636, 0, "'n'"), -(19637, 0, "'t'"), -(19638, 0, "'e'"), -(19639, 0, "'d'"), -(19633, 7, "'i'"), -(19633, 1, "''"), -(19632, 1, "''"), -(19632, 0, "' '"), -(19633, 0, "'s'"), -(19634, 0, "'p'"), -(19635, 0, "'e'"), -(19636, 0, "'c'"), -(19637, 0, "'i'"), -(19638, 0, "'f'"), -(19639, 0, "'i'"), -(19640, 0, "'e'"), -(19641, 0, "'d'"), -(19648, 0, "'.'"), -(21345, 0, "'n '"), -(21354, 0, "'n '"), -(21346, 8, "''"), -(21355, 0, "'/'"), -(21356, 0, "'/'"), -(21357, 0, "' '"), -(21358, 0, "'W'"), -(21359, 0, "'e'"), -(21360, 0, "'''"), -(21361, 0, "'v'"), -(21362, 0, "'e'"), -(21363, 0, "' '"), -(21364, 0, "'f'"), -(21365, 0, "'o'"), -(21366, 0, "'u'"), -(21367, 0, "'n'"), -(21368, 0, "'d'"), -(21369, 0, "' '"), -(21370, 0, "'t'"), -(21371, 0, "'h'"), -(21372, 0, "'e'"), -(21373, 0, "' '"), -(21374, 0, "'n'"), -(21375, 0, "'o'"), -(21376, 0, "'d'"), -(21377, 0, "'e'"), -(21378, 0, "'.'"), -(21379, 0, "' '"), -(21380, 0, "'N'"), -(21381, 0, "'o'"), -(21382, 0, "'w'"), -(21383, 0, "' '"), -(21384, 0, "'w'"), -(21385, 0, "'e'"), -(21386, 0, "' '"), -(21387, 0, "'n'"), -(21388, 0, "'e'"), -(21389, 0, "'e'"), -(21390, 0, "'d'"), -(21391, 0, "' '"), -(21392, 0, "'t'"), -(21393, 0, "'o'"), -(21394, 0, "' '"), -(21395, 0, "'f'"), -(21396, 0, "'i'"), -(21397, 0, "'n'"), -(21398, 0, "'d'"), -(21399, 0, "' '"), -(21400, 0, "'t'"), -(21401, 0, "'h'"), -(21402, 0, "'e'"), -(21403, 0, "' '"), -(21404, 0, "'l'"), -(21405, 0, "'o'"), -(21406, 0, "'c'"), -(21407, 0, "'a'"), -(21408, 0, "'t'"), -(21409, 0, "'i'"), -(21410, 0, "'o'"), -(21411, 0, "' '"), -(21412, 0, "'n'"), -(21413, 0, "'w'"), -(21414, 0, "'i'"), -(21415, 0, "'t'"), -(21416, 0, "'h'"), -(21417, 0, "'i'"), -(21418, 0, "'n'"), -(21384, 35, "'l'"), -(21385, 0, "'o'"), -(21386, 0, "'o'"), -(21387, 0, "'k'"), -(21388, 0, "' '"), -(21389, 0, "'f'"), -(21390, 0, "'o'"), -(21391, 0, "'r'"), -(21392, 0, "' '"), -(21393, 0, "'t'"), -(21394, 0, "'h'"), -(21395, 0, "'e'"), -(21396, 0, "' '"), -(21397, 0, "'i'"), -(21398, 0, "'n'"), -(21399, 0, "'d'"), -(21400, 0, "'e'"), -(21401, 0, "'x'"), -(21402, 0, "' '"), -(21403, 0, "'w'"), -(21404, 0, "'i'"), -(21405, 0, "'t'"), -(21406, 0, "'h'"), -(21407, 0, "'i'"), -(21408, 0, "'n'"), -(21409, 0, "' '"), -(21410, 0, "'t'"), -(21411, 0, "'h'"), -(21412, 0, "'e'"), -(21413, 0, "' '"), -(21414, 0, "'n'"), -(21415, 0, "'o'"), -(21416, 0, "'d'"), -(21417, 0, "'e'"), -(21418, 0, "'.'"), -(10048, 966, "''"), -(10047, 1, "''"), -(20452, 0, "'n '"), -(20461, 0, "'n /// I dunno where this logic should live, but we want to get the index ofn /// the item at the specified offset into the node (and the offset into then /// item).n /// n /// If the offset lands between items, we could return either the previous or next item.n /// n /// Returns (index, item_offset).n fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {n if usersize_offset == 0 { return (0, 0); }nn for (i, item) in self.content_slice().iter().enumerate() {n let usersize = C::get_usersize(item);n if usersize > usersize_offset {n return (i, usersize_offset);n } else if usersize == usersize_offset {n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }n } else {n usersize_offset -= usersize;n }n }n panic!('Could not find requested offset within the node');n }'"), -(20453, 8, "''"), -(20453, 323, "''"), -(20453, 92, "''"), -(20999, 5, "''"), -(20998, 1, "''"), -(20932, 66, "''"), -(20931, 1, "''"), -(20931, 0, "'n '"), -(20931, 9, "''"), -(20931, 0, "'n'"), -(20932, 0, "' panic!('Could not find requested offset within the node');'"), -(20998, 0, "'n'"), -(20999, 0, "' }'"), -(20453, 0, "' fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {n'"), -(20457, 0, "'// '"), -(20453, 0, "' '"), -(21098, 5, "''"), -(21097, 1, "''"), -(21039, 0, "'// '"), -(20629, 4, "'c'"), -(20630, 0, "'u'"), -(20631, 0, "'r'"), -(20632, 0, "'s'"), -(20633, 0, "'o'"), -(20634, 0, "'r'"), -(20629, 6, "'self'"), -(20560, 0, "'// '"), -(20560, 3, "''"), -(20551, 0, "'n '"), -(20560, 4, "''"), -(20560, 0, "'l'"), -(20561, 0, "'e'"), -(20562, 0, "'t'"), -(20563, 0, "' '"), -(20564, 0, "'e'"), -(20565, 0, "' '"), -(20566, 0, "'='"), -(20567, 0, "' '"), -(20560, 8, "''"), -(20572, 15, "'o'"), -(20573, 0, "'f'"), -(20574, 0, "'f'"), -(20575, 0, "'s'"), -(20576, 0, "'e'"), -(20577, 0, "'t'"), -(20552, 8, "''"), -(20551, 1, "''"), -(20585, 1, "''"), -(20585, 0, "'c'"), -(20586, 0, "'r'"), -(20586, 1, "''"), -(20586, 0, "'u'"), -(20587, 0, "'r'"), -(20588, 0, "'s'"), -(20589, 0, "'o'"), -(20590, 0, "'r'"), -(19538, 0, "'n '"), -(19551, 0, "'i'"), -(19552, 0, "'n'"), -(19553, 0, "'d'"), -(19551, 3, "''"), -(19551, 0, "'l'"), -(19552, 0, "'o'"), -(19553, 0, "'c'"), -(19554, 0, "'a'"), -(19555, 0, "'l'"), -(19556, 0, "'_'"), -(19557, 0, "'i'"), -(19558, 0, "'n'"), -(19559, 0, "'d'"), -(19560, 0, "'e'"), -(19561, 0, "'x'"), -(19562, 0, "':'"), -(19563, 0, "' '"), -(19564, 0, "'0'"), -(19565, 0, "','"), -(20653, 4, "''"), -(20653, 0, "'('"), -(20654, 0, "'*'"), -(20655, 0, "'e'"), -(20656, 0, "')'"), -(20771, 15, "'o'"), -(20772, 0, "'f'"), -(20773, 0, "'f'"), -(20774, 0, "'s'"), -(20775, 0, "'e'"), -(20776, 0, "'t'"), -(20779, 0, "'n '"), -(20796, 0, "'c'"), -(20797, 0, "'u'"), -(20798, 0, "'r'"), -(20799, 0, "'s'"), -(20800, 0, "'o'"), -(20801, 0, "'r'"), -(20802, 0, "'.'"), -(20803, 0, "'l'"), -(20804, 0, "'o'"), -(20805, 0, "'c'"), -(20806, 0, "'a'"), -(20807, 0, "'l'"), -(20803, 5, "'local_index'"), -(20814, 0, "' '"), -(20815, 0, "' '"), -(20815, 1, "''"), -(20815, 0, "'='"), -(20816, 0, "' '"), -(20817, 0, "'i'"), -(20818, 0, "';'"), -(20836, 28, "'b'"), -(20836, 1, "'return (i, usersize_offset);'"), -(20977, 18, "''"), -(20940, 13, "''"), -(20770, 0, "'='"), -(20866, 100, "''"), -(20837, 28, "'b'"), -(20838, 0, "'r'"), -(20839, 0, "'e'"), -(20840, 0, "'a'"), -(20841, 0, "'k'"), -(20842, 0, "';'"), -(20627, 0, "'n '"), -(20636, 0, "'l'"), -(20637, 0, "'e'"), -(20638, 0, "'t'"), -(20639, 0, "' '"), -(20640, 0, "'m'"), -(20641, 0, "'u'"), -(20642, 0, "'t'"), -(20643, 0, "' '"), -(20644, 0, "'f'"), -(20645, 0, "'o'"), -(20646, 0, "'u'"), -(20647, 0, "'n'"), -(20648, 0, "'d'"), -(20649, 0, "' '"), -(20650, 0, "'='"), -(20651, 0, "' '"), -(20652, 0, "'f'"), -(20653, 0, "'a'"), -(20654, 0, "'l'"), -(20655, 0, "'s'"), -(20656, 0, "'e'"), -(20657, 0, "';'"), -(20851, 0, "'n '"), -(20868, 0, "'f'"), -(20869, 0, "'o'"), -(20870, 0, "'u'"), -(20871, 0, "'n'"), -(20872, 0, "'d'"), -(20873, 0, "' '"), -(20874, 0, "'='"), -(20875, 0, "' '"), -(20876, 0, "'t'"), -(20877, 0, "'r'"), -(20878, 0, "'u'"), -(20879, 0, "'e'"), -(20880, 0, "';'"), -(20994, 0, "'n '"), -(21003, 0, "'a'"), -(21004, 0, "'s'"), -(21005, 0, "'s'"), -(21006, 0, "'e'"), -(21007, 0, "'r'"), -(21008, 0, "'t'"), -(21009, 0, "'!'"), -(21010, 0, "'('"), -(21011, 0, "'f'"), -(21012, 0, "'o'"), -(21013, 0, "'u'"), -(21014, 0, "'n'"), -(21015, 0, "'d'"), -(21016, 0, "')'"), -(21017, 0, "';'"), -(20994, 0, "'n '"), -(21027, 0, "'n '"), -(20995, 8, "''"), -(21020, 8, "''"), -(20942, 15, "'o'"), -(20943, 0, "'f'"), -(20944, 0, "'f'"), -(20945, 0, "'s'"), -(20946, 0, "'e'"), -(20947, 0, "'t'"), -(21238, 0, "'('"), -(21245, 0, "','"), -(21246, 0, "' '"), -(21247, 0, "'o'"), -(21248, 0, "'f'"), -(21249, 0, "'f'"), -(21250, 0, "'s'"), -(21251, 0, "'e'"), -(21252, 0, "'t'"), -(21253, 0, "')'"), -(37472, 0, "'('"), -(37479, 0, "','"), -(37480, 0, "' '"), -(37481, 0, "'o'"), -(37482, 0, "'f'"), -(37483, 0, "'f'"), -(37484, 0, "'s'"), -(37485, 0, "'e'"), -(37486, 0, "'t'"), -(37487, 0, "')'"), -(37468, 4, "''"), -(37469, 0, "'m'"), -(37470, 0, "'u'"), -(37471, 0, "'t'"), -(37472, 0, "' '"), -(37522, 115, "''"), -(37636, 7, "''"), -(30233, 21, "''"), -(30313, 0, "'n '"), -(30322, 0, "', mut item_idx: usize'"), -(30322, 1, "'l'"), -(30323, 0, "'e'"), -(30324, 0, "'t'"), -(30338, 7, "' '"), -(30339, 0, "'='"), -(30340, 0, "' '"), -(30341, 0, "'c'"), -(30342, 0, "'u'"), -(30343, 0, "'r'"), -(30344, 0, "'s'"), -(30345, 0, "'o'"), -(30346, 0, "'r'"), -(30347, 0, "'.'"), -(30348, 0, "'.'"), -(30349, 0, "'l'"), -(30349, 1, "''"), -(30348, 1, "''"), -(30348, 0, "'l'"), -(30349, 0, "'o'"), -(30350, 0, "'c'"), -(30351, 0, "'a'"), -(30352, 0, "'l'"), -(30348, 5, "'local_index'"), -(30359, 0, "';'"), -(36635, 44, "'(mut cursor, offset) = self.iter_at_userpos(userpos);'"), -(36635, 0, "' '"), -(36690, 115, "''"), -(36806, 7, "''"), -(24277, 19, "''"), -(24276, 1, "''"), -(24275, 1, "''"), -(24383, 0, "'n '"), -(24392, 0, "'l'"), -(24393, 0, "'e'"), -(24394, 0, "' '"), -(24394, 1, "''"), -(24394, 0, "'t'"), -(24395, 0, "' '"), -(24396, 0, "'mut item_idx: usize'"), -(24408, 7, "' '"), -(24409, 0, "'='"), -(24410, 0, "' '"), -(24411, 0, "'c'"), -(24412, 0, "'u'"), -(24413, 0, "'r'"), -(24414, 0, "'s'"), -(24415, 0, "'o'"), -(24416, 0, "'r'"), -(24417, 0, "'.'"), -(24418, 0, "'l'"), -(24419, 0, "'o'"), -(24420, 0, "'c'"), -(24421, 0, "'a'"), -(24418, 4, "'local_index'"), -(24429, 0, "';'"), -(24430, 0, "'n '"), -(24431, 8, "''"), -(13610, 0, "'n '"), -(13623, 0, "'s'"), -(13624, 0, "'e'"), -(13625, 0, "'l'"), -(13626, 0, "'f'"), -(13627, 0, "'.'"), -(13628, 0, "'l'"), -(13629, 0, "'o'"), -(13630, 0, "'c'"), -(13631, 0, "'a'"), -(13632, 0, "'l'"), -(13628, 5, "'local_index'"), -(13639, 0, "' '"), -(13640, 0, "'='"), -(13641, 0, "' '"), -(13642, 0, "'0'"), -(13643, 0, "';'"), -(24426, 0, "'// '"), -(24599, 8, "'cursor.local_index'"), -(25112, 8, "'cursor.local_index'"), -(25642, 33, "''"), -(25641, 1, "''"), -(25798, 0, "'n '"), -(25807, 0, "'let mut item_idx = cursor.local_index;'"), -(25810, 4, "''"), -(24417, 50, "''"), -(13898, 0, "'n '"), -(13907, 0, "'/'"), -(13908, 0, "'/'"), -(13909, 0, "' '"), -(13910, 0, "'N'"), -(13911, 0, "'o'"), -(13912, 0, "'t'"), -(13913, 0, "'e'"), -(13899, 15, "''"), -(13898, 1, "''"), -(13857, 0, "'n '"), -(13862, 0, "'/'"), -(13863, 0, "'/'"), -(13864, 0, "'/'"), -(13865, 0, "' '"), -(13866, 0, "'W'"), -(13867, 0, "'a'"), -(13868, 0, "'r'"), -(13869, 0, "'n'"), -(13870, 0, "'i'"), -(13871, 0, "'n'"), -(13872, 0, "'g'"), -(13873, 0, "':'"), -(13874, 0, "' '"), -(13875, 0, "'T'"), -(13876, 0, "'h'"), -(13877, 0, "'i'"), -(13878, 0, "'s'"), -(13879, 0, "' '"), -(13880, 0, "'r'"), -(13881, 0, "'e'"), -(13882, 0, "'t'"), -(13883, 0, "'u'"), -(13884, 0, "'r'"), -(13885, 0, "'n'"), -(13886, 0, "'s'"), -(13887, 0, "' '"), -(13888, 0, "'f'"), -(13889, 0, "'a'"), -(13890, 0, "'l'"), -(13891, 0, "'s'"), -(13892, 0, "'e'"), -(13893, 0, "' '"), -(13894, 0, "'i'"), -(13895, 0, "'f'"), -(13896, 0, "' '"), -(13897, 0, "'o'"), -(13898, 0, "'n'"), -(13899, 0, "'e'"), -(13900, 0, "' '"), -(13901, 0, "'c'"), -(13902, 0, "'u'"), -(13903, 0, "'r'"), -(13904, 0, "'s'"), -(13905, 0, "'o'"), -(13906, 0, "'r'"), -(13907, 0, "' '"), -(13908, 0, "'i'"), -(13909, 0, "'s'"), -(13910, 0, "' '"), -(13911, 0, "'a'"), -(13912, 0, "'t'"), -(13913, 0, "' '"), -(13914, 0, "'t'"), -(13915, 0, "'h'"), -(13916, 0, "'e'"), -(13917, 0, "'e'"), -(13918, 0, "' '"), -(13918, 1, "''"), -(13917, 1, "''"), -(13917, 0, "' '"), -(13918, 0, "'e'"), -(13919, 0, "'n'"), -(13920, 0, "'d'"), -(13921, 0, "' '"), -(13922, 0, "'f'"), -(13922, 1, "''"), -(13922, 0, "'o'"), -(13923, 0, "'f'"), -(13924, 0, "' '"), -(13925, 0, "'a'"), -(13926, 0, "' '"), -(13927, 0, "'n'"), -(13928, 0, "'o'"), -(13929, 0, "'d'"), -(13930, 0, "'e'"), -(13931, 0, "','"), -(13932, 0, "' '"), -(13933, 0, "'a'"), -(13934, 0, "'n'"), -(13935, 0, "'d'"), -(13936, 0, "' '"), -(13937, 0, "'t'"), -(13938, 0, "'h'"), -(13939, 0, "'e'"), -(13940, 0, "' '"), -(13941, 0, "'o'"), -(13942, 0, "'t'"), -(13943, 0, "'h'"), -(13944, 0, "'e'"), -(13945, 0, "'r'"), -(13946, 0, "' '"), -(13947, 0, "'a'"), -(13948, 0, "'t'"), -(13949, 0, "' '"), -(13950, 0, "'t'"), -(13951, 0, "'h'"), -(13952, 0, "'e'"), -(13953, 0, "' '"), -(13954, 0, "'s'"), -(13955, 0, "'t'"), -(13956, 0, "'a'"), -(13957, 0, "'r'"), -(13958, 0, "'t'"), -(13959, 0, "' '"), -(13960, 0, "'o'"), -(13961, 0, "'f'"), -(13962, 0, "' '"), -(13963, 0, "'t'"), -(13964, 0, "'h'"), -(13965, 0, "'e'"), -(13966, 0, "' '"), -(13967, 0, "'n'"), -(13968, 0, "'e'"), -(13969, 0, "'x'"), -(13970, 0, "'t'"), -(13971, 0, "' '"), -(13972, 0, "'n'"), -(13973, 0, "'o'"), -(13974, 0, "'d'"), -(13975, 0, "'e'"), -(13976, 0, "'.'"), -(13977, 0, "' '"), -(13978, 0, "'A'"), -(13979, 0, "'l'"), -(13980, 0, "'m'"), -(13981, 0, "'o'"), -(13982, 0, "'s'"), -(13983, 0, "'t'"), -(13984, 0, "' '"), -(13985, 0, "'a'"), -(13986, 0, "'l'"), -(13987, 0, "'l'"), -(13988, 0, "' '"), -(13989, 0, "'c'"), -(13990, 0, "'o'"), -(13991, 0, "'d'"), -(13992, 0, "'e'"), -(13993, 0, "' '"), -(13994, 0, "'b'"), -(13995, 0, "'e'"), -(13995, 1, "''"), -(13995, 0, "'i'"), -(13995, 1, "''"), -(13994, 1, "''"), -(13994, 0, "'i'"), -(13995, 0, "'n'"), -(13996, 0, "' '"), -(13997, 0, "'t'"), -(13998, 0, "'h'"), -(13999, 0, "'i'"), -(14000, 0, "'s'"), -(14001, 0, "' '"), -(14002, 0, "'l'"), -(14003, 0, "'i'"), -(14004, 0, "'b'"), -(14005, 0, "'r'"), -(14006, 0, "'a'"), -(14007, 0, "'r'"), -(14008, 0, "'y'"), -(14009, 0, "' '"), -(14010, 0, "'l'"), -(14011, 0, "'e'"), -(14012, 0, "'a'"), -(14013, 0, "'v'"), -(14014, 0, "'e'"), -(14015, 0, "'s'"), -(14016, 0, "' '"), -(14017, 0, "'c'"), -(14018, 0, "'u'"), -(14019, 0, "'r'"), -(14020, 0, "'s'"), -(14021, 0, "'o'"), -(14022, 0, "'r'"), -(14023, 0, "'s'"), -(14024, 0, "' '"), -(14025, 0, "'a'"), -(14026, 0, "'t'"), -(14027, 0, "' '"), -(14028, 0, "'t'"), -(14029, 0, "'h'"), -(14030, 0, "'e'"), -(14031, 0, "'e'"), -(14032, 0, "'n'"), -(14032, 1, "''"), -(14031, 1, "''"), -(14031, 0, "' '"), -(14032, 0, "'e'"), -(14033, 0, "'n'"), -(14034, 0, "'d'"), -(14035, 0, "' '"), -(14036, 0, "'o'"), -(14037, 0, "'f'"), -(14038, 0, "' '"), -(14039, 0, "'n'"), -(14040, 0, "'o'"), -(14041, 0, "'d'"), -(14042, 0, "'e'"), -(14043, 0, "'s'"), -(14044, 0, "','"), -(14045, 0, "' '"), -(14046, 0, "'s'"), -(14047, 0, "'o'"), -(14048, 0, "' '"), -(14049, 0, "'t'"), -(14050, 0, "'h'"), -(14051, 0, "'i'"), -(14052, 0, "'s'"), -(14053, 0, "' '"), -(14054, 0, "'s'"), -(14055, 0, "'h'"), -(14056, 0, "'o'"), -(14057, 0, "'u'"), -(14058, 0, "'l'"), -(14059, 0, "'d'"), -(14060, 0, "'n'"), -(14061, 0, "'''"), -(14062, 0, "'t'"), -(14063, 0, "' '"), -(14064, 0, "'m'"), -(14065, 0, "'a'"), -(14066, 0, "'t'"), -(14067, 0, "'t'"), -(14068, 0, "'e'"), -(14069, 0, "'r'"), -(14070, 0, "' '"), -(14071, 0, "'o'"), -(14071, 1, "''"), -(14071, 0, "'t'"), -(14072, 0, "'o'"), -(14073, 0, "'o'"), -(14074, 0, "' '"), -(14075, 0, "'m'"), -(14076, 0, "'u'"), -(14077, 0, "'c'"), -(14078, 0, "'h'"), -(14079, 0, "' '"), -(14080, 0, "'i'"), -(14081, 0, "'n'"), -(14082, 0, "' '"), -(14083, 0, "'p'"), -(14084, 0, "'r'"), -(14085, 0, "'a'"), -(14086, 0, "'c'"), -(14087, 0, "'t'"), -(14088, 0, "'i'"), -(14089, 0, "'c'"), -(14090, 0, "'e'"), -(14091, 0, "' '"), -(14092, 0, "'n'"), -(14093, 0, "'b'"), -(14094, 0, "'u'"), -(14094, 1, "''"), -(14093, 1, "''"), -(14092, 1, "''"), -(14091, 1, "''"), -(14091, 0, "'.'"), -(13858, 234, "' /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.'"), -(14158, 0, "' if self.userpos != other.userpos { return false; }n'"), -(14158, 59, "''"), -(14198, 0, "' '"), -(14199, 0, "'|'"), -(14200, 0, "'|'"), -(14201, 0, "' '"), -(14202, 0, "'s'"), -(14203, 0, "'e'"), -(14204, 0, "'l'"), -(14205, 0, "'f'"), -(14206, 0, "'.'"), -(14207, 0, "'l'"), -(14208, 0, "'o'"), -(14209, 0, "'c'"), -(14210, 0, "'a'"), -(14211, 0, "'l'"), -(14207, 5, "'local_index'"), -(14218, 0, "' '"), -(14219, 0, "'!'"), -(14220, 0, "'='"), -(14221, 0, "' '"), -(14222, 0, "'s'"), -(14223, 0, "'e'"), -(14223, 1, "''"), -(14222, 1, "''"), -(14222, 0, "'o'"), -(14223, 0, "'t'"), -(14224, 0, "'h'"), -(14225, 0, "'e'"), -(14226, 0, "'r'"), -(14227, 0, "'.'"), -(14228, 0, "'u'"), -(14229, 0, "'s'"), -(14230, 0, "'e'"), -(14231, 0, "'r'"), -(14231, 1, "''"), -(14230, 1, "''"), -(14229, 1, "''"), -(14228, 1, "''"), -(14228, 0, "'l'"), -(14229, 0, "'c'"), -(14230, 0, "'a'"), -(14228, 3, "'local_index'"), -(14198, 1, "''"), -(14198, 0, "'n '"), -(14207, 0, "' '"), -(14253, 1, "''"), -(14253, 0, "'n '"), -(14253, 17, "''"), -(14268, 0, "'n '"), -(14269, 12, "''"), -(14199, 12, "' '"), -(14199, 8, "' '"), -(33923, 0, "'('"), -(33934, 0, "','"), -(33935, 0, "' '"), -(33936, 0, "'o'"), -(33937, 0, "'f'"), -(33938, 0, "'f'"), -(33939, 0, "'s'"), -(33940, 0, "'e'"), -(33941, 0, "'t'"), -(33942, 0, "')'"), -(33991, 0, "'// '"), -(34508, 0, "'c'"), -(34509, 0, "'u'"), -(34510, 0, "'r'"), -(34511, 0, "'s'"), -(34512, 0, "'o'"), -(34513, 0, "'r'"), -(34514, 0, "'.'"), -(34515, 0, "'l'"), -(34516, 0, "'o'"), -(34517, 0, "'c'"), -(34518, 0, "'a'"), -(34515, 4, "'local_index'"), -(34526, 5, "''"), -(34739, 30, "''"), -(34738, 1, "''"), -(34756, 0, "'n '"), -(34773, 0, "'n '"), -(34757, 16, "''"), -(34774, 0, "'l'"), -(34775, 0, "'e'"), -(34776, 0, "'t'"), -(34777, 0, "' '"), -(34778, 0, "'i'"), -(34779, 0, "'n'"), -(34780, 0, "'d'"), -(34781, 0, "'e'"), -(34782, 0, "'x'"), -(34783, 0, "' '"), -(34784, 0, "'='"), -(34785, 0, "' '"), -(34786, 0, "'c'"), -(34787, 0, "'u'"), -(34788, 0, "'r'"), -(34789, 0, "'s'"), -(34790, 0, "'o'"), -(34791, 0, "'r'"), -(34792, 0, "'.'"), -(34793, 0, "'l'"), -(34793, 1, "'local_index'"), -(34804, 0, "';'"), -(36404, 7, "''"), -(36511, 7, "''"), -(35851, 0, "'c'"), -(35852, 0, "'r'"), -(35852, 1, "''"), -(35852, 0, "'u'"), -(35853, 0, "'r'"), -(35854, 0, "'s'"), -(35855, 0, "'o'"), -(35856, 0, "'r'"), -(35857, 0, "'.'"), -(35858, 0, "'l'"), -(35859, 0, "'o'"), -(35860, 0, "'c'"), -(35861, 0, "'a'"), -(35862, 0, "'l'"), -(35863, 0, "'_'"), -(37271, 0, "'('"), -(37274, 0, "','"), -(37275, 0, "' '"), -(37276, 0, "'_'"), -(37277, 0, "')'"), -(21030, 1, "''"), -(21030, 0, "'u'"), -(21031, 0, "'n'"), -(21032, 0, "'s'"), -(21033, 0, "'a'"), -(21034, 0, "'f'"), -(21035, 0, "'e'"), -(21036, 0, "' '"), -(21037, 0, "'{'"), -(21040, 1, "''"), -(21040, 0, "'}'"), -(21038, 0, "'&'"), -(21038, 0, "' '"), -(21042, 0, "' '"), -(27383, 0, "'n '"), -(27396, 0, "'c'"), -(27397, 0, "'u'"), -(27398, 0, "'r'"), -(27399, 0, "'s'"), -(27400, 0, "'o'"), -(27401, 0, "'r'"), -(27402, 0, "'.'"), -(27403, 0, "'l'"), -(27404, 0, "'o'"), -(27405, 0, "'c'"), -(27406, 0, "'a'"), -(27407, 0, "'l'"), -(27403, 5, "'local_index'"), -(27414, 0, "' '"), -(27415, 0, "'+'"), -(27416, 0, "'='"), -(27417, 0, "' '"), -(27418, 0, "'n'"), -(27419, 0, "'u'"), -(27420, 0, "'m'"), -(27421, 0, "'_'"), -(27422, 0, "'i'"), -(27423, 0, "'n'"), -(27418, 6, "'num_inserted_items'"), -(27436, 0, "';'"), -(24551, 0, "'n '"), -(24564, 0, "'c'"), -(24565, 0, "'u'"), -(24566, 0, "'r'"), -(24567, 0, "'s'"), -(24568, 0, "'o'"), -(24569, 0, "'r'"), -(24570, 0, "'.'"), -(24571, 0, "'l'"), -(24572, 0, "'o'"), -(24573, 0, "'c'"), -(24574, 0, "'a'"), -(24571, 4, "'local_index'"), -(24582, 0, "' '"), -(24583, 0, "'='"), -(24584, 0, "' '"), -(24585, 0, "' += contents.len();'"), -(24588, 1, "''"), -(24587, 1, "''"), -(24586, 1, "''"), -(24585, 1, "''"), -(21157, 1, "''"), -(21259, 0, "'n '"), -(21260, 16, "' }'"), -(21273, 0, "' '"), -(21274, 0, "'if usersize > offset {'"), -(21274, 0, "'e'"), -(21275, 0, "'l'"), -(21276, 0, "'s'"), -(21277, 0, "'e'"), -(21278, 0, "' '"), -(21291, 1, "''"), -(21291, 0, "'='"), -(21292, 0, "'='"), -(21302, 0, "'n '"), -(21319, 0, "' cursor.local_index = i;n found = true;n break;'"), -(21303, 32, "' '"), -(21341, 0, "'+'"), -(21342, 0, "'1'"), -(21454, 0, "'n offset -= usersize;'"), -(21454, 0, "'n } else {'"), -(21398, 21, "''"), -(21433, 0, "'n break;'"), -(21375, 23, "''"), -(21410, 0, "'n found = true;'"), -(21345, 30, "''"), -(21380, 0, "'n cursor.local_index = i+1;'"), -(21303, 42, "''"), -(21326, 1, "''"), -(21328, 8, "'0'"), -(21369, 0, "' '"), -(21371, 0, "' '"), -(21005, 0, "' for (i, item) in unsafe { &*e }.content_slice().iter().enumerate() {n let usersize = C::get_usersize(item);n if usersize > offset {n cursor.local_index = i;n found = true;n break;n } else if usersize == offset {n offset = 0;n cursor.local_index = i + 1;n found = true;n break;n } else {n offset -= usersize;n }n }n'"), -(22011, 0, "'// '"), -(21997, 0, "'// '"), -(21961, 0, "'// '"), -(21940, 0, "'// '"), -(21917, 0, "'// '"), -(21887, 0, "'// '"), -(21843, 0, "'// '"), -(21815, 0, "'// '"), -(21772, 0, "'// '"), -(21749, 0, "'// '"), -(21719, 0, "'// '"), -(21679, 0, "'// '"), -(21644, 0, "'// '"), -(21594, 0, "'// '"), -(21517, 0, "'// '"), -(20974, 30, "''"), -(20973, 1, "''"), -(20982, 66, "''"), -(20982, 0, "'w'"), -(20983, 0, "'h'"), -(20984, 0, "'i'"), -(20985, 0, "'l'"), -(20986, 0, "' '"), -(20986, 1, "''"), -(20986, 0, "'e'"), -(20987, 0, "' '"), -(20982, 6, "''"), -(20982, 0, "'l'"), -(20983, 0, "'e'"), -(20984, 0, "'t'"), -(20984, 1, "''"), -(20983, 1, "''"), -(20982, 1, "''"), -(20982, 0, "'f'"), -(20983, 0, "'o'"), -(20984, 0, "'r'"), -(20985, 0, "' '"), -(20986, 0, "'i'"), -(20987, 0, "'n'"), -(20988, 0, "'d'"), -(20989, 0, "'e'"), -(20990, 0, "'x'"), -(20991, 0, "' '"), -(20992, 0, "'i'"), -(20993, 0, "'n'"), -(20994, 0, "' '"), -(20995, 0, "'['"), -(20996, 0, "'0'"), -(20997, 0, "'.'"), -(20998, 0, "'.'"), -(20995, 1, "''"), -(20998, 0, "'='"), -(20973, 0, "'n '"), -(20982, 0, "'l'"), -(20983, 0, "'e'"), -(20984, 0, "'t'"), -(20985, 0, "' '"), -(20986, 0, "'e'"), -(20987, 0, "'n'"), -(20988, 0, "' '"), -(20989, 0, "'='"), -(20990, 0, "' '"), -(20991, 0, "'unsafe { &*e }'"), -(21005, 0, "';'"), -(21032, 0, "'e'"), -(21033, 0, "'n'"), -(21034, 0, "'.'"), -(21035, 0, "'n'"), -(21036, 0, "'u'"), -(21037, 0, "'m'"), -(21035, 3, "'num_items'"), -(21044, 0, "' '"), -(21045, 0, "'a'"), -(21046, 0, "'s'"), -(21047, 0, "' '"), -(21048, 0, "'u'"), -(21049, 0, "'s'"), -(21050, 0, "'i'"), -(21051, 0, "'z'"), -(21052, 0, "'e'"), -(21055, 0, "'n for index in 0..=en.num_items as usize {'"), -(21015, 0, "'// '"), -(21067, 38, "'w'"), -(21068, 0, "'h'"), -(21069, 0, "'i'"), -(21070, 0, "'l'"), -(21071, 0, "'e'"), -(21072, 0, "' '"), -(21073, 0, "'o'"), -(21074, 0, "'f'"), -(21075, 0, "'f'"), -(21076, 0, "'s'"), -(21077, 0, "'e'"), -(21078, 0, "'t'"), -(21079, 0, "' '"), -(21080, 0, "'>'"), -(21081, 0, "' '"), -(21082, 0, "'0'"), -(21058, 0, "'n '"), -(21071, 0, "'l'"), -(21072, 0, "'e'"), -(21073, 0, "'t'"), -(21073, 1, "''"), -(21072, 1, "''"), -(21071, 1, "''"), -(21067, 4, "''"), -(21067, 0, "'l'"), -(21068, 0, "'e'"), -(21069, 0, "'t'"), -(21070, 0, "' '"), -(21071, 0, "'m'"), -(21072, 0, "'u'"), -(21073, 0, "'t'"), -(21074, 0, "' '"), -(21075, 0, "'i'"), -(21076, 0, "'n'"), -(21077, 0, "'d'"), -(21078, 0, "'e'"), -(21079, 0, "'x'"), -(21080, 0, "' '"), -(21081, 0, "'='"), -(21082, 0, "' '"), -(21083, 0, "'0'"), -(21084, 0, "';'"), -(21156, 4, "'e'"), -(21157, 0, "'n'"), -(21158, 0, "'.'"), -(21159, 0, "'i'"), -(21160, 0, "'t'"), -(21161, 0, "'e'"), -(21162, 0, "'m'"), -(21163, 0, "'s'"), -(21164, 0, "'['"), -(21165, 0, "'i'"), -(21166, 0, "'n'"), -(21167, 0, "'d'"), -(21168, 0, "'e'"), -(21169, 0, "'x'"), -(21170, 0, "']'"), -(21156, 0, "'&'"), -(21190, 17, "'o'"), -(21191, 0, "'f'"), -(21192, 0, "'f'"), -(21193, 0, "'s'"), -(21194, 0, "'e'"), -(21195, 0, "'t'"), -(21196, 0, "' '"), -(21197, 0, "'<'"), -(21198, 0, "'='"), -(21199, 0, "' '"), -(21200, 0, "'u'"), -(21201, 0, "'s'"), -(21202, 0, "'e'"), -(21203, 0, "'r'"), -(21204, 0, "'s'"), -(21205, 0, "'i'"), -(21200, 6, "'usersize'"), -(21198, 1, "''"), -(21197, 1, "''"), -(21197, 0, "'>'"), -(21197, 1, "''"), -(21197, 0, "'<='"), -(21200, 8, "'usersi'"), -(21199, 7, "''"), -(21196, 3, "''"), -(21190, 6, "'usersize > offset'"), -(21174, 0, "'n '"), -(21187, 0, "'i'"), -(21188, 0, "'f'"), -(21189, 0, "' '"), -(21190, 0, "'u'"), -(21191, 0, "'s'"), -(21192, 0, "'e'"), -(21193, 0, "'r'"), -(21194, 0, "'s'"), -(21195, 0, "'i'"), -(21190, 6, "'usersize'"), -(21198, 0, "' '"), -(21199, 0, "'<'"), -(21200, 0, "'='"), -(21201, 0, "' '"), -(21202, 0, "'o'"), -(21203, 0, "'f'"), -(21204, 0, "'f'"), -(21205, 0, "'s'"), -(21206, 0, "'e'"), -(21207, 0, "'t'"), -(21208, 0, "' '"), -(21209, 0, "'{'"), -(21210, 0, "'n '"), -(21227, 0, "'o'"), -(21228, 0, "'f'"), -(21229, 0, "'f'"), -(21230, 0, "'s'"), -(21231, 0, "'e'"), -(21232, 0, "'t'"), -(21233, 0, "' '"), -(21234, 0, "'-'"), -(21235, 0, "'='"), -(21236, 0, "' '"), -(21237, 0, "'u'"), -(21238, 0, "'s'"), -(21239, 0, "'e'"), -(21240, 0, "'r'"), -(21241, 0, "'z'"), -(21242, 0, "'i'"), -(21237, 6, "'usersize'"), -(21245, 0, "';'"), -(21246, 0, "'n '"), -(21247, 16, "' }'"), -(21260, 0, "' '"), -(21261, 0, "'e'"), -(21262, 0, "'l'"), -(21263, 0, "'s'"), -(21264, 0, "'e'"), -(21265, 0, "' '"), -(21266, 0, "'{'"), -(21267, 0, "'n '"), -(21284, 0, "'n '"), -(21268, 16, "''"), -(21269, 16, "' }'"), -(21268, 0, "' '"), -(21284, 0, "'/'"), -(21285, 0, "'/'"), -(21286, 0, "' '"), -(21287, 0, "'T'"), -(21288, 0, "'o'"), -(21289, 0, "'o'"), -(21290, 0, "' '"), -(21291, 0, "'b'"), -(21292, 0, "'i'"), -(21293, 0, "'g'"), -(21294, 0, "'!'"), -(21295, 0, "' '"), -(21296, 0, "'W'"), -(21297, 0, "'e'"), -(21298, 0, "'''"), -(21299, 0, "'r'"), -(21300, 0, "'e'"), -(21284, 17, "''"), -(21284, 0, "'b'"), -(21285, 0, "'r'"), -(21286, 0, "'e'"), -(21287, 0, "'a'"), -(21288, 0, "'k'"), -(21289, 0, "';'"), -(21305, 366, "''"), -(21304, 1, "''"), -(21112, 0, "'n '"), -(21125, 0, "'a'"), -(21126, 0, "'s'"), -(21127, 0, "'s'"), -(21128, 0, "'e'"), -(21129, 0, "'r'"), -(21125, 5, "'assert_eq!'"), -(21134, 1, "''"), -(21133, 1, "''"), -(21132, 1, "''"), -(21131, 1, "''"), -(21131, 0, "'!'"), -(21132, 0, "'('"), -(21133, 0, "'i'"), -(21134, 0, "'n'"), -(21135, 0, "'d'"), -(21136, 0, "'e'"), -(21137, 0, "'x'"), -(21138, 0, "' '"), -(21139, 0, "'<'"), -(21140, 0, "' '"), -(21141, 0, "'e'"), -(21142, 0, "'n'"), -(21143, 0, "'.'"), -(21144, 0, "'i'"), -(21145, 0, "'t'"), -(21146, 0, "'e'"), -(21147, 0, "'m'"), -(21148, 0, "'s'"), -(21149, 0, "'.'"), -(21144, 6, "'n'"), -(21145, 0, "'u'"), -(21146, 0, "'m'"), -(21147, 0, "'_'"), -(21148, 0, "'i'"), -(21149, 0, "'t'"), -(21144, 6, "'num_items'"), -(21153, 0, "' '"), -(21154, 0, "'a'"), -(21155, 0, "'s'"), -(21156, 0, "' '"), -(21157, 0, "'u'"), -(21158, 0, "'s'"), -(21159, 0, "'i'"), -(21160, 0, "'z'"), -(21161, 0, "'e'"), -(21162, 0, "')'"), -(21163, 0, "';'"), -(21164, 0, "'n '"), -(21165, 12, "''"), -(21153, 9, "''"), -(21156, 0, "' '"), -(21153, 0, "' as usize'"), -(21007, 51, "''"), -(21877, 1, "''"), -(21886, 0, "'// '"), -(21213, 2, "'>'"), -(21223, 0, "' '"), -(21224, 0, "'b'"), -(21225, 0, "'r'"), -(21226, 0, "'e'"), -(21227, 0, "'a'"), -(21228, 0, "'k'"), -(21229, 0, "';'"), -(21230, 0, "' '"), -(21231, 0, "'}'"), -(21233, 16, "' '"), -(21265, 58, "''"), -(21264, 0, "'n '"), -(21277, 0, "'i'"), -(21278, 0, "'n'"), -(21279, 0, "'d'"), -(21280, 0, "'e'"), -(21281, 0, "'x'"), -(21282, 0, "' '"), -(21283, 0, "'+'"), -(21284, 0, "'='"), -(21285, 0, "' '"), -(21286, 0, "'1'"), -(21287, 0, "';'"), -(21232, 0, "' '"), -(21232, 1, "''"), -(21232, 0, "' '"), -(21232, 1, "''"), -(21232, 0, "' '"), -(21233, 0, "'/'"), -(21234, 0, "'/'"), -(21235, 0, "' '"), -(21236, 0, "'F'"), -(21236, 1, "''"), -(21235, 1, "''"), -(21234, 1, "''"), -(21233, 1, "''"), -(21232, 1, "''"), -(21232, 0, "' '"), -(21233, 0, "'/'"), -(21234, 0, "'/'"), -(21235, 0, "' '"), -(21236, 0, "'W'"), -(21237, 0, "'e'"), -(21238, 0, "'''"), -(21239, 0, "'r'"), -(21240, 0, "'e'"), -(21241, 0, "' '"), -(21242, 0, "'p'"), -(21243, 0, "'a'"), -(21244, 0, "'r'"), -(21245, 0, "'t'"), -(21246, 0, "'w'"), -(21247, 0, "'a'"), -(21248, 0, "'y'"), -(21249, 0, "' '"), -(21250, 0, "'t'"), -(21251, 0, "'h'"), -(21252, 0, "'r'"), -(21253, 0, "'o'"), -(21254, 0, "'u'"), -(21242, 13, "'i'"), -(21243, 0, "'n'"), -(21244, 0, "' '"), -(21245, 0, "'t'"), -(21246, 0, "'h'"), -(21247, 0, "'e'"), -(21248, 0, "' '"), -(21249, 0, "'m'"), -(21250, 0, "'i'"), -(21251, 0, "'d'"), -(21252, 0, "'d'"), -(21253, 0, "'l'"), -(21254, 0, "'e'"), -(21255, 0, "' '"), -(21256, 0, "'o'"), -(21257, 0, "'f'"), -(21258, 0, "' '"), -(21259, 0, "'a'"), -(21260, 0, "'n'"), -(21261, 0, "' '"), -(21262, 0, "'i'"), -(21263, 0, "'t'"), -(21264, 0, "'e'"), -(21265, 0, "'m'"), -(21266, 0, "'.'"), -(21333, 0, "'n '"), -(21342, 0, "'c'"), -(21343, 0, "'u'"), -(21344, 0, "'r'"), -(21345, 0, "'s'"), -(21346, 0, "'o'"), -(21347, 0, "'r'"), -(21348, 0, "'.'"), -(21349, 0, "'i'"), -(21350, 0, "'n'"), -(21351, 0, "'d'"), -(21352, 0, "'e'"), -(21353, 0, "'x'"), -(21354, 0, "' '"), -(21354, 1, "''"), -(21349, 5, "'l'"), -(21350, 0, "'o'"), -(21351, 0, "'c'"), -(21352, 0, "'a'"), -(21353, 0, "'l'"), -(21349, 5, "'local_index'"), -(21360, 0, "' '"), -(21361, 0, "'='"), -(21362, 0, "' '"), -(21363, 0, "'i'"), -(21364, 0, "'n'"), -(21365, 0, "'d'"), -(21366, 0, "'e'"), -(21367, 0, "'x'"), -(21368, 0, "';'"), -(21370, 575, "''"), -(21369, 1, "''"), -(21371, 69, "''"), -(21370, 1, "''"), -(21369, 1, "''"), -(21371, 147, "''"), -(20753, 0, "' // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());n'"), -(20753, 8, "'n '"), -(20975, 99, "''"), -(20975, 47, "''"), -(20974, 1, "''"), -(21007, 1, "''"), -(21034, 0, "'n '"), -(21035, 8, "''"), -(13678, 0, "'n '"), -(13683, 0, "'n '"), -(13679, 4, "''"), -(13684, 0, "'f'"), -(13685, 0, "'n'"), -(13686, 0, "' '"), -(13687, 0, "'a'"), -(13688, 0, "'d'"), -(13689, 0, "'v'"), -(13690, 0, "'a'"), -(13691, 0, "'n'"), -(13692, 0, "'c'"), -(13693, 0, "'e'"), -(13694, 0, "'_'"), -(13695, 0, "'i'"), -(13696, 0, "'t'"), -(13697, 0, "'e'"), -(13698, 0, "'m'"), -(13699, 0, "'('"), -(13700, 0, "'*'"), -(13700, 1, "''"), -(13700, 0, "'&'"), -(13701, 0, "'m'"), -(13702, 0, "'u'"), -(13703, 0, "'t'"), -(13704, 0, "' '"), -(13705, 0, "'s'"), -(13706, 0, "'e'"), -(13707, 0, "'l'"), -(13708, 0, "'f'"), -(13709, 0, "')'"), -(13710, 0, "' '"), -(13711, 0, "'{'"), -(13712, 0, "'n '"), -(13721, 0, "'n '"), -(13713, 8, "''"), -(13714, 8, "' }'"), -(13713, 0, "' '"), -(13721, 0, "'if cursor.local_index == (*e).num_items as usize {'"), -(13721, 0, "'// '"), -(13678, 0, "'n '"), -(13683, 0, "'n '"), -(13679, 4, "''"), -(13684, 0, "'f'"), -(13685, 0, "'n'"), -(13686, 0, "' '"), -(13687, 0, "'i'"), -(13688, 0, "'s'"), -(13689, 0, "'_'"), -(13690, 0, "'a'"), -(13691, 0, "'t'"), -(13692, 0, "'_'"), -(13693, 0, "'n'"), -(13694, 0, "'o'"), -(13695, 0, "'d'"), -(13696, 0, "'e'"), -(13697, 0, "'_'"), -(13698, 0, "'e'"), -(13699, 0, "'n'"), -(13700, 0, "'d'"), -(13701, 0, "'('"), -(13702, 0, "'&'"), -(13703, 0, "'s'"), -(13704, 0, "'e'"), -(13705, 0, "'l'"), -(13706, 0, "'f'"), -(13707, 0, "')'"), -(13708, 0, "' '"), -(13709, 0, "'-'"), -(13710, 0, "'>'"), -(13711, 0, "' '"), -(13712, 0, "'b'"), -(13713, 0, "'o'"), -(13714, 0, "'o'"), -(13715, 0, "'l'"), -(13716, 0, "' '"), -(13717, 0, "'{'"), -(13718, 0, "'n '"), -(13727, 0, "'n '"), -(13719, 8, "''"), -(13720, 8, "' }'"), -(13719, 0, "'if cursor.local_index == (*e).num_items as usize {'"), -(13719, 0, "' '"), -(13727, 2, "''"), -(13727, 1, "''"), -(13727, 6, "'s'"), -(13728, 0, "'e'"), -(13729, 0, "'l'"), -(13730, 0, "'f'"), -(13749, 1, "''"), -(13749, 0, "'self.entries[0].node'"), -(13790, 1, "''"), -(13789, 1, "''"), -(13747, 0, "'n'"), -(13747, 1, "''"), -(13747, 0, "'u'"), -(13748, 0, "'n'"), -(13749, 0, "'s'"), -(13750, 0, "'a'"), -(13751, 0, "'f'"), -(13752, 0, "'e'"), -(13753, 0, "' '"), -(13754, 0, "'{'"), -(13755, 0, "' '"), -(13756, 1, "''"), -(13756, 0, "'('"), -(13789, 0, "' '"), -(13790, 0, "'}'"), -(13840, 0, "'n '"), -(13849, 0, "'i'"), -(13850, 0, "'f'"), -(13851, 0, "' '"), -(13852, 0, "'s'"), -(13853, 0, "'e'"), -(13854, 0, "'l'"), -(13855, 0, "'f'"), -(13856, 0, "'.'"), -(13857, 0, "'i'"), -(13858, 0, "'s'"), -(13859, 0, "'_'"), -(13857, 3, "'is_at_node_end()'"), -(13873, 0, "' '"), -(13874, 0, "'{'"), -(13875, 0, "' '"), -(13876, 0, "'a'"), -(13877, 0, "'d'"), -(13878, 0, "'v'"), -(13879, 0, "'a'"), -(13876, 4, "'advance_by'"), -(13885, 1, "''"), -(13884, 1, "''"), -(13883, 1, "''"), -(13876, 7, "'advance_node'"), -(13888, 0, "'('"), -(13889, 0, "')'"), -(13890, 0, "';'"), -(13891, 0, "' '"), -(13892, 0, "'}'"), -(13893, 0, "'n '"), -(13894, 8, "''"), -(13876, 0, "'s'"), -(13877, 0, "'e'"), -(13878, 0, "'l'"), -(13879, 0, "'f'"), -(13880, 0, "'.'"), -(13849, 2, "'s'"), -(13849, 1, "''"), -(13849, 0, "'w'"), -(13850, 0, "'h'"), -(13851, 0, "'i'"), -(13852, 0, "'l'"), -(13853, 0, "'e'"), -(13902, 0, "' '"), -(17086, 0, "' assert!(n.num_items as usize <= NODE_NUM_ITEMS);n'"), -(13902, 8, "''"), -(17179, 26, "'>'"), -(17180, 0, "' '"), -(17181, 0, "'0'"), -(17184, 0, "' '"), -(17185, 0, "'/'"), -(17186, 0, "'/'"), -(17187, 0, "' '"), -(17188, 0, "'e'"), -(17189, 0, "'m'"), -(17190, 0, "'p'"), -(17191, 0, "'t'"), -(17192, 0, "'y'"), -(17193, 0, "' '"), -(17194, 0, "'n'"), -(17195, 0, "'o'"), -(17196, 0, "'d'"), -(17197, 0, "'d'"), -(17198, 0, "'e'"), -(17199, 0, "'s'"), -(17184, 16, "''"), -(17182, 0, "','"), -(17183, 0, "' '"), -(17184, 0, "'''"), -(17185, 0, "'E'"), -(17186, 0, "'m'"), -(17187, 0, "'p'"), -(17188, 0, "'t'"), -(17189, 0, "'y'"), -(17190, 0, "' '"), -(17191, 0, "'n'"), -(17192, 0, "'o'"), -(17193, 0, "'t'"), -(17193, 1, "''"), -(17193, 0, "'d'"), -(17194, 0, "'e'"), -(17195, 0, "'s'"), -(17196, 0, "' '"), -(17197, 0, "'n'"), -(17198, 0, "'o'"), -(17199, 0, "'t'"), -(17200, 0, "' '"), -(17201, 0, "'a'"), -(17202, 0, "'l'"), -(17203, 0, "'l'"), -(17204, 0, "'o'"), -(17205, 0, "'w'"), -(17206, 0, "'e'"), -(17207, 0, "'d'"), -(17208, 0, "'''"), -(13849, 5, "'i'"), -(13850, 0, "'f'"), -(13898, 0, "'n '"), -(13907, 0, "'/'"), -(13908, 0, "'/'"), -(13909, 0, "' '"), -(13910, 0, "'T'"), -(13911, 0, "'e'"), -(13912, 0, "'h'"), -(13913, 0, "' '"), -(13914, 0, "'n'"), -(13915, 0, "'o'"), -(13916, 0, "'d'"), -(13917, 0, "'e'"), -(13910, 8, "''"), -(13910, 0, "'T'"), -(13911, 0, "'h'"), -(13912, 0, "'e'"), -(13913, 0, "' '"), -(13913, 1, "''"), -(13907, 6, "''"), -(13907, 0, "'s'"), -(13908, 0, "'e'"), -(13909, 0, "'l'"), -(13910, 0, "'f'"), -(13911, 0, "'.'"), -(13912, 0, "'l'"), -(13913, 0, "'o'"), -(13914, 0, "'c'"), -(13915, 0, "'a'"), -(13916, 0, "'l'"), -(13912, 5, "'local_index'"), -(13923, 0, "' '"), -(13924, 0, "'+'"), -(13925, 0, "'='"), -(13926, 0, "' '"), -(13927, 0, "'1'"), -(13928, 0, "';'"), -(13930, 63, "''"), -(13935, 0, "'n '"), -(13940, 0, "'n '"), -(13936, 4, "''"), -(13941, 0, "'f'"), -(13942, 0, "'n'"), -(13943, 0, "' '"), -(13944, 0, "'a'"), -(13945, 0, "'d'"), -(13946, 0, "'v'"), -(13947, 0, "'a'"), -(13948, 0, "'n'"), -(13949, 0, "'c'"), -(13950, 0, "'e'"), -(13951, 0, "'_'"), -(13952, 0, "'b'"), -(13953, 0, "'y'"), -(13954, 0, "'_'"), -(13955, 0, "'i'"), -(13956, 0, "'t'"), -(13957, 0, "'e'"), -(13958, 0, "'m'"), -(13959, 0, "'s'"), -(13960, 0, "'('"), -(13961, 0, "'&'"), -(13962, 0, "'m'"), -(13963, 0, "'u'"), -(13964, 0, "'s'"), -(13965, 0, "'t'"), -(13966, 0, "' '"), -(13966, 1, "''"), -(13965, 1, "''"), -(13964, 1, "''"), -(13964, 0, "'t'"), -(13965, 0, "' '"), -(13966, 0, "'s'"), -(13967, 0, "'e'"), -(13968, 0, "'l'"), -(13969, 0, "'f'"), -(13970, 0, "')'"), -(13971, 0, "' '"), -(13972, 0, "'{'"), -(13973, 0, "'n '"), -(13982, 0, "'n '"), -(13974, 8, "''"), -(13975, 8, "' }'"), -(13974, 0, "' '"), -(13982, 0, "'f'"), -(13983, 0, "'o'"), -(13984, 0, "'r'"), -(13985, 0, "' '"), -(13986, 0, "'0'"), -(13986, 1, "''"), -(13986, 0, "'_'"), -(13987, 0, "' '"), -(13987, 1, "''"), -(13986, 1, "''"), -(13986, 0, "'0'"), -(13987, 0, "'.'"), -(13988, 0, "'.'"), -(13970, 0, "' '"), -(13970, 1, "''"), -(13970, 0, "','"), -(13971, 0, "' '"), -(13972, 0, "'n'"), -(13973, 0, "'u'"), -(13974, 0, "'m'"), -(13975, 0, "':'"), -(13976, 0, "' '"), -(13977, 0, "'u'"), -(13978, 0, "'s'"), -(13979, 0, "'i'"), -(13980, 0, "'z'"), -(13981, 0, "'e'"), -(14001, 0, "'n'"), -(14002, 0, "'u'"), -(14003, 0, "'m'"), -(14004, 0, "' '"), -(14005, 0, "'{'"), -(14006, 0, "' '"), -(14007, 0, "'s'"), -(14008, 0, "'e'"), -(14009, 0, "'l'"), -(14010, 0, "'f'"), -(14011, 0, "'.'"), -(14012, 0, "'a'"), -(14013, 0, "'d'"), -(14014, 0, "'v'"), -(14012, 3, "'advance_item()'"), -(14026, 0, "';'"), -(14027, 0, "' '"), -(14028, 0, "'}'"), -(13997, 0, "' '"), -(13998, 0, "'_'"), -(13999, 0, "' '"), -(14000, 0, "'i'"), -(14001, 0, "'n'"), -(37673, 0, "'n let (c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));'"), -(37597, 0, "'// '"), -(37731, 32, "''"), -(37733, 0, "'n '"), -(37746, 0, "'c'"), -(37747, 0, "'2'"), -(37748, 0, "'.'"), -(37749, 0, "'a'"), -(37750, 0, "'d'"), -(37751, 0, "'v'"), -(37749, 3, "'advance_by_items(num: usize)'"), -(37766, 10, "'c'"), -(37767, 0, "'o'"), -(37768, 0, "'n'"), -(37769, 0, "'t'"), -(37770, 0, "'e'"), -(37771, 0, "'n'"), -(37772, 0, "'t'"), -(37773, 0, "'s'"), -(37774, 0, "'.'"), -(37775, 0, "'l'"), -(37776, 0, "'e'"), -(37777, 0, "'n'"), -(37778, 0, "'('"), -(37779, 1, "')'"), -(37780, 0, "')'"), -(37781, 0, "';'"), -(37694, 0, "'m'"), -(37695, 0, "'u'"), -(37696, 0, "'t'"), -(37697, 0, "' '"), -(16996, 0, "'n '"), -(17013, 0, "'e'"), -(17014, 0, "'t'"), -(17015, 0, "' '"), -(17015, 1, "''"), -(17014, 1, "''"), -(17013, 1, "''"), -(17013, 0, "'l'"), -(17014, 0, "'e'"), -(17015, 0, "'t'"), -(17016, 0, "' '"), -(17017, 0, "'i'"), -(17018, 0, "'s'"), -(17019, 0, "'_'"), -(17020, 0, "'h'"), -(17021, 0, "'e'"), -(17022, 0, "'a'"), -(17023, 0, "'d'"), -(17024, 0, "' '"), -(17025, 0, "'='"), -(17026, 0, "' '"), -(17052, 53, "''"), -(17027, 0, "'(n as *const Node == &self.head as *const Node)'"), -(17079, 1, "''"), -(17027, 1, "''"), -(17071, 7, "'_'"), -(17039, 7, "'_'"), -(17066, 0, "';'"), -(17092, 0, "'i'"), -(17093, 0, "'s'"), -(17094, 0, "'_'"), -(17095, 0, "'h'"), -(17096, 0, "'e'"), -(17097, 0, "'a'"), -(17098, 0, "'d'"), -(17238, 69, "''"), -(17084, 0, "'i'"), -(17085, 0, "'f'"), -(17086, 0, "' '"), -(17087, 0, "'!'"), -(17088, 0, "'i'"), -(17089, 0, "'s'"), -(17090, 0, "'_'"), -(17091, 0, "'h'"), -(17092, 0, "'e'"), -(17093, 0, "'a'"), -(17094, 0, "'d'"), -(17095, 0, "' '"), -(17104, 11, "''"), -(17121, 0, "'}'"), -(17096, 0, "'{'"), -(17097, 0, "' '"), -(17123, 0, "' '"), -(17125, 0, "'n '"), -(17126, 16, "''"), -(17125, 1, "''"), -(13898, 0, "'n '"), -(13907, 0, "'l'"), -(13908, 0, "'e'"), -(13909, 0, "'t'"), -(13910, 0, "' '"), -(13911, 0, "'s'"), -(13912, 0, "'i'"), -(13913, 0, "'z'"), -(13914, 0, "'e'"), -(13915, 0, "' '"), -(13916, 0, "'='"), -(13917, 0, "' '"), -(13907, 11, "''"), -(13907, 0, "'l'"), -(13908, 0, "'e'"), -(13909, 0, "'t'"), -(13910, 0, "' '"), -(13758, 20, "'h'"), -(13759, 0, "'e'"), -(13760, 0, "'r'"), -(13761, 0, "'e'"), -(13758, 4, "'s'"), -(13759, 0, "'e'"), -(13760, 0, "'l'"), -(13761, 0, "'f'"), -(13762, 0, "'.'"), -(13763, 0, "'h'"), -(13764, 0, "'e'"), -(13765, 0, "'r'"), -(13766, 0, "'e'"), -(13763, 4, "'here_ptr()'"), -(13832, 0, "','"), -(13833, 0, "' '"), -(13834, 0, "'h'"), -(13835, 0, "'e'"), -(13836, 0, "'i'"), -(13837, 0, "'g'"), -(13838, 0, "'h'"), -(13839, 0, "'t'"), -(13840, 0, "':'"), -(13841, 0, "' '"), -(13842, 0, "'s'"), -(13843, 0, "'z'"), -(13843, 1, "''"), -(13843, 0, "'i'"), -(13844, 0, "'z'"), -(13845, 0, "'e'"), -(13846, 0, "'-'"), -(13846, 1, "''"), -(13842, 4, "'u'"), -(13843, 0, "'s'"), -(13844, 0, "'i'"), -(13845, 0, "'z'"), -(13846, 0, "'e'"), -(14005, 0, "','"), -(14006, 0, "' '"), -(14007, 0, "'h'"), -(14008, 0, "'e'"), -(14009, 0, "'i'"), -(14010, 0, "'g'"), -(14011, 0, "'h'"), -(14012, 0, "'t'"), -(14013, 0, "':'"), -(14014, 0, "' '"), -(14015, 0, "'u'"), -(14016, 0, "'s'"), -(14017, 0, "'i'"), -(14018, 0, "'z'"), -(14019, 0, "'e'"), -(14068, 0, "'h'"), -(14069, 0, "'e'"), -(14070, 0, "'i'"), -(14071, 0, "'g'"), -(14072, 0, "'h'"), -(14073, 0, "'t'"), -(13921, 0, "'u'"), -(13922, 0, "'s'"), -(13923, 0, "'e'"), -(13924, 0, "'r'"), -(13925, 0, "'s'"), -(13926, 0, "'i'"), -(13927, 0, "'z'"), -(13928, 0, "'e'"), -(13929, 0, "' '"), -(13930, 0, "'='"), -(13931, 0, "' '"), -(13932, 0, "'s'"), -(13933, 0, "'e'"), -(13934, 0, "'l'"), -(13935, 0, "'f'"), -(13936, 0, "'.'"), -(13937, 0, "'h'"), -(13938, 0, "'e'"), -(13939, 0, "'r'"), -(13940, 0, "'e'"), -(13937, 4, "'here_ptr()'"), -(13932, 0, "'u'"), -(13933, 0, "'n'"), -(13934, 0, "'s'"), -(13935, 0, "'a'"), -(13936, 0, "'f'"), -(13937, 0, "'e'"), -(13938, 0, "' '"), -(13939, 0, "'{'"), -(13940, 0, "' '"), -(13941, 0, "'*'"), -(13941, 0, "'('"), -(13958, 0, "')'"), -(13959, 0, "'.'"), -(13960, 0, "'i'"), -(13961, 0, "'t'"), -(13962, 0, "'e'"), -(13963, 0, "'m'"), -(13964, 0, "'s'"), -(13965, 0, "'['"), -(13966, 0, "'self.local_index'"), -(13982, 0, "']'"), -(13983, 0, "' '"), -(13984, 0, "'}'"), -(13985, 0, "';'"), -(13908, 0, "'n '"), -(13917, 0, "'l'"), -(13918, 0, "'e'"), -(13919, 0, "'t'"), -(13920, 0, "' '"), -(13921, 0, "'f'"), -(13922, 0, "'i'"), -(13923, 0, "'r'"), -(13924, 0, "'s'"), -(13925, 0, "'t'"), -(13926, 0, "'_'"), -(13927, 0, "'i'"), -(13928, 0, "'t'"), -(13929, 0, "'e'"), -(13930, 0, "'m'"), -(13931, 0, "' '"), -(13932, 0, "'='"), -(13933, 0, "' '"), -(13958, 54, "''"), -(13934, 0, "'unsafe { (*self.here_ptr()).items[self.local_index] };'"), -(13921, 10, "'c'"), -(13922, 0, "'u'"), -(13923, 0, "'r'"), -(13924, 0, "'r'"), -(13925, 0, "'e'"), -(13926, 0, "'n'"), -(13927, 0, "'t'"), -(13928, 0, "'_'"), -(13929, 0, "'i'"), -(13930, 0, "'t'"), -(13931, 0, "'e'"), -(13932, 0, "'m'"), -(14177, 0, "'n '"), -(14182, 0, "'n '"), -(14178, 4, "''"), -(14183, 0, "'f'"), -(14184, 0, "'n'"), -(14185, 0, "' '"), -(14186, 0, "'c'"), -(14187, 0, "'u'"), -(14188, 0, "'r'"), -(14189, 0, "'r'"), -(14190, 0, "'e'"), -(14191, 0, "'n'"), -(14192, 0, "'t'"), -(14193, 0, "'_'"), -(14194, 0, "'i'"), -(14195, 0, "'t'"), -(14196, 0, "'e'"), -(14197, 0, "'m'"), -(14183, 0, "'u'"), -(14184, 0, "'n'"), -(14185, 0, "'s'"), -(14186, 0, "'a'"), -(14187, 0, "'f'"), -(14188, 0, "'e'"), -(14189, 0, "' '"), -(14205, 0, "'('"), -(14206, 0, "'&'"), -(14207, 0, "'u'"), -(14207, 1, "''"), -(14207, 0, "'m'"), -(14208, 0, "'u'"), -(14209, 0, "'t'"), -(14210, 0, "' '"), -(14211, 0, "'s'"), -(14212, 0, "'e'"), -(14213, 0, "'l'"), -(14214, 0, "'f'"), -(14215, 0, "')'"), -(14216, 0, "' '"), -(14217, 0, "'{'"), -(14218, 0, "'n '"), -(14227, 0, "'n '"), -(14219, 8, "''"), -(14220, 8, "' }'"), -(14219, 0, "'(*self.here_ptr()).items[self.local_index]'"), -(14219, 0, "' '"), -(14227, 1, "''"), -(14243, 1, "''"), -(14227, 0, "'('"), -(14244, 0, "')'"), -(14216, 0, "' '"), -(14217, 0, "'-'"), -(14218, 0, "'>'"), -(14219, 0, "' '"), -(14220, 0, "'&'"), -(14221, 0, "'T'"), -(14221, 1, "''"), -(14221, 0, "'C'"), -(14222, 0, "':'"), -(14223, 0, "':'"), -(14224, 0, "'I'"), -(14225, 0, "'t'"), -(14226, 0, "'e'"), -(14227, 0, "'m'"), -(14239, 0, "'&'"), -(14014, 0, "'u'"), -(14015, 0, "'n'"), -(14016, 0, "'s'"), -(14017, 0, "'a'"), -(14018, 0, "'f'"), -(14019, 0, "'e'"), -(14020, 0, "' '"), -(14021, 0, "'{'"), -(14022, 0, "' '"), -(14023, 0, "'s'"), -(14024, 0, "'e'"), -(14025, 0, "'l'"), -(14026, 0, "'f'"), -(14027, 0, "'.'"), -(14028, 0, "'c'"), -(14029, 0, "'u'"), -(14030, 0, "'r'"), -(14031, 0, "'r'"), -(14028, 4, "'Current'"), -(14028, 7, "'c'"), -(14029, 0, "'u'"), -(14030, 0, "'r'"), -(14031, 0, "'r'"), -(14032, 0, "'e'"), -(14033, 0, "'n'"), -(14034, 0, "'t'"), -(14035, 0, "'_'"), -(14036, 0, "'i'"), -(14028, 9, "'current_item'"), -(14040, 0, "'('"), -(14041, 0, "')'"), -(14042, 0, "' '"), -(14043, 0, "'}'"), -(14013, 0, "' '"), -(14014, 0, "'C'"), -(14015, 0, "':'"), -(14016, 0, "':'"), -(14017, 0, "'get_usersize(_item: &Self::Item)'"), -(14030, 18, "''"), -(14030, 1, "''"), -(14030, 1, "''"), -(14060, 0, "')'"), -(14061, 0, "';'"), -(13909, 81, "''"), -(13908, 1, "''"), -(13980, 0, "'n '"), -(13989, 0, "'n '"), -(13981, 8, "''"), -(13990, 0, "'f'"), -(13991, 0, "'o'"), -(13992, 0, "'r'"), -(13993, 0, "' '"), -(13994, 0, "'_'"), -(13995, 0, "' '"), -(13996, 0, "'i'"), -(13997, 0, "' '"), -(13997, 1, "''"), -(13997, 0, "'n'"), -(13998, 0, "' '"), -(13999, 0, "'0'"), -(14000, 0, "'.'"), -(14001, 0, "'.'"), -(14002, 0, "'h'"), -(14003, 0, "'e'"), -(14004, 0, "'i'"), -(14005, 0, "'g'"), -(14006, 0, "'h'"), -(14007, 0, "'t'"), -(14008, 0, "' '"), -(14009, 0, "'{'"), -(14010, 0, "'n '"), -(14023, 0, "'n '"), -(14011, 12, "''"), -(14012, 12, "' }'"), -(14011, 0, "' '"), -(14023, 0, "'e'"), -(14024, 0, "'s'"), -(14025, 0, "'l'"), -(14026, 0, "'f'"), -(14026, 1, "''"), -(14025, 1, "''"), -(14024, 1, "''"), -(14023, 1, "''"), -(14023, 0, "'s'"), -(14024, 0, "'e'"), -(14025, 0, "'l'"), -(14026, 0, "'f'"), -(14027, 0, "'.'"), -(14028, 0, "'e'"), -(14029, 0, "'n'"), -(14030, 0, "'t'"), -(14028, 3, "'entries'"), -(14035, 0, "'['"), -(14036, 0, "'i'"), -(14037, 0, "']'"), -(14038, 0, "'.'"), -(14039, 0, "'s'"), -(14040, 0, "'k'"), -(14041, 0, "'i'"), -(14042, 0, "'p'"), -(14043, 0, "'_'"), -(14044, 0, "'u'"), -(14045, 0, "'s'"), -(14039, 7, "'skip_usersize'"), -(14052, 0, "' '"), -(14053, 0, "'+'"), -(14054, 0, "'='"), -(14055, 0, "' '"), -(14056, 0, "'u'"), -(14057, 0, "'s'"), -(14058, 0, "'e'"), -(14059, 0, "'r'"), -(14060, 0, "'s'"), -(14061, 0, "'i'"), -(14062, 0, "'z'"), -(14063, 0, "'e'"), -(14064, 0, "';'"), -(14075, 0, "'n '"), -(14084, 0, "'s'"), -(14085, 0, "'e'"), -(14086, 0, "'l'"), -(14087, 0, "'f'"), -(14088, 0, "'.'"), -(14089, 0, "'g'"), -(14090, 0, "'l'"), -(14091, 0, "'o'"), -(14089, 3, "'u'"), -(14090, 0, "'s'"), -(14091, 0, "'e'"), -(14092, 0, "'r'"), -(14089, 4, "'userpos'"), -(14096, 0, "' '"), -(14097, 0, "'+'"), -(14098, 0, "' '"), -(14098, 1, "''"), -(14098, 0, "'='"), -(14099, 0, "' '"), -(14100, 0, "'u'"), -(14101, 0, "'s'"), -(14102, 0, "'e'"), -(14103, 0, "'r'"), -(14104, 0, "'s'"), -(14105, 0, "'i'"), -(14106, 0, "'z'"), -(14107, 0, "'e'"), -(14108, 0, "';'"), -(13994, 1, "''"), -(13994, 0, "'e'"), -(13995, 0, "'n'"), -(13996, 0, "'t'"), -(13997, 0, "'r'"), -(13998, 0, "'y'"), -(14003, 0, "'s'"), -(14004, 0, "'e'"), -(14005, 0, "'l'"), -(14006, 0, "'f'"), -(14007, 0, "'.'"), -(14008, 0, "'e'"), -(14009, 0, "'n'"), -(14010, 0, "'t'"), -(14011, 0, "'r'"), -(14012, 0, "'i'"), -(14013, 0, "'e'"), -(14014, 0, "'s'"), -(14015, 0, "'['"), -(14025, 0, "']'"), -(14041, 15, "'e'"), -(14042, 0, "'n'"), -(14043, 0, "'t'"), -(14044, 0, "'r'"), -(14045, 0, "'y'"), -(14026, 0, "'.'"), -(14027, 0, "'i'"), -(14028, 0, "'t'"), -(14029, 0, "'e'"), -(14030, 0, "'r'"), -(14031, 0, "'9'"), -(14031, 1, "''"), -(14031, 0, "'('"), -(14032, 0, "')'"), -(14026, 7, "''"), -(14003, 0, "'&'"), -(14004, 0, "'m'"), -(14005, 0, "'u'"), -(14006, 0, "'t'"), -(14007, 0, "' '"), -(14004, 3, "''"), -(14004, 1, "''"), -(38097, 0, "','"), -(38098, 0, "' '"), -(38099, 0, "'s'"), -(38100, 0, "'e'"), -(38101, 0, "'l'"), -(38102, 0, "'f'"), -(38103, 0, "'.'"), -(38104, 0, "'h'"), -(38105, 0, "'e'"), -(38106, 0, "'i'"), -(38107, 0, "'n '"), -(38108, 8, "''"), -(38107, 1, "''"), -(38106, 1, "''"), -(38106, 0, "'i'"), -(38107, 0, "'g'"), -(38108, 0, "'h'"), -(38109, 0, "'t'"), -(38104, 0, "'e'"), -(38105, 0, "'a'"), -(38105, 1, "''"), -(38104, 1, "''"), -(38104, 0, "'h'"), -(38105, 0, "'e'"), -(38106, 0, "'a'"), -(38107, 0, "'d'"), -(38108, 0, "'.'"), -(38115, 0, "' '"), -(38116, 0, "'a'"), -(38117, 0, "'s'"), -(38118, 0, "' '"), -(38119, 0, "'u'"), -(38120, 0, "'s'"), -(38121, 0, "'z'"), -(38119, 3, "'usize'"), -(14212, 5, "'u'"), -(14213, 0, "'8'"), -(13842, 5, "'u'"), -(13843, 0, "'8'"), -(14023, 0, "' '"), -(14024, 0, "'a'"), -(14025, 0, "'s'"), -(14026, 0, "' '"), -(14027, 0, "'u'"), -(14028, 0, "'s'"), -(14029, 0, "'i'"), -(14030, 0, "'z'"), -(14031, 0, "'e'"), -(38118, 9, "''"), -(14001, 0, "'m'"), -(14002, 0, "'u'"), -(14003, 0, "'t'"), -(14004, 0, "' '"), -(38208, 76, "''"), -(37905, 92, "''"), -(38582, 63, "'n '"), -(38591, 0, "' #[cfg(debug_assertions)] {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(contents.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after insert'); }n }n'"), -(38583, 16, "' '"), -(38828, 1, "''"), -(38679, 67, "''"), -(38740, 6, "'d'"), -(38741, 0, "'e'"), -(38742, 0, "'l'"), -(38743, 0, "'e'"), -(38744, 0, "'t'"), -(38745, 0, "'e'"), -(38635, 3, "''"), -(38635, 1, "''"), -(37480, 3, "''"), -(37403, 3, "''"), -(37332, 3, "''"), -(37294, 3, "''"), -(34406, 3, "''"), -(34410, 23, "'a'"), -(34411, 0, "'d'"), -(34412, 0, "'v'"), -(34413, 0, "'a'"), -(34414, 0, "'n'"), -(34415, 0, "'c'"), -(34416, 0, "'e'"), -(34417, 0, "'d'"), -(34418, 0, "'_'"), -(34419, 0, "'b'"), -(34420, 0, "'y'"), -(34424, 16, "''"), -(37357, 0, "'n '"), -(37370, 0, "'c2.advance_by_items(contents.len(), self.head.height);'"), -(37332, 23, "'c2.advance_by_items(contents.len(), self.head.height);'"), -(37332, 54, "'expected_final_position'"), -(37332, 23, "'s'"), -(37333, 0, "'t'"), -(37334, 0, "'a'"), -(37335, 0, "'r'"), -(37332, 4, "'start_userpos'"), -(37380, 14, "''"), -(37380, 0, "'a'"), -(37381, 0, "'d'"), -(37382, 0, "'v'"), -(37383, 0, "'a'"), -(37380, 4, "'advanced_by'"), -(37306, 0, "'m'"), -(37307, 0, "'u'"), -(37308, 0, "'t'"), -(37309, 0, "' '"), -(37306, 0, "'('"), -(37313, 0, "','"), -(37314, 0, "' '"), -(37315, 0, "'_'"), -(37316, 0, "')'"), -(34446, 0, "';'"), -(34447, 0, "'/'"), -(34448, 0, "'/'"), -(34447, 19, "''"), -(1150, 1, "''"), -(1150, 0, "'1'"), -(1150, 1, "''"), -(1150, 0, "'1'"), -(1151, 0, "'0'"), -(1152, 0, "'0'"), -(1150, 3, "''"), -(1150, 0, "'1'"), -(1449, 1, "''"), -(1449, 0, "'2'"), -(1449, 1, "''"), -(1449, 0, "'1'"), -(1450, 0, "'0'"), -(1119, 0, "'n'"), -(1120, 0, "'#[cfg(test)]'"), -(1094, 0, "'_'"), -(1094, 1, "''"), -(1082, 3, "''"), -(1116, 13, "''"), -(1082, 0, "'#[cfg(test)]n'"), -(1129, 33, "''"), -(1095, 0, "'const NODE_NUM_ITEMS: usize = 1;n'"), -(1082, 0, "'#[cfg(test)]n'"), -(1107, 33, "''"), -(1095, 0, "'const NODE_NUM_ITEMS: usize = 1;n'"), -(1134, 0, "'!'"), -(1134, 1, "''"), -(1130, 0, "'!'"), -(1130, 1, "''"), -(1133, 0, "'!'"), -(1133, 1, "''"), -(1133, 0, "')'"), -(1134, 0, "'n'"), -(1135, 0, "'o'"), -(1135, 1, "''"), -(1134, 1, "''"), -(1133, 1, "''"), -(1133, 0, "'('"), -(1134, 0, "'n'"), -(1135, 0, "'o'"), -(1136, 0, "'t'"), -(1143, 0, "')'"), -(1451, 30, "'#[cfg(test)]nconst NODE_NUM_ITEMS: usize = 1;n#[cfg(not(test))]nconst NODE_NUM_ITEMS: usize = 100;n'"), -(1451, 99, "'const MAX_HEIGHT: usize = 10;n'"), -(1451, 0, "'n'"), -(1451, 0, "'#[cfg(test)]nconst NODE_NUM_ITEMS: usize = 1;n#[cfg(not(test))]nconst NODE_NUM_ITEMS: usize = 100;n'"), -(1580, 0, "'n'"), -(1550, 1, "''"), -(1579, 0, "'nconst NODE_NUM_ITEMS: usize = 100;'"), -(1515, 35, "''"), -(1545, 35, "''"), -(1544, 0, "'nconst MAX_HEIGHT: usize = 10;'"), -(1544, 0, "'n#[cfg(not(test))]'"), -(1497, 18, "''"), -(1526, 0, "'nconst NODE_NUM_ITEMS: usize = 1;'"), -(1464, 33, "''"), -(1493, 33, "''"), -(1464, 0, "'const NODE_NUM_ITEMS: usize = 1;n'"), -(1464, 33, "''"), -(1491, 1, "''"), -(1490, 1, "''"), -(1490, 0, "'2'"), -(1490, 1, "''"), -(1490, 0, "'1'"), -(1490, 1, "''"), -(1490, 0, "'1'"), -(1491, 0, "'0'"), -(1493, 0, "'n'"), -(1128, 0, "'n'"), -(1126, 0, "'0'"), -(1127, 0, "'0'"), -(1127, 1, "''"), -(1126, 1, "''"), -(1125, 1, "''"), -(1125, 0, "'2'"), -(1491, 2, "'2'"), -(34678, 122, "''"), -(1505, 4, "'d'"), -(1458, 4, "'d'"), -(1139, 4, "'d'"), -(1088, 4, "'d'"), -(1497, 0, "'e'"), -(1453, 0, "'e'"), -(1137, 0, "'e'"), -(1089, 0, "'e'"), -(1501, 0, "'b'"), -(1456, 0, "'b'"), -(1139, 0, "'b'"), -(1090, 0, "'b'"), -(1505, 0, "'u'"), -(1459, 0, "'u'"), -(1141, 0, "'u'"), -(1091, 0, "'u'"), -(1509, 0, "'g'"), -(1462, 0, "'g'"), -(1143, 0, "'g'"), -(1092, 0, "'g'"), -(1513, 0, "'_'"), -(1465, 0, "'_'"), -(1145, 0, "'_'"), -(1093, 0, "'_'"), -(1517, 0, "'a'"), -(1468, 0, "'a'"), -(1147, 0, "'a'"), -(1094, 0, "'a'"), -(1521, 0, "'s'"), -(1471, 0, "'s'"), -(1149, 0, "'s'"), -(1095, 0, "'s'"), -(1525, 0, "'s'"), -(1474, 0, "'s'"), -(1151, 0, "'s'"), -(1096, 0, "'s'"), -(1529, 0, "'e'"), -(1477, 0, "'e'"), -(1153, 0, "'e'"), -(1097, 0, "'e'"), -(1533, 0, "'r'"), -(1480, 0, "'r'"), -(1155, 0, "'r'"), -(1098, 0, "'r'"), -(1537, 0, "'t'"), -(1483, 0, "'t'"), -(1157, 0, "'t'"), -(1099, 0, "'t'"), -(1541, 0, "'i'"), -(1486, 0, "'i'"), -(1159, 0, "'i'"), -(1100, 0, "'i'"), -(1545, 0, "'o'"), -(1489, 0, "'o'"), -(1161, 0, "'o'"), -(1101, 0, "'o'"), -(1549, 0, "'n'"), -(1492, 0, "'n'"), -(1163, 0, "'n'"), -(1102, 0, "'n'"), -(1553, 0, "'s'"), -(1495, 0, "'s'"), -(1165, 0, "'s'"), -(1103, 0, "'s'"), -(13279, 0, "'d'"), -(13280, 0, "'b'"), -(13281, 0, "'g'"), -(13282, 0, "'!'"), -(13283, 0, "'('"), -(13302, 0, "')'"), -(35841, 1, "''"), -(35788, 0, "' n'"), -(35858, 57, "''"), -(35805, 0, "' // And bookkeeping. Bookkeeping forever.n'"), -(35915, 67, "''"), -(35862, 0, "' let new_usersize = C::userlen_of_slice(new_items);n'"), -(35982, 102, "''"), -(35929, 0, "' let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;n'"), -(36084, 41, "''"), -(36031, 16, "' '"), -(36031, 0, "' if usersize_delta != 0 {n'"), -(36129, 0, "'n if usersize_delta != 0 {'"), -(36072, 20, "' '"), -(36031, 41, "''"), -(35787, 17, "''"), -(35739, 0, "' n'"), -(35804, 57, "''"), -(35756, 0, "' // And bookkeeping. Bookkeeping forever.n'"), -(35861, 67, "''"), -(35813, 0, "' let new_usersize = C::userlen_of_slice(new_items);n'"), -(35928, 102, "''"), -(35880, 0, "' let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;n'"), -(35981, 0, "'n '"), -(35982, 16, "''"), -(35739, 16, "''"), -(35738, 1, "''"), -(35738, 58, "''"), -(35738, 16, "'n '"), -(36011, 0, "'n '"), -(36012, 16, "''"), -(35957, 0, "' '"), -(35958, 0, "'E'"), -(35959, 0, "'v'"), -(35960, 0, "'e'"), -(35961, 0, "'r'"), -(35962, 0, "'y'"), -(35963, 0, "'t'"), -(35964, 0, "'h'"), -(35965, 0, "'i'"), -(35966, 0, "'n'"), -(35967, 0, "'g'"), -(35968, 0, "' '"), -(35969, 0, "'e'"), -(35970, 0, "'l'"), -(35971, 0, "'s'"), -(35972, 0, "'e'"), -(35973, 0, "' '"), -(35974, 0, "'i'"), -(35975, 0, "'s'"), -(35976, 0, "' '"), -(35977, 0, "'c'"), -(35978, 0, "'o'"), -(35979, 0, "'m'"), -(35980, 0, "'m'"), -(35981, 0, "'e'"), -(35982, 0, "'n'"), -(35983, 0, "'t'"), -(35984, 0, "'a'"), -(35985, 0, "'r'"), -(35986, 0, "'y'"), -(35987, 0, "'.'"), -(36187, 0, "'n '"), -(36204, 0, "'s'"), -(36205, 0, "'e'"), -(36206, 0, "'l'"), -(36207, 0, "'f'"), -(36208, 0, "'.'"), -(36209, 0, "'u'"), -(36210, 0, "'s'"), -(36211, 0, "'e'"), -(36212, 0, "'r'"), -(36209, 4, "'num_usercount'"), -(36222, 0, "' '"), -(36223, 0, "'+'"), -(36224, 0, "'='"), -(36225, 0, "' '"), -(36226, 0, "'u'"), -(36227, 0, "'s'"), -(36228, 0, "'e'"), -(36229, 0, "'r'"), -(36230, 0, "'s'"), -(36231, 0, "'i'"), -(36232, 0, "'z'"), -(36233, 0, "'e'"), -(36234, 0, "'_'"), -(36235, 0, "'d'"), -(36236, 0, "'e'"), -(36237, 0, "'l'"), -(36238, 0, "'t'"), -(36239, 0, "'a'"), -(36240, 0, "';'"), -(36222, 0, "' '"), -(36223, 0, "'a'"), -(36224, 0, "'s'"), -(36225, 0, "' '"), -(36226, 0, "'i'"), -(36227, 0, "'s'"), -(36228, 0, "'u'"), -(36229, 0, "'z'"), -(36230, 0, "'e'"), -(36230, 1, "''"), -(36229, 1, "''"), -(36228, 1, "''"), -(36228, 0, "'i'"), -(36229, 0, "'z'"), -(36230, 0, "'e'"), -(36204, 0, "'('"), -(36232, 0, "')'"), -(36232, 1, "''"), -(36204, 1, "''"), -(36228, 3, "''"), -(36228, 0, "'uze'"), -(36225, 6, "''"), -(36222, 3, "''"), -(36222, 0, "' '"), -(36223, 0, "'='"), -(36224, 0, "' '"), -(36225, 0, "'s'"), -(36226, 0, "'e'"), -(36227, 0, "'l'"), -(36228, 0, "'f'"), -(36229, 0, "'.'"), -(36230, 0, "'u'"), -(36231, 0, "'s'"), -(36232, 0, "'e'"), -(36233, 0, "'r'"), -(36230, 4, "'num_usercount'"), -(36243, 0, "'.'"), -(36244, 0, "'w'"), -(36245, 0, "'r'"), -(36246, 0, "'a'"), -(36247, 0, "'p'"), -(36244, 4, "'wrapping_add'"), -(36256, 0, "'('"), -(36257, 1, "''"), -(36257, 1, "''"), -(36257, 1, "''"), -(36257, 1, "''"), -(36271, 0, "' '"), -(36272, 0, "'a'"), -(36273, 0, "'s'"), -(36274, 0, "' '"), -(36275, 0, "'u'"), -(36276, 0, "'s'"), -(36277, 0, "'i'"), -(36278, 0, "'z'"), -(36279, 0, "'e'"), -(36280, 0, "')'"), -(36187, 0, "'n '"), -(36204, 0, "'/'"), -(36205, 0, "'/'"), -(36206, 0, "' '"), -(36207, 0, "'I'"), -(36208, 0, "' '"), -(36209, 0, "'h'"), -(36210, 0, "'a'"), -(36211, 0, "'t'"), -(36212, 0, "'e'"), -(36213, 0, "' '"), -(36214, 0, "'t'"), -(36215, 0, "'h'"), -(36216, 0, "'i'"), -(36217, 0, "'s'"), -(36218, 0, "'.'"), -(37399, 0, "'n #[cfg(debug_assertions)] {'"), -(37373, 0, "'// '"), -(37411, 0, "'i'"), -(37412, 0, "'f'"), -(37413, 0, "' '"), -(37414, 1, "''"), -(37414, 1, "''"), -(37417, 0, "'!'"), -(37438, 1, "''"), -(37437, 1, "''"), -(37436, 1, "''"), -(37436, 0, "' '"), -(37437, 0, "'{'"), -(37365, 37, "''"), -(37364, 1, "''"), -(38722, 26, "'if cfg!(debug_assertions) {'"), -(38009, 26, "'if cfg!(debug_assertions) {'"), -(13279, 5, "''"), -(13297, 1, "''"), -(37871, 0, "'// '"), -(37862, 0, "'n '"), -(37871, 0, "'n '"), -(37863, 8, "''"), -(37872, 0, "'i'"), -(37873, 0, "'f'"), -(37874, 0, "' '"), -(37875, 0, "'o'"), -(37876, 0, "'f'"), -(37877, 0, "'f'"), -(37878, 0, "'s'"), -(37879, 0, "'e'"), -(37880, 0, "'t'"), -(37881, 0, "' '"), -(37882, 0, "'='"), -(37883, 0, "'='"), -(37884, 0, "' '"), -(37885, 0, "'0'"), -(37886, 0, "' '"), -(37887, 0, "'{'"), -(37959, 0, "'n if offset == 0 {'"), -(37864, 25, "''"), -(37934, 0, "'n'"), -(37863, 1, "''"), -(37968, 0, "' '"), -(38026, 0, "'n '"), -(38027, 12, "' }'"), -(38036, 0, "' '"), -(38037, 0, "'e'"), -(38038, 0, "'l'"), -(38039, 0, "'s'"), -(38040, 0, "'e'"), -(38041, 0, "' '"), -(38042, 0, "'{'"), -(38043, 0, "'n '"), -(38056, 0, "'n '"), -(38044, 12, "''"), -(38045, 12, "' }'"), -(38044, 0, "' '"), -(38056, 0, "'l'"), -(38057, 0, "'e'"), -(38058, 0, "'t'"), -(38059, 0, "' '"), -(38060, 0, "'c'"), -(38061, 0, "'u'"), -(38062, 0, "'r'"), -(38063, 0, "'r'"), -(38064, 0, "'e'"), -(38065, 0, "'n'"), -(38066, 0, "'t'"), -(38067, 0, "'_'"), -(38068, 0, "'i'"), -(38069, 0, "'t'"), -(38070, 0, "'e'"), -(38071, 0, "'m'"), -(38072, 0, "' '"), -(38073, 0, "'='"), -(38074, 0, "' '"), -(38075, 0, "'c'"), -(38076, 0, "'u'"), -(38077, 0, "'r'"), -(38078, 0, "'s'"), -(38079, 0, "'o'"), -(38080, 0, "'r'"), -(38081, 0, "'.'"), -(38082, 0, "'g'"), -(38083, 0, "'e'"), -(38084, 0, "'t'"), -(38085, 0, "'_'"), -(38086, 0, "'c'"), -(38087, 0, "'u'"), -(38088, 0, "'r'"), -(38089, 0, "'r'"), -(38082, 8, "''"), -(38081, 1, "''"), -(38081, 0, "'.'"), -(38082, 0, "'current_item()'"), -(38096, 0, "';'"), -(38097, 0, "'n '"), -(38098, 12, "''"), -(37972, 9, "''"), -(38016, 1, "''"), -(38015, 1, "''"), -(37934, 0, "'n '"), -(37943, 0, "'u'"), -(37944, 0, "'n'"), -(37945, 0, "'s'"), -(37946, 0, "'a'"), -(37947, 0, "'f'"), -(37948, 0, "'e'"), -(37949, 0, "' '"), -(37950, 0, "'{'"), -(38105, 8, "' '"), -(38050, 12, "' '"), -(38033, 8, "' '"), -(37977, 12, "' '"), -(37952, 8, "' '"), -(38134, 0, "'n '"), -(38135, 12, "' }'"), -(38120, 0, "' '"), -(38136, 0, "'C'"), -(38137, 0, "':'"), -(38138, 0, "':'"), -(38139, 0, "'split_item(_item: Self::Item)'"), -(38150, 17, "'c'"), -(38151, 0, "'u'"), -(38152, 0, "'r'"), -(38153, 0, "'r'"), -(38154, 0, "'e'"), -(38155, 0, "'n'"), -(38156, 0, "'t'"), -(38157, 0, "'_'"), -(38158, 0, "'i'"), -(38159, 0, "'t'"), -(38160, 0, "'e'"), -(38161, 0, "'m'"), -(38163, 0, "';'"), -(2277, 0, "'&'"), -(38137, 0, "'l'"), -(38138, 0, "'e'"), -(38139, 0, "'t'"), -(38140, 0, "' '"), -(38141, 0, "'('"), -(38142, 0, "'s'"), -(38143, 0, "'t'"), -(38144, 0, "'a'"), -(38145, 0, "'r'"), -(38146, 0, "'t'"), -(38147, 0, "','"), -(38148, 0, "' '"), -(38149, 0, "'e'"), -(38150, 0, "'n'"), -(38151, 0, "'d'"), -(38152, 0, "')'"), -(38153, 0, "' '"), -(38154, 0, "'='"), -(38155, 0, "' '"), -(38184, 0, "'n '"), -(38201, 0, "'s'"), -(38202, 0, "'e'"), -(38203, 0, "'l'"), -(38204, 0, "'f'"), -(38205, 0, "'.'"), -(38206, 0, "'r'"), -(38207, 0, "'e'"), -(38208, 0, "'p'"), -(38209, 0, "'l'"), -(38201, 9, "''"), -(34397, 0, "'n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {'"), -(34397, 0, "'n '"), -(34406, 0, "'n '"), -(34398, 8, "''"), -(34399, 8, "' }'"), -(34404, 0, "'n '"), -(34405, 4, "''"), -(34310, 24, "''"), -(34310, 0, "'cursor: &mut Cursor, '"), -(34334, 1, "''"), -(34334, 1, "''"), -(34298, 0, "'_'"), -(34299, 0, "'i'"), -(34300, 0, "'e'"), -(34301, 0, "'r'"), -(34301, 1, "''"), -(34300, 1, "''"), -(34300, 0, "'t'"), -(34301, 0, "'e'"), -(34302, 0, "'r'"), -(34281, 0, "'u'"), -(34282, 0, "'n'"), -(34283, 0, "'s'"), -(34284, 0, "'a'"), -(34285, 0, "'f'"), -(34286, 0, "'e'"), -(34287, 0, "' '"), -(34609, 0, "'n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {'"), -(34537, 8, "' '"), -(34416, 121, "''"), -(34484, 0, "'n'"), -(34415, 1, "''"), -(34483, 0, "'n }'"), -(34415, 4, "' '"), -(34409, 6, "''"), -(34481, 0, "'n'"), -(34408, 1, "''"), -(34281, 6, "''"), -(34281, 1, "''"), -(34284, 0, "' '"), -(34285, 0, "'u'"), -(34286, 0, "'n'"), -(34287, 0, "'s'"), -(34288, 0, "'a'"), -(34289, 0, "'f'"), -(34290, 0, "'e'"), -(34281, 4, "''"), -(34281, 0, "'p'"), -(34282, 0, "'u'"), -(34283, 0, "'b'"), -(34284, 0, "' '"), -(34284, 1, "''"), -(34281, 3, "''"), -(34281, 0, "'pub '"), -(34281, 4, "''"), -(34606, 2818, "''"), -(34477, 0, "'n // For validation. This is where the cursor should end up.n let advanced_by = inserted_content.len();nn start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn // Replace as many items from removed_items as we can with inserted_content.n unsafe {n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let old_items = &mut (*e).items[index..index + replaced_items_here];n let new_items = &inserted_content[0..replaced_items_here];nn let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn // Replace the items themselves. Everything else is commentary.n old_items.copy_from_slice(new_items);nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(&mut cursor, inserted_content);n } else if removed_items > 0 {n self.del_at_iter(&mut cursor, removed_items);n }n }'"), -(34596, 205, "''"), -(34596, 0, "'n '"), -(34605, 0, "'n '"), -(34597, 8, "''"), -(34606, 0, "'n '"), -(34598, 8, "''"), -(37230, 0, "' start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');n'"), -(34599, 8, "''"), -(37426, 1, "''"), -(34478, 117, "''"), -(37515, 11, "'i'"), -(37516, 0, "'n'"), -(37517, 0, "'s'"), -(37518, 0, "'e'"), -(37519, 0, "'r'"), -(37515, 5, "'inserted_content'"), -(37531, 0, "'.'"), -(37532, 0, "'l'"), -(37533, 0, "'e'"), -(37534, 0, "'n'"), -(37535, 0, "'('"), -(37536, 0, "')'"), -(37069, 4, "''"), -(37017, 4, "''"), -(37017, 0, "'mut '"), -(37043, 4, "''"), -(37302, 0, "'n '"), -(37311, 0, "'s'"), -(37312, 0, "'e'"), -(37313, 0, "'l'"), -(37314, 0, "'f'"), -(37315, 0, "'.'"), -(37316, 0, "'r'"), -(37317, 0, "'e'"), -(37318, 0, "'p'"), -(37319, 0, "'l'"), -(37316, 4, "'replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])'"), -(37332, 22, "'&'"), -(37333, 0, "'m'"), -(37334, 0, "'u'"), -(37335, 0, "'t'"), -(37336, 0, "' '"), -(37337, 0, "'c'"), -(37338, 0, "'u'"), -(37339, 0, "'r'"), -(37340, 0, "'s'"), -(37341, 0, "'o'"), -(37342, 0, "'r'"), -(37345, 24, "'r'"), -(37346, 0, "'e'"), -(37347, 0, "'m'"), -(37348, 0, "'o'"), -(37349, 0, "'v'"), -(37350, 0, "'e'"), -(37351, 0, "'d'"), -(37352, 0, "'_'"), -(37353, 0, "'i'"), -(37354, 0, "'t'"), -(37355, 0, "'e'"), -(37356, 0, "'m'"), -(37357, 0, "'s'"), -(37360, 32, "'i'"), -(37361, 0, "'n'"), -(37362, 0, "'s'"), -(37363, 0, "'e'"), -(37364, 0, "'r'"), -(37365, 0, "'t'"), -(37366, 0, "'e'"), -(37367, 0, "'d'"), -(37368, 0, "'_'"), -(37369, 0, "'c'"), -(37370, 0, "'o'"), -(37371, 0, "'n'"), -(37372, 0, "'t'"), -(37373, 0, "'e'"), -(37374, 0, "'n'"), -(37375, 0, "'t'"), -(37377, 0, "';'"), -(37378, 0, "'n '"), -(37388, 69, "''"), -(37379, 8, "''"), -(37311, 0, "'u'"), -(37312, 0, "'n'"), -(37313, 0, "'s'"), -(37314, 0, "'a'"), -(37315, 0, "'f'"), -(37316, 0, "'e'"), -(37317, 0, "' '"), -(37318, 0, "'{'"), -(37319, 0, "' '"), -(37387, 0, "' '"), -(37388, 0, "'}'"), -(36924, 5, "''"), -(36817, 5, "''"), -(34481, 1, "''"), -(34480, 1, "''"), -(34479, 1, "''"), -(34478, 1, "''"), -(34477, 1, "''"), -(34563, 16, "''"), -(34562, 1, "''"), -(36921, 12, "' '"), -(36864, 16, "' '"), -(36822, 12, "' '"), -(36759, 16, "' '"), -(36708, 16, "' '"), -(36681, 16, "' '"), -(36637, 12, "' '"), -(36568, 12, "' '"), -(36490, 12, "' '"), -(36475, 12, "' '"), -(36427, 16, "' '"), -(36409, 16, "' '"), -(36340, 20, "' '"), -(36284, 16, "' '"), -(36224, 16, "' '"), -(36184, 16, "' '"), -(36108, 16, "' '"), -(36053, 16, "' '"), -(35976, 16, "' '"), -(35880, 16, "' '"), -(35848, 16, "' '"), -(35830, 16, "' '"), -(35745, 20, "' '"), -(35704, 16, "' '"), -(35649, 16, "' '"), -(35569, 16, "' '"), -(35466, 16, "' '"), -(35399, 16, "' '"), -(35323, 16, "' '"), -(35238, 16, "' '"), -(35153, 16, "' '"), -(35094, 16, "' '"), -(35045, 16, "' '"), -(35026, 16, "' '"), -(34936, 20, "' '"), -(34889, 20, "' '"), -(34843, 20, "' '"), -(34776, 16, "' '"), -(34729, 16, "' '"), -(34690, 12, "' '"), -(34644, 12, "' '"), -(34563, 12, "' '"), -(36767, 9, "''"), -(36766, 1, "''"), -(37969, 0, "'// '"), -(37911, 0, "'// '"), -(37704, 3, "''"), -(37969, 3, "''"), -(37908, 3, "''"), -(38030, 0, "'s'"), -(38031, 0, "'e'"), -(38032, 0, "'l'"), -(38033, 0, "'f'"), -(38034, 0, "'.'"), -(38035, 0, "'r'"), -(38036, 0, "'e'"), -(38035, 2, "'replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])'"), -(38051, 22, "'&'"), -(38052, 0, "'m'"), -(38053, 0, "'u'"), -(38054, 0, "'t'"), -(38055, 0, "' '"), -(38056, 0, "'c'"), -(38057, 0, "'u'"), -(38058, 0, "'r'"), -(38059, 0, "'s'"), -(38060, 0, "'o'"), -(38061, 0, "'r'"), -(38064, 24, "'1'"), -(38030, 0, "'// '"), -(38013, 0, "'n '"), -(38030, 0, "'p'"), -(38031, 0, "'a'"), -(38032, 0, "'n'"), -(38033, 0, "'i'"), -(38030, 4, "'panic!'"), -(38036, 0, "'('"), -(38037, 0, "'''"), -(38038, 0, "'n'"), -(38039, 0, "'o'"), -(38040, 0, "'t'"), -(38041, 0, "' '"), -(38042, 0, "'i'"), -(38043, 0, "'m'"), -(38044, 0, "'p'"), -(38045, 0, "'l'"), -(38046, 0, "'e'"), -(38047, 0, "'m'"), -(38030, 18, "'u'"), -(38031, 0, "'n'"), -(38032, 0, "'i'"), -(38033, 0, "'m'"), -(38034, 0, "'p'"), -(38035, 0, "'l'"), -(38030, 6, "'unimplemented!'"), -(38044, 0, "'('"), -(38045, 0, "')'"), -(38046, 0, "';'"), -(38030, 17, "''"), -(38030, 0, "'s'"), -(38031, 0, "'e'"), -(38032, 0, "'l'"), -(38033, 0, "'f'"), -(38034, 0, "':'"), -(38035, 0, "':'"), -(38035, 1, "''"), -(38034, 1, "''"), -(38034, 0, "'.'"), -(38035, 0, "'r'"), -(38036, 0, "'e'"), -(38037, 0, "'p'"), -(38038, 0, "'l'"), -(38039, 0, "'a'"), -(38035, 5, "'replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])'"), -(38051, 22, "'c'"), -(38052, 0, "'u'"), -(38053, 0, "'r'"), -(38054, 0, "'s'"), -(38055, 0, "'o'"), -(38056, 0, "'r'"), -(38059, 24, "'1'"), -(38062, 32, "'&'"), -(38063, 0, "'['"), -(38064, 0, "'s'"), -(38065, 0, "'t'"), -(38066, 0, "'a'"), -(38067, 0, "'r'"), -(38068, 0, "'t'"), -(38069, 0, "']'"), -(38071, 0, "';'"), -(38014, 0, "' self.replace_at_iter(cursor, 1, &[start]);n'"), -(38014, 59, "''"), -(37811, 0, "' self.insert_at_iter(&mut cursor, contents);n'"), -(37930, 21, "''"), -(37871, 0, "' } else {n'"), -(37951, 58, "''"), -(37892, 0, "' let current_item = cursor.current_item();n'"), -(38009, 64, "''"), -(37950, 0, "' let (start, end) = C::split_item(current_item);n'"), -(38073, 59, "''"), -(38014, 0, "' self.replace_at_iter(cursor, 1, &[start]);n'"), -(38051, 0, "'&'"), -(38052, 0, "'m'"), -(38053, 0, "'u'"), -(38054, 0, "'t'"), -(38055, 0, "' '"), -(38078, 0, "' self.insert_at_iter(&mut cursor, contents);n'"), -(38187, 8, "'&'"), -(38188, 0, "'['"), -(38189, 0, "'e'"), -(38190, 0, "'n'"), -(38191, 0, "'d'"), -(38192, 0, "']'"), -(38013, 0, "'n '"), -(38030, 0, "'/'"), -(38031, 0, "'/'"), -(38032, 0, "' '"), -(38033, 0, "'T'"), -(38034, 0, "'h'"), -(38035, 0, "'s'"), -(38036, 0, "' '"), -(38037, 0, "'i'"), -(38037, 1, "''"), -(38036, 1, "''"), -(38035, 1, "''"), -(38035, 0, "'i'"), -(38036, 0, "'s'"), -(38037, 0, "' '"), -(38038, 0, "'i'"), -(38039, 0, "'s'"), -(38040, 0, "' '"), -(38041, 0, "'p'"), -(38042, 0, "'r'"), -(38043, 0, "'e'"), -(38044, 0, "'t'"), -(38038, 7, "'f'"), -(38039, 0, "'e'"), -(38040, 0, "'e'"), -(38041, 0, "'l'"), -(38042, 0, "'s'"), -(38043, 0, "' '"), -(38044, 0, "'p'"), -(38045, 0, "'r'"), -(38046, 0, "'e'"), -(38047, 0, "'t'"), -(38048, 0, "'t'"), -(38049, 0, "'y'"), -(38050, 0, "' '"), -(38051, 0, "'i'"), -(38052, 0, "'n'"), -(38053, 0, "'e'"), -(38054, 0, "'f'"), -(38055, 0, "'f'"), -(38056, 0, "'i'"), -(38057, 0, "'c'"), -(38058, 0, "'i'"), -(38059, 0, "'e'"), -(38060, 0, "'n'"), -(38061, 0, "'t'"), -(38062, 0, "'.'"), -(38063, 0, "' '"), -(38064, 0, "'I'"), -(38065, 0, "'''"), -(38066, 0, "'m'"), -(38067, 0, "' '"), -(38067, 1, "''"), -(38066, 1, "''"), -(38065, 1, "''"), -(38064, 1, "''"), -(38063, 1, "''"), -(38062, 1, "''"), -(38062, 0, "';'"), -(38063, 0, "' '"), -(38064, 0, "'b'"), -(38065, 0, "'u'"), -(38066, 0, "'t'"), -(38067, 0, "' '"), -(38068, 0, "'I'"), -(38069, 0, "'''"), -(38069, 1, "''"), -(38068, 1, "''"), -(38067, 1, "''"), -(38066, 1, "''"), -(38066, 0, "'t'"), -(38067, 0, "' '"), -(38068, 0, "'i'"), -(38069, 0, "'t'"), -(38070, 0, "'s'"), -(38071, 0, "' '"), -(38072, 0, "'p'"), -(38073, 0, "'r'"), -(38074, 0, "'o'"), -(38075, 0, "'b'"), -(38076, 0, "'a'"), -(38077, 0, "'b'"), -(38078, 0, "'l'"), -(38079, 0, "'y'"), -(38080, 0, "' '"), -(38081, 0, "'f'"), -(38082, 0, "'i'"), -(38083, 0, "'n'"), -(38084, 0, "'e'"), -(38085, 0, "'.'"), -(38269, 90, "''"), -(37695, 68, "''"), -(2288, 0, "','"), -(2289, 0, "' '"), -(2290, 0, "'p'"), -(2291, 0, "'o'"), -(2292, 0, "'s'"), -(2293, 0, "':'"), -(2294, 0, "' '"), -(2295, 0, "'u'"), -(2296, 0, "'s'"), -(2297, 0, "'i'"), -(2298, 0, "'z'"), -(2299, 0, "'e'"), -(2290, 3, "'a'"), -(2291, 0, "'t'"), -(2290, 0, "'_'"), -(37955, 0, "','"), -(37956, 0, "' '"), -(37957, 0, "'o'"), -(37958, 0, "'f'"), -(37959, 0, "'f'"), -(37960, 0, "'s'"), -(37961, 0, "'e'"), -(37962, 0, "'t'"), -(38038, 0, "'n '"), -(38055, 0, "'/'"), -(38056, 0, "'/'"), -(38057, 0, "' '"), -(38058, 0, "'W'"), -(38059, 0, "'e'"), -(38060, 0, "' '"), -(38061, 0, "'n'"), -(38062, 0, "'e'"), -(38063, 0, "'e'"), -(38064, 0, "'d'"), -(38065, 0, "' '"), -(38066, 0, "'t'"), -(38067, 0, "'o'"), -(38068, 0, "' '"), -(38055, 14, "''"), -(38055, 0, "'c'"), -(38056, 0, "'j'"), -(38057, 0, "'r'"), -(38058, 0, "'s'"), -(38058, 1, "''"), -(38057, 1, "''"), -(38056, 1, "''"), -(38056, 0, "'u'"), -(38057, 0, "'r'"), -(38058, 0, "'s'"), -(38059, 0, "'o'"), -(38060, 0, "'r'"), -(38061, 0, "'.'"), -(38062, 0, "'u'"), -(38063, 0, "'s'"), -(38064, 0, "'e'"), -(38065, 0, "'r'"), -(38062, 4, "'userpos'"), -(38069, 0, "' '"), -(38070, 0, "'-'"), -(38071, 0, "'='"), -(38072, 0, "' '"), -(38073, 0, "'o'"), -(38074, 0, "'f'"), -(38075, 0, "'f'"), -(38076, 0, "'s'"), -(38077, 0, "'e'"), -(38078, 0, "'t'"), -(38079, 0, "';'"), -(38080, 0, "' '"), -(38081, 0, "'/'"), -(38082, 0, "'/'"), -(38083, 0, "' '"), -(38084, 0, "'M'"), -(38085, 0, "'o'"), -(38086, 0, "'v'"), -(38087, 0, "'e'"), -(38088, 0, "' '"), -(38089, 0, "'t'"), -(38090, 0, "'h'"), -(38091, 0, "'e'"), -(38092, 0, "' '"), -(38093, 0, "'c'"), -(38094, 0, "'u'"), -(38095, 0, "'r'"), -(38096, 0, "'s'"), -(38097, 0, "'o'"), -(38098, 0, "'r'"), -(38099, 0, "' '"), -(38100, 0, "'b'"), -(38101, 0, "'a'"), -(38102, 0, "'c'"), -(38103, 0, "'k'"), -(38104, 0, "' '"), -(38105, 0, "'t'"), -(38106, 0, "'o'"), -(38107, 0, "' '"), -(38108, 0, "'t'"), -(38109, 0, "'h'"), -(38110, 0, "'e'"), -(38111, 0, "' '"), -(38112, 0, "'s'"), -(38113, 0, "'t'"), -(38114, 0, "'a'"), -(38115, 0, "'r'"), -(38116, 0, "'t'"), -(38117, 0, "' '"), -(38118, 0, "'o'"), -(38119, 0, "'f'"), -(38120, 0, "' '"), -(38121, 0, "'t'"), -(38122, 0, "'h'"), -(38123, 0, "'e'"), -(38124, 0, "' '"), -(38125, 0, "'i'"), -(38126, 0, "'t'"), -(38127, 0, "'e'"), -(38128, 0, "'m'"), -(38129, 0, "' '"), -(38130, 0, "'w'"), -(38131, 0, "'e'"), -(38132, 0, "'r'"), -(38132, 1, "''"), -(38132, 0, "'''"), -(38133, 0, "'r'"), -(38134, 0, "'e'"), -(38135, 0, "' '"), -(38136, 0, "'s'"), -(38137, 0, "'p'"), -(38138, 0, "'l'"), -(38139, 0, "'i'"), -(38140, 0, "'t'"), -(38141, 0, "'t'"), -(38142, 0, "'i'"), -(38143, 0, "'n'"), -(38144, 0, "'g'"), -(38145, 0, "'.'"), -(38080, 1, "''"), -(38080, 0, "'n '"), -(38080, 82, "''"), -(38039, 0, "' // Move the cursor back to the start of the item we're splitting.n'"), -(38038, 82, "''"), -(37966, 0, "' // Move the cursor back to the start of the item we're splitting.n'"), -(38120, 42, "''"), -(38048, 0, "' cursor.userpos -= offset;n'"), -(37966, 81, "' // Move the cursor back to the start of the item we'ren // splitting.'"), -(14441, 0, "'n '"), -(14446, 0, "'n '"), -(14442, 4, "''"), -(14447, 0, "'f'"), -(14448, 0, "'n'"), -(14449, 0, "' '"), -(14450, 0, "'m'"), -(14451, 0, "'o'"), -(14452, 0, "'v'"), -(14453, 0, "'e'"), -(14454, 0, "'_'"), -(14455, 0, "'t'"), -(14456, 0, "'o'"), -(14457, 0, "'_'"), -(14458, 0, "'n'"), -(14459, 0, "'o'"), -(14460, 0, "'d'"), -(14461, 0, "'e'"), -(14461, 1, "''"), -(14460, 1, "''"), -(14459, 1, "''"), -(14458, 1, "''"), -(14458, 0, "'i'"), -(14459, 0, "'t'"), -(14460, 0, "'e'"), -(14461, 0, "'m'"), -(14462, 0, "'_'"), -(14463, 0, "'s'"), -(14464, 0, "'t'"), -(14465, 0, "'a'"), -(14466, 0, "'r'"), -(14467, 0, "'t'"), -(14468, 0, "'('"), -(14469, 0, "'&'"), -(14470, 0, "'m'"), -(14471, 0, "'u'"), -(14472, 0, "'t'"), -(14473, 0, "' '"), -(14474, 0, "'s'"), -(14475, 0, "'e'"), -(14476, 0, "'l'"), -(14477, 0, "'f'"), -(14478, 0, "')'"), -(14478, 0, "','"), -(14479, 0, "' '"), -(14480, 0, "'o'"), -(14481, 0, "'f'"), -(14482, 0, "'f'"), -(14483, 0, "'s'"), -(14484, 0, "'e'"), -(14485, 0, "'t'"), -(14486, 0, "':'"), -(14487, 0, "' '"), -(14488, 0, "'u'"), -(14489, 0, "'s'"), -(14490, 0, "'i'"), -(14491, 0, "'z'"), -(14492, 0, "'e'"), -(14494, 0, "' '"), -(14495, 0, "'{'"), -(14496, 0, "'n '"), -(14505, 0, "'n '"), -(14497, 8, "''"), -(14498, 8, "' }'"), -(14497, 0, "' '"), -(14505, 0, "'s'"), -(14506, 0, "'e'"), -(14507, 0, "'l'"), -(14508, 0, "'f'"), -(14509, 0, "'.'"), -(14510, 0, "'u'"), -(14511, 0, "'s'"), -(14512, 0, "'e'"), -(14513, 0, "'r'"), -(14510, 4, "'userpos'"), -(14517, 0, "' '"), -(14518, 0, "'-'"), -(14519, 0, "'='"), -(14520, 0, "' '"), -(14521, 0, "'o'"), -(14522, 0, "'f'"), -(14523, 0, "'s'"), -(14523, 1, "''"), -(14523, 0, "'f'"), -(14524, 0, "'s'"), -(14525, 0, "'e'"), -(14526, 0, "'t'"), -(14527, 0, "';'"), -(14528, 0, "'n '"), -(14537, 0, "' for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }'"), -(14529, 16, "' '"), -(14528, 61, "''"), -(14497, 8, "' '"), -(14497, 0, "' for entry in &mut self.entries[0..height as usize] {n'"), -(14593, 45, "''"), -(14558, 0, "' entry.skip_usersize += usersize;n'"), -(14638, 10, "''"), -(14603, 12, "' '"), -(14603, 0, "' }n'"), -(14590, 1, "''"), -(14590, 0, "'-'"), -(14479, 0, "' '"), -(14480, 0, "'h'"), -(14481, 0, "'e'"), -(14482, 0, "'i'"), -(14483, 0, "'g'"), -(14484, 0, "'h'"), -(14485, 0, "'t'"), -(14486, 0, "':'"), -(14487, 0, "' '"), -(14488, 0, "'8'"), -(14488, 1, "''"), -(14488, 0, "'u'"), -(14489, 0, "'8'"), -(14490, 0, "','"), -(14613, 0, "' '"), -(14614, 0, "'a'"), -(14615, 0, "'s'"), -(14616, 0, "' '"), -(14617, 0, "'u'"), -(14618, 0, "'9'"), -(14618, 1, "''"), -(14618, 0, "'8'"), -(14605, 8, "'o'"), -(14606, 0, "'f'"), -(14607, 0, "'f'"), -(14608, 0, "'s'"), -(14609, 0, "'e'"), -(14610, 0, "'t'"), -(14611, 6, "''"), -(38308, 0, "'.'"), -(38309, 0, "'m'"), -(38310, 0, "'o'"), -(38311, 0, "'v'"), -(38312, 0, "'e'"), -(38309, 4, "'move_to_item_start(height: u8, offset: usize)'"), -(38328, 10, "'s'"), -(38329, 0, "'e'"), -(38330, 0, "'l'"), -(38331, 0, "'f'"), -(38332, 0, "'.'"), -(38333, 0, "'h'"), -(38334, 0, "'e'"), -(38335, 0, "'i'"), -(38336, 0, "'g'"), -(38336, 1, "''"), -(38335, 1, "''"), -(38334, 1, "''"), -(38333, 1, "''"), -(38333, 0, "'n'"), -(38334, 0, "'o'"), -(38335, 0, "'d'"), -(38336, 0, "'e'"), -(38337, 0, "'.'"), -(38333, 5, "'h'"), -(38334, 0, "'e'"), -(38335, 0, "'a'"), -(38336, 0, "'d'"), -(38337, 0, "'.'"), -(38338, 0, "'h'"), -(38339, 0, "'e'"), -(38340, 0, "'i'"), -(38338, 3, "'height'"), -(38346, 33, "'o'"), -(38347, 0, "'f'"), -(38348, 0, "'f'"), -(38349, 0, "'s'"), -(38350, 0, "'e'"), -(38351, 0, "'t'"), -(38352, 0, "')'"), -(38353, 0, "';'"), -(38811, 0, "'// '"), -(38841, 0, "'w'"), -(38841, 1, "''"), -(38744, 0, "'// '"), -(38814, 3, "''"), -(38731, 0, "'n '"), -(38732, 12, "''"), -(38731, 0, "'n let (mut c2, _) = self.iter_at_userpos(userpos);'"), -(38683, 0, "'// '"), -(38793, 0, "' '"), -(38794, 0, "' '"), -(38795, 0, "'+'"), -(38795, 1, "''"), -(38794, 1, "''"), -(38794, 0, "'+'"), -(38795, 0, "' '"), -(38796, 0, "'C'"), -(38797, 0, "':'"), -(38798, 0, "':'"), -(38799, 0, "'userlen_of_slice(items: &[Self::Item])'"), -(38816, 20, "'c'"), -(38817, 0, "'o'"), -(38818, 0, "'n'"), -(38819, 0, "'t'"), -(38820, 0, "'e'"), -(38821, 0, "'n'"), -(38822, 0, "'t'"), -(38823, 0, "'s'"), -(38551, 0, "'n '"), -(38568, 0, "'/'"), -(38569, 0, "'/'"), -(38570, 0, "'/'"), -(38571, 0, "' '"), -(38571, 1, "''"), -(38571, 0, "' '"), -(38571, 1, "''"), -(38570, 1, "''"), -(38570, 0, "' '"), -(38571, 0, "'T'"), -(38572, 0, "'h'"), -(38573, 0, "'i'"), -(38574, 0, "'s'"), -(38575, 0, "' '"), -(38576, 0, "'n'"), -(38577, 0, "'e'"), -(38578, 0, "'e'"), -(38579, 0, "'d'"), -(38580, 0, "'s'"), -(38581, 0, "' '"), -(38582, 0, "'t'"), -(38583, 0, "'o'"), -(38584, 0, "' '"), -(38585, 0, "'h'"), -(38586, 0, "'o'"), -(38587, 0, "'l'"), -(38588, 0, "'d'"), -(38589, 0, "' '"), -(38590, 0, "'t'"), -(38591, 0, "'h'"), -(38592, 0, "'e'"), -(38593, 0, "' '"), -(38594, 0, "'c'"), -(38595, 0, "'u'"), -(38596, 0, "'r'"), -(38597, 0, "'s'"), -(38598, 0, "'o'"), -(38599, 0, "'r'"), -(38600, 0, "' '"), -(38601, 0, "'s'"), -(38602, 0, "'t'"), -(38603, 0, "'e'"), -(38604, 0, "'a'"), -(38605, 0, "'d'"), -(38606, 0, "'y'"), -(38607, 0, "'.'"), -(38692, 347, "''"), -(38033, 0, "'n '"), -(38050, 0, "' if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (mut c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));nn // c2.advance_by_items(contents.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after insert'); }n }n'"), -(38397, 0, "' '"), -(38387, 8, "' '"), -(38314, 12, "' '"), -(38244, 12, "' '"), -(38243, 0, "' '"), -(38150, 12, "' '"), -(38086, 12, "' '"), -(38034, 24, "' '"), -(38436, 1, "''"), -(38251, 8, "''"), -(38250, 1, "''"), -(38251, 77, "''"), -(38250, 1, "''"), -(38175, 4, "''"), -(38033, 0, "'n '"), -(38362, 8, "''"), -(38034, 16, "''"), -(38034, 312, "''"), -(37003, 0, "'n '"), -(37008, 0, "'n '"), -(37004, 4, "''"), -(37009, 0, "'f'"), -(37010, 0, "'n'"), -(37011, 0, "' '"), -(37012, 0, "'d'"), -(37013, 0, "'b'"), -(37014, 0, "'g'"), -(37015, 0, "'_'"), -(37016, 0, "'c'"), -(37017, 0, "'h'"), -(37018, 0, "'e'"), -(37019, 0, "'c'"), -(37020, 0, "'k'"), -(37021, 0, "'_'"), -(37022, 0, "'c'"), -(37023, 0, "'u'"), -(37024, 0, "'r'"), -(37025, 0, "'s'"), -(37026, 0, "'o'"), -(37027, 0, "'r'"), -(37028, 0, "'_'"), -(37029, 0, "'a'"), -(37030, 0, "'t'"), -(37031, 0, "'('"), -(37032, 0, "'&'"), -(37033, 0, "'s'"), -(37034, 0, "'e'"), -(37035, 0, "'l'"), -(37036, 0, "'f'"), -(37037, 0, "','"), -(37038, 0, "' '"), -(37039, 0, "'m'"), -(37039, 1, "''"), -(37039, 0, "'&'"), -(37040, 0, "'m'"), -(37041, 0, "'u'"), -(37042, 0, "'t'"), -(37043, 0, "' '"), -(37044, 0, "'c'"), -(37045, 0, "'u'"), -(37046, 0, "'r'"), -(37047, 0, "'s'"), -(37048, 0, "'o'"), -(37049, 0, "'r'"), -(37050, 0, "':'"), -(37051, 0, "' '"), -(37052, 0, "'C'"), -(37052, 1, "''"), -(37051, 1, "''"), -(37039, 5, "''"), -(37046, 0, "' '"), -(37047, 0, "'&'"), -(37048, 0, "'c'"), -(37049, 0, "'u'"), -(37050, 0, "'r'"), -(37050, 1, "''"), -(37049, 1, "''"), -(37048, 1, "''"), -(37048, 0, "'C'"), -(37049, 0, "'u'"), -(37050, 0, "'r'"), -(37051, 0, "'s'"), -(37052, 0, "'o'"), -(37053, 0, "'r'"), -(37054, 0, "'<'"), -(37054, 1, "''"), -(37054, 0, "')'"), -(37055, 0, "' '"), -(37056, 0, "'{'"), -(37057, 0, "'n '"), -(37066, 0, "'n '"), -(37058, 8, "''"), -(37059, 8, "' }'"), -(37054, 0, "','"), -(37055, 0, "' '"), -(37056, 0, "'u'"), -(37057, 0, "'s'"), -(37058, 0, "'e'"), -(37059, 0, "'r'"), -(37060, 0, "'p'"), -(37061, 0, "'o'"), -(37054, 0, "'<'"), -(37055, 0, "'C'"), -(37056, 0, "'>'"), -(37065, 0, "'s'"), -(37066, 0, "'L'"), -(37067, 0, "' '"), -(37067, 1, "''"), -(37066, 1, "''"), -(37065, 1, "''"), -(37065, 0, "':'"), -(37066, 0, "' '"), -(37066, 1, "''"), -(37065, 1, "''"), -(37064, 1, "''"), -(37064, 0, "'s'"), -(37065, 0, "':'"), -(37065, 1, "''"), -(37064, 1, "''"), -(37064, 0, "'o'"), -(37065, 0, "'s'"), -(37066, 0, "':'"), -(37067, 0, "' '"), -(37068, 0, "'u'"), -(37069, 0, "'s'"), -(37070, 0, "'i'"), -(37071, 0, "'z'"), -(37072, 0, "'e'"), -(37077, 0, "'n if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));n if &cursor != &c2 { panic!('Invalid cursor after insert'); }n }'"), -(37372, 16, "' '"), -(37291, 20, "' '"), -(37194, 20, "' '"), -(37122, 20, "' '"), -(37078, 16, "' '"), -(37076, 1, "''"), -(37231, 32, "''"), -(37288, 13, "''"), -(37246, 0, "' '"), -(37246, 0, "'a'"), -(37247, 0, "'s'"), -(37248, 0, "'s'"), -(37249, 0, "'e'"), -(37250, 0, "'r'"), -(37246, 5, "'assert_eq!'"), -(37256, 0, "'('"), -(37257, 1, "''"), -(37257, 1, "''"), -(37257, 1, "''"), -(37257, 1, "''"), -(37271, 30, "''"), -(37271, 0, "')'"), -(37272, 0, "';'"), -(37271, 2, "''"), -(37271, 0, "' { panic!('Invalid cursor'); }'"), -(37257, 0, "' if '"), -(37256, 1, "''"), -(37246, 10, "'asser'"), -(37246, 5, "''"), -(37246, 0, "'asser'"), -(37246, 5, "'assert_eq!'"), -(37256, 0, "'('"), -(37257, 4, "''"), -(37271, 30, "''"), -(37271, 0, "');'"), -(37257, 1, "''"), -(37267, 1, "''"), -(37267, 0, "'&'"), -(37257, 0, "'&'"), -(37264, 3, "''"), -(37264, 0, "','"), -(37257, 1, "''"), -(38317, 0, "' '"), -(38333, 0, "'d'"), -(38334, 0, "'b'"), -(38333, 2, "'s'"), -(38334, 0, "'e'"), -(38335, 0, "'l'"), -(38336, 0, "'f'"), -(38337, 0, "'.'"), -(38338, 0, "'d'"), -(38339, 0, "'b'"), -(38340, 0, "'g'"), -(38338, 3, "'dbg_check_cursor_at(cursor: &Cursor, userpos: usize)'"), -(38358, 18, "'&'"), -(38359, 0, "'c'"), -(38360, 0, "'u'"), -(38361, 0, "'r'"), -(38362, 0, "'s'"), -(38363, 0, "'o'"), -(38364, 0, "'r'"), -(38367, 14, "'userpos + C::userlen_of_slice(contents)'"), -(38407, 0, "';'"), -(38316, 0, "'n '"), -(38960, 40, "''"), -(38317, 16, "''"), -(38944, 0, "'self.dbg_check_cursor_at(&cursor, userpos + C::userlen_of_slice(contents));'"), -(39019, 0, "'n '"), -(39019, 17, "''"), -(39019, 0, "'n '"), -(39019, 17, "''"), -(38927, 0, "'n '"), -(39036, 0, "'n '"), -(38928, 16, "''"), -(39037, 0, "'n '"), -(39021, 16, "''"), -(39038, 0, "'/'"), -(39039, 0, "'/'"), -(39040, 0, "' '"), -(39022, 19, "''"), -(39021, 1, "''"), -(39020, 1, "''"), -(38928, 0, "'n '"), -(38945, 0, "'/'"), -(38946, 0, "'/'"), -(38947, 0, "' '"), -(38948, 0, "'T'"), -(38949, 0, "'h'"), -(38950, 0, "'e'"), -(38951, 0, "'r'"), -(38952, 0, "'e'"), -(38953, 0, "'''"), -(38954, 0, "'s'"), -(38955, 0, "' '"), -(38956, 0, "'n'"), -(38957, 0, "'o'"), -(38958, 0, "' '"), -(38959, 0, "'w'"), -(38960, 0, "'a'"), -(38961, 0, "'y'"), -(38962, 0, "' '"), -(38963, 0, "'t'"), -(38964, 0, "'o'"), -(38965, 0, "' '"), -(38966, 0, "'k'"), -(38967, 0, "'e'"), -(38968, 0, "'e'"), -(38969, 0, "'p'"), -(38970, 0, "' '"), -(38971, 0, "'t'"), -(38972, 0, "'h'"), -(38973, 0, "'e'"), -(38974, 0, "' '"), -(38975, 0, "'c'"), -(38976, 0, "'u'"), -(38977, 0, "'r'"), -(38978, 0, "'s'"), -(38979, 0, "'o'"), -(38980, 0, "'r'"), -(38981, 0, "' '"), -(38982, 0, "'s'"), -(38983, 0, "'t'"), -(38984, 0, "'e'"), -(38985, 0, "'a'"), -(38986, 0, "'d'"), -(38987, 0, "'y'"), -(38988, 0, "' '"), -(38989, 0, "'f'"), -(38990, 0, "'o'"), -(38991, 0, "'r'"), -(38992, 0, "' '"), -(38993, 0, "'t'"), -(38994, 0, "'h'"), -(38995, 0, "' '"), -(38996, 0, "'e'"), -(38997, 0, "'f'"), -(38998, 0, "'i'"), -(38998, 1, "''"), -(38997, 1, "''"), -(38996, 1, "''"), -(38995, 1, "''"), -(38995, 0, "'e'"), -(38996, 0, "' '"), -(38997, 0, "'f'"), -(38998, 0, "'i'"), -(38999, 0, "'n'"), -(39000, 0, "'a'"), -(39001, 0, "'l'"), -(39002, 0, "' '"), -(39003, 0, "'i'"), -(39004, 0, "'n'"), -(39005, 0, "'s'"), -(39006, 0, "'e'"), -(39007, 0, "'r'"), -(39008, 0, "'t'"), -(38959, 0, "' '"), -(38960, 0, "'c'"), -(38961, 0, "'e'"), -(38962, 0, "'a'"), -(38962, 1, "''"), -(38961, 1, "''"), -(38960, 1, "''"), -(38959, 1, "''"), -(38959, 0, "'c'"), -(38960, 0, "'o'"), -(38961, 0, "'l'"), -(38962, 0, "'e'"), -(38963, 0, "'a'"), -(38964, 0, "'n'"), -(38965, 0, "' '"), -(38959, 7, "'c'"), -(38960, 0, "'l'"), -(38961, 0, "'e'"), -(38962, 0, "'a'"), -(38963, 0, "'n'"), -(38964, 0, "' '"), -(39015, 0, "'.'"), -(39016, 0, "' '"), -(39017, 0, "'W'"), -(39018, 0, "'e'"), -(39019, 0, "'''"), -(39020, 0, "'l'"), -(39021, 0, "'l'"), -(39022, 0, "' '"), -(39023, 0, "'j'"), -(39024, 0, "'u'"), -(39025, 0, "'s'"), -(39026, 0, "'t'"), -(39027, 0, "' '"), -(39028, 0, "'m'"), -(39029, 0, "'a'"), -(39030, 0, "'k'"), -(39031, 0, "'e'"), -(39032, 0, "' '"), -(39033, 0, "'s'"), -(39034, 0, "'u'"), -(39035, 0, "'r'"), -(39036, 0, "'e'"), -(39037, 0, "' '"), -(39038, 0, "'t'"), -(39039, 0, "'h'"), -(39040, 0, "'e'"), -(39041, 0, "' '"), -(39042, 0, "'c'"), -(39043, 0, "'u'"), -(39044, 0, "'r'"), -(39045, 0, "'s'"), -(39046, 0, "'o'"), -(39047, 0, "'r'"), -(39048, 0, "' '"), -(39049, 0, "'i'"), -(39050, 0, "'s'"), -(39051, 0, "' '"), -(39052, 0, "'i'"), -(39053, 0, "'n'"), -(39054, 0, "' '"), -(39055, 0, "'t'"), -(39056, 0, "'h'"), -(39057, 0, "'e'"), -(39058, 0, "' '"), -(39059, 0, "'r'"), -(39060, 0, "'i'"), -(39061, 0, "'g'"), -(39062, 0, "'h'"), -(39063, 0, "'t'"), -(39064, 0, "' '"), -(39065, 0, "'p'"), -(39066, 0, "'o'"), -(39067, 0, "'s'"), -(39068, 0, "'i'"), -(39069, 0, "'t'"), -(39070, 0, "'i'"), -(39071, 0, "'o'"), -(39072, 0, "'n'"), -(39073, 0, "' '"), -(39074, 0, "'b'"), -(39075, 0, "'e'"), -(39076, 0, "'f'"), -(39077, 0, "'o'"), -(39078, 0, "'r'"), -(39079, 0, "'e'"), -(39080, 0, "' '"), -(39081, 0, "'t'"), -(39082, 0, "'h'"), -(39083, 0, "'a'"), -(39084, 0, "'t'"), -(39085, 0, "' '"), -(39086, 0, "'c'"), -(39087, 0, "'a'"), -(39088, 0, "'l'"), -(39089, 0, "'l'"), -(39090, 0, "' '"), -(39091, 0, "'f'"), -(39092, 0, "'o'"), -(39093, 0, "'r'"), -(39094, 0, "' '"), -(39095, 0, "'n'"), -(39096, 0, "'o'"), -(39097, 0, "'w'"), -(39098, 0, "'.'"), -(38929, 170, "' // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.'"), -(39229, 0, "'n '"), -(39230, 16, "''"), -(37268, 0, "','"), -(37269, 0, "' '"), -(37270, 0, "'''"), -(37271, 0, "'A'"), -(37272, 0, "'S'"), -(37273, 0, "'d'"), -(37274, 0, "'f'"), -(37275, 0, "'''"), -(15631, 0, "'n'"), -(15632, 0, "'n'"), -(15633, 0, "'i'"), -(15634, 0, "'m'"), -(15635, 0, "'p'"), -(15636, 0, "'l'"), -(15637, 0, "'<'"), -(15638, 0, "'C'"), -(15639, 0, "':'"), -(15640, 0, "' '"), -(15641, 0, "'L'"), -(15642, 0, "'i'"), -(15643, 0, "'s'"), -(15641, 3, "'ListConfig'"), -(15651, 0, "'>'"), -(15652, 0, "' '"), -(15653, 0, "'f'"), -(15654, 0, "'m'"), -(15655, 0, "'t'"), -(15656, 0, "':'"), -(15657, 0, "':'"), -(15658, 0, "'D'"), -(15659, 0, "'e'"), -(15660, 0, "'b'"), -(15661, 0, "'u'"), -(15662, 0, "'g'"), -(15663, 0, "' '"), -(15664, 0, "'f'"), -(15665, 0, "'o'"), -(15666, 0, "'r'"), -(15667, 0, "' '"), -(15668, 0, "'C'"), -(15669, 0, "'u'"), -(15670, 0, "'r'"), -(15671, 0, "'s'"), -(15672, 0, "'o'"), -(15673, 0, "'r'"), -(15674, 0, "'<'"), -(15675, 0, "'C'"), -(15676, 0, "'>'"), -(15677, 0, "' '"), -(15678, 0, "'{'"), -(15679, 0, "'n '"), -(15680, 4, "'}'"), -(15679, 0, "'n '"), -(15680, 4, "''"), -(843, 0, "'n'"), -(844, 0, "'n'"), -(845, 0, "'u'"), -(846, 0, "'s'"), -(847, 0, "'e'"), -(848, 0, "' '"), -(849, 0, "'s'"), -(850, 0, "'t'"), -(851, 0, "'d'"), -(852, 0, "':'"), -(853, 0, "':'"), -(854, 0, "'f'"), -(855, 0, "'m'"), -(856, 0, "'t'"), -(857, 0, "';'"), -(11383, 7, "''"), -(15688, 0, "' '"), -(15692, 0, "'f'"), -(15693, 0, "'n'"), -(15694, 0, "' '"), -(15695, 0, "'f'"), -(15696, 0, "'m'"), -(15697, 0, "'t'"), -(15698, 0, "'('"), -(15699, 0, "'&'"), -(15700, 0, "'s'"), -(15701, 0, "'e'"), -(15702, 0, "'l'"), -(15703, 0, "'f'"), -(15704, 0, "','"), -(15705, 0, "' '"), -(15706, 0, "'f: &mut fmt::Formatter<'_>'"), -(15732, 0, "')'"), -(15733, 0, "' '"), -(15734, 0, "'-'"), -(15735, 0, "'>'"), -(15736, 0, "' '"), -(15737, 0, "'f'"), -(15738, 0, "'m'"), -(15739, 0, "'t'"), -(15740, 0, "':'"), -(15741, 0, "':'"), -(15742, 0, "'R'"), -(15743, 0, "'e'"), -(15744, 0, "'s'"), -(15745, 0, "'u'"), -(15742, 4, "'Result'"), -(15748, 0, "' '"), -(15749, 0, "'{'"), -(15750, 0, "'n '"), -(15759, 0, "'n '"), -(15751, 8, "''"), -(15752, 8, "' }'"), -(15751, 0, "' '"), -(15759, 0, "'f'"), -(15760, 0, "'.'"), -(15761, 0, "'d'"), -(15762, 0, "'e'"), -(15763, 0, "'b'"), -(15764, 0, "'u'"), -(15761, 4, "'debug_struct(name: &str)'"), -(15784, 0, "'''"), -(15774, 0, "'''"), -(15775, 10, "'C'"), -(15776, 0, "'u'"), -(15777, 0, "'r'"), -(15778, 0, "'s'"), -(15779, 0, "'o'"), -(15780, 0, "'r'"), -(15783, 0, "'n '"), -(15792, 0, "' '"), -(15796, 0, "'.'"), -(15797, 0, "'f'"), -(15798, 0, "'i'"), -(15799, 0, "'e'"), -(15800, 0, "'l'"), -(15801, 0, "'d'"), -(15802, 0, "'('"), -(15803, 0, "'''"), -(15804, 0, "'u'"), -(15805, 0, "'s'"), -(15806, 0, "'e'"), -(15807, 0, "'r'"), -(15808, 0, "'p'"), -(15809, 0, "'o'"), -(15810, 0, "'s'"), -(15811, 0, "'''"), -(15812, 0, "','"), -(15813, 0, "' '"), -(15814, 0, "'&'"), -(15815, 0, "'s'"), -(15816, 0, "'e'"), -(15817, 0, "'l'"), -(15818, 0, "'f'"), -(15819, 0, "'.'"), -(15820, 0, "'u'"), -(15821, 0, "'s'"), -(15822, 0, "'e'"), -(15823, 0, "'r'"), -(15824, 0, "'p'"), -(15825, 0, "'o'"), -(15826, 0, "'s'"), -(15827, 0, "')'"), -(15828, 0, "'n '"), -(15841, 0, "'.'"), -(15842, 0, "'f'"), -(15843, 0, "'i'"), -(15844, 0, "'n'"), -(15845, 0, "'i'"), -(15846, 0, "'s'"), -(15847, 0, "'h'"), -(15848, 0, "'('"), -(15849, 0, "')'"), -(15848, 0, "'_'"), -(15849, 0, "'n'"), -(15850, 0, "'o'"), -(15842, 9, "'finish_non_exhaustive()'"), -(15865, 1, "''"), -(15865, 1, "''"), -(15848, 15, "''"), -(15784, 0, "' .field('userpos', &self.userpos)n'"), -(15849, 7, "'i'"), -(15850, 0, "'n'"), -(15851, 0, "'d'"), -(15852, 0, "'e'"), -(15853, 0, "'x'"), -(15870, 0, "'_'"), -(15863, 8, "'l'"), -(15864, 0, "'o'"), -(15865, 0, "'c'"), -(15866, 0, "'a'"), -(15867, 0, "'l'"), -(15863, 5, "'local_index'"), -(15849, 5, "'l'"), -(15850, 0, "'o'"), -(15851, 0, "'c'"), -(15852, 0, "'a'"), -(15853, 0, "'l'"), -(15854, 0, "'_'"), -(15855, 0, "'i'"), -(15856, 0, "'n'"), -(15857, 0, "'d'"), -(15858, 0, "'e'"), -(15859, 0, "'x'"), -(15881, 0, "'n '"), -(15894, 0, "'/'"), -(15895, 0, "'/'"), -(15896, 0, "' '"), -(15882, 15, "''"), -(15881, 1, "''"), -(37548, 8, "''"), -(37353, 0, "','"), -(37354, 0, "' '"), -(37355, 0, "'p'"), -(37356, 0, "'l'"), -(37357, 0, "'u'"), -(37358, 0, "'s'"), -(37359, 0, "'_'"), -(37360, 0, "'i'"), -(37361, 0, "'n'"), -(37362, 0, "'d'"), -(37362, 1, "''"), -(37361, 1, "''"), -(37360, 1, "''"), -(37360, 0, "'i'"), -(37361, 0, "'t'"), -(37362, 0, "'e'"), -(37363, 0, "'m'"), -(37364, 0, "'s'"), -(37365, 0, "':'"), -(37366, 0, "' '"), -(37367, 0, "'u'"), -(37368, 0, "'s'"), -(37369, 0, "'i'"), -(37370, 0, "'e'"), -(37370, 1, "''"), -(37370, 0, "'z'"), -(37371, 0, "'e'"), -(37532, 0, "'n '"), -(37545, 0, "'i'"), -(37546, 0, "'f'"), -(37547, 0, "' '"), -(37548, 0, "'('"), -(37549, 0, "'p'"), -(37550, 0, "'l'"), -(37551, 0, "'u'"), -(37552, 0, "'s'"), -(37548, 5, "'p'"), -(37549, 0, "'l'"), -(37550, 0, "'u'"), -(37548, 3, "'plus_items'"), -(37558, 0, "' '"), -(37559, 0, "'>'"), -(37560, 0, "' '"), -(37561, 0, "'0'"), -(37562, 0, "' '"), -(37563, 0, "'{'"), -(37564, 0, "'n '"), -(37565, 16, "''"), -(37493, 0, "'m'"), -(37494, 0, "'u'"), -(37495, 0, "'t'"), -(37496, 0, "' '"), -(37569, 0, "' '"), -(37585, 0, "'c'"), -(37586, 0, "'2'"), -(37587, 0, "'.'"), -(37588, 0, "'advance_by_items(num: usize, height: u8)'"), -(37605, 10, "'p'"), -(37606, 0, "'l'"), -(37607, 0, "'u'"), -(37608, 0, "'s'"), -(37609, 0, "'_'"), -(37610, 0, "'i'"), -(37611, 0, "'t'"), -(37612, 0, "'e'"), -(37613, 0, "'m'"), -(37614, 0, "'s'"), -(37617, 10, "'s'"), -(37618, 0, "'e'"), -(37619, 0, "'l'"), -(37620, 0, "'f'"), -(37621, 0, "'.'"), -(37622, 0, "'h'"), -(37623, 0, "'e'"), -(37624, 0, "'i'"), -(37625, 0, "'g'"), -(37622, 4, "'h'"), -(37623, 0, "'e'"), -(37624, 0, "'a'"), -(37625, 0, "'d'"), -(37626, 0, "'.'"), -(37627, 0, "'h'"), -(37628, 0, "'e'"), -(37629, 0, "'i'"), -(37627, 3, "'height'"), -(37634, 0, "';'"), -(37537, 31, "''"), -(37536, 1, "''"), -(37537, 16, "' '"), -(38741, 32, "''"), -(38741, 0, "','"), -(38742, 0, "' '"), -(38743, 0, "'c'"), -(38744, 0, "'o'"), -(38745, 0, "'n'"), -(38746, 0, "'t'"), -(38747, 0, "'e'"), -(38748, 0, "'n'"), -(38749, 0, "'t'"), -(38750, 0, "'s'"), -(38751, 0, "'.'"), -(38752, 0, "'l'"), -(38753, 0, "'e'"), -(38754, 0, "'n'"), -(38755, 0, "'('"), -(38756, 0, "')'"), -(39504, 75, "'self.dbg_check_cursor_at(&cursor, userpos, contents.len());'"), -(7411, 0, "'O'"), -(7412, 0, "'p'"), -(7413, 0, "'t'"), -(7414, 0, "'i'"), -(7415, 0, "'o'"), -(7416, 0, "'n'"), -(7417, 0, "'<'"), -(7426, 0, "'>'"), -(16409, 0, "'n '"), -(16414, 0, "'n '"), -(16410, 4, "''"), -(16415, 0, "'p'"), -(16416, 0, "'u'"), -(16417, 0, "'b'"), -(16418, 0, "' '"), -(16419, 0, "'f'"), -(16420, 0, "'n'"), -(16421, 0, "' '"), -(16422, 0, "'I'"), -(16422, 1, "''"), -(16422, 0, "'i'"), -(16423, 0, "'n'"), -(16424, 0, "'i'"), -(16425, 0, "'t'"), -(16426, 0, "'_'"), -(16427, 0, "'r'"), -(16428, 0, "'a'"), -(16429, 0, "'n'"), -(16430, 0, "'d'"), -(16431, 0, "'_'"), -(16432, 0, "'f'"), -(16433, 0, "'r'"), -(16433, 1, "''"), -(16432, 1, "''"), -(16431, 1, "''"), -(16430, 1, "''"), -(16429, 1, "''"), -(16428, 1, "''"), -(16428, 0, "'n'"), -(16429, 0, "'g'"), -(16430, 0, "'_'"), -(16431, 0, "'f'"), -(16432, 0, "'r'"), -(16433, 0, "'o'"), -(16434, 0, "'m'"), -(16435, 0, "'_'"), -(16436, 0, "'s'"), -(16437, 0, "'e'"), -(16438, 0, "'e'"), -(16439, 0, "'d'"), -(16440, 0, "'('"), -(16441, 0, "'s'"), -(16442, 0, "'e'"), -(16443, 0, "'e'"), -(16444, 0, "'d'"), -(16445, 0, "':'"), -(16446, 0, "' '"), -(16447, 0, "'u'"), -(16448, 0, "'6'"), -(16449, 0, "'4'"), -(16450, 0, "')'"), -(16451, 0, "' '"), -(16452, 0, "'-'"), -(16452, 1, "''"), -(16452, 0, "'{'"), -(16453, 0, "'n '"), -(16462, 0, "'n '"), -(16454, 8, "''"), -(16455, 8, "' }'"), -(16079, 28, "''"), -(16079, 0, "'N'"), -(16080, 0, "'o'"), -(16081, 0, "'n'"), -(16082, 0, "'e'"), -(16417, 0, "'&'"), -(16418, 0, "'m'"), -(16419, 0, "'u'"), -(16420, 0, "'t'"), -(16421, 0, "' '"), -(16422, 0, "'s'"), -(16423, 0, "'e'"), -(16424, 0, "'l'"), -(16425, 0, "'f'"), -(16426, 0, "','"), -(16427, 0, "' '"), -(16441, 0, "'SmallRng::seed_from_u64(123)'"), -(16441, 0, "' '"), -(16449, 0, "'s'"), -(16450, 0, "'e'"), -(16451, 0, "'l'"), -(16452, 0, "'f'"), -(16453, 0, "'.'"), -(16454, 0, "'r'"), -(16455, 0, "'n'"), -(16456, 0, "'g'"), -(16457, 0, "' '"), -(16458, 0, "'='"), -(16459, 0, "' '"), -(16460, 0, "'S'"), -(16461, 0, "'o'"), -(16462, 0, "'m'"), -(16463, 0, "'e'"), -(16464, 0, "'('"), -(16493, 0, "')'"), -(16492, 0, "'='"), -(16493, 0, "'='"), -(16494, 0, "'='"), -(16495, 0, "'='"), -(16495, 1, "''"), -(16494, 1, "''"), -(16493, 1, "''"), -(16492, 1, "''"), -(16491, 1, "''"), -(16490, 1, "''"), -(16489, 1, "''"), -(16489, 0, "'s'"), -(16490, 0, "'e'"), -(16491, 0, "'e'"), -(16492, 0, "'d'"), -(16495, 0, "'n '"), -(16504, 0, "'S'"), -(16505, 0, "'m'"), -(16506, 0, "'a'"), -(16507, 0, "'l'"), -(16508, 0, "'l'"), -(16504, 5, "'SmallRng'"), -(16512, 0, "':'"), -(16513, 0, "':'"), -(16514, 0, "'f'"), -(16515, 0, "'r'"), -(16516, 0, "'o'"), -(16517, 0, "'m'"), -(16518, 0, "'_'"), -(16519, 0, "'e'"), -(16520, 0, "'n'"), -(16521, 0, "'t'"), -(16522, 0, "'r'"), -(16523, 0, "'o'"), -(16524, 0, "'p'"), -(16525, 0, "'y'"), -(16526, 0, "'('"), -(16527, 0, "')'"), -(16528, 0, "';'"), -(16495, 0, "';'"), -(23527, 0, "'n '"), -(23536, 0, "'i'"), -(23537, 0, "'f'"), -(23538, 0, "' '"), -(23539, 0, "'s'"), -(23540, 0, "'e'"), -(23541, 0, "'l'"), -(23542, 0, "'f'"), -(23543, 0, "'.'"), -(23544, 0, "'r'"), -(23545, 0, "'n'"), -(23546, 0, "'g'"), -(23547, 0, "' '"), -(23547, 1, "''"), -(23547, 0, "'.'"), -(23548, 0, "'i'"), -(23549, 0, "'s'"), -(23550, 0, "'_'"), -(23548, 3, "'is_none()'"), -(23557, 0, "'n'"), -(23557, 1, "''"), -(23557, 0, "' '"), -(23558, 0, "'{'"), -(23559, 0, "'n '"), -(23572, 0, "'s'"), -(23573, 0, "'e'"), -(23574, 0, "'l'"), -(23575, 0, "'f'"), -(23576, 0, "'.'"), -(23577, 0, "'r'"), -(23578, 0, "'n'"), -(23579, 0, "'g'"), -(23580, 0, "' '"), -(23581, 0, "'='"), -(23582, 0, "' '"), -(23583, 0, "'S'"), -(23584, 0, "'o'"), -(23585, 0, "'n'"), -(23586, 0, "'e'"), -(23587, 0, "'('"), -(16497, 33, "''"), -(16496, 1, "''"), -(23551, 1, "''"), -(23551, 0, "'m'"), -(23554, 0, "' SmallRng::from_entropy();'"), -(23561, 1, "''"), -(23560, 1, "''"), -(23559, 1, "''"), -(23558, 1, "''"), -(23557, 1, "''"), -(23556, 1, "''"), -(23555, 1, "''"), -(23554, 1, "''"), -(23578, 1, "''"), -(23578, 0, "')'"), -(23579, 0, "';'"), -(23580, 0, "'n '"), -(23581, 12, "' }'"), -(23590, 0, "'n '"), -(23648, 0, "'.'"), -(23591, 8, "''"), -(23641, 0, "'u'"), -(23642, 0, "'n'"), -(23643, 0, "'w'"), -(23644, 0, "'r'"), -(23641, 4, "'unwrap()'"), -(23648, 1, "''"), -(23647, 1, "''"), -(23646, 1, "''"), -(23645, 1, "''"), -(23644, 1, "''"), -(23643, 1, "''"), -(23642, 1, "''"), -(23641, 1, "''"), -(23640, 1, "''"), -(23640, 0, "'.'"), -(23641, 0, "'a'"), -(23642, 0, "'s'"), -(23641, 2, "'as_deref_mut()'"), -(23655, 0, "'.'"), -(23656, 0, "'u'"), -(23657, 0, "'n'"), -(23658, 0, "'w'"), -(23659, 0, "'r'"), -(23660, 0, "'a'"), -(23656, 5, "'unwrap()'"), -(23649, 1, "''"), -(23648, 1, "''"), -(23647, 1, "''"), -(23646, 1, "''"), -(23645, 1, "''"), -(23644, 1, "''"), -(23591, 0, "'n '"), -(23600, 0, "'/'"), -(23601, 0, "'/'"), -(23602, 0, "' '"), -(23603, 0, "'r'"), -(23604, 0, "'n'"), -(23605, 0, "'g'"), -(23606, 0, "' '"), -(23607, 0, "'c'"), -(23608, 0, "'o'"), -(23609, 0, "'d'"), -(23610, 0, "'e'"), -(23611, 0, "' '"), -(23612, 0, "'h'"), -(23613, 0, "'e'"), -(23614, 0, "'r'"), -(23615, 0, "'e'"), -(23616, 0, "' '"), -(23617, 0, "'i'"), -(23618, 0, "'s'"), -(23619, 0, "' '"), -(23620, 0, "'a'"), -(23621, 0, "' '"), -(23622, 0, "'b'"), -(23623, 0, "'i'"), -(23624, 0, "'t'"), -(23625, 0, "' '"), -(23626, 0, "'u'"), -(23627, 0, "'g'"), -(23628, 0, "'l'"), -(23629, 0, "'y'"), -(23630, 0, "'.'"), -(23631, 0, "' '"), -(22906, 0, "'n '"), -(22911, 0, "'n '"), -(22907, 4, "''"), -(22912, 0, "'f'"), -(22913, 0, "'n'"), -(22914, 0, "' '"), -(22915, 0, "'g'"), -(22916, 0, "'e'"), -(22917, 0, "'t'"), -(22918, 0, "'_'"), -(22919, 0, "'r'"), -(22920, 0, "'n'"), -(22921, 0, "'g'"), -(22922, 0, "'('"), -(22923, 0, "'&'"), -(22924, 0, "'m'"), -(22925, 0, "'u'"), -(22926, 0, "'t'"), -(22927, 0, "' '"), -(22928, 0, "'s'"), -(22929, 0, "'e'"), -(22930, 0, "'l'"), -(22931, 0, "'f'"), -(22932, 0, "')'"), -(22933, 0, "' '"), -(22934, 0, "'-'"), -(22935, 0, "'>'"), -(22936, 0, "' '"), -(22937, 0, "'&'"), -(22938, 0, "'m'"), -(22939, 0, "'u'"), -(22940, 0, "'t'"), -(22941, 0, "' '"), -(22942, 0, "'S'"), -(22943, 0, "'m'"), -(22944, 0, "'a'"), -(22942, 3, "'SmallRng'"), -(22950, 0, "' '"), -(22951, 0, "'{'"), -(22952, 0, "'n '"), -(22961, 0, "'n '"), -(22953, 8, "''"), -(22954, 8, "' }'"), -(22953, 0, "' if self.rng.is_none() {n self.rng = Some(SmallRng::from_entropy());n }nn // rng code here is a bit ugly. n let new_node = Node::alloc(&mut self.rng.as_mut().unwrap());n'"), -(23160, 1, "''"), -(23159, 1, "''"), -(23158, 1, "''"), -(23100, 32, "''"), -(23720, 139, "''"), -(23785, 1, "''"), -(23784, 1, "''"), -(23783, 1, "''"), -(23782, 1, "''"), -(23781, 1, "''"), -(23780, 1, "''"), -(23779, 1, "''"), -(23778, 1, "''"), -(23777, 1, "''"), -(23776, 1, "''"), -(23775, 1, "''"), -(23774, 1, "''"), -(23773, 1, "''"), -(23772, 1, "''"), -(23771, 1, "''"), -(23770, 1, "''"), -(23769, 1, "''"), -(23768, 1, "''"), -(23767, 1, "''"), -(23766, 1, "''"), -(23765, 1, "''"), -(23764, 1, "''"), -(23763, 1, "''"), -(23762, 1, "''"), -(23761, 1, "''"), -(23760, 1, "''"), -(23759, 1, "''"), -(23758, 1, "''"), -(23757, 1, "''"), -(23756, 1, "''"), -(23755, 1, "''"), -(23755, 0, "'s'"), -(23756, 0, "'e'"), -(23757, 0, "'l'"), -(23758, 0, "'f'"), -(23759, 0, "'.'"), -(23760, 0, "'g'"), -(23761, 0, "'e'"), -(23762, 0, "'t'"), -(23763, 0, "'_'"), -(23764, 0, "'r'"), -(23765, 0, "'n'"), -(23766, 0, "'g'"), -(23760, 7, "'get_rng()'"), -(22952, 0, "'n '"), -(22961, 0, "'/'"), -(22962, 0, "'/'"), -(22963, 0, "' '"), -(22964, 0, "'I'"), -(22965, 0, "'''"), -(22966, 0, "'m'"), -(22967, 0, "' '"), -(22968, 0, "'s'"), -(22969, 0, "'u'"), -(22970, 0, "'r'"), -(22971, 0, "'e'"), -(22972, 0, "' '"), -(22973, 0, "'t'"), -(22974, 0, "'h'"), -(22975, 0, "'e'"), -(22976, 0, "'r'"), -(22977, 0, "'e'"), -(22978, 0, "'''"), -(22979, 0, "'s'"), -(22980, 0, "' '"), -(22981, 0, "' '"), -(22981, 1, "''"), -(22981, 0, "'a'"), -(22982, 0, "' '"), -(22983, 0, "'n'"), -(22984, 0, "'i'"), -(22985, 0, "'c'"), -(22986, 0, "'e'"), -(22987, 0, "'r'"), -(22988, 0, "' '"), -(22989, 0, "'w'"), -(22990, 0, "'a'"), -(22991, 0, "'y'"), -(22992, 0, "' '"), -(22993, 0, "'t'"), -(22994, 0, "'o'"), -(22995, 0, "' '"), -(22996, 0, "'i'"), -(22997, 0, "'m'"), -(22998, 0, "'p'"), -(22999, 0, "'l'"), -(23000, 0, "'e'"), -(23001, 0, "'m'"), -(23002, 0, "'e'"), -(23003, 0, "'n'"), -(23004, 0, "'t'"), -(23005, 0, "' '"), -(23006, 0, "'t'"), -(23007, 0, "'h'"), -(23008, 0, "'i'"), -(23009, 0, "'s'"), -(23010, 0, "'.'"), -(23109, 42, "''"), -(22907, 243, "''"), -(16503, 0, "'n fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n self.rng = Some(SmallRng::from_entropy());n }n self.rng.as_mut().unwrap()n }n'"), -(1667, 0, "'n'"), -(1668, 0, "'n'"), -(1669, 0, "'t'"), -(1670, 0, "'y'"), -(1671, 0, "'p'"), -(1672, 0, "'e'"), -(1673, 0, "'d'"), -(1674, 0, "'e'"), -(1675, 0, "'f'"), -(1676, 0, "' '"), -(1669, 8, "'s'"), -(1670, 0, "'t'"), -(1671, 0, "'r'"), -(1672, 0, "'u'"), -(1673, 0, "'c'"), -(1674, 0, "'t'"), -(1675, 0, "' '"), -(1676, 0, "'I'"), -(1677, 0, "'t'"), -(1678, 0, "'e'"), -(1679, 0, "'m'"), -(1680, 0, "'M'"), -(1681, 0, "'a'"), -(1682, 0, "'r'"), -(1683, 0, "'k'"), -(1684, 0, "'e'"), -(1685, 0, "'r'"), -(1686, 0, "' '"), -(1687, 0, "'{'"), -(1688, 0, "'n '"), -(1693, 0, "'n '"), -(1689, 4, "''"), -(1690, 4, "'}'"), -(1689, 0, "' '"), -(1693, 0, "'p'"), -(1694, 0, "'t'"), -(1695, 0, "'r'"), -(1696, 0, "':'"), -(1697, 0, "' '"), -(1669, 0, "'p'"), -(1670, 0, "'u'"), -(1671, 0, "'b'"), -(1672, 0, "' '"), -(1702, 0, "'*'"), -(1703, 0, "'m'"), -(1704, 0, "'u'"), -(1705, 0, "'t'"), -(1706, 0, "' '"), -(1707, 0, "'N'"), -(1708, 0, "'o'"), -(1709, 0, "'d'"), -(1710, 0, "'e'"), -(1690, 0, "'<'"), -(1691, 0, "'C'"), -(1692, 0, "':'"), -(1693, 0, "' '"), -(1694, 0, "'L'"), -(1695, 0, "'i'"), -(1696, 0, "'s'"), -(1697, 0, "'t'"), -(1698, 0, "'C'"), -(1699, 0, "'o'"), -(1700, 0, "'n'"), -(1694, 7, "'ListConfig'"), -(1704, 0, "'>'"), -(1726, 0, "'<'"), -(1727, 0, "'C'"), -(1728, 0, "'>'"), -(1729, 0, "','"), -(1730, 0, "'n '"), -(1735, 0, "'_'"), -(1736, 0, "'p'"), -(1737, 0, "'h'"), -(1738, 0, "'a'"), -(1739, 0, "'n'"), -(1740, 0, "'t'"), -(1741, 0, "'o'"), -(1742, 0, "'n'"), -(1743, 0, "':'"), -(1744, 0, "' '"), -(1745, 0, "'P'"), -(1746, 0, "'h'"), -(1747, 0, "'a'"), -(1748, 0, "'n'"), -(1749, 0, "'t'"), -(1750, 0, "'o'"), -(1751, 0, "'m'"), -(1752, 0, "'D'"), -(1753, 0, "'a'"), -(1754, 0, "'t'"), -(1755, 0, "'a'"), -(1691, 0, "'''"), -(1692, 0, "'a'"), -(1693, 0, "','"), -(1694, 0, "' '"), -(1760, 0, "'<'"), -(1761, 0, "'''"), -(1762, 0, "'a'"), -(1763, 0, "'>'"), -(843, 0, "'n'"), -(844, 0, "'u'"), -(845, 0, "'s'"), -(846, 0, "'e'"), -(847, 0, "' '"), -(848, 0, "'s'"), -(849, 0, "'t'"), -(850, 0, "'d'"), -(851, 0, "':'"), -(852, 0, "':'"), -(853, 0, "'m'"), -(854, 0, "'a'"), -(855, 0, "'r'"), -(856, 0, "'k'"), -(857, 0, "'e'"), -(858, 0, "'r'"), -(859, 0, "':'"), -(860, 0, "':'"), -(861, 0, "'P'"), -(862, 0, "'h'"), -(863, 0, "'a'"), -(864, 0, "'n'"), -(861, 4, "'PhantomData'"), -(872, 0, "';'"), -(1791, 0, "'&'"), -(1794, 0, "' '"), -(1795, 0, "'S'"), -(1796, 0, "'k'"), -(1797, 0, "'i'"), -(1798, 0, "'p'"), -(1795, 4, "'SkipList'"), -(1803, 0, "'<'"), -(1804, 0, "'C'"), -(1805, 0, "'>'"), -(2598, 0, "'n '"), -(2603, 0, "'n '"), -(2599, 4, "''"), -(2600, 4, "''"), -(2599, 0, "'n '"), -(2600, 4, "''"), -(2599, 1, "''"), -(2598, 1, "''"), -(2598, 0, "'n '"), -(2603, 0, "'f'"), -(2604, 0, "'n'"), -(2605, 0, "' '"), -(2606, 0, "'n'"), -(2607, 0, "'o'"), -(2608, 0, "'t'"), -(2609, 0, "'i'"), -(2610, 0, "'f'"), -(2611, 0, "'y'"), -(2612, 0, "'('"), -(2613, 0, "'&'"), -(2614, 0, "'m'"), -(2615, 0, "'u'"), -(2616, 0, "'t'"), -(2617, 0, "' '"), -(2618, 0, "'S'"), -(2618, 1, "''"), -(2618, 0, "'s'"), -(2619, 0, "'e'"), -(2620, 0, "'l'"), -(2621, 0, "'f'"), -(2622, 0, "','"), -(2623, 0, "' '"), -(2624, 0, "'i'"), -(2625, 0, "'t'"), -(2626, 0, "'e'"), -(2627, 0, "'m'"), -(2628, 0, "':'"), -(2629, 0, "' '"), -(2630, 0, "'&'"), -(2631, 0, "'S'"), -(2632, 0, "'e'"), -(2633, 0, "'l'"), -(2634, 0, "'f'"), -(2635, 0, "':'"), -(2636, 0, "':'"), -(2637, 0, "'I'"), -(2638, 0, "'t'"), -(2639, 0, "'e'"), -(2640, 0, "'m'"), -(2641, 0, "','"), -(2642, 0, "' '"), -(2643, 0, "'m'"), -(2644, 0, "'a'"), -(2645, 0, "'r'"), -(2646, 0, "'k'"), -(2647, 0, "'e'"), -(2648, 0, "'r'"), -(2649, 0, "':'"), -(2650, 0, "' '"), -(2643, 0, "'a'"), -(2644, 0, "'t'"), -(2645, 0, "'_'"), -(2654, 0, "'I'"), -(2655, 0, "'t'"), -(2656, 0, "'e'"), -(2657, 0, "'m'"), -(2658, 0, "'M'"), -(2654, 5, "'ItemMarker'"), -(2664, 0, "')'"), -(2665, 0, "'{'"), -(2665, 1, "''"), -(2665, 0, "' '"), -(2666, 0, "'{'"), -(2667, 0, "'n '"), -(2668, 8, "' }'"), -(2664, 0, "'<'"), -(2665, 0, "'C'"), -(2666, 0, "'>'"), -(2665, 1, "''"), -(2665, 0, "'S'"), -(2666, 0, "'e'"), -(2667, 0, "'l'"), -(2668, 0, "'f'"), -(1937, 0, "' '"), -(1938, 0, "'+'"), -(1939, 0, "' '"), -(1940, 0, "'S'"), -(1941, 0, "'i'"), -(1942, 0, "'z'"), -(1943, 0, "'e'"), -(1944, 0, "'d'"), -(1769, 0, "'// '"), -(1724, 1, "''"), -(1723, 1, "''"), -(1722, 1, "''"), -(1721, 1, "''"), -(1721, 0, "''a, '"), -(1769, 3, "''"), -(1738, 0, "' '"), -(1739, 0, "'+'"), -(1740, 0, "' '"), -(1741, 0, "'S'"), -(1742, 0, "'i'"), -(1743, 0, "'z'"), -(1744, 0, "'e'"), -(1745, 0, "'d'"), -(2687, 0, "' '"), -(2688, 0, "'w'"), -(2689, 0, "'h'"), -(2690, 0, "'e'"), -(2691, 0, "'r'"), -(2692, 0, "'e'"), -(2693, 0, "' '"), -(2694, 0, "'S'"), -(2695, 0, "'e'"), -(2696, 0, "'l'"), -(2697, 0, "'f'"), -(2698, 0, "':'"), -(2699, 0, "' '"), -(2700, 0, "'S'"), -(2701, 0, "'i'"), -(2702, 0, "'z'"), -(2703, 0, "'e'"), -(2704, 0, "'d'"), -(2640, 0, "'_'"), -(2660, 0, "'_'"), -(1738, 8, "''"), -(1937, 8, "''"), -(5518, 0, "'n '"), -(5523, 0, "'n '"), -(5519, 4, "''"), -(5524, 0, "'/'"), -(5525, 0, "'/'"), -(5526, 0, "' '"), -(5527, 0, "'T'"), -(5528, 0, "'h'"), -(5529, 0, "'e'"), -(5530, 0, "'r'"), -(5531, 0, "'e'"), -(5532, 0, "'''"), -(5533, 0, "'s'"), -(5534, 0, "' '"), -(5535, 0, "'a'"), -(5536, 0, "' '"), -(5537, 0, "'l'"), -(5538, 0, "'o'"), -(5539, 0, "'t'"), -(5540, 0, "' '"), -(5541, 0, "'o'"), -(5542, 0, "'f'"), -(5543, 0, "' '"), -(5544, 0, "'w'"), -(5545, 0, "'a'"), -(5546, 0, "'y'"), -(5547, 0, "' '"), -(5547, 1, "''"), -(5547, 0, "'s'"), -(5548, 0, "' '"), -(5549, 0, "'I'"), -(5550, 0, "' '"), -(5551, 0, "'c'"), -(5552, 0, "'o'"), -(5553, 0, "'u'"), -(5554, 0, "'l'"), -(5555, 0, "'d'"), -(5556, 0, "' '"), -(5557, 0, "'s'"), -(5558, 0, "'o'"), -(5559, 0, "'l'"), -(5560, 0, "'v'"), -(5561, 0, "'e'"), -(5562, 0, "' '"), -(5527, 36, "'W'"), -(5528, 0, "'i'"), -(5529, 0, "'t'"), -(5530, 0, "'h'"), -(5531, 0, "' '"), -(5532, 0, "'t'"), -(5533, 0, "'h'"), -(5534, 0, "'e'"), -(5535, 0, "' '"), -(5532, 4, "'e'"), -(5533, 0, "'v'"), -(5534, 0, "'e'"), -(5535, 0, "'r'"), -(5536, 0, "'y'"), -(5537, 0, "'t'"), -(5538, 0, "'h'"), -(5539, 0, "'i'"), -(5540, 0, "'n'"), -(5541, 0, "'g'"), -(5542, 0, "' '"), -(5543, 0, "'e'"), -(5544, 0, "'l'"), -(5545, 0, "'s'"), -(5546, 0, "'e'"), -(5547, 0, "','"), -(5548, 0, "' '"), -(5549, 0, "'w'"), -(5550, 0, "'e'"), -(5551, 0, "' '"), -(5552, 0, "'h'"), -(5553, 0, "'a'"), -(5554, 0, "'v'"), -(5555, 0, "'e'"), -(5556, 0, "' '"), -(5557, 0, "'n'"), -(5558, 0, "'o'"), -(5559, 0, "' '"), -(5560, 0, "'w'"), -(5561, 0, "'a'"), -(5562, 0, "'y'"), -(5563, 0, "' '"), -(5564, 0, "'t'"), -(5565, 0, "'o'"), -(5566, 0, "' '"), -(5567, 0, "'g'"), -(5568, 0, "'o'"), -(5569, 0, "' '"), -(5570, 0, "'f'"), -(5571, 0, "'r'"), -(5572, 0, "'o'"), -(5573, 0, "'m'"), -(5574, 0, "' '"), -(5575, 0, "'a'"), -(5576, 0, "' '"), -(5577, 0, "'m'"), -(5578, 0, "'a'"), -(5579, 0, "'r'"), -(5580, 0, "'k'"), -(5581, 0, "'e'"), -(5582, 0, "'r'"), -(5583, 0, "' '"), -(5584, 0, "'('"), -(5585, 0, "'n'"), -(5586, 0, "'o'"), -(5587, 0, "'d'"), -(5588, 0, "'e'"), -(5589, 0, "' '"), -(5590, 0, "'+'"), -(5591, 0, "' '"), -(1937, 0, "' '"), -(1938, 0, "'+'"), -(1939, 0, "' '"), -(1940, 0, "'P'"), -(1941, 0, "'a'"), -(1942, 0, "'r'"), -(1943, 0, "'t'"), -(1944, 0, "'i'"), -(1945, 0, "'a'"), -(1946, 0, "'l'"), -(1940, 7, "'PartialEq'"), -(5539, 23, "'W'"), -(5539, 0, "'A'"), -(5540, 0, "'l'"), -(5541, 0, "'o'"), -(5542, 0, "'n'"), -(5543, 0, "'e'"), -(5544, 0, "','"), -(5545, 0, "' '"), -(5539, 7, "''"), -(5539, 43, "'W'"), -(5540, 0, "'i'"), -(5541, 0, "'t'"), -(5542, 0, "'h'"), -(5543, 0, "'t'"), -(5544, 0, "' '"), -(5545, 0, "'h'"), -(5546, 0, "'e'"), -(5546, 1, "''"), -(5545, 1, "''"), -(5544, 1, "''"), -(5543, 1, "''"), -(5543, 0, "' '"), -(5544, 0, "'t'"), -(5545, 0, "'h'"), -(5546, 0, "'e'"), -(5547, 0, "' '"), -(5548, 0, "'h'"), -(5549, 0, "'e'"), -(5550, 0, "'a'"), -(5551, 0, "'d'"), -(5552, 0, "'s'"), -(5553, 0, "' '"), -(5554, 0, "'a'"), -(5555, 0, "'r'"), -(5556, 0, "'r'"), -(5557, 0, "'a'"), -(5558, 0, "'y'"), -(5559, 0, "'s'"), -(5560, 0, "' '"), -(5560, 1, "''"), -(5559, 1, "''"), -(5559, 0, "' '"), -(5560, 0, "'a'"), -(5561, 0, "'s'"), -(5562, 0, "' '"), -(5563, 0, "'i'"), -(5564, 0, "'s'"), -(5565, 0, "','"), -(5566, 0, "' '"), -(5567, 0, "'w'"), -(5568, 0, "'e'"), -(5569, 0, "' '"), -(5570, 0, "'h'"), -(5571, 0, "'a'"), -(5572, 0, "'v'"), -(5573, 0, "'e'"), -(5574, 0, "' '"), -(5575, 0, "'n'"), -(5576, 0, "'o'"), -(5577, 0, "' '"), -(5578, 0, "'i'"), -(5578, 1, "''"), -(5578, 0, "'w'"), -(5579, 0, "'a'"), -(5580, 0, "'y'"), -(5581, 0, "' '"), -(5582, 0, "'t'"), -(5583, 0, "'o'"), -(5584, 0, "' '"), -(5585, 0, "'f'"), -(5586, 0, "'r'"), -(5587, 0, "'o'"), -(5588, 0, "'m'"), -(5589, 0, "' '"), -(5589, 1, "''"), -(5588, 1, "''"), -(5587, 1, "''"), -(5586, 1, "''"), -(5585, 1, "''"), -(5585, 0, "'g'"), -(5586, 0, "'o'"), -(5587, 0, "' '"), -(5588, 0, "'f'"), -(5589, 0, "'r'"), -(5590, 0, "'o'"), -(5591, 0, "'m'"), -(5592, 0, "' '"), -(5593, 0, "'a'"), -(5594, 0, "' '"), -(5595, 0, "'m'"), -(5596, 0, "'a'"), -(5597, 0, "'r'"), -(5598, 0, "'k'"), -(5599, 0, "'e'"), -(5600, 0, "'r'"), -(5601, 0, "' '"), -(5602, 0, "'b'"), -(5603, 0, "'a'"), -(5604, 0, "'c'"), -(5605, 0, "'k'"), -(5606, 0, "' '"), -(5607, 0, "'t'"), -(5608, 0, "' '"), -(5609, 0, "'a'"), -(5609, 1, "''"), -(5608, 1, "''"), -(5608, 0, "'o'"), -(5609, 0, "' '"), -(5610, 0, "'a'"), -(5611, 0, "' '"), -(5612, 0, "'c'"), -(5613, 0, "'u'"), -(5614, 0, "'r'"), -(5615, 0, "'s'"), -(5616, 0, "'o'"), -(5617, 0, "'r'"), -(5618, 0, "' '"), -(5619, 0, "'('"), -(5620, 0, "'w'"), -(5621, 0, "'h'"), -(5622, 0, "'i'"), -(5623, 0, "'c'"), -(5624, 0, "'h'"), -(5625, 0, "' '"), -(5626, 0, "'i'"), -(5627, 0, "'s'"), -(5628, 0, "' '"), -(5629, 0, "'r'"), -(5630, 0, "'e'"), -(5631, 0, "'q'"), -(5632, 0, "'u'"), -(5633, 0, "'i'"), -(5634, 0, "'r'"), -(5635, 0, "'e'"), -(5636, 0, "'d'"), -(5637, 0, "' '"), -(5638, 0, "'t'"), -(5639, 0, "'o'"), -(5640, 0, "' '"), -(5641, 0, "'i'"), -(5642, 0, "'n'"), -(5643, 0, "'s'"), -(5644, 0, "'e'"), -(5645, 0, "'r'"), -(5646, 0, "'t'"), -(5647, 0, "' '"), -(5648, 0, "'a'"), -(5649, 0, "'t'"), -(5650, 0, "' '"), -(5651, 0, "'t'"), -(5652, 0, "'h'"), -(5653, 0, "'a'"), -(5654, 0, "'t'"), -(5655, 0, "' '"), -(5656, 0, "'l'"), -(5657, 0, "'o'"), -(5658, 0, "'c'"), -(5659, 0, "'a'"), -(5660, 0, "'t'"), -(5661, 0, "'i'"), -(5662, 0, "'o'"), -(5663, 0, "' '"), -(5664, 0, "'i'"), -(5665, 0, "'n'"), -(5665, 1, "''"), -(5664, 1, "''"), -(5663, 1, "''"), -(5663, 0, "'n'"), -(5664, 0, "' '"), -(5665, 0, "'i'"), -(5666, 0, "'n'"), -(5667, 0, "' '"), -(5668, 0, "'t'"), -(5669, 0, "'h'"), -(5670, 0, "'e'"), -(5671, 0, "' '"), -(5672, 0, "'l'"), -(5673, 0, "'i'"), -(5674, 0, "'s'"), -(5675, 0, "'t'"), -(5676, 0, "')'"), -(5677, 0, "'.'"), -(5532, 146, "' // With the heads array as is, we have no way to go from a marker back to an // cursor (which is required to insert at that location in the list).'"), -(5685, 0, "' '"), -(5686, 0, "'F'"), -(5687, 0, "'o'"), -(5688, 0, "'r'"), -(5689, 0, "' '"), -(5690, 0, "'t'"), -(5691, 0, "'h'"), -(5692, 0, "'a'"), -(5693, 0, "'t'"), -(5694, 0, "' '"), -(5695, 0, "'w'"), -(5696, 0, "'e'"), -(5697, 0, "' '"), -(5698, 0, "'n'"), -(5699, 0, "'e'"), -(5700, 0, "'e'"), -(5701, 0, "'d'"), -(5702, 0, "' '"), -(5537, 0, "'/'"), -(5619, 0, "'/'"), -(5705, 0, "'t'"), -(5706, 0, "'o'"), -(5707, 0, "' '"), -(5708, 0, "'b'"), -(5709, 0, "'e'"), -(5710, 0, "' '"), -(5711, 0, "'a'"), -(5712, 0, "'b'"), -(5713, 0, "'l'"), -(5714, 0, "'e'"), -(5715, 0, "' '"), -(5716, 0, "'t'"), -(5717, 0, "'o'"), -(5718, 0, "' '"), -(5719, 0, "'f'"), -(5720, 0, "'i'"), -(5721, 0, "'g'"), -(5722, 0, "'u'"), -(5723, 0, "'r'"), -(5724, 0, "'e'"), -(5725, 0, "' '"), -(5726, 0, "'o'"), -(5727, 0, "'u'"), -(5728, 0, "'t'"), -(5729, 0, "' '"), -(5730, 0, "'a'"), -(5731, 0, "'t'"), -(5732, 0, "' '"), -(5733, 0, "'e'"), -(5734, 0, "'a'"), -(5735, 0, "'c'"), -(5736, 0, "'h'"), -(5737, 0, "' '"), -(5738, 0, "'l'"), -(5739, 0, "'e'"), -(5740, 0, "'v'"), -(5741, 0, "'e'"), -(5742, 0, "'l'"), -(5743, 0, "' '"), -(5744, 0, "'o'"), -(5745, 0, "'f'"), -(5746, 0, "' '"), -(5747, 0, "'t'"), -(5748, 0, "'h'"), -(5749, 0, "'e'"), -(5750, 0, "' '"), -(5751, 0, "'n'"), -(5752, 0, "'e'"), -(5753, 0, "'x'"), -(5754, 0, "'t'"), -(5755, 0, "'s'"), -(5756, 0, "' '"), -(5757, 0, "'p'"), -(5758, 0, "'o'"), -(5759, 0, "'i'"), -(5760, 0, "'n'"), -(5761, 0, "'t'"), -(5762, 0, "'e'"), -(5763, 0, "'r'"), -(5764, 0, "'s'"), -(5765, 0, "' '"), -(5766, 0, "'w'"), -(5767, 0, "'h'"), -(5768, 0, "'i'"), -(5769, 0, "'c'"), -(5770, 0, "'h'"), -(5771, 0, "' '"), -(5772, 0, "'o'"), -(5773, 0, "'b'"), -(5774, 0, "'j'"), -(5775, 0, "'e'"), -(5776, 0, "'c'"), -(5777, 0, "'t'"), -(5778, 0, "'s'"), -(5772, 7, "'o'"), -(5773, 0, "'b'"), -(5774, 0, "'j'"), -(5775, 0, "'e'"), -(5776, 0, "'c'"), -(5777, 0, "'t'"), -(5778, 0, "' '"), -(5779, 0, "'p'"), -(5780, 0, "'o'"), -(5781, 0, "'i'"), -(5782, 0, "'n'"), -(5783, 0, "'t'"), -(5784, 0, "'s'"), -(5785, 0, "' '"), -(5786, 0, "'t'"), -(5787, 0, "'o'"), -(5788, 0, "' '"), -(5789, 0, "'u'"), -(5790, 0, "'s'"), -(5791, 0, "','"), -(5792, 0, "' '"), -(5793, 0, "'a'"), -(5794, 0, "'n'"), -(5795, 0, "'d'"), -(5796, 0, "' '"), -(5797, 0, "'h'"), -(5798, 0, "'o'"), -(5799, 0, "'w'"), -(5800, 0, "' '"), -(5801, 0, "'f'"), -(5802, 0, "'a'"), -(5803, 0, "'r'"), -(5804, 0, "' '"), -(5805, 0, "'i'"), -(5806, 0, "'n'"), -(5807, 0, "'t'"), -(5808, 0, "'o'"), -(5809, 0, "' '"), -(5810, 0, "'t'"), -(5811, 0, "'h'"), -(5812, 0, "'e'"), -(5613, 200, "' /// cursor (which is required to insert at that location in the list). Forn /// that we need to be able to figure out at each level of the nextsn /// pointers which object points to us, and how far into the'"), -(5813, 16, "'t'"), -(5814, 0, "'h'"), -(5815, 0, "'e'"), -(5816, 0, "' '"), -(5817, 0, "'o'"), -(5818, 0, "'f'"), -(5819, 0, "'f'"), -(5820, 0, "'s'"), -(5821, 0, "'e'"), -(5822, 0, "'t'"), -(5823, 0, "' '"), -(5824, 0, "'f'"), -(5825, 0, "'r'"), -(5826, 0, "'o'"), -(5827, 0, "'m'"), -(5828, 0, "' '"), -(5829, 0, "'t'"), -(5830, 0, "'h'"), -(5831, 0, "'a'"), -(5832, 0, "'t'"), -(5833, 0, "' '"), -(5834, 0, "'e'"), -(5835, 0, "'l'"), -(5836, 0, "'e'"), -(5837, 0, "'m'"), -(5838, 0, "'e'"), -(5839, 0, "'n'"), -(5840, 0, "'t'"), -(5841, 0, "' '"), -(5842, 0, "'t'"), -(5843, 0, "'o'"), -(5844, 0, "' '"), -(5845, 0, "'t'"), -(5846, 0, "'h'"), -(5847, 0, "'e'"), -(5848, 0, "' '"), -(5849, 0, "'c'"), -(5850, 0, "'u'"), -(5851, 0, "'r'"), -(5852, 0, "'r'"), -(5853, 0, "'e'"), -(5854, 0, "'n'"), -(5855, 0, "'t'"), -(5856, 0, "' '"), -(5857, 0, "'e'"), -(5858, 0, "'l'"), -(5859, 0, "'e'"), -(5860, 0, "'m'"), -(5861, 0, "'e'"), -(5862, 0, "'n'"), -(5863, 0, "'t'"), -(5864, 0, "'.'"), -(5765, 100, "' /// pointers which object points to us, and the offset from that element ton /// the current element.'"), -(5873, 0, "' '"), -(5874, 0, "'A'"), -(5875, 0, "'n'"), -(5876, 0, "'y'"), -(5877, 0, "'w'"), -(5878, 0, "'a'"), -(5879, 0, "'y'"), -(5880, 0, "','"), -(5881, 0, "' '"), -(5882, 0, "'w'"), -(5883, 0, "'e'"), -(5884, 0, "' '"), -(5885, 0, "'n'"), -(5886, 0, "'e'"), -(5887, 0, "'e'"), -(5882, 6, "'f'"), -(5883, 0, "'o'"), -(5884, 0, "'r'"), -(5885, 0, "'m'"), -(5885, 1, "''"), -(5885, 0, "' '"), -(5886, 0, "'m'"), -(5887, 0, "'a'"), -(5888, 0, "'r'"), -(5889, 0, "'k'"), -(5890, 0, "'e'"), -(5891, 0, "'r'"), -(5892, 0, "'s'"), -(5893, 0, "' '"), -(5894, 0, "'t'"), -(5895, 0, "'o'"), -(5896, 0, "' '"), -(5897, 0, "'w'"), -(5898, 0, "'o'"), -(5899, 0, "'r'"), -(5900, 0, "'k'"), -(5901, 0, "' '"), -(5902, 0, "'w'"), -(5903, 0, "'e'"), -(5904, 0, "' '"), -(5905, 0, "'n'"), -(5906, 0, "'e'"), -(5907, 0, "'e'"), -(5908, 0, "'d'"), -(5909, 0, "' '"), -(5910, 0, "'t'"), -(5911, 0, "'h'"), -(5912, 0, "'i'"), -(5913, 0, "'s'"), -(5914, 0, "'.'"), -(5915, 0, "'n /// '"), -(5923, 1, "''"), -(5922, 1, "''"), -(5921, 1, "''"), -(5920, 1, "''"), -(5920, 0, "'p'"), -(5921, 0, "'a'"), -(5922, 0, "'r'"), -(5923, 0, "'e'"), -(5924, 0, "'n'"), -(5925, 0, "'t'"), -(5926, 0, "':'"), -(5927, 0, "' '"), -(5928, 0, "'*'"), -(5929, 0, "'m'"), -(5930, 0, "'u'"), -(5931, 0, "'t'"), -(5932, 0, "' '"), -(5933, 0, "'N'"), -(5934, 0, "'o'"), -(5935, 0, "'d'"), -(5936, 0, "'e'"), -(5937, 0, "' '"), -(5937, 1, "''"), -(5937, 0, "';'"), -(5937, 0, "'<'"), -(5938, 0, "'C'"), -(5939, 0, "'>'"), -(5940, 1, "''"), -(5940, 0, "','"), -(9876, 0, "'n '"), -(9893, 0, "'p'"), -(9894, 0, "'a'"), -(9895, 0, "'r'"), -(9896, 0, "'e'"), -(9897, 0, "'n'"), -(9893, 5, "'parent'"), -(9899, 0, "':'"), -(9900, 0, "' '"), -(9901, 0, "'p'"), -(9902, 0, "'t'"), -(9903, 0, "'r'"), -(9904, 0, "':'"), -(9905, 0, "':'"), -(9906, 0, "'n'"), -(9907, 0, "'u'"), -(9908, 0, "'l'"), -(9909, 0, "'l'"), -(9906, 4, "'null_mut()'"), -(9916, 0, "','"), -(16970, 0, "'n '"), -(16987, 0, "'p'"), -(16988, 0, "'a'"), -(16989, 0, "'r'"), -(16990, 0, "'e'"), -(16991, 0, "'n'"), -(16987, 5, "'parent'"), -(16993, 0, "':'"), -(16994, 0, "' '"), -(16995, 0, "'p'"), -(16996, 0, "'t'"), -(16997, 0, "'r'"), -(16998, 0, "':'"), -(16999, 0, "':'"), -(17000, 0, "'n'"), -(17001, 0, "'u'"), -(17002, 0, "'l'"), -(17003, 0, "'l'"), -(17000, 4, "'null()'"), -(17004, 0, "'_'"), -(17005, 0, "'m'"), -(17006, 0, "'u'"), -(17007, 0, "'t'"), -(17010, 0, "','"), -(19797, 7, "'_'"), -(19776, 7, "'_'"), -(18635, 7, "'_'"), -(18645, 7, "'_'"), -(18615, 0, "'m'"), -(18616, 0, "'u'"), -(18617, 0, "'t'"), -(18618, 0, "' '"), -(18628, 12, "''"), -(18628, 0, "' as *const _'"), -(18618, 1, "''"), -(18615, 3, "''"), -(19568, 57, "''"), -(19551, 0, "'n '"), -(19568, 0, "'a'"), -(19569, 0, "'s'"), -(19570, 0, "'s'"), -(19552, 19, "''"), -(19551, 1, "''"), -(19551, 0, "'n '"), -(19568, 0, "'a'"), -(19569, 0, "'s'"), -(19570, 0, "'s'"), -(19571, 0, "'e'"), -(19572, 0, "'r'"), -(19568, 5, "'assert_eq!'"), -(19578, 0, "'('"), -(19579, 0, "'e'"), -(19580, 0, "'n'"), -(19581, 0, "'t'"), -(19582, 0, "'r'"), -(19583, 0, "'y'"), -(19584, 0, "'.'"), -(19568, 0, "'// '"), -(19568, 3, "''"), -(19577, 8, "'n'"), -(19577, 1, "'!(entry.'"), -(19579, 6, "'n'"), -(19580, 0, "'.'"), -(19581, 0, "'i'"), -(19582, 0, "'n'"), -(19583, 0, "'t'"), -(19584, 0, "'o'"), -(19581, 4, "''"), -(19580, 1, "''"), -(19580, 0, "'.'"), -(19581, 0, "'p'"), -(19582, 0, "'a'"), -(19583, 0, "'r'"), -(19584, 0, "'e'"), -(19585, 0, "'n'"), -(19586, 0, "'t'"), -(19587, 0, "','"), -(19588, 0, "' '"), -(19589, 0, "'i'"), -(19590, 0, "'t'"), -(19591, 0, "'e'"), -(19592, 0, "'r'"), -(19593, 0, "'['"), -(19594, 0, "'n'"), -(19595, 0, "'.'"), -(19596, 0, "'h'"), -(19597, 0, "'e'"), -(19598, 0, "'i'"), -(19599, 0, "'g'"), -(19600, 0, "'h'"), -(19601, 0, "'t'"), -(19602, 0, "' '"), -(19603, 0, "'a'"), -(19604, 0, "'s'"), -(19605, 0, "' '"), -(19606, 0, "'u'"), -(19607, 0, "'s'"), -(19608, 0, "'i'"), -(19609, 0, "'z'"), -(19610, 0, "'e'"), -(19611, 0, "']'"), -(19612, 0, "')'"), -(19613, 0, "';'"), -(19612, 0, "'.'"), -(19613, 0, "'n'"), -(19614, 0, "'o'"), -(19615, 0, "'d'"), -(19616, 0, "'e'"), -(19551, 0, "'n '"), -(19568, 0, "'l'"), -(19569, 0, "'e'"), -(19570, 0, "'t'"), -(19571, 0, "' '"), -(19572, 0, "'e'"), -(19573, 0, "'x'"), -(19574, 0, "'p'"), -(19575, 0, "'e'"), -(19576, 0, "'c'"), -(19577, 0, "'t'"), -(19578, 0, "'_'"), -(19579, 0, "'p'"), -(19580, 0, "'a'"), -(19581, 0, "'r'"), -(19582, 0, "'e'"), -(19583, 0, "'n'"), -(19584, 0, "'t'"), -(19585, 0, "' '"), -(19586, 0, "'='"), -(19587, 0, "' '"), -(19588, 0, "'i'"), -(19589, 0, "'f'"), -(19590, 0, "' '"), -(19591, 0, "'n'"), -(19592, 0, "'.'"), -(19593, 0, "'h'"), -(19594, 0, "'e'"), -(19595, 0, "'i'"), -(19596, 0, "'g'"), -(19597, 0, "'h'"), -(19598, 0, "'t'"), -(19599, 0, "' '"), -(19600, 0, "'='"), -(19601, 0, "'='"), -(19602, 0, "' '"), -(19603, 0, "'N'"), -(19604, 0, "'O'"), -(19605, 0, "'D'"), -(19606, 0, "'E'"), -(19607, 0, "'_'"), -(19608, 0, "'M'"), -(19609, 0, "'A'"), -(19609, 1, "''"), -(19608, 1, "''"), -(19603, 5, "'H'"), -(19604, 0, "'E'"), -(19605, 0, "'I'"), -(19606, 0, "'G'"), -(19607, 0, "'H'"), -(19608, 0, "'T'"), -(19603, 6, "'MAX_HEIGHT_U8'"), -(19616, 0, "' '"), -(19617, 0, "'{'"), -(19618, 0, "' '"), -(19619, 0, "'&'"), -(19620, 0, "'s'"), -(19621, 0, "'e'"), -(19622, 0, "'l'"), -(19623, 0, "'f'"), -(19624, 0, "'.'"), -(19625, 0, "'h'"), -(19626, 0, "'e'"), -(19627, 0, "'a'"), -(19628, 0, "'d'"), -(19629, 0, "' '"), -(19630, 0, "'}'"), -(19631, 0, "' '"), -(19632, 0, "'e'"), -(19633, 0, "'l'"), -(19634, 0, "'s'"), -(19635, 0, "'e'"), -(19636, 0, "' '"), -(19637, 0, "'iter[n.height as usize].node'"), -(19665, 0, "' '"), -(19666, 0, "'}'"), -(19637, 0, "'{'"), -(19638, 0, "' '"), -(19629, 0, "'.'"), -(19630, 0, "'a'"), -(19631, 0, "'s'"), -(19632, 0, "'_'"), -(19630, 3, "'as_mut_ptr'"), -(19640, 0, "'('"), -(19641, 0, "')'"), -(19619, 0, "'('"), -(19630, 0, "')'"), -(19630, 14, "''"), -(19619, 1, "''"), -(19629, 0, "'&self.head as *const _;'"), -(19629, 11, "''"), -(19629, 0, "' '"), -(19641, 0, "' '"), -(19642, 0, "'a'"), -(19643, 0, "'s'"), -(19644, 0, "' '"), -(19645, 0, "'*'"), -(19646, 0, "'m'"), -(19647, 0, "'u'"), -(19648, 0, "'t'"), -(19649, 0, "' '"), -(19650, 0, "'_'"), -(19618, 1, "''"), -(19618, 0, "'n '"), -(19672, 1, "''"), -(19671, 1, "''"), -(19671, 0, "'n '"), -(19696, 1, "''"), -(19696, 0, "'n '"), -(19745, 1, "''"), -(19745, 0, "'n '"), -(19763, 0, "';'"), -(19764, 0, "'n '"), -(19819, 28, "'e'"), -(19765, 16, "''"), -(19804, 0, "'x'"), -(19805, 0, "'p'"), -(19806, 0, "'e'"), -(19803, 4, "'expect_parent'"), -(19588, 0, "'n '"), -(19589, 16, "' }'"), -(19602, 0, "' '"), -(19603, 0, "'e'"), -(19604, 0, "'l'"), -(19605, 0, "'s'"), -(19606, 0, "'e'"), -(19607, 0, "' '"), -(19601, 0, "' '"), -(19588, 0, "'i'"), -(19589, 0, "'f'"), -(19590, 0, "' '"), -(19591, 0, "'i'"), -(19592, 0, "'s'"), -(19593, 0, "'_'"), -(19594, 0, "'h'"), -(19595, 0, "'e'"), -(19596, 0, "'a'"), -(19597, 0, "'d'"), -(19598, 0, "' '"), -(19599, 0, "'{'"), -(19600, 0, "' '"), -(19600, 1, "''"), -(19600, 0, "'n '"), -(19621, 0, "'p'"), -(19622, 0, "'t'"), -(19623, 0, "'r'"), -(19624, 0, "':'"), -(19625, 0, "':'"), -(19626, 0, "'n'"), -(19627, 0, "'u'"), -(19628, 0, "'l'"), -(19629, 0, "'l'"), -(19626, 4, "'null_mut()'"), -(19633, 1, "''"), -(19632, 1, "''"), -(19631, 1, "''"), -(19630, 1, "''"), -(19729, 10, "''"), -(19632, 0, "' '"), -(19633, 0, "'/'"), -(19634, 0, "'/'"), -(19635, 0, "' '"), -(19636, 0, "'T'"), -(19637, 0, "'h'"), -(19638, 0, "'e'"), -(19639, 0, "' '"), -(19640, 0, "'h'"), -(19641, 0, "'e'"), -(19642, 0, "'a'"), -(19643, 0, "'d'"), -(19644, 0, "'''"), -(19645, 0, "'s'"), -(19646, 0, "' '"), -(19647, 0, "'p'"), -(19648, 0, "'a'"), -(19649, 0, "'r'"), -(19650, 0, "'e'"), -(19651, 0, "'n'"), -(19652, 0, "'t'"), -(19653, 0, "' '"), -(19654, 0, "'i'"), -(19655, 0, "'s'"), -(19656, 0, "' '"), -(19657, 0, "'n'"), -(19658, 0, "'u'"), -(19659, 0, "'l'"), -(19660, 0, "'l'"), -(19758, 0, "' '"), -(19759, 0, "'/'"), -(19760, 0, "'/'"), -(19761, 0, "' '"), -(19762, 0, "'D'"), -(19763, 0, "'o'"), -(19764, 0, "'n'"), -(19765, 0, "'''"), -(19766, 0, "'t'"), -(19767, 0, "' '"), -(19762, 6, "'M'"), -(19763, 0, "'a'"), -(19764, 0, "'x'"), -(19765, 0, "' '"), -(19766, 0, "'h'"), -(19767, 0, "'e'"), -(19768, 0, "'i'"), -(19769, 0, "'g'"), -(19770, 0, "'h'"), -(19771, 0, "'t'"), -(19772, 0, "' '"), -(19773, 0, "'n'"), -(19774, 0, "'o'"), -(19775, 0, "'d'"), -(19776, 0, "'e'"), -(19777, 0, "'s'"), -(19778, 0, "' '"), -(19779, 0, "'p'"), -(19780, 0, "'o'"), -(19781, 0, "'i'"), -(19782, 0, "'n'"), -(19783, 0, "'t'"), -(19784, 0, "' '"), -(19785, 0, "'b'"), -(19786, 0, "'a'"), -(19787, 0, "'c'"), -(19788, 0, "'k'"), -(19789, 0, "' '"), -(19790, 0, "'t'"), -(19791, 0, "'o'"), -(19792, 0, "' '"), -(19793, 0, "'h'"), -(19794, 0, "'e'"), -(19795, 0, "'a'"), -(19796, 0, "'d'"), -(19927, 0, "' '"), -(19928, 0, "'a'"), -(19929, 0, "'s'"), -(19930, 0, "' '"), -(19931, 0, "'*'"), -(19932, 0, "'c'"), -(19933, 0, "'o'"), -(19934, 0, "'n'"), -(19935, 0, "'s'"), -(19936, 0, "'t'"), -(19937, 0, "' '"), -(19938, 0, "'_'"), -(19954, 0, "','"), -(19955, 0, "' '"), -(19956, 0, "'''"), -(19957, 0, "'i'"), -(19958, 0, "'n'"), -(19959, 0, "'v'"), -(19960, 0, "'a'"), -(19961, 0, "'l'"), -(19962, 0, "'i'"), -(19963, 0, "'d'"), -(19964, 0, "' '"), -(19965, 0, "'a'"), -(19965, 1, "''"), -(19965, 0, "'p'"), -(19966, 0, "'a'"), -(19967, 0, "'r'"), -(19968, 0, "'e'"), -(19969, 0, "'n'"), -(19970, 0, "'t'"), -(19971, 0, "'''"), -(1808, 0, "'// '"), -(1765, 0, "'// '"), -(1742, 0, "'// '"), -(1699, 0, "'// '"), -(1817, 3, "''"), -(1771, 3, "''"), -(1745, 3, "''"), -(1699, 3, "''"), -(25858, 0, "'n '"), -(25867, 0, "'n '"), -(25859, 8, "''"), -(25868, 0, "'('"), -(25869, 0, "'*'"), -(25870, 0, "'n'"), -(25871, 0, "'e'"), -(25872, 0, "'w'"), -(25873, 0, "'_'"), -(25874, 0, "'n'"), -(25875, 0, "'o'"), -(25876, 0, "'d'"), -(25877, 0, "'e'"), -(25878, 0, "')'"), -(25879, 0, "'.'"), -(25880, 0, "'p'"), -(25881, 0, "'a'"), -(25882, 0, "'r'"), -(25883, 0, "'e'"), -(25884, 0, "'n'"), -(25885, 0, "'t'"), -(25886, 0, "' '"), -(25887, 0, "'='"), -(25888, 0, "' '"), -(25868, 0, "'// '"), -(24879, 0, "'n '"), -(24888, 0, "'l'"), -(24889, 0, "'e'"), -(24890, 0, "'t'"), -(24891, 0, "' '"), -(24892, 0, "'n'"), -(24893, 0, "'e'"), -(24894, 0, "'w'"), -(24895, 0, "'_'"), -(24896, 0, "'n'"), -(24897, 0, "'o'"), -(24898, 0, "'d'"), -(24899, 0, "'e'"), -(24900, 0, "' '"), -(24901, 0, "'='"), -(24902, 0, "' '"), -(24900, 0, "'_'"), -(24901, 0, "'R'"), -(24902, 0, "'e'"), -(24903, 0, "'f'"), -(24901, 1, "''"), -(24901, 0, "'r'"), -(24907, 0, "'&'"), -(24907, 1, "''"), -(24907, 0, "'&'"), -(24908, 0, "'*'"), -(24908, 1, "''"), -(24908, 0, "'m'"), -(24909, 0, "'u'"), -(24910, 0, "'t'"), -(24911, 0, "' '"), -(24912, 0, "'*'"), -(24913, 0, "'n'"), -(24914, 0, "'e'"), -(24915, 0, "'w'"), -(24916, 0, "'_'"), -(24917, 0, "'n'"), -(24918, 0, "'o'"), -(24919, 0, "'d'"), -(24920, 0, "'e'"), -(24921, 0, "';'"), -(26079, 11, "'n'"), -(25914, 11, "'n'"), -(25073, 11, "'n'"), -(24985, 11, "'n'"), -(24931, 11, "'n'"), -(26040, 0, "'e'"), -(25885, 0, "'e'"), -(25054, 0, "'e'"), -(24976, 0, "'e'"), -(24932, 0, "'e'"), -(26045, 0, "'w'"), -(25889, 0, "'w'"), -(25057, 0, "'w'"), -(24978, 0, "'w'"), -(24933, 0, "'w'"), -(26050, 0, "'_'"), -(25893, 0, "'_'"), -(25060, 0, "'_'"), -(24980, 0, "'_'"), -(24934, 0, "'_'"), -(26055, 0, "'n'"), -(25897, 0, "'n'"), -(25063, 0, "'n'"), -(24982, 0, "'n'"), -(24935, 0, "'n'"), -(26060, 0, "'o'"), -(25901, 0, "'o'"), -(25066, 0, "'o'"), -(24984, 0, "'o'"), -(24936, 0, "'o'"), -(26065, 0, "'d'"), -(25905, 0, "'d'"), -(25069, 0, "'d'"), -(24986, 0, "'d'"), -(24937, 0, "'d'"), -(26063, 7, "'new_node_ref'"), -(25902, 7, "'new_node_ref'"), -(25065, 7, "'new_node_ref'"), -(24981, 7, "'new_node_ref'"), -(24931, 7, "'new_node_ref'"), -(26083, 12, "'new_nod'"), -(25917, 12, "'new_nod'"), -(25075, 12, "'new_nod'"), -(24986, 12, "'new_nod'"), -(24931, 12, "'new_nod'"), -(26063, 7, "'new_node_ref'"), -(25902, 7, "'new_node_ref'"), -(25065, 7, "'new_node_ref'"), -(24981, 7, "'new_node_ref'"), -(24931, 7, "'new_node_ref'"), -(26755, 0, "'_ptr'"), -(26491, 0, "'_ptr'"), -(24921, 0, "'_ptr'"), -(24848, 0, "'_ptr'"), -(26099, 4, "''"), -(25091, 4, "''"), -(25002, 4, "''"), -(24947, 4, "''"), -(24904, 4, "''"), -(25906, 3, "''"), -(25917, 1, "''"), -(25916, 1, "''"), -(25915, 1, "''"), -(25914, 1, "''"), -(25924, 0, "'c'"), -(25925, 0, "'u'"), -(25925, 1, "''"), -(25924, 1, "''"), -(25924, 0, "'c'"), -(25925, 0, "'u'"), -(25926, 0, "'r'"), -(25927, 0, "'s'"), -(25928, 0, "'o'"), -(25929, 0, "'r'"), -(25930, 0, "'.'"), -(25931, 0, "'e'"), -(25932, 0, "'n'"), -(25931, 2, "'entries'"), -(25938, 0, "'['"), -(25939, 0, "'n'"), -(25940, 0, "'e'"), -(25941, 0, "'w'"), -(25942, 0, "'_'"), -(25943, 0, "'h'"), -(25944, 0, "'e'"), -(25945, 0, "'i'"), -(25939, 7, "'new_height_usize'"), -(25197, 0, "'n let mut head_height = self.head.height as usize;'"), -(25089, 57, "''"), -(25140, 0, "'n'"), -(25088, 1, "''"), -(25045, 0, "'n '"), -(25964, 0, "']'"), -(25046, 8, "''"), -(25957, 0, "'.'"), -(25958, 0, "'n'"), -(25959, 0, "'o'"), -(25960, 0, "'d'"), -(25961, 0, "'e'"), -(25962, 0, "';'"), -(25898, 0, "'n '"), -(25907, 0, "'i'"), -(25908, 0, "'f'"), -(25909, 0, "' '"), -(25910, 0, "'n'"), -(25911, 0, "'e'"), -(25912, 0, "'w'"), -(25913, 0, "'_'"), -(25914, 0, "'h'"), -(25910, 5, "'new_height_usize'"), -(25926, 0, "' '"), -(25927, 0, "'>'"), -(25928, 0, "' '"), -(25928, 1, "''"), -(25927, 1, "''"), -(25927, 0, "'='"), -(25928, 0, "'='"), -(25929, 0, "' '"), -(25930, 0, "'M'"), -(25931, 0, "'A'"), -(25932, 0, "'X'"), -(25933, 0, "'_'"), -(25930, 4, "'MAX_HEIGHT'"), -(25949, 18, "''"), -(25907, 0, "'new_node.parent = '"), -(25958, 0, "' '"), -(25959, 0, "'{'"), -(25960, 0, "'n '"), -(25973, 0, "'s'"), -(25974, 0, "'e'"), -(25975, 0, "'l'"), -(25976, 0, "'f'"), -(25977, 0, "'.'"), -(25978, 0, "'h'"), -(25979, 0, "'e'"), -(25980, 0, "'a'"), -(25981, 0, "'d'"), -(25982, 0, "'n '"), -(25983, 12, "' }'"), -(25992, 0, "' '"), -(25993, 0, "'e'"), -(25994, 0, "'l'"), -(25995, 0, "'s'"), -(25996, 0, "'e'"), -(25997, 0, "' '"), -(25998, 0, "'{'"), -(25983, 63, "' } else { cursor.entries[new_height_usize].node;'"), -(26037, 1, "''"), -(26037, 0, "' '"), -(26038, 0, "'}'"), -(26039, 0, "';'"), -(25973, 0, "'&'"), -(25983, 0, "' '"), -(25983, 1, "''"), -(25983, 0, "' '"), -(25984, 0, "'a'"), -(25985, 0, "'s'"), -(25986, 0, "' '"), -(25987, 0, "'*'"), -(25988, 0, "'c'"), -(25989, 0, "'o'"), -(25990, 0, "'n'"), -(25991, 0, "'s'"), -(25992, 0, "'t'"), -(25993, 0, "' '"), -(25994, 0, "'_'"), -(25995, 0, "' '"), -(25996, 0, "'a'"), -(25997, 0, "'s'"), -(25998, 0, "' '"), -(25999, 0, "'*'"), -(26000, 0, "'m'"), -(26001, 0, "'u'"), -(26002, 0, "'t'"), -(26003, 0, "' '"), -(26004, 0, "'_'"), -(27224, 0, "'n '"), -(27233, 0, "'n '"), -(27225, 8, "''"), -(27234, 0, "'/'"), -(27235, 0, "'/'"), -(27236, 0, "' '"), -(27237, 0, "'U'"), -(27238, 0, "'p'"), -(27239, 0, "'d'"), -(27240, 0, "'a'"), -(27241, 0, "'t'"), -(27242, 0, "'e'"), -(27243, 0, "' '"), -(27244, 0, "'p'"), -(27245, 0, "'a'"), -(27246, 0, "'r'"), -(27247, 0, "'e'"), -(27248, 0, "'n'"), -(27249, 0, "'t'"), -(27250, 0, "'s'"), -(27251, 0, "' '"), -(27252, 0, "'o'"), -(27253, 0, "'f'"), -(27254, 0, "' '"), -(27255, 0, "'t'"), -(27256, 0, "'h'"), -(27257, 0, "'i'"), -(27258, 0, "'s'"), -(27259, 0, "' '"), -(27260, 0, "'n'"), -(27261, 0, "'o'"), -(27262, 0, "'d'"), -(27263, 0, "'e'"), -(27264, 0, "'''"), -(27265, 0, "'s'"), -(27266, 0, "' '"), -(27267, 0, "'n'"), -(27268, 0, "'e'"), -(27269, 0, "'w'"), -(27270, 0, "' '"), -(27271, 0, "'c'"), -(27272, 0, "'h'"), -(27273, 0, "'i'"), -(27274, 0, "'l'"), -(27275, 0, "'d'"), -(27276, 0, "'r'"), -(27277, 0, "'e'"), -(27278, 0, "'n'"), -(27279, 0, "'.'"), -(27280, 0, "'n '"), -(27289, 0, "'f'"), -(27290, 0, "'o'"), -(27291, 0, "'r'"), -(27292, 0, "' '"), -(27289, 4, "''"), -(27289, 0, "'l'"), -(27290, 0, "'e'"), -(27291, 0, "'t'"), -(27292, 0, "' '"), -(27293, 0, "'m'"), -(27294, 0, "'u'"), -(27295, 0, "'t'"), -(27296, 0, "' '"), -(27297, 0, "'n'"), -(27298, 0, "' '"), -(27299, 0, "'='"), -(27300, 0, "' '"), -(27301, 0, "'n'"), -(27302, 0, "'e'"), -(27303, 0, "'w'"), -(27304, 0, "'_'"), -(27301, 4, "'new_node'"), -(27309, 0, "'.'"), -(27310, 0, "'n'"), -(27310, 1, "''"), -(27309, 1, "''"), -(27309, 0, "'.'"), -(27310, 0, "'n'"), -(27311, 0, "'e'"), -(27312, 0, "'x'"), -(27313, 0, "'t'"), -(27314, 0, "'s'"), -(27315, 0, "'_'"), -(27310, 6, "'nexts_mut'"), -(27319, 0, "'('"), -(27320, 0, "')'"), -(27321, 0, "'.'"), -(27321, 1, "''"), -(27321, 0, "'['"), -(27322, 0, "'n'"), -(27323, 0, "'e'"), -(27324, 0, "'w'"), -(27325, 0, "'_'"), -(27322, 4, "'new_height_usize'"), -(27338, 0, "' '"), -(27339, 0, "'-'"), -(27340, 0, "' '"), -(27341, 0, "'1'"), -(27342, 0, "']'"), -(27343, 0, "';'"), -(27344, 0, "'n '"), -(27353, 0, "'w'"), -(27354, 0, "'h'"), -(27355, 0, "'i'"), -(27356, 0, "'l'"), -(27357, 0, "'e'"), -(27358, 0, "' '"), -(27359, 0, "'!'"), -(27360, 0, "'n'"), -(27361, 0, "'.'"), -(27362, 0, "'i'"), -(27363, 0, "'s'"), -(27364, 0, "'_'"), -(27365, 0, "'n'"), -(27366, 0, "'u'"), -(27367, 0, "'l'"), -(27368, 0, "'l'"), -(27362, 7, "'is_null'"), -(27369, 0, "'('"), -(27370, 0, "')'"), -(27371, 0, "' '"), -(27372, 0, "'{'"), -(27373, 0, "'n '"), -(27386, 0, "'n '"), -(27374, 12, "''"), -(27375, 12, "' }'"), -(27343, 0, "'.'"), -(27344, 0, "'n'"), -(27345, 0, "'o'"), -(27346, 0, "'d'"), -(27347, 0, "'e'"), -(27309, 0, "'_'"), -(27310, 0, "'p'"), -(27311, 0, "'t'"), -(27312, 0, "'r'"), -(27313, 40, "''"), -(27313, 0, "';'"), -(27343, 0, "'n '"), -(27356, 0, "'n'"), -(27357, 0, "' '"), -(27358, 0, "'='"), -(27359, 0, "' '"), -(27360, 0, "'.nexts_mut()[new_height_usize - 1].node;'"), -(27360, 0, "'n'"), -(27360, 0, "'('"), -(27361, 0, "'*'"), -(27363, 0, "')'"), -(27323, 18, "''"), -(27323, 0, "'l'"), -(27324, 0, "'o'"), -(27325, 0, "'o'"), -(27326, 0, "'p'"), -(27390, 0, "'n '"), -(27403, 0, "'i'"), -(27404, 0, "'f'"), -(27405, 0, "' '"), -(27406, 0, "'while !n.is_null()'"), -(27406, 7, "''"), -(27417, 0, "' '"), -(27418, 0, "'{'"), -(27419, 0, "' '"), -(27420, 0, "'b'"), -(27421, 0, "'r'"), -(27422, 0, "'e'"), -(27423, 0, "'a'"), -(27424, 0, "'k'"), -(27425, 0, "';'"), -(27426, 0, "' '"), -(27427, 0, "'}'"), -(27429, 0, "'n '"), -(27430, 12, "''"), -(27280, 0, "' '"), -(27281, 0, "'T'"), -(27282, 0, "'h'"), -(27283, 0, "'i'"), -(27284, 0, "'s'"), -(27285, 0, "' '"), -(27286, 0, "'i'"), -(27287, 0, "'s'"), -(27288, 0, "','"), -(27289, 0, "' '"), -(27290, 0, "'a'"), -(27291, 0, "'l'"), -(27292, 0, "'l'"), -(27293, 0, "' '"), -(27294, 0, "'c'"), -(27295, 0, "'h'"), -(27296, 0, "'i'"), -(27297, 0, "'l'"), -(27298, 0, "'d'"), -(27299, 0, "'r'"), -(27300, 0, "'e'"), -(27301, 0, "'n'"), -(27302, 0, "' '"), -(27303, 0, "'a'"), -(27304, 0, "'t'"), -(27305, 0, "' '"), -(27306, 0, "'t'"), -(27307, 0, "'h'"), -(27308, 0, "'e'"), -(27309, 0, "' '"), -(27293, 17, "' '"), -(27294, 0, "'n'"), -(27295, 0, "'o'"), -(27296, 0, "'d'"), -(27297, 0, "'e'"), -(27298, 0, "'s'"), -(27299, 0, "' '"), -(27300, 0, "'a'"), -(27301, 0, "'t'"), -(27302, 0, "' '"), -(27303, 0, "'t'"), -(27304, 0, "'h'"), -(27305, 0, "'e'"), -(27306, 0, "' '"), -(27307, 0, "'e'"), -(27308, 0, "'x'"), -(27309, 0, "'p'"), -(27310, 0, "'e'"), -(27311, 0, "'c'"), -(27312, 0, "'t'"), -(27313, 0, "'e'"), -(27314, 0, "'d'"), -(27315, 0, "' '"), -(27316, 0, "'h'"), -(27317, 0, "'e'"), -(27318, 0, "'i'"), -(27319, 0, "'g'"), -(27320, 0, "'h'"), -(27321, 0, "'t'"), -(27237, 85, "'P'"), -(27238, 0, "'o'"), -(27239, 0, "'i'"), -(27240, 0, "'n'"), -(27241, 0, "'t'"), -(27242, 0, "' '"), -(27243, 0, "'a'"), -(27244, 0, "'l'"), -(27245, 0, "'l'"), -(27246, 0, "' '"), -(27247, 0, "'n'"), -(27248, 0, "'o'"), -(27249, 0, "'d'"), -(27250, 0, "'e'"), -(27251, 0, "'s'"), -(27252, 0, "' '"), -(27253, 0, "'a'"), -(27254, 0, "'t'"), -(27255, 0, "' '"), -(27256, 0, "'h'"), -(27257, 0, "'e'"), -(27258, 0, "'i'"), -(27259, 0, "'g'"), -(27260, 0, "'h'"), -(27261, 0, "'t'"), -(27262, 0, "'-'"), -(27263, 0, "'1'"), -(27401, 0, "' '"), -(27402, 0, "'|'"), -(27403, 0, "'|'"), -(27404, 0, "' '"), -(27405, 0, "'('"), -(27406, 0, "'*'"), -(27407, 0, "'n'"), -(27408, 0, "')'"), -(27409, 0, "'.'"), -(27410, 0, "'n'"), -(27410, 1, "''"), -(27410, 0, "'h'"), -(27411, 0, "'e'"), -(27412, 0, "'i'"), -(27413, 0, "'g'"), -(27414, 0, "'h'"), -(27415, 0, "'t'"), -(27416, 0, "' '"), -(27417, 0, "'>'"), -(27418, 0, "' '"), -(27419, 0, "'n'"), -(27420, 0, "'e'"), -(27421, 0, "'w'"), -(27422, 0, "'_'"), -(27419, 4, "'new_height'"), -(27418, 0, "'='"), -(27237, 27, "'U'"), -(27238, 0, "'p'"), -(27239, 0, "'d'"), -(27240, 0, "'a'"), -(27241, 0, "'t'"), -(27242, 0, "'e'"), -(27243, 0, "' '"), -(27244, 0, "'p'"), -(27245, 0, "'a'"), -(27246, 0, "'r'"), -(27247, 0, "'e'"), -(27248, 0, "'n'"), -(27249, 0, "'t'"), -(27250, 0, "'s'"), -(27251, 0, "'.'"), -(27431, 0, "' '"), -(27443, 0, "'n'"), -(27444, 0, "'.'"), -(27445, 0, "'p'"), -(27445, 1, "''"), -(27444, 1, "''"), -(27443, 1, "''"), -(27443, 0, "'('"), -(27444, 0, "'*'"), -(27445, 0, "'n'"), -(27446, 0, "')'"), -(27447, 0, "'.'"), -(27448, 0, "'p'"), -(27449, 0, "'a'"), -(27450, 0, "'r'"), -(27451, 0, "'e'"), -(27452, 0, "'n'"), -(27453, 0, "'t'"), -(27454, 0, "' '"), -(27455, 0, "'='"), -(27456, 0, "' '"), -(27443, 0, "'// '"), -(27318, 0, "'&'"), -(27319, 0, "'m'"), -(27320, 0, "'u'"), -(27321, 0, "'t'"), -(27322, 0, "' '"), -(27323, 0, "'*'"), -(27400, 1, "''"), -(27399, 1, "''"), -(27398, 1, "''"), -(27398, 0, "' '"), -(27400, 1, "''"), -(27446, 3, "''"), -(27446, 0, "'// '"), -(27367, 0, "')'"), -(27324, 0, "'('"), -(27368, 1, "''"), -(27324, 1, "''"), -(27446, 3, "''"), -(27446, 0, "'// '"), -(27400, 0, "')'"), -(27398, 1, "''"), -(27398, 0, "' (*'"), -(27322, 2, "''"), -(27318, 4, "''"), -(27443, 3, "''"), -(27457, 0, "'n'"), -(27458, 0, "'e'"), -(27459, 0, "'w'"), -(27460, 0, "'_'"), -(27461, 0, "'n'"), -(27462, 0, "'o'"), -(27463, 0, "'d'"), -(27457, 7, "'new_node_ptr'"), -(27469, 0, "';'"), -(16787, 4, "'i'"), -(16788, 0, "'f'"), -(16789, 0, "' '"), -(16789, 1, "''"), -(16787, 2, "'None'"), -(16787, 0, "'if cfg!(debug_assertions)'"), -(16812, 4, "''"), -(16812, 0, "' '"), -(16813, 0, "'{'"), -(16814, 0, "' '"), -(16815, 0, "'Some(SmallRng::seed_from_u64(seed))'"), -(16850, 0, "' '"), -(16851, 0, "'}'"), -(16852, 0, "' '"), -(16787, 66, "''"), -(16787, 0, "'N'"), -(16788, 0, "'o'"), -(16789, 0, "'n'"), -(16790, 0, "'e'"), -(17388, 0, "'n '"), -(17401, 0, "'/'"), -(17402, 0, "'/'"), -(17403, 0, "' '"), -(17404, 0, "'W'"), -(17404, 1, "''"), -(17404, 0, "'I'"), -(17405, 0, "'f'"), -(17406, 0, "' '"), -(17407, 0, "'w'"), -(17408, 0, "'e'"), -(17409, 0, "'''"), -(17410, 0, "'r'"), -(17411, 0, "'e'"), -(17412, 0, "' '"), -(17413, 0, "'i'"), -(17414, 0, "'n'"), -(17415, 0, "' '"), -(17416, 0, "'d'"), -(17417, 0, "'e'"), -(17418, 0, "'b'"), -(17419, 0, "'u'"), -(17420, 0, "'g'"), -(17421, 0, "' '"), -(17422, 0, "'m'"), -(17423, 0, "'o'"), -(17424, 0, "'d'"), -(17425, 0, "'e'"), -(17426, 0, "','"), -(17427, 0, "' '"), -(17404, 24, "'W'"), -(17405, 0, "'e'"), -(17406, 0, "'''"), -(17407, 0, "'l'"), -(17408, 0, "'l'"), -(17409, 0, "' '"), -(17410, 0, "'u'"), -(17411, 0, "'s'"), -(17412, 0, "'e'"), -(17413, 0, "' '"), -(17414, 0, "'a'"), -(17415, 0, "' '"), -(17416, 0, "'s'"), -(17417, 0, "'t'"), -(17418, 0, "'a'"), -(17419, 0, "'b'"), -(17420, 0, "'l'"), -(17421, 0, "'e'"), -(17422, 0, "' '"), -(17423, 0, "'N'"), -(17424, 0, "'R'"), -(17424, 1, "''"), -(17423, 1, "''"), -(17423, 0, "'R'"), -(17424, 0, "'N'"), -(17425, 0, "'G'"), -(17426, 0, "' '"), -(17427, 0, "'i'"), -(17428, 0, "'n'"), -(17429, 0, "' '"), -(17430, 0, "'d'"), -(17431, 0, "'e'"), -(17432, 0, "'b'"), -(17433, 0, "'u'"), -(17434, 0, "'g'"), -(17435, 0, "' '"), -(17436, 0, "'m'"), -(17437, 0, "'o'"), -(17438, 0, "'d'"), -(17439, 0, "'e'"), -(17440, 0, "' '"), -(17441, 0, "'s'"), -(17442, 0, "'o'"), -(17443, 0, "' '"), -(17444, 0, "'t'"), -(17445, 0, "'h'"), -(17446, 0, "'e'"), -(17447, 0, "' '"), -(17448, 0, "'t'"), -(17449, 0, "'e'"), -(17450, 0, "'s'"), -(17451, 0, "'t'"), -(17452, 0, "'s'"), -(17453, 0, "' '"), -(17454, 0, "'a'"), -(17455, 0, "'r'"), -(17456, 0, "'e'"), -(17457, 0, "' '"), -(17458, 0, "'s'"), -(17459, 0, "'t'"), -(17460, 0, "'a'"), -(17461, 0, "'b'"), -(17462, 0, "'l'"), -(17463, 0, "'e'"), -(17464, 0, "'.'"), -(17465, 0, "'n '"), -(17478, 0, "'if cfg!(debug_assertions) { Some(SmallRng::seed_from_u64(seed)) } '"), -(17503, 41, "''"), -(17503, 0, "' '"), -(17504, 0, "'{'"), -(17505, 0, "'n '"), -(17522, 0, "'s'"), -(17523, 0, "'e'"), -(17524, 0, "'l'"), -(17525, 0, "'f'"), -(17526, 0, "'.'"), -(17527, 0, "'i'"), -(17528, 0, "'n'"), -(17529, 0, "'i'"), -(17530, 0, "'t'"), -(17527, 4, "'init_rng_from_seed(seed: u64)'"), -(17546, 9, "'3'"), -(17547, 0, "'2'"), -(17548, 0, "'1'"), -(17550, 0, "';'"), -(17551, 0, "'n '"), -(17552, 16, "' }'"), -(17565, 0, "' '"), -(17566, 0, "'e'"), -(17567, 0, "'l'"), -(17568, 0, "'s'"), -(17569, 0, "'e'"), -(17570, 0, "' '"), -(17571, 0, "'{'"), -(17585, 0, "' '"), -(17631, 0, "'n '"), -(17632, 16, "' }'"), -(17546, 3, "'1'"), -(17547, 0, "'2'"), -(17548, 0, "'3'"), -(17549, 0, "'n '"), -(17549, 17, "''"), -(18728, 0, "'n '"), -(18741, 0, "'l'"), -(18742, 0, "'e'"), -(18743, 0, "'t'"), -(18744, 0, "' '"), -(18745, 0, "'m'"), -(18746, 0, "'u'"), -(18747, 0, "'t'"), -(18748, 0, "' '"), -(18749, 0, "'p'"), -(18750, 0, "'r'"), -(18751, 0, "'e'"), -(18752, 0, "'v'"), -(18753, 0, "' '"), -(18753, 1, "''"), -(18753, 0, "':'"), -(18754, 0, "' '"), -(18755, 0, "'*mut Node'"), -(18755, 0, "'['"), -(18768, 0, "';'"), -(18769, 0, "' '"), -(18770, 0, "'M'"), -(18771, 0, "'A'"), -(18772, 0, "'X'"), -(18770, 3, "'MAX_HEIGHT'"), -(18780, 0, "']'"), -(18781, 0, "' '"), -(18782, 0, "'='"), -(18783, 0, "' '"), -(18784, 0, "'['"), -(18570, 0, "'n '"), -(18583, 0, "'l'"), -(18584, 0, "'e'"), -(18585, 0, "'t'"), -(18586, 0, "' '"), -(18587, 0, "'h'"), -(18588, 0, "'e'"), -(18589, 0, "'a'"), -(18590, 0, "'d'"), -(18591, 0, "'_'"), -(18592, 0, "'p'"), -(18593, 0, "'t'"), -(18594, 0, "'r'"), -(18595, 0, "' '"), -(18596, 0, "'='"), -(18597, 0, "' '"), -(18598, 0, "'&self.head as *const _ as *mut _'"), -(18630, 0, "';'"), -(18934, 32, "'h'"), -(18935, 0, "'e'"), -(18936, 0, "'a'"), -(18937, 0, "'d'"), -(18938, 0, "'_'"), -(18934, 5, "'head_ptr'"), -(18846, 0, "'n'"), -(18847, 0, "'u'"), -(18848, 0, "'l'"), -(18849, 0, "'l'"), -(18850, 0, "'_'"), -(18846, 5, "'p'"), -(18847, 0, "'t'"), -(18848, 0, "'r'"), -(18849, 0, "':'"), -(18850, 0, "':'"), -(18851, 0, "'n'"), -(18852, 0, "'u'"), -(18853, 0, "'l'"), -(18851, 3, "'null_mut()'"), -(18861, 0, "';'"), -(18862, 0, "' '"), -(18863, 0, "'_'"), -(18864, 0, "')'"), -(18864, 1, "''"), -(18864, 0, "']'"), -(18865, 0, "';'"), -(18866, 0, "'n '"), -(18867, 12, "''"), -(18863, 1, "''"), -(18863, 0, "'M'"), -(18864, 0, "'A'"), -(18865, 0, "'X'"), -(18863, 3, "'MAX_HEIGHT'"), -(20636, 0, "'n '"), -(20657, 0, "'p'"), -(20658, 0, "'r'"), -(20659, 0, "'e'"), -(20660, 0, "'v'"), -(20661, 0, "'['"), -(20662, 0, "'i'"), -(20663, 0, "']'"), -(20664, 0, "' '"), -(20665, 0, "'='"), -(20666, 0, "' '"), -(20667, 0, "'n'"), -(20668, 0, "';'"), -(20657, 0, "'// '"), -(18818, 3, "'c'"), -(18819, 0, "'o'"), -(18820, 0, "'n'"), -(18821, 0, "'s'"), -(18822, 0, "'t'"), -(18860, 1, "''"), -(18859, 1, "''"), -(18858, 1, "''"), -(18857, 1, "''"), -(20655, 3, "''"), -(20167, 4, "'p'"), -(20168, 0, "'r'"), -(20169, 0, "'e'"), -(20170, 0, "'v'"), -(20194, 1, "''"), -(20193, 1, "''"), -(20192, 1, "''"), -(20191, 1, "''"), -(20190, 1, "''"), -(27706, 1, "''"), -(27706, 0, "'2'"), -(27604, 0, "'n '"), -(27613, 0, "'i'"), -(27614, 0, "'f'"), -(27615, 0, "' '"), -(27616, 0, "'n'"), -(27617, 0, "'e'"), -(27618, 0, "'w'"), -(27619, 0, "'_'"), -(27620, 0, "'h'"), -(27616, 5, "'new_height_usize'"), -(27632, 0, "' '"), -(27633, 0, "'>'"), -(27634, 0, "' '"), -(27635, 0, "'1'"), -(27636, 0, "' '"), -(27637, 0, "'{'"), -(27857, 8, "' '"), -(27817, 12, "' '"), -(27749, 12, "' '"), -(27688, 12, "' '"), -(27673, 8, "' '"), -(27639, 8, "' '"), -(27890, 0, "'n '"), -(27891, 12, "' }'"), -(36777, 0, "'n '"), -(36794, 0, "'n '"), -(36778, 16, "''"), -(36795, 0, "'n // Update parents.n if new_height_usize > 1 {n let mut n = new_node_ptr;n loop {n n = (*n).nexts_mut()[new_height_usize - 2].node;n if n.is_null() || (*n).height >= new_height { break; }nn (*n).parent = new_node_ptr;n }n }'"), -(36779, 16, "''"), -(37093, 8, "' '"), -(37079, 12, "' '"), -(37035, 16, "' '"), -(36963, 16, "' '"), -(36898, 16, "' '"), -(36879, 12, "' '"), -(36841, 12, "' '"), -(36807, 8, "' '"), -(36780, 8, "' '"), -(37125, 12, "' '"), -(37107, 16, "' '"), -(37059, 20, "' '"), -(36983, 20, "' '"), -(36914, 20, "' '"), -(36891, 16, "' '"), -(36849, 16, "' '"), -(36811, 12, "' '"), -(36780, 12, "' '"), -(36778, 1, "''"), -(36833, 16, "'h'"), -(36834, 0, "'e'"), -(36835, 0, "'i'"), -(36836, 0, "'g'"), -(36837, 0, "'h'"), -(36838, 0, "'t'"), -(36878, 12, "'e'"), -(36953, 16, "'h'"), -(36954, 0, "'e'"), -(36955, 0, "'i'"), -(36956, 0, "'g'"), -(36957, 0, "'h'"), -(36958, 0, "'t'"), -(37028, 10, "'h'"), -(37029, 0, "'e'"), -(37030, 0, "'i'"), -(37031, 0, "'g'"), -(37032, 0, "'h'"), -(37033, 0, "'t'"), -(37034, 0, "' '"), -(37035, 0, "'a'"), -(37036, 0, "'s'"), -(37037, 0, "' '"), -(37038, 0, "'u'"), -(37039, 0, "'8'"), -(36845, 0, "'n '"), -(36846, 20, "''"), -(36845, 1, "''"), -(36880, 0, "'n '"), -(36901, 0, "'l'"), -(36902, 0, "'e'"), -(36903, 0, "'t'"), -(36904, 0, "' '"), -(36905, 0, "'n'"), -(36906, 0, "'e'"), -(36907, 0, "'w'"), -(36908, 0, "'_'"), -(36909, 0, "'p'"), -(36910, 0, "'a'"), -(36911, 0, "'r'"), -(36912, 0, "'e'"), -(36913, 0, "'n'"), -(36914, 0, "'t'"), -(36915, 0, "' '"), -(36916, 0, "'='"), -(36917, 0, "' '"), -(36918, 0, "'c'"), -(36919, 0, "'u'"), -(36920, 0, "'r'"), -(36921, 0, "'s'"), -(36922, 0, "'o'"), -(36923, 0, "'r'"), -(36924, 0, "'.'"), -(36925, 0, "'e'"), -(36926, 0, "'n'"), -(36927, 0, "'t'"), -(36928, 0, "'r'"), -(36929, 0, "'i'"), -(36930, 0, "'e'"), -(36931, 0, "'s'"), -(36932, 0, "'['"), -(36933, 0, "'h'"), -(36934, 0, "'e'"), -(36935, 0, "'i'"), -(36936, 0, "'g'"), -(36937, 0, "'h'"), -(36938, 0, "'t'"), -(36939, 0, "' '"), -(36940, 0, "'-'"), -(36941, 0, "' '"), -(36942, 0, "'1'"), -(36943, 0, "']'"), -(36944, 0, "'.'"), -(36945, 0, "'n'"), -(36946, 0, "'o'"), -(36947, 0, "'d'"), -(36948, 0, "'e'"), -(36949, 0, "';'"), -(37161, 12, "'n'"), -(37162, 0, "'e'"), -(37163, 0, "'w'"), -(37164, 0, "'_'"), -(37165, 0, "'p'"), -(37166, 0, "'a'"), -(37161, 6, "'new_parent'"), -(2641, 0, "'s'"), -(2645, 0, "'['"), -(2656, 0, "']'"), -(2661, 1, "''"), -(2660, 1, "''"), -(2660, 0, "'t'"), -(2661, 0, "'o'"), -(2661, 1, "''"), -(2660, 1, "''"), -(2660, 0, "'a'"), -(2661, 0, "'t'"), -(2688, 18, "''"), -(2688, 0, "' where Self: Sized'"), -(2699, 0, "':'"), -(2700, 0, "':'"), -(2701, 0, "'I'"), -(2702, 0, "'t'"), -(2701, 2, "'Item'"), -(2701, 4, "'It'"), -(2699, 4, "''"), -(1809, 0, "'n'"), -(1810, 0, "'i'"), -(1811, 0, "'m'"), -(1812, 0, "'p'"), -(1813, 0, "'l'"), -(1814, 0, "' '"), -(1815, 0, "'S'"), -(1816, 0, "'i'"), -(1817, 0, "'z'"), -(1818, 0, "'e'"), -(1819, 0, "'d'"), -(1820, 0, "' '"), -(1821, 0, "'f'"), -(1822, 0, "'o'"), -(1823, 0, "'r'"), -(1824, 0, "' '"), -(1825, 0, "'I'"), -(1826, 0, "'t'"), -(1827, 0, "'e'"), -(1828, 0, "'m'"), -(1825, 4, "'ItemMarker'"), -(1835, 0, "' '"), -(1836, 0, "'{'"), -(1837, 0, "'}'"), -(1814, 0, "'<'"), -(1815, 0, "'C'"), -(1816, 0, "':'"), -(1817, 0, "' '"), -(1818, 0, "'L'"), -(1819, 0, "'i'"), -(1820, 0, "'s'"), -(1821, 0, "'t'"), -(1818, 4, "'ListConfig'"), -(1828, 0, "'>'"), -(1850, 0, "'<'"), -(1851, 0, "'C'"), -(1852, 0, "'>'"), -(1809, 47, "''"), -(1738, 0, "' '"), -(1739, 0, "'+'"), -(1740, 0, "' '"), -(1741, 0, "'S'"), -(1742, 0, "'i'"), -(1743, 0, "'z'"), -(1744, 0, "'e'"), -(1745, 0, "'d'"), -(2696, 19, "' '"), -(2696, 1, "' where Self: Sized '"), -(1738, 8, "''"), -(2715, 267, "''"), -(2713, 0, "'// '"), -(2615, 0, "'// '"), -(24334, 0, "'n '"), -(24339, 0, "'n '"), -(24335, 4, "''"), -(24340, 0, "'p'"), -(24341, 0, "'u'"), -(24342, 0, "'b'"), -(24343, 0, "' '"), -(24344, 0, "'f'"), -(24345, 0, "'n'"), -(24346, 0, "' '"), -(24347, 0, "'i'"), -(24348, 0, "'t'"), -(24349, 0, "'e'"), -(24350, 0, "'r'"), -(24351, 0, "'_'"), -(24352, 0, "'a'"), -(24353, 0, "'t'"), -(24354, 0, "'_'"), -(24355, 0, "'m'"), -(24356, 0, "'a'"), -(24357, 0, "'r'"), -(24358, 0, "'k'"), -(24359, 0, "'e'"), -(24360, 0, "'r'"), -(24361, 0, "'('"), -(24362, 0, "'&'"), -(24363, 0, "'m'"), -(24364, 0, "'u'"), -(24365, 0, "'t'"), -(24366, 0, "' '"), -(24367, 0, "'s'"), -(24368, 0, "'e'"), -(24369, 0, "'l'"), -(24370, 0, "'f'"), -(24371, 0, "','"), -(24372, 0, "' '"), -(24373, 0, "'m'"), -(24374, 0, "'a'"), -(24375, 0, "'r'"), -(24376, 0, "'k'"), -(24377, 0, "'e'"), -(24378, 0, "'r'"), -(24379, 0, "':'"), -(24380, 0, "' '"), -(24381, 0, "'M'"), -(24382, 0, "'a'"), -(24383, 0, "'r'"), -(24384, 0, "'k'"), -(24381, 4, "'I'"), -(24382, 0, "'t'"), -(24383, 0, "'e'"), -(24384, 0, "'m'"), -(24385, 0, "'m'"), -(24381, 5, "'ItemMarker'"), -(24391, 0, "')'"), -(24392, 0, "' '"), -(24393, 0, "'-'"), -(24394, 0, "'>'"), -(24395, 0, "' '"), -(24396, 0, "'C'"), -(24397, 0, "'u'"), -(24398, 0, "'r'"), -(24399, 0, "'s'"), -(24400, 0, "'o'"), -(24401, 0, "'r'"), -(24402, 0, "' '"), -(24403, 0, "'{'"), -(24404, 0, "'n '"), -(24413, 0, "'n '"), -(24405, 8, "''"), -(24406, 8, "' }'"), -(24405, 0, "' '"), -(24405, 8, "''"), -(24391, 0, "'<'"), -(24392, 0, "'C'"), -(24393, 0, "'>'"), -(24405, 0, "'<'"), -(24406, 0, "'C'"), -(24407, 0, "'>'"), -(24411, 0, "' '"), -(24419, 0, "'/'"), -(24420, 0, "'/'"), -(24421, 0, "' '"), -(24422, 0, "'T'"), -(24423, 0, "'h'"), -(24424, 0, "'e'"), -(24425, 0, "' '"), -(24426, 0, "'m'"), -(24427, 0, "'a'"), -(24428, 0, "'r'"), -(24429, 0, "'k'"), -(24430, 0, "'e'"), -(24431, 0, "'r'"), -(24432, 0, "' '"), -(24433, 0, "'g'"), -(24434, 0, "'i'"), -(24435, 0, "'v'"), -(24436, 0, "'e'"), -(24437, 0, "'s'"), -(24438, 0, "' '"), -(24439, 0, "'u'"), -(24440, 0, "'s'"), -(24441, 0, "' '"), -(24442, 0, "'a'"), -(24443, 0, "' '"), -(24444, 0, "'p'"), -(24445, 0, "'o'"), -(24446, 0, "'i'"), -(24447, 0, "'n'"), -(24448, 0, "'t'"), -(24449, 0, "'e'"), -(24450, 0, "'r'"), -(24451, 0, "' '"), -(24452, 0, "'i'"), -(24453, 0, "'n'"), -(24454, 0, "'t'"), -(24455, 0, "'o'"), -(24456, 0, "' '"), -(24457, 0, "'a'"), -(24458, 0, "' '"), -(24459, 0, "'n'"), -(24460, 0, "'o'"), -(24461, 0, "'d'"), -(24462, 0, "'e'"), -(3554, 0, "'n'"), -(3555, 0, "'n'"), -(3556, 0, "'n'"), -(3557, 0, "'s'"), -(3558, 0, "'t'"), -(3559, 0, "'r'"), -(3560, 0, "'u'"), -(3561, 0, "'c'"), -(3562, 0, "'t'"), -(3563, 0, "' '"), -(3564, 0, "'F'"), -(3565, 0, "'o'"), -(3566, 0, "'o'"), -(3567, 0, "' '"), -(3567, 1, "''"), -(3567, 0, "'('"), -(3568, 0, "')'"), -(3569, 0, "'n'"), -(3570, 0, "'n'"), -(3570, 1, "''"), -(3569, 1, "''"), -(3569, 0, "';'"), -(3570, 0, "'n'"), -(3571, 0, "'n'"), -(3572, 0, "'i'"), -(3573, 0, "'m'"), -(3574, 0, "'p'"), -(3575, 0, "'l'"), -(3576, 0, "' '"), -(3567, 0, "'<'"), -(3568, 0, "'T'"), -(3569, 0, "'>'"), -(3571, 0, "'&'"), -(3571, 1, "''"), -(3571, 0, "'T'"), -(3581, 0, "'F'"), -(3582, 0, "'o'"), -(3583, 0, "'o'"), -(3584, 0, "' '"), -(3585, 0, "'{'"), -(3586, 0, "'n '"), -(3591, 0, "'n '"), -(3587, 4, "''"), -(3588, 4, "'}'"), -(3580, 0, "'<'"), -(3581, 0, "'T'"), -(3582, 0, "'>'"), -(3587, 0, "'<'"), -(3588, 0, "'T'"), -(3589, 0, "'>'"), -(3593, 0, "' '"), -(3597, 0, "'f'"), -(3598, 0, "'n'"), -(3599, 0, "' '"), -(3600, 0, "'b'"), -(3601, 0, "'l'"), -(3602, 0, "'a'"), -(3603, 0, "'h'"), -(3604, 0, "'('"), -(3605, 0, "')'"), -(3606, 0, "' '"), -(3607, 0, "'{'"), -(3608, 0, "'n '"), -(3617, 0, "'n '"), -(3609, 8, "''"), -(3610, 8, "' }'"), -(3606, 0, "' '"), -(3607, 0, "'w'"), -(3608, 0, "'h'"), -(3609, 0, "'e'"), -(3610, 0, "'r'"), -(3611, 0, "'e'"), -(3612, 0, "' '"), -(3613, 0, "'T'"), -(3614, 0, "':'"), -(3615, 0, "' '"), -(3616, 0, "'D'"), -(3617, 0, "'e'"), -(3618, 0, "'b'"), -(3619, 0, "'u'"), -(3620, 0, "'g'"), -(3616, 5, "'C'"), -(3617, 0, "'o'"), -(3618, 0, "'p'"), -(3619, 0, "'y'"), -(3631, 0, "'n'"), -(3632, 0, "'n'"), -(3633, 0, "'f'"), -(3634, 0, "'n'"), -(3635, 0, "' '"), -(3636, 0, "'x'"), -(3637, 0, "'('"), -(3638, 0, "')'"), -(3639, 0, "' '"), -(3640, 0, "'{'"), -(3641, 0, "'n '"), -(3646, 0, "'n '"), -(3642, 4, "''"), -(3643, 4, "'}'"), -(3642, 0, "' '"), -(3646, 0, "'F'"), -(3647, 0, "'o'"), -(3648, 0, "'o'"), -(3649, 0, "'('"), -(3650, 0, "'3'"), -(3651, 0, "')'"), -(3646, 0, "'l'"), -(3647, 0, "'e'"), -(3648, 0, "'t'"), -(3649, 0, "' '"), -(3650, 0, "'x'"), -(3651, 0, "' '"), -(3652, 0, "'='"), -(3653, 0, "' '"), -(3660, 0, "';'"), -(3661, 0, "'n '"), -(3666, 0, "'x'"), -(3667, 0, "'.'"), -(3668, 0, "'b'"), -(3669, 0, "'l'"), -(3670, 0, "'a'"), -(3671, 0, "'h'"), -(3672, 0, "'('"), -(3673, 0, "')'"), -(3674, 0, "';'"), -(3605, 0, "'&'"), -(3606, 0, "'s'"), -(3607, 0, "'e'"), -(3608, 0, "'l'"), -(3609, 0, "'f'"), -(3663, 1, "''"), -(3663, 0, "'F'"), -(3664, 0, "'o'"), -(3665, 0, "'o'"), -(3666, 0, "'('"), -(3667, 0, "'3'"), -(3668, 0, "')'"), -(3556, 131, "''"), -(3555, 1, "''"), -(2721, 0, "' '"), -(2725, 4, "''"), -(1937, 12, "''"), -(2713, 0, "'n '"), -(2718, 0, "'f'"), -(2719, 0, "'n'"), -(2720, 0, "' '"), -(2721, 0, "'c'"), -(2722, 0, "'o'"), -(2723, 0, "'n'"), -(2724, 0, "'t'"), -(2725, 0, "'a'"), -(2726, 0, "'i'"), -(2727, 0, "'n'"), -(2728, 0, "'s'"), -(2729, 0, "'_'"), -(2730, 0, "'i'"), -(2731, 0, "'t'"), -(2732, 0, "'e'"), -(2733, 0, "'m'"), -(2734, 0, "'('"), -(2735, 0, "'&'"), -(2735, 1, "''"), -(2735, 0, "'*'"), -(2736, 0, "'i'"), -(2737, 0, "'t'"), -(2738, 0, "'e'"), -(2739, 0, "'m'"), -(2740, 0, "':'"), -(2741, 0, "' '"), -(2742, 0, "'&'"), -(2743, 0, "'S'"), -(2744, 0, "'e'"), -(2745, 0, "'l'"), -(2746, 0, "'f'"), -(2747, 0, "':'"), -(2748, 0, "':'"), -(2749, 0, "'I'"), -(2750, 0, "'t'"), -(2751, 0, "'e'"), -(2752, 0, "'m'"), -(2753, 0, "','"), -(2754, 0, "' '"), -(2735, 1, "''"), -(2754, 0, "'q'"), -(2755, 0, "'u'"), -(2756, 0, "'e'"), -(2757, 0, "'r'"), -(2758, 0, "'y'"), -(2759, 0, "':'"), -(2760, 0, "' '"), -(2761, 0, "'&'"), -(2762, 0, "'S'"), -(2763, 0, "'e'"), -(2764, 0, "'l'"), -(2765, 0, "'f'"), -(2766, 0, "':'"), -(2767, 0, "':'"), -(2768, 0, "'I'"), -(2769, 0, "'t'"), -(2770, 0, "'e'"), -(2771, 0, "'m'"), -(2772, 0, "')'"), -(2773, 0, "' '"), -(2774, 0, "'-'"), -(2775, 0, "'>'"), -(2776, 0, "' '"), -(2777, 0, "'B'"), -(2777, 1, "''"), -(2777, 0, "'b'"), -(2778, 0, "'o'"), -(2779, 0, "'o'"), -(2780, 0, "'l'"), -(2781, 0, "' '"), -(2782, 0, "'{'"), -(2783, 0, "' '"), -(2784, 0, "'f'"), -(2785, 0, "'a'"), -(2786, 0, "'l'"), -(2787, 0, "'s'"), -(2788, 0, "'e'"), -(2789, 0, "' '"), -(2790, 0, "'}'"), -(2784, 5, "''"), -(2784, 1, "''"), -(2783, 1, "''"), -(2783, 0, "'n n '"), -(2792, 0, "'u'"), -(2793, 0, "'n'"), -(2794, 0, "'i'"), -(2795, 0, "'m'"), -(2796, 0, "'p'"), -(2797, 0, "'l'"), -(2792, 6, "'unimplemented!'"), -(2806, 0, "'('"), -(2807, 0, "')'"), -(2808, 0, "';'"), -(2807, 0, "'''"), -(2808, 0, "'I'"), -(2809, 0, "'m'"), -(2810, 0, "'p'"), -(2811, 0, "'l'"), -(2812, 0, "'e'"), -(2813, 0, "'m'"), -(2814, 0, "'e'"), -(2815, 0, "'n'"), -(2816, 0, "'t'"), -(2817, 0, "'s'"), -(2817, 1, "''"), -(2817, 0, "' '"), -(2818, 0, "'c'"), -(2819, 0, "'o'"), -(2820, 0, "'n'"), -(2821, 0, "'t'"), -(2822, 0, "'a'"), -(2823, 0, "'i'"), -(2824, 0, "'n'"), -(2825, 0, "'s'"), -(2826, 0, "'_'"), -(2827, 0, "'i'"), -(2828, 0, "'t'"), -(2829, 0, "'e'"), -(2830, 0, "'m'"), -(2831, 0, "' '"), -(2832, 0, "'f'"), -(2833, 0, "'o'"), -(2834, 0, "'r'"), -(2835, 0, "' '"), -(2808, 28, "'c'"), -(2809, 0, "'o'"), -(2810, 0, "'n'"), -(2811, 0, "'t'"), -(2812, 0, "'a'"), -(2808, 5, "'m'"), -(2809, 0, "'i'"), -(2810, 0, "'s'"), -(2811, 0, "'s'"), -(2812, 0, "'i'"), -(2813, 0, "'n'"), -(2814, 0, "'g'"), -(2815, 0, "' '"), -(2816, 0, "'c'"), -(2817, 0, "'o'"), -(2818, 0, "'n'"), -(2819, 0, "'t'"), -(2820, 0, "'a'"), -(2821, 0, "'i'"), -(2822, 0, "'n'"), -(2823, 0, "'s'"), -(2824, 0, "'_'"), -(2825, 0, "'i'"), -(2826, 0, "'t'"), -(2827, 0, "'e'"), -(2828, 0, "'m'"), -(2829, 0, "' '"), -(2830, 0, "'i'"), -(2831, 0, "'m'"), -(2832, 0, "'p'"), -(2833, 0, "'l'"), -(2834, 0, "' '"), -(2835, 0, "'f'"), -(2836, 0, "'o'"), -(2837, 0, "'r'"), -(2838, 0, "' '"), -(2784, 57, "''"), -(2783, 1, "''"), -(2713, 76, "''"), -(2715, 0, "'n'"), -(2716, 0, "'n'"), -(2717, 0, "'p'"), -(2718, 0, "'u'"), -(2719, 0, "'b'"), -(2720, 0, "' '"), -(2721, 0, "'t'"), -(2722, 0, "'r'"), -(2723, 0, "'a'"), -(2724, 0, "'i'"), -(2725, 0, "'t'"), -(2726, 0, "' '"), -(2727, 0, "'C'"), -(2728, 0, "'o'"), -(2729, 0, "'n'"), -(2730, 0, "'t'"), -(2731, 0, "'a'"), -(2732, 0, "'i'"), -(2733, 0, "'n'"), -(2734, 0, "'s'"), -(2735, 0, "' '"), -(2736, 0, "'{'"), -(2737, 0, "'n '"), -(2742, 0, "'n '"), -(2738, 4, "''"), -(2739, 4, "'}'"), -(2738, 0, "'n fn contains_item(item: &Self::Item, query: &Self::Item) -> bool {n }'"), -(2737, 1, "''"), -(2790, 6, "''"), -(2770, 6, "''"), -(2793, 8, "''"), -(2793, 0, "';'"), -(24482, 0, "' '"), -(24483, 0, "'w'"), -(24484, 0, "'h'"), -(24485, 0, "'e'"), -(24486, 0, "'r'"), -(24487, 0, "'e'"), -(24488, 0, "' '"), -(24489, 0, "'C'"), -(24490, 0, "':'"), -(24491, 0, "':'"), -(24492, 0, "'I'"), -(24493, 0, "'t'"), -(24494, 0, "'e'"), -(24495, 0, "'m'"), -(24496, 0, "' '"), -(24497, 0, "':'"), -(24497, 1, "''"), -(24496, 1, "''"), -(24496, 0, "':'"), -(24497, 0, "' '"), -(24498, 0, "'C'"), -(24499, 0, "'o'"), -(24500, 0, "'n'"), -(24501, 0, "'t'"), -(24502, 0, "'a'"), -(24503, 0, "'i'"), -(24504, 0, "'n'"), -(24505, 0, "'s'"), -(24561, 0, "'n '"), -(24570, 0, "'u'"), -(24571, 0, "'n'"), -(24570, 2, "'unimplemented!'"), -(24584, 0, "'('"), -(24585, 0, "')'"), -(24586, 0, "';'"), -(11918, 0, "'p'"), -(11919, 0, "'u'"), -(11920, 0, "'b'"), -(11921, 0, "' '"), -(24574, 17, "''"), -(24472, 0, "','"), -(24473, 0, "' '"), -(24474, 0, "'q'"), -(24475, 0, "'u'"), -(24476, 0, "'e'"), -(24477, 0, "'r'"), -(24478, 0, "'y'"), -(24479, 0, "':'"), -(24480, 0, "' '"), -(24481, 0, "'&'"), -(24482, 0, "'I'"), -(24482, 1, "''"), -(24482, 0, "'C'"), -(24483, 0, "':'"), -(24484, 0, "':'"), -(24485, 0, "'I'"), -(24486, 0, "'t'"), -(24487, 0, "'e'"), -(24485, 3, "'Item'"), -(24582, 0, "'.'"), -(24583, 0, "' '"), -(24584, 0, "'W'"), -(24585, 0, "'e'"), -(24585, 1, "''"), -(24584, 1, "''"), -(24583, 1, "''"), -(24583, 0, "' '"), -(24584, 0, "'F'"), -(24585, 0, "'i'"), -(24586, 0, "'n'"), -(24587, 0, "'d'"), -(24588, 0, "' '"), -(24589, 0, "'t'"), -(24590, 0, "'h'"), -(24591, 0, "'e'"), -(24592, 0, "' '"), -(24593, 0, "'i'"), -(24594, 0, "'t'"), -(24595, 0, "'e'"), -(24596, 0, "'m'"), -(2789, 0, "'O'"), -(2790, 0, "'p'"), -(2791, 0, "'t'"), -(2792, 0, "'i'"), -(2793, 0, "'o'"), -(2794, 0, "'n'"), -(2795, 0, "'<'"), -(2796, 4, "'u'"), -(2797, 0, "'s'"), -(2798, 0, "'i'"), -(2799, 0, "'z'"), -(2800, 0, "'e'"), -(2801, 0, "'>'"), -(2737, 0, "'n '"), -(2742, 0, "'/'"), -(2743, 0, "'/'"), -(2744, 0, "' '"), -(2745, 0, "'T'"), -(2745, 1, "''"), -(2745, 0, "'R'"), -(2746, 0, "'e'"), -(2747, 0, "'t'"), -(2748, 0, "'u'"), -(2749, 0, "'r'"), -(2750, 0, "'n'"), -(2751, 0, "'s'"), -(2752, 0, "' '"), -(2753, 0, "'C'"), -(2754, 0, "'o'"), -(2755, 0, "'m'"), -(2756, 0, "'e'"), -(2757, 0, "'('"), -(2757, 1, "''"), -(2756, 1, "''"), -(2755, 1, "''"), -(2754, 1, "''"), -(2753, 1, "''"), -(2753, 0, "'S'"), -(2754, 0, "'o'"), -(2755, 0, "'m'"), -(2756, 0, "'e'"), -(2757, 0, "'('"), -(2758, 0, "'o'"), -(2759, 0, "'f'"), -(2760, 0, "'f'"), -(2761, 0, "'s'"), -(2762, 0, "'e'"), -(2763, 0, "'t'"), -(2764, 0, "')'"), -(2765, 0, "' '"), -(2766, 0, "'i'"), -(2767, 0, "'n'"), -(2768, 0, "'t'"), -(2769, 0, "'o'"), -(2770, 0, "' '"), -(2771, 0, "'t'"), -(2772, 0, "'h'"), -(2773, 0, "'e'"), -(2774, 0, "' '"), -(2775, 0, "'i'"), -(2776, 0, "'t'"), -(2777, 0, "'e'"), -(2778, 0, "'m'"), -(2779, 0, "' '"), -(2780, 0, "'i'"), -(2781, 0, "'f'"), -(2782, 0, "' '"), -(2783, 0, "'i'"), -(2784, 0, "'t'"), -(2785, 0, "'s'"), -(2786, 0, "' '"), -(2787, 0, "'c'"), -(2788, 0, "'o'"), -(2789, 0, "'n'"), -(2790, 0, "'t'"), -(2791, 0, "'a'"), -(2792, 0, "'i'"), -(2793, 0, "'n'"), -(2794, 0, "'e'"), -(2795, 0, "'d'"), -(2796, 0, "'.'"), -(2797, 0, "' '"), -(2798, 0, "'O'"), -(2799, 0, "'t'"), -(2800, 0, "'h'"), -(2801, 0, "'e'"), -(2802, 0, "'r'"), -(2803, 0, "'w'"), -(2804, 0, "'i'"), -(2805, 0, "'s'"), -(2806, 0, "'e'"), -(2807, 0, "' '"), -(2808, 0, "'N'"), -(2809, 0, "'o'"), -(2810, 0, "'n'"), -(2811, 0, "'e'"), -(2812, 0, "'.'"), -(24682, 0, "'.'"), -(24683, 0, "'n '"), -(24692, 0, "'l'"), -(24693, 0, "'e'"), -(24694, 0, "'t'"), -(24695, 0, "' '"), -(24696, 0, "'&'"), -(24697, 0, "'m'"), -(24698, 0, "'u'"), -(24699, 0, "'t'"), -(24700, 0, "' '"), -(24503, 0, "'u'"), -(24504, 0, "'n'"), -(24505, 0, "'s'"), -(24506, 0, "'a'"), -(24507, 0, "'f'"), -(24508, 0, "'e'"), -(24509, 0, "' '"), -(24503, 7, "''"), -(24506, 0, "' '"), -(24507, 0, "'p'"), -(24508, 0, "'u'"), -(24508, 1, "''"), -(24507, 1, "''"), -(24507, 0, "'u'"), -(24508, 0, "'n'"), -(24509, 0, "'s'"), -(24510, 0, "'a'"), -(24511, 0, "'f'"), -(24512, 0, "'e'"), -(24708, 0, "'n'"), -(24709, 0, "'o'"), -(24710, 0, "'d'"), -(24711, 0, "'e'"), -(24712, 0, "' '"), -(24713, 0, "'='"), -(24714, 0, "' '"), -(24715, 0, "'m'"), -(24716, 0, "'a'"), -(24717, 0, "'r'"), -(24718, 0, "'k'"), -(24719, 0, "'e'"), -(24720, 0, "'r'"), -(24721, 0, "'.'"), -(24506, 7, "''"), -(24683, 0, "'n '"), -(24692, 0, "'u'"), -(24693, 0, "'n'"), -(24694, 0, "'s'"), -(24695, 0, "'a'"), -(24696, 0, "'f'"), -(24697, 0, "'e'"), -(24698, 0, "' '"), -(24699, 0, "'{'"), -(24709, 0, "' '"), -(24735, 1, "''"), -(24735, 0, "'.'"), -(24736, 0, "'ptr'"), -(24739, 0, "';'"), -(24729, 0, "'*'"), -(24729, 1, "''"), -(24729, 0, "'&'"), -(24730, 0, "'*'"), -(24730, 0, "'m'"), -(24731, 0, "'u'"), -(24732, 0, "'t'"), -(24733, 0, "' '"), -(24747, 8, "' }'"), -(24746, 0, "'n '"), -(24759, 0, "'n '"), -(24747, 12, "''"), -(24760, 0, "'f'"), -(24761, 0, "'o'"), -(24762, 0, "'r'"), -(24763, 0, "' '"), -(24764, 0, "'i'"), -(24765, 0, "'t'"), -(24766, 0, "'e'"), -(24767, 0, "'m'"), -(24768, 0, "' '"), -(24769, 0, "'i'"), -(24770, 0, "'n'"), -(24771, 0, "' '"), -(24772, 0, "'n'"), -(24773, 0, "'o'"), -(24774, 0, "'d'"), -(24775, 0, "'e'"), -(24776, 0, "'.'"), -(24777, 0, "'c'"), -(24778, 0, "'o'"), -(24779, 0, "'n'"), -(24780, 0, "'t'"), -(24781, 0, "'e'"), -(24782, 0, "'n'"), -(24783, 0, "'t'"), -(24784, 0, "'_'"), -(24777, 8, "'content_slice'"), -(24790, 0, "'('"), -(24791, 0, "')'"), -(24792, 0, "' '"), -(24793, 0, "'{'"), -(24794, 0, "'n '"), -(24811, 0, "'n '"), -(24795, 16, "''"), -(24796, 16, "' }'"), -(24795, 0, "' '"), -(24825, 0, "'n '"), -(24795, 16, "''"), -(24822, 0, "'n '"), -(24810, 12, "''"), -(24823, 0, "'u'"), -(24824, 0, "'n'"), -(24825, 0, "'i'"), -(24826, 0, "'m'"), -(24823, 4, "'unimplemented!'"), -(24837, 0, "'('"), -(24838, 0, "')'"), -(24839, 0, "';'"), -(24795, 0, "' '"), -(24795, 16, "''"), -(24733, 1, "''"), -(24732, 1, "''"), -(24731, 1, "''"), -(24730, 1, "''"), -(24718, 3, "''"), -(24718, 1, "''"), -(24726, 1, "''"), -(24725, 1, "''"), -(24717, 5, "'n'"), -(24762, 0, "')'"), -(24758, 0, "'('"), -(24759, 4, "'*'"), -(24760, 0, "'n'"), -(24781, 0, "' '"), -(24797, 0, "'i'"), -(24798, 0, "'t'"), -(24799, 0, "'e'"), -(24800, 0, "'m'"), -(24801, 0, "'.'"), -(24802, 0, "'c'"), -(24803, 0, "'o'"), -(24804, 0, "'n'"), -(24805, 0, "'t'"), -(24806, 0, "'a'"), -(24807, 0, "'i'"), -(24808, 0, "'n'"), -(24809, 0, "'s'"), -(24802, 8, "'contains'"), -(24810, 0, "'('"), -(24810, 1, "''"), -(24810, 0, "'_'"), -(24811, 0, "'i'"), -(24812, 0, "'t'"), -(24813, 0, "'e'"), -(24802, 12, "'contains_item'"), -(24815, 0, "'('"), -(24816, 0, "'q'"), -(24817, 0, "'u'"), -(24818, 0, "'e'"), -(24819, 0, "'r'"), -(24820, 0, "'y'"), -(24821, 0, "')'"), -(2835, 6, "''"), -(2836, 4, "'s'"), -(2837, 0, "'e'"), -(2838, 0, "'l'"), -(2839, 0, "'f'"), -(24791, 0, "'i'"), -(24792, 0, "'f'"), -(24793, 0, "' '"), -(24794, 0, "'l'"), -(24795, 0, "'e'"), -(24796, 0, "'t'"), -(24797, 0, "' '"), -(24798, 0, "'S'"), -(24799, 0, "'o'"), -(24800, 0, "'m'"), -(24801, 0, "'e'"), -(24802, 0, "'('"), -(24803, 0, "'o'"), -(24804, 0, "'f'"), -(24805, 0, "'f'"), -(24806, 0, "'s'"), -(24807, 0, "'e'"), -(24808, 0, "'t'"), -(24809, 0, "')'"), -(24810, 0, "' '"), -(24811, 0, "'='"), -(24812, 0, "' '"), -(24838, 0, "' '"), -(24839, 0, "'{'"), -(24840, 0, "'n '"), -(24861, 0, "'n '"), -(24841, 20, "''"), -(24842, 20, "' }'"), -(24841, 0, "' '"), -(24841, 20, "''"), -(24727, 0, "'n '"), -(24740, 0, "'l'"), -(24741, 0, "'e'"), -(24742, 0, "'t'"), -(24743, 0, "' '"), -(24744, 0, "'o'"), -(24745, 0, "'f'"), -(24746, 0, "'f'"), -(24747, 0, "'s'"), -(24748, 0, "'e'"), -(24749, 0, "'t'"), -(24749, 0, "'m'"), -(24750, 0, "'u'"), -(24750, 1, "''"), -(24749, 1, "''"), -(24744, 0, "'m'"), -(24745, 0, "'u'"), -(24746, 0, "'t'"), -(24747, 0, "' '"), -(24754, 0, "':'"), -(24755, 0, "' '"), -(24756, 0, "'i'"), -(24757, 0, "'s'"), -(24757, 1, "''"), -(24756, 1, "''"), -(24756, 0, "'s'"), -(24757, 0, "'i'"), -(24757, 1, "''"), -(24756, 1, "''"), -(24756, 0, "'u'"), -(24757, 0, "'s'"), -(24758, 0, "'i'"), -(24759, 0, "'z'"), -(24760, 0, "'e'"), -(24761, 0, "' '"), -(24762, 0, "'='"), -(24763, 0, "' '"), -(24764, 0, "'0'"), -(24765, 0, "';'"), -(24898, 0, "' '"), -(24899, 0, "'e'"), -(24900, 0, "'l'"), -(24901, 0, "'s'"), -(24902, 0, "'e'"), -(24903, 0, "' '"), -(24904, 0, "'{'"), -(24905, 0, "'n '"), -(24906, 20, "' }'"), -(24842, 0, "'i'"), -(24843, 0, "'t'"), -(24844, 0, "'e'"), -(24845, 0, "'m'"), -(24846, 0, "'_'"), -(24910, 0, "'n '"), -(24931, 0, "'o'"), -(24932, 0, "'f'"), -(24933, 0, "'f'"), -(24934, 0, "'s'"), -(24935, 0, "'e'"), -(24936, 0, "'t'"), -(24937, 0, "' '"), -(24938, 0, "'+'"), -(24939, 0, "'='"), -(24940, 0, "' '"), -(24941, 0, "'C'"), -(24942, 0, "':'"), -(24943, 0, "':'"), -(24944, 0, "'get_usersize(_item: &Self::Item)'"), -(24957, 18, "'i'"), -(24958, 0, "'t'"), -(24959, 0, "'e'"), -(24960, 0, "'m'"), -(24962, 0, "';'"), -(24885, 0, "' '"), -(24905, 0, "'o'"), -(24906, 0, "'f'"), -(24907, 0, "'f'"), -(24908, 0, "'s'"), -(24909, 0, "'e'"), -(24910, 0, "'t'"), -(24911, 0, "' '"), -(24912, 0, "'+'"), -(24913, 0, "'='"), -(24914, 0, "' '"), -(24915, 0, "'i'"), -(24916, 0, "'t'"), -(24917, 0, "'e'"), -(24918, 0, "'m'"), -(24915, 4, "'item_offset'"), -(24926, 0, "';'"), -(24927, 0, "'n '"), -(24948, 0, "'b'"), -(24949, 0, "'r'"), -(24950, 0, "'e'"), -(24951, 0, "'a'"), -(24952, 0, "'k'"), -(24953, 0, "';'"), -(25064, 0, "'n '"), -(25077, 0, "'/'"), -(25078, 0, "'/'"), -(25079, 0, "' '"), -(25080, 0, "'t'"), -(25081, 0, "'O'"), -(25082, 0, "'D'"), -(25082, 1, "''"), -(25081, 1, "''"), -(25080, 1, "''"), -(25080, 0, "'T'"), -(25081, 0, "'O'"), -(25082, 0, "'D'"), -(25083, 0, "'O'"), -(25084, 0, "':'"), -(25085, 0, "' '"), -(25086, 0, "'T'"), -(25087, 0, "'h'"), -(25088, 0, "'r'"), -(25089, 0, "'o'"), -(25086, 4, "'P'"), -(25087, 0, "'a'"), -(25088, 0, "'n'"), -(25089, 0, "'i'"), -(25090, 0, "'c'"), -(25091, 0, "' '"), -(25092, 0, "'i'"), -(25093, 0, "'f'"), -(25094, 0, "' '"), -(25095, 0, "'t'"), -(25096, 0, "'h'"), -(25097, 0, "'e'"), -(25098, 0, "' '"), -(25099, 0, "'i'"), -(25100, 0, "'t'"), -(25101, 0, "'e'"), -(25102, 0, "'m'"), -(25103, 0, "' '"), -(25104, 0, "'i'"), -(25105, 0, "'s'"), -(25106, 0, "'n'"), -(25107, 0, "'''"), -(25108, 0, "'t'"), -(25109, 0, "' '"), -(25110, 0, "'f'"), -(25111, 0, "'o'"), -(25112, 0, "'u'"), -(25113, 0, "'n'"), -(25114, 0, "'d'"), -(25115, 0, "'.'"), -(25116, 0, "' '"), -(25117, 0, "'T'"), -(25117, 1, "''"), -(25117, 0, "'C'"), -(25118, 0, "'u'"), -(25119, 0, "'r'"), -(25120, 0, "'r'"), -(25121, 0, "'e'"), -(25122, 0, "'n'"), -(25123, 0, "'t'"), -(24766, 0, "'n '"), -(24779, 0, "'l'"), -(24780, 0, "'e'"), -(24781, 0, "'t'"), -(24782, 0, "' '"), -(24783, 0, "'m'"), -(24784, 0, "'u'"), -(24785, 0, "'t'"), -(24786, 0, "' '"), -(24787, 0, "'f'"), -(24788, 0, "'o'"), -(24789, 0, "'u'"), -(24790, 0, "'n'"), -(24791, 0, "'d'"), -(24792, 0, "' '"), -(24793, 0, "'='"), -(24794, 0, "' '"), -(24795, 0, "'f'"), -(24796, 0, "'a'"), -(24797, 0, "'l'"), -(24798, 0, "'s'"), -(24799, 0, "'e'"), -(24800, 0, "';'"), -(24962, 0, "'n '"), -(24983, 0, "'f'"), -(24984, 0, "'o'"), -(24985, 0, "'u'"), -(24986, 0, "'n'"), -(24987, 0, "'d'"), -(24988, 0, "' '"), -(24989, 0, "'='"), -(24990, 0, "' '"), -(24991, 0, "'t'"), -(24992, 0, "'r'"), -(24993, 0, "'u'"), -(24994, 0, "'e'"), -(24995, 0, "';'"), -(25146, 47, "''"), -(25146, 0, "'a'"), -(25147, 0, "'s'"), -(25148, 0, "'s'"), -(25149, 0, "'e'"), -(25150, 0, "'r'"), -(25151, 0, "'t'"), -(25152, 0, "'('"), -(25152, 1, "''"), -(25152, 0, "'!'"), -(25153, 0, "'('"), -(25154, 0, "'f'"), -(25155, 0, "'o'"), -(25156, 0, "'u'"), -(25157, 0, "'n'"), -(25158, 0, "'d'"), -(25159, 0, "')'"), -(25160, 0, "';'"), -(25159, 0, "','"), -(25160, 0, "' '"), -(25161, 0, "'''"), -(25162, 0, "'M'"), -(25162, 1, "''"), -(25162, 0, "'I'"), -(25163, 0, "'n'"), -(25164, 0, "'v'"), -(25165, 0, "'a'"), -(25166, 0, "'l'"), -(25167, 0, "'i'"), -(25168, 0, "'d'"), -(25169, 0, "' '"), -(25170, 0, "'m'"), -(25171, 0, "'a'"), -(25172, 0, "'r'"), -(25173, 0, "'k'"), -(25174, 0, "' '"), -(25175, 0, "'e'"), -(25175, 1, "''"), -(25174, 1, "''"), -(25174, 0, "'e'"), -(25175, 0, "'r'"), -(25176, 0, "' '"), -(25177, 0, "'-'"), -(25178, 0, "' '"), -(25179, 0, "'i'"), -(25180, 0, "'t'"), -(25181, 0, "'e'"), -(25182, 0, "'m'"), -(25183, 0, "' '"), -(25184, 0, "'n'"), -(25185, 0, "'o'"), -(25186, 0, "'t'"), -(25187, 0, "' '"), -(25188, 0, "'f'"), -(25189, 0, "'o'"), -(25190, 0, "'u'"), -(25191, 0, "'n'"), -(25192, 0, "'d'"), -(25193, 0, "' '"), -(25194, 0, "'i'"), -(25195, 0, "'n'"), -(25196, 0, "' '"), -(25197, 0, "'n'"), -(25198, 0, "'o'"), -(25199, 0, "'d'"), -(25200, 0, "'e'"), -(25201, 0, "'''"), -(25204, 0, "'n '"), -(25217, 0, "'n '"), -(25205, 12, "''"), -(25218, 0, "'/'"), -(25219, 0, "'/'"), -(25220, 0, "' '"), -(25221, 0, "'N'"), -(25222, 0, "'o'"), -(25223, 0, "'w'"), -(25224, 0, "' '"), -(25225, 0, "'w'"), -(25226, 0, "'e'"), -(25227, 0, "' '"), -(25228, 0, "'n'"), -(25229, 0, "'e'"), -(25230, 0, "'e'"), -(25231, 0, "'d'"), -(25232, 0, "' '"), -(25233, 0, "'t'"), -(25234, 0, "'o'"), -(25235, 0, "' '"), -(25236, 0, "'m'"), -(25237, 0, "'a'"), -(25238, 0, "'k'"), -(25239, 0, "'e'"), -(25240, 0, "' '"), -(25241, 0, "'a'"), -(25242, 0, "' '"), -(25243, 0, "'c'"), -(25244, 0, "'u'"), -(25245, 0, "'r'"), -(25246, 0, "'s'"), -(25247, 0, "'o'"), -(25248, 0, "'r'"), -(25249, 0, "' '"), -(25250, 0, "'a'"), -(25251, 0, "'t'"), -(25252, 0, "' '"), -(25253, 0, "'t'"), -(25254, 0, "'h'"), -(25255, 0, "'e'"), -(25256, 0, "' '"), -(25257, 0, "'u'"), -(25258, 0, "'s'"), -(25259, 0, "'e'"), -(25260, 0, "'r'"), -(25261, 0, "'p'"), -(25262, 0, "'o'"), -(25263, 0, "'s'"), -(25264, 0, "'.'"), -(25256, 0, "' '"), -(25257, 0, "'n'"), -(25258, 0, "'o'"), -(25259, 0, "'d'"), -(25260, 0, "'e'"), -(25261, 0, "'/'"), -(25262, 1, "''"), -(25269, 0, "' '"), -(25270, 0, "'p'"), -(25271, 0, "'a'"), -(25272, 0, "'i'"), -(25273, 0, "'r'"), -(25270, 0, "'l'"), -(25271, 0, "'o'"), -(25272, 0, "'c'"), -(25273, 0, "'a'"), -(25274, 0, "'t'"), -(25275, 0, "'i'"), -(25276, 0, "'o'"), -(25277, 0, "'n'"), -(25278, 0, "' '"), -(25284, 0, "'n '"), -(25297, 0, "'l'"), -(25298, 0, "'e'"), -(25299, 0, "'t'"), -(25300, 0, "' '"), -(25301, 0, "'c'"), -(25302, 0, "'u'"), -(25303, 0, "'r'"), -(25304, 0, "'s'"), -(25305, 0, "'o'"), -(25305, 1, "''"), -(25301, 4, "'cursor'"), -(25307, 0, "' '"), -(25308, 0, "'='"), -(25309, 0, "' '"), -(25310, 0, "'C'"), -(25311, 0, "'u'"), -(25312, 0, "'r'"), -(25313, 0, "'s'"), -(25314, 0, "'o'"), -(25315, 0, "'r'"), -(25316, 0, "' '"), -(25317, 0, "'{'"), -(25318, 0, "'n '"), -(25335, 0, "'n '"), -(25319, 16, "''"), -(25320, 16, "' }'"), -(25333, 0, "';'"), -(25319, 0, "' '"), -(25335, 0, "'e'"), -(25336, 0, "'n'"), -(25337, 0, "'t'"), -(25335, 3, "'eprint!'"), -(25335, 7, "'ent'"), -(25338, 0, "'e'"), -(25335, 4, "''"), -(25335, 0, "'e'"), -(25336, 0, "'n'"), -(25337, 0, "'t'"), -(25338, 0, "'r'"), -(25339, 0, "'i'"), -(25340, 0, "'e'"), -(25341, 0, "'s'"), -(25342, 0, "':'"), -(25343, 0, "' '"), -(25344, 0, "'['"), -(25345, 0, "']'"), -(25316, 0, "'<'"), -(25317, 0, "'C'"), -(25318, 0, "'>'"), -(25318, 1, "''"), -(25317, 1, "''"), -(25316, 1, "''"), -(25318, 0, "'n '"), -(25335, 0, "'u'"), -(25336, 0, "'s'"), -(25337, 0, "'e'"), -(25338, 0, "'r'"), -(25339, 0, "'p'"), -(25340, 0, "'o'"), -(25341, 0, "'s'"), -(25342, 0, "':'"), -(25343, 0, "' '"), -(25344, 0, "'0'"), -(25345, 0, "','"), -(25346, 0, "'n '"), -(25363, 0, "'l'"), -(25364, 0, "'o'"), -(25365, 0, "'c'"), -(25366, 0, "'a'"), -(25367, 0, "'l'"), -(25368, 0, "'_'"), -(25369, 0, "'i'"), -(25370, 0, "'n'"), -(25371, 0, "'d'"), -(25363, 9, "'local_index'"), -(25374, 0, "':'"), -(25375, 0, "' '"), -(25376, 0, "'0'"), -(25377, 0, "','"), -(24787, 14, "''"), -(24787, 0, "'l'"), -(24788, 0, "'o'"), -(24789, 0, "'c'"), -(24790, 0, "'a'"), -(24791, 0, "'l'"), -(24792, 0, "'_'"), -(24793, 0, "'i'"), -(24794, 0, "'n'"), -(24795, 0, "'d'"), -(24796, 0, "'e'"), -(24797, 0, "'x'"), -(24798, 0, "' '"), -(24799, 0, "'='"), -(24800, 0, "' '"), -(24801, 0, "'N'"), -(24802, 0, "'o'"), -(24803, 0, "'n'"), -(24804, 0, "'e'"), -(24805, 0, "';'"), -(24988, 13, "''"), -(24988, 0, "'l'"), -(24989, 0, "'o'"), -(24990, 0, "'c'"), -(24991, 0, "'a'"), -(24992, 0, "'l'"), -(24993, 0, "'_'"), -(24988, 6, "'local_index'"), -(24999, 0, "' '"), -(25000, 0, "'='"), -(25001, 0, "' '"), -(25002, 0, "'S'"), -(25003, 0, "'o'"), -(25004, 0, "'m'"), -(25005, 0, "'e'"), -(25006, 0, "'('"), -(24851, 0, "'.'"), -(24852, 0, "'e'"), -(24853, 0, "'n'"), -(24854, 0, "'u'"), -(24855, 0, "'m'"), -(24852, 4, "'enumerate'"), -(24861, 0, "'('"), -(24862, 0, "')'"), -(24823, 0, "'('"), -(24824, 0, "'i'"), -(24825, 0, "')'"), -(24825, 1, "''"), -(24825, 0, "','"), -(24826, 0, "' '"), -(24831, 0, "')'"), -(24856, 0, "'.'"), -(24857, 0, "'i'"), -(24858, 0, "'t'"), -(24859, 0, "'e'"), -(24860, 0, "'r'"), -(24861, 0, "'('"), -(24862, 0, "')'"), -(25031, 0, "'i'"), -(25032, 0, "')'"), -(25033, 0, "';'"), -(25184, 14, "''"), -(25184, 0, "'l'"), -(25185, 0, "'e'"), -(25186, 0, "'t'"), -(25187, 0, "' '"), -(25188, 0, "'l'"), -(25189, 0, "'o'"), -(25190, 0, "'c'"), -(25191, 0, "'a'"), -(25192, 0, "'l'"), -(25193, 0, "'_'"), -(25194, 0, "'i'"), -(25195, 0, "'n'"), -(25196, 0, "'d'"), -(25197, 0, "'e'"), -(25198, 0, "'x'"), -(25199, 0, "' '"), -(25200, 0, "'='"), -(25201, 0, "' '"), -(25202, 0, "'u'"), -(25202, 1, "''"), -(25202, 0, "'l'"), -(25203, 0, "'o'"), -(25204, 0, "'c'"), -(25205, 0, "'a'"), -(25206, 0, "'l'"), -(25202, 5, "'local_index'"), -(25213, 0, "'.'"), -(25214, 0, "'u'"), -(25215, 0, "'n'"), -(25214, 2, "''"), -(25213, 1, "''"), -(25213, 0, "'.'"), -(25214, 0, "'e'"), -(25215, 0, "'x'"), -(25216, 0, "'p'"), -(25217, 0, "'e'"), -(25214, 4, "'expect(msg: &str)'"), -(25221, 9, "''"), -(25221, 1, "''"), -(25221, 1, "''"), -(25202, 61, "''"), -(25172, 31, "''"), -(25171, 1, "''"), -(25343, 1, "''"), -(25343, 0, "'local_index.expect('Invalid marker - item not found in node')'"), -(25311, 1, "''"), -(25311, 0, "'o'"), -(25312, 0, "'f'"), -(25313, 0, "'f'"), -(25314, 0, "'s'"), -(25315, 0, "'e'"), -(25316, 0, "'t'"), -(25311, 6, "''"), -(25311, 0, "'0'"), -(25432, 0, "'n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAX'"), -(25489, 16, "' '"), -(25433, 16, "' '"), -(25538, 0, "'n '"), -(25539, 20, "' '"), -(25431, 125, "'[SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],'"), -(25542, 12, "' '"), -(25500, 16, "' '"), -(25444, 16, "' '"), -(25610, 17, "'r'"), -(25611, 0, "'e'"), -(25612, 0, "'t'"), -(25613, 0, "'u'"), -(25614, 0, "'r'"), -(25615, 0, "'n'"), -(25616, 0, "' '"), -(25617, 0, "'c'"), -(25618, 0, "'r'"), -(25618, 1, "''"), -(25610, 8, "''"), -(25610, 0, "'c'"), -(25611, 0, "'u'"), -(25612, 0, "'r'"), -(25613, 0, "'s'"), -(25614, 0, "'o'"), -(25615, 0, "'r'"), -(25596, 0, "'n '"), -(25609, 0, "'n '"), -(25597, 12, "''"), -(25610, 0, "'f'"), -(25611, 0, "'o'"), -(25612, 0, "'r'"), -(25613, 0, "' '"), -(25614, 0, "'i'"), -(25615, 0, "' '"), -(25616, 0, "'i'"), -(25617, 0, "'n'"), -(25618, 0, "' '"), -(25619, 0, "'0'"), -(25619, 1, "''"), -(25619, 0, "'0'"), -(25620, 0, "'.'"), -(25621, 0, "'.'"), -(25622, 0, "'s'"), -(25623, 0, "'e'"), -(25624, 0, "'l'"), -(25625, 0, "'f'"), -(25626, 0, "'.'"), -(25627, 0, "'h'"), -(25628, 0, "'e'"), -(25629, 0, "'i'"), -(25629, 1, "''"), -(25628, 1, "''"), -(25627, 1, "''"), -(25627, 0, "'h'"), -(25628, 0, "'e'"), -(25629, 0, "'a'"), -(25630, 0, "'d'"), -(25631, 0, "'.'"), -(25632, 0, "'h'"), -(25633, 0, "'e'"), -(25634, 0, "'i'"), -(25632, 3, "'height'"), -(25638, 0, "' '"), -(25639, 0, "'a'"), -(25640, 0, "'s'"), -(25641, 0, "' '"), -(25642, 0, "'u'"), -(25643, 0, "'s'"), -(25644, 0, "'i'"), -(25645, 0, "'z'"), -(25646, 0, "'e'"), -(25647, 0, "' '"), -(25648, 0, "'{'"), -(25649, 0, "'n '"), -(25666, 0, "'n '"), -(25650, 16, "''"), -(25651, 16, "' }'"), -(25650, 0, "' '"), -(25650, 16, "''"), -(25596, 0, "'n '"), -(25609, 0, "'n '"), -(25597, 12, "''"), -(25610, 0, "'c'"), -(25611, 0, "'u'"), -(25612, 0, "'r'"), -(25613, 0, "'s'"), -(25614, 0, "'o'"), -(25615, 0, "'r'"), -(25616, 0, "'.'"), -(25617, 0, "'e'"), -(25618, 0, "'n'"), -(25619, 0, "'t'"), -(25620, 0, "'r'"), -(25621, 0, "'i'"), -(25622, 0, "'e'"), -(25623, 0, "'s'"), -(25624, 0, "'['"), -(25625, 0, "'0'"), -(25626, 0, "']'"), -(25627, 0, "' '"), -(25628, 0, "'='"), -(25629, 0, "' '"), -(25630, 0, "'S'"), -(25631, 0, "'k'"), -(25632, 0, "'i'"), -(25633, 0, "'p'"), -(25630, 4, "'SkipEntry'"), -(25639, 0, "' '"), -(25640, 0, "'{'"), -(25641, 0, "'n '"), -(25658, 0, "'n '"), -(25642, 16, "''"), -(25643, 16, "' }'"), -(25656, 0, "';'"), -(25642, 0, "' '"), -(25658, 0, "'n'"), -(25659, 0, "'o'"), -(25660, 0, "'d'"), -(25661, 0, "'e'"), -(25662, 0, "':'"), -(25663, 0, "' '"), -(25664, 0, "'n'"), -(25665, 0, "','"), -(25666, 0, "'n '"), -(25683, 0, "'s'"), -(25684, 0, "'k'"), -(25685, 0, "'i'"), -(25686, 0, "'p'"), -(25687, 0, "'_'"), -(25688, 0, "'u'"), -(25689, 0, "'s'"), -(25690, 0, "'e'"), -(25691, 0, "'r'"), -(25692, 0, "'s'"), -(25693, 0, "'i'"), -(25683, 11, "'skip_usersize'"), -(25696, 0, "':'"), -(25697, 0, "' '"), -(25698, 0, "'o'"), -(25699, 0, "'f'"), -(25700, 0, "'f'"), -(25701, 0, "'s'"), -(25702, 0, "'e'"), -(25703, 0, "'t'"), -(25268, 0, "'m'"), -(25269, 0, "'u'"), -(25270, 0, "'t'"), -(25271, 0, "' '"), -(25777, 0, "' '"), -(25777, 16, "''"), -(25746, 1, "''"), -(25746, 0, "'1'"), -(25777, 0, "' '"), -(25777, 16, "''"), -(24710, 0, "' '"), -(24711, 0, "'m'"), -(24712, 0, "'u'"), -(24713, 0, "'t'"), -(25781, 0, "' '"), -(25797, 0, "'n'"), -(25798, 0, "' '"), -(25799, 0, "'='"), -(25800, 0, "' '"), -(25801, 0, "'n'"), -(25802, 0, "'.'"), -(25802, 1, "''"), -(25801, 1, "''"), -(25801, 0, "'('"), -(25802, 0, "'*'"), -(25803, 0, "'n'"), -(25804, 0, "')'"), -(25805, 0, "'.'"), -(25806, 0, "'p'"), -(25807, 0, "'a'"), -(25808, 0, "'r'"), -(25809, 0, "'e'"), -(25810, 0, "'n'"), -(25811, 0, "'t'"), -(25812, 0, "'r'"), -(25812, 1, "''"), -(25812, 0, "';'"), -(25813, 0, "'n '"), -(25830, 0, "'/'"), -(25831, 0, "'/'"), -(25832, 0, "' '"), -(25833, 0, "'A'"), -(25834, 0, "'n'"), -(25835, 0, "'d'"), -(25836, 0, "' '"), -(25837, 0, "'f'"), -(25838, 0, "'i'"), -(25839, 0, "'n'"), -(25840, 0, "'d'"), -(25841, 0, "' '"), -(25842, 0, "'t'"), -(25843, 0, "'h'"), -(25844, 0, "'e'"), -(25845, 0, "' '"), -(25846, 0, "'o'"), -(25847, 0, "'f'"), -(25848, 0, "'f'"), -(25849, 0, "'s'"), -(25850, 0, "'e'"), -(25851, 0, "'t'"), -(25846, 6, "'l'"), -(25847, 0, "'o'"), -(25848, 0, "'c'"), -(25849, 0, "'a'"), -(25850, 0, "'l'"), -(25851, 0, "' '"), -(25852, 0, "'o'"), -(25853, 0, "'f'"), -(25854, 0, "'f'"), -(25855, 0, "'s'"), -(25856, 0, "'e'"), -(25857, 0, "'t'"), -(25858, 0, "'.'"), -(25859, 0, "' '"), -(25860, 0, "'N'"), -(25861, 0, "'o'"), -(25862, 0, "'t'"), -(25863, 0, "'e'"), -(25878, 0, "'n '"), -(25891, 0, "'a'"), -(25892, 0, "'s'"), -(25893, 0, "'d'"), -(25894, 0, "'f'"), -(25895, 0, "'j'"), -(25896, 0, "'h'"), -(25897, 0, "'a'"), -(25898, 0, "'s'"), -(25899, 0, "'k'"), -(25900, 0, "'d'"), -(25901, 0, "'f'"), -(25902, 0, "'j'"), -(25903, 0, "'h'"), -(25891, 13, "'u'"), -(25892, 0, "'n'"), -(25891, 2, "'unimplemented!'"), -(25905, 0, "'('"), -(25906, 0, "')'"), -(25907, 0, "';'"), -(2727, 8, "'I'"), -(2728, 0, "'t'"), -(2729, 0, "'e'"), -(2730, 0, "'m'"), -(2731, 0, "'Q'"), -(2732, 0, "'u'"), -(2733, 0, "'e'"), -(2734, 0, "'r'"), -(2735, 0, "'y'"), -(2738, 0, "'n '"), -(2743, 0, "'t'"), -(2744, 0, "'y'"), -(2745, 0, "'p'"), -(2746, 0, "'e'"), -(2747, 0, "' '"), -(2748, 0, "'Q'"), -(2749, 0, "'u'"), -(2750, 0, "'e'"), -(2751, 0, "'r'"), -(2752, 0, "'y'"), -(2753, 0, "':'"), -(2754, 0, "' '"), -(2754, 1, "''"), -(2753, 1, "''"), -(2753, 0, "';'"), -(2754, 0, "'n '"), -(2872, 4, "'Q'"), -(2755, 4, "''"), -(2869, 0, "'u'"), -(2870, 0, "'e'"), -(2871, 0, "'r'"), -(2872, 0, "'y'"), -(2868, 0, "'S'"), -(2869, 0, "'e'"), -(2870, 0, "'l'"), -(2871, 0, "'f'"), -(2872, 0, "':'"), -(2873, 0, "':'"), -(2743, 0, "'// '"), -(2763, 3, "''"), -(2763, 0, "'// '"), -(2743, 3, "''"), -(2727, 9, "'Q'"), -(2728, 0, "'u'"), -(2729, 0, "'e'"), -(2730, 0, "'r'"), -(2731, 0, "'y'"), -(2732, 0, "'a'"), -(2733, 0, "'b'"), -(2734, 0, "'l'"), -(2735, 0, "'e'"), -(24543, 0, "'<'"), -(24544, 0, "'Q'"), -(24545, 0, "':'"), -(24546, 0, "' '"), -(24547, 0, "'Q'"), -(24548, 0, "'u'"), -(24549, 0, "'e'"), -(24550, 0, "'r'"), -(24547, 4, "'Queryable'"), -(24556, 0, "'>'"), -(24600, 7, "''"), -(24600, 0, "'Q'"), -(24601, 0, "':'"), -(24602, 0, "':'"), -(24603, 0, "'Q'"), -(24604, 0, "'u'"), -(24605, 0, "'e'"), -(24606, 0, "'r'"), -(24607, 0, "'y'"), -(24543, 14, "''"), -(24543, 0, "''"), -(24545, 11, "''"), -(24627, 8, "'Q'"), -(24628, 0, "'u'"), -(24629, 0, "'e'"), -(24630, 0, "'r'"), -(24627, 4, "'Queryable'"), -(24545, 1, "''"), -(24544, 1, "''"), -(24543, 1, "''"), -(24586, 1, "''"), -(24586, 0, "'('"), -(24587, 0, "'C'"), -(24588, 0, "':'"), -(24589, 0, "':'"), -(24590, 0, "'I'"), -(24591, 0, "'t'"), -(24592, 0, "'e'"), -(24593, 0, "'m'"), -(24594, 0, "' '"), -(24595, 0, "'a'"), -(24596, 0, "'s'"), -(24597, 0, "' '"), -(24597, 1, "''"), -(24596, 1, "''"), -(24595, 1, "''"), -(24594, 1, "''"), -(24594, 0, "' '"), -(24595, 0, "'a'"), -(24596, 0, "'s'"), -(24597, 0, "' '"), -(24598, 0, "'Q'"), -(24599, 0, "'u'"), -(24600, 0, "'e'"), -(24601, 0, "'r'"), -(24602, 0, "'y'"), -(24598, 5, "'Queryable'"), -(24607, 0, "'>'"), -(24607, 1, "''"), -(24607, 0, "'>'"), -(24586, 1, "''"), -(24586, 0, "'<'"), -(24586, 1, "''"), -(24586, 0, "'('"), -(24607, 1, "''"), -(24607, 0, "')'"), -(24594, 14, "''"), -(24586, 1, "''"), -(24586, 0, "'<'"), -(24594, 0, "' '"), -(24595, 0, "'a'"), -(24596, 0, "'s'"), -(24597, 0, "' '"), -(24598, 0, "'Q'"), -(24599, 0, "'u'"), -(24600, 0, "'e'"), -(24601, 0, "'r'"), -(24602, 0, "'y'"), -(24603, 0, "'a'"), -(24604, 0, "'b'"), -(24605, 0, "'l'"), -(24606, 0, "'e'"), -(24607, 0, "'>'"), -(24615, 1, "''"), -(24615, 0, "')'"), -(24516, 0, "'n '"), -(24521, 0, "'n '"), -(24517, 4, "''"), -(24522, 0, "'p'"), -(24523, 0, "'u'"), -(24524, 0, "'b'"), -(24525, 0, "' '"), -(24526, 0, "'f'"), -(24527, 0, "'n'"), -(24528, 0, "' '"), -(24529, 0, "'i'"), -(24530, 0, "'t'"), -(24531, 0, "'e'"), -(24532, 0, "'r'"), -(24533, 0, "'_'"), -(24534, 0, "'a'"), -(24535, 0, "'t'"), -(24536, 0, "'_'"), -(24537, 0, "'n'"), -(24538, 0, "'o'"), -(24539, 0, "'d'"), -(24540, 0, "'e'"), -(24541, 0, "'('"), -(24542, 0, "'&'"), -(24543, 0, "'m'"), -(24544, 0, "'u'"), -(24545, 0, "'t'"), -(24546, 0, "' '"), -(24547, 0, "'s'"), -(24548, 0, "'e'"), -(24549, 0, "'l'"), -(24550, 0, "'f'"), -(24551, 0, "','"), -(24552, 0, "' '"), -(24553, 0, "'n'"), -(24554, 0, "'o'"), -(24555, 0, "'d'"), -(24556, 0, "'e'"), -(24557, 0, "':'"), -(24558, 0, "' '"), -(24559, 0, "'&'"), -(24559, 1, "''"), -(24559, 0, "'*'"), -(24560, 0, "'m'"), -(24561, 0, "'u'"), -(24562, 0, "'t'"), -(24563, 0, "' '"), -(24564, 0, "'N'"), -(24565, 0, "'o'"), -(24566, 0, "'d'"), -(24567, 0, "'e'"), -(24568, 0, "')'"), -(24569, 0, "' '"), -(24570, 0, "'{'"), -(24571, 0, "'n '"), -(24580, 0, "'n '"), -(24572, 8, "''"), -(24573, 8, "' }'"), -(24568, 0, "'<'"), -(24569, 0, "'C'"), -(24570, 0, "'>'"), -(24522, 4, "''"), -(24568, 0, "' '"), -(24569, 0, "'-'"), -(24570, 0, "'>'"), -(24571, 0, "' '"), -(24572, 0, "'C'"), -(24573, 0, "'u'"), -(24574, 0, "'r'"), -(24575, 0, "'s'"), -(24576, 0, "'o'"), -(24572, 5, "'Cursor'"), -(24578, 0, "'<'"), -(24579, 0, "'C'"), -(24580, 0, "'>'"), -(24522, 0, "'u'"), -(24523, 0, "'n'"), -(24524, 0, "'s'"), -(24525, 0, "'a'"), -(24526, 0, "'f'"), -(24527, 0, "'e'"), -(24528, 0, "' '"), -(24591, 0, "'n // Now we need to make a cursor at the node/userpos location pair.n let mut cursor = Cursor {n userpos: 0,n local_index: local_index.expect('Invalid marker - item not found in node'),n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };'"), -(24591, 0, "' '"), -(24599, 0, "'l'"), -(24600, 0, "'e'"), -(24601, 0, "'t'"), -(24602, 0, "' '"), -(24603, 0, "'m'"), -(24604, 0, "'u'"), -(24605, 0, "'t'"), -(24606, 0, "' '"), -(24607, 0, "'o'"), -(24608, 0, "'f'"), -(24609, 0, "'f'"), -(24610, 0, "'s'"), -(24611, 0, "'e'"), -(24612, 0, "'t'"), -(24613, 0, "' '"), -(24614, 0, "'='"), -(24615, 0, "' '"), -(24616, 0, "'0'"), -(24617, 0, "';'"), -(24574, 0, "','"), -(24575, 0, "' '"), -(24576, 0, "'s'"), -(24577, 0, "'i'"), -(24577, 1, "''"), -(24576, 1, "''"), -(24576, 0, "'o'"), -(24577, 0, "'f'"), -(24578, 0, "'f'"), -(24579, 0, "'s'"), -(24580, 0, "'e'"), -(24581, 0, "'t'"), -(24582, 0, "':'"), -(24583, 0, "' '"), -(24584, 0, "'s'"), -(24585, 0, "'i'"), -(24586, 0, "'z'"), -(24587, 0, "'e'"), -(24588, 0, "'_'"), -(24588, 1, "''"), -(24587, 1, "''"), -(24586, 1, "''"), -(24585, 1, "''"), -(24584, 1, "''"), -(24584, 0, "'u'"), -(24585, 0, "'s'"), -(24586, 0, "'i'"), -(24587, 0, "'z'"), -(24588, 0, "'e'"), -(24606, 27, "''"), -(24605, 1, "''"), -(24576, 0, "'m'"), -(24577, 0, "'u'"), -(24578, 0, "'t'"), -(24579, 0, "' '"), -(25023, 12, "' '"), -(24991, 16, "' '"), -(24945, 20, "' '"), -(24885, 20, "' '"), -(24847, 16, "' '"), -(24755, 16, "' '"), -(24727, 16, "' '"), -(24689, 12, "' '"), -(24610, 12, "' '"), -(24610, 74, "''"), -(24609, 1, "''"), -(24667, 0, "' '"), -(24668, 0, "'/'"), -(24669, 0, "'/'"), -(24670, 0, "' '"), -(24671, 0, "'W'"), -(24672, 0, "'e'"), -(24673, 0, "'''"), -(24674, 0, "'l'"), -(24675, 0, "'l'"), -(24676, 0, "' '"), -(24677, 0, "'s'"), -(24678, 0, "'e'"), -(24679, 0, "'t'"), -(24680, 0, "' '"), -(24681, 0, "'t'"), -(24682, 0, "'h'"), -(24683, 0, "'i'"), -(24684, 0, "'s'"), -(24685, 0, "' '"), -(24686, 0, "'l'"), -(24687, 0, "'a'"), -(24688, 0, "'t'"), -(24689, 0, "'e'"), -(24690, 0, "'r'"), -(24691, 0, "'.'"), -(24718, 61, "''"), -(24718, 0, "'u'"), -(24719, 0, "'s'"), -(24720, 0, "'i'"), -(24721, 0, "'z'"), -(24722, 0, "'e'"), -(24723, 0, "':'"), -(24724, 0, "':'"), -(24725, 0, "'M'"), -(24726, 0, "'A'"), -(24727, 0, "'X'"), -(24729, 0, "' '"), -(24730, 0, "'/'"), -(24731, 0, "'/'"), -(24732, 0, "' '"), -(24733, 0, "'s'"), -(24734, 0, "'e'"), -(24735, 0, "'t'"), -(24733, 3, "'m'"), -(24734, 0, "'u'"), -(24735, 0, "'s'"), -(24736, 0, "'t'"), -(24737, 0, "' '"), -(24738, 0, "'b'"), -(24739, 0, "'e'"), -(24740, 0, "' '"), -(24741, 0, "'s'"), -(24742, 0, "'e'"), -(24743, 0, "'t'"), -(24744, 0, "' '"), -(24745, 0, "'b'"), -(24746, 0, "'y'"), -(24747, 0, "' '"), -(24748, 0, "'c'"), -(24749, 0, "'a'"), -(24750, 0, "'l'"), -(24751, 0, "'l'"), -(24752, 0, "'e'"), -(24753, 0, "'r'"), -(24754, 0, "'.'"), -(24755, 0, "' '"), -(24756, 0, "'('"), -(24757, 0, "'M'"), -(24758, 0, "'a'"), -(24759, 0, "'y'"), -(24760, 0, "'b'"), -(24761, 0, "'e'"), -(24762, 0, "' '"), -(24763, 0, "'t'"), -(24764, 0, "'h'"), -(24765, 0, "'i'"), -(24766, 0, "'s'"), -(24767, 0, "' '"), -(24762, 6, "' '"), -(24763, 0, "'s'"), -(24764, 0, "'h'"), -(24765, 0, "'o'"), -(24766, 0, "'u'"), -(24767, 0, "'l'"), -(24768, 0, "'d'"), -(24769, 0, "' '"), -(24770, 0, "'j'"), -(24771, 0, "'u'"), -(24772, 0, "'s'"), -(24773, 0, "'t'"), -(24774, 0, "' '"), -(24775, 0, "'b'"), -(24776, 0, "'e'"), -(24777, 0, "' '"), -(24778, 0, "'p'"), -(24779, 0, "'a'"), -(24780, 0, "'s'"), -(24781, 0, "'e'"), -(24781, 1, "''"), -(24781, 0, "'s'"), -(24782, 0, "'e'"), -(24783, 0, "'d'"), -(24784, 0, "' '"), -(24785, 0, "'i'"), -(24786, 0, "'n'"), -(24787, 0, "')'"), -(24718, 70, "'l'"), -(24719, 0, "'o'"), -(24720, 0, "'c'"), -(24721, 0, "'a'"), -(24722, 0, "'l'"), -(24723, 0, "'_'"), -(24724, 0, "'i'"), -(24725, 0, "'n'"), -(24726, 0, "'d'"), -(24727, 0, "'e'"), -(24728, 0, "'x'"), -(24729, 0, "','"), -(24593, 0, "','"), -(24594, 0, "' '"), -(24595, 0, "'l'"), -(24596, 0, "'o'"), -(24597, 0, "'c'"), -(24598, 0, "'a'"), -(24599, 0, "'l'"), -(24600, 0, "'_'"), -(24601, 0, "'i'"), -(24602, 0, "'n'"), -(24603, 0, "'d'"), -(24604, 0, "'e'"), -(24605, 0, "'x'"), -(24606, 0, "':'"), -(24607, 0, "' '"), -(24608, 0, "'u'"), -(24609, 0, "'s'"), -(24610, 0, "'i'"), -(24611, 0, "'z'"), -(24612, 0, "'e'"), -(24921, 0, "'n '"), -(24930, 0, "'n '"), -(24922, 8, "''"), -(24931, 0, "'n '"), -(24923, 8, "''"), -(24932, 0, "'c'"), -(24933, 0, "'u'"), -(24934, 0, "'r'"), -(24935, 0, "'s'"), -(24936, 0, "'o'"), -(24937, 0, "'r'"), -(24921, 0, "'n '"), -(24930, 0, "'n '"), -(24922, 8, "''"), -(24923, 8, "''"), -(24922, 0, "'n for i in 1..self.head.height as usize {n n = (*n).parent;n // And find the local offset. Noten }'"), -(25059, 12, "' '"), -(25008, 16, "' '"), -(24975, 16, "' '"), -(24923, 12, "' '"), -(25057, 1, "''"), -(25056, 1, "''"), -(26215, 122, "''"), -(24922, 0, "'n cursor.entries[0] = SkipEntry {n node: n,n skip_usersize: offsetn };'"), -(25030, 12, "' '"), -(24992, 16, "' '"), -(24967, 16, "' '"), -(24923, 12, "' '"), -(25028, 0, "'n '"), -(25029, 8, "''"), -(24556, 4, "'n'"), -(25026, 0, "'n '"), -(25035, 0, "'/'"), -(25036, 0, "'/'"), -(25037, 0, "' '"), -(24556, 0, "'m'"), -(24557, 0, "'u'"), -(24558, 0, "'t'"), -(24559, 0, "' '"), -(25042, 0, "'N'"), -(25043, 0, "'o'"), -(25044, 0, "'w'"), -(25045, 0, "' '"), -(25046, 0, "'w'"), -(25047, 0, "'e'"), -(25048, 0, "' '"), -(25049, 0, "'n'"), -(25050, 0, "'e'"), -(25051, 0, "'e'"), -(25052, 0, "'d'"), -(25053, 0, "' '"), -(25054, 0, "'t'"), -(25055, 0, "'o'"), -(25056, 0, "' '"), -(25057, 0, "'w'"), -(25058, 0, "'a'"), -(25059, 0, "'l'"), -(25060, 0, "'k'"), -(25061, 0, "' '"), -(25062, 0, "'u'"), -(25063, 0, "'p'"), -(25064, 0, "' '"), -(25065, 0, "'t'"), -(25066, 0, "'h'"), -(25067, 0, "'e'"), -(25068, 0, "' '"), -(25069, 0, "'p'"), -(25070, 0, "'a'"), -(25071, 0, "'r'"), -(25072, 0, "'e'"), -(25073, 0, "'n'"), -(25074, 0, "'t'"), -(25075, 0, "'s'"), -(25076, 0, "'''"), -(25077, 0, "' '"), -(25078, 0, "'t'"), -(25079, 0, "'r'"), -(25080, 0, "'e'"), -(25081, 0, "'e'"), -(24923, 0, "'n '"), -(24932, 0, "'l'"), -(24933, 0, "'e'"), -(24934, 0, "'t'"), -(24935, 0, "' '"), -(24936, 0, "'m'"), -(24937, 0, "'u'"), -(24938, 0, "'t'"), -(24939, 0, "' '"), -(24940, 0, "'h'"), -(24941, 0, "'e'"), -(24942, 0, "'i'"), -(24943, 0, "'g'"), -(24944, 0, "'h'"), -(24945, 0, "'t'"), -(24946, 0, "' '"), -(24947, 0, "'='"), -(24948, 0, "' '"), -(24949, 0, "'0'"), -(24950, 0, "';'"), -(24951, 0, "'n '"), -(24960, 0, "'n '"), -(24952, 8, "''"), -(24961, 0, "'f'"), -(24962, 0, "'o'"), -(24963, 0, "'r'"), -(24964, 0, "' '"), -(24932, 0, "'// '"), -(24968, 0, "'h'"), -(24969, 0, "' '"), -(24970, 0, "'i'"), -(24971, 0, "'n'"), -(24972, 0, "' '"), -(24973, 0, "'0'"), -(24974, 0, "'.'"), -(24975, 0, "'.'"), -(24976, 0, "'('"), -(24977, 0, "'*'"), -(24978, 0, "'n'"), -(24979, 0, "')'"), -(24980, 0, "'.'"), -(24981, 0, "'h'"), -(24982, 0, "'e'"), -(24983, 0, "'i'"), -(24984, 0, "'g'"), -(24985, 0, "'h'"), -(24986, 0, "'t'"), -(24987, 0, "' '"), -(24987, 0, "' '"), -(24988, 0, "'a'"), -(24989, 0, "'s'"), -(24990, 0, "' '"), -(24991, 0, "'u'"), -(24992, 0, "'s'"), -(24993, 0, "'i'"), -(24994, 0, "'z'"), -(24995, 0, "'e'"), -(24996, 0, "' '"), -(24997, 0, "'{'"), -(25095, 8, "' '"), -(25061, 12, "' '"), -(25040, 12, "' '"), -(25000, 8, "' '"), -(25121, 0, "'n '"), -(25122, 12, "' }'"), -(25027, 1, "''"), -(25027, 0, "'h'"), -(24998, 1, "''"), -(25183, 0, "'n '"), -(25192, 0, "'for h in 0..(*n).height as usize { '"), -(24955, 0, "'n '"), -(24964, 0, "'/'"), -(24965, 0, "'/'"), -(24966, 0, "' '"), -(24967, 0, "'C'"), -(24968, 0, "'o'"), -(24969, 0, "'u'"), -(24970, 0, "'l'"), -(24971, 0, "'d'"), -(24972, 0, "' '"), -(24973, 0, "'e'"), -(24974, 0, "'v'"), -(24975, 0, "'e'"), -(24976, 0, "'n'"), -(24977, 0, "' '"), -(24978, 0, "'j'"), -(24979, 0, "'u'"), -(24980, 0, "'s'"), -(24981, 0, "'t'"), -(24982, 0, "' '"), -(24964, 19, "''"), -(24960, 4, "''"), -(24956, 4, "''"), -(24955, 1, "''"), -(25146, 11, "''"), -(24955, 0, "'n '"), -(24964, 0, "'n '"), -(24956, 8, "''"), -(24957, 8, "''"), -(24956, 0, "'n '"), -(24965, 0, "'l'"), -(24966, 0, "'e'"), -(24967, 0, "'t'"), -(24968, 0, "' '"), -(24969, 0, "'h'"), -(24970, 0, "' '"), -(24971, 0, "'='"), -(24972, 0, "' '"), -(24969, 3, "'m'"), -(24970, 0, "'m'"), -(24970, 1, "''"), -(24970, 0, "'u'"), -(24971, 0, "'t'"), -(24972, 0, "' '"), -(24973, 0, "'h'"), -(24974, 0, "' '"), -(24975, 0, "'='"), -(24976, 0, "' '"), -(24977, 0, "'0'"), -(24978, 0, "';'"), -(24979, 0, "'n '"), -(24988, 0, "'w'"), -(24989, 0, "'h'"), -(24990, 0, "'i'"), -(24991, 0, "'l'"), -(24988, 4, "''"), -(24988, 0, "'l'"), -(24989, 0, "'o'"), -(24990, 0, "'o'"), -(24991, 0, "'p'"), -(24992, 0, "' '"), -(24993, 0, "'{'"), -(24994, 0, "'n '"), -(25007, 1, "'n '"), -(25008, 12, "' }'"), -(25007, 0, "'w'"), -(25008, 0, "'h'"), -(25009, 0, "'i'"), -(25010, 0, "'l'"), -(25011, 0, "'e'"), -(25012, 0, "' '"), -(25013, 0, "'h'"), -(25014, 0, "' '"), -(25015, 0, "'<'"), -(25016, 0, "' '"), -(25017, 0, "'(*n).height'"), -(25028, 0, "' '"), -(25029, 0, "'a'"), -(25030, 0, "'s'"), -(25031, 0, "' '"), -(25032, 0, "'u'"), -(25033, 0, "'s'"), -(25034, 0, "'i'"), -(25035, 0, "'z'"), -(25036, 0, "'e'"), -(25037, 0, "' '"), -(25038, 0, "'{'"), -(25039, 0, "'n '"), -(25056, 0, "'n '"), -(25040, 16, "''"), -(25041, 16, "' }'"), -(25109, 122, "''"), -(25040, 0, "' cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };n'"), -(25162, 0, "' '"), -(25147, 12, "' '"), -(25109, 16, "' '"), -(25084, 16, "' '"), -(25040, 12, "' '"), -(25177, 1, "''"), -(25258, 0, "'// '"), -(25215, 0, "'// '"), -(25195, 0, "'n '"), -(25208, 0, "'n '"), -(25196, 12, "''"), -(25498, 0, "'// '"), -(25451, 0, "'// '"), -(25422, 0, "'// '"), -(25374, 0, "'// '"), -(25330, 0, "'// '"), -(25197, 12, "''"), -(25197, 0, "' n = (*n).parent;'"), -(25197, 4, "' '"), -(25225, 0, "'n '"), -(25238, 0, "'i'"), -(25239, 0, "'f'"), -(25240, 0, "' '"), -(25241, 0, "'n'"), -(25242, 0, "' '"), -(25243, 0, "'='"), -(25244, 0, "'='"), -(25245, 0, "' '"), -(25246, 0, "'s'"), -(25247, 0, "'e'"), -(25248, 0, "'l'"), -(25249, 0, "'f'"), -(25250, 0, "'.'"), -(25251, 0, "'h'"), -(25252, 0, "'e'"), -(25253, 0, "'a'"), -(25254, 0, "'d'"), -(25246, 0, "'&'"), -(25256, 0, "' '"), -(25257, 0, "'{'"), -(25258, 0, "' '"), -(25259, 0, "'b'"), -(25260, 0, "'r'"), -(25261, 0, "'e'"), -(25262, 0, "'a'"), -(25263, 0, "'k'"), -(25264, 0, "';'"), -(25265, 0, "' '"), -(25266, 0, "'}'"), -(25267, 0, "'n '"), -(25268, 12, "''"), -(25242, 0, "'a'"), -(25243, 0, "'s'"), -(25244, 0, "' '"), -(25244, 1, "''"), -(25243, 1, "''"), -(25242, 1, "''"), -(25242, 0, "' '"), -(25243, 0, "'a'"), -(25244, 0, "'s'"), -(25245, 0, "' '"), -(25246, 0, "'*'"), -(25247, 0, "'c'"), -(25248, 0, "'o'"), -(25249, 0, "'n'"), -(25250, 0, "'s'"), -(25251, 0, "'t'"), -(25252, 0, "' '"), -(25253, 0, "'_'"), -(25268, 0, "' '"), -(25269, 0, "'a'"), -(25270, 0, "'s'"), -(25271, 0, "' '"), -(25272, 0, "'*'"), -(25273, 0, "'c'"), -(25274, 0, "'o'"), -(25275, 0, "'n'"), -(25276, 0, "'s'"), -(25277, 0, "'t'"), -(25278, 0, "' '"), -(25279, 0, "'_'"), -(25269, 12, "''"), -(25280, 0, "' '"), -(25280, 12, "''"), -(25279, 1, "''"), -(25225, 0, "'n '"), -(25238, 0, "'n '"), -(25226, 12, "''"), -(25227, 12, "''"), -(25226, 0, "'n '"), -(25227, 12, "''"), -(25181, 0, "'n '"), -(25182, 16, "''"), -(25181, 1, "''"), -(25180, 1, "''"), -(25179, 1, "''"), -(25178, 1, "''"), -(25177, 1, "''"), -(25177, 0, "'n '"), -(25194, 0, "'h'"), -(25195, 0, "' '"), -(25196, 0, "'+'"), -(25197, 0, "'='"), -(25198, 0, "' '"), -(25199, 0, "'1'"), -(25200, 0, "';'"), -(25177, 0, "'n '"), -(25263, 0, "' '"), -(25178, 16, "''"), -(25259, 0, "'d'"), -(25260, 0, "'e'"), -(25261, 0, "'b'"), -(25262, 0, "'u'"), -(25263, 0, "'g'"), -(25259, 5, "'debug_assert!'"), -(25272, 0, "'('"), -(25273, 0, "'('"), -(25274, 0, "'*'"), -(25275, 0, "'n'"), -(25276, 0, "')'"), -(25277, 0, "'.'"), -(25278, 0, "'h'"), -(25279, 0, "'e'"), -(25280, 0, "'i'"), -(25281, 0, "'g'"), -(25282, 0, "'h'"), -(25283, 0, "'t'"), -(25284, 0, "' '"), -(25285, 0, "'>'"), -(25286, 0, "' '"), -(25287, 0, "'h'"), -(25288, 0, "')'"), -(25289, 0, "';'"), -(25288, 0, "' '"), -(25289, 0, "'a'"), -(25290, 0, "'s'"), -(25291, 0, "' '"), -(25288, 4, "''"), -(25284, 0, "' '"), -(25285, 0, "'a'"), -(25286, 0, "'s'"), -(25287, 0, "' '"), -(25288, 0, "'u'"), -(25289, 0, "'s'"), -(25290, 0, "'i'"), -(25291, 0, "'z'"), -(25292, 0, "'e'"), -(25355, 0, "'n'"), -(25301, 1, "''"), -(25354, 0, "'n'"), -(25300, 1, "''"), -(25353, 0, "'n debug_assert!((*n).height as usize > h);'"), -(25247, 53, "''"), -(25300, 0, "'n n = (*n).parent;'"), -(25218, 29, "''"), -(25271, 0, "'n'"), -(25217, 1, "''"), -(25216, 0, "'n '"), -(25229, 0, "'n '"), -(25217, 12, "''"), -(25230, 0, "'/'"), -(25231, 0, "'/'"), -(25232, 0, "' '"), -(25233, 0, "'?'"), -(25234, 0, "'?'"), -(25235, 0, "' '"), -(25236, 0, "'C'"), -(25237, 0, "'o'"), -(25238, 0, "'u'"), -(25239, 0, "'l'"), -(25240, 0, "'d'"), -(25241, 0, "' '"), -(25242, 0, "'i'"), -(25243, 0, "'n'"), -(25244, 0, "'s'"), -(25245, 0, "'t'"), -(25246, 0, "'e'"), -(25247, 0, "'a'"), -(25248, 0, "'d'"), -(25249, 0, "' '"), -(25250, 0, "'c'"), -(25251, 0, "'h'"), -(25252, 0, "'e'"), -(25253, 0, "'c'"), -(25254, 0, "'k'"), -(25255, 0, "' '"), -(25256, 0, "'i'"), -(25257, 0, "'f'"), -(25258, 0, "' '"), -(25259, 0, "'n'"), -(25260, 0, "' '"), -(25261, 0, "'i'"), -(25262, 0, "'s'"), -(25263, 0, "' '"), -(25264, 0, "'n'"), -(25265, 0, "'u'"), -(25266, 0, "'l'"), -(25267, 0, "'l'"), -(25268, 0, "'.'"), -(25408, 0, "' '"), -(25408, 12, "''"), -(25233, 2, "'S'"), -(25234, 0, "'h'"), -(25235, 0, "'o'"), -(25236, 0, "'u'"), -(25237, 0, "'l'"), -(25238, 0, "'d'"), -(25239, 6, "''"), -(25247, 0, "' '"), -(25248, 0, "'b'"), -(25249, 0, "'e'"), -(25250, 0, "' '"), -(25251, 0, "'a'"), -(25252, 0, "'b'"), -(25253, 0, "'l'"), -(25254, 0, "'e'"), -(25255, 0, "' '"), -(25256, 0, "'t'"), -(25257, 0, "'o'"), -(25417, 0, "' '"), -(25429, 0, "'/'"), -(25430, 0, "'/'"), -(25431, 0, "' '"), -(25432, 0, "'A'"), -(25433, 0, "'n'"), -(25434, 0, "'d'"), -(25435, 0, "' '"), -(25436, 0, "'u'"), -(25437, 0, "'p'"), -(25437, 1, "''"), -(25436, 1, "''"), -(25436, 0, "'f'"), -(25437, 0, "'i'"), -(25438, 0, "'g'"), -(25439, 0, "'u'"), -(25440, 0, "'r'"), -(25441, 0, "'e'"), -(25442, 0, "' '"), -(25443, 0, "'o'"), -(25444, 0, "'u'"), -(25445, 0, "'t'"), -(25446, 0, "' '"), -(25447, 0, "'t'"), -(25448, 0, "'h'"), -(25449, 0, "'e'"), -(25450, 0, "' '"), -(25451, 0, "'o'"), -(25452, 0, "'f'"), -(25453, 0, "'f'"), -(25454, 0, "'s'"), -(25455, 0, "'e'"), -(25456, 0, "'t'"), -(25457, 0, "'.'"), -(25346, 0, "'l'"), -(25347, 0, "'e'"), -(25348, 0, "'t'"), -(25349, 0, "' '"), -(25350, 1, "'p'"), -(25351, 0, "'a'"), -(25352, 0, "'r'"), -(25353, 0, "'e'"), -(25354, 0, "'n'"), -(25355, 0, "'t'"), -(25467, 0, "'n '"), -(25480, 0, "'n '"), -(25468, 12, "''"), -(25481, 0, "'n'"), -(25482, 0, "' '"), -(25483, 0, "'='"), -(25484, 0, "' '"), -(25485, 0, "'p'"), -(25486, 0, "'a'"), -(25487, 0, "'r'"), -(25488, 0, "'e'"), -(25489, 0, "'n'"), -(25490, 0, "'t'"), -(25491, 0, "';'"), -(25466, 1, "''"), -(25466, 0, "' '"), -(25467, 0, "'f'"), -(25468, 0, "'r'"), -(25469, 0, "'o'"), -(25470, 0, "'m'"), -(25471, 0, "' '"), -(25472, 0, "'p'"), -(25473, 0, "'a'"), -(25474, 0, "'r'"), -(25475, 0, "'e'"), -(25476, 0, "'n'"), -(25477, 0, "'t'"), -(25478, 0, "' '"), -(25479, 0, "'t'"), -(25480, 0, "'o'"), -(25481, 0, "' '"), -(25482, 0, "'n'"), -(25483, 0, "'.'"), -(25484, 0, "'n '"), -(25497, 0, "' let mut n = new_node_ptr;n loop {n n = (*n).nexts_mut()[new_height_usize - 2].node;n if n.is_null() || (*n).height >= new_height { break; }nn (*n).parent = new_node_ptr;n }'"), -(25485, 24, "' '"), -(25485, 38, "''"), -(25485, 214, "''"), -(25484, 1, "''"), -(25484, 0, "'n '"), -(25497, 0, "'n '"), -(25485, 12, "''"), -(25486, 12, "''"), -(25441, 3, "'W'"), -(25442, 0, "'a'"), -(25443, 0, "'l'"), -(25444, 0, "'k'"), -(25445, 0, "' '"), -(25446, 0, "'f'"), -(25447, 0, "'r'"), -(25448, 0, "'o'"), -(25449, 0, "'m'"), -(25450, 0, "' '"), -(25451, 0, "'b'"), -(25452, 0, "'p'"), -(25452, 1, "''"), -(25451, 1, "''"), -(25451, 0, "'p'"), -(25452, 0, "'a'"), -(25453, 0, "'r'"), -(25454, 0, "'e'"), -(25455, 0, "'n'"), -(25456, 0, "'t'"), -(25457, 0, "' '"), -(25458, 0, "'b'"), -(25459, 0, "'a'"), -(25460, 0, "'c'"), -(25461, 0, "'k'"), -(25462, 0, "' '"), -(25463, 0, "'t'"), -(25464, 0, "'o'"), -(25465, 0, "' '"), -(25466, 0, "'n'"), -(25467, 0, "','"), -(25468, 0, "' '"), -(25468, 1, "''"), -(25474, 1, "''"), -(25474, 0, "'i'"), -(25475, 0, "'n'"), -(25476, 0, "'g'"), -(25492, 18, "'.'"), -(25493, 0, "'n '"), -(25506, 0, "'l'"), -(25507, 0, "'e'"), -(25508, 0, "'t'"), -(25509, 0, "' '"), -(25510, 0, "'i'"), -(25510, 1, "''"), -(25510, 0, "'c'"), -(25511, 0, "'u'"), -(25511, 1, "''"), -(25511, 0, "' '"), -(25512, 0, "'='"), -(25513, 0, "' '"), -(25514, 0, "'p'"), -(25515, 0, "'a'"), -(25516, 0, "'r'"), -(25517, 0, "'e'"), -(25518, 0, "'n'"), -(25519, 0, "'t'"), -(25520, 0, "';'"), -(25521, 0, "'n '"), -(25534, 0, "'w'"), -(25535, 0, "'h'"), -(25536, 0, "'i'"), -(25537, 0, "'l'"), -(25538, 0, "'e'"), -(25539, 0, "' '"), -(25540, 0, "'c'"), -(25541, 0, "' '"), -(25542, 0, "'!'"), -(25543, 0, "'='"), -(25544, 0, "' '"), -(25545, 0, "'n'"), -(25546, 0, "' '"), -(25547, 0, "'{'"), -(25548, 0, "'n '"), -(25565, 0, "'n '"), -(25549, 16, "''"), -(25550, 16, "' }'"), -(25549, 0, "' '"), -(25565, 0, "'c'"), -(25566, 0, "' '"), -(25567, 0, "'='"), -(25568, 0, "' '"), -(25569, 0, "'('"), -(25570, 0, "'*'"), -(25571, 0, "'c'"), -(25572, 0, "')'"), -(25573, 0, "'.'"), -(25574, 0, "'n'"), -(25575, 0, "'e'"), -(25576, 0, "'x'"), -(25577, 0, "'s'"), -(25577, 1, "''"), -(25577, 0, "'t'"), -(25578, 0, "'s'"), -(25579, 0, "'['"), -(25580, 0, "'('"), -(25581, 0, "'*'"), -(25582, 0, "'c'"), -(25583, 0, "')'"), -(25584, 0, "'.'"), -(25585, 0, "'h'"), -(25586, 0, "'e'"), -(25587, 0, "'i'"), -(25588, 0, "'g'"), -(25589, 0, "'h'"), -(25590, 0, "'t'"), -(25591, 0, "' '"), -(25592, 0, "'-'"), -(25593, 0, "' '"), -(25594, 0, "'1'"), -(25594, 1, "''"), -(25594, 0, "'2'"), -(25400, 1, "''"), -(25400, 0, "'p'"), -(25401, 0, "'a'"), -(25402, 0, "'r'"), -(25403, 0, "'e'"), -(25404, 0, "'n'"), -(25405, 0, "'t'"), -(25371, 0, "'n '"), -(25372, 12, "''"), -(25371, 1, "''"), -(25429, 0, "'n '"), -(25442, 0, "'n '"), -(25430, 12, "''"), -(25443, 0, "'l'"), -(25444, 0, "'e'"), -(25445, 0, "'t'"), -(25446, 0, "' '"), -(25447, 0, "'p'"), -(25448, 0, "'_'"), -(25449, 0, "'h'"), -(25450, 0, "'e'"), -(25451, 0, "'i'"), -(25452, 0, "'g'"), -(25453, 0, "'h'"), -(25454, 0, "'t'"), -(25455, 0, "' '"), -(25456, 0, "'='"), -(25457, 0, "' '"), -(25458, 0, "'('"), -(25459, 0, "'*'"), -(25460, 0, "'p'"), -(25461, 0, "'a'"), -(25462, 0, "'r'"), -(25463, 0, "'e'"), -(25464, 0, "'n'"), -(25465, 0, "'t'"), -(25466, 0, "')'"), -(25467, 0, "'.'"), -(25468, 0, "'h'"), -(25469, 0, "'e'"), -(25470, 0, "'i'"), -(25471, 0, "'g'"), -(25472, 0, "'h'"), -(25473, 0, "'t'"), -(25474, 0, "';'"), -(25475, 0, "'n'"), -(25430, 1, "''"), -(25474, 0, "'n debug_assert!((*parent).height as usize > h);'"), -(25372, 58, "''"), -(25443, 16, "'p'"), -(25444, 0, "'_'"), -(25445, 0, "'h'"), -(25446, 0, "'e'"), -(25447, 0, "'i'"), -(25448, 0, "'g'"), -(25449, 0, "'h'"), -(25450, 0, "'t'"), -(25451, 9, "''"), -(25415, 0, "' '"), -(25416, 0, "'a'"), -(25417, 0, "'s'"), -(25418, 0, "' '"), -(25419, 0, "'s'"), -(25420, 0, "'u'"), -(25420, 1, "''"), -(25419, 1, "''"), -(25419, 0, "'u'"), -(25420, 0, "'s'"), -(25421, 0, "'i'"), -(25422, 0, "'z'"), -(25423, 0, "'e'"), -(25467, 1, "''"), -(25424, 0, "' '"), -(25425, 0, "'-'"), -(25426, 0, "' '"), -(25427, 0, "'1'"), -(25426, 2, "''"), -(25424, 2, "''"), -(25467, 0, "'n'"), -(25419, 5, "''"), -(25419, 0, "'su'"), -(25418, 3, "''"), -(25415, 3, "''"), -(25451, 0, "' as usize'"), -(25443, 8, "'(*parent).height'"), -(25416, 58, "''"), -(25372, 0, "' debug_assert!((*parent).height as usize > h);n'"), -(25474, 1, "''"), -(25430, 0, "'n'"), -(25443, 32, "'let p_height = (*parent).height as usize - 1;'"), -(25447, 8, "'w'"), -(25448, 0, "'a'"), -(25449, 0, "'l'"), -(25450, 0, "'k'"), -(25451, 0, "'_'"), -(25452, 0, "'h'"), -(25453, 0, "'e'"), -(25454, 0, "'i'"), -(25455, 0, "'g'"), -(25456, 0, "'h'"), -(25457, 0, "'t'"), -(25491, 1, "''"), -(25431, 0, "' n'"), -(25504, 68, "''"), -(25444, 0, "' // Walk from parent back to n, figuring out the offset.n'"), -(25572, 28, "''"), -(25512, 0, "' let c = parent;n'"), -(25439, 4, "''"), -(25435, 4, "''"), -(25431, 4, "''"), -(25430, 1, "''"), -(25646, 15, "''"), -(25646, 0, "'w'"), -(25647, 0, "'a'"), -(25648, 0, "'l'"), -(25649, 0, "'k'"), -(25650, 0, "'_'"), -(25651, 0, "'h'"), -(25652, 0, "'e'"), -(25653, 0, "'i'"), -(25646, 8, "'walk_height'"), -(25657, 0, "']'"), -(25585, 1, "''"), -(25585, 0, "'2'"), -(25585, 1, "''"), -(25585, 0, "'1'"), -(25585, 1, "''"), -(25585, 0, "'2'"), -(25631, 0, "'l'"), -(25632, 0, "'e'"), -(25633, 0, "'t'"), -(25634, 0, "' '"), -(25635, 0, "'e'"), -(25636, 0, "'l'"), -(25637, 0, "'e'"), -(25638, 0, "'m'"), -(25639, 0, "' '"), -(25640, 0, "'='"), -(25641, 1, "''"), -(25641, 1, "''"), -(25641, 1, "''"), -(25641, 1, "''"), -(25641, 0, "' '"), -(25665, 0, "';'"), -(25666, 0, "'n '"), -(25683, 0, "'c'"), -(25684, 0, "' '"), -(25685, 0, "'='"), -(25686, 0, "' '"), -(25687, 0, "'e'"), -(25688, 0, "'l'"), -(25689, 0, "'e'"), -(25690, 0, "'m'"), -(25691, 0, "'e'"), -(25692, 0, "'.'"), -(25692, 1, "''"), -(25691, 1, "''"), -(25691, 0, "'.'"), -(25692, 0, "'n'"), -(25693, 0, "'o'"), -(25694, 0, "'d'"), -(25695, 0, "'e'"), -(25696, 0, "';'"), -(25666, 0, "'n '"), -(25683, 0, "'o'"), -(25684, 0, "'f'"), -(25685, 0, "'f'"), -(25686, 0, "'s'"), -(25687, 0, "'e'"), -(25688, 0, "'t'"), -(25689, 0, "' '"), -(25690, 0, "'+'"), -(25691, 0, "'='"), -(25692, 0, "' '"), -(25693, 0, "'e'"), -(25694, 0, "'l'"), -(25695, 0, "'e'"), -(25696, 0, "'m'"), -(25697, 0, "'.'"), -(25698, 0, "'s'"), -(25699, 0, "'k'"), -(25700, 0, "'i'"), -(25701, 0, "'p'"), -(25702, 0, "'_'"), -(25703, 0, "'u'"), -(25698, 6, "'skip_usersize'"), -(25711, 0, "';'"), -(25515, 0, "'m'"), -(25516, 0, "'u'"), -(25517, 0, "'t'"), -(25518, 0, "' '"), -(25762, 1, "''"), -(25797, 295, "''"), -(25218, 115, "''"), -(25217, 1, "''"), -(25216, 1, "''"), -(25216, 0, "'n '"), -(25325, 0, "'n '"), -(25217, 12, "''"), -(25326, 0, "'n '"), -(25314, 12, "''"), -(25327, 0, "'i'"), -(25328, 0, "'f'"), -(25329, 0, "' '"), -(25330, 0, "'p'"), -(25331, 0, "'a'"), -(25332, 0, "'r'"), -(25333, 0, "'e'"), -(25334, 0, "'n'"), -(25335, 0, "'t'"), -(25336, 0, "'.'"), -(25337, 0, "'i'"), -(25338, 0, "'s'"), -(25339, 0, "'_'"), -(25340, 0, "'n'"), -(25341, 0, "'u'"), -(25342, 0, "'l'"), -(25343, 0, "'l'"), -(25344, 0, "'('"), -(25345, 0, "')'"), -(25346, 0, "' '"), -(25347, 0, "'{'"), -(25348, 0, "' '"), -(25349, 0, "'b'"), -(25350, 0, "'r'"), -(25351, 0, "'e'"), -(25352, 0, "'a'"), -(25353, 0, "'k'"), -(25354, 0, "';'"), -(25355, 0, "' '"), -(25356, 0, "'}'"), -(25314, 0, "'n '"), -(25327, 0, "'/'"), -(25328, 0, "'/'"), -(25329, 0, "' '"), -(25330, 0, "'R'"), -(25331, 0, "'e'"), -(25332, 0, "'a'"), -(25333, 0, "'c'"), -(25334, 0, "'h'"), -(25335, 0, "'e'"), -(25336, 0, "'d'"), -(25337, 0, "' '"), -(25338, 0, "'t'"), -(25339, 0, "'h'"), -(25340, 0, "'e'"), -(25341, 0, "' '"), -(25342, 0, "'h'"), -(25343, 0, "'e'"), -(25344, 0, "'a'"), -(25345, 0, "'d'"), -(25346, 0, "'.'"), -(24955, 1, "''"), -(24924, 31, "''"), -(24923, 1, "''"), -(25725, 0, "'n '"), -(25734, 0, "'c'"), -(25735, 0, "'u'"), -(25736, 0, "'r'"), -(25737, 0, "'s'"), -(25738, 0, "'o'"), -(25739, 0, "'r'"), -(25740, 0, "'.'"), -(25741, 0, "'u'"), -(25742, 0, "'s'"), -(25743, 0, "'e'"), -(25744, 0, "'r'"), -(25745, 0, "'p'"), -(25746, 0, "'o'"), -(25747, 0, "'s'"), -(25748, 0, "' '"), -(25749, 0, "'='"), -(25750, 0, "' '"), -(25751, 0, "'o'"), -(25752, 0, "'f'"), -(25753, 0, "'f'"), -(25754, 0, "'s'"), -(25755, 0, "'e'"), -(25756, 0, "'t'"), -(25757, 0, "';'"), -(26487, 610, "''"), -(26487, 0, "'n '"), -(26500, 0, "'s'"), -(26501, 0, "'e'"), -(26502, 0, "'l'"), -(26503, 0, "'f'"), -(26504, 0, "'.'"), -(26505, 0, "'i'"), -(26506, 0, "'t'"), -(26507, 0, "'e'"), -(26508, 0, "'r'"), -(26509, 0, "'_'"), -(26505, 5, "'iter_at_node(mut n: *mut Node, mut offset: usize, local_index: usize)'"), -(26518, 19, "'n'"), -(26521, 17, "'o'"), -(26522, 0, "'f'"), -(26523, 0, "'f'"), -(26524, 0, "'s'"), -(26525, 0, "'e'"), -(26526, 0, "'t'"), -(26529, 18, "'l'"), -(26530, 0, "'o'"), -(26531, 0, "'c'"), -(26532, 0, "'a'"), -(26533, 0, "'l'"), -(26534, 0, "'_'"), -(26535, 0, "'i'"), -(26536, 0, "'n'"), -(26537, 0, "'d'"), -(26538, 0, "'e'"), -(26539, 0, "'x'"), -(26541, 20, "''"), -(26541, 0, "'nn cursor'"), -(26529, 11, "'local_index: usize'"), -(26521, 6, "'mut offset: usize'"), -(26518, 1, "'mut n: *mut Node'"), -(26505, 72, "'iter_'"), -(26487, 23, "''"), -(26487, 0, "'n // Now we need to make a cursor at the node/userpos location pair.n let mut cursor = Cursor {n userpos: 0,n local_index: local_index.expect('Invalid marker - item not found in node'),n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nnn for i in 1..self.head.height as usize {n n = (*n).parent;n // And find the local offset. Noten }n unimplemented!();'"), -(25750, 8, "''"), -(25750, 0, "' offset;'"), -(26487, 0, "'self.iter_at_node(n, offset, local_index)'"), -(26487, 0, "' '"), -(26540, 0, "'n '"), -(26728, 61, "''"), -(26541, 12, "''"), -(26528, 11, "'local_index.expect('Invalid marker - item not found in node')'"), -(26590, 550, "''"), -(26590, 20, "''"), -(26486, 0, "'n '"), -(26499, 0, "'n '"), -(26487, 12, "''"), -(26500, 0, "'l'"), -(26501, 0, "'e'"), -(26502, 0, "'t'"), -(26503, 0, "' '"), -(26504, 0, "'l'"), -(26505, 0, "'o'"), -(26506, 0, "'c'"), -(26507, 0, "'a'"), -(26508, 0, "'l'"), -(26509, 0, "'_'"), -(26510, 0, "'i'"), -(26511, 0, "'n'"), -(26504, 8, "'local_index'"), -(26515, 0, "' '"), -(26516, 0, "'='"), -(26517, 0, "' '"), -(26560, 61, "''"), -(26518, 0, "'local_index.expect('Invalid marker - item not found in node')'"), -(26579, 0, "';'"), -(26622, 0, "'o'"), -(26623, 0, "'='"), -(26623, 1, "''"), -(26623, 0, "'l'"), -(26624, 0, "'o'"), -(26624, 1, "''"), -(26623, 1, "''"), -(26622, 1, "''"), -(26622, 0, "'l'"), -(26623, 0, "'o'"), -(26624, 0, "'c'"), -(26625, 0, "'a'"), -(26626, 0, "'l'"), -(26622, 5, "'local_index'"), -(26022, 3, "''"), -(26021, 1, "''"), -(20829, 0, "'n '"), -(20846, 0, "'n '"), -(20830, 16, "''"), -(20847, 0, "'/'"), -(20848, 0, "'/'"), -(20849, 0, "' '"), -(20850, 0, "'C'"), -(20851, 0, "'h'"), -(20852, 0, "'e'"), -(20853, 0, "'c'"), -(20854, 0, "'k'"), -(20855, 0, "' '"), -(20856, 0, "'t'"), -(20857, 0, "'h'"), -(20858, 0, "'e'"), -(20859, 0, "' '"), -(20860, 0, "'v'"), -(20861, 0, "'a'"), -(20862, 0, "'l'"), -(20863, 0, "'u'"), -(20864, 0, "'e'"), -(20865, 0, "' '"), -(20866, 0, "'r'"), -(20867, 0, "'e'"), -(20868, 0, "'t'"), -(20869, 0, "'u'"), -(20870, 0, "'r'"), -(20871, 0, "'n'"), -(20872, 0, "'e'"), -(20873, 0, "'d'"), -(20874, 0, "' '"), -(20875, 0, "'b'"), -(20876, 0, "'y'"), -(20877, 0, "' '"), -(20878, 0, "'t'"), -(20879, 0, "'h'"), -(20880, 0, "'e'"), -(20881, 0, "' '"), -(20882, 0, "'i'"), -(20883, 0, "'t'"), -(20884, 0, "'e'"), -(20885, 0, "'r'"), -(20886, 0, "'a'"), -(20887, 0, "'t'"), -(20888, 0, "'o'"), -(20889, 0, "'r'"), -(20890, 0, "' '"), -(20891, 0, "'f'"), -(20892, 0, "'u'"), -(20893, 0, "'n'"), -(20894, 0, "'c'"), -(20895, 0, "'t'"), -(20896, 0, "'i'"), -(20897, 0, "'o'"), -(20898, 0, "'n'"), -(20899, 0, "'s'"), -(20900, 0, "' '"), -(20901, 0, "'m'"), -(20902, 0, "'a'"), -(20903, 0, "'t'"), -(20904, 0, "'c'"), -(20905, 0, "'h'"), -(20906, 0, "'e'"), -(20907, 0, "'s'"), -(20908, 0, "'.'"), -(20909, 0, "'n '"), -(20926, 0, "'s'"), -(20927, 0, "'e'"), -(20928, 0, "'l'"), -(20929, 0, "'f'"), -(20930, 0, "'.'"), -(20931, 0, "'i'"), -(20932, 0, "'t'"), -(20933, 0, "'e'"), -(20934, 0, "'r'"), -(20931, 4, "'iter_at_node(mut n: *mut Node, mut offset: usize, local_index: usize)'"), -(20944, 19, "'n'"), -(20947, 17, "'n'"), -(20948, 0, "'.'"), -(20949, 0, "'g'"), -(20950, 0, "'e'"), -(20951, 0, "'t'"), -(20952, 0, "'_'"), -(20953, 0, "'l'"), -(20954, 0, "'o'"), -(20954, 1, "''"), -(20953, 1, "''"), -(20953, 0, "'u'"), -(20954, 0, "'s'"), -(20955, 0, "'e'"), -(20956, 0, "'r'"), -(20957, 0, "'l'"), -(20958, 0, "'e'"), -(20959, 0, "'n'"), -(20960, 0, "'('"), -(20961, 0, "')'"), -(20964, 18, "'n'"), -(20965, 0, "'.'"), -(20966, 0, "'n'"), -(20967, 0, "'u'"), -(20968, 0, "'m'"), -(20969, 0, "'_'"), -(20970, 0, "'i'"), -(20971, 0, "'t'"), -(20966, 6, "'num_items'"), -(20976, 0, "';'"), -(20926, 0, "'l'"), -(20927, 0, "'e'"), -(20928, 0, "'t'"), -(20929, 0, "' '"), -(20930, 0, "'n'"), -(20931, 0, "'o'"), -(20932, 0, "'d'"), -(20933, 0, "'e'"), -(20934, 0, "'_'"), -(20935, 0, "'i'"), -(20936, 0, "'t'"), -(20937, 0, "'e'"), -(20938, 0, "'r'"), -(20939, 0, "' '"), -(20940, 0, "'='"), -(20941, 0, "' '"), -(24728, 3, "'c'"), -(24729, 0, "'o'"), -(24730, 0, "'n'"), -(24731, 0, "'s'"), -(24732, 0, "'t'"), -(24796, 0, "'n '"), -(24805, 0, "'l'"), -(24806, 0, "'e'"), -(24807, 0, "'t'"), -(24808, 0, "' '"), -(24809, 0, "'n'"), -(24810, 0, "' '"), -(24811, 0, "'='"), -(24812, 0, "' '"), -(24809, 0, "'m'"), -(24810, 0, "'u'"), -(24811, 0, "'t'"), -(24812, 0, "' '"), -(24817, 0, "'n'"), -(24818, 0, "' '"), -(24819, 0, "'a'"), -(24820, 0, "'s'"), -(24821, 0, "' '"), -(24822, 0, "'*'"), -(24823, 0, "'m'"), -(24824, 0, "'u'"), -(24825, 0, "'t'"), -(24826, 0, "' '"), -(24827, 0, "'_'"), -(24828, 0, "';'"), -(24720, 4, "''"), -(24825, 0, "'n '"), -(24826, 8, "''"), -(24825, 0, "' '"), -(24826, 0, "'/'"), -(24827, 0, "'/'"), -(24828, 0, "' '"), -(24829, 0, "'W'"), -(24830, 0, "'e'"), -(24831, 0, "' '"), -(24832, 0, "'d'"), -(24833, 0, "'o'"), -(24834, 0, "'n'"), -(24835, 0, "'''"), -(24836, 0, "'t'"), -(24837, 0, "' '"), -(24838, 0, "'m'"), -(24839, 0, "'u'"), -(24840, 0, "'t'"), -(24841, 0, "'a'"), -(24842, 0, "'t'"), -(24843, 0, "'e'"), -(24844, 0, "','"), -(24845, 0, "' '"), -(24846, 0, "'b'"), -(24847, 0, "'u'"), -(24848, 0, "'t'"), -(24849, 0, "' '"), -(24823, 1, "'N'"), -(24824, 0, "'o'"), -(24825, 0, "'d'"), -(24826, 0, "'e'"), -(24827, 0, "'<'"), -(24828, 0, "'C'"), -(24829, 0, "'>'"), -(24856, 0, "'w'"), -(24857, 0, "'e'"), -(24858, 0, "' '"), -(24859, 0, "'n'"), -(24860, 0, "'e'"), -(24861, 0, "'e'"), -(24862, 0, "'d'"), -(24863, 0, "' '"), -(24864, 0, "'a'"), -(24865, 0, "' '"), -(24866, 0, "'m'"), -(24867, 0, "'u'"), -(24868, 0, "'t'"), -(24869, 0, "' '"), -(24870, 0, "'p'"), -(24871, 0, "'t'"), -(24872, 0, "'r'"), -(24873, 0, "'.'"), -(24709, 11, "''"), -(24709, 0, "'&mut self, '"), -(24710, 4, "''"), -(20991, 0, "' '"), -(20992, 0, "'a'"), -(20993, 0, "'s'"), -(20994, 0, "' '"), -(20995, 0, "'u'"), -(20996, 0, "'s'"), -(20997, 0, "'i'"), -(20998, 0, "'z'"), -(20999, 0, "'e'"), -(20942, 0, "'u'"), -(20943, 0, "'n'"), -(20944, 0, "'s'"), -(20945, 0, "'a'"), -(20946, 0, "'f'"), -(20947, 0, "'e'"), -(20948, 0, "' '"), -(20949, 0, "'{'"), -(20950, 0, "' '"), -(21010, 0, "' '"), -(21011, 0, "'}'"), -(21013, 0, "'n '"), -(21030, 0, "'l'"), -(21031, 0, "'e'"), -(21032, 0, "'t'"), -(21033, 0, "' '"), -(21034, 0, "'n'"), -(21035, 0, "'o'"), -(21036, 0, "'r'"), -(21037, 0, "'m'"), -(21038, 0, "'a'"), -(21039, 0, "'l'"), -(21040, 0, "'_'"), -(21041, 0, "'i'"), -(21042, 0, "'t'"), -(21043, 0, "'e'"), -(21044, 0, "'r'"), -(21045, 0, "' '"), -(21046, 0, "'='"), -(21047, 0, "' '"), -(21048, 0, "'s'"), -(21049, 0, "'e'"), -(21050, 0, "'l'"), -(21051, 0, "'f'"), -(21052, 0, "'.'"), -(21053, 0, "'iter_at_userpos(target_userpos: usize)'"), -(21069, 21, "'n'"), -(21070, 0, "'u'"), -(21071, 0, "'m'"), -(21072, 0, "'u'"), -(21073, 0, "'s'"), -(21074, 0, "'e'"), -(21075, 0, "'r'"), -(21075, 1, "''"), -(21074, 1, "''"), -(21073, 1, "''"), -(21072, 1, "''"), -(21072, 0, "'_'"), -(21073, 0, "'u'"), -(21074, 0, "'s'"), -(21075, 0, "'e'"), -(21076, 0, "'r'"), -(21077, 0, "'c'"), -(21078, 0, "'o'"), -(21079, 0, "'u'"), -(21080, 0, "'n'"), -(21081, 0, "'t'"), -(21083, 0, "';'"), -(21084, 0, "'n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };'"), -(20910, 104, "''"), -(21084, 0, "'n '"), -(21101, 0, "'a'"), -(21102, 0, "'s'"), -(21103, 0, "'s'"), -(21101, 3, "'assert_eq!'"), -(21111, 0, "'('"), -(21112, 0, "'n'"), -(21113, 0, "'o'"), -(21114, 0, "'r'"), -(21115, 0, "'m'"), -(21116, 0, "'a'"), -(21117, 0, "'l'"), -(21118, 0, "'_'"), -(21119, 0, "'i'"), -(21120, 0, "'t'"), -(21121, 0, "'e'"), -(21122, 0, "'r'"), -(21123, 0, "','"), -(21124, 0, "' '"), -(21125, 0, "'n'"), -(21126, 0, "'o'"), -(21127, 0, "'d'"), -(21128, 0, "'e'"), -(21129, 0, "'_'"), -(21130, 0, "'i'"), -(21131, 0, "'t'"), -(21132, 0, "'e'"), -(21133, 0, "'r'"), -(21134, 0, "')'"), -(21135, 0, "';'"), -(20930, 0, "'('"), -(20942, 0, "','"), -(20943, 0, "' '"), -(20944, 0, "'_'"), -(20945, 0, "')'"), -(20944, 1, "''"), -(20944, 0, "'l'"), -(20945, 0, "'o'"), -(20946, 0, "'c'"), -(20947, 0, "'a'"), -(20948, 0, "'l'"), -(20949, 0, "'_'"), -(20950, 0, "'o'"), -(20951, 0, "'f'"), -(20952, 0, "'f'"), -(20953, 0, "'s'"), -(20954, 0, "'e'"), -(20955, 0, "'t'"), -(20996, 0, "'n '"), -(21013, 0, "'a'"), -(21014, 0, "'s'"), -(21013, 2, "'assert_eq!'"), -(21023, 0, "'('"), -(21024, 0, "'l'"), -(21025, 0, "'o'"), -(21026, 0, "'c'"), -(21027, 0, "'a'"), -(21028, 0, "'l'"), -(21029, 0, "'_'"), -(21030, 0, "'o'"), -(21031, 0, "'f'"), -(21032, 0, "'f'"), -(21033, 0, "'s'"), -(21034, 0, "'e'"), -(21035, 0, "'t'"), -(21036, 0, "','"), -(21037, 0, "' '"), -(21038, 0, "'n'"), -(21039, 0, "'.'"), -(21040, 0, "'g'"), -(21041, 0, "'e'"), -(21042, 0, "'t'"), -(21043, 0, "')'"), -(21044, 0, "'u'"), -(21044, 1, "''"), -(21043, 1, "''"), -(21043, 0, "'_'"), -(21044, 0, "'u'"), -(21045, 0, "'s'"), -(21046, 0, "'e'"), -(21047, 0, "'r'"), -(21048, 0, "'l'"), -(21049, 0, "'e'"), -(21040, 10, "'get_userlen'"), -(21051, 0, "'('"), -(21052, 0, "')'"), -(21053, 0, "')'"), -(21054, 0, "';'"), -(25816, 0, "'n // Reached the head.'"), -(25741, 33, "''"), -(25783, 0, "'n'"), -(25740, 1, "''"), -(25782, 0, "'n debug_assert!((*parent).height as usize > h);'"), -(25682, 58, "''"), -(25816, 0, "'n'"), -(25783, 1, "''"), -(25815, 0, "'n debug_assert!((*parent).height as usize > h);'"), -(25725, 58, "''"), -(25757, 0, "'n if parent.is_null() { break; }'"), -(25682, 43, "''"), -(25757, 0, "'n '"), -(25828, 1, "''"), -(25758, 12, "''"), -(25815, 1, "''"), -(25815, 0, "';'"), -(21038, 15, "'0'"), -(26024, 5, "''"), -(26023, 1, "''"), -(26023, 0, "'.'"), -(26024, 0, "'n'"), -(26025, 0, "'e'"), -(26026, 0, "'x'"), -(26027, 0, "'t'"), -(26028, 0, "'s'"), -(26029, 0, "'_'"), -(26030, 0, "'m'"), -(26031, 0, "'u'"), -(26032, 0, "'t'"), -(26033, 0, "'('"), -(26034, 0, "')'"), -(26029, 4, "''"), -(18167, 0, "'n '"), -(18172, 0, "'n '"), -(18168, 4, "''"), -(18173, 0, "'f'"), -(18174, 0, "'n'"), -(18175, 0, "' '"), -(18176, 0, "'i'"), -(18177, 0, "'s'"), -(18178, 0, "'_'"), -(18179, 0, "'h'"), -(18180, 0, "'e'"), -(18181, 0, "'a'"), -(18182, 0, "'d'"), -(18183, 0, "'('"), -(18184, 0, "'*'"), -(18184, 1, "''"), -(18184, 0, "'&'"), -(18185, 0, "'s'"), -(18186, 0, "'e'"), -(18187, 0, "'l'"), -(18188, 0, "'f'"), -(18189, 0, "','"), -(18190, 0, "' '"), -(18191, 0, "'&'"), -(18191, 1, "''"), -(18191, 0, "'*'"), -(18192, 0, "'m'"), -(18192, 1, "''"), -(18192, 0, "'m'"), -(18193, 0, "'u'"), -(18194, 0, "'t'"), -(18195, 0, "' '"), -(18196, 0, "'N'"), -(18197, 0, "'o'"), -(18198, 0, "'d'"), -(18199, 0, "'e'"), -(18200, 0, "'<'"), -(18201, 0, "'C'"), -(18202, 0, "'>'"), -(18203, 0, "')'"), -(18191, 0, "'n'"), -(18192, 0, "'o'"), -(18193, 0, "'d'"), -(18194, 0, "'e'"), -(18195, 0, "':'"), -(18196, 0, "' '"), -(18210, 0, "' '"), -(18211, 0, "'{'"), -(18212, 0, "'n '"), -(18221, 0, "'n '"), -(18213, 8, "''"), -(18214, 8, "' }'"), -(18213, 0, "'is_head = n as *const _ == &self.head as *const _'"), -(18213, 0, "' '"), -(18221, 10, "''"), -(18221, 1, "'n'"), -(18222, 0, "'o'"), -(18223, 0, "'d'"), -(18224, 0, "'e'"), -(18210, 0, "' '"), -(18211, 0, "'-'"), -(18212, 0, "'>'"), -(18213, 0, "' '"), -(18214, 0, "'b'"), -(18215, 0, "'o'"), -(18216, 0, "'o'"), -(18217, 0, "'l'"), -(19538, 0, "'s'"), -(19539, 0, "'e'"), -(19540, 0, "'l'"), -(19541, 0, "'f'"), -(19542, 0, "'.'"), -(19550, 0, "'('"), -(19551, 0, "'n'"), -(19552, 0, "')'"), -(19550, 3, "''"), -(19538, 5, "''"), -(18213, 5, "''"), -(18213, 0, "' bool'"), -(19538, 0, "'self.'"), -(19538, 5, "''"), -(19447, 71, "''"), -(19467, 0, "'s'"), -(19468, 0, "'e'"), -(19469, 0, "'l'"), -(19470, 0, "'f'"), -(19471, 0, "'.'"), -(19479, 0, "'('"), -(19480, 0, "'n'"), -(19481, 0, "')'"), -(18198, 3, "'c'"), -(18199, 0, "'o'"), -(18200, 0, "'n'"), -(18201, 0, "'s'"), -(18202, 0, "'t'"), -(19888, 0, "'s'"), -(19889, 0, "'e'"), -(19890, 0, "'l'"), -(19891, 0, "'f'"), -(19892, 0, "'.'"), -(19900, 0, "'('"), -(19901, 0, "'n'"), -(19902, 0, "')'"), -(25828, 0, "' '"), -(25828, 0, "'p'"), -(25828, 1, "''"), -(25828, 0, "'s'"), -(25829, 0, "'e'"), -(25830, 0, "'l'"), -(25831, 0, "'f'"), -(25832, 0, "'.'"), -(25833, 0, "'i'"), -(25834, 0, "'s'"), -(25835, 0, "'_'"), -(25836, 0, "'h'"), -(25833, 4, "'is_head(node: *const Node)'"), -(25861, 0, "')'"), -(25841, 0, "'('"), -(25842, 20, "'p'"), -(25843, 0, "'a'"), -(25844, 0, "'r'"), -(25845, 0, "'e'"), -(25846, 0, "'n'"), -(25847, 0, "'t'"), -(25847, 1, "''"), -(25847, 1, "''"), -(25846, 1, "''"), -(25841, 5, "'p'"), -(25842, 0, "'a'"), -(25843, 0, "'r'"), -(25844, 0, "'e'"), -(25845, 0, "'n'"), -(25846, 0, "'t'"), -(25848, 0, "' '"), -(25849, 0, "'|'"), -(25850, 0, "'|'"), -(25801, 0, "'n '"), -(25814, 0, "'/'"), -(25815, 0, "'/'"), -(25816, 0, "' '"), -(25817, 0, "'I'"), -(25818, 0, "'f'"), -(25819, 0, "' '"), -(25820, 0, "'w'"), -(25821, 0, "'e'"), -(25822, 0, "'''"), -(25823, 0, "'r'"), -(25824, 0, "'e'"), -(25825, 0, "' '"), -(25826, 0, "'t'"), -(25827, 0, "'h'"), -(25828, 0, "'e'"), -(25829, 0, "' '"), -(25830, 0, "'s'"), -(25831, 0, "'a'"), -(25832, 0, "'m'"), -(25833, 0, "'e'"), -(25834, 0, "' '"), -(25835, 0, "'h'"), -(25836, 0, "'i'"), -(25837, 0, "'e'"), -(25837, 1, "''"), -(25836, 1, "''"), -(25835, 1, "''"), -(25835, 0, "'h'"), -(25836, 0, "'e'"), -(25837, 0, "'i'"), -(25838, 0, "'g'"), -(25839, 0, "'h'"), -(25840, 0, "'t'"), -(25868, 24, "''"), -(25897, 0, "'n '"), -(25906, 0, "'|'"), -(25907, 0, "'|'"), -(25908, 0, "' '"), -(25906, 0, "' '"), -(25910, 0, "' '"), -(25917, 0, "'self.is_head(parent) || '"), -(25940, 1, "''"), -(25939, 1, "''"), -(25938, 1, "''"), -(25917, 0, "'('"), -(25940, 0, "')'"), -(25939, 0, "'&'"), -(25940, 0, "'&'"), -(25941, 0, "' '"), -(25942, 0, "'(*parent).height as usize > h'"), -(25968, 1, "''"), -(25968, 0, "'='"), -(25969, 0, "'='"), -(25841, 0, "' '"), -(25842, 0, "'a'"), -(25843, 0, "'s'"), -(25844, 0, "' '"), -(25845, 0, "'t'"), -(25846, 0, "'h'"), -(25847, 0, "'e'"), -(25848, 0, "' '"), -(25849, 0, "'p'"), -(25850, 0, "'a'"), -(25851, 0, "'r'"), -(25852, 0, "'e'"), -(25853, 0, "'n'"), -(25854, 0, "'t'"), -(25855, 0, "','"), -(25856, 0, "' '"), -(25817, 4, "'W'"), -(25822, 0, "' '"), -(25823, 0, "'e'"), -(25824, 0, "'i'"), -(25825, 0, "'t'"), -(25826, 0, "'h'"), -(25827, 0, "'e'"), -(25828, 0, "'r'"), -(25817, 44, "'I'"), -(25818, 0, "'f'"), -(25819, 0, "' '"), -(25820, 0, "'w'"), -(25821, 0, "'e'"), -(25822, 0, "'''"), -(25823, 0, "'r'"), -(25824, 0, "'e'"), -(25825, 0, "' '"), -(25826, 0, "'t'"), -(25827, 0, "'h'"), -(25828, 0, "'e'"), -(25829, 0, "' '"), -(25830, 0, "'s'"), -(25831, 0, "'a'"), -(25832, 0, "'m'"), -(25833, 0, "'e'"), -(25834, 0, "' '"), -(25835, 0, "'h'"), -(25836, 0, "'e'"), -(25837, 0, "'i'"), -(25838, 0, "'g'"), -(25839, 0, "'h'"), -(25840, 0, "'t'"), -(25841, 0, "' '"), -(25842, 0, "'a'"), -(25843, 0, "'s'"), -(25844, 0, "' '"), -(25845, 0, "'t'"), -(25846, 0, "'h'"), -(25847, 0, "'e'"), -(25848, 0, "' '"), -(25849, 0, "'p'"), -(25850, 0, "'a'"), -(25851, 0, "'r'"), -(25852, 0, "'e'"), -(25853, 0, "'n'"), -(25854, 0, "'t'"), -(25855, 0, "' '"), -(25856, 0, "'i'"), -(25857, 0, "'t'"), -(25858, 0, "' '"), -(25859, 0, "'s'"), -(25859, 1, "''"), -(25858, 1, "''"), -(25858, 0, "'s'"), -(25859, 0, "' '"), -(25860, 0, "'i'"), -(25861, 0, "'f'"), -(25862, 0, "'n'"), -(25863, 0, "'e'"), -(25864, 0, "'.'"), -(25859, 6, "' '"), -(25860, 0, "'f'"), -(25861, 0, "'i'"), -(25862, 0, "'n'"), -(25863, 0, "'e'"), -(25864, 0, "'.'"), -(21098, 0, "'n '"), -(21115, 0, "'/'"), -(21116, 0, "'/'"), -(21117, 0, "' '"), -(21118, 0, "'D'"), -(21119, 0, "'i'"), -(21120, 0, "'r'"), -(21121, 0, "'e'"), -(21122, 0, "'t'"), -(21122, 1, "''"), -(21121, 1, "''"), -(21121, 0, "'t'"), -(21122, 0, "'y'"), -(21123, 0, "' '"), -(21124, 0, "'h'"), -(21125, 0, "'a'"), -(21126, 0, "'c'"), -(21127, 0, "'k'"), -(21128, 0, "'.'"), -(21129, 0, "' '"), -(21130, 0, "'I'"), -(21131, 0, "'f'"), -(21132, 0, "' '"), -(21133, 0, "'a'"), -(21134, 0, "' '"), -(21135, 0, "'n'"), -(21136, 0, "'o'"), -(21130, 7, "'T'"), -(21131, 0, "'h'"), -(21132, 0, "'e'"), -(21133, 0, "' '"), -(21133, 1, "''"), -(21132, 1, "''"), -(21131, 1, "''"), -(21130, 1, "''"), -(21130, 0, "'I'"), -(21131, 0, "'f'"), -(21132, 0, "' '"), -(21133, 0, "'n'"), -(21134, 0, "' '"), -(21135, 0, "'h'"), -(21136, 0, "'a'"), -(21137, 0, "'s'"), -(21138, 0, "' '"), -(21139, 0, "'0'"), -(21140, 0, "'-'"), -(21141, 0, "'s'"), -(21142, 0, "'i'"), -(21143, 0, "'z'"), -(21144, 0, "'e'"), -(21145, 0, "'d'"), -(21146, 0, "' '"), -(21147, 0, "'e'"), -(21148, 0, "'l'"), -(21149, 0, "'e'"), -(21150, 0, "'m'"), -(21151, 0, "'e'"), -(21152, 0, "'n'"), -(21153, 0, "'t'"), -(21154, 0, "'s'"), -(21155, 0, "' '"), -(21156, 0, "'a'"), -(21157, 0, "'t'"), -(21158, 0, "' '"), -(21159, 0, "'t'"), -(21160, 0, "'h'"), -(21161, 0, "'e'"), -(21162, 0, "' '"), -(21163, 0, "'e'"), -(21164, 0, "'n'"), -(21165, 0, "'d'"), -(21166, 0, "','"), -(21167, 0, "' '"), -(21168, 0, "'t'"), -(21169, 0, "'h'"), -(21170, 0, "'e'"), -(21171, 0, "' '"), -(21172, 0, "'c'"), -(21173, 0, "'u'"), -(21174, 0, "'r'"), -(21175, 0, "'s'"), -(21176, 0, "'o'"), -(21177, 0, "'r'"), -(21172, 6, "'n'"), -(21173, 0, "'o'"), -(21174, 0, "'r'"), -(21175, 0, "'m'"), -(21176, 0, "'a'"), -(21177, 0, "'l'"), -(21178, 0, "' '"), -(21179, 0, "'c'"), -(21180, 0, "'u'"), -(21181, 0, "'r'"), -(21182, 0, "'s'"), -(21183, 0, "'o'"), -(21184, 0, "' '"), -(21184, 1, "''"), -(21184, 0, "'r'"), -(21185, 0, "' '"), -(21186, 0, "'w'"), -(21187, 0, "'o'"), -(21188, 0, "'n'"), -(21189, 0, "'''"), -(21190, 0, "'t'"), -(21191, 0, "' '"), -(21192, 0, "'b'"), -(21193, 0, "'e'"), -(21194, 0, "' '"), -(21195, 0, "'a'"), -(21196, 0, "'t'"), -(21197, 0, "' '"), -(21198, 0, "'t'"), -(21199, 0, "'h'"), -(21200, 0, "'e'"), -(21201, 0, "' '"), -(21202, 0, "'e'"), -(21203, 0, "'n'"), -(21204, 0, "'d'"), -(21205, 0, "'.'"), -(21206, 0, "'.'"), -(21207, 0, "'.'"), -(21099, 109, "' // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...'"), -(21227, 0, "'n '"), -(21244, 0, "'n'"), -(21245, 0, "'o'"), -(21246, 0, "'r'"), -(21247, 0, "'m'"), -(21244, 4, "'normal_iter'"), -(21255, 0, "'.'"), -(21256, 0, "'l'"), -(21257, 0, "'o'"), -(21258, 0, "'c'"), -(21259, 0, "'a'"), -(21256, 4, "'local_index'"), -(21267, 0, "' '"), -(21268, 0, "'='"), -(21269, 0, "' '"), -(21270, 0, "'n'"), -(21271, 0, "'o'"), -(21272, 0, "'r'"), -(21273, 0, "'m'"), -(21274, 0, "'a'"), -(21270, 5, "'normal_iter'"), -(21270, 11, "''"), -(21270, 0, "'n'"), -(21271, 0, "'.'"), -(21272, 0, "'n'"), -(21273, 0, "'u'"), -(21274, 0, "'m'"), -(21275, 0, "'_'"), -(21272, 4, "'num_items'"), -(21281, 0, "' '"), -(21281, 1, "''"), -(21281, 0, "' '"), -(21282, 0, "'a'"), -(21283, 0, "'s'"), -(21284, 0, "' '"), -(21285, 0, "'u'"), -(21286, 0, "'s'"), -(21287, 0, "'i'"), -(21288, 0, "'z'"), -(21289, 0, "'e'"), -(21290, 0, "';'"), -(20988, 0, "'m'"), -(20989, 0, "'u'"), -(20990, 0, "'t'"), -(20991, 0, "' '"), -(21295, 0, "'n '"), -(21312, 0, "'w'"), -(21313, 0, "'h'"), -(21314, 0, "'i'"), -(21315, 0, "'l'"), -(21316, 0, "'e'"), -(21317, 0, "' '"), -(21318, 0, "'('"), -(21318, 1, "''"), -(21318, 0, "'n'"), -(21319, 0, "'o'"), -(21320, 0, "'r'"), -(21321, 0, "'m'"), -(21322, 0, "'a'"), -(21318, 5, "'normal_iter'"), -(21329, 0, "'.'"), -(21330, 0, "'here_ptr()'"), -(21340, 0, "'.'"), -(21341, 0, "'g'"), -(21342, 0, "'e'"), -(21343, 0, "'t'"), -(21344, 0, "'_'"), -(21345, 0, "'u'"), -(21341, 5, "'get_userlen'"), -(21352, 0, "'('"), -(21353, 0, "')'"), -(21354, 0, "' '"), -(21340, 15, "''"), -(21340, 0, "' '"), -(21341, 0, "'!'"), -(21342, 0, "'='"), -(21343, 0, "' '"), -(21344, 0, "'n'"), -(21345, 0, "' '"), -(21346, 0, "'{'"), -(21347, 0, "'n '"), -(21368, 0, "'n'"), -(21369, 0, "'o'"), -(21370, 0, "'r'"), -(21371, 0, "'m'"), -(21372, 0, "'a'"), -(21373, 0, "'l'"), -(21368, 6, "'normal_iter'"), -(21379, 0, "'.'"), -(21380, 0, "'a'"), -(21381, 0, "'d'"), -(21382, 0, "'v'"), -(21383, 0, "'a'"), -(21384, 0, "'n'"), -(21380, 5, "'advance_node'"), -(21392, 0, "'('"), -(21393, 0, "')'"), -(21394, 0, "';'"), -(21395, 0, "'n '"), -(21396, 20, "' }'"), -(21295, 52, "''"), -(21232, 16, "' '"), -(21232, 0, "' while normal_iter.here_ptr() != n {n'"), -(21351, 48, "''"), -(21284, 0, "' normal_iter.advance_node();n'"), -(21399, 18, "''"), -(21332, 20, "' '"), -(21332, 0, "' }n'"), -(21281, 0, "' '"), -(21282, 0, "'a'"), -(21283, 0, "'s'"), -(21284, 0, "' '"), -(21285, 0, "'*'"), -(21286, 0, "'c'"), -(21287, 0, "'o'"), -(21288, 0, "'n'"), -(21289, 0, "'s'"), -(21290, 0, "'t'"), -(21291, 0, "' '"), -(21292, 0, "'_'"), -(21293, 0, "' '"), -(21294, 0, "'a'"), -(21295, 0, "'s'"), -(21296, 0, "' '"), -(21297, 0, "'*'"), -(21298, 0, "'m'"), -(21299, 0, "'u'"), -(21300, 0, "'t'"), -(21301, 0, "' '"), -(21302, 0, "'_'"), -(21102, 0, "'n '"), -(31268, 0, "'n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {'"), -(21103, 16, "''"), -(31169, 0, "'// '"), -(31284, 0, "'F'"), -(31285, 0, "'>'"), -(31285, 1, "''"), -(31284, 1, "''"), -(31284, 0, "'<'"), -(31285, 0, "'F'"), -(31286, 0, "'>'"), -(31285, 1, "''"), -(31285, 0, "'N'"), -(31286, 0, "'o'"), -(31286, 1, "''"), -(31286, 0, "'o'"), -(31287, 0, "'t'"), -(31288, 0, "'i'"), -(31289, 0, "'f'"), -(31290, 0, "'y'"), -(31348, 0, "','"), -(31349, 0, "' '"), -(31350, 0, "'n'"), -(31351, 0, "'o'"), -(31352, 0, "'t'"), -(31353, 0, "'i'"), -(31354, 0, "'f'"), -(31355, 0, "'y'"), -(31356, 0, "':'"), -(31357, 0, "' '"), -(31358, 0, "'N'"), -(31359, 0, "'o'"), -(31360, 0, "'t'"), -(31361, 0, "'i'"), -(31362, 0, "'f'"), -(31363, 0, "'y'"), -(31365, 0, "'n '"), -(31370, 1, "''"), -(31370, 0, "' '"), -(31374, 0, "'w'"), -(31375, 0, "'h'"), -(31376, 0, "'e'"), -(31377, 0, "'r'"), -(31378, 0, "'e'"), -(31379, 0, "' '"), -(31380, 0, "'n'"), -(31381, 0, "'o'"), -(31382, 0, "'t'"), -(31383, 0, "'i'"), -(31384, 0, "'f'"), -(31385, 0, "'y'"), -(31386, 0, "':'"), -(31387, 0, "' '"), -(31379, 9, "' '"), -(31380, 0, "'N'"), -(31381, 0, "'o'"), -(31382, 0, "'t'"), -(31383, 0, "'i'"), -(31384, 0, "'f'"), -(31385, 0, "'y'"), -(31386, 0, "':'"), -(31387, 0, "' '"), -(31388, 0, "'F'"), -(31389, 0, "'n'"), -(31390, 0, "'M'"), -(31391, 0, "'u'"), -(31392, 0, "'t'"), -(31393, 0, "'('"), -(31394, 0, "')'"), -(31395, 0, "' '"), -(31164, 0, "'n '"), -(31169, 0, "'/'"), -(31170, 0, "'/'"), -(31171, 0, "'fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker)'"), -(31474, 0, "'i'"), -(31475, 0, "'t'"), -(31476, 0, "'e'"), -(31477, 0, "'m'"), -(31478, 0, "'s'"), -(31479, 0, "':'"), -(31480, 0, "' '"), -(31481, 0, "'&'"), -(31482, 0, "'['"), -(31483, 0, "'S'"), -(31484, 0, "'e'"), -(31485, 0, "'l'"), -(31486, 0, "'f'"), -(31487, 0, "':'"), -(31488, 0, "':'"), -(31489, 0, "'I'"), -(31490, 0, "'t'"), -(31491, 0, "'e'"), -(31492, 0, "'m'"), -(31493, 0, "']'"), -(31474, 7, "''"), -(31476, 0, "'c'"), -(31477, 0, "':'"), -(31478, 0, "':'"), -(31478, 1, "''"), -(31477, 1, "''"), -(31476, 1, "''"), -(31476, 4, "'C'"), -(31454, 0, "' '"), -(31488, 0, "','"), -(31489, 0, "' '"), -(31490, 0, "'ItemMarker'"), -(31501, 4, "'C'"), -(31163, 0, "'n '"), -(31168, 0, "'n '"), -(31164, 4, "''"), -(31169, 0, "'f'"), -(31170, 0, "'n'"), -(31171, 0, "' '"), -(31172, 0, "'n'"), -(31173, 0, "'o'"), -(31174, 0, "'_'"), -(31175, 0, "'n'"), -(31176, 0, "'o'"), -(31177, 0, "'t'"), -(31178, 0, "'i'"), -(31179, 0, "'f'"), -(31180, 0, "'y'"), -(31181, 0, "'('"), -(31181, 1, "''"), -(31181, 0, "'(&[C::Item], ItemMarker)'"), -(31208, 0, "' '"), -(31209, 0, "'{'"), -(31210, 0, "'}'"), -(31182, 0, "'_'"), -(31183, 0, "'i'"), -(31184, 0, "'t'"), -(31185, 0, "'e'"), -(31186, 0, "'m'"), -(31187, 0, "'s'"), -(31188, 0, "','"), -(31189, 0, "' '"), -(31188, 1, "''"), -(31188, 0, "':'"), -(31202, 0, "'m'"), -(31203, 0, "'a'"), -(31204, 0, "'r'"), -(31205, 0, "'k'"), -(31206, 0, "'e'"), -(31207, 0, "'r'"), -(31208, 0, "':'"), -(31209, 0, "' '"), -(31202, 0, "'_'"), -(37128, 0, "'n '"), -(37133, 0, "'n '"), -(37129, 4, "''"), -(37134, 0, "'unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], notify: Notify)'"), -(37222, 16, "''"), -(37158, 8, "''"), -(31415, 0, "'n'"), -(31416, 0, "'o'"), -(31417, 0, "'t'"), -(31418, 0, "'i'"), -(31415, 4, "''"), -(31429, 0, "'_'"), -(31430, 0, "'a'"), -(31431, 0, "'n'"), -(31432, 0, "'d'"), -(31433, 0, "'_'"), -(31434, 0, "'n'"), -(31435, 0, "'o'"), -(31436, 0, "'t'"), -(31437, 0, "'i'"), -(31438, 0, "'f'"), -(31439, 0, "'y'"), -(37226, 0, "' '"), -(37227, 0, "'{'"), -(37228, 0, "'n '"), -(37237, 0, "'n '"), -(37229, 8, "''"), -(37230, 8, "' }'"), -(37229, 0, "' '"), -(37237, 0, "'i'"), -(37238, 0, "'n'"), -(37239, 0, "'s'"), -(37240, 0, "'e'"), -(37241, 0, "'r'"), -(37242, 0, "'t'"), -(37243, 0, "'_'"), -(37244, 0, "'a'"), -(37237, 8, "'insert_at_iter_and_notify'"), -(37262, 0, "'('"), -(37263, 0, "'s'"), -(37264, 0, "'e'"), -(37265, 0, "'l'"), -(37266, 0, "'f'"), -(37267, 0, "','"), -(37268, 0, "' '"), -(37269, 0, "'c'"), -(37270, 0, "'u'"), -(37271, 0, "'r'"), -(37272, 0, "'s'"), -(37273, 0, "'o'"), -(37274, 0, "'r'"), -(37275, 0, "','"), -(37276, 0, "' '"), -(37277, 0, "'c'"), -(37278, 0, "'o'"), -(37279, 0, "'n'"), -(37280, 0, "'t'"), -(37281, 0, "'e'"), -(37282, 0, "'n'"), -(37283, 0, "'t'"), -(37284, 0, "'s'"), -(37285, 0, "','"), -(37286, 0, "' '"), -(37287, 0, "'n'"), -(37288, 0, "'o'"), -(37287, 2, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(37297, 18, "')'"), -(37297, 26, "''"), -(37296, 1, "''"), -(37296, 0, "')'"), -(37297, 0, "';'"), -(37297, 1, "''"), -(37237, 0, "'S'"), -(37238, 0, "'e'"), -(37239, 0, "'F'"), -(37239, 1, "''"), -(37239, 0, "'l'"), -(37240, 0, "'f'"), -(37241, 0, "':'"), -(37242, 0, "':'"), -(37237, 6, "''"), -(37237, 25, "''"), -(37237, 1, "''"), -(37241, 0, "'.'"), -(37242, 0, "'insert_at_iter_and_notify'"), -(37267, 0, "'('"), -(37268, 1, "''"), -(37268, 1, "''"), -(37296, 0, "';'"), -(37296, 1, "''"), -(37286, 0, "'s'"), -(37287, 0, "'e'"), -(37288, 0, "'l'"), -(37289, 0, "'f'"), -(37290, 0, "':'"), -(37291, 0, "':'"), -(37286, 1, "''"), -(37286, 0, "'S'"), -(37190, 4, "''"), -(37190, 0, "'mut '"), -(34363, 0, "'n '"), -(34376, 0, "'n '"), -(34364, 12, "''"), -(34377, 0, "'/'"), -(34378, 0, "'/'"), -(34379, 0, "' '"), -(34380, 0, "'N'"), -(34381, 0, "'o'"), -(34382, 0, "'t'"), -(34383, 0, "'i'"), -(34384, 0, "'f'"), -(34385, 0, "'y'"), -(34386, 0, "'n '"), -(34399, 0, "'n'"), -(34400, 0, "'o'"), -(34401, 0, "'t'"), -(34402, 0, "'i'"), -(34403, 0, "'f'"), -(34399, 5, "'notify'"), -(34405, 0, "'('"), -(34405, 1, "''"), -(34399, 0, "'// '"), -(34399, 3, "''"), -(34405, 0, "'('"), -(34406, 0, "'c'"), -(34407, 0, "'o'"), -(34408, 0, "'n'"), -(34409, 0, "'t'"), -(34410, 0, "'e'"), -(34411, 0, "'n'"), -(34412, 0, "'t'"), -(34413, 0, "'s'"), -(34414, 0, "','"), -(34415, 0, "' '"), -(34416, 0, "'M'"), -(34417, 0, "'a'"), -(34418, 0, "'r'"), -(34416, 3, "''"), -(34416, 0, "'I'"), -(34417, 0, "'t'"), -(34418, 0, "'e'"), -(34419, 0, "'m'"), -(34416, 4, "'ItemMarker'"), -(34426, 0, "' '"), -(34427, 0, "'{'"), -(34428, 0, "'n '"), -(34445, 0, "'n '"), -(34429, 16, "''"), -(34430, 16, "' }'"), -(34443, 0, "')'"), -(34429, 0, "' '"), -(34445, 0, "'p'"), -(34446, 0, "'t'"), -(34447, 0, "'r'"), -(34448, 0, "':'"), -(34449, 0, "' '"), -(34450, 0, "'e'"), -(34451, 0, "','"), -(34452, 0, "'n '"), -(34469, 0, "'P'"), -(34470, 0, "'h'"), -(34471, 0, "'a'"), -(34469, 3, "'PhantomData'"), -(34469, 11, "''"), -(34469, 0, "'_'"), -(34469, 1, "'_phanton'"), -(34477, 0, "':'"), -(34478, 0, "' '"), -(34479, 0, "'PhantomData'"), -(34476, 1, "'m'"), -(1776, 1, "'m'"), -(34505, 0, "';'"), -(31506, 0, "'m'"), -(31507, 0, "'u'"), -(31508, 0, "'t'"), -(31509, 0, "' '"), -(34369, 21, "''"), -(34368, 1, "''"), -(31163, 0, "'n '"), -(31168, 0, "'n '"), -(31164, 4, "''"), -(31169, 0, "'unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {'"), -(31192, 1, "''"), -(31191, 1, "''"), -(31191, 0, "'_'"), -(31191, 1, "''"), -(31191, 0, "'a'"), -(31192, 0, "'n'"), -(31193, 0, "'d'"), -(31194, 0, "'_'"), -(31195, 0, "'n'"), -(31196, 0, "'o'"), -(31197, 0, "'t'"), -(31198, 0, "'i'"), -(31199, 0, "'f'"), -(31200, 0, "'y'"), -(31201, 0, "'<'"), -(31202, 0, "'N'"), -(31203, 0, "'o'"), -(31204, 0, "'t'"), -(31205, 0, "'i'"), -(31206, 0, "'f'"), -(31207, 0, "'y'"), -(31208, 0, "'>'"), -(31305, 0, "','"), -(31306, 0, "' '"), -(31307, 0, "', mut notify: Notify'"), -(31308, 1, "''"), -(31307, 1, "''"), -(31327, 0, "'n '"), -(31336, 0, "'n '"), -(31328, 8, "''"), -(31329, 8, "' }'"), -(31326, 1, "''"), -(31325, 1, "''"), -(31325, 0, "')'"), -(31304, 1, "''"), -(31325, 0, "'n '"), -(31330, 0, "'where Notify: FnMut(&[C::Item], ItemMarker) {'"), -(31330, 0, "' '"), -(31383, 0, "'n '"), -(31392, 4, "''"), -(31392, 0, "'s'"), -(31393, 0, "'e'"), -(31394, 0, "'l'"), -(31395, 0, "'f'"), -(31396, 0, "'.'"), -(31397, 0, "'i'"), -(31398, 0, "'n'"), -(31399, 0, "'s'"), -(31400, 0, "'e'"), -(31401, 0, "'r'"), -(31402, 0, "'t'"), -(31397, 6, "'insert_node_at(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool)'"), -(31412, 22, "'c'"), -(31413, 0, "'u'"), -(31414, 0, "'r'"), -(31415, 0, "'s'"), -(31416, 0, "'o'"), -(31417, 0, "'r'"), -(31420, 20, "'c'"), -(31421, 0, "'o'"), -(31422, 0, "'n'"), -(31423, 0, "'t'"), -(31424, 0, "'e'"), -(31425, 0, "'n'"), -(31426, 0, "'t'"), -(31427, 0, "'s'"), -(31430, 18, "'n'"), -(31431, 0, "'e'"), -(31432, 0, "'w'"), -(31433, 0, "'_'"), -(31434, 0, "'u'"), -(31435, 0, "'s'"), -(31436, 0, "'e'"), -(31437, 0, "'r'"), -(31438, 0, "'l'"), -(31439, 0, "'e'"), -(31440, 0, "'n'"), -(31443, 17, "'m'"), -(31444, 0, "'o'"), -(31445, 0, "'v'"), -(31446, 0, "'e'"), -(31447, 0, "'_'"), -(31448, 0, "'c'"), -(31449, 0, "'u'"), -(31450, 0, "'r'"), -(31451, 0, "'s'"), -(31452, 0, "'o'"), -(31453, 0, "'r'"), -(31455, 0, "';'"), -(31383, 80, "''"), -(31165, 218, "''"), -(31164, 1, "''"), -(27886, 0, "' unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n'"), -(27890, 0, "'// '"), -(28016, 126, "' unsafe fn insert_node_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n'"), -(28016, 4, "' '"), -(28016, 8, "' '"), -(28177, 0, "' '"), -(31383, 0, "'n '"), -(31392, 0, "'n '"), -(31384, 8, "''"), -(31393, 0, "'n'"), -(31394, 0, "'o'"), -(31395, 0, "'t'"), -(31396, 0, "'i'"), -(31397, 0, "'f'"), -(31398, 0, "'y'"), -(31399, 0, "'('"), -(31400, 0, "'c'"), -(31401, 0, "'o'"), -(31402, 0, "'n'"), -(31403, 0, "'t'"), -(31404, 0, "'e'"), -(31405, 0, "'n'"), -(31406, 0, "'t'"), -(31407, 0, "'s'"), -(31408, 0, "','"), -(31409, 0, "' '"), -(31410, 0, "'M'"), -(31410, 1, "''"), -(31410, 0, "'I'"), -(31411, 0, "'t'"), -(31412, 0, "'e'"), -(31413, 0, "'m'"), -(31410, 4, "'ItemMarker'"), -(31420, 0, "' '"), -(31421, 0, "'{'"), -(31422, 0, "'n '"), -(31435, 0, "'n '"), -(31423, 12, "''"), -(31424, 12, "' }'"), -(31433, 0, "')'"), -(31423, 0, "' '"), -(31435, 0, "'p'"), -(31436, 0, "'t'"), -(31437, 0, "'r'"), -(31438, 0, "':'"), -(31439, 0, "' '"), -(31440, 0, "'n'"), -(31441, 0, "'e'"), -(31442, 0, "'w'"), -(31443, 0, "'_'"), -(31444, 0, "'n'"), -(31445, 0, "'o'"), -(31440, 6, "'new_node'"), -(31448, 0, "'_'"), -(31449, 0, "'p'"), -(31450, 0, "'t'"), -(31451, 0, "'r'"), -(31452, 0, "','"), -(31453, 0, "'n '"), -(31466, 0, "'_'"), -(31467, 0, "'p'"), -(31468, 0, "'h'"), -(31466, 3, "'_phantom'"), -(31474, 0, "':'"), -(31475, 0, "' '"), -(31476, 0, "'P'"), -(31477, 0, "'h'"), -(31476, 2, "'PhantomData'"), -(31498, 0, "';'"), -(31505, 65, "''"), -(36968, 1, "''"), -(36967, 1, "''"), -(36955, 12, "'insert_node_and_notify(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)'"), -(36977, 105, "''"), -(37006, 0, "','"), -(37007, 0, "' '"), -(37008, 0, "'n'"), -(37009, 0, "'o'"), -(37010, 0, "'t'"), -(37011, 0, "'i'"), -(37012, 0, "'f'"), -(37013, 0, "'y'"), -(37525, 0, "','"), -(37526, 0, "' '"), -(37527, 0, "'n'"), -(37528, 0, "'o'"), -(37529, 0, "'t'"), -(37530, 0, "'i'"), -(37531, 0, "'f'"), -(37532, 0, "'y'"), -(37484, 1, "''"), -(37483, 1, "''"), -(37483, 0, "'a'"), -(37484, 0, "'n'"), -(37485, 0, "'d'"), -(37486, 0, "'_'"), -(37487, 0, "'n'"), -(37488, 0, "'o'"), -(37489, 0, "'t'"), -(37490, 0, "'i'"), -(37491, 0, "'f'"), -(37492, 0, "'y'"), -(37736, 0, "';'"), -(37736, 1, "''"), -(37483, 10, "''"), -(37483, 0, "'at'"), -(37526, 7, "''"), -(37525, 1, "''"), -(37007, 7, "''"), -(37006, 1, "''"), -(36977, 0, "'(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)'"), -(36955, 127, "'insert_node_'"), -(36967, 0, "'at'"), -(31505, 0, "'nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}'"), -(31498, 1, "''"), -(31476, 11, "'Ph'"), -(31476, 2, "'PhantomData'"), -(31498, 0, "';'"), -(31505, 65, "''"), -(36967, 2, "''"), -(36955, 12, "'insert_node_and_notify(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)'"), -(36977, 105, "''"), -(37006, 0, "','"), -(37007, 0, "' notify'"), -(37525, 0, "','"), -(37526, 0, "' notify'"), -(37483, 2, "''"), -(37483, 0, "'and_notify'"), -(37736, 0, "';'"), -(37574, 0, "'n '"), -(37579, 0, "'nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}'"), -(37575, 4, "''"), -(37575, 1, "''"), -(37574, 1, "''"), -(37806, 0, "'// '"), -(37731, 0, "'// '"), -(37643, 0, "'// '"), -(37490, 3, "''"), -(37484, 5, "''"), -(36974, 3, "''"), -(36968, 5, "''"), -(28049, 3, "''"), -(28043, 5, "''"), -(2704, 3, "''"), -(2603, 3, "''"), -(31702, 1, "''"), -(31701, 1, "''"), -(31700, 1, "''"), -(31699, 1, "''"), -(31698, 1, "''"), -(31697, 1, "''"), -(31696, 1, "''"), -(31695, 1, "''"), -(31694, 1, "''"), -(31693, 1, "''"), -(31692, 1, "''"), -(31778, 59, "''"), -(31777, 1, "''"), -(31777, 0, "'n'"), -(31778, 0, "' where Notify: FnMut(&[C::Item], ItemMarker) '"), -(31692, 0, "'_and_notify'"), -(31703, 125, "'_'"), -(31703, 1, "'(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n where Notify: FnMut(&[C::It'"), -(31793, 0, "'// '"), -(31668, 0, "'// '"), -(31577, 3, "''"), -(31660, 128, "''"), -(31573, 4, "' '"), -(31573, 0, "' // unsafe fn insert_at_iter_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n'"), -(31792, 64, "''"), -(31701, 8, "' '"), -(31701, 0, "' // where Notify: FnMut(&[C::Item], ItemMarker) {n'"), -(31765, 12, "' '"), -(31765, 8, "' '"), -(28014, 0, "'// '"), -(27884, 3, "''"), -(28006, 156, "''"), -(27880, 4, "' '"), -(27880, 0, "' // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)n'"), -(28036, 8, "' '"), -(28175, 0, "'// '"), -(28226, 0, "'n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {'"), -(28163, 12, "' '"), -(28036, 127, "''"), -(31374, 0, "'c'"), -(31375, 0, "':'"), -(31375, 1, "''"), -(31374, 1, "''"), -(31374, 0, "'C'"), -(31375, 0, "':'"), -(31376, 0, "':'"), -(31384, 0, "'s'"), -(31385, 0, "'e'"), -(31386, 0, "'.'"), -(31387, 0, "'f'"), -(31387, 1, "''"), -(31386, 1, "''"), -(31386, 0, "'l'"), -(31387, 0, "'f'"), -(31388, 0, "'.'"), -(31389, 0, "'c'"), -(31390, 0, "'o'"), -(31391, 0, "'n'"), -(31392, 0, "'f'"), -(31393, 0, "'i'"), -(31394, 0, "'g'"), -(31395, 0, "','"), -(31396, 0, "' '"), -(31384, 0, "'&'"), -(31385, 0, "'m'"), -(31386, 0, "'u'"), -(31387, 0, "'t'"), -(31388, 0, "' '"), -(31388, 1, "''"), -(31384, 4, "''"), -(31396, 1, "''"), -(31386, 10, "''"), -(31386, 0, "'.f'"), -(31384, 4, "''"), -(31374, 3, "''"), -(31374, 0, "'c:'"), -(31374, 2, "''"), -(28091, 127, "''"), -(28036, 4, "' '"), -(28036, 0, "' unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n'"), -(28175, 3, "''"), -(28036, 4, "' '"), -(28166, 0, "'n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)'"), -(28036, 8, "' '"), -(27880, 156, "''"), -(27884, 0, "'// '"), -(28014, 3, "''"), -(31765, 4, "' '"), -(31765, 8, "' '"), -(31860, 0, "'n // where Notify: FnMut(&[C::Item], ItemMarker) {'"), -(31765, 12, "' '"), -(31701, 64, "''"), -(31792, 0, "'n // unsafe fn insert_at_iter_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)'"), -(31701, 8, "' '"), -(31573, 128, "''"), -(31577, 0, "'// '"), -(31796, 3, "''"), -(31668, 3, "''"), -(2701, 0, "'// '"), -(2603, 0, "'// '"), -(2704, 3, "''"), -(2603, 3, "''"), -(2701, 0, "'// '"), -(2603, 0, "'// '"), -(37469, 0, "'ify'"), -(37468, 0, "'nd_no'"), -(36961, 0, "'ify'"), -(36960, 0, "'nd_no'"), -(28044, 0, "'ify'"), -(28043, 0, "'nd_no'"), -(37490, 3, "''"), -(37484, 5, "''"), -(36974, 3, "''"), -(36968, 5, "''"), -(28049, 3, "''"), -(28043, 5, "''"), -(31698, 11, "''"), -(37539, 64, "''"), -(44354, 0, "'n '"), -(44359, 0, "'n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}'"), -(44355, 4, "''"), -(44419, 0, "'n '"), -(44420, 4, "''"), -(44354, 1, "''"), -(41488, 0, "'n '"), -(41493, 0, "' unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n'"), -(41607, 12, "' '"), -(41489, 8, "' '"), -(41607, 0, "'// '"), -(41493, 0, "'// '"), -(41692, 0, "'<'"), -(41693, 0, "'N'"), -(41694, 0, "'o'"), -(41695, 0, "'t'"), -(41696, 0, "'i'"), -(41697, 0, "'f'"), -(41698, 0, "'y'"), -(41699, 0, "'>'"), -(41794, 0, "','"), -(41795, 0, "' '"), -(41796, 0, "'m'"), -(41797, 0, "'u'"), -(41798, 0, "'t'"), -(41799, 0, "' '"), -(41800, 0, "'n'"), -(41801, 0, "'o'"), -(41802, 0, "'t'"), -(41803, 0, "'i'"), -(41804, 0, "'f'"), -(41805, 0, "'y'"), -(41806, 0, "':'"), -(41807, 0, "' '"), -(41808, 0, "'N'"), -(41809, 0, "'o'"), -(41810, 0, "'t'"), -(41811, 0, "'i'"), -(41812, 0, "'f'"), -(41813, 0, "'y'"), -(41815, 1, "''"), -(41815, 0, "'n '"), -(41820, 0, "' '"), -(41824, 0, "' '"), -(41828, 0, "'w'"), -(41829, 0, "'h'"), -(41830, 0, "'e'"), -(41831, 0, "'r'"), -(41832, 0, "'e'"), -(41833, 0, "' '"), -(41834, 1, "''"), -(41834, 0, "'Notify: FnMut(&[C::Item], ItemMarker) {'"), -(44136, 0, "','"), -(44137, 0, "' '"), -(44138, 0, "'n'"), -(44139, 0, "'o'"), -(44140, 0, "'t'"), -(44141, 0, "'i'"), -(44142, 0, "'f'"), -(44143, 0, "'y'"), -(43103, 0, "'n '"), -(43116, 0, "'n '"), -(43104, 12, "''"), -(43117, 0, "'n'"), -(43118, 0, "'o'"), -(43119, 0, "'t'"), -(43120, 0, "'i'"), -(43121, 0, "'f'"), -(43122, 0, "'y'"), -(43123, 0, "'('"), -(43124, 0, "'n'"), -(43125, 0, "'e'"), -(43126, 0, "'w'"), -(43127, 0, "'_'"), -(43128, 0, "'i'"), -(43129, 0, "'t'"), -(43130, 0, "'e'"), -(43131, 0, "'m'"), -(43132, 0, "'s'"), -(43133, 0, "','"), -(43134, 0, "' '"), -(43135, 0, "'I'"), -(43136, 0, "'t'"), -(43137, 0, "'e'"), -(43138, 0, "'m'"), -(43135, 4, "'ItemMarker'"), -(43145, 0, "' '"), -(43146, 0, "'{'"), -(43147, 0, "'n '"), -(43164, 0, "'n '"), -(43148, 16, "''"), -(43149, 16, "' }'"), -(43162, 0, "')'"), -(43148, 0, "' '"), -(43164, 0, "'_'"), -(43164, 1, "'_phantom'"), -(43172, 0, "':'"), -(43173, 0, "' '"), -(43174, 0, "'P'"), -(43175, 0, "'a'"), -(43176, 0, "'h'"), -(43174, 3, "'PhantomData'"), -(43147, 0, "'n '"), -(43202, 0, "','"), -(43148, 16, "''"), -(43148, 0, "' '"), -(43164, 0, "'p'"), -(43165, 0, "'t'"), -(43166, 0, "'r'"), -(43167, 0, "':'"), -(43168, 0, "' '"), -(43169, 0, "'e'"), -(43170, 0, "','"), -(43225, 0, "';'"), -(43104, 122, "''"), -(43103, 1, "''"), -(43819, 0, "'n '"), -(43832, 0, "'n notify(new_items, ItemMarker {n ptr: e,n _phantom: PhantomData,n });'"), -(43820, 12, "''"), -(45213, 0, "','"), -(45214, 0, "' '"), -(45215, 0, "'n'"), -(45216, 0, "'o'"), -(45215, 2, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(45215, 53, "'no'"), -(45217, 0, "'n'"), -(45217, 1, "''"), -(45217, 0, "'_'"), -(45218, 0, "'n'"), -(45219, 0, "'o'"), -(45220, 0, "'f'"), -(45220, 1, "''"), -(45220, 0, "'t'"), -(45221, 0, "'i'"), -(45222, 0, "'f'"), -(45223, 0, "'y'"), -(45215, 0, "'S'"), -(45216, 0, "'e'"), -(45217, 0, "'l'"), -(45218, 0, "'f'"), -(45219, 0, "':'"), -(45220, 0, "':'"), -(45855, 0, "'Self::no_notify'"), -(45855, 15, "''"), -(45855, 0, "','"), -(45856, 0, "' '"), -(45857, 0, "'Self::no_notify'"), -(46407, 0, "','"), -(46408, 0, "' '"), -(46409, 0, "'Self::no_notify'"), -(46484, 0, "','"), -(46485, 0, "' '"), -(46486, 0, "'Self::no_notify'"), -(46846, 0, "','"), -(46847, 0, "' '"), -(46848, 0, "'Self::no_notify'"), -(31776, 0, "'&'"), -(28161, 0, "'&'"), -(44263, 0, "'&'"), -(46851, 0, "'&'"), -(46489, 0, "'&'"), -(46412, 0, "'&'"), -(45860, 0, "'&'"), -(31765, 3, "''"), -(31765, 1, "''"), -(31774, 0, "'m'"), -(31775, 0, "'u'"), -(31776, 0, "'t'"), -(31777, 0, "' '"), -(46855, 0, "'m'"), -(46492, 0, "'m'"), -(46414, 0, "'m'"), -(45861, 0, "'m'"), -(46859, 0, "'u'"), -(46495, 0, "'u'"), -(46416, 0, "'u'"), -(45862, 0, "'u'"), -(46863, 0, "'t'"), -(46498, 0, "'t'"), -(46418, 0, "'t'"), -(45863, 0, "'t'"), -(46867, 0, "' '"), -(46501, 0, "' '"), -(46420, 0, "' '"), -(45864, 0, "' '"), -(44264, 0, "'m'"), -(44265, 0, "'u'"), -(44266, 0, "'t'"), -(44267, 0, "' '"), -(28149, 4, "''"), -(28158, 0, "'m'"), -(28159, 0, "'u'"), -(28160, 0, "'t'"), -(28161, 0, "' '"), -(31500, 79, "''"), -(31499, 1, "''"), -(1182, 1, "''"), -(1182, 0, "'1'"), -(1183, 0, "'9'"), -(1184, 0, "'9'"), -(1184, 1, "''"), -(1183, 1, "''"), -(1183, 0, "'0'"), -(1184, 0, "'0'"), -(1182, 3, "'2'"), -(1572, 1, "''"), -(1572, 0, "'1'"), -(1573, 0, "'0'"), -(26440, 0, "' let walk_height = (*parent).height as usize - 2;n'"), -(26452, 0, "'// '"), -(26534, 29, "''"), -(26534, 0, "'('"), -(26535, 0, "'*'"), -(26536, 0, "'n'"), -(26537, 0, "')'"), -(26538, 0, "'.'"), -(26539, 0, "'h'"), -(26540, 0, "'e'"), -(26541, 0, "'i'"), -(26542, 0, "'g'"), -(26543, 0, "'h'"), -(26544, 0, "'t'"), -(26545, 0, "' '"), -(26546, 0, "'-'"), -(26547, 0, "' '"), -(26548, 0, "'1'"), -(26549, 0, "' '"), -(26550, 0, "'a'"), -(26551, 0, "'s'"), -(26552, 0, "' '"), -(26553, 0, "'u'"), -(26554, 0, "'s'"), -(26555, 0, "'i'"), -(26556, 0, "'z'"), -(26557, 0, "'e'"), -(26549, 9, "''"), -(26545, 0, "' as usize'"), -(20003, 1, "''"), -(20003, 0, "'>'"), -(20003, 1, "''"), -(20003, 0, "'-'"), -(20003, 1, "''"), -(20003, 0, "'='"), -(20006, 13, "''"), -(20006, 0, "'s'"), -(20007, 0, "'e'"), -(20008, 0, "'.'"), -(20008, 1, "''"), -(20008, 0, "'l'"), -(20009, 0, "'f'"), -(20010, 0, "'.'"), -(20011, 0, "'h'"), -(20012, 0, "'e'"), -(20013, 0, "'a'"), -(20014, 0, "'d'"), -(20015, 0, "' '"), -(20016, 0, "'a'"), -(20017, 0, "'s'"), -(20018, 0, "' '"), -(20019, 0, "'u'"), -(20019, 1, "''"), -(20018, 1, "''"), -(20017, 1, "''"), -(20016, 1, "''"), -(20015, 1, "''"), -(20015, 0, "' '"), -(20016, 0, "'a'"), -(20017, 0, "'s'"), -(20018, 0, "' '"), -(20019, 0, "'u'"), -(20020, 0, "'s'"), -(20021, 0, "'i'"), -(20022, 0, "'z'"), -(20023, 0, "'e'"), -(20015, 9, "''"), -(20011, 4, "''"), -(20011, 0, "'h'"), -(20012, 0, "'e'"), -(20013, 0, "'i'"), -(20014, 0, "'g'"), -(20015, 0, "'h'"), -(20016, 0, "'t'"), -(20011, 0, "'n'"), -(20012, 0, "'o'"), -(20013, 0, "'d'"), -(20014, 0, "'e'"), -(20015, 0, "'.'"), -(20011, 4, "'h'"), -(20012, 0, "'e'"), -(20013, 0, "'a'"), -(20014, 0, "'d'"), -(20195, 0, "'n '"), -(20212, 0, "'d'"), -(20213, 0, "'b'"), -(20214, 0, "'g'"), -(20215, 0, "'!'"), -(20216, 0, "'('"), -(20217, 0, "'n'"), -(20218, 0, "'.'"), -(20219, 0, "'p'"), -(20220, 0, "'a'"), -(20221, 0, "'r'"), -(20222, 0, "'e'"), -(20223, 0, "'n'"), -(20224, 0, "'t'"), -(20225, 0, "')'"), -(20226, 0, "';'"), -(20227, 0, "'n '"), -(20228, 16, "''"), -(20196, 0, "' dbg!(n.parent);n'"), -(20249, 8, "'s'"), -(20250, 0, "'e'"), -(20251, 0, "'l'"), -(20252, 0, "'f'"), -(20253, 0, "'.'"), -(20254, 0, "'h'"), -(20255, 0, "'e'"), -(20256, 0, "'a'"), -(20257, 0, "'d'"), -(20249, 0, "'&'"), -(20259, 0, "' '"), -(20260, 0, "'a'"), -(20261, 0, "'s'"), -(20262, 0, "' '"), -(20263, 0, "'&'"), -(20264, 0, "'*'"), -(20264, 1, "''"), -(20263, 1, "''"), -(20263, 0, "'*'"), -(20264, 0, "'c'"), -(20265, 0, "'o'"), -(20266, 0, "'n'"), -(20267, 0, "'s'"), -(20268, 0, "'t'"), -(20269, 0, "' '"), -(20270, 0, "'_'"), -(1183, 0, "'0'"), -(20274, 0, "'n dbg!(&self.head as *const _);'"), -(20274, 0, "'n dbg!(n.parent);'"), -(20197, 32, "''"), -(20218, 10, "'n'"), -(40996, 0, "'n '"), -(41017, 0, "'n '"), -(40997, 20, "''"), -(41018, 0, "'n '"), -(40998, 20, "''"), -(41019, 0, "'n '"), -(40999, 20, "''"), -(41000, 20, "''"), -(40999, 0, "' '"), -(41019, 0, "'l'"), -(41020, 0, "'e'"), -(41021, 0, "'t'"), -(41022, 0, "' '"), -(41023, 0, "'m'"), -(41024, 0, "'u'"), -(41025, 0, "'t'"), -(41026, 0, "' '"), -(41027, 0, "'s'"), -(41028, 0, "'k'"), -(41029, 0, "'i'"), -(41030, 0, "'p'"), -(41031, 0, "'_'"), -(41032, 0, "'h'"), -(41033, 0, "'e'"), -(41034, 0, "'i'"), -(41035, 0, "'g'"), -(41036, 0, "'h'"), -(41037, 0, "'t'"), -(41038, 0, "' '"), -(41039, 0, "'='"), -(41040, 0, "' '"), -(41041, 0, "'1'"), -(41042, 0, "';'"), -(41042, 1, "''"), -(41041, 1, "''"), -(41041, 0, "'-'"), -(41041, 1, "''"), -(41041, 0, "'0'"), -(41042, 0, "';'"), -(40998, 0, "' '"), -(41018, 0, "'/'"), -(41019, 0, "'/'"), -(41020, 0, "' '"), -(41021, 0, "'W'"), -(41022, 0, "'e'"), -(41023, 0, "' '"), -(41024, 0, "'n'"), -(41025, 0, "'e'"), -(41026, 0, "'e'"), -(41027, 0, "'d'"), -(41028, 0, "' '"), -(41029, 0, "'t'"), -(41030, 0, "'o'"), -(41031, 0, "' '"), -(41032, 0, "'u'"), -(41033, 0, "'p'"), -(41034, 0, "'d'"), -(41035, 0, "'a'"), -(41036, 0, "'t'"), -(41037, 0, "'e'"), -(41038, 0, "' '"), -(41039, 0, "'a'"), -(41040, 0, "'l'"), -(41041, 0, "'l'"), -(41042, 0, "' '"), -(41043, 0, "'t'"), -(41044, 0, "'h'"), -(41045, 0, "'e'"), -(41046, 0, "' '"), -(41047, 0, "'n'"), -(41048, 0, "'o'"), -(41049, 0, "'d'"), -(41050, 0, "'e'"), -(41051, 0, "'s'"), -(41052, 0, "' '"), -(41053, 0, "'t'"), -(41054, 0, "'h'"), -(41055, 0, "'a'"), -(41056, 0, "'t'"), -(41057, 0, "' '"), -(41021, 37, "'I'"), -(41022, 0, "'f'"), -(41023, 0, "' '"), -(41024, 0, "'y'"), -(41025, 0, "'o'"), -(41026, 0, "'u'"), -(41027, 0, "' '"), -(41028, 0, "'i'"), -(41029, 0, "'m'"), -(41030, 0, "'a'"), -(41031, 0, "'g'"), -(41032, 0, "'i'"), -(41033, 0, "'n'"), -(41034, 0, "'e'"), -(41035, 0, "' '"), -(41036, 0, "'t'"), -(41037, 0, "'h'"), -(41038, 0, "'i'"), -(41039, 0, "'s'"), -(41040, 0, "' '"), -(41041, 0, "'n'"), -(41042, 0, "'o'"), -(41043, 0, "'d'"), -(41044, 0, "'e'"), -(41045, 0, "' '"), -(41046, 0, "'a'"), -(41047, 0, "'s'"), -(41048, 0, "' '"), -(41049, 0, "'b'"), -(41050, 0, "'e'"), -(41050, 1, "''"), -(41049, 1, "''"), -(41049, 0, "'a'"), -(41050, 0, "' '"), -(41051, 0, "'b'"), -(41052, 0, "'i'"), -(41053, 0, "'g'"), -(41054, 0, "' '"), -(41055, 0, "'b'"), -(41056, 0, "'u'"), -(41057, 0, "'i'"), -(41058, 0, "'l'"), -(41059, 0, "'d'"), -(41060, 0, "'i'"), -(41061, 0, "'n'"), -(41062, 0, "'g'"), -(41063, 0, "','"), -(41064, 0, "' '"), -(41065, 0, "'w'"), -(41066, 0, "'e'"), -(41067, 0, "' '"), -(41068, 0, "'n'"), -(41069, 0, "'e'"), -(41070, 0, "'e'"), -(41071, 0, "'d'"), -(41072, 0, "' '"), -(41073, 0, "'t'"), -(41074, 0, "'o'"), -(41075, 0, "' '"), -(41076, 0, "'u'"), -(41077, 0, "'p'"), -(41078, 0, "'d'"), -(41079, 0, "'a'"), -(41080, 0, "'t'"), -(41081, 0, "'e'"), -(41082, 0, "' '"), -(41083, 0, "'a'"), -(41084, 0, "'l'"), -(41085, 0, "'l'"), -(41086, 0, "' '"), -(41087, 0, "'t'"), -(41088, 0, "'h'"), -(41089, 0, "'e'"), -(41090, 0, "' '"), -(41091, 0, "'n'"), -(41092, 0, "'o'"), -(41093, 0, "'d'"), -(41094, 0, "'e'"), -(41095, 0, "'s'"), -(41083, 13, "'t'"), -(41084, 0, "'h'"), -(41085, 0, "'e'"), -(41086, 0, "' '"), -(41087, 0, "'p'"), -(41088, 0, "'a'"), -(41089, 0, "'r'"), -(41090, 0, "'e'"), -(41091, 0, "'n'"), -(41092, 0, "'t'"), -(41093, 0, "' '"), -(41094, 0, "'o'"), -(41095, 0, "'f'"), -(41096, 0, "' '"), -(41097, 0, "'a'"), -(41098, 0, "'l'"), -(41099, 0, "'l'"), -(41100, 0, "' '"), -(41101, 0, "'t'"), -(41102, 0, "'h'"), -(41103, 0, "'e'"), -(41104, 0, "' '"), -(41105, 0, "'n'"), -(41106, 0, "'o'"), -(41107, 0, "'d'"), -(41108, 0, "'e'"), -(41109, 0, "'s'"), -(41110, 0, "' '"), -(41111, 0, "'w'"), -(41112, 0, "'e'"), -(41113, 0, "' '"), -(41114, 0, "'c'"), -(41115, 0, "'a'"), -(41116, 0, "'n'"), -(41116, 1, "''"), -(41116, 0, "'s'"), -(41117, 0, "'t'"), -(41118, 0, "' '"), -(41119, 0, "'a'"), -(41120, 0, "' '"), -(41121, 0, "'s'"), -(41121, 1, "''"), -(41121, 0, "'s'"), -(41122, 0, "'h'"), -(41123, 0, "'a'"), -(41124, 0, "'d'"), -(41125, 0, "'o'"), -(41126, 0, "'w'"), -(41127, 0, "' '"), -(41128, 0, "'o'"), -(41129, 0, "'v'"), -(41130, 0, "'e'"), -(41131, 0, "'r'"), -(41132, 0, "'.'"), -(41133, 0, "' '"), -(41134, 0, "'S'"), -(41135, 0, "'o'"), -(41136, 0, "','"), -(41137, 0, "' '"), -(41138, 0, "'t'"), -(41139, 0, "'h'"), -(41140, 0, "'e'"), -(41141, 0, "' '"), -(41142, 0, "'n'"), -(41143, 0, "'e'"), -(41138, 6, "'i'"), -(41139, 0, "'f'"), -(41140, 0, "' '"), -(41141, 0, "'w'"), -(41141, 1, "''"), -(41141, 0, "'o'"), -(41142, 0, "'u'"), -(41143, 0, "'r'"), -(41144, 0, "' '"), -(41145, 0, "'h'"), -(41146, 0, "'e'"), -(41147, 0, "'i'"), -(41148, 0, "'g'"), -(41149, 0, "'h'"), -(41150, 0, "'t'"), -(41151, 0, "' '"), -(41152, 0, "'i'"), -(41153, 0, "'s'"), -(41154, 0, "' '"), -(41155, 0, "'2'"), -(41156, 0, "','"), -(41157, 0, "' '"), -(41157, 1, "''"), -(41156, 1, "''"), -(41155, 1, "''"), -(41155, 0, "'3'"), -(41156, 0, "' '"), -(41157, 0, "'a'"), -(41158, 0, "'n'"), -(41159, 0, "'d'"), -(41160, 0, "' '"), -(41161, 0, "'t'"), -(41162, 0, "'h'"), -(41163, 0, "'e'"), -(41164, 0, "' '"), -(41165, 0, "'n'"), -(41166, 0, "'e'"), -(41167, 0, "'x'"), -(41168, 0, "'t'"), -(41169, 0, "' '"), -(41170, 0, "'n'"), -(41171, 0, "'o'"), -(41172, 0, "'d'"), -(41173, 0, "'e'"), -(41174, 0, "'s'"), -(41175, 0, "' '"), -(41176, 0, "'h'"), -(41177, 0, "'a'"), -(41178, 0, "'v'"), -(41179, 0, "'e'"), -(41180, 0, "' '"), -(41181, 0, "'h'"), -(41182, 0, "'e'"), -(41183, 0, "'i'"), -(41184, 0, "'g'"), -(41185, 0, "'h'"), -(41186, 0, "'t'"), -(41187, 0, "'s'"), -(41188, 0, "' '"), -(41189, 0, "'1'"), -(41190, 0, "' '"), -(41191, 0, "'a'"), -(41192, 0, "'n'"), -(41193, 0, "'d'"), -(41194, 0, "' '"), -(41195, 0, "'2'"), -(41196, 0, "','"), -(41197, 0, "' '"), -(41198, 0, "'t'"), -(41199, 0, "'h'"), -(41200, 0, "'e'"), -(41201, 0, "'y'"), -(41202, 0, "' '"), -(41203, 0, "'b'"), -(41204, 0, "'o'"), -(41205, 0, "'t'"), -(41206, 0, "'h'"), -(41207, 0, "' '"), -(41208, 0, "'n'"), -(41209, 0, "'e'"), -(41210, 0, "'e'"), -(41211, 0, "'d'"), -(41212, 0, "' '"), -(41213, 0, "'n'"), -(41214, 0, "'e'"), -(41215, 0, "'w'"), -(41216, 0, "' '"), -(41217, 0, "'p'"), -(41218, 0, "'a'"), -(41219, 0, "'r'"), -(41220, 0, "'e'"), -(41221, 0, "'n'"), -(41222, 0, "'t'"), -(41223, 0, "'s'"), -(41224, 0, "'.'"), -(41225, 0, "' '"), -(41226, 0, "'T'"), -(41227, 0, "'h'"), -(41228, 0, "'e'"), -(41229, 0, "' '"), -(41229, 1, "''"), -(41228, 1, "''"), -(41227, 1, "''"), -(41226, 1, "''"), -(41225, 1, "''"), -(40998, 227, "' // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.'"), -(41511, 0, "'n '"), -(41536, 0, "'s'"), -(41537, 0, "'k'"), -(41538, 0, "'i'"), -(41539, 0, "'p'"), -(41540, 0, "'_'"), -(41536, 5, "'skip_height'"), -(41547, 0, "' '"), -(41548, 0, "'='"), -(41549, 0, "' '"), -(41550, 0, "'u'"), -(41551, 0, "'s'"), -(41552, 0, "'i'"), -(41553, 0, "'z'"), -(41554, 0, "'e'"), -(41555, 0, "':'"), -(41556, 0, "':'"), -(41557, 0, "'m'"), -(41558, 0, "'a'"), -(41559, 0, "'x'"), -(41550, 10, "'s'"), -(41551, 0, "'k'"), -(41552, 0, "'i'"), -(41553, 0, "'p'"), -(41554, 0, "'_'"), -(41550, 5, "'skip_height'"), -(41561, 0, "'.'"), -(41562, 0, "'m'"), -(41563, 0, "'a'"), -(41564, 0, "'p'"), -(41564, 1, "''"), -(41564, 0, "'x'"), -(41565, 0, "'('"), -(41566, 0, "'('"), -(41567, 0, "'*'"), -(41568, 0, "'n'"), -(41569, 0, "')'"), -(41570, 0, "'.'"), -(41571, 0, "'h'"), -(41572, 0, "'e'"), -(41573, 0, "'i'"), -(41574, 0, "'g'"), -(41575, 0, "'h'"), -(41576, 0, "'t'"), -(41577, 0, "')'"), -(41578, 0, "';'"), -(41577, 0, "' '"), -(41578, 0, "'a'"), -(41579, 0, "'s'"), -(41580, 0, "' '"), -(41581, 0, "'s'"), -(41582, 0, "'u'"), -(41582, 1, "''"), -(41581, 1, "''"), -(41580, 1, "''"), -(41579, 1, "''"), -(41578, 1, "''"), -(41577, 1, "''"), -(41577, 0, "' '"), -(41578, 0, "'a'"), -(41579, 0, "'s'"), -(41580, 0, "' '"), -(41581, 0, "'u'"), -(41582, 0, "'s'"), -(41583, 0, "'i'"), -(41584, 0, "'z'"), -(41585, 0, "'e'"), -(41413, 10, "'s'"), -(41414, 0, "'k'"), -(41415, 0, "'i'"), -(41416, 0, "'p'"), -(41413, 4, "'skip_height'"), -(41589, 1, "''"), -(41513, 0, "' n'"), -(41614, 50, "''"), -(41538, 0, "' (*n).parent = new_parent;n'"), -(40947, 0, "'// '"), -(41579, 10, "'cursor.entries[height - 1].node'"), -(41594, 10, "'s'"), -(41595, 0, "'k'"), -(41596, 0, "'i'"), -(41597, 0, "'p'"), -(41594, 4, "'skip_height'"), -(41605, 0, "' '"), -(41606, 0, "'+'"), -(41607, 0, "' '"), -(41608, 0, "'1'"), -(41594, 11, "'(*n).height as usize'"), -(41664, 11, "''"), -(41664, 0, "'u'"), -(41665, 0, "'s'"), -(41666, 0, "'i'"), -(41667, 0, "'z'"), -(41668, 0, "'e'"), -(41669, 0, "':'"), -(41670, 0, "':'"), -(41671, 0, "'m'"), -(41672, 1, "''"), -(41672, 1, "''"), -(41675, 0, "'skip_height'"), -(41686, 0, "','"), -(41687, 0, "' '"), -(41370, 0, "'n '"), -(41395, 0, "'d'"), -(41396, 0, "'b'"), -(41397, 0, "'g'"), -(41395, 3, "'dbg!'"), -(41399, 0, "'('"), -(41400, 0, "'''"), -(41401, 0, "'s'"), -(41402, 0, "'k'"), -(41402, 1, "''"), -(41401, 1, "''"), -(41400, 1, "''"), -(41400, 0, "'s'"), -(41401, 0, "'k'"), -(41402, 0, "'i'"), -(41403, 0, "'p'"), -(41404, 0, "'_'"), -(41400, 5, "'skip_height'"), -(41411, 0, "')'"), -(41412, 0, "';'"), -(41413, 0, "'n '"), -(41438, 0, "'d'"), -(41439, 0, "'b'"), -(41440, 0, "'g'"), -(41441, 0, "'!'"), -(41442, 0, "'('"), -(41443, 0, "'(*n).height as usize'"), -(41463, 0, "')'"), -(41464, 0, "';'"), -(41465, 0, "'n '"), -(41828, 0, "' '"), -(41466, 24, "''"), -(41805, 0, "'-'"), -(41806, 0, "' '"), -(41807, 0, "'1'"), -(41438, 0, "'// '"), -(41395, 0, "'// '"), -(41642, 0, "'n '"), -(41667, 0, "'/'"), -(41668, 0, "'/'"), -(41669, 0, "' '"), -(41670, 0, "'T'"), -(41671, 0, "'O'"), -(41672, 0, "'D'"), -(41673, 0, "'O'"), -(41674, 0, "':'"), -(41675, 0, "' '"), -(41676, 0, "'W'"), -(41677, 0, "'e'"), -(41678, 0, "' '"), -(41679, 0, "'c'"), -(41680, 0, "'a'"), -(41681, 0, "'n'"), -(41682, 0, "' '"), -(41683, 0, "'c'"), -(41684, 0, "'a'"), -(41685, 0, "'c'"), -(41686, 0, "'h'"), -(41687, 0, "'e'"), -(41688, 0, "' '"), -(41689, 0, "'t'"), -(41690, 0, "'h'"), -(41691, 0, "'i'"), -(41692, 0, "'s'"), -(41693, 0, "' '"), -(41694, 0, "'e'"), -(41695, 0, "'a'"), -(41696, 0, "'c'"), -(41697, 0, "'h'"), -(41698, 0, "' '"), -(41699, 0, "'t'"), -(41700, 0, "'i'"), -(41701, 0, "'m'"), -(41702, 0, "'e'"), -(41703, 0, "' '"), -(41704, 0, "'t'"), -(41705, 0, "'h'"), -(41706, 0, "'e'"), -(41707, 0, "' '"), -(41708, 0, "'c'"), -(41709, 0, "'u'"), -(41710, 0, "'r'"), -(41708, 3, "'h'"), -(41709, 0, "'e'"), -(41710, 0, "'i'"), -(41710, 1, "''"), -(41710, 0, "'i'"), -(41711, 0, "'g'"), -(41712, 0, "'h'"), -(41713, 0, "'t'"), -(41714, 0, "' '"), -(41715, 0, "'g'"), -(41716, 0, "'o'"), -(41717, 0, "'e'"), -(41718, 0, "'s'"), -(41719, 0, "' '"), -(41720, 0, "'u'"), -(41721, 0, "'p'"), -(41722, 0, "'?'"), -(41679, 3, "'c'"), -(41680, 0, "'p'"), -(41681, 0, "'u'"), -(41681, 1, "''"), -(41680, 1, "''"), -(41680, 0, "'o'"), -(41681, 0, "'u'"), -(41682, 0, "'l'"), -(41683, 0, "'d'"), -(20218, 0, "'('"), -(20232, 0, "','"), -(20233, 0, "' '"), -(20234, 0, "'*'"), -(20235, 0, "'('"), -(20235, 1, "''"), -(20234, 1, "''"), -(20234, 0, "'('"), -(20235, 0, "'*'"), -(20236, 0, "'n'"), -(20237, 0, "')'"), -(20238, 0, "'.'"), -(20239, 0, "'h'"), -(20240, 0, "'e'"), -(20241, 0, "'i'"), -(20242, 0, "'g'"), -(20243, 0, "'h'"), -(20244, 0, "'t'"), -(20245, 0, "')'"), -(31088, 0, "'n '"), -(31101, 0, "'n '"), -(31089, 12, "''"), -(31102, 0, "'n '"), -(31090, 12, "''"), -(31103, 0, "'n '"), -(31091, 12, "''"), -(31104, 0, "'n '"), -(31092, 12, "''"), -(31093, 12, "''"), -(31090, 0, "' if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut skip_height = 0;nn loop {n // dbg!(skip_height);n // dbg!((*n).height as usize);nn n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= height as u8 { break; }n n // TODO: We could cache this each time the height goes up?n (*n).parent = cursor.entries[(*n).height as usize + 1].node;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }'"), -(32152, 16, "' '"), -(32130, 20, "' '"), -(32041, 24, "' '"), -(31956, 24, "' '"), -(31873, 24, "' '"), -(31848, 24, "' '"), -(31767, 24, "' '"), -(31703, 24, "' '"), -(31647, 24, "' '"), -(31601, 24, "' '"), -(31574, 20, "' '"), -(31528, 20, "' '"), -(31470, 20, "' '"), -(31390, 20, "' '"), -(31309, 20, "' '"), -(31231, 20, "' '"), -(31157, 20, "' '"), -(31122, 20, "' '"), -(31090, 16, "' '"), -(31089, 28, "''"), -(32053, 13, "''"), -(32052, 1, "''"), -(32035, 16, "' '"), -(31950, 20, "' '"), -(31869, 20, "' '"), -(31790, 20, "' '"), -(31769, 20, "' '"), -(31692, 20, "' '"), -(31632, 20, "' '"), -(31580, 20, "' '"), -(31538, 20, "' '"), -(31515, 16, "' '"), -(31473, 16, "' '"), -(31419, 16, "' '"), -(31343, 16, "' '"), -(31266, 16, "' '"), -(31192, 16, "' '"), -(31122, 16, "' '"), -(31091, 16, "' '"), -(31983, 0, "'// '"), -(31902, 0, "'// '"), -(31825, 0, "'// '"), -(31750, 0, "'// '"), -(31660, 0, "'// '"), -(31604, 0, "'// '"), -(31556, 0, "'// '"), -(31518, 0, "'// '"), -(31499, 0, "'// '"), -(31461, 0, "'// '"), -(31411, 0, "'// '"), -(31339, 0, "'// '"), -(31266, 0, "'// '"), -(31196, 0, "'// '"), -(31130, 0, "'// '"), -(31103, 0, "'// '"), -(32028, 3, "''"), -(31944, 3, "''"), -(31864, 3, "''"), -(31786, 3, "''"), -(31693, 3, "''"), -(31634, 3, "''"), -(31583, 3, "''"), -(31542, 3, "''"), -(31520, 3, "''"), -(31479, 3, "''"), -(31426, 3, "''"), -(31351, 3, "''"), -(31275, 3, "''"), -(31202, 3, "''"), -(31133, 3, "''"), -(31103, 3, "''"), -(31115, 1, "''"), -(31115, 0, "'n'"), -(31116, 0, "'e'"), -(31117, 0, "'w'"), -(31118, 0, "'_'"), -(31119, 0, "'n'"), -(31120, 0, "'o'"), -(31115, 6, "'new_node'"), -(31123, 0, "'_'"), -(31124, 0, "'p'"), -(31125, 0, "'t'"), -(31126, 0, "'r'"), -(32249, 0, "'// '"), -(32205, 0, "'// '"), -(32133, 0, "'// '"), -(32068, 0, "'// '"), -(32049, 0, "'// '"), -(32011, 0, "'// '"), -(31854, 46, "''"), -(31854, 0, "'n'"), -(31855, 0, "'e'"), -(31856, 0, "'w'"), -(31857, 0, "'_'"), -(31858, 0, "'n'"), -(31859, 0, "'o'"), -(31854, 6, "'new_node_ptr'"), -(31749, 74, "''"), -(31748, 1, "''"), -(31791, 0, "';'"), -(31128, 331, "''"), -(31089, 1, "''"), -(31376, 0, "'n'"), -(31377, 0, "'e'"), -(31378, 0, "'w'"), -(31379, 0, "'_'"), -(31391, 1, "''"), -(31390, 1, "''"), -(31389, 1, "''"), -(31388, 1, "''"), -(31387, 1, "''"), -(31386, 1, "''"), -(31555, 2, "''"), -(42035, 0, "'n '"), -(42060, 0, "'d'"), -(42061, 0, "'b'"), -(42062, 0, "'g'"), -(42063, 0, "'!'"), -(42064, 0, "'('"), -(42065, 0, "'n'"), -(42066, 0, "'.'"), -(42067, 0, "'c'"), -(42068, 0, "'o'"), -(42069, 0, "'n'"), -(42070, 0, "'t'"), -(42071, 0, "'e'"), -(42072, 0, "'n'"), -(42073, 0, "'t'"), -(42074, 0, "'_'"), -(42067, 8, "'content_slice'"), -(42080, 0, "'('"), -(42081, 0, "')'"), -(42082, 0, "')'"), -(42083, 0, "';'"), -(1939, 0, "' '"), -(1940, 0, "'+'"), -(1941, 0, "' '"), -(1942, 0, "'D'"), -(1943, 0, "'e'"), -(1944, 0, "'b'"), -(1945, 0, "'u'"), -(1946, 0, "'g'"), -(1942, 0, "'f'"), -(1943, 0, "'m'"), -(1944, 0, "'t'"), -(1945, 0, "':'"), -(1946, 0, "':'"), -(1942, 0, "'s'"), -(1943, 0, "'t'"), -(1944, 0, "'d'"), -(1945, 0, "':'"), -(1946, 0, "':'"), -(42083, 0, "'('"), -(42084, 0, "'*'"), -(42086, 0, "')'"), -(42054, 0, "' dbg!((*n).content_slice());n'"), -(42140, 15, "''"), -(42140, 0, "'h'"), -(42141, 0, "'e'"), -(42142, 0, "'i'"), -(42143, 0, "'g'"), -(42144, 0, "'h'"), -(42145, 0, "'t'"), -(42148, 0, "'n '"), -(42173, 0, "'s'"), -(42174, 0, "'e'"), -(42175, 0, "'l'"), -(42176, 0, "'f'"), -(42177, 0, "'.'"), -(42178, 0, "'i'"), -(42179, 0, "'s'"), -(42180, 0, "'_'"), -(42178, 3, "'is_head(node: *const Node)'"), -(42186, 20, "'n'"), -(42187, 0, "'.'"), -(42188, 0, "'p'"), -(42189, 0, "'a'"), -(42190, 0, "'r'"), -(42191, 0, "'e'"), -(42192, 0, "'n'"), -(42193, 0, "'t'"), -(42195, 0, "';'"), -(42173, 23, "''"), -(42149, 24, "''"), -(42148, 1, "''"), -(42148, 0, "'n '"), -(42362, 0, "'n '"), -(42149, 24, "''"), -(42363, 0, "'a'"), -(42364, 0, "'s'"), -(42365, 0, "'s'"), -(42363, 3, "'assert_eq!'"), -(42373, 0, "'('"), -(42374, 0, "'('"), -(42375, 0, "'*'"), -(42376, 0, "'n'"), -(42377, 0, "')'"), -(42378, 0, "'.'"), -(42379, 0, "'p'"), -(42380, 0, "'a'"), -(42381, 0, "'r'"), -(42382, 0, "'e'"), -(42383, 0, "'n'"), -(42384, 0, "'t'"), -(42385, 0, "','"), -(42386, 0, "' '"), -(42387, 0, "'e'"), -(42388, 0, "')'"), -(42389, 0, "';'"), -(42387, 1, "''"), -(42387, 0, "'n'"), -(40967, 11, "'g'"), -(40968, 0, "'h'"), -(40968, 1, "''"), -(40967, 1, "''"), -(40967, 0, "'e'"), -(40967, 1, "''"), -(40967, 0, "'h'"), -(40968, 0, "'e'"), -(40969, 0, "'i'"), -(40969, 1, "''"), -(40967, 2, "'height'"), -(40973, 9, "''"), -(38979, 0, "'n '"), -(38992, 0, "'s'"), -(38993, 0, "'e'"), -(38994, 0, "'l'"), -(38995, 0, "'f'"), -(38996, 0, "'.'"), -(38997, 0, "'c'"), -(38998, 0, "'h'"), -(38999, 0, "'e'"), -(39000, 0, "'c'"), -(38997, 4, "'check()'"), -(39004, 0, "';'"), -(38992, 0, "' '"), -(38992, 0, "'i'"), -(38993, 0, "'f'"), -(38994, 0, "' '"), -(38995, 0, "'e'"), -(38996, 0, "'n'"), -(38997, 0, "'v'"), -(38992, 6, "''"), -(38992, 0, "'if cfg!(debug_assertions) {'"), -(39033, 0, "' '"), -(39034, 0, "'}'"), -(42961, 0, "'n '"), -(42974, 0, "'n '"), -(42962, 12, "''"), -(42975, 0, "'if cfg!(debug_assertions) { self.check(); }'"), -(1182, 2, "'2'"), -(38978, 0, "'n '"), -(38991, 0, "'s'"), -(38992, 0, "'e'"), -(38993, 0, "'l'"), -(38994, 0, "'f'"), -(38995, 0, "'.'"), -(38996, 0, "'p'"), -(38997, 0, "'r'"), -(38998, 0, "'i'"), -(38996, 3, "'print()'"), -(39003, 0, "';'"), -(50957, 0, "'n '"), -(50966, 0, "'l'"), -(50967, 0, "'e'"), -(50968, 0, "'t'"), -(50969, 0, "' '"), -(50970, 0, "'p'"), -(50971, 0, "'t'"), -(50972, 0, "'r'"), -(50973, 0, "'T'"), -(50973, 1, "''"), -(50973, 0, "'_'"), -(50974, 0, "'t'"), -(50975, 0, "'o'"), -(50976, 0, "'_'"), -(50977, 0, "'i'"), -(50978, 0, "'d'"), -(50979, 0, "' '"), -(50980, 0, "'='"), -(50981, 0, "' '"), -(50982, 0, "'s'"), -(50983, 0, "'t'"), -(50984, 0, "'d'"), -(50957, 0, "'n '"), -(50966, 0, "'u'"), -(50967, 0, "'s'"), -(50968, 0, "'e'"), -(50969, 0, "' '"), -(50970, 0, "'s'"), -(50971, 0, "'t'"), -(50972, 0, "'d'"), -(50973, 0, "':'"), -(50974, 0, "':'"), -(50975, 0, "'c'"), -(50976, 0, "'o'"), -(50977, 0, "'l'"), -(50978, 0, "'l'"), -(50975, 4, "'collections'"), -(50986, 0, "':'"), -(50987, 0, "':'"), -(50988, 0, "'H'"), -(50989, 0, "'a'"), -(50990, 0, "'s'"), -(50991, 0, "'h'"), -(50988, 4, "'HashMap'"), -(50995, 0, "';'"), -(51021, 3, "'H'"), -(51022, 0, "'a'"), -(51023, 0, "'s'"), -(51024, 0, "'h'"), -(51025, 0, "'M'"), -(51026, 0, "'a'"), -(51027, 0, "'p'"), -(51021, 7, "'HashMap'"), -(51028, 0, "':'"), -(51029, 0, "':'"), -(51030, 0, "'n'"), -(51031, 0, "'e'"), -(51032, 0, "'w'"), -(51030, 3, "'new()'"), -(51035, 0, "'('"), -(51036, 0, "')'"), -(51036, 1, "''"), -(51035, 1, "''"), -(51035, 0, "';'"), -(51117, 0, "'n '"), -(51130, 0, "'p'"), -(51131, 0, "'t'"), -(51132, 0, "'r'"), -(51130, 3, "'ptr_to_id'"), -(51139, 0, "'.'"), -(51140, 0, "'s'"), -(51141, 0, "'e'"), -(51141, 1, "''"), -(51140, 1, "''"), -(51139, 1, "''"), -(51139, 0, "'.'"), -(51140, 0, "'i'"), -(51141, 0, "'n'"), -(51142, 0, "'s'"), -(51143, 0, "'e'"), -(51144, 0, "'r'"), -(51140, 5, "'insert(k: K, v: V)'"), -(51147, 4, "'n'"), -(51148, 0, "'o'"), -(51149, 0, "'d'"), -(51150, 0, "'e'"), -(51151, 0, "' '"), -(51152, 0, "'a'"), -(51153, 0, "'s'"), -(51154, 0, "' '"), -(51155, 0, "'*'"), -(51156, 0, "'c'"), -(51157, 0, "'o'"), -(51158, 0, "'n'"), -(51159, 0, "'s'"), -(51160, 0, "'t'"), -(51161, 0, "' '"), -(51162, 0, "'_'"), -(51165, 4, "'i'"), -(51167, 0, "';'"), -(51008, 0, "' '"), -(51009, 0, "'m'"), -(51010, 0, "'i'"), -(51011, 0, "'u'"), -(51011, 1, "''"), -(51010, 1, "''"), -(51010, 0, "'u'"), -(51011, 0, "'t'"), -(51272, 0, "'n '"), -(51285, 0, "'p'"), -(51286, 0, "'r'"), -(51287, 0, "'i'"), -(51288, 0, "'n'"), -(51289, 0, "'t'"), -(51290, 0, "' '"), -(51290, 1, "''"), -(51290, 0, "'!'"), -(51291, 0, "'('"), -(51292, 0, "'''"), -(51293, 0, "'('"), -(51294, 0, "'p'"), -(51295, 0, "'a'"), -(51296, 0, "'r'"), -(51297, 0, "'e'"), -(51298, 0, "'n'"), -(51299, 0, "'t'"), -(51300, 0, "':'"), -(51301, 0, "' '"), -(51302, 0, "'{'"), -(51303, 0, "'}'"), -(51304, 0, "'}'"), -(51304, 1, "''"), -(51304, 0, "')'"), -(51305, 0, "'''"), -(51306, 0, "';'"), -(51306, 1, "''"), -(51306, 0, "','"), -(51307, 0, "' '"), -(51272, 0, "'n '"), -(51285, 0, "'i'"), -(51286, 0, "'f'"), -(51287, 0, "' '"), -(51288, 0, "'l'"), -(51289, 0, "'e'"), -(51290, 0, "'t'"), -(51291, 0, "' '"), -(51292, 0, "'p'"), -(51293, 0, "'t'"), -(51294, 0, "'r'"), -(51285, 0, "'// '"), -(51040, 0, "'n '"), -(51049, 0, "'p'"), -(51050, 0, "'t'"), -(51051, 0, "'r'"), -(51049, 3, "'ptr'"), -(51052, 0, "'.'"), -(51052, 1, "''"), -(51052, 0, "'_'"), -(51053, 0, "'t'"), -(51054, 0, "'o'"), -(51049, 6, "'ptr_to_id'"), -(51058, 0, "'.'"), -(51059, 0, "'i'"), -(51060, 0, "'n'"), -(51061, 0, "'s'"), -(51062, 0, "'e'"), -(51063, 0, "'r'"), -(51064, 0, "'t'"), -(51065, 0, "'('"), -(51066, 0, "'p'"), -(51067, 0, "'t'"), -(51068, 0, "'r'"), -(51069, 0, "':'"), -(51069, 1, "''"), -(51068, 1, "''"), -(51066, 2, "'s'"), -(51067, 0, "'t'"), -(51068, 0, "'d'"), -(51069, 0, "':'"), -(51070, 0, "':'"), -(51071, 0, "'p'"), -(51072, 0, "'t'"), -(51073, 0, "'r'"), -(51074, 0, "':'"), -(51075, 0, "':'"), -(51076, 0, "'n'"), -(51077, 0, "'u'"), -(51078, 0, "'l'"), -(51079, 0, "'l'"), -(51076, 4, "'null()'"), -(51082, 0, "','"), -(51083, 0, "' '"), -(51084, 0, "'-'"), -(51085, 0, "'1'"), -(51086, 0, "')'"), -(51087, 0, "';'"), -(51085, 1, "''"), -(51084, 1, "''"), -(51084, 0, "'u'"), -(51085, 0, "'s'"), -(51086, 0, "'i'"), -(51087, 0, "'z'"), -(51088, 0, "'e'"), -(51089, 0, "':'"), -(51090, 0, "':'"), -(51091, 0, "'M'"), -(51092, 0, "'A'"), -(51093, 0, "'X'"), -(51341, 13, "''"), -(51341, 0, "'p'"), -(51342, 0, "'t'"), -(51343, 0, "'r'"), -(51341, 3, "'ptr_to_id'"), -(51350, 0, "'.'"), -(51351, 0, "'g'"), -(51352, 0, "'e'"), -(51351, 2, "'get(k: &Q)'"), -(51355, 5, "'n'"), -(51356, 0, "'o'"), -(51357, 0, "'d'"), -(51358, 0, "'e'"), -(51359, 0, "'.'"), -(51360, 0, "'p'"), -(51361, 0, "'o'"), -(51361, 1, "''"), -(51361, 0, "'a'"), -(51362, 0, "'r'"), -(51363, 0, "'e'"), -(51364, 0, "'n'"), -(51365, 0, "'t'"), -(51367, 0, "';'"), -(51366, 0, "' '"), -(51367, 0, "'a'"), -(51368, 0, "'s'"), -(51369, 0, "' '"), -(51370, 0, "'*'"), -(51371, 0, "'c'"), -(51372, 0, "'o'"), -(51373, 0, "'n'"), -(51374, 0, "'s'"), -(51375, 0, "'t'"), -(51376, 0, "' '"), -(51377, 0, "'_'"), -(51366, 12, "''"), -(51355, 0, "'&'"), -(51367, 0, "' '"), -(51368, 0, "'a'"), -(51369, 0, "'s'"), -(51370, 0, "' '"), -(51371, 0, "'*'"), -(51372, 0, "'c'"), -(51373, 0, "'o'"), -(51374, 0, "'n'"), -(51375, 0, "'s'"), -(51376, 0, "'t'"), -(51377, 0, "' '"), -(51378, 0, "'_'"), -(51356, 0, "'('"), -(51380, 0, "')'"), -(51341, 0, "'i'"), -(51342, 0, "'f'"), -(51343, 0, "' '"), -(51344, 0, "'l'"), -(51345, 0, "'e'"), -(51346, 0, "'t'"), -(51347, 0, "' '"), -(51348, 0, "'S'"), -(51349, 0, "'o'"), -(51350, 0, "'m'"), -(51351, 0, "'e'"), -(51352, 0, "'('"), -(51353, 0, "'i'"), -(51354, 0, "'d'"), -(51355, 0, "')'"), -(51356, 0, "' '"), -(51357, 0, "'='"), -(51358, 0, "' '"), -(51400, 1, "''"), -(51400, 0, "' '"), -(51401, 0, "'{'"), -(51415, 0, "' '"), -(51442, 0, "'i'"), -(51443, 0, "'d'"), -(51444, 0, "')'"), -(51445, 0, "';'"), -(51446, 0, "'n '"), -(51447, 16, "' }'"), -(51520, 0, "'n }'"), -(51461, 12, "' '"), -(51447, 14, "''"), -(51510, 0, "'n print!('(parent: {})', id);'"), -(51403, 44, "''"), -(51466, 0, "'n if let Some(id) = ptr_to_id.get(&(node.parent as *const _)) {'"), -(51403, 16, "' '"), -(51329, 74, "''"), -(51347, 1, "''"), -(51346, 1, "''"), -(51518, 0, "'n '"), -(51531, 0, "'p'"), -(51532, 0, "'r'"), -(51533, 0, "'i'"), -(51534, 0, "'n'"), -(51531, 4, "'println!'"), -(51539, 0, "'('"), -(51540, 0, "')'"), -(51541, 0, "';'"), -(51518, 0, "'n '"), -(51519, 12, "''"), -(51485, 0, "' '"), -(51460, 0, "'n '"), -(51477, 0, "'i'"), -(51478, 0, "'f'"), -(51477, 2, "''"), -(51477, 0, "'i'"), -(51478, 0, "'f'"), -(51479, 0, "' '"), -(51480, 0, "'i'"), -(51481, 0, "'d'"), -(51482, 0, "' '"), -(51483, 0, "'='"), -(51484, 0, "'='"), -(51485, 0, "' '"), -(51486, 0, "'u'"), -(51487, 0, "'s'"), -(51488, 0, "'i'"), -(51489, 0, "'z'"), -(51490, 0, "'e'"), -(51491, 0, "':'"), -(51492, 0, "':'"), -(51493, 0, "'M'"), -(51494, 0, "'A'"), -(51495, 0, "'X'"), -(51496, 0, "' '"), -(51497, 0, "'{'"), -(51498, 0, "' '"), -(51461, 38, "''"), -(51460, 1, "''"), -(51049, 0, "'// '"), -(51464, 0, "' print!(' (parent: {})', id);n'"), -(51553, 14, "''"), -(51509, 16, "' '"), -(51509, 0, "' }n'"), -(51545, 6, "'p'"), -(51546, 0, "'o'"), -(51547, 0, "'i'"), -(51548, 0, "'n'"), -(51549, 0, "'t'"), -(51550, 0, "'e'"), -(51551, 0, "'r'"), -(51560, 2, "''"), -(51555, 0, "':'"), -(51556, 0, "'?'"), -(51562, 0, "'n'"), -(51563, 0, "'o'"), -(51564, 0, "'d'"), -(51565, 0, "'e'"), -(51566, 0, "' '"), -(51567, 0, "'a'"), -(51568, 0, "'s'"), -(51569, 0, "' '"), -(51570, 0, "'*'"), -(51571, 0, "'c'"), -(51572, 0, "'o'"), -(51573, 0, "'n'"), -(51574, 0, "'s'"), -(51575, 0, "'t'"), -(51576, 0, "' '"), -(51577, 0, "'_'"), -(42454, 1, "''"), -(42454, 0, "'e'"), -(42297, 0, "'n'"), -(42216, 1, "''"), -(42296, 0, "'n dbg!((*n).height);'"), -(42173, 43, "''"), -(42253, 0, "'n dbg!((*n).content_slice());'"), -(42121, 52, "''"), -(42201, 0, "'n n = (*n).nexts_mut()[skip_height].node;'"), -(42057, 64, "''"), -(42137, 0, "'n'"), -(42056, 1, "''"), -(42201, 0, "'n'"), -(42137, 1, "''"), -(42200, 0, "'n if n.is_null() || (*n).height >= height as u8 { break; }'"), -(42056, 81, "''"), -(42055, 0, "'n '"), -(42321, 1, "''"), -(42056, 24, "''"), -(42279, 0, "'// '"), -(42227, 0, "'// '"), -(20314, 0, "'// '"), -(20282, 0, "'// '"), -(20230, 0, "'// '"), -(20320, 3, "''"), -(20285, 3, "''"), -(20230, 3, "''"), -(20314, 0, "'// '"), -(20282, 0, "'// '"), -(20230, 0, "'// '"), -(20230, 3, "''"), -(20214, 0, "' dbg!((n as *const _, (*n).height));n'"), -(20235, 1, "''"), -(20248, 14, "''"), -(20267, 0, "'// '"), -(19391, 0, "'('"), -(19392, 0, "'i'"), -(19393, 0, "','"), -(19394, 0, "' '"), -(19396, 0, "')'"), -(19412, 0, "'.'"), -(19413, 0, "'e'"), -(19414, 0, "'n'"), -(19415, 0, "'u'"), -(19416, 0, "'m'"), -(19413, 4, "'enumerate()'"), -(20247, 0, "'// '"), -(20230, 0, "'n '"), -(20247, 0, "'p'"), -(20248, 0, "'r'"), -(20249, 0, "'i'"), -(20250, 0, "'n'"), -(20247, 4, "'println!'"), -(20255, 0, "'('"), -(20256, 0, "'''"), -(20257, 0, "'v'"), -(20258, 0, "'i'"), -(20259, 0, "'s'"), -(20260, 0, "'i'"), -(20261, 0, "'t'"), -(20262, 0, "'i'"), -(20263, 0, "'n'"), -(20264, 0, "'g'"), -(20265, 0, "' '"), -(20266, 0, "'{'"), -(20267, 0, "'}'"), -(20268, 0, "'''"), -(20269, 0, "','"), -(20270, 0, "' '"), -(20271, 0, "'i'"), -(20272, 0, "')'"), -(20273, 0, "';'"), -(20291, 3, "''"), -(20291, 0, "'// '"), -(20268, 0, "' '"), -(20269, 0, "'{'"), -(20270, 0, "':'"), -(20271, 0, "'?'"), -(20272, 0, "'}'"), -(20277, 0, "','"), -(20278, 0, "' '"), -(20279, 0, "'n as *const _'"), -(18524, 0, "'n '"), -(18537, 0, "'s'"), -(18538, 0, "'e'"), -(18539, 0, "'l'"), -(18540, 0, "'f'"), -(18541, 0, "'.'"), -(18542, 0, "'p'"), -(18543, 0, "'r'"), -(18544, 0, "'i'"), -(18542, 3, "'print()'"), -(18549, 0, "';'"), -(41062, 0, "'n '"), -(41079, 0, "'n '"), -(41063, 16, "''"), -(41080, 0, "'p'"), -(41081, 0, "'r'"), -(41082, 0, "'i'"), -(41083, 0, "'n'"), -(41080, 4, "'println!'"), -(41088, 0, "'('"), -(41089, 0, "'''"), -(41090, 0, "'r'"), -(41091, 0, "'e'"), -(41092, 0, "'m'"), -(41093, 0, "'o'"), -(41094, 0, "'v'"), -(41095, 0, "'i'"), -(41096, 0, "'n'"), -(41097, 0, "'g'"), -(41098, 0, "'''"), -(41099, 0, "','"), -(41100, 0, "' '"), -(41098, 0, "' '"), -(41099, 0, "'{'"), -(41100, 0, "'}'"), -(41104, 0, "'e'"), -(41105, 0, "')'"), -(41106, 0, "';'"), -(41105, 0, "','"), -(41106, 0, "' '"), -(41107, 0, "'''"), -(41108, 0, "'c'"), -(41109, 0, "'o'"), -(41110, 0, "'n'"), -(41111, 0, "'t'"), -(41112, 0, "'e'"), -(41113, 0, "'n'"), -(41114, 0, "'t'"), -(41115, 0, "'s'"), -(41116, 0, "'''"), -(41117, 0, "' '"), -(41117, 1, "''"), -(41101, 0, "' '"), -(41102, 0, "'c'"), -(41103, 0, "'o'"), -(41104, 0, "'n'"), -(41105, 0, "'t'"), -(41106, 0, "'e'"), -(41107, 0, "'n'"), -(41108, 0, "'t'"), -(41109, 0, "'s'"), -(41110, 0, "' '"), -(41111, 0, "'{'"), -(41112, 0, "'}'"), -(41113, 0, "' '"), -(41114, 0, "'e'"), -(41115, 0, "'h'"), -(41115, 1, "''"), -(41114, 1, "''"), -(41114, 0, "'h'"), -(41115, 0, "'e'"), -(41116, 0, "'i'"), -(41117, 0, "'g'"), -(41118, 0, "'h'"), -(41119, 0, "'t'"), -(41120, 0, "' '"), -(41121, 0, "'{'"), -(41122, 0, "'}'"), -(41129, 10, "''"), -(41064, 68, "''"), -(41063, 1, "''"), -(41175, 0, "'n '"), -(41176, 16, "''"), -(41175, 0, "'n '"), -(41192, 0, "' println!('removing {} contents {} height {}', e, );n'"), -(41176, 32, "' '"), -(41243, 1, "''"), -(41241, 0, "'('"), -(41242, 0, "'*'"), -(41243, 0, "'e'"), -(41244, 0, "')'"), -(41245, 0, "'.'"), -(41246, 0, "'c'"), -(41247, 0, "'o'"), -(41248, 0, "'n'"), -(41246, 3, "'content_slice'"), -(41259, 0, "'('"), -(41260, 0, "')'"), -(41261, 0, "','"), -(41262, 0, "' '"), -(41263, 0, "'h'"), -(41264, 0, "'e'"), -(41265, 0, "'i'"), -(41266, 0, "'g'"), -(41267, 0, "'h'"), -(41268, 0, "'t'"), -(41212, 0, "':'"), -(41213, 0, "'?'"), -(41226, 0, "':'"), -(41227, 0, "'?'"), -(42720, 0, "'n // TODO: We could cache this each time the height goes up?'"), -(42586, 83, "''"), -(42805, 0, "'n '"), -(42806, 24, "''"), -(42671, 10, "'C'"), -(42710, 1, "''"), -(42749, 0, "'n '"), -(42774, 0, "' '"), -(42824, 0, "'n '"), -(42825, 28, "' }'"), -(42825, 21, "''"), -(42824, 1, "''"), -(42749, 0, "'i'"), -(42750, 0, "'f'"), -(42751, 0, "' '"), -(42183, 0, "'n '"), -(42204, 0, "'l'"), -(42205, 0, "'e'"), -(42206, 0, "'t'"), -(42207, 0, "' '"), -(42208, 0, "'c'"), -(42209, 0, "'u'"), -(42210, 0, "'r'"), -(42211, 0, "'s'"), -(42212, 0, "'o'"), -(42213, 0, "'r'"), -(42214, 0, "'_'"), -(42215, 0, "'n'"), -(42216, 0, "'o'"), -(42217, 0, "'d'"), -(42218, 0, "'e'"), -(42219, 0, "' '"), -(42220, 0, "'='"), -(42221, 0, "' '"), -(42222, 0, "'c'"), -(42223, 0, "'u'"), -(42224, 0, "'r'"), -(42225, 0, "'s'"), -(42226, 0, "'o'"), -(42227, 0, "'r'"), -(42228, 0, "'.'"), -(42229, 0, "'h'"), -(42230, 0, "'e'"), -(42231, 0, "'r'"), -(42232, 0, "'e'"), -(42229, 4, "'here_ptr()'"), -(42239, 0, "';'"), -(42240, 0, "'n '"), -(42261, 0, "'l'"), -(42262, 0, "'e'"), -(42263, 0, "'t'"), -(42264, 0, "' '"), -(42265, 0, "'c'"), -(42266, 0, "'u'"), -(42267, 0, "'r'"), -(42268, 0, "'s'"), -(42269, 0, "'o'"), -(42270, 0, "'r'"), -(42271, 0, "'_'"), -(42272, 0, "'n'"), -(42273, 0, "'o'"), -(42274, 0, "'d'"), -(42275, 0, "'e'"), -(42276, 0, "'_'"), -(42277, 0, "'h'"), -(42278, 0, "'e'"), -(42279, 0, "'i'"), -(42280, 0, "'g'"), -(42281, 0, "'h'"), -(42282, 0, "'t'"), -(42283, 0, "' '"), -(42284, 0, "'='"), -(42285, 0, "' '"), -(42286, 0, "'*'"), -(42286, 1, "''"), -(42286, 0, "'('"), -(42287, 0, "'*'"), -(42288, 0, "'c'"), -(42289, 0, "'u'"), -(42290, 0, "'r'"), -(42291, 0, "'s'"), -(42292, 0, "'o'"), -(42288, 5, "'cursor_node'"), -(42299, 0, "')'"), -(42300, 0, "'.'"), -(42301, 0, "'h'"), -(42302, 0, "'e'"), -(42303, 0, "'i'"), -(42301, 3, "'height'"), -(42307, 0, "' '"), -(42308, 0, "'a'"), -(42309, 0, "'s'"), -(42310, 0, "' '"), -(42311, 0, "'u'"), -(42312, 0, "'s'"), -(42313, 0, "'i'"), -(42314, 0, "'z'"), -(42315, 0, "'e'"), -(42316, 0, "';'"), -(42886, 0, "'c'"), -(42887, 0, "'u'"), -(42888, 0, "'r'"), -(42889, 0, "'o'"), -(42890, 0, "'s'"), -(42891, 0, "'r'"), -(42886, 6, "'cursor_node_height'"), -(42904, 0, "' '"), -(42905, 0, "'>'"), -(42906, 0, "'='"), -(42907, 0, "' '"), -(42908, 0, "'('"), -(42909, 0, "'*'"), -(42910, 0, "'n'"), -(42911, 0, "')'"), -(42912, 0, "'.'"), -(42913, 0, "'h'"), -(42914, 0, "'e'"), -(42915, 0, "'i'"), -(42916, 0, "'g'"), -(42917, 0, "'h'"), -(42918, 0, "'t'"), -(42919, 0, "' '"), -(42920, 0, "'{'"), -(42921, 0, "'n '"), -(42922, 28, "' }'"), -(42947, 0, "' '"), -(42948, 0, "'e'"), -(42949, 0, "'l'"), -(42950, 0, "'s'"), -(42951, 0, "'e'"), -(42952, 0, "' '"), -(42953, 0, "'{'"), -(43028, 1, "''"), -(43028, 0, "'n '"), -(43029, 28, "' }'"), -(42921, 0, "'n '"), -(42950, 0, "'c'"), -(42951, 0, "'u'"), -(42952, 0, "'r'"), -(42953, 0, "'s'"), -(42954, 0, "'o'"), -(42955, 0, "'r'"), -(42950, 6, "'cursor_node'"), -(43094, 0, "';'"), -(42307, 9, "''"), -(42897, 1, "''"), -(43058, 0, "'n cursor.entries[(*n).height as usize + 1].node'"), -(43058, 0, "'n } else {'"), -(42952, 33, "''"), -(42940, 0, "'// '"), -(42940, 3, "''"), -(43025, 33, "''"), -(42952, 0, "' } else {n'"), -(43058, 74, "''"), -(43051, 1, "''"), -(43050, 1, "''"), -(43049, 1, "''"), -(43048, 1, "''"), -(43047, 1, "''"), -(43047, 0, "'e'"), -(43540, 0, "'// '"), -(41192, 0, "'// '"), -(39147, 0, "'// '"), -(39176, 0, "'// '"), -(20273, 0, "'// '"), -(18537, 0, "'// '"), -(19421, 0, "'_'"), -(52080, 0, "'// '"), -(52035, 0, "'// '"), -(51961, 0, "'// '"), -(51564, 0, "'// '"), -(51755, 0, "'// '"), -(51525, 0, "'// '"), -(51525, 3, "''"), -(51755, 3, "''"), -(51564, 3, "''"), -(52086, 3, "''"), -(52038, 3, "''"), -(51961, 3, "''"), -(1572, 2, "'5'"), -(1182, 1, "''"), -(1182, 0, "'1'"), -(1183, 0, "'0'"), -(42851, 76, "''"), -(42779, 24, "' '"), -(42779, 0, "' (*n).parent = if cursor_node_height > (*n).height {n'"), -(42931, 40, "''"), -(42855, 0, "' cursor_noden'"), -(42971, 33, "''"), -(42895, 0, "' } else {n'"), -(42965, 0, "'W'"), -(42966, 0, "'e'"), -(42967, 0, "' '"), -(42968, 0, "'s'"), -(42969, 0, "'h'"), -(42970, 0, "'o'"), -(42971, 0, "'u'"), -(42972, 0, "'l'"), -(42973, 0, "'d'"), -(42974, 0, "' '"), -(42975, 0, "'b'"), -(42976, 0, "'e'"), -(42977, 0, "' '"), -(42978, 0, "'a'"), -(42979, 0, "'b'"), -(42980, 0, "'l'"), -(42981, 0, "'e'"), -(42982, 0, "' '"), -(42983, 0, "'t'"), -(42984, 0, "'o'"), -(42985, 0, "' '"), -(42986, 1, "''"), -(42986, 0, "'c'"), -(42928, 97, "' // TODO: We should be able to cache this each timen // the height goes up'"), -(43056, 0, "'.'"), -(42518, 0, "'n '"), -(42543, 0, "'l'"), -(42544, 0, "'e'"), -(42545, 0, "'t'"), -(42546, 0, "' '"), -(42547, 0, "'n'"), -(42548, 0, "'-'"), -(42548, 1, "''"), -(42548, 0, "'_'"), -(42549, 0, "'h'"), -(42550, 0, "'e'"), -(42551, 0, "'i'"), -(42552, 0, "'g'"), -(42553, 0, "'h'"), -(42554, 0, "'t'"), -(42555, 0, "' '"), -(42556, 0, "'='"), -(42557, 0, "' '"), -(42558, 0, "'('"), -(42559, 0, "'*'"), -(42560, 0, "'n'"), -(42561, 0, "')'"), -(42562, 0, "'.'"), -(42563, 0, "'h'"), -(42564, 0, "'e'"), -(42565, 0, "'i'"), -(42566, 0, "'g'"), -(42567, 0, "'h'"), -(42568, 0, "'t'"), -(42569, 0, "';'"), -(42519, 51, "''"), -(42518, 1, "''"), -(42599, 0, "'n '"), -(42624, 0, "' let n_height = (*n).height;'"), -(42600, 48, "' '"), -(43270, 11, "'n'"), -(43153, 11, "'n'"), -(42893, 11, "'n'"), -(43251, 0, "'_'"), -(43144, 0, "'_'"), -(42894, 0, "'_'"), -(43254, 0, "'h'"), -(43146, 0, "'h'"), -(42895, 0, "'h'"), -(43257, 0, "'e'"), -(43148, 0, "'e'"), -(42896, 0, "'e'"), -(43260, 0, "'i'"), -(43150, 0, "'i'"), -(42897, 0, "'i'"), -(43263, 0, "'g'"), -(43152, 0, "'g'"), -(42898, 0, "'g'"), -(43266, 0, "'h'"), -(43154, 0, "'h'"), -(42899, 0, "'h'"), -(43269, 0, "'t'"), -(43156, 0, "'t'"), -(42900, 0, "'t'"), -(43287, 0, "'n n assert_eq!((*n).parent, e);n (*n).parent = if cursor_node_height > n_height {n cursor_noden } else {n // TODO: We should be able to cache this each timen // the height goes up.n cursor.entries[n_height as usize].noden };nn skip_height = usize::max(skip_height, n_height as usize - 1);'"), -(43226, 0, "'// '"), -(43198, 0, "'// '"), -(43131, 0, "'// '"), -(43080, 0, "'// '"), -(43001, 0, "'// '"), -(42968, 0, "'// '"), -(42928, 0, "'// '"), -(42855, 0, "'// '"), -(42803, 0, "'// '"), -(43391, 0, "'n '"), -(43416, 0, "'n '"), -(43392, 24, "''"), -(43364, 53, "''"), -(42803, 3, "''"), -(42830, 0, "'n '"), -(43361, 0, "'n '"), -(42831, 24, "''"), -(43362, 0, "'i'"), -(43363, 0, "'f'"), -(43364, 0, "' '"), -(43365, 0, "'n'"), -(43366, 0, "'_'"), -(43367, 0, "'h'"), -(43368, 0, "'e'"), -(43369, 0, "'i'"), -(43370, 0, "'g'"), -(43371, 0, "'h'"), -(43372, 0, "'t'"), -(43373, 0, "' '"), -(43374, 0, "'>'"), -(43375, 0, "' '"), -(43376, 0, "'s'"), -(43377, 0, "'k'"), -(43378, 0, "'i'"), -(43379, 0, "'p'"), -(43380, 0, "'_'"), -(43381, 0, "'h'"), -(43382, 0, "'e'"), -(43383, 0, "'i'"), -(43376, 8, "'skip_height'"), -(43373, 0, "' '"), -(43374, 0, "'a'"), -(43375, 0, "'s'"), -(43376, 0, "' '"), -(43377, 0, "'u'"), -(43378, 0, "'s'"), -(43379, 0, "'i'"), -(43380, 0, "'z'"), -(43381, 0, "'e'"), -(43396, 0, "' '"), -(43397, 0, "'{'"), -(43398, 0, "'n '"), -(43427, 0, "'n '"), -(43399, 28, "''"), -(43400, 28, "' }'"), -(43399, 0, "' '"), -(43427, 0, "'s'"), -(43428, 0, "'k'"), -(43429, 0, "'i'"), -(43430, 0, "'p'"), -(43431, 0, "'_'"), -(43427, 5, "'skip_height'"), -(43438, 0, "' '"), -(43439, 0, "'='"), -(43440, 0, "' '"), -(43441, 0, "'n'"), -(43442, 0, "'_'"), -(43443, 0, "'e'"), -(43444, 0, "'i'"), -(43444, 1, "''"), -(43443, 1, "''"), -(43443, 0, "'h'"), -(43444, 0, "'e'"), -(43445, 0, "'i'"), -(43446, 0, "'g'"), -(43447, 0, "'h'"), -(43448, 0, "'t'"), -(43449, 0, "' '"), -(43450, 0, "'='"), -(43450, 1, "''"), -(43450, 0, "'a'"), -(43451, 0, "'s'"), -(43452, 0, "' '"), -(43453, 0, "'u'"), -(43454, 0, "'s'"), -(43455, 0, "'i'"), -(43456, 0, "'z'"), -(43457, 0, "'e'"), -(43458, 0, "';'"), -(43459, 0, "'n '"), -(43935, 0, "'// '"), -(43460, 28, "''"), -(42324, 0, "'n '"), -(42345, 0, "'l'"), -(42346, 0, "'e'"), -(42347, 0, "'t'"), -(42348, 0, "' '"), -(42349, 0, "'m'"), -(42350, 0, "'u'"), -(42351, 0, "'t'"), -(42352, 0, "' '"), -(42353, 0, "'n'"), -(42354, 0, "'e'"), -(42355, 0, "'w'"), -(42356, 0, "'_'"), -(42357, 0, "'p'"), -(42358, 0, "'a'"), -(42359, 0, "'r'"), -(42360, 0, "'e'"), -(42361, 0, "'n'"), -(42362, 0, "'t'"), -(42363, 0, "' '"), -(42364, 0, "'='"), -(42365, 0, "' '"), -(42366, 0, "'c'"), -(42367, 0, "'u'"), -(42368, 0, "'r'"), -(42369, 0, "'s'"), -(42370, 0, "'o'"), -(42371, 0, "'r'"), -(42372, 0, "'_'"), -(42373, 0, "'n'"), -(42374, 0, "'o'"), -(42375, 0, "'d'"), -(42376, 0, "'e'"), -(42377, 0, "';'"), -(43514, 0, "' '"), -(43542, 0, "'if cursor_node_height > n_height'"), -(43564, 1, "''"), -(43564, 0, "'<'"), -(43565, 0, "'='"), -(43575, 0, "' '"), -(43576, 0, "'{'"), -(43577, 0, "'n '"), -(43610, 0, "'n '"), -(43578, 32, "''"), -(43579, 32, "' }'"), -(43567, 8, "''"), -(43566, 1, "''"), -(43565, 1, "''"), -(43564, 1, "''"), -(43563, 1, "''"), -(43545, 0, "'>'"), -(43546, 0, "'='"), -(43547, 0, "' '"), -(43545, 0, "'n_height'"), -(43553, 0, "' '"), -(43578, 0, "' '"), -(43610, 0, "'n'"), -(43611, 0, "'e'"), -(43612, 0, "'w'"), -(43613, 0, "'_'"), -(43614, 0, "'p'"), -(43615, 0, "'a'"), -(43616, 0, "'r'"), -(43617, 0, "'e'"), -(43618, 0, "'n'"), -(43619, 0, "'t'"), -(43620, 0, "' '"), -(43621, 0, "'='"), -(43622, 0, "' '"), -(43623, 0, "'cursor.entries[n_height as usize].node'"), -(43638, 17, "'s'"), -(43639, 0, "'k'"), -(43640, 0, "'i'"), -(43641, 0, "'p'"), -(43642, 0, "'_'"), -(43643, 0, "'h'"), -(43638, 6, "'skip_height'"), -(43775, 331, "''"), -(43775, 0, "'n'"), -(43776, 0, "'e'"), -(43777, 0, "'w'"), -(43778, 0, "'_'"), -(43779, 0, "'p'"), -(43780, 0, "'a'"), -(43775, 6, "'new_parent'"), -(43785, 0, "';'"), -(43787, 90, "''"), -(43761, 0, "'// '"), -(43710, 0, "'// '"), -(43680, 0, "'// '"), -(43602, 0, "'// '"), -(43538, 0, "'// '"), -(43477, 0, "'// '"), -(43416, 0, "'// '"), -(43302, 3, "''"), -(43271, 3, "''"), -(43201, 3, "''"), -(43147, 3, "''"), -(43065, 3, "''"), -(43029, 3, "''"), -(42986, 3, "''"), -(42910, 3, "''"), -(42884, 0, "'n '"), -(42909, 0, "'a'"), -(42910, 0, "'s'"), -(42911, 0, "'s'"), -(42912, 0, "'e'"), -(42913, 0, "'r'"), -(42914, 0, "'t'"), -(42915, 0, "'!'"), -(42916, 0, "'('"), -(42917, 0, "'s'"), -(42918, 0, "'k'"), -(42919, 0, "'i'"), -(42920, 0, "'p'"), -(42917, 4, "'skip_height'"), -(42917, 0, "'n'"), -(42918, 0, "'_'"), -(42919, 0, "'h'"), -(42920, 0, "'e'"), -(42921, 0, "'i'"), -(42922, 0, "'g'"), -(42923, 0, "'h'"), -(42924, 0, "'t'"), -(42925, 0, "' '"), -(42926, 0, "'>'"), -(42927, 0, "'='"), -(42928, 0, "' '"), -(42940, 0, "')'"), -(42941, 0, "';'"), -(42925, 0, "' '"), -(42926, 0, "'a'"), -(42927, 0, "'s'"), -(42928, 0, "' '"), -(42929, 0, "'u'"), -(42930, 0, "'s'"), -(42931, 0, "'i'"), -(42932, 0, "'z'"), -(42933, 0, "'e'"), -(42704, 0, "' '"), -(42705, 0, "'a'"), -(42706, 0, "'s'"), -(42707, 0, "' '"), -(42708, 0, "'u'"), -(42709, 0, "'s'"), -(42710, 0, "'i'"), -(42711, 0, "'z'"), -(42712, 0, "'e'"), -(42935, 8, "''"), -(42934, 1, "''"), -(42323, 0, "' '"), -(42324, 0, "'a'"), -(42325, 0, "'s'"), -(42326, 0, "' '"), -(42327, 0, "'u'"), -(42328, 0, "'s'"), -(42329, 0, "'i'"), -(42330, 0, "'z'"), -(42331, 0, "'e'"), -(43357, 0, "'// '"), -(43471, 3, "''"), -(43532, 3, "''"), -(43774, 3, "''"), -(43482, 9, "''"), -(43549, 9, "''"), -(43482, 0, "' '"), -(43483, 0, "'-'"), -(43484, 0, "' '"), -(43485, 0, "'1'"), -(43357, 3, "''"), -(43524, 0, "'// '"), -(43468, 0, "'// '"), -(43763, 0, "'// '"), -(43468, 3, "''"), -(43524, 3, "''"), -(43757, 3, "''"), -(43550, 0, "' '"), -(43551, 0, "'-'"), -(43552, 0, "' '"), -(43553, 0, "'1'"), -(43357, 0, "'// '"), -(43329, 0, "'// '"), -(43262, 0, "'// '"), -(43211, 0, "'// '"), -(43132, 0, "'// '"), -(43099, 0, "'// '"), -(43059, 0, "'// '"), -(42986, 0, "'// '"), -(43752, 3, "''"), -(43671, 3, "''"), -(43604, 3, "''"), -(43715, 0, "' '"), -(43716, 0, "'-'"), -(43717, 0, "' '"), -(43717, 1, "''"), -(43716, 1, "''"), -(43716, 0, "'+'"), -(43717, 0, "' '"), -(43718, 0, "'1'"), -(43831, 3, "''"), -(43621, 1, "''"), -(43621, 0, "'='"), -(42197, 1, "''"), -(42197, 0, "'1'"), -(42574, 0, "' '"), -(42575, 0, "'-'"), -(42576, 0, "' '"), -(42577, 0, "'1'"), -(42962, 0, "' '"), -(42963, 0, "'-'"), -(42964, 0, "' '"), -(42965, 0, "'1'"), -(43514, 1, "''"), -(43513, 1, "''"), -(43512, 1, "''"), -(43511, 1, "''"), -(43581, 1, "''"), -(43580, 1, "''"), -(43579, 1, "''"), -(43578, 1, "''"), -(43718, 1, "''"), -(43717, 1, "''"), -(43716, 1, "''"), -(43715, 1, "''"), -(43715, 0, "' + 1'"), -(43578, 0, "' - 1'"), -(43511, 0, "' - 1'"), -(42964, 2, "''"), -(42962, 2, "''"), -(42576, 2, "''"), -(42574, 2, "''"), -(42197, 1, "''"), -(42197, 0, "'0'"), -(43755, 26, "''"), -(43726, 28, "' '"), -(43644, 32, "' '"), -(43580, 28, "' '"), -(43580, 0, "' }n'"), -(43760, 32, "' '"), -(43674, 36, "' '"), -(43606, 32, "' '"), -(43752, 28, "' '"), -(43670, 32, "' '"), -(43606, 28, "' '"), -(43769, 0, "'n skip_height = n_height - 1;'"), -(43524, 56, "''"), -(43713, 56, "''"), -(43524, 0, "' skip_height = n_height - 1;n'"), -(43744, 24, "' '"), -(43666, 28, "' '"), -(43606, 24, "' '"), -(43752, 28, "' '"), -(43670, 32, "' '"), -(43606, 28, "' '"), -(43793, 0, "'n }'"), -(43760, 32, "' '"), -(43674, 36, "' '"), -(43606, 32, "' '"), -(43580, 26, "''"), -(42388, 0, "' if n_height >= cursor_node_height {n new_parent = cursor.entries[skip_height + 1].noden }'"), -(42534, 28, "' '"), -(42452, 32, "' '"), -(42388, 28, "' '"), -(42411, 8, "'(*n).height as usize'"), -(42411, 20, "'g'"), -(42412, 0, "'e'"), -(42413, 0, "'u'"), -(42414, 0, "'g'"), -(42414, 1, "''"), -(42413, 1, "''"), -(42412, 1, "''"), -(42411, 1, "''"), -(42411, 0, "'h'"), -(42412, 0, "'e'"), -(42413, 0, "'i'"), -(42414, 0, "'g'"), -(42415, 0, "'h'"), -(42416, 0, "'t'"), -(42408, 33, "''"), -(42375, 0, "'if height >= cursor_node_height {'"), -(42408, 0, "'n '"), -(42444, 1, "''"), -(42445, 20, "' }'"), -(42466, 0, "' '"), -(42467, 0, "'e'"), -(42468, 0, "'l'"), -(42469, 0, "'s'"), -(42470, 0, "'e'"), -(42471, 0, "' '"), -(42472, 0, "'{'"), -(42498, 13, "''"), -(42556, 0, "'n '"), -(42557, 20, "''"), -(42556, 0, "';'"), -(42558, 0, "' '"), -(42556, 1, "''"), -(42556, 21, "''"), -(42498, 0, "'new_parent = '"), -(42471, 2, "''"), -(42466, 5, "''"), -(42445, 21, "' '"), -(42444, 0, "';'"), -(42408, 25, "''"), -(42375, 33, "''"), -(42408, 0, "'if height >= cursor_node_height {'"), -(42411, 6, "''"), -(42411, 0, "'geug'"), -(42411, 4, "'(*n).height as usize'"), -(42411, 20, "'geug'"), -(42411, 4, "''"), -(42411, 0, "'height'"), -(42408, 33, "''"), -(42375, 0, "'if height >= cursor_node_height {'"), -(42408, 0, "'n '"), -(42444, 1, "''"), -(42445, 20, "' }'"), -(42466, 0, "' else'"), -(42471, 0, "' {'"), -(42498, 13, "''"), -(42556, 0, "'n '"), -(42557, 20, "''"), -(42556, 0, "';'"), -(42534, 0, "'n } else {'"), -(42445, 29, "''"), -(42505, 0, "'n cursor_node'"), -(42409, 36, "''"), -(42505, 29, "''"), -(42470, 0, "' } else {n'"), -(43131, 506, "''"), -(43372, 0, "'arent'"), -(43368, 3, "''"), -(43220, 0, "'arent'"), -(43216, 3, "''"), -(43178, 0, "'arent'"), -(43174, 3, "''"), -(43121, 0, "'arent'"), -(43117, 3, "''"), -(42737, 0, "'arent'"), -(42733, 3, "''"), -(42452, 0, "'arent'"), -(42448, 3, "''"), -(42187, 0, "'arent'"), -(42183, 3, "''"), -(42199, 1, "''"), -(42199, 0, "'1'"), -(42466, 1, "''"), -(42465, 1, "''"), -(42464, 1, "''"), -(42463, 1, "''"), -(42746, 0, "' '"), -(42747, 0, "'-'"), -(42748, 0, "' '"), -(42749, 0, "'1'"), -(43136, 0, "' '"), -(43137, 0, "'-'"), -(43138, 0, "' '"), -(43139, 0, "'1'"), -(43199, 0, "' '"), -(43200, 0, "'-'"), -(43201, 0, "' '"), -(43202, 0, "'1'"), -(43182, 1, "''"), -(43181, 1, "''"), -(43180, 1, "''"), -(43179, 1, "''"), -(43198, 1, "''"), -(43197, 1, "''"), -(43196, 1, "''"), -(43195, 1, "''"), -(43253, 1, "''"), -(43252, 1, "''"), -(43251, 1, "''"), -(43250, 1, "''"), -(43392, 1, "''"), -(43391, 1, "''"), -(43390, 1, "''"), -(43389, 1, "''"), -(1939, 0, "'/'"), -(1940, 0, "'/'"), -(1938, 0, "';'"), -(31737, 271, "''"), -(31368, 86, "''"), -(1934, 4, "'C'"), -(1935, 0, "'l'"), -(1936, 0, "'o'"), -(1937, 0, "'n'"), -(1938, 0, "'e'"), -(29029, 0, "'.'"), -(29030, 0, "'c'"), -(29031, 0, "'l'"), -(29032, 0, "'o'"), -(29033, 0, "'n'"), -(29034, 0, "'e'"), -(29035, 0, "'('"), -(29036, 0, "')'"), -(29029, 8, "''"), -(29008, 1, "''"), -(29007, 1, "''"), -(29006, 1, "''"), -(29005, 1, "''"), -(29005, 0, "'c'"), -(29006, 0, "'l'"), -(29007, 0, "'o'"), -(29008, 0, "'n'"), -(29009, 0, "'e'"), -(29005, 5, "''"), -(29005, 0, "'copy'"), -(29029, 0, "'.clone()'"), -(29029, 8, "''"), -(1934, 5, "'Copy'"), -(1934, 4, "'Clone'"), -(1934, 5, "'Copy'"), -(1934, 4, "'U'"), -(1935, 0, "'n'"), -(1936, 0, "'p'"), -(1937, 0, "'i'"), -(1938, 0, "'n'"), -(1933, 0, "' '"), -(1934, 0, "'s'"), -(1935, 0, "'t'"), -(1936, 0, "'d'"), -(1937, 0, "':'"), -(1938, 0, "':'"), -(1939, 0, "'p'"), -(1940, 0, "'i'"), -(1939, 2, "'pin'"), -(1942, 0, "':'"), -(1943, 0, "':'"), -(1944, 1, "''"), -(1944, 5, "''"), -(1944, 0, "'I'"), -(1944, 1, "''"), -(1944, 0, "'U'"), -(1945, 0, "'n'"), -(1946, 0, "'p'"), -(1947, 0, "'i'"), -(1931, 17, "''"), -(28422, 0, "','"), -(28423, 0, "' '"), -(28424, 0, "'I'"), -(28602, 0, "','"), -(28603, 0, "'n '"), -(28603, 13, "''"), -(28603, 0, "' '"), -(28604, 0, "'I'"), -(28605, 0, "':'"), -(28606, 0, "' '"), -(28607, 0, "'E'"), -(28608, 0, "'x'"), -(28609, 0, "'a'"), -(28607, 3, "'ExactSizeIterator'"), -(28624, 0, "'<'"), -(28625, 0, "'I'"), -(28626, 0, "'t'"), -(28627, 0, "'e'"), -(28628, 0, "'m'"), -(28629, 0, "'='"), -(28630, 0, "'C'"), -(28631, 0, "':'"), -(28632, 0, "':'"), -(28633, 0, "'I'"), -(28634, 0, "'t'"), -(28635, 0, "'e'"), -(28636, 0, "'m'"), -(28637, 0, "'>'"), -(28472, 10, "''"), -(28472, 0, "'I'"), -(28964, 0, "'/'"), -(28965, 0, "'/'"), -(28963, 0, "' '"), -(28964, 0, "'i'"), -(28965, 0, "'t'"), -(28965, 1, "''"), -(28964, 1, "''"), -(28964, 0, "'c'"), -(28965, 0, "'o'"), -(28966, 0, "'n'"), -(28967, 0, "'t'"), -(28968, 0, "'e'"), -(28969, 0, "'n'"), -(28970, 0, "'t'"), -(28971, 0, "'s'"), -(28972, 0, "'.'"), -(28973, 0, "'s'"), -(28974, 0, "'i'"), -(28975, 0, "'z'"), -(28973, 3, "'size_hint()'"), -(28984, 0, "';'"), -(28984, 19, "''"), -(28984, 0, "' '"), -(28973, 9, "'l'"), -(28974, 0, "'e'"), -(28975, 0, "'n'"), -(28973, 3, "'size_hint'"), -(28984, 1, "''"), -(28984, 0, "'; //contents.len() '"), -(28984, 1, "''"), -(28973, 11, "'siz'"), -(28964, 12, "''"), -(28964, 0, "'it'"), -(28963, 3, "''"), -(28964, 2, "''"), -(28994, 0, "'// '"), -(28985, 0, "'n '"), -(28994, 0, "'n '"), -(28986, 8, "''"), -(28987, 8, "''"), -(28986, 0, "'n '"), -(28995, 0, "'f'"), -(28996, 0, "'o'"), -(28997, 0, "'r'"), -(28995, 3, "''"), -(28995, 0, "'f'"), -(28996, 0, "'o'"), -(28997, 0, "'r'"), -(28998, 0, "' '"), -(28999, 0, "'i'"), -(29000, 0, "'t'"), -(29001, 0, "'e'"), -(29002, 0, "'m'"), -(29003, 0, "' '"), -(29004, 0, "'i'"), -(29005, 0, "'n'"), -(29006, 0, "' '"), -(29007, 0, "'c'"), -(29008, 0, "'o'"), -(29009, 0, "'n'"), -(29010, 0, "'t'"), -(29011, 0, "'e'"), -(29012, 0, "'n'"), -(29013, 0, "'t'"), -(29014, 0, "'s'"), -(29015, 0, "' '"), -(29016, 0, "'{'"), -(29017, 0, "'n '"), -(29030, 0, "'n '"), -(29018, 12, "''"), -(29019, 12, "' }'"), -(29018, 0, "' '"), -(29030, 0, "'new_node.items[..contents.len()]'"), -(29045, 16, "''"), -(29045, 0, "'0'"), -(29047, 0, "' '"), -(29048, 0, "'='"), -(29049, 0, "' '"), -(29050, 0, "'i'"), -(29051, 0, "'t'"), -(29052, 0, "'e'"), -(29053, 0, "'m'"), -(29054, 0, "';'"), -(28934, 0, "'n '"), -(28943, 0, "'l'"), -(28944, 0, "'e'"), -(28945, 0, "'t'"), -(28946, 0, "' '"), -(28947, 0, "'l'"), -(28948, 0, "'e'"), -(28949, 0, "'n'"), -(28950, 0, "' '"), -(28951, 0, "'='"), -(28952, 0, "' '"), -(28983, 14, "''"), -(28953, 0, "'contents.len()'"), -(28967, 0, "';'"), -(28998, 0, "'l'"), -(28999, 0, "'e'"), -(29000, 0, "'n'"), -(29000, 1, "'ms'"), -(28998, 1, "'num_it'"), -(28949, 1, "'ms'"), -(28947, 1, "'num_it'"), -(29034, 16, "''"), -(29034, 0, "'i'"), -(29035, 0, "' '"), -(29036, 0, "'i'"), -(29037, 0, "'n'"), -(29038, 0, "' '"), -(29039, 0, "'0'"), -(29040, 0, "'.'"), -(29041, 0, "'.'"), -(29042, 0, "'n'"), -(29043, 0, "'u'"), -(29044, 0, "'m'"), -(29045, 0, "'_'"), -(29046, 0, "'i'"), -(29042, 5, "'num_items'"), -(29081, 1, "''"), -(29081, 0, "'i'"), -(29086, 4, "'c'"), -(29087, 0, "'o'"), -(29088, 0, "'n'"), -(29089, 0, "'t'"), -(29090, 0, "'e'"), -(29091, 0, "'n'"), -(29092, 0, "'t'"), -(29093, 0, "'s'"), -(29094, 0, "'.'"), -(29095, 0, "'n'"), -(29096, 0, "'e'"), -(29095, 2, "'next()'"), -(29101, 0, "'.'"), -(29102, 0, "'u'"), -(29103, 0, "'n'"), -(29104, 0, "'w'"), -(29105, 0, "'r'"), -(29102, 4, "'unwrap'"), -(29108, 0, "'('"), -(29109, 0, "')'"), -(28472, 0, "'7'"), -(28472, 1, "''"), -(28472, 0, "'&'"), -(28473, 0, "'m'"), -(28474, 0, "'i'"), -(28475, 0, "'u'"), -(28476, 0, "'t'"), -(28477, 0, "' '"), -(28477, 1, "''"), -(28476, 1, "''"), -(28475, 1, "''"), -(28474, 1, "''"), -(28474, 0, "'u'"), -(28475, 0, "'t'"), -(28476, 0, "' '"), -(28603, 17, "'I'"), -(28604, 0, "'t'"), -(28605, 0, "'e'"), -(28606, 0, "'r'"), -(28607, 0, "'a'"), -(28608, 0, "'t'"), -(28609, 0, "'o'"), -(28610, 0, "'r'"), -(28479, 0, "' '"), -(28480, 0, "'n'"), -(28481, 0, "'u'"), -(28482, 0, "'m'"), -(28483, 0, "'_'"), -(28484, 0, "'i'"), -(28485, 0, "'t'"), -(28486, 0, "'e'"), -(28487, 0, "'m'"), -(28488, 0, "'s'"), -(28489, 0, "':'"), -(28490, 0, "' '"), -(28491, 0, "'u'"), -(28492, 0, "'s'"), -(28493, 0, "'i'"), -(28494, 0, "'z'"), -(28495, 0, "'e'"), -(28496, 0, "','"), -(28736, 0, "'// '"), -(28809, 0, "'// '"), -(28809, 3, "''"), -(28817, 14, "'n'"), -(28818, 0, "'u'"), -(28819, 0, "'m'"), -(28820, 0, "'_'"), -(28821, 0, "'i'"), -(28822, 0, "'t'"), -(28823, 0, "'e'"), -(28824, 0, "'m'"), -(28825, 0, "'s'"), -(28955, 0, "'// '"), -(29049, 17, "''"), -(29049, 0, "'('"), -(29050, 0, "'s'"), -(29051, 0, "'l'"), -(29052, 0, "'o'"), -(29053, 0, "'t'"), -(29054, 0, "','"), -(29055, 0, "' '"), -(29056, 0, "'i'"), -(29057, 0, "'t'"), -(29058, 0, "'e'"), -(29059, 0, "'m'"), -(29060, 0, "')'"), -(29061, 0, "' '"), -(29062, 0, "'i'"), -(29063, 0, "'n'"), -(29064, 0, "' '"), -(29064, 1, "''"), -(29061, 3, "''"), -(29055, 6, "''"), -(29055, 0, "' item)'"), -(29061, 0, "' in'"), -(29064, 0, "' '"), -(29065, 0, "'n'"), -(29066, 0, "'e'"), -(29067, 0, "'w'"), -(29068, 0, "'_'"), -(29065, 4, "'new_node'"), -(29073, 0, "'.'"), -(29074, 0, "'i'"), -(29075, 0, "'t'"), -(29076, 0, "'e'"), -(29077, 0, "'m'"), -(29078, 0, "'s'"), -(29079, 0, "'['"), -(29080, 0, "'.'"), -(29081, 0, "'.'"), -(29082, 0, "'n'"), -(29083, 0, "'u'"), -(29084, 0, "'m'"), -(29085, 0, "'_'"), -(29086, 0, "'i'"), -(29087, 0, "'t'"), -(29088, 0, "'e'"), -(29089, 0, "'m'"), -(29090, 0, "'s'"), -(29091, 0, "']'"), -(29092, 0, "'.'"), -(29093, 0, "'z'"), -(29094, 0, "'i'"), -(29095, 0, "'p'"), -(29096, 0, "'('"), -(29097, 0, "'c'"), -(29098, 0, "'u'"), -(29099, 0, "'r'"), -(29097, 3, "''"), -(29097, 0, "'c'"), -(29098, 0, "'o'"), -(29099, 0, "'n'"), -(29100, 0, "'t'"), -(29101, 0, "'e'"), -(29102, 0, "'n'"), -(29103, 0, "'t'"), -(29104, 0, "'s'"), -(29105, 0, "')'"), -(29121, 0, "'// '"), -(29169, 0, "'n '"), -(29182, 0, "'('"), -(29182, 1, "''"), -(29182, 0, "'*'"), -(29183, 0, "'s'"), -(29184, 0, "'l'"), -(29185, 0, "'o'"), -(29186, 0, "'t'"), -(29187, 0, "' '"), -(29188, 0, "'='"), -(29189, 0, "' '"), -(29190, 0, "'i'"), -(29191, 0, "'t'"), -(29192, 0, "'e'"), -(29193, 0, "'m'"), -(29194, 0, "';'"), -(29092, 0, "'.'"), -(29093, 0, "'i'"), -(29094, 0, "'t'"), -(29095, 0, "'e'"), -(29096, 0, "'r'"), -(29097, 0, "'('"), -(29098, 0, "')'"), -(29097, 0, "'_'"), -(29098, 0, "'m'"), -(29099, 0, "'u'"), -(29100, 0, "'t'"), -(29216, 0, "'n '"), -(29225, 0, "'n '"), -(29217, 8, "''"), -(29226, 0, "'/'"), -(29227, 0, "'/'"), -(29228, 0, "' '"), -(29229, 0, "'D'"), -(29229, 1, "''"), -(29229, 0, "'T'"), -(29230, 0, "'O'"), -(29231, 0, "'D'"), -(29232, 0, "'O'"), -(29233, 0, "'O'"), -(29234, 0, "':'"), -(29235, 0, "' '"), -(29235, 1, "''"), -(29234, 1, "''"), -(29233, 1, "''"), -(29233, 0, "':'"), -(29234, 0, "' '"), -(29235, 0, "'M'"), -(29236, 0, "'a'"), -(29237, 0, "'k'"), -(29238, 0, "'e'"), -(29239, 0, "' '"), -(29240, 0, "'s'"), -(29241, 0, "'u'"), -(29242, 0, "'r'"), -(29243, 0, "'e'"), -(29244, 0, "' '"), -(29245, 0, "'t'"), -(29246, 0, "'h'"), -(29247, 0, "'e'"), -(29248, 0, "' '"), -(29249, 0, "'i'"), -(29250, 0, "'t'"), -(29251, 0, "'e'"), -(29252, 0, "'r'"), -(29253, 0, "'a'"), -(29254, 0, "'t'"), -(29255, 0, "'o'"), -(29256, 0, "'r'"), -(29257, 0, "' '"), -(29258, 0, "'w'"), -(29259, 0, "'r'"), -(29260, 0, "'o'"), -(29261, 0, "'t'"), -(29262, 0, "'e'"), -(29263, 0, "' '"), -(29264, 0, "'n'"), -(29265, 0, "'u'"), -(29266, 0, "'m'"), -(29267, 0, "'_'"), -(29268, 0, "'i'"), -(29269, 0, "'t'"), -(29270, 0, "'e'"), -(29271, 0, "'m'"), -(29272, 0, "'s'"), -(29264, 0, "'a'"), -(29265, 0, "'t'"), -(29266, 0, "' '"), -(29267, 0, "'l'"), -(29268, 0, "'e'"), -(29269, 0, "'a'"), -(29270, 0, "'s'"), -(29271, 0, "'t'"), -(29272, 0, "' '"), -(29282, 0, "'.'"), -(29283, 0, "' '"), -(29284, 0, "'I'"), -(29285, 0, "'f'"), -(29286, 0, "' '"), -(29287, 0, "'n'"), -(29288, 0, "'o'"), -(29289, 0, "'t'"), -(29290, 0, "','"), -(29291, 0, "' '"), -(29292, 0, "'w'"), -(29293, 0, "'e'"), -(29294, 0, "'''"), -(29295, 0, "'r'"), -(29296, 0, "'e'"), -(29297, 0, "' '"), -(29298, 0, "'i'"), -(29299, 0, "'n'"), -(29300, 0, "' '"), -(29301, 0, "'a'"), -(29302, 0, "'n'"), -(29303, 0, "' '"), -(29304, 0, "'i'"), -(29305, 0, "'n'"), -(29306, 0, "'v'"), -(29307, 0, "'a'"), -(29308, 0, "'l'"), -(29309, 0, "'i'"), -(29310, 0, "'d'"), -(29311, 0, "' '"), -(29312, 0, "'s'"), -(29313, 0, "'t'"), -(29314, 0, "'a'"), -(29315, 0, "'t'"), -(29316, 0, "'e'"), -(29317, 0, "'!'"), -(29318, 0, "'n '"), -(29399, 0, "'n'"), -(29328, 1, "''"), -(29319, 8, "''"), -(29390, 0, "'n'"), -(29319, 1, "''"), -(29389, 0, "'n // TODO: Make sure the iterator wrote at least num_items. If not, we're in an invalid state!'"), -(29218, 101, "''"), -(29288, 0, "'n'"), -(29217, 1, "''"), -(29390, 0, "' // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n'"), -(29398, 3, "''"), -(29459, 1, "''"), -(29389, 0, "'n '"), -(29457, 8, "'n'"), -(29390, 8, "''"), -(29450, 0, "'e'"), -(29451, 0, "'w'"), -(29449, 3, "'new_node'"), -(29457, 0, "'.'"), -(29458, 0, "'i'"), -(29458, 1, "''"), -(29457, 1, "''"), -(29457, 0, "'.'"), -(29458, 0, "'i'"), -(29459, 0, "'t'"), -(29460, 0, "'e'"), -(29461, 0, "'m'"), -(29462, 0, "'s'"), -(29463, 0, "'('"), -(29464, 0, "')'"), -(29458, 5, "'c'"), -(29459, 0, "'o'"), -(29460, 0, "'n'"), -(29461, 0, "'t'"), -(29462, 0, "'e'"), -(29463, 0, "'n'"), -(29464, 0, "'t'"), -(29465, 0, "'_'"), -(29466, 0, "'s'"), -(29467, 0, "'l'"), -(29468, 0, "'i'"), -(29469, 0, "'c'"), -(29470, 0, "'e'"), -(28621, 8, "'E'"), -(28622, 0, "'x'"), -(28623, 0, "'a'"), -(28624, 0, "'c'"), -(28621, 4, "'ExactSizeIterator'"), -(28855, 0, "'n '"), -(28864, 0, "'d'"), -(28865, 0, "'e'"), -(28866, 0, "'b'"), -(28867, 0, "'u'"), -(28868, 0, "'g'"), -(28864, 5, "'debug_assert!'"), -(28877, 0, "'('"), -(28878, 0, "'c'"), -(28879, 0, "'o'"), -(28880, 0, "'n'"), -(28881, 0, "'t'"), -(28882, 0, "'e'"), -(28883, 0, "'n'"), -(28884, 0, "'t'"), -(28885, 0, "'s'"), -(28886, 0, "'.'"), -(28887, 0, "'l'"), -(28888, 0, "'e'"), -(28889, 0, "'n'"), -(28890, 0, "'('"), -(28891, 0, "')'"), -(28892, 0, "' '"), -(28893, 0, "'>'"), -(28894, 0, "' '"), -(28894, 1, "''"), -(28894, 0, "'='"), -(28895, 0, "' '"), -(28896, 0, "'n'"), -(28897, 0, "'u'"), -(28898, 0, "'m'"), -(28899, 0, "'_'"), -(28900, 0, "'i'"), -(28901, 0, "'t'"), -(28902, 0, "'e'"), -(28896, 7, "'num_items'"), -(28905, 0, "')'"), -(28906, 0, "';'"), -(29537, 1, "''"), -(29349, 102, "''"), -(32303, 8, "'new_node.content_slice()'"), -(32600, 9, "'m'"), -(32601, 0, "'u'"), -(32602, 0, "'t'"), -(32603, 0, "' '"), -(32604, 0, "'I'"), -(32552, 0, "','"), -(32553, 0, "' '"), -(32554, 0, "'I'"), -(32689, 0, "','"), -(32690, 0, "' '"), -(32691, 0, "', I: ExactSizeIterator'"), -(32692, 1, "''"), -(32691, 1, "''"), -(32690, 1, "''"), -(32690, 0, "' '"), -(33161, 0, "'// '"), -(34474, 0, "' c[..].copy_within(item_idx..e_num_items,n item_idx + num_inserted_items);n'"), -(34656, 0, "'// '"), -(34599, 0, "'// '"), -(34473, 0, "'n '"), -(34490, 0, "'/'"), -(34491, 0, "'/'"), -(34492, 0, "' '"), -(34493, 0, "'C'"), -(34494, 0, "'a'"), -(34495, 0, "'n'"), -(34496, 0, "'''"), -(34497, 0, "'t'"), -(34498, 0, "' '"), -(34499, 0, "'u'"), -(34500, 0, "'s'"), -(34501, 0, "'e'"), -(34502, 0, "' '"), -(34503, 0, "'c'"), -(34504, 0, "'o'"), -(34505, 0, "'p'"), -(34506, 0, "'y'"), -(34507, 0, "'_'"), -(34508, 0, "'w'"), -(34509, 0, "'i'"), -(34510, 0, "'t'"), -(34511, 0, "'h'"), -(34512, 0, "'i'"), -(34513, 0, "'n'"), -(34514, 0, "' '"), -(34515, 0, "'b'"), -(34516, 0, "'e'"), -(34517, 0, "'c'"), -(34518, 0, "'a'"), -(34519, 0, "'u'"), -(34520, 0, "'s'"), -(34521, 0, "'e'"), -(34522, 0, "' '"), -(34523, 0, "'w'"), -(34524, 0, "'e'"), -(34525, 0, "' '"), -(34526, 0, "'a'"), -(34527, 0, "'r'"), -(34528, 0, "'e'"), -(34529, 0, "'n'"), -(34530, 0, "'''"), -(34531, 0, "'t'"), -(34532, 0, "' '"), -(34533, 0, "'s'"), -(34534, 0, "'u'"), -(34535, 0, "'r'"), -(34536, 0, "'e'"), -(34537, 0, "' '"), -(34538, 0, "'i'"), -(34539, 0, "'f'"), -(34540, 0, "' '"), -(34541, 0, "'i'"), -(34541, 1, "''"), -(34541, 0, "'t'"), -(34542, 0, "'h'"), -(34543, 0, "'e'"), -(34544, 0, "' '"), -(34545, 0, "'t'"), -(34546, 0, "'y'"), -(34547, 0, "'p'"), -(34548, 0, "'e'"), -(34549, 0, "' '"), -(34550, 0, "'i'"), -(34551, 0, "'m'"), -(34552, 0, "'p'"), -(34553, 0, "'l'"), -(34554, 0, "'e'"), -(34555, 0, "'m'"), -(34556, 0, "'e'"), -(34557, 0, "'n'"), -(34558, 0, "'t'"), -(34559, 0, "'s'"), -(34560, 0, "' '"), -(34561, 0, "'C'"), -(34562, 0, "'o'"), -(34563, 0, "'p'"), -(34564, 0, "'y'"), -(34565, 0, "'.'"), -(34566, 0, "' '"), -(34567, 0, "'M'"), -(34567, 1, "''"), -(34567, 0, "'M'"), -(34568, 0, "'e'"), -(34569, 0, "'m'"), -(34570, 0, "'m'"), -(34571, 0, "'o'"), -(34572, 0, "'v'"), -(34573, 0, "'e'"), -(34574, 0, "' '"), -(34575, 0, "'i'"), -(34576, 0, "'n'"), -(34577, 0, "'s'"), -(34578, 0, "'t'"), -(34579, 0, "'e'"), -(34580, 0, "'a'"), -(34581, 0, "'d'"), -(34582, 0, "'.'"), -(34600, 92, "''"), -(34600, 0, "' ptr::copy(n &c[leading_bytes + removed_bytes],n &mut c[leading_bytes],n trailing_bytes);'"), -(34737, 24, "' '"), -(34690, 24, "' '"), -(34631, 24, "' '"), -(34584, 36, "' '"), -(34574, 9, "' '"), -(34575, 0, "'t'"), -(34576, 0, "'h'"), -(34577, 0, "'e'"), -(34578, 0, "' '"), -(34579, 0, "'e'"), -(34580, 0, "'x'"), -(34581, 0, "'i'"), -(34582, 0, "'s'"), -(34583, 0, "'t'"), -(34584, 0, "'i'"), -(34585, 0, "'n'"), -(34586, 0, "'g'"), -(34587, 0, "' '"), -(34588, 0, "'i'"), -(34589, 0, "'t'"), -(34590, 0, "'e'"), -(34591, 0, "'s'"), -(34592, 0, "'m'"), -(34592, 1, "''"), -(34591, 1, "''"), -(34591, 0, "'m'"), -(34592, 0, "'s'"), -(34593, 0, "'.'"), -(34595, 161, "' ptr::copy(n &c[offset_bytes],n &mut c[offset_bytes + num_inserted_bytes],n (*e).num_bytes as usize - offset_bytes);'"), -(34645, 12, "'item_idx'"), -(34683, 33, "'item_idx + num_inserted_items'"), -(34740, 9, "''"), -(34739, 1, "''"), -(34739, 0, "'.'"), -(34740, 0, "'n'"), -(34741, 0, "'u'"), -(34742, 0, "'m'"), -(34743, 0, "'_'"), -(34744, 0, "'i'"), -(34745, 0, "'t'"), -(34746, 0, "'e'"), -(34747, 0, "'m'"), -(34748, 0, "'s'"), -(34761, 12, "'i'"), -(34762, 0, "'t'"), -(34763, 0, "'e'"), -(34764, 0, "'m'"), -(34765, 0, "'_'"), -(34766, 0, "'i'"), -(34767, 0, "'d'"), -(34768, 0, "'x'"), -(34956, 0, "'// '"), -(34943, 0, "'n '"), -(34956, 0, "'n for (cell, item) in into.iter_mut().zip(iter) {n *cell = item;n }'"), -(34944, 12, "''"), -(35019, 4, "' '"), -(34997, 8, "' '"), -(34945, 4, "' '"), -(35027, 8, "' '"), -(35001, 12, "' '"), -(34945, 8, "' '"), -(34943, 1, "''"), -(34943, 0, "'.'"), -(34944, 0, "' '"), -(34945, 0, "'C'"), -(34946, 0, "'a'"), -(34947, 0, "'n'"), -(34948, 0, "'''"), -(34949, 0, "'t'"), -(34950, 0, "' '"), -(34951, 0, "'m'"), -(34952, 0, "'e'"), -(34953, 0, "'m'"), -(34954, 0, "'c'"), -(34955, 0, "'p'"), -(34956, 0, "'y'"), -(34957, 0, "' '"), -(34958, 0, "'f'"), -(34959, 0, "'r'"), -(34960, 0, "'o'"), -(34961, 0, "'m'"), -(34962, 0, "' '"), -(34963, 0, "'a'"), -(34964, 0, "'n'"), -(34965, 0, "' '"), -(34966, 0, "'i'"), -(34967, 0, "'t'"), -(34968, 0, "'e'"), -(34969, 0, "'r'"), -(34970, 0, "'a'"), -(34971, 0, "'t'"), -(34972, 0, "'o'"), -(34973, 0, "'r'"), -(34974, 0, "','"), -(34975, 0, "' '"), -(34976, 0, "'b'"), -(34977, 0, "'u'"), -(34978, 0, "'t'"), -(34979, 0, "' '"), -(34980, 0, "'h'"), -(34981, 0, "'o'"), -(34982, 0, "'p'"), -(34983, 0, "'e'"), -(34980, 4, "'t'"), -(34981, 0, "'h'"), -(34982, 0, "'e'"), -(34983, 0, "' '"), -(34984, 0, "'r'"), -(34985, 0, "'u'"), -(34986, 0, "'s'"), -(34987, 0, "'t'"), -(34984, 4, "'o'"), -(34985, 0, "'p'"), -(34986, 0, "'t'"), -(34987, 0, "'i'"), -(34988, 0, "'m'"), -(34989, 0, "'i'"), -(34990, 0, "'z'"), -(34991, 0, "'e'"), -(34992, 0, "'r'"), -(34993, 0, "' '"), -(34994, 0, "'s'"), -(34995, 0, "'h'"), -(34996, 0, "'o'"), -(34997, 0, "'u'"), -(34998, 0, "'l'"), -(34999, 0, "'d'"), -(35000, 0, "' '"), -(35001, 0, "'m'"), -(35002, 0, "'a'"), -(35003, 0, "'k'"), -(35004, 0, "'e'"), -(35005, 0, "' '"), -(35006, 0, "'t'"), -(35007, 0, "'h'"), -(35008, 0, "'i'"), -(35009, 0, "'s'"), -(35010, 0, "' '"), -(35011, 0, "'f'"), -(35012, 0, "'a'"), -(35013, 0, "'s'"), -(35014, 0, "'t'"), -(35015, 0, "'.'"), -(34902, 114, "' // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.'"), -(34474, 120, "' // Can't use copy_within because we aren't sure if the typen // implements Copy. Memmove the existing items.'"), -(35083, 4, "''"), -(35083, 0, "'c'"), -(35084, 0, "'['"), -(35085, 0, "'i'"), -(35086, 0, "'t'"), -(35087, 0, "'e'"), -(35088, 0, "'m'"), -(35085, 4, "'item_idx'"), -(35093, 0, "']'"), -(35093, 0, "'.'"), -(35094, 0, "'.'"), -(35095, 0, "'i'"), -(35096, 0, "'t'"), -(35097, 0, "'e'"), -(35098, 0, "'m'"), -(35095, 4, "'item_idx'"), -(35103, 0, "' '"), -(35104, 0, "'+'"), -(35105, 0, "' '"), -(35106, 0, "'n'"), -(35107, 0, "'u'"), -(35108, 0, "'m'"), -(35106, 3, "'num_inserted_items'"), -(35141, 4, "'c'"), -(35142, 0, "'o'"), -(35143, 0, "'n'"), -(35144, 0, "'t'"), -(35141, 4, "'contents'"), -(35388, 0, "'n '"), -(35401, 0, "'l'"), -(35402, 0, "'e'"), -(35403, 0, "'t'"), -(35404, 0, "' '"), -(35405, 0, "'n'"), -(35406, 0, "'u'"), -(35407, 0, "'m'"), -(35408, 0, "'_'"), -(35409, 0, "'i'"), -(35410, 0, "'n'"), -(35411, 0, "'s'"), -(35412, 0, "'e'"), -(35413, 0, "'r'"), -(35414, 0, "'t'"), -(35415, 0, "'e'"), -(35416, 0, "'d'"), -(35417, 0, "'_'"), -(35418, 0, "'u'"), -(35419, 0, "'s'"), -(35420, 0, "'e'"), -(35421, 0, "'r'"), -(35422, 0, "'c'"), -(35423, 0, "'o'"), -(35424, 0, "'u'"), -(35425, 0, "'n'"), -(35426, 0, "'t'"), -(35427, 0, "' '"), -(35428, 0, "'='"), -(35429, 0, "' '"), -(35430, 0, "'C::userlen_of_slice(contents);'"), -(35450, 8, "''"), -(35450, 0, "'c'"), -(35451, 0, "'['"), -(35452, 0, "'item_idx..item_idx + num_inserted_items]'"), -(35450, 0, "'&'"), -(35050, 0, "'n '"), -(35063, 0, "'l'"), -(35064, 0, "'e'"), -(35065, 0, "'t'"), -(35066, 0, "' '"), -(35067, 0, "'n'"), -(35068, 0, "'e'"), -(35069, 0, "'w'"), -(35067, 3, "'n'"), -(35067, 1, "''"), -(35067, 0, "'m'"), -(35068, 0, "'u'"), -(35069, 0, "'t'"), -(35070, 0, "' '"), -(35071, 0, "'n'"), -(35072, 0, "'e'"), -(35073, 0, "'w'"), -(35074, 0, "'_'"), -(35071, 4, "'d'"), -(35072, 0, "'e'"), -(35073, 0, "'s'"), -(35074, 0, "'t'"), -(35075, 0, "'_'"), -(35076, 0, "'c'"), -(35077, 0, "'o'"), -(35078, 0, "'n'"), -(35079, 0, "'t'"), -(35080, 0, "'e'"), -(35081, 0, "'n'"), -(35082, 0, "'t'"), -(35083, 0, "'_'"), -(35084, 0, "'s'"), -(35085, 0, "'l'"), -(35086, 0, "'i'"), -(35087, 0, "'c'"), -(35088, 0, "'e'"), -(35089, 0, "' '"), -(35090, 0, "'='"), -(35091, 0, "' '"), -(35092, 0, "'item_idx..item_idx + num_inserted_items]'"), -(35092, 0, "'&'"), -(35093, 0, "'m'"), -(35094, 0, "'u'"), -(35095, 0, "'t'"), -(35096, 0, "' '"), -(35097, 0, "'c'"), -(35098, 0, "'['"), -(35139, 0, "';'"), -(35173, 42, "'d'"), -(35174, 0, "'e'"), -(35175, 0, "'s'"), -(35176, 0, "'t'"), -(35173, 4, "'dest_content_slice'"), -(35516, 43, "'d'"), -(35517, 0, "'e'"), -(35518, 0, "'s'"), -(35519, 0, "'t'"), -(35516, 4, "'dest_content_slice'"), -(36240, 8, "'d'"), -(36241, 0, "'e'"), -(36242, 0, "'s'"), -(36243, 0, "'t'"), -(36240, 4, "'dest_content_slice'"), -(38436, 6, "'t'"), -(38437, 0, "'a'"), -(38438, 0, "'k'"), -(38439, 0, "'e'"), -(38475, 0, "'// '"), -(38571, 9, "''"), -(28498, 20, "''"), -(29329, 0, "'n '"), -(29338, 0, "'l'"), -(29339, 0, "'e'"), -(29340, 0, "'t'"), -(29341, 0, "' '"), -(29368, 11, "''"), -(29342, 0, "'new_userlen'"), -(29353, 0, "' '"), -(29354, 0, "'='"), -(29355, 0, "' '"), -(29384, 45, "''"), -(29356, 0, "'C::userlen_of_slice(new_node.content_slice())'"), -(29400, 1, "''"), -(29400, 0, "')'"), -(29401, 0, "';'"), -(29411, 0, "'// '"), -(29403, 32, "''"), -(29402, 1, "''"), -(28480, 18, "''"), -(28826, 0, "'// '"), -(28780, 0, "'// '"), -(28875, 0, "'n '"), -(28884, 0, "'a'"), -(28885, 0, "'s'"), -(28886, 0, "'s'"), -(28887, 0, "'e'"), -(28888, 0, "'r'"), -(28889, 0, "'t'"), -(28890, 0, "'!'"), -(28891, 0, "'('"), -(28875, 0, "'n '"), -(28884, 0, "'l'"), -(28885, 0, "'e'"), -(28886, 0, "'t'"), -(28887, 0, "' '"), -(28888, 0, "'n'"), -(28889, 0, "'u'"), -(28890, 0, "'m'"), -(28891, 0, "'_'"), -(28892, 0, "'i'"), -(28893, 0, "'t'"), -(28894, 0, "'e'"), -(28895, 0, "'m'"), -(28896, 0, "'s'"), -(28897, 0, "' '"), -(28898, 0, "'='"), -(28899, 0, "' '"), -(28900, 0, "'c'"), -(28901, 0, "'o'"), -(28902, 0, "'n'"), -(28903, 0, "'t'"), -(28904, 0, "'e'"), -(28905, 0, "'n'"), -(28906, 0, "'t'"), -(28907, 0, "'s'"), -(28908, 0, "'.'"), -(28909, 0, "'l'"), -(28910, 0, "'e'"), -(28911, 0, "'n'"), -(28912, 0, "'('"), -(28913, 0, "')'"), -(28914, 0, "';'"), -(28932, 0, "'n'"), -(28933, 0, "'u'"), -(28934, 0, "'m'"), -(28932, 3, "'num_items'"), -(28941, 0, "' '"), -(28942, 0, "'<'"), -(28943, 0, "'='"), -(28944, 0, "' '"), -(28945, 0, "'N'"), -(28946, 0, "'O'"), -(28947, 0, "'D'"), -(28948, 0, "'E'"), -(28949, 0, "'_'"), -(28945, 5, "'NODE_NUM_ITEMS'"), -(28959, 0, "')'"), -(28960, 0, "';'"), -(28472, 5, "''"), -(28472, 0, "'&mut '"), -(28472, 5, "''"), -(28472, 0, "'&mut '"), -(28959, 2, "''"), -(28959, 0, "');'"), -(28959, 2, "''"), -(28945, 14, "'NODE_'"), -(28944, 6, "''"), -(28941, 3, "''"), -(28932, 9, "'num'"), -(28932, 3, "''"), -(28899, 16, "''"), -(28897, 2, "''"), -(28887, 10, "''"), -(28875, 12, "''"), -(28875, 17, "''"), -(28829, 3, "''"), -(28780, 3, "''"), -(28480, 0, "'num_items: usize, '"), -(29402, 0, "'n'"), -(29402, 1, "''"), -(29402, 0, "'n'"), -(29403, 0, "' // debug_assert_eq!(, );'"), -(29411, 3, "''"), -(29400, 2, "''"), -(29400, 0, "');'"), -(29411, 0, "'// '"), -(29403, 32, "''"), -(29402, 1, "''"), -(28480, 18, "''"), -(28480, 0, "'num_items: usize, '"), -(28601, 17, "'I'"), -(28602, 0, "'t'"), -(28603, 0, "'e'"), -(28604, 0, "'r'"), -(28605, 0, "'a'"), -(28606, 0, "'t'"), -(28607, 0, "'o'"), -(28608, 0, "'r'"), -(28858, 5, "''"), -(28858, 0, "'s'"), -(28859, 0, "'i'"), -(28860, 0, "'z'"), -(28861, 0, "'e'"), -(28858, 4, "'size_hint()'"), -(28869, 0, "'.'"), -(28870, 0, "'0'"), -(32227, 14, "'n'"), -(32067, 14, "'n'"), -(32215, 0, "'u'"), -(32068, 0, "'u'"), -(32217, 0, "'m'"), -(32069, 0, "'m'"), -(32219, 0, "'_'"), -(32070, 0, "'_'"), -(32221, 0, "'i'"), -(32071, 0, "'i'"), -(32218, 5, "'num_items'"), -(32067, 5, "'num_items'"), -(38357, 0, "'l'"), -(38358, 0, "'e'"), -(38359, 0, "'t'"), -(38360, 0, "' '"), -(38361, 0, "'m'"), -(38362, 0, "'u'"), -(38363, 0, "'t'"), -(38364, 0, "' '"), -(38365, 0, "'n'"), -(38366, 0, "'u'"), -(38367, 0, "'m'"), -(38368, 0, "'_'"), -(38365, 4, "'num_inserted_items'"), -(38383, 0, "' '"), -(38384, 0, "'='"), -(38385, 0, "' '"), -(38386, 0, "'n'"), -(38387, 0, "'u'"), -(38388, 0, "'m'"), -(38389, 0, "'_'"), -(38386, 4, "'num_inserted_items'"), -(38404, 0, "';'"), -(38405, 0, "'n '"), -(38418, 0, "'w'"), -(38419, 0, "'h'"), -(38420, 0, "'i'"), -(38421, 0, "'l'"), -(38422, 0, "'e'"), -(38423, 0, "' '"), -(38424, 0, "'n'"), -(38425, 0, "'u'"), -(38426, 0, "'m'"), -(38427, 0, "'_'"), -(38424, 4, "'num_inserted_items'"), -(38442, 0, "' '"), -(38443, 0, "'>'"), -(38444, 0, "' '"), -(38445, 0, "'0'"), -(38446, 0, "' '"), -(38447, 0, "'{'"), -(38448, 0, "'n '"), -(38465, 0, "'n '"), -(38449, 16, "''"), -(38450, 16, "' }'"), -(38660, 0, "'// '"), -(38594, 0, "'// '"), -(38533, 0, "'// '"), -(38476, 0, "'// '"), -(38656, 0, "'n // self.insert_node_at(cursor, chunk, true, notify);'"), -(38656, 0, "'n // // let userlen = C::userlen_of_slice(chunk);'"), -(38588, 12, "' '"), -(38524, 64, "''"), -(38596, 0, "'n // for chunk in contents.take(NODE_NUM_ITEMS) {'"), -(38524, 16, "' '"), -(38464, 60, "''"), -(38532, 0, "'n }'"), -(38464, 12, "' '"), -(38450, 14, "''"), -(38522, 0, "'n'"), -(38449, 1, "''"), -(38449, 16, "' '"), -(38461, 3, "''"), -(38514, 1, "''"), -(38493, 5, "'c'"), -(38494, 0, "'o'"), -(38495, 0, "'n'"), -(38496, 0, "'t'"), -(38497, 0, "'e'"), -(38498, 0, "'n'"), -(38499, 0, "'t'"), -(38493, 7, "'contents'"), -(38501, 0, "','"), -(38502, 0, "' '"), -(38448, 0, "'n '"), -(38465, 0, "'l'"), -(38466, 0, "'e'"), -(38467, 0, "'t'"), -(38468, 0, "' '"), -(38469, 0, "'i'"), -(38470, 0, "'n'"), -(38471, 0, "'s'"), -(38472, 0, "'e'"), -(38473, 0, "'r'"), -(38474, 0, "'t'"), -(38475, 0, "'+'"), -(38475, 1, "''"), -(38475, 0, "'_'"), -(38476, 0, "'h'"), -(38477, 0, "'e'"), -(38478, 0, "'r'"), -(38479, 0, "'e'"), -(38480, 0, "' '"), -(38481, 0, "'='"), -(38482, 0, "' '"), -(38483, 0, "'u'"), -(38484, 0, "'s'"), -(38485, 0, "'i'"), -(38486, 0, "'z'"), -(38487, 0, "'e'"), -(38488, 0, "':'"), -(38489, 0, "':'"), -(38490, 0, "'M'"), -(38490, 1, "''"), -(38490, 0, "'m'"), -(38491, 0, "'a'"), -(38492, 0, "'x'"), -(38493, 0, "'('"), -(38494, 0, "'n'"), -(38495, 0, "'u'"), -(38494, 2, "'num_inserted_items'"), -(38512, 0, "','"), -(38513, 0, "' '"), -(38514, 0, "'M'"), -(38515, 0, "'A'"), -(38516, 0, "'X'"), -(38516, 1, "''"), -(38515, 1, "''"), -(38514, 1, "''"), -(38514, 0, "'N'"), -(38515, 0, "'U'"), -(38516, 0, "'M'"), -(38514, 3, "'NODE_NUM_ITEMS'"), -(38528, 0, "')'"), -(38529, 0, "';'"), -(38490, 3, "'m'"), -(38491, 0, "'i'"), -(38492, 0, "'n'"), -(38585, 0, "'i'"), -(38586, 0, "'n'"), -(38587, 0, "'s'"), -(38588, 0, "'e'"), -(38589, 0, "'r'"), -(38585, 5, "'insert_here'"), -(38612, 0, "'n '"), -(38629, 0, "'n'"), -(38630, 0, "'u'"), -(38631, 0, "'m'"), -(38629, 3, "'num_inserted_items'"), -(38647, 0, "' '"), -(38648, 0, "'-'"), -(38649, 0, "'='"), -(38650, 0, "' '"), -(38651, 0, "'i'"), -(38652, 0, "'n'"), -(38653, 0, "'s'"), -(38654, 0, "'e'"), -(38655, 0, "'r'"), -(38651, 5, "'insert_here'"), -(38662, 0, "';'"), -(38646, 1, "'aining'"), -(38642, 2, "'r'"), -(38640, 1, "'ms'"), -(38634, 4, "''"), -(38629, 4, "''"), -(38511, 1, "'aining'"), -(38507, 2, "'r'"), -(38505, 1, "'ms'"), -(38499, 4, "''"), -(38494, 4, "''"), -(38441, 1, "'aining'"), -(38437, 2, "'r'"), -(38435, 1, "'ms'"), -(38429, 4, "''"), -(38424, 4, "''"), -(38382, 1, "'aining'"), -(38378, 2, "'r'"), -(38376, 1, "'ms'"), -(38370, 4, "''"), -(38365, 4, "''"), -(38291, 53, "''"), -(38291, 0, "','"), -(38292, 0, "' '"), -(38293, 0, "'b'"), -(38294, 0, "'u'"), -(38295, 0, "'t'"), -(38296, 0, "' '"), -(38297, 0, "'w'"), -(38298, 0, "'e'"), -(38291, 8, "'.'"), -(39296, 0, "'.'"), -(39297, 0, "'t'"), -(39297, 1, "''"), -(39297, 0, "'i'"), -(39298, 0, "'t'"), -(39299, 0, "'e'"), -(39300, 0, "'r'"), -(39301, 0, "'('"), -(39302, 0, "')'"), -(16566, 0, "'n'"), -(16567, 0, "'n'"), -(16568, 0, "'n'"), -(16568, 0, "'s'"), -(16569, 0, "'t'"), -(16570, 0, "'r'"), -(16571, 0, "'u'"), -(16572, 0, "'c'"), -(16573, 0, "'t'"), -(16574, 0, "' '"), -(16575, 0, "'I'"), -(16576, 0, "'n'"), -(16577, 0, "'i'"), -(16578, 0, "'t'"), -(16579, 0, "'i'"), -(16579, 1, "''"), -(16575, 4, "'U'"), -(16576, 0, "'n'"), -(16577, 0, "'i'"), -(16578, 0, "'n'"), -(16579, 0, "'i'"), -(16580, 0, "'t'"), -(16581, 0, "'I'"), -(16582, 0, "'t'"), -(16583, 0, "'e'"), -(16584, 0, "'r'"), -(16581, 0, "'O'"), -(16582, 0, "'w'"), -(16583, 0, "'n'"), -(16584, 0, "'e'"), -(16585, 0, "'d'"), -(16590, 0, "' '"), -(16591, 0, "'{'"), -(16592, 0, "'n '"), -(16593, 4, "''"), -(16592, 1, "''"), -(16591, 1, "''"), -(16591, 0, "'{'"), -(16592, 0, "'n '"), -(16597, 0, "'n '"), -(16593, 4, "''"), -(16594, 4, "'}'"), -(16593, 0, "' '"), -(16597, 0, "'p'"), -(16598, 0, "'t'"), -(16599, 0, "'r'"), -(16600, 0, "':'"), -(16601, 0, "' '"), -(16602, 0, "'N'"), -(16603, 0, "'o'"), -(16604, 0, "'n'"), -(16605, 0, "'N'"), -(16606, 0, "'u'"), -(16607, 0, "'l'"), -(16608, 0, "'l'"), -(16609, 0, "'<'"), -(16590, 0, "'<'"), -(16591, 0, "'''"), -(16592, 0, "'a'"), -(16593, 0, "','"), -(16594, 0, "' '"), -(16595, 0, "'T'"), -(16596, 0, "':'"), -(16597, 0, "' '"), -(16598, 0, "'''"), -(16599, 0, "'a'"), -(16600, 0, "'>'"), -(16621, 0, "'T'"), -(16622, 0, "'>'"), -(16623, 0, "','"), -(16624, 0, "'n '"), -(16629, 0, "'e'"), -(16630, 0, "'n'"), -(16631, 0, "'d'"), -(16632, 0, "':'"), -(16633, 0, "' '"), -(16634, 0, "'*'"), -(16635, 0, "'c'"), -(16636, 0, "'o'"), -(16637, 0, "'n'"), -(16638, 0, "'s'"), -(16639, 0, "'t'"), -(16640, 0, "' '"), -(16641, 0, "'T'"), -(16642, 0, "','"), -(16643, 0, "'n '"), -(16648, 0, "'_'"), -(16649, 0, "'m'"), -(16650, 0, "'a'"), -(16651, 0, "'r'"), -(16652, 0, "'k'"), -(16653, 0, "'e'"), -(16654, 0, "'r'"), -(16655, 0, "':'"), -(16656, 0, "' '"), -(16657, 0, "'m'"), -(16657, 1, "''"), -(16657, 0, "'p'"), -(16658, 0, "'h'"), -(16659, 0, "'a'"), -(16660, 0, "'n'"), -(16657, 4, "'PhantomData'"), -(16668, 0, "'<'"), -(16669, 0, "'*'"), -(16669, 1, "''"), -(16669, 0, "'&'"), -(16670, 0, "'''"), -(16671, 0, "'a'"), -(16672, 0, "' '"), -(16673, 0, "'T'"), -(16674, 0, "'>'"), -(16648, 0, "'// '"), -(782, 0, "'n'"), -(783, 0, "'u'"), -(784, 0, "'s'"), -(785, 0, "'e'"), -(786, 0, "' '"), -(787, 0, "'s'"), -(788, 0, "'t'"), -(789, 0, "'d'"), -(790, 0, "':'"), -(791, 0, "':'"), -(792, 0, "'p'"), -(793, 0, "'t'"), -(794, 0, "'r'"), -(795, 0, "':'"), -(796, 0, "':'"), -(797, 0, "'N'"), -(798, 0, "'o'"), -(799, 0, "'n'"), -(797, 3, "'NonNull'"), -(804, 0, "';'"), -(16671, 3, "''"), -(16696, 1, "''"), -(16696, 0, "'S'"), -(16697, 0, "'k'"), -(16698, 0, "'i'"), -(16699, 0, "'p'"), -(16696, 4, "'SkipList'"), -(16704, 0, "'<'"), -(16705, 0, "'T'"), -(16706, 0, "'>'"), -(16706, 1, "''"), -(16705, 1, "''"), -(16704, 1, "''"), -(16617, 7, "', C: ListConfig>'"), -(16617, 16, "' T: 'a>'"), -(16614, 4, "''"), -(16615, 4, "''"), -(16663, 0, "'// '"), -(16658, 0, "'n '"), -(16663, 0, "'/'"), -(16664, 0, "'/'"), -(16665, 0, "' '"), -(16666, 0, "'T'"), -(16667, 0, "'O'"), -(16668, 0, "'D'"), -(16669, 0, "'O'"), -(16670, 0, "':'"), -(16671, 0, "' '"), -(16672, 0, "'A'"), -(16673, 0, "'d'"), -(16674, 0, "'d'"), -(16675, 0, "' '"), -(16676, 0, "'a'"), -(16677, 0, "' '"), -(16678, 0, "'p'"), -(16679, 0, "'h'"), -(16680, 0, "'a'"), -(16681, 0, "'n'"), -(16682, 0, "'t'"), -(16683, 0, "'o'"), -(16684, 0, "'m'"), -(16685, 0, "'d'"), -(16686, 0, "'a'"), -(16687, 0, "'t'"), -(16688, 0, "'a'"), -(16689, 0, "' '"), -(16690, 0, "'t'"), -(16691, 0, "'o'"), -(16692, 0, "' '"), -(16693, 0, "'t'"), -(16694, 0, "'h'"), -(16695, 0, "'i'"), -(16696, 0, "'s'"), -(16697, 0, "'.'"), -(16590, 0, "'n'"), -(16591, 0, "'/'"), -(16592, 0, "'/'"), -(16593, 0, "' '"), -(16594, 0, "'T'"), -(16595, 0, "'h'"), -(16596, 0, "'i'"), -(16596, 1, "''"), -(16595, 1, "''"), -(16594, 1, "''"), -(16594, 0, "'N'"), -(16595, 0, "'o'"), -(16596, 0, "'n'"), -(16597, 0, "'e'"), -(16598, 0, "' '"), -(16599, 0, "'o'"), -(16600, 0, "'f'"), -(16601, 0, "' '"), -(16602, 0, "'t'"), -(16603, 0, "'h'"), -(16604, 0, "'e'"), -(16605, 0, "' '"), -(16606, 0, "'b'"), -(16607, 0, "'u'"), -(16608, 0, "'i'"), -(16609, 0, "'l'"), -(16610, 0, "'t'"), -(16611, 0, "'i'"), -(16612, 0, "'n'"), -(16613, 0, "'s'"), -(16606, 0, "'r'"), -(16607, 0, "'u'"), -(16608, 0, "'s'"), -(16609, 0, "'t'"), -(16610, 0, "' '"), -(16619, 0, "' '"), -(16620, 0, "'g'"), -(16621, 0, "'i'"), -(16622, 0, "'v'"), -(16623, 0, "'e'"), -(16624, 0, "' '"), -(16625, 0, "'m'"), -(16626, 0, "'e'"), -(16627, 0, "' '"), -(16628, 0, "'w'"), -(16629, 0, "'h'"), -(16630, 0, "'a'"), -(16631, 0, "'t'"), -(16632, 0, "' '"), -(16633, 0, "'I'"), -(16634, 0, "' '"), -(16635, 0, "'w'"), -(16636, 0, "'a'"), -(16637, 0, "'n'"), -(16638, 0, "'t'"), -(16639, 0, "':'"), -(16640, 0, "'n'"), -(16641, 0, "'-'"), -(16642, 0, "' '"), -(16642, 1, "''"), -(16641, 1, "''"), -(16641, 0, "'/'"), -(16642, 0, "'/'"), -(16643, 0, "' '"), -(16644, 0, "'-'"), -(16645, 0, "' '"), -(16646, 0, "'W'"), -(16647, 0, "'O'"), -(16647, 1, "''"), -(16646, 1, "''"), -(16646, 0, "'O'"), -(16647, 0, "'w'"), -(16648, 0, "'n'"), -(16649, 0, "'e'"), -(16650, 0, "'d'"), -(16646, 5, "'I'"), -(16647, 0, "'t'"), -(16648, 0, "'e'"), -(16649, 0, "'r'"), -(16650, 0, "' '"), -(16651, 0, "'t'"), -(16652, 0, "'o'"), -(16653, 0, "' '"), -(16654, 0, "'o'"), -(16655, 0, "'w'"), -(16656, 0, "'n'"), -(16657, 0, "'e'"), -(16658, 0, "'d'"), -(16659, 0, "' '"), -(16660, 0, "'i'"), -(16661, 0, "'t'"), -(16662, 0, "'e'"), -(16663, 0, "'m'"), -(16664, 0, "'s'"), -(16665, 0, "'n'"), -(16666, 0, "'/'"), -(16667, 0, "'/'"), -(16668, 0, "' '"), -(16669, 0, "'-'"), -(16670, 0, "' '"), -(16671, 0, "'W'"), -(16672, 0, "'h'"), -(16673, 0, "'e'"), -(16674, 0, "'r'"), -(16675, 0, "'e'"), -(16676, 0, "' '"), -(16677, 0, "'i'"), -(16678, 0, "'t'"), -(16679, 0, "' '"), -(16680, 0, "'d'"), -(16681, 0, "'o'"), -(16682, 0, "'e'"), -(16683, 0, "'s'"), -(16684, 0, "'n'"), -(16685, 0, "'''"), -(16686, 0, "'t'"), -(16666, 21, "''"), -(16665, 1, "''"), -(16639, 1, "''"), -(16639, 0, "','"), -(16640, 0, "' '"), -(16641, 0, "'w'"), -(16642, 0, "'h'"), -(16643, 0, "'i'"), -(16644, 0, "'c'"), -(16645, 0, "'h'"), -(16646, 0, "' '"), -(16647, 0, "'i'"), -(16648, 0, "'s'"), -(16649, 0, "' '"), -(16650, 0, "'a'"), -(16651, 0, "' '"), -(16652, 0, "'z'"), -(16653, 0, "'e'"), -(16654, 0, "'r'"), -(16655, 0, "'o'"), -(16656, 0, "'-'"), -(16657, 0, "'c'"), -(16658, 0, "'o'"), -(16659, 0, "'p'"), -(16660, 0, "'y'"), -(16661, 0, "' '"), -(16662, 0, "'i'"), -(16663, 0, "'t'"), -(16664, 0, "'e'"), -(16665, 0, "'r'"), -(16666, 0, "'a'"), -(16667, 0, "'t'"), -(16668, 0, "'o'"), -(16669, 0, "'r'"), -(16670, 0, "' '"), -(16671, 0, "'t'"), -(16672, 0, "'o'"), -(16673, 0, "' '"), -(16674, 0, "'o'"), -(16675, 0, "'w'"), -(16676, 0, "'n'"), -(16677, 0, "'e'"), -(16678, 0, "'d'"), -(16652, 5, "''"), -(16656, 0, "'-'"), -(16657, 0, "'f'"), -(16658, 0, "'r'"), -(16659, 0, "'e'"), -(16660, 0, "'e'"), -(16679, 0, "' '"), -(16680, 0, "'i'"), -(16681, 0, "'t'"), -(16682, 0, "'e'"), -(16683, 0, "'m'"), -(16684, 0, "'s'"), -(16685, 0, "' '"), -(16686, 0, "'t'"), -(16687, 0, "'h'"), -(16688, 0, "'a'"), -(16689, 0, "'t'"), -(16690, 0, "' '"), -(16691, 0, "'d'"), -(16692, 0, "'o'"), -(16693, 0, "'e'"), -(16694, 0, "'s'"), -(16695, 0, "'n'"), -(16696, 0, "'''"), -(16697, 0, "'t'"), -(16698, 0, "' '"), -(16686, 13, "'i'"), -(16687, 0, "'n'"), -(16688, 0, "' '"), -(16689, 0, "'a'"), -(16690, 0, "'n'"), -(16691, 0, "' '"), -(16691, 1, "''"), -(16690, 1, "''"), -(16690, 0, "' '"), -(16691, 0, "'M'"), -(16692, 0, "'a'"), -(16693, 0, "'y'"), -(16694, 0, "'b'"), -(16695, 0, "'e'"), -(16696, 0, "'U'"), -(16697, 0, "'n'"), -(16698, 0, "'i'"), -(16699, 0, "'n'"), -(16700, 0, "'i'"), -(16701, 0, "'t'"), -(16702, 0, "' '"), -(16703, 0, "'a'"), -(16704, 0, "'r'"), -(16705, 0, "'r'"), -(16706, 0, "'a'"), -(16707, 0, "'y'"), -(16708, 0, "'.'"), -(16709, 25, "''"), -(16591, 118, "'// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array.'"), -(16712, 0, "' '"), -(16713, 0, "'E'"), -(16714, 0, "'h'"), -(16715, 0, "'.'"), -(16715, 1, "''"), -(16715, 0, "';'"), -(16716, 0, "' '"), -(16717, 0, "'i'"), -(16718, 0, "'t'"), -(16719, 0, "'s'"), -(16720, 0, "' '"), -(16721, 0, "'e'"), -(16722, 0, "'a'"), -(16723, 0, "'s'"), -(16724, 0, "'y'"), -(16725, 0, "' '"), -(16726, 0, "'e'"), -(16727, 0, "'n'"), -(16728, 0, "'o'"), -(16729, 0, "'u'"), -(16730, 0, "'g'"), -(16731, 0, "'h'"), -(16732, 0, "' '"), -(16733, 0, "'t'"), -(16734, 0, "'o'"), -(16735, 0, "' '"), -(16736, 0, "'m'"), -(16737, 0, "'k'"), -(16737, 1, "''"), -(16737, 0, "'a'"), -(16738, 0, "'k'"), -(16739, 0, "'e'"), -(16740, 0, "' '"), -(16741, 0, "'m'"), -(16742, 0, "'y'"), -(16743, 0, "' '"), -(16744, 0, "'o'"), -(16745, 0, "'w'"), -(16746, 0, "'n'"), -(16747, 0, "'.'"), -(16900, 0, "'n'"), -(16901, 0, "'n'"), -(16902, 0, "'i'"), -(16903, 0, "'m'"), -(16904, 0, "'p'"), -(16905, 0, "'l'"), -(16906, 0, "' '"), -(16907, 0, "'I'"), -(16908, 0, "'t'"), -(16909, 0, "'e'"), -(16910, 0, "'r'"), -(16911, 0, "'a'"), -(16907, 5, "'Iterator'"), -(16902, 0, "'// '"), -(32733, 0, "'n '"), -(32738, 0, "'n '"), -(32734, 4, "''"), -(32739, 0, "'u'"), -(32740, 0, "'n'"), -(32741, 0, "'s'"), -(32742, 0, "'a'"), -(32743, 0, "'f'"), -(32744, 0, "'e'"), -(32745, 0, "' '"), -(32746, 0, "'f'"), -(32747, 0, "'n'"), -(32748, 0, "' '"), -(32749, 0, "'O'"), -(32749, 1, "''"), -(32749, 0, "'o'"), -(32750, 0, "'w'"), -(32751, 0, "'n'"), -(32752, 0, "'e'"), -(32753, 0, "'d'"), -(32754, 0, "'_'"), -(32755, 0, "'i'"), -(32756, 0, "'t'"), -(32757, 0, "'e'"), -(32758, 0, "'r'"), -(32759, 0, "'_'"), -(32760, 0, "'f'"), -(32761, 0, "'r'"), -(32762, 0, "'o'"), -(32763, 0, "'m'"), -(32764, 0, "'_'"), -(32765, 0, "'s'"), -(32766, 0, "'l'"), -(32767, 0, "'i'"), -(32768, 0, "'c'"), -(32769, 0, "'e'"), -(32770, 0, "'('"), -(32770, 1, "''"), -(32770, 0, "'<'"), -(32771, 0, "'T'"), -(32772, 0, "'>'"), -(32735, 38, "''"), -(32734, 1, "''"), -(32733, 1, "''"), -(16901, 0, "'n'"), -(16902, 0, "' unsafe fn owned_iter_from_slice'"), -(16902, 4, "''"), -(16901, 0, "'n'"), -(16913, 11, "''"), -(16902, 0, "'i'"), -(16903, 0, "'m'"), -(16904, 0, "'p'"), -(16905, 0, "'l'"), -(16906, 0, "' '"), -(16907, 0, "'U'"), -(16907, 1, "'UninitOwnedIter'"), -(16906, 0, "'<'"), -(16907, 0, "'T'"), -(16908, 0, "'>'"), -(16925, 0, "' '"), -(16926, 0, "'{'"), -(16928, 0, "' '"), -(16956, 16, "''"), -(16955, 1, "''"), -(16955, 0, "' '"), -(16956, 0, "'-'"), -(16957, 0, "'>'"), -(16958, 0, "' '"), -(16958, 1, "''"), -(16957, 1, "''"), -(16956, 1, "''"), -(16955, 1, "''"), -(16954, 1, "''"), -(16953, 1, "''"), -(16952, 1, "''"), -(16952, 0, "'('"), -(16953, 0, "'&'"), -(16954, 0, "'['"), -(16955, 0, "'M'"), -(16956, 0, "'a'"), -(16957, 0, "'y'"), -(16958, 0, "'b'"), -(16955, 4, "'MaybeUninit'"), -(16966, 0, "'<'"), -(16967, 0, "'T'"), -(16968, 0, "'>'"), -(16969, 0, "']'"), -(16970, 0, "')'"), -(16971, 0, "' '"), -(16972, 0, "'-'"), -(16973, 0, "'.'"), -(16973, 1, "''"), -(16973, 0, "' '"), -(16973, 1, "''"), -(16973, 0, "'>'"), -(16974, 0, "' '"), -(16975, 0, "'U'"), -(16976, 0, "'n'"), -(16977, 0, "'i'"), -(16978, 0, "'n'"), -(16979, 0, "'i'"), -(16975, 5, "'UninitOwnedIter'"), -(16990, 0, "' '"), -(16991, 0, "'{'"), -(16992, 0, "'n '"), -(17001, 0, "'n '"), -(16993, 8, "''"), -(16994, 8, "' }'"), -(16953, 0, "'s'"), -(16954, 0, "'l'"), -(16955, 0, "'i'"), -(16956, 0, "'c'"), -(16957, 0, "'e'"), -(16958, 0, "':'"), -(16959, 0, "' '"), -(16999, 0, "'n unsafe fn from_slice(slice: &[MaybeUninit]) -> UninitOwnedIter {'"), -(16932, 0, "'// '"), -(17037, 12, "''"), -(17038, 1, "''"), -(17062, 0, "' unsafe {n let ptr = self.as_ptr();n assume(!ptr.is_null());nn let end = if mem::size_of::() == 0 {n (ptr as *const u8).wrapping_add(self.len()) as *const Tn } else {n ptr.add(self.len())n };nn Iter { ptr: NonNull::new_unchecked(ptr as *mut T), end, _marker: marker::PhantomData }n }'"), -(17062, 6, "' '"), -(17101, 4, "'s'"), -(17102, 0, "'l'"), -(17103, 0, "'i'"), -(17104, 0, "'c'"), -(17105, 0, "'e'"), -(17117, 35, "''"), -(17116, 1, "''"), -(17116, 0, "'n'"), -(17117, 0, "' assume(!ptr.is_null());'"), -(17117, 35, "''"), -(17116, 1, "''"), -(16908, 0, "':'"), -(16909, 0, "' '"), -(16910, 0, "'S'"), -(16911, 0, "'i'"), -(16912, 0, "'z'"), -(16913, 0, "'e'"), -(16914, 0, "'d'"), -(17125, 145, "''"), -(17125, 16, "' '"), -(17125, 12, "' '"), -(17125, 0, "' let end = if mem::size_of::() == 0 {n (ptr as *const u8).wrapping_add(self.len()) as *const Tn } else {n'"), -(17147, 139, "''"), -(17167, 14, "''"), -(17166, 1, "''"), -(17166, 0, "';'"), -(17155, 4, "'s'"), -(17156, 0, "'l'"), -(17157, 0, "'i'"), -(17158, 0, "'c'"), -(17159, 0, "'e'"), -(17123, 1, "''"), -(17181, 4, "'U'"), -(17181, 1, "'UninitOwnedIter'"), -(17246, 30, "''"), -(17198, 1, "''"), -(17198, 0, "'n '"), -(17258, 1, "''"), -(17258, 0, "'n '"), -(17278, 1, "''"), -(17278, 0, "'n '"), -(17066, 0, "'<'"), -(17067, 0, "'T'"), -(17068, 0, "'>'"), -(17311, 0, "'n '"), -(17312, 4, "'}'"), -(16932, 0, "'<'"), -(16933, 0, "'T'"), -(16934, 0, "'>'"), -(17054, 15, "'S'"), -(17055, 0, "'e'"), -(17056, 0, "'l'"), -(17057, 0, "'f'"), -(17058, 3, "''"), -(17013, 0, "' unsafe fn from_slice(slice: &[T]) -> Self {n unsafe {n let ptr = slice.as_ptr();n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr as *mut T),n endn }n }n }n'"), -(17587, 0, "'// '"), -(17577, 0, "'// '"), -(17563, 0, "'// '"), -(17543, 0, "'// '"), -(17483, 0, "'// '"), -(17453, 0, "'// '"), -(17408, 0, "'// '"), -(17370, 0, "'// '"), -(17353, 0, "'// '"), -(17305, 0, "'// '"), -(782, 0, "'n'"), -(783, 0, "'s'"), -(784, 0, "'e'"), -(784, 1, "''"), -(783, 1, "''"), -(783, 0, "'u'"), -(784, 0, "'s'"), -(785, 0, "'e'"), -(786, 0, "' '"), -(787, 0, "'s'"), -(788, 0, "'t'"), -(789, 0, "'d'"), -(790, 0, "':'"), -(791, 0, "':'"), -(792, 0, "'m'"), -(793, 0, "'e'"), -(794, 0, "'m'"), -(795, 0, "':'"), -(796, 0, "':'"), -(797, 0, "'M'"), -(798, 0, "'a'"), -(799, 0, "'y'"), -(797, 3, "'MaybeUninit'"), -(808, 0, "';'"), -(797, 12, "''"), -(797, 0, "'m'"), -(798, 0, "'a'"), -(799, 0, "'t'"), -(799, 1, "''"), -(799, 0, "'t'"), -(797, 3, "''"), -(797, 0, "'MaybeUninit;'"), -(17074, 0, "'M'"), -(17075, 0, "'a'"), -(17076, 0, "'y'"), -(17077, 0, "'b'"), -(17078, 0, "'e'"), -(17079, 0, "'U'"), -(17080, 0, "'n'"), -(17081, 0, "'i'"), -(17082, 0, "'n'"), -(17083, 0, "'i'"), -(17084, 0, "'t'"), -(17085, 0, "'<'"), -(17087, 0, "'>'"), -(17154, 0, "'.'"), -(17155, 0, "'a'"), -(17156, 0, "'s'"), -(17157, 0, "'_'"), -(17158, 0, "'p'"), -(17159, 0, "'t'"), -(17160, 0, "'r'"), -(17161, 0, "'('"), -(17162, 0, "')'"), -(17040, 310, "''"), -(16965, 75, "''"), -(17278, 3, "''"), -(17265, 3, "''"), -(17248, 3, "''"), -(17225, 3, "''"), -(17162, 3, "''"), -(17129, 3, "''"), -(17081, 3, "''"), -(17040, 3, "''"), -(17020, 3, "''"), -(16969, 3, "''"), -(17255, 0, "'n'"), -(17255, 0, "'n'"), -(17256, 0, "'i'"), -(17257, 0, "'m'"), -(17258, 0, "'p'"), -(17259, 0, "'l'"), -(17260, 0, "' '"), -(17261, 0, "'I'"), -(17262, 0, "'t'"), -(17263, 0, "'e'"), -(17264, 0, "'r'"), -(17265, 0, "'a'"), -(17266, 0, "'t'"), -(17267, 0, "'o'"), -(17268, 0, "'r'"), -(17269, 0, "' '"), -(17270, 0, "'f'"), -(17271, 0, "'o'"), -(17272, 0, "'r'"), -(17273, 0, "' '"), -(17274, 0, "'U'"), -(17275, 0, "'n'"), -(17276, 0, "'i'"), -(17277, 0, "'n'"), -(17274, 4, "'UninitOwnedIter'"), -(17289, 0, "' '"), -(17290, 0, "'{'"), -(17291, 0, "'n '"), -(17296, 0, "'n '"), -(17292, 4, "''"), -(17293, 4, "'}'"), -(17260, 0, "'<'"), -(17261, 0, "'T'"), -(17262, 0, "'>'"), -(17292, 0, "'<'"), -(17293, 0, "'T'"), -(17294, 0, "'>'"), -(17298, 0, "' '"), -(17302, 0, "'t'"), -(17303, 0, "'y'"), -(17304, 0, "'p'"), -(17305, 0, "'e'"), -(17306, 0, "' '"), -(17307, 0, "'I'"), -(17308, 0, "'t'"), -(17309, 0, "'e'"), -(17310, 0, "'m'"), -(17311, 0, "' '"), -(17312, 0, "'='"), -(17313, 0, "' '"), -(17314, 0, "'T'"), -(17315, 0, "';'"), -(17316, 0, "'n '"), -(17321, 0, "'n '"), -(17317, 4, "''"), -(17322, 0, "'f'"), -(17323, 0, "'n'"), -(17324, 0, "' '"), -(17325, 0, "'n'"), -(17326, 0, "'e'"), -(17327, 0, "'x'"), -(17328, 0, "'t'"), -(17329, 0, "'('"), -(17330, 0, "'&'"), -(17331, 0, "'m'"), -(17332, 0, "'u'"), -(17333, 0, "'t'"), -(17334, 0, "' '"), -(17335, 0, "'s'"), -(17336, 0, "'e'"), -(17337, 0, "'l'"), -(17338, 0, "'f'"), -(17339, 0, "')'"), -(17340, 0, "' '"), -(17341, 0, "'-'"), -(17342, 0, "'>'"), -(17343, 0, "' '"), -(17344, 0, "'O'"), -(17345, 0, "'p'"), -(17346, 0, "'t'"), -(17347, 0, "'i'"), -(17348, 0, "'o'"), -(17349, 0, "'n'"), -(17350, 0, "'<'"), -(17351, 0, "'S'"), -(17352, 0, "'e'"), -(17353, 0, "'l'"), -(17354, 0, "'f'"), -(17355, 0, "':'"), -(17356, 0, "':'"), -(17357, 0, "'I'"), -(17358, 0, "'t'"), -(17359, 0, "'e'"), -(17360, 0, "'m'"), -(17361, 0, "'>'"), -(17362, 0, "' '"), -(17363, 0, "'{'"), -(17364, 0, "'n '"), -(17373, 0, "'n '"), -(17365, 8, "''"), -(17366, 8, "' }'"), -(17365, 0, "' '"), -(17373, 0, "'N'"), -(17374, 0, "'o'"), -(17375, 0, "'n'"), -(17376, 0, "'e'"), -(16835, 5, "'m'"), -(16836, 0, "'n'"), -(16837, 0, "'u'"), -(16838, 0, "'t'"), -(16838, 1, "''"), -(16837, 1, "''"), -(16836, 1, "''"), -(16836, 0, "'u'"), -(16837, 0, "'t'"), -(16803, 0, "'n '"), -(16808, 0, "'/'"), -(16809, 0, "'/'"), -(16810, 0, "' '"), -(16811, 0, "'B'"), -(16812, 0, "'a'"), -(16813, 0, "'s'"), -(16814, 0, "'e'"), -(16815, 0, "'d'"), -(16816, 0, "' '"), -(16817, 0, "'o'"), -(16818, 0, "'n'"), -(16819, 0, "' '"), -(16820, 0, "'s'"), -(16821, 0, "'l'"), -(16822, 0, "'i'"), -(16823, 0, "'c'"), -(16824, 0, "'e'"), -(16825, 0, "'.'"), -(16825, 1, "''"), -(16820, 0, "'c'"), -(16821, 0, "'o'"), -(16822, 0, "'r'"), -(16823, 0, "'e'"), -(16824, 0, "' '"), -(16830, 0, "' '"), -(16831, 0, "'i'"), -(16832, 0, "'t'"), -(16833, 0, "'e'"), -(16834, 0, "'r'"), -(16831, 4, "'I'"), -(16832, 0, "'t'"), -(16833, 0, "'e'"), -(16834, 0, "'R'"), -(16835, 0, "'M'"), -(16836, 0, "'u'"), -(16837, 0, "'t'"), -(16820, 0, "'t'"), -(16821, 0, "'h'"), -(16822, 0, "'e'"), -(16823, 0, "' '"), -(16835, 7, "'I'"), -(16836, 0, "'t'"), -(16837, 0, "'e'"), -(16838, 0, "'r'"), -(16839, 0, "'M'"), -(16840, 0, "'u'"), -(16841, 0, "'t'"), -(16842, 0, "' '"), -(16843, 0, "'i'"), -(16844, 0, "'m'"), -(16845, 0, "'e'"), -(16846, 0, "'p'"), -(16847, 0, "'l'"), -(16848, 0, "'m'"), -(16849, 0, "'e'"), -(16843, 7, "'i'"), -(16844, 0, "'m'"), -(16845, 0, "'p'"), -(16846, 0, "'l'"), -(16847, 0, "'e'"), -(16848, 0, "'m'"), -(16849, 0, "'e'"), -(16850, 0, "'n'"), -(16851, 0, "'t'"), -(16852, 0, "'a'"), -(16853, 0, "'t'"), -(16854, 0, "'i'"), -(16855, 0, "'o'"), -(16856, 0, "'n'"), -(16857, 0, "'.'"), -(17163, 0, "' '"), -(17164, 0, "'a'"), -(17165, 0, "'s'"), -(17166, 0, "' '"), -(17167, 0, "'*'"), -(17168, 0, "'m'"), -(17169, 0, "'u'"), -(17170, 0, "'t'"), -(17171, 0, "' '"), -(17172, 0, "'_'"), -(17163, 10, "''"), -(17114, 0, "'m'"), -(17115, 0, "'u'"), -(17116, 0, "'t'"), -(17117, 0, "')'"), -(17117, 1, "''"), -(17117, 0, "')'"), -(17117, 1, "''"), -(17117, 0, "'_'"), -(17247, 10, "''"), -(17420, 4, "''"), -(17420, 0, "'i'"), -(17421, 0, "'f'"), -(17422, 0, "' '"), -(17423, 0, "'s'"), -(17424, 0, "'e'"), -(17425, 0, "'l'"), -(17426, 0, "'f'"), -(17427, 0, "'.'"), -(17428, 0, "'p'"), -(17429, 0, "'t'"), -(17430, 0, "'r'"), -(17431, 0, "' '"), -(17432, 0, "'='"), -(17433, 0, "'='"), -(17434, 0, "' '"), -(17435, 0, "'e'"), -(17436, 0, "'n'"), -(17437, 0, "'d'"), -(17438, 0, "' '"), -(17439, 0, "'{'"), -(17440, 0, "' '"), -(17441, 0, "'N'"), -(17442, 0, "'o'"), -(17443, 0, "'n'"), -(17444, 0, "'e'"), -(17445, 0, "' '"), -(17446, 0, "'}'"), -(17447, 0, "' '"), -(17440, 1, "''"), -(17440, 0, "'n '"), -(17458, 1, "''"), -(17457, 1, "''"), -(17457, 0, "'n '"), -(17458, 12, "' }'"), -(17467, 0, "' '"), -(17468, 0, "'e'"), -(17469, 0, "'l'"), -(17470, 0, "'s'"), -(17471, 0, "'e'"), -(17472, 0, "' '"), -(17473, 0, "'{'"), -(17474, 0, "'n '"), -(17487, 1, "'n '"), -(17488, 12, "' }'"), -(17487, 0, "' '"), -(17487, 4, "''"), -(17487, 0, "'S'"), -(17488, 0, "'o'"), -(17489, 0, "'m'"), -(17490, 0, "'e'"), -(17491, 0, "'('"), -(17492, 0, "'p'"), -(17493, 0, "'t'"), -(17494, 0, "'r'"), -(17495, 0, "'.'"), -(17435, 0, "'s'"), -(17436, 0, "'e'"), -(17437, 0, "'l'"), -(17438, 0, "'f'"), -(17439, 0, "'.'"), -(17492, 0, "'// '"), -(17504, 0, "'n '"), -(17505, 16, "' '"), -(17517, 0, "'N'"), -(17518, 0, "'o'"), -(17519, 0, "'n'"), -(17520, 0, "'e'"), -(17431, 0, "'.'"), -(17432, 0, "'a'"), -(17433, 0, "'s'"), -(17434, 0, "'_'"), -(17432, 3, "'as_ptr()'"), -(17514, 16, "''"), -(17513, 1, "''"), -(17501, 3, "''"), -(17506, 0, "'s'"), -(17507, 0, "'e'"), -(17508, 0, "'l'"), -(17509, 0, "'f'"), -(17510, 0, "'.'"), -(17515, 0, "'r'"), -(17516, 0, "'e'"), -(17517, 0, "'a'"), -(17518, 0, "'d'"), -(17519, 0, "'('"), -(17520, 0, "')'"), -(17521, 0, "')'"), -(17515, 0, "'a'"), -(17516, 0, "'s'"), -(17517, 0, "'_'"), -(17518, 0, "'p'"), -(17519, 0, "'r'"), -(17519, 1, "''"), -(17519, 0, "'t'"), -(17520, 0, "'r'"), -(17521, 0, "'('"), -(17522, 0, "')'"), -(17523, 0, "','"), -(17524, 0, "'.'"), -(17524, 1, "''"), -(17523, 1, "''"), -(17523, 0, "'.'"), -(17369, 0, "'u'"), -(17370, 0, "'n'"), -(17371, 0, "'s'"), -(17372, 0, "'a'"), -(17373, 0, "'f'"), -(17374, 0, "'e'"), -(17375, 0, "' '"), -(17375, 1, "''"), -(17369, 6, "''"), -(17369, 0, "'unsafe'"), -(17375, 0, "' '"), -(17375, 1, "''"), -(17369, 6, "''"), -(16799, 0, "'''"), -(16800, 0, "'a'"), -(16801, 0, "','"), -(16802, 0, "' '"), -(16803, 1, "''"), -(16803, 0, "'C'"), -(16804, 0, "':'"), -(16805, 0, "':'"), -(16805, 1, "''"), -(16805, 0, "' '"), -(16806, 0, "'C'"), -(16807, 0, "'o'"), -(16808, 0, "'n'"), -(16808, 1, "''"), -(16807, 1, "''"), -(16806, 1, "''"), -(16806, 0, "'L'"), -(16807, 0, "'i'"), -(16808, 0, "'s'"), -(16809, 0, "'t'"), -(16810, 0, "'C'"), -(16806, 5, "'ListConfig'"), -(16892, 1, "''"), -(16892, 0, "'C'"), -(16893, 0, "':'"), -(16894, 0, "':'"), -(16895, 0, "'I'"), -(16896, 0, "'t'"), -(16897, 0, "'e'"), -(16898, 0, "'m'"), -(16916, 1, "''"), -(16916, 0, "'C::Item'"), -(16969, 3, "''"), -(17002, 0, "'<'"), -(17003, 0, "'C'"), -(17004, 0, "'>'"), -(17297, 0, "','"), -(17298, 0, "'n '"), -(17315, 0, "'_'"), -(17316, 0, "'m'"), -(17317, 0, "'a'"), -(17318, 0, "'r'"), -(17319, 0, "'k'"), -(17315, 5, "'_marker'"), -(17322, 0, "':'"), -(17323, 0, "' '"), -(17324, 0, "'P'"), -(17325, 0, "'h'"), -(17326, 0, "'a'"), -(17324, 3, "'PhantomData'"), -(17015, 0, "'''"), -(17016, 0, "'a'"), -(17017, 0, "','"), -(17018, 0, "' '"), -(17019, 8, "'C: ListConfig'"), -(17050, 1, "''"), -(17050, 0, "'C'"), -(17089, 1, "''"), -(17089, 0, "'C'"), -(17090, 0, "':'"), -(17091, 0, "':'"), -(17092, 0, "'I'"), -(17093, 0, "'t'"), -(17094, 0, "'e'"), -(17095, 0, "'m'"), -(17050, 0, "'''"), -(17051, 0, "'a'"), -(17052, 0, "','"), -(17053, 0, "' '"), -(17388, 8, "'impl<'a, C: ListConfig> '"), -(17441, 0, "'''"), -(17442, 0, "'a'"), -(17443, 0, "','"), -(17444, 0, "' '"), -(17445, 0, "'C'"), -(17446, 1, "''"), -(17466, 1, "''"), -(17466, 0, "'C'"), -(17467, 0, "':'"), -(17468, 0, "':'"), -(17469, 0, "'I'"), -(17470, 0, "'t'"), -(17471, 0, "'e'"), -(17472, 0, "'m'"), -(16929, 35, "''"), -(16925, 4, "''"), -(16924, 1, "''"), -(40352, 6, "''"), -(40351, 1, "''"), -(40350, 1, "''"), -(40350, 0, "'s'"), -(40341, 0, "' '"), -(40342, 0, "'U'"), -(40343, 0, "'n'"), -(40344, 0, "'i'"), -(40345, 0, "'n'"), -(40346, 0, "'i'"), -(40342, 5, "'UninitOwnedIter'"), -(40357, 0, "'<'"), -(40358, 0, "'C'"), -(40359, 0, "'>'"), -(40359, 1, "''"), -(40358, 1, "''"), -(40357, 1, "''"), -(40356, 1, "''"), -(40356, 0, "'.'"), -(40357, 0, "'f'"), -(40358, 0, "'r'"), -(40359, 0, "'o'"), -(40360, 0, "'m'"), -(40361, 0, "'_'"), -(40362, 0, "'s'"), -(40363, 0, "'l'"), -(40364, 0, "'i'"), -(40365, 0, "'c'"), -(40366, 0, "'e'"), -(40367, 0, "'('"), -(40368, 1, "''"), -(40377, 0, "')'"), -(40342, 14, "'UninitOwnedIter'"), -(40357, 1, "''"), -(40357, 0, "':'"), -(40358, 0, "':'"), -(30288, 1, "''"), -(30288, 0, "'('"), -(30293, 0, "' '"), -(30294, 0, "'a'"), -(30295, 0, "'s'"), -(30296, 0, "' '"), -(30297, 0, "'*'"), -(30298, 0, "'m'"), -(30299, 0, "'u'"), -(30300, 0, "'t'"), -(30301, 0, "' '"), -(30302, 0, "'_'"), -(30303, 0, "'('"), -(30303, 1, "''"), -(30303, 0, "')'"), -(30304, 0, "'.'"), -(30305, 0, "'w'"), -(30306, 0, "'r'"), -(30307, 0, "'i'"), -(30308, 0, "'t'"), -(30309, 0, "'e'"), -(30310, 0, "'('"), -(30311, 1, "''"), -(30311, 1, "''"), -(30311, 1, "''"), -(30315, 0, "')'"), -(30317, 0, "' '"), -(30318, 0, "'/'"), -(30319, 0, "'/'"), -(30320, 0, "' '"), -(30321, 0, "'N'"), -(30321, 1, "''"), -(30321, 0, "'D'"), -(30322, 0, "'o'"), -(30323, 0, "' '"), -(30324, 0, "'n'"), -(30325, 0, "'o'"), -(30326, 0, "'t'"), -(30327, 0, "' '"), -(30328, 0, "'c'"), -(30329, 0, "'a'"), -(30330, 0, "'l'"), -(30331, 0, "'l'"), -(30332, 0, "' '"), -(30333, 0, "'d'"), -(30334, 0, "'r'"), -(30335, 0, "'a'"), -(30335, 1, "''"), -(30335, 0, "'o'"), -(30336, 0, "'p'"), -(30337, 0, "'('"), -(30338, 0, "')'"), -(30339, 0, "' '"), -(30340, 0, "'o'"), -(30341, 0, "'n'"), -(30342, 0, "' '"), -(30343, 0, "'c'"), -(30344, 0, "'o'"), -(30345, 0, "'n'"), -(30346, 0, "'t'"), -(30343, 4, "'j'"), -(30344, 0, "'u'"), -(30345, 0, "'n'"), -(30346, 0, "'k'"), -(30347, 0, "'.'"), -(30302, 1, "''"), -(30302, 0, "'C'"), -(30303, 0, "':'"), -(30304, 0, "':'"), -(30305, 0, "'I'"), -(30306, 0, "'t'"), -(30307, 0, "'e'"), -(30308, 0, "'m'"), -(30293, 17, "''"), -(30288, 1, "''"), -(30288, 0, "'('"), -(30293, 0, "' as *mut C::Item)'"), -(30276, 0, "' (slot as *mut C::Item).write(item); // Do not call drop() on junk.n'"), -(30367, 0, "'// '"), -(30288, 22, "''"), -(30288, 0, "'*'"), -(30289, 13, "''"), -(30289, 0, "'s'"), -(30290, 0, "'l'"), -(30291, 0, "'o'"), -(30292, 0, "'t'"), -(30293, 0, "' '"), -(30294, 0, "'='"), -(30295, 0, "' '"), -(30296, 0, "'i'"), -(30297, 0, "'t'"), -(30298, 0, "'e'"), -(30299, 0, "'m'"), -(30300, 0, "';'"), -(30301, 31, "''"), -(30215, 60, "''"), -(30214, 1, "''"), -(30321, 1, "''"), -(30321, 0, "'?'"), -(40363, 0, "'&'"), -(40364, 0, "'m'"), -(40365, 0, "'u'"), -(40366, 0, "'t'"), -(40367, 0, "' '"), -(40383, 0, "'<'"), -(40384, 0, "'C'"), -(40385, 0, "'>'"), -(40383, 0, "':'"), -(40384, 0, "':'"), -(42652, 0, "'// '"), -(42631, 0, "'n '"), -(42652, 0, "' ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);'"), -(42772, 20, "' '"), -(42713, 20, "' '"), -(42679, 20, "' '"), -(42632, 36, "' '"), -(42632, 192, "' ptr::copy(n &c[leading_bytes + removed_bytes],n &mut c[leading_bytes],n trailing_bytes);'"), -(42690, 29, "'item_idx + removed_here'"), -(42690, 23, "'leading_bytes + removed_bytes'"), -(42690, 29, "'item_idx + removed_here'"), -(42747, 13, "'i'"), -(42748, 0, "'t'"), -(42749, 0, "'e'"), -(42750, 0, "'m'"), -(42751, 0, "'_'"), -(42752, 0, "'i'"), -(42747, 6, "'item_idx'"), -(42661, 0, "'_'"), -(42661, 1, "''"), -(42782, 14, "'t'"), -(42783, 0, "'r'"), -(42784, 0, "'a'"), -(42785, 0, "'i'"), -(42786, 0, "'l'"), -(42787, 0, "'i'"), -(42788, 0, "'n'"), -(42782, 7, "'trailing_items'"), -(46554, 34, "', I: ExactSizeIterator'"), -(46554, 36, "', mut inserted_content: &[C::Item]'"), -(46668, 0, "','"), -(46669, 0, "' '"), -(46670, 0, "', I: ExactSizeIterator'"), -(46670, 36, "''"), -(46669, 1, "''"), -(46668, 1, "''"), -(46668, 0, "', I: ExactSizeIterator'"), -(46493, 0, "','"), -(46494, 0, "' '"), -(46495, 0, "'I'"), -(46581, 10, "''"), -(46581, 0, "'&'"), -(46582, 0, "'M'"), -(46582, 1, "''"), -(46582, 0, "'m'"), -(46583, 0, "'u'"), -(46584, 0, "'t'"), -(46585, 0, "' '"), -(46586, 0, "'I'"), -(47895, 0, "'// '"), -(47882, 0, "'n '"), -(47895, 0, "' for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n *slot = item;n // (slot as *mut C::Item).write(item); // Do not call drop() on junk?n }n'"), -(48096, 0, "' '"), -(48086, 8, "' '"), -(48004, 12, "' '"), -(47978, 12, "' '"), -(47883, 20, "' '"), -(47958, 8, "'i'"), -(47959, 0, "'n'"), -(47960, 0, "'s'"), -(47961, 0, "'e'"), -(47962, 0, "'r'"), -(47963, 0, "'t'"), -(47964, 0, "'e'"), -(47965, 0, "'d'"), -(47966, 0, "'_'"), -(47967, 0, "'c'"), -(47968, 0, "'o'"), -(47969, 0, "'n'"), -(47970, 0, "'t'"), -(47971, 0, "'e'"), -(47972, 0, "'n'"), -(47973, 0, "'t'"), -(47915, 27, "''"), -(47915, 0, "'o'"), -(47916, 0, "'l'"), -(47917, 0, "'d'"), -(47918, 0, "'_'"), -(47919, 0, "'i'"), -(47920, 0, "'t'"), -(47921, 0, "'e'"), -(47922, 0, "'m'"), -(47923, 0, "'s'"), -(47990, 85, "''"), -(47989, 1, "''"), -(47989, 0, "'/'"), -(47990, 0, "' '"), -(47990, 1, "''"), -(47989, 1, "''"), -(47989, 0, "' '"), -(47990, 0, "'/'"), -(47991, 0, "'/'"), -(47992, 0, "' '"), -(47993, 0, "'I'"), -(47994, 0, "'n'"), -(47994, 1, "''"), -(47993, 1, "''"), -(47992, 1, "''"), -(47991, 1, "''"), -(47991, 0, "'/'"), -(47992, 0, "' '"), -(47993, 0, "'T'"), -(47994, 0, "'i'"), -(47995, 0, "'s'"), -(47995, 1, "''"), -(47994, 1, "''"), -(47994, 0, "'h'"), -(47995, 0, "'i'"), -(47996, 0, "'s'"), -(47997, 0, "' '"), -(47998, 0, "'d'"), -(47999, 0, "'r'"), -(48000, 0, "'o'"), -(48001, 0, "'p'"), -(48002, 0, "'s'"), -(48003, 0, "' '"), -(48004, 0, "'t'"), -(48005, 0, "'h'"), -(48006, 0, "'e'"), -(48007, 0, "' '"), -(48008, 0, "'o'"), -(48009, 0, "'l'"), -(48010, 0, "'d'"), -(48011, 0, "' '"), -(48008, 4, "'r'"), -(48009, 0, "'e'"), -(48010, 0, "'m'"), -(48011, 0, "'o'"), -(48012, 0, "'v'"), -(48013, 0, "'e'"), -(48014, 0, "'d'"), -(48015, 0, "' '"), -(48016, 0, "'c'"), -(48017, 0, "'o'"), -(48018, 0, "'n'"), -(48019, 0, "'t'"), -(48020, 0, "'e'"), -(48021, 0, "'n'"), -(48022, 0, "'t'"), -(48023, 0, "'.'"), -(47645, 162, "''"), -(47877, 4, "'n '"), -(47890, 0, "' let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn'"), -(47878, 24, "' '"), -(47573, 71, "''"), -(47807, 0, "' let new_items = &inserted_content[0..replaced_items_here];n'"), -(47836, 16, "''"), -(47836, 0, "'inserted_content'"), -(47836, 16, "''"), -(47836, 0, "'('"), -(47837, 0, "'*'"), -(47837, 1, "''"), -(47836, 1, "''"), -(47836, 0, "'('"), -(47837, 0, "'*'"), -(47838, 0, "'e'"), -(47839, 0, "')'"), -(47840, 0, "'.'"), -(47841, 0, "'i'"), -(47842, 0, "'t'"), -(47843, 0, "'e'"), -(47844, 0, "'m'"), -(47845, 0, "'s'"), -(47835, 36, "'o'"), -(47836, 0, "'d'"), -(47835, 2, "'old_items'"), -(47844, 0, "';'"), -(47844, 1, "''"), -(47835, 9, "'od'"), -(47835, 2, "'&(*e).items[0..replaced_items_here];'"), -(47836, 10, "''"), -(47836, 0, "'(*'"), -(47836, 2, "''"), -(47836, 0, "'inserted_content'"), -(47807, 71, "''"), -(47573, 0, "' let new_items = &inserted_content[0..replaced_items_here];n'"), -(47878, 12, "' '"), -(47890, 162, "''"), -(47877, 13, "' '"), -(47645, 0, "' let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn'"), -(47645, 162, "''"), -(47877, 4, "'n '"), -(47890, 0, "' let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn'"), -(47878, 24, "' '"), -(47573, 71, "''"), -(47807, 0, "' let new_items = &inserted_content[0..replaced_items_here];n'"), -(47836, 16, "''"), -(47836, 0, "'(*'"), -(47836, 2, "''"), -(47836, 0, "'(*e).items'"), -(47835, 36, "'od'"), -(47835, 2, "'old_items'"), -(47844, 0, "';'"), -(47572, 0, "'n '"), -(47585, 0, "'l'"), -(47586, 0, "'e'"), -(47587, 0, "'t'"), -(47588, 0, "' '"), -(47589, 0, "'o'"), -(47590, 0, "'l'"), -(47591, 0, "'d'"), -(47592, 0, "'_'"), -(47593, 0, "'s'"), -(47594, 0, "'i'"), -(47594, 1, "''"), -(47593, 1, "''"), -(47592, 1, "''"), -(47592, 0, "'_'"), -(47593, 0, "'u'"), -(47594, 0, "'s'"), -(47595, 0, "'e'"), -(47596, 0, "'r'"), -(47597, 0, "'s'"), -(47598, 0, "'i'"), -(47599, 0, "'z'"), -(47600, 0, "'e'"), -(47601, 0, "' '"), -(47602, 0, "'='"), -(47603, 0, "' '"), -(47604, 0, "'C::userlen_of_slice(old_items)'"), -(47634, 0, "';'"), -(48029, 30, "'o'"), -(48030, 0, "'l'"), -(48031, 0, "'d'"), -(48032, 0, "'_'"), -(48033, 0, "'u'"), -(48029, 5, "'old_usersize'"), -(48051, 1, "''"), -(47907, 0, "'t'"), -(47905, 1, "''"), -(47901, 3, "''"), -(47898, 2, "''"), -(47754, 0, "'t'"), -(47752, 1, "''"), -(47748, 3, "''"), -(47745, 2, "''"), -(47633, 0, "'t'"), -(47631, 1, "''"), -(47627, 3, "''"), -(47624, 2, "''"), -(47517, 0, "'t'"), -(47515, 1, "''"), -(47511, 3, "''"), -(47508, 2, "''"), -(48828, 3, "''"), -(48824, 3, "'s'"), -(48822, 1, "'d'"), -(47946, 3, "''"), -(47942, 3, "'s'"), -(47940, 1, "'d'"), -(47877, 3, "''"), -(47873, 3, "'s'"), -(47871, 1, "'d'"), -(47855, 28, "''"), -(47854, 1, "''"), -(48312, 0, "'// '"), -(47018, 0, "'n '"), -(47031, 0, "'d'"), -(47032, 0, "'e'"), -(47033, 0, "'b'"), -(47034, 0, "'u'"), -(47031, 4, "'debug_assert!'"), -(47044, 0, "'('"), -(47045, 0, "'i'"), -(47046, 0, "'n'"), -(47047, 0, "'s'"), -(47048, 0, "'e'"), -(47049, 0, "'r'"), -(47050, 0, "'t'"), -(47051, 0, "'e'"), -(47052, 0, "'d'"), -(47053, 0, "'_'"), -(47054, 0, "'c'"), -(47055, 0, "'o'"), -(47056, 0, "'n'"), -(47045, 12, "'inserted_content'"), -(47061, 0, "'.'"), -(47062, 0, "'l'"), -(47063, 0, "'e'"), -(47064, 0, "'n'"), -(47065, 0, "'('"), -(47066, 0, "')'"), -(47067, 0, "' '"), -(47068, 0, "'>'"), -(47069, 0, "'='"), -(47070, 0, "' '"), -(47071, 0, "'r'"), -(47072, 0, "'e'"), -(47073, 0, "'p'"), -(47074, 0, "'l'"), -(47075, 0, "'a'"), -(47076, 0, "'c'"), -(47071, 6, "'replaced_items'"), -(47085, 0, "')'"), -(47086, 0, "';'"), -(49937, 0, "' '"), -(49938, 0, "'w'"), -(49939, 0, "'h'"), -(49940, 0, "'e'"), -(49941, 0, "'r'"), -(49942, 0, "'e'"), -(49943, 0, "' '"), -(49944, 0, "'C'"), -(49945, 0, "':'"), -(49946, 0, "':'"), -(49947, 0, "'I'"), -(49948, 0, "'t'"), -(49949, 0, "'e'"), -(49950, 0, "'m'"), -(49951, 0, "':'"), -(49952, 0, "' '"), -(49953, 0, "'C'"), -(49954, 0, "'l'"), -(49955, 0, "'o'"), -(49956, 0, "'n'"), -(49957, 0, "'e'"), -(49953, 5, "'C'"), -(49954, 0, "'o'"), -(49955, 0, "'p'"), -(49956, 0, "'y'"), -(50248, 0, "'.'"), -(50249, 0, "'i'"), -(50250, 0, "'n'"), -(50251, 0, "'t'"), -(50252, 0, "'o'"), -(50249, 4, "''"), -(50248, 1, "''"), -(50248, 0, "'.'"), -(50249, 0, "'i'"), -(50250, 0, "'t'"), -(50251, 0, "'e'"), -(50252, 0, "'r'"), -(50253, 0, "'('"), -(50254, 0, "')'"), -(50255, 0, "'.'"), -(50256, 0, "'c'"), -(50257, 0, "'l'"), -(50258, 0, "'o'"), -(50259, 0, "'n'"), -(50260, 0, "'e'"), -(50261, 0, "'d'"), -(50262, 0, "'('"), -(50263, 0, "')'"), -(50256, 6, "'c'"), -(50257, 0, "'o'"), -(50258, 0, "'p'"), -(50259, 0, "'i'"), -(50260, 0, "'e'"), -(50261, 0, "'d'"), -(50232, 0, "'&'"), -(50233, 0, "'m'"), -(50234, 0, "'u'"), -(50235, 0, "'t'"), -(50236, 0, "' '"), -(50634, 0, "' '"), -(50635, 0, "'w'"), -(50636, 0, "'h'"), -(50637, 0, "'e'"), -(50638, 0, "'r'"), -(50639, 0, "'e'"), -(50640, 0, "' '"), -(50641, 0, "'C'"), -(50642, 0, "':'"), -(50643, 0, "':'"), -(50644, 0, "' '"), -(50644, 1, "''"), -(50644, 0, "'I'"), -(50645, 0, "'t'"), -(50646, 0, "'e'"), -(50647, 0, "'m'"), -(50648, 0, "':'"), -(50649, 0, "' '"), -(50650, 0, "'C'"), -(50651, 0, "'o'"), -(50652, 0, "'p'"), -(50653, 0, "'y'"), -(50923, 8, "'&mut inserted_content.iter().copied()'"), -(50928, 16, "'c'"), -(50929, 0, "'o'"), -(50930, 0, "'n'"), -(50931, 0, "'t'"), -(50932, 0, "'e'"), -(50933, 0, "'n'"), -(50934, 0, "'t'"), -(50935, 0, "'s'"), -(51502, 1, "''"), -(51501, 1, "''"), -(51501, 0, "'o'"), -(51502, 0, "'n'"), -(51503, 0, "'c'"), -(51504, 0, "'e'"), -(51505, 0, "'('"), -(51511, 1, "''"), -(51511, 0, "')'"), -(51501, 0, "'s'"), -(51502, 0, "'t'"), -(51503, 0, "'d'"), -(51504, 0, "':'"), -(51505, 0, "':'"), -(51506, 0, "'i'"), -(51507, 0, "'t'"), -(51508, 0, "'e'"), -(51509, 0, "'r'"), -(51510, 0, "':'"), -(51511, 0, "':'"), -(51501, 0, "'&'"), -(51502, 0, "'m'"), -(51503, 0, "'u'"), -(51504, 0, "'t'"), -(51505, 0, "' '"), -(51506, 11, "''"), -(51506, 0, "'i'"), -(51507, 0, "'t'"), -(51508, 0, "'e'"), -(51509, 0, "'r'"), -(51510, 0, "':'"), -(51511, 0, "':'"), -(923, 0, "'n'"), -(924, 0, "'u'"), -(925, 0, "'s'"), -(926, 0, "'e'"), -(927, 0, "' '"), -(928, 0, "'s'"), -(929, 0, "'t'"), -(930, 0, "'d'"), -(931, 0, "':'"), -(932, 0, "':'"), -(933, 0, "'i'"), -(934, 0, "'t'"), -(935, 0, "'e'"), -(936, 0, "'r'"), -(937, 0, "';'"), -(18755, 0, "' '"), -(18756, 0, "'w'"), -(18757, 0, "'h'"), -(18758, 0, "'e'"), -(18759, 0, "'r'"), -(18760, 0, "'e'"), -(18761, 0, "' '"), -(18762, 0, "'C'"), -(18763, 0, "':'"), -(18764, 0, "':'"), -(18765, 0, "'I'"), -(18766, 0, "'t'"), -(18767, 0, "'e'"), -(18768, 0, "'m'"), -(18769, 0, "':'"), -(18770, 0, "' '"), -(18771, 0, "'C'"), -(18772, 0, "'o'"), -(18773, 0, "'p'"), -(18774, 0, "'y'"), -(51632, 8, "'&mut contents.iter().copied()'"), -(52022, 6, "'&mut iter::once(start)'"), -(52038, 5, "'e'"), -(52039, 0, "'n'"), -(52040, 0, "'d'"), -(53652, 0, "' '"), -(53653, 0, "'w'"), -(53654, 0, "'h'"), -(53655, 0, "'e'"), -(53656, 0, "'r'"), -(53657, 0, "'e'"), -(53658, 0, "' '"), -(53659, 0, "'C'"), -(53660, 0, "':'"), -(53661, 0, "':'"), -(53662, 0, "'I'"), -(53663, 0, "'t'"), -(53664, 0, "'e'"), -(53665, 0, "'m'"), -(53666, 0, "':'"), -(53667, 0, "' '"), -(53668, 0, "'C'"), -(53669, 0, "'o'"), -(53670, 0, "'p'"), -(53671, 0, "'y'"), -(53818, 0, "' where C::Item: Copy'"), -(53763, 0, "'n'"), -(53764, 0, "'/'"), -(53765, 0, "'/'"), -(53766, 0, "' '"), -(53767, 0, "'T'"), -(53768, 0, "'O'"), -(53769, 0, "'D'"), -(53770, 0, "'O'"), -(53771, 0, "':'"), -(53772, 0, "' '"), -(53773, 0, "'R'"), -(53774, 0, "'e'"), -(53775, 0, "'m'"), -(53776, 0, "'o'"), -(53777, 0, "'v'"), -(53778, 0, "'e'"), -(53779, 0, "' '"), -(53780, 0, "'I'"), -(53781, 0, "'t'"), -(53782, 0, "'e'"), -(53783, 0, "'m'"), -(53784, 0, "':'"), -(53785, 0, "' '"), -(53786, 0, "'C'"), -(53787, 0, "'o'"), -(53788, 0, "'p'"), -(53789, 0, "'y'"), -(53790, 0, "' '"), -(53791, 0, "'c'"), -(53792, 0, "'o'"), -(53793, 0, "'n'"), -(53794, 0, "'s'"), -(53795, 0, "'t'"), -(53796, 0, "'r'"), -(53797, 0, "'a'"), -(53798, 0, "'i'"), -(53799, 0, "'n'"), -(53800, 0, "'t'"), -(53801, 0, "' '"), -(53802, 0, "'h'"), -(53803, 0, "'e'"), -(53804, 0, "'r'"), -(53805, 0, "'e'"), -(53806, 0, "'.'"), -(54104, 0, "':'"), -(54105, 0, "' '"), -(54106, 0, "'V'"), -(54107, 0, "'e'"), -(54108, 0, "'c'"), -(54109, 0, "'<'"), -(54110, 0, "'<'"), -(54110, 1, "''"), -(54110, 0, "'C'"), -(54111, 0, "':'"), -(54112, 0, "':'"), -(54113, 0, "'I'"), -(54114, 0, "'t'"), -(54115, 0, "'e'"), -(54116, 0, "'m'"), -(54117, 0, "'>'"), -(54110, 8, "''"), -(54110, 0, "'<'"), -(54105, 6, "''"), -(54104, 1, "''"), -(54042, 0, "' '"), -(54043, 0, "'w'"), -(54044, 0, "'h'"), -(54045, 0, "'e'"), -(54046, 0, "'r'"), -(54047, 0, "'e'"), -(54048, 0, "' '"), -(54049, 0, "'C'"), -(54050, 0, "':'"), -(54051, 0, "':'"), -(54052, 0, "'I'"), -(54053, 0, "'t'"), -(54054, 0, "'e'"), -(54055, 0, "'m'"), -(54056, 0, "':'"), -(54057, 0, "' '"), -(54058, 0, "'C'"), -(54059, 0, "'o'"), -(54060, 0, "'p'"), -(54061, 0, "'y'"), -(54124, 0, "':'"), -(54125, 0, "' '"), -(54126, 0, "'V'"), -(54127, 0, "'e'"), -(54128, 0, "'c'"), -(54129, 0, "'<'"), -(54130, 0, "'<'"), -(54130, 1, "''"), -(54130, 0, "'C'"), -(54131, 0, "':'"), -(54132, 0, "':'"), -(54133, 0, "'I'"), -(54134, 0, "'t'"), -(54135, 0, "'e'"), -(54136, 0, "'m'"), -(54137, 0, "'>'"), -(5385, 0, "'M'"), -(5386, 0, "'a'"), -(5387, 0, "'y'"), -(5388, 0, "'b'"), -(5389, 0, "'e'"), -(5390, 0, "'U'"), -(5391, 0, "'n'"), -(5392, 0, "'i'"), -(5393, 0, "'n'"), -(5394, 0, "'i'"), -(5395, 0, "'t'"), -(5396, 0, "'<'"), -(5404, 0, "'>'"), -(9791, 18, "''"), -(9791, 0, "'M'"), -(9792, 0, "'a'"), -(9793, 0, "'y'"), -(9794, 0, "'b'"), -(9795, 0, "'e'"), -(9791, 5, "'MaybeUninit'"), -(9802, 0, "':'"), -(9803, 0, "':'"), -(9804, 0, "'u'"), -(9805, 0, "'n'"), -(9806, 0, "'i'"), -(9806, 1, "''"), -(9806, 0, "'i'"), -(9807, 0, "'n'"), -(9808, 0, "'i'"), -(9809, 0, "'t'"), -(9810, 0, "'('"), -(9811, 0, "')'"), -(10392, 0, "'n '"), -(10401, 0, "'n '"), -(10393, 8, "''"), -(10394, 8, "''"), -(10393, 1, "''"), -(10393, 0, "' '"), -(10401, 0, "'/'"), -(10402, 0, "'/'"), -(10403, 0, "' '"), -(10404, 0, "'T'"), -(10405, 0, "'O'"), -(10406, 0, "'D'"), -(10407, 0, "'O'"), -(10408, 0, "':'"), -(10409, 0, "' '"), -(10410, 0, "'U'"), -(10411, 0, "'s'"), -(10412, 0, "'e'"), -(10413, 0, "' '"), -(10414, 0, "'U'"), -(10415, 0, "'n'"), -(10416, 0, "'i'"), -(10417, 0, "'n'"), -(10418, 0, "'i'"), -(10419, 0, "'t'"), -(10414, 6, "'M'"), -(10415, 0, "'a'"), -(10416, 0, "'y'"), -(10417, 0, "'b'"), -(10418, 0, "'e'"), -(10419, 0, "'U'"), -(10420, 0, "'n'"), -(10421, 0, "'i'"), -(10422, 0, "'n'"), -(10423, 0, "'i'"), -(10424, 0, "'t'"), -(10425, 0, "':'"), -(10426, 0, "':'"), -(10427, 0, "'slice_get_ref'"), -(10440, 0, "' '"), -(10441, 0, "'w'"), -(10442, 0, "'h'"), -(10443, 0, "'e'"), -(10444, 0, "'n'"), -(10445, 0, "' '"), -(10446, 0, "'i'"), -(10447, 0, "'t'"), -(10448, 0, "'s'"), -(10449, 0, "' '"), -(10449, 1, "''"), -(10448, 1, "''"), -(10448, 0, "' '"), -(10449, 0, "'l'"), -(10450, 0, "'a'"), -(10451, 0, "'n'"), -(10452, 0, "'d'"), -(10453, 0, "'s'"), -(10454, 0, "'.'"), -(10455, 0, "'n '"), -(10464, 0, "'n '"), -(10456, 8, "''"), -(10465, 0, "' // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [Self] as *const [T]) }'"), -(10457, 16, "' '"), -(10457, 12, "' '"), -(10455, 0, "' '"), -(10456, 0, "'T'"), -(10457, 0, "'h'"), -(10458, 0, "'i'"), -(10459, 0, "'s'"), -(10460, 0, "' '"), -(10461, 0, "'c'"), -(10462, 0, "'o'"), -(10463, 0, "'d'"), -(10464, 0, "'e'"), -(10465, 0, "' '"), -(10466, 0, "'i'"), -(10467, 0, "'s'"), -(10468, 0, "' '"), -(10469, 0, "'s'"), -(10470, 0, "'t'"), -(10471, 0, "'i'"), -(10472, 0, "'l'"), -(10472, 1, "''"), -(10471, 1, "''"), -(10471, 0, "'o'"), -(10472, 0, "'l'"), -(10473, 0, "'e'"), -(10474, 0, "'d'"), -(10475, 0, "' '"), -(10475, 1, "''"), -(10474, 1, "''"), -(10474, 0, "'n'"), -(10475, 0, "' '"), -(10476, 0, "'f'"), -(10477, 0, "'r'"), -(10478, 0, "'o'"), -(10479, 0, "'m'"), -(10480, 0, "' '"), -(10481, 0, "'t'"), -(10482, 0, "'h'"), -(10483, 0, "'a'"), -(10484, 0, "'t'"), -(10485, 0, "' '"), -(10486, 0, "'i'"), -(10487, 0, "'m'"), -(10488, 0, "'p'"), -(10489, 0, "'l'"), -(10490, 0, "'e'"), -(10491, 0, "'m'"), -(10492, 0, "'e'"), -(10493, 0, "'n'"), -(10494, 0, "'t'"), -(10495, 0, "'a'"), -(10496, 0, "'t'"), -(10497, 0, "'i'"), -(10498, 0, "'o'"), -(10499, 0, "'n'"), -(10500, 0, "'.'"), -(10920, 38, "''"), -(10860, 0, "'n '"), -(10860, 0, "'l'"), -(10861, 0, "'e'"), -(10862, 0, "'t'"), -(10863, 0, "' '"), -(10864, 0, "'s'"), -(10865, 0, "'l'"), -(10866, 0, "'i'"), -(10867, 0, "'c'"), -(10868, 0, "'e'"), -(10869, 0, "' '"), -(10870, 0, "'='"), -(10871, 0, "' '"), -(10872, 0, "'&self.items[..self.num_items as usize]'"), -(10910, 0, "';'"), -(10976, 4, "''"), -(10972, 4, "''"), -(10971, 1, "''"), -(10949, 4, "'C::Item'"), -(10949, 7, "'Self'"), -(10966, 1, "'C::Item'"), -(10949, 4, "''"), -(10949, 0, "'M'"), -(10950, 0, "'a'"), -(10951, 0, "'y'"), -(10949, 3, "'MaybeUninit'"), -(10960, 0, "'<'"), -(10961, 0, "'C::Item'"), -(10968, 0, "'>'"), -(16021, 0, "'*'"), -(16022, 0, "'('"), -(16065, 0, "'.'"), -(16066, 0, "'a'"), -(16067, 0, "'s'"), -(16068, 0, "'_'"), -(16069, 0, "'m'"), -(16070, 0, "'u'"), -(16071, 0, "'t'"), -(16072, 0, "'_'"), -(16072, 1, "''"), -(16071, 1, "''"), -(16070, 1, "''"), -(16069, 1, "''"), -(16068, 1, "''"), -(16068, 0, "'_'"), -(16069, 0, "'p'"), -(16070, 0, "'t'"), -(16071, 0, "'r'"), -(16072, 0, "'('"), -(16073, 0, "')'"), -(16074, 0, "')'"), -(16011, 0, "'n '"), -(16020, 0, "'/'"), -(16021, 0, "'/'"), -(16022, 0, "' '"), -(16023, 0, "'T'"), -(16024, 0, "'h'"), -(16025, 0, "'i'"), -(16026, 0, "'s'"), -(16027, 0, "' '"), -(16028, 0, "'i'"), -(16029, 0, "'s'"), -(16030, 0, "' '"), -(16031, 0, "'s'"), -(16032, 0, "'o'"), -(16033, 0, "' '"), -(16034, 0, "'g'"), -(16035, 0, "'r'"), -(16036, 0, "'o'"), -(16037, 0, "'s'"), -(16038, 0, "'s'"), -(16039, 0, "'.'"), -(16023, 17, "'S'"), -(16024, 0, "'o'"), -(16025, 0, "' '"), -(16026, 0, "'g'"), -(16027, 0, "'o'"), -(16028, 0, "'r'"), -(16028, 1, "''"), -(16027, 1, "''"), -(16027, 0, "'r'"), -(16028, 0, "'o'"), -(16029, 0, "'s'"), -(16030, 0, "'s'"), -(16031, 0, "'.'"), -(16044, 18, "''"), -(16044, 0, "'n'"), -(16045, 0, "'o'"), -(16046, 0, "'d'"), -(16047, 0, "'e'"), -(16032, 0, "'n '"), -(16041, 0, "'l'"), -(16042, 0, "'e'"), -(16043, 0, "'t'"), -(16044, 0, "' '"), -(16045, 0, "'n'"), -(16046, 0, "'o'"), -(16047, 0, "'d'"), -(16048, 0, "'e'"), -(16049, 0, "' '"), -(16050, 0, "'='"), -(16051, 0, "' '"), -(16052, 0, "'(*self.here_ptr())'"), -(16070, 0, "';'"), -(16052, 0, "'&'"), -(16053, 1, "''"), -(16069, 1, "''"), -(16070, 0, "'n '"), -(16079, 0, "'d'"), -(16080, 0, "'e'"), -(16081, 0, "'b'"), -(16082, 0, "'u'"), -(16083, 0, "'g'"), -(16079, 5, "'debug_assert!'"), -(16092, 0, "'('"), -(16093, 0, "'n'"), -(16094, 0, "'o'"), -(16095, 0, "'d'"), -(16096, 0, "'e'"), -(16097, 0, "'.'"), -(16098, 0, "'n'"), -(16099, 0, "'u'"), -(16100, 0, "'m'"), -(16101, 0, "'_'"), -(16102, 0, "'i'"), -(16103, 0, "'t'"), -(16098, 6, "'num_items'"), -(16107, 0, "' '"), -(16108, 0, "'>'"), -(16109, 0, "'='"), -(16110, 0, "' '"), -(16111, 0, "'s'"), -(16112, 0, "'e'"), -(16113, 0, "'l'"), -(16114, 0, "'f'"), -(16115, 0, "'.'"), -(16116, 0, "'l'"), -(16117, 0, "'o'"), -(16118, 0, "'c'"), -(16119, 0, "'a'"), -(16120, 0, "'l'"), -(16116, 5, "'local_index'"), -(16127, 0, "')'"), -(16128, 0, "';'"), -(16127, 0, "' '"), -(16128, 0, "'a'"), -(16129, 0, "'s'"), -(16130, 0, "' '"), -(16131, 0, "'u'"), -(16132, 0, "'s'"), -(16133, 0, "'i'"), -(16134, 0, "'z'"), -(16135, 0, "'e'"), -(16127, 9, "''"), -(16107, 0, "' as usize'"), -(16070, 0, "'n '"), -(16071, 8, "''"), -(16070, 1, "''"), -(16012, 20, "''"), -(16011, 1, "''"), -(16049, 0, "'n '"), -(16058, 0, "'/'"), -(16059, 0, "'/'"), -(16060, 0, "' '"), -(16061, 0, "'T'"), -(16062, 0, "'O'"), -(16063, 0, "'D'"), -(16064, 0, "'O'"), -(16065, 0, "':'"), -(16066, 0, "' '"), -(16067, 0, "'I'"), -(16068, 0, "'t'"), -(16069, 0, "' '"), -(16070, 0, "'m'"), -(16071, 0, "'i'"), -(16072, 0, "'g'"), -(16073, 0, "'h'"), -(16074, 0, "'t'"), -(16075, 0, "' '"), -(16076, 0, "'b'"), -(16077, 0, "'e'"), -(16078, 0, "' '"), -(16079, 0, "'m'"), -(16080, 0, "'o'"), -(16081, 0, "'r'"), -(16082, 0, "'e'"), -(16083, 0, "' '"), -(16084, 0, "'r'"), -(16085, 0, "'u'"), -(16086, 0, "'s'"), -(16087, 0, "'t'"), -(16088, 0, "'y'"), -(16089, 0, "' '"), -(16090, 0, "'t'"), -(16091, 0, "'o'"), -(16092, 0, "' '"), -(16050, 43, "''"), -(16049, 1, "''"), -(18524, 36, "'[MaybeUninit::uninit(); NODE_NUM_ITEMS]'"), -(18310, 0, "'n'"), -(18311, 0, "'f'"), -(18312, 0, "'n'"), -(18313, 0, "' '"), -(18314, 0, "'f'"), -(18315, 0, "'o'"), -(18316, 0, "'o'"), -(18317, 0, "'pub fn uninit_array() -> [Self; LEN] {n unsafe { MaybeUninit::<[MaybeUninit; LEN]>::uninit().assume_init() }n }'"), -(18454, 4, "''"), -(18374, 8, "' '"), -(18311, 10, "''"), -(18326, 18, "''"), -(18390, 3, "'M'"), -(18339, 3, "'M'"), -(18389, 0, "'A'"), -(18340, 0, "'A'"), -(18391, 0, "'X'"), -(18341, 0, "'X'"), -(18390, 3, "'N'"), -(18339, 3, "'N'"), -(18389, 0, "'U'"), -(18340, 0, "'U'"), -(18391, 0, "'M'"), -(18341, 0, "'M'"), -(18390, 3, "'NODE_NUM_ITEMS'"), -(18339, 3, "'NODE_NUM_ITEMS'"), -(18326, 0, "'<'"), -(18327, 0, "'T'"), -(18328, 0, "'>'"), -(18336, 4, "'M'"), -(18337, 0, "'a'"), -(18338, 0, "'y'"), -(18339, 0, "'b'"), -(18340, 0, "'e'"), -(18336, 5, "'MaybeUninit'"), -(18347, 0, "'<'"), -(18348, 0, "'T'"), -(18349, 0, "'>'"), -(18321, 0, "'i'"), -(18322, 0, "'t'"), -(18323, 0, "'e'"), -(18324, 0, "'m'"), -(18325, 0, "'s'"), -(18326, 0, "'_'"), -(18678, 39, "''"), -(18678, 0, "'u'"), -(18679, 0, "'n'"), -(18680, 0, "'i'"), -(18681, 0, "'n'"), -(18678, 4, "'uninit_items_array'"), -(18696, 0, "'('"), -(18697, 0, "')'"), -(18310, 0, "'n'"), -(18311, 0, "'/'"), -(18312, 0, "'/'"), -(18313, 0, "' '"), -(18314, 0, "'T'"), -(18315, 0, "'O'"), -(18316, 0, "'D'"), -(18317, 0, "'O'"), -(18318, 0, "':'"), -(18319, 0, "' '"), -(18320, 0, "'S'"), -(18321, 0, "'t'"), -(18322, 0, "'o'"), -(18323, 0, "'l'"), -(18324, 0, "'e'"), -(18325, 0, "'n'"), -(18326, 0, "' '"), -(18327, 0, "'f'"), -(18328, 0, "'r'"), -(18329, 0, "'o'"), -(18330, 0, "'m'"), -(18331, 0, "' '"), -(18332, 0, "'uninit_array'"), -(18331, 0, "' '"), -(18332, 0, "'M'"), -(18333, 0, "'a'"), -(18334, 0, "'y'"), -(18335, 0, "'b'"), -(18336, 0, "'e'"), -(18337, 0, "'U'"), -(18338, 0, "'n'"), -(18339, 0, "'i'"), -(18340, 0, "'n'"), -(18341, 0, "'i'"), -(18342, 0, "'t'"), -(18343, 0, "':'"), -(18344, 0, "':'"), -(18345, 1, "''"), -(18357, 0, "'.'"), -(18358, 0, "' '"), -(18359, 0, "'R'"), -(18359, 1, "''"), -(18359, 0, "'C'"), -(18360, 0, "'a'"), -(18361, 0, "'l'"), -(18362, 0, "'l'"), -(18363, 0, "' '"), -(18364, 0, "'t'"), -(18365, 0, "'h'"), -(18366, 0, "'a'"), -(18367, 0, "'t'"), -(18368, 0, "' '"), -(18369, 0, "'w'"), -(18370, 0, "'h'"), -(18371, 0, "'e'"), -(18372, 0, "'n'"), -(18373, 0, "' '"), -(18374, 0, "'t'"), -(18375, 0, "'h'"), -(18376, 0, "'i'"), -(18377, 0, "'s'"), -(18359, 19, "'R'"), -(18360, 0, "'e'"), -(18361, 0, "'p'"), -(18362, 0, "'l'"), -(18363, 0, "'a'"), -(18364, 0, "'c'"), -(18365, 0, "'e'"), -(18366, 0, "' '"), -(18367, 0, "'w'"), -(18368, 0, "'i'"), -(18369, 0, "'t'"), -(18370, 0, "'h'"), -(18371, 0, "' '"), -(18372, 0, "'MaybeUninit::uninit_array'"), -(18397, 0, "' '"), -(18398, 0, "'w'"), -(18399, 0, "'h'"), -(18400, 0, "'e'"), -(18401, 0, "'n'"), -(18402, 0, "' '"), -(18372, 13, "''"), -(18372, 0, "'t'"), -(18373, 0, "'h'"), -(18374, 0, "'e'"), -(18375, 0, "' '"), -(18376, 0, "'r'"), -(18377, 0, "'e'"), -(18378, 0, "'a'"), -(18379, 0, "'l'"), -(18380, 0, "' '"), -(18399, 0, "'s'"), -(18400, 0, "'t'"), -(18401, 0, "'a'"), -(18402, 0, "'b'"), -(18403, 0, "'l'"), -(18404, 0, "'e'"), -(18405, 0, "'.'"), -(9790, 39, "'uninit_items_array'"), -(9808, 0, "'('"), -(9809, 0, "')'"), -(21795, 1, "''"), -(21797, 30, "''"), -(21796, 1, "''"), -(21796, 0, "'.'"), -(21797, 0, "'c'"), -(21798, 0, "'o'"), -(21799, 0, "'n'"), -(21800, 0, "'t'"), -(21801, 0, "'e'"), -(21802, 0, "'n'"), -(21803, 0, "'t'"), -(21797, 7, "'content_slice'"), -(21810, 0, "'('"), -(21811, 0, "')'"), -(27339, 0, "'.'"), -(27339, 1, "''"), -(27324, 0, "'*'"), -(27323, 0, "'u'"), -(27324, 0, "'n'"), -(27325, 0, "'s'"), -(27326, 0, "'a'"), -(27327, 0, "'f'"), -(27328, 0, "'e'"), -(27329, 0, "' '"), -(27330, 0, "'{'"), -(27331, 0, "' '"), -(27349, 0, "'.'"), -(27350, 0, "'a'"), -(27350, 1, "''"), -(27350, 0, "'a'"), -(27351, 0, "'s'"), -(27352, 0, "'_'"), -(27350, 3, "'as_ptr'"), -(27356, 0, "'('"), -(27357, 0, "')'"), -(27358, 0, "' '"), -(27359, 0, "'}'"), -(31156, 1, "''"), -(31160, 0, "'.'"), -(31161, 0, "'w'"), -(31162, 0, "'r'"), -(31163, 0, "'i'"), -(31164, 0, "'t'"), -(31165, 0, "'e'"), -(31166, 0, "'('"), -(31167, 1, "''"), -(31167, 1, "''"), -(31167, 1, "''"), -(31171, 0, "')'"), -(31160, 0, "'.'"), -(31161, 0, "'a'"), -(31162, 0, "'s'"), -(31163, 0, "'_'"), -(31164, 0, "'m'"), -(31165, 0, "'u'"), -(31166, 0, "'t'"), -(31167, 0, "'_'"), -(31161, 7, "'as_mut_ptr'"), -(31171, 0, "'('"), -(31172, 0, "')'"), -(31179, 0, "'<'"), -(31180, 0, "'C'"), -(31181, 0, "':'"), -(31182, 0, "':'"), -(31183, 0, "'I'"), -(31184, 0, "'t'"), -(31185, 0, "'e'"), -(31186, 0, "'m'"), -(31187, 0, "'>'"), -(31179, 0, "':'"), -(31180, 0, "':'"), -(31179, 11, "''"), -(31084, 0, "':'"), -(31085, 0, "' '"), -(31086, 0, "'C'"), -(31087, 0, "':'"), -(31088, 0, "':'"), -(31089, 0, "'I'"), -(31090, 0, "'t'"), -(31091, 0, "'e'"), -(31092, 0, "'m'"), -(31084, 9, "''"), -(31085, 0, "':'"), -(31086, 0, "' '"), -(31087, 0, "'_'"), -(31087, 1, "''"), -(31087, 0, "'('"), -(31088, 0, "'_'"), -(31089, 0, "','"), -(31090, 0, "' '"), -(31091, 0, "'T'"), -(31092, 0, "':'"), -(31093, 0, "':'"), -(31093, 1, "''"), -(31092, 1, "''"), -(31091, 1, "''"), -(31091, 0, "'C'"), -(31092, 0, "':'"), -(31093, 0, "':'"), -(31094, 0, "'I'"), -(31095, 0, "'t'"), -(31096, 0, "'e'"), -(31097, 0, "'m'"), -(31098, 0, "'>'"), -(31098, 1, "''"), -(31098, 0, "')'"), -(31085, 14, "''"), -(31156, 0, "'('"), -(31174, 0, "' '"), -(31175, 0, "'a'"), -(31176, 0, "'s'"), -(31177, 0, "' '"), -(31178, 0, "'*'"), -(31179, 0, "'m'"), -(31180, 0, "'u'"), -(31181, 0, "'t'"), -(31182, 0, "' '"), -(31183, 0, "'C'"), -(31184, 0, "':'"), -(31185, 0, "':'"), -(31186, 0, "'I'"), -(31187, 0, "'t'"), -(31188, 0, "'e'"), -(31189, 0, "'m'"), -(31190, 0, "')'"), -(31205, 82, "''"), -(31204, 0, "' '"), -(31205, 0, "'/'"), -(31206, 0, "'/'"), -(31207, 0, "' '"), -(31208, 0, "'M'"), -(31209, 0, "'a'"), -(31210, 0, "'k'"), -(31211, 0, "'e'"), -(31212, 0, "' '"), -(31213, 0, "'s'"), -(31214, 0, "'u'"), -(31215, 0, "'r'"), -(31216, 0, "'e'"), -(31217, 0, "' '"), -(31218, 0, "'w'"), -(31219, 0, "'e'"), -(31220, 0, "' '"), -(31221, 0, "'d'"), -(31222, 0, "'o'"), -(31223, 0, "'n'"), -(31224, 0, "'''"), -(31225, 0, "'t'"), -(31226, 0, "' '"), -(31208, 19, "'W'"), -(31209, 0, "'r'"), -(31210, 0, "'i'"), -(31211, 0, "'t'"), -(31212, 0, "'e'"), -(31213, 0, "' '"), -(31214, 0, "'m'"), -(31215, 0, "'a'"), -(31216, 0, "'k'"), -(31217, 0, "'e'"), -(31218, 0, "'s'"), -(31219, 0, "' '"), -(31220, 0, "'s'"), -(31221, 0, "'u'"), -(31222, 0, "'e'"), -(31223, 0, "' '"), -(31224, 0, "'w'"), -(31224, 1, "''"), -(31223, 1, "''"), -(31222, 1, "''"), -(31222, 0, "'r'"), -(31223, 0, "'e'"), -(31224, 0, "' '"), -(31225, 0, "'w'"), -(31226, 0, "'e'"), -(31227, 0, "'o'"), -(31228, 0, "'n'"), -(31229, 0, "'''"), -(31230, 0, "'t'"), -(31231, 0, "' '"), -(31225, 7, "'w'"), -(31226, 0, "'e'"), -(31227, 0, "' '"), -(31228, 0, "'d'"), -(31229, 0, "'o'"), -(31230, 0, "'n'"), -(31231, 0, "'''"), -(31232, 0, "'t'"), -(31233, 0, "' '"), -(31234, 0, "'d'"), -(31235, 0, "'r'"), -(31236, 0, "'o'"), -(31237, 0, "'p'"), -(31238, 0, "' '"), -(31239, 0, "'t'"), -(31240, 0, "'h'"), -(31241, 0, "'e'"), -(31242, 0, "' '"), -(31243, 0, "'o'"), -(31244, 0, "'l'"), -(31245, 0, "'d'"), -(31246, 0, "' '"), -(31247, 0, "'v'"), -(31248, 0, "'a'"), -(31249, 0, "'l'"), -(31250, 0, "'u'"), -(31251, 0, "'e'"), -(31252, 0, "'.'"), -(1987, 9, "''"), -(31147, 0, "'// '"), -(31134, 0, "'n '"), -(31147, 0, "'s'"), -(31148, 0, "'l'"), -(31149, 0, "'o'"), -(31150, 0, "'t'"), -(31151, 0, "'.'"), -(31152, 0, "'v'"), -(31153, 0, "'a'"), -(31154, 0, "'l'"), -(31155, 0, "'u'"), -(31156, 0, "'e'"), -(31157, 0, "' '"), -(31158, 0, "'='"), -(31159, 0, "' '"), -(31160, 0, "'M'"), -(31161, 0, "'a'"), -(31162, 0, "'n'"), -(31163, 0, "'u'"), -(31164, 0, "'a'"), -(31165, 0, "'l'"), -(31166, 0, "'l'"), -(31160, 0, "'s'"), -(31161, 0, "'t'"), -(31162, 0, "'d'"), -(31163, 0, "':'"), -(31164, 0, "':'"), -(31165, 0, "'m'"), -(31166, 0, "'e'"), -(31167, 0, "'m'"), -(31168, 0, "'o'"), -(31168, 1, "''"), -(31168, 0, "':'"), -(31169, 0, "':'"), -(31170, 7, "'ManuallyDrop'"), -(31182, 0, "':'"), -(31183, 0, "':'"), -(31184, 0, "'n'"), -(31185, 0, "'e'"), -(31186, 0, "'w'"), -(31187, 0, "'('"), -(31188, 0, "'i'"), -(31189, 0, "'t'"), -(31190, 0, "'e'"), -(31191, 0, "'m'"), -(31192, 0, "')'"), -(31193, 0, "';'"), -(31135, 59, "''"), -(31134, 1, "''"), -(31147, 3, "''"), -(37172, 0, "'n '"), -(37189, 0, "'/'"), -(37190, 0, "'/'"), -(37191, 0, "' '"), -(37192, 0, "'W'"), -(37193, 0, "'e'"), -(37194, 0, "' '"), -(37195, 0, "'d'"), -(37196, 0, "'o'"), -(37197, 0, "' '"), -(37198, 0, "'w'"), -(37199, 0, "'a'"), -(37200, 0, "'n'"), -(37201, 0, "'t'"), -(37202, 0, "' '"), -(37203, 0, "'t'"), -(37204, 0, "'o'"), -(37205, 0, "' '"), -(37206, 0, "'d'"), -(37207, 0, "'r'"), -(37208, 0, "'o'"), -(37209, 0, "'p'"), -(37210, 0, "' '"), -(37211, 0, "'t'"), -(37212, 0, "'h'"), -(37213, 0, "'e'"), -(37214, 0, "' '"), -(37215, 0, "'o'"), -(37216, 0, "'l'"), -(37217, 0, "'d'"), -(37218, 0, "' '"), -(37219, 0, "'i'"), -(37220, 0, "'t'"), -(37221, 0, "'e'"), -(37222, 0, "'m'"), -(37223, 0, "'.'"), -(37192, 32, "'D'"), -(37193, 0, "'o'"), -(37194, 0, "' '"), -(37195, 0, "'n'"), -(37196, 0, "'o'"), -(37197, 0, "'t'"), -(37198, 0, "' '"), -(37199, 0, "'d'"), -(37200, 0, "'r'"), -(37201, 0, "'o'"), -(37202, 0, "'p'"), -(37203, 0, "' '"), -(37204, 0, "'t'"), -(37205, 0, "'h'"), -(37206, 0, "'e'"), -(37207, 0, "' '"), -(37208, 0, "'o'"), -(37209, 0, "'l'"), -(37210, 0, "'d'"), -(37211, 0, "' '"), -(37212, 0, "'i'"), -(37213, 0, "'t'"), -(37214, 0, "'e'"), -(37215, 0, "'m'"), -(37216, 0, "'s'"), -(37217, 0, "'.'"), -(37235, 13, "'(slot.as_mut_ptr() as *mut C::Item).write(item);'"), -(37112, 4, "'s'"), -(37113, 0, "'l'"), -(37114, 0, "'o'"), -(37115, 0, "'t'"), -(37217, 1, "''"), -(37217, 0, "' '"), -(37218, 0, "'-'"), -(37219, 0, "' '"), -(37220, 0, "'t'"), -(37221, 0, "'h'"), -(37222, 0, "'e'"), -(37223, 0, "'y'"), -(37224, 0, "' '"), -(37225, 0, "'w'"), -(37226, 0, "'e'"), -(37227, 0, "'r'"), -(37228, 0, "'e'"), -(37229, 0, "' '"), -(37230, 0, "'o'"), -(37231, 0, "'n'"), -(37232, 0, "'l'"), -(37233, 0, "'y'"), -(37234, 0, "' '"), -(37235, 0, "'m'"), -(37236, 0, "'o'"), -(37237, 0, "'v'"), -(37238, 0, "'e'"), -(37239, 0, "'d'"), -(37240, 0, "'.'"), -(37242, 0, "' (slot.as_mut_ptr() as *mut C::Item).write(item);n'"), -(37323, 0, "'// '"), -(37276, 17, "''"), -(37258, 1, "''"), -(37289, 68, "''"), -(37302, 0, "'n '"), -(37315, 0, "'l'"), -(37316, 0, "'e'"), -(37317, 0, "'t'"), -(37318, 0, "' '"), -(37319, 0, "'d'"), -(37320, 0, "'e'"), -(37321, 0, "'s'"), -(37322, 0, "'t'"), -(37319, 4, "'dest_content_slice'"), -(37337, 0, "' '"), -(37338, 0, "'='"), -(37339, 0, "' '"), -(8805, 0, "'n'"), -(8806, 0, "'n'"), -(8807, 0, "'f'"), -(8808, 0, "'n'"), -(8809, 0, "' '"), -(8810, 0, "'s'"), -(8811, 0, "'l'"), -(8812, 0, "'i'"), -(8813, 0, "'c'"), -(8814, 0, "'e'"), -(8815, 0, "'_'"), -(8810, 0, "'u'"), -(8811, 0, "'n'"), -(8812, 0, "'i'"), -(8813, 0, "'n'"), -(8814, 0, "'i'"), -(8815, 0, "'t'"), -(8816, 0, "'_'"), -(8810, 0, "'m'"), -(8811, 0, "'a'"), -(8812, 0, "'y'"), -(8813, 0, "'b'"), -(8814, 0, "'e'"), -(8815, 13, "'m'"), -(8815, 1, "''"), -(8815, 0, "'i'"), -(8816, 0, "'n'"), -(8817, 0, "'i'"), -(8818, 0, "'t'"), -(8819, 0, "'_'"), -(8820, 0, "'s'"), -(8821, 0, "'l'"), -(8822, 0, "'i'"), -(8823, 0, "'c'"), -(8824, 0, "'e'"), -(8825, 0, "'_'"), -(8826, 0, "'g'"), -(8827, 0, "'e'"), -(8828, 0, "'t'"), -(8829, 0, "'_'"), -(8830, 0, "'r'"), -(8831, 0, "'e'"), -(8832, 0, "'f'"), -(8833, 0, "'('"), -(8834, 0, "'n '"), -(8839, 0, "'n '"), -(8835, 4, "''"), -(8840, 0, "' pub unsafe fn slice_get_ref(slice: &[Self]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [Self] as *const [T]) }n }'"), -(8836, 8, "' '"), -(8806, 0, "'n'"), -(8807, 0, "'/'"), -(8808, 0, "'/'"), -(8809, 0, "' '"), -(8810, 0, "'S'"), -(8811, 0, "'t'"), -(8812, 0, "'o'"), -(8813, 0, "'l'"), -(8814, 0, "'e'"), -(8815, 0, "'d'"), -(8816, 0, "' '"), -(8816, 1, "''"), -(8815, 1, "''"), -(8815, 0, "'n'"), -(8816, 0, "' '"), -(8817, 0, "'f'"), -(8818, 0, "'r'"), -(8819, 0, "'o'"), -(8820, 0, "'m'"), -(8821, 0, "' '"), -(8822, 0, "'s'"), -(8823, 0, "'t'"), -(8823, 1, "''"), -(8822, 1, "''"), -(8822, 0, "'s'"), -(8823, 0, "'t'"), -(8824, 0, "'d'"), -(8825, 0, "':'"), -(8826, 0, "':'"), -(8822, 5, "'c'"), -(8823, 0, "'o'"), -(8824, 0, "'r'"), -(8825, 0, "'e'"), -(8826, 0, "':'"), -(8827, 0, "':'"), -(8828, 0, "'m'"), -(8829, 0, "'e'"), -(8830, 0, "'m'"), -(8831, 0, "':'"), -(8832, 0, "':'"), -(8833, 0, "'m'"), -(8834, 0, "'a'"), -(8835, 0, "'y'"), -(8836, 0, "'b'"), -(8837, 0, "'e'"), -(8838, 0, "'u'"), -(8833, 6, "'MaybeUninit'"), -(8844, 0, "'.'"), -(8845, 0, "' '"), -(8846, 0, "'I'"), -(8847, 0, "'t'"), -(8848, 0, "'s'"), -(8849, 0, "' '"), -(8850, 0, "'j'"), -(8851, 0, "'u'"), -(8852, 0, "'s'"), -(8853, 0, "'t'"), -(8854, 0, "' '"), -(8855, 0, "'n'"), -(8856, 0, "'o'"), -(8857, 0, "'t'"), -(8858, 0, "' '"), -(8859, 0, "'s'"), -(8860, 0, "'t'"), -(8861, 0, "'a'"), -(8862, 0, "'n'"), -(8863, 0, "'d'"), -(8864, 0, "'a'"), -(8865, 0, "'r'"), -(8866, 0, "'d'"), -(8867, 0, "'l'"), -(8868, 0, "'i'"), -(8868, 1, "''"), -(8867, 1, "''"), -(8866, 1, "''"), -(8865, 1, "''"), -(8865, 0, "'r'"), -(8866, 0, "'d'"), -(8867, 0, "'i'"), -(8868, 0, "'z'"), -(8869, 0, "'e'"), -(8870, 0, "'d'"), -(8871, 0, "' '"), -(8872, 0, "'y'"), -(8873, 0, "'e'"), -(8874, 0, "'t'"), -(8875, 0, "'.'"), -(8904, 34, "''"), -(8903, 0, "'<'"), -(8904, 0, "'T'"), -(8905, 0, "'>'"), -(8916, 4, "'M'"), -(8917, 0, "'a'"), -(8918, 0, "'y'"), -(8919, 0, "'b'"), -(8920, 0, "'e'"), -(8916, 5, "'MaybeUninit'"), -(8927, 0, "'<'"), -(8928, 0, "'T'"), -(8929, 0, "'>'"), -(8877, 0, "'u'"), -(8878, 0, "'n'"), -(8879, 0, "'s'"), -(8880, 0, "'a'"), -(8881, 0, "'f'"), -(8882, 0, "'e'"), -(8883, 0, "' '"), -(9359, 4, "''"), -(9299, 8, "' '"), -(9235, 8, "' '"), -(9140, 8, "' '"), -(9042, 8, "' '"), -(8950, 8, "' '"), -(9316, 4, "''"), -(9316, 0, "'M'"), -(9317, 0, "'a'"), -(9318, 0, "'y'"), -(9319, 0, "'b'"), -(9320, 0, "'e'"), -(9316, 5, "'MaybeUninit'"), -(9327, 0, "'<'"), -(9328, 0, "'T'"), -(9329, 0, "'>'"), -(8806, 545, "''"), -(8805, 1, "''"), -(8804, 1, "''"), -(18530, 0, "'n'"), -(18531, 0, "'n'"), -(18532, 0, "'n// Stolen from core::mem::MaybeUninit. Its just not standardized yet.nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [MaybeUninit] as *const [T]) }n}n'"), -(18531, 1, "''"), -(8804, 0, "'n'"), -(10882, 0, "'n '"), -(10891, 0, "'m'"), -(10892, 0, "'a'"), -(10893, 0, "'y'"), -(10891, 3, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(10915, 24, "'s'"), -(10916, 0, "'l'"), -(10917, 0, "'i'"), -(10918, 0, "'c'"), -(10919, 0, "'e'"), -(10930, 0, "'// '"), -(10922, 84, "''"), -(10921, 1, "''"), -(18334, 0, "'n'"), -(18335, 0, "'#[inline(always)]'"), -(18335, 17, "''"), -(18334, 1, "''"), -(18559, 0, "'n'"), -(18560, 0, "'#[inline(always)]'"), -(18334, 0, "'n'"), -(18335, 0, "'#[inline(always)]'"), -(37878, 0, "'m'"), -(37879, 0, "'a'"), -(37880, 0, "'y'"), -(37881, 0, "'b'"), -(37882, 0, "'e'"), -(37878, 5, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(37902, 24, "'d'"), -(37903, 0, "'e'"), -(37904, 0, "'s'"), -(37905, 0, "'t'"), -(37906, 0, "'_'"), -(37907, 0, "'c'"), -(37908, 0, "'o'"), -(37909, 0, "'n'"), -(37910, 0, "'t'"), -(37911, 0, "'e'"), -(37912, 0, "'n'"), -(37913, 0, "'t'"), -(37914, 0, "'_'"), -(37915, 0, "'s'"), -(37916, 0, "'l'"), -(37917, 0, "'i'"), -(37918, 0, "'c'"), -(37919, 0, "'e'"), -(37921, 0, "';'"), -(17636, 0, "' unsafe fn from_slice(slice: &[C::Item]) -> Self {n unsafe {n let ptr = slice.as_mut_ptr();n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n }n'"), -(18286, 0, "'// '"), -(18276, 0, "'// '"), -(18262, 0, "'// '"), -(18225, 0, "'// '"), -(18204, 0, "'// '"), -(18154, 0, "'// '"), -(18124, 0, "'// '"), -(18079, 0, "'// '"), -(18037, 0, "'// '"), -(18020, 0, "'// '"), -(17966, 0, "'// '"), -(17655, 0, "'m'"), -(17656, 0, "'a'"), -(17657, 0, "'y'"), -(17658, 0, "'b'"), -(17659, 0, "'e'"), -(17655, 5, "''"), -(17670, 0, "'M'"), -(17671, 0, "'a'"), -(17672, 0, "'y'"), -(17673, 0, "'b'"), -(17674, 0, "'e'"), -(17675, 0, "'I'"), -(17676, 0, "'n'"), -(17677, 0, "'i'"), -(17678, 0, "'n'"), -(17679, 0, "'t'"), -(17679, 1, "''"), -(17678, 1, "''"), -(17677, 1, "''"), -(17677, 0, "'i'"), -(17678, 0, "'t'"), -(17679, 0, "'<'"), -(17680, 0, "'<'"), -(17680, 1, "''"), -(17687, 0, "'>'"), -(17675, 0, "'U'"), -(17676, 0, "'n'"), -(17677, 1, "''"), -(17677, 0, "'i'"), -(17747, 0, "'['"), -(17748, 0, "'0'"), -(17749, 0, "']'"), -(17749, 1, "''"), -(17748, 1, "''"), -(17747, 1, "''"), -(17747, 0, "'[0]'"), -(17747, 3, "''"), -(17760, 0, "' '"), -(17761, 0, "'a'"), -(17762, 0, "'s'"), -(17763, 0, "' '"), -(17764, 0, "'*'"), -(17765, 0, "'m'"), -(17766, 0, "'u'"), -(17767, 0, "'t'"), -(17768, 0, "' '"), -(17769, 0, "'C'"), -(17770, 0, "':'"), -(17771, 0, "':'"), -(17772, 0, "'I'"), -(17773, 0, "'t'"), -(17774, 0, "'e'"), -(17775, 0, "'m'"), -(17777, 0, "' '"), -(17778, 0, "'/'"), -(17779, 0, "'/'"), -(17780, 0, "' '"), -(17781, 0, "'s'"), -(17781, 1, "''"), -(17781, 0, "'S'"), -(17782, 0, "'a'"), -(17783, 0, "'f'"), -(17784, 0, "'e'"), -(17785, 0, "'.'"), -(17635, 0, "'n '"), -(17640, 0, "'/'"), -(17641, 0, "'/'"), -(17642, 0, "'/'"), -(17643, 0, "' '"), -(17643, 1, "''"), -(17642, 1, "''"), -(17642, 0, "' '"), -(17643, 0, "'M'"), -(17644, 0, "'a'"), -(17645, 0, "'k'"), -(17646, 0, "'e'"), -(17647, 0, "' '"), -(17648, 0, "'a'"), -(17649, 0, "' '"), -(17650, 0, "'l'"), -(17651, 0, "'c'"), -(17652, 0, "'i'"), -(17652, 1, "''"), -(17651, 1, "''"), -(17650, 1, "''"), -(17640, 0, "'/'"), -(17651, 0, "'s'"), -(17652, 0, "'l'"), -(17653, 0, "'i'"), -(17654, 0, "'c'"), -(17655, 0, "'e'"), -(17656, 0, "' '"), -(17657, 0, "'w'"), -(17658, 0, "'e'"), -(17659, 0, "' '"), -(17660, 0, "'c'"), -(17661, 0, "'a'"), -(17662, 0, "'n'"), -(17663, 0, "' '"), -(17664, 0, "'i'"), -(17665, 0, "'t'"), -(17666, 0, "'e'"), -(17667, 0, "'r'"), -(17668, 0, "'a'"), -(17669, 0, "'t'"), -(17670, 0, "'e'"), -(17671, 0, "' '"), -(17672, 0, "'f'"), -(17673, 0, "'r'"), -(17674, 0, "'o'"), -(17675, 0, "'m'"), -(17676, 0, "' '"), -(17677, 0, "'a'"), -(17678, 0, "'n'"), -(17679, 0, "'d'"), -(17680, 0, "' '"), -(17681, 0, "'s'"), -(17682, 0, "'t'"), -(17683, 0, "'e'"), -(17684, 0, "'a'"), -(17685, 0, "'l'"), -(17686, 0, "' '"), -(17687, 0, "'f'"), -(17688, 0, "'r'"), -(17689, 0, "'o'"), -(17690, 0, "'m'"), -(17691, 0, "'.'"), -(17692, 0, "' '"), -(17693, 0, "'A'"), -(17694, 0, "'f'"), -(17695, 0, "'t'"), -(17696, 0, "'e'"), -(17697, 0, "'r'"), -(17698, 0, "' '"), -(17699, 0, "'t'"), -(17700, 0, "'h'"), -(17701, 0, "'e'"), -(17702, 0, "' '"), -(17703, 0, "'i'"), -(17704, 0, "'t'"), -(17705, 0, "'e'"), -(17706, 0, "'r'"), -(17707, 0, "'a'"), -(17708, 0, "'t'"), -(17709, 0, "'o'"), -(17710, 0, "'r'"), -(17711, 0, "' '"), -(17712, 0, "'h'"), -(17713, 0, "'a'"), -(17714, 0, "'s'"), -(17715, 0, "' '"), -(17716, 0, "'r'"), -(17717, 0, "'u'"), -(17718, 0, "'n'"), -(17719, 0, "','"), -(17720, 0, "' '"), -(17721, 0, "'t'"), -(17722, 0, "'h'"), -(17723, 0, "'e'"), -(17724, 0, "' '"), -(17725, 0, "'i'"), -(17726, 0, "'t'"), -(17727, 0, "'e'"), -(17728, 0, "'m'"), -(17729, 0, "'s'"), -(17692, 0, "' '"), -(17693, 0, "'T'"), -(17694, 0, "'h'"), -(17695, 0, "'i'"), -(17696, 0, "'s'"), -(17697, 0, "' '"), -(17698, 0, "'s'"), -(17699, 0, "'i'"), -(17699, 1, "''"), -(17698, 1, "''"), -(17698, 0, "'i'"), -(17699, 0, "'s'"), -(17700, 0, "' '"), -(17701, 0, "'a'"), -(17693, 9, "''"), -(17692, 1, "''"), -(17730, 0, "' '"), -(17731, 0, "'i'"), -(17732, 0, "'n'"), -(17733, 0, "'s'"), -(17734, 0, "'i'"), -(17735, 0, "'d'"), -(17736, 0, "'e'"), -(17737, 0, "' '"), -(17738, 0, "'*'"), -(17739, 0, "'m'"), -(17740, 0, "'u'"), -(17741, 0, "'s'"), -(17742, 0, "'t'"), -(17743, 0, "'*'"), -(17744, 0, "' '"), -(17745, 0, "'b'"), -(17746, 0, "'e'"), -(17747, 0, "' '"), -(17693, 55, "'T'"), -(17694, 0, "'h'"), -(17695, 0, "'e'"), -(17696, 0, "' '"), -(17697, 0, "'i'"), -(17698, 0, "'t'"), -(17699, 0, "'e'"), -(17700, 0, "'r'"), -(17701, 0, "'a'"), -(17702, 0, "'t'"), -(17703, 0, "'o'"), -(17704, 0, "'r'"), -(17705, 0, "' '"), -(17693, 13, "'I'"), -(17694, 0, "'t'"), -(17695, 0, "'s'"), -(17696, 0, "' '"), -(17697, 0, "'u'"), -(17698, 0, "'n'"), -(17699, 0, "'s'"), -(17700, 0, "'a'"), -(17701, 0, "'f'"), -(17702, 0, "'e'"), -(17703, 0, "' '"), -(17704, 0, "'t'"), -(17704, 1, "''"), -(17704, 0, "'i'"), -(17705, 0, "'f'"), -(17706, 0, "' '"), -(17707, 0, "'t'"), -(17708, 0, "'h'"), -(17709, 0, "'e'"), -(17710, 0, "' '"), -(17711, 0, "'i'"), -(17712, 0, "'t'"), -(17713, 0, "'e'"), -(17714, 0, "'r'"), -(17715, 0, "'a'"), -(17716, 0, "'t'"), -(17717, 0, "'o'"), -(17718, 0, "'r'"), -(17719, 0, "' '"), -(17720, 0, "'i'"), -(17721, 0, "'s'"), -(17722, 0, "'n'"), -(17723, 0, "'''"), -(17724, 0, "'t'"), -(17725, 0, "' '"), -(17726, 0, "'d'"), -(17727, 0, "'r'"), -(17728, 0, "'a'"), -(17729, 0, "'i'"), -(17730, 0, "'n'"), -(17731, 0, "'e'"), -(17732, 0, "'d'"), -(17706, 1, "''"), -(17706, 0, "'n /// '"), -(17706, 0, "':'"), -(17716, 0, "'n /// '"), -(17725, 0, "'-'"), -(17726, 0, "' '"), -(17727, 1, "''"), -(17727, 0, "'T'"), -(17753, 0, "'n /// '"), -(17762, 0, "'-'"), -(17763, 0, "' '"), -(17746, 0, "'f'"), -(17747, 0, "'u'"), -(17748, 0, "'l'"), -(17749, 0, "'l'"), -(17750, 0, "'y'"), -(17751, 0, "' '"), -(17759, 0, "' '"), -(17760, 0, "'('"), -(17761, 0, "'t'"), -(17762, 0, "'h'"), -(17763, 0, "'e'"), -(17764, 0, "'n'"), -(17765, 0, "' '"), -(17766, 0, "'w'"), -(17767, 0, "'e'"), -(17768, 0, "' '"), -(17769, 0, "'m'"), -(17770, 0, "'i'"), -(17771, 0, "'g'"), -(17772, 0, "'h'"), -(17773, 0, "'t'"), -(17774, 0, "' '"), -(17775, 0, "'n'"), -(17776, 0, "'t'"), -(17777, 0, "'o'"), -(17777, 1, "''"), -(17776, 1, "''"), -(17776, 0, "'o'"), -(17777, 0, "'t'"), -(17778, 0, "' '"), -(17779, 0, "'d'"), -(17780, 0, "'r'"), -(17781, 0, "'o'"), -(17782, 0, "'p'"), -(17783, 0, "' '"), -(17784, 0, "'c'"), -(17785, 0, "'o'"), -(17786, 0, "'n'"), -(17787, 0, "'t'"), -(17788, 0, "'e'"), -(17789, 0, "'n'"), -(17790, 0, "'t'"), -(17791, 0, "'s'"), -(17792, 0, "')'"), -(17804, 0, "'T'"), -(17805, 0, "'h'"), -(17806, 0, "'e'"), -(17807, 0, "' '"), -(17808, 0, "'c'"), -(17809, 0, "'o'"), -(17810, 0, "'n'"), -(17811, 0, "'t'"), -(17812, 0, "'e'"), -(17813, 0, "'n'"), -(17814, 0, "'t'"), -(17815, 0, "'s'"), -(17816, 0, "' '"), -(17817, 0, "'w'"), -(17818, 0, "'e'"), -(17819, 0, "' '"), -(17820, 0, "'i'"), -(17821, 0, "'t'"), -(17822, 0, "'e'"), -(17823, 0, "'r'"), -(17824, 0, "'a'"), -(17825, 0, "'t'"), -(17826, 0, "' '"), -(17827, 0, "'o'"), -(17827, 1, "''"), -(17827, 0, "'e'"), -(17828, 0, "' '"), -(17828, 1, "''"), -(17827, 1, "''"), -(17827, 0, "' '"), -(17827, 1, "''"), -(17826, 1, "''"), -(17826, 0, "'e'"), -(17827, 0, "' '"), -(17828, 0, "'o'"), -(17829, 0, "'v'"), -(17830, 0, "'e'"), -(17831, 0, "'r'"), -(17832, 0, "' '"), -(17833, 0, "'a'"), -(17834, 0, "'r'"), -(17835, 0, "'e'"), -(17836, 0, "'n'"), -(17837, 0, "'''"), -(17838, 0, "'t'"), -(17839, 0, "' '"), -(17840, 0, "'i'"), -(17841, 0, "'n'"), -(17842, 0, "'i'"), -(17843, 0, "'t'"), -(17844, 0, "'i'"), -(17845, 0, "'a'"), -(17846, 0, "'l'"), -(17847, 0, "'i'"), -(17848, 0, "'e'"), -(17848, 1, "''"), -(17848, 0, "'z'"), -(17849, 0, "'e'"), -(17850, 0, "'d'"), -(17851, 0, "'.'"), -(17851, 1, "''"), -(17851, 0, "'n /// '"), -(17860, 0, "'n /// '"), -(17869, 0, "'A'"), -(17870, 0, "'f'"), -(17871, 0, "'t'"), -(17872, 0, "'e'"), -(17873, 0, "'r'"), -(17874, 0, "' '"), -(17875, 0, "'i'"), -(17876, 0, "'t'"), -(17877, 0, "'e'"), -(17878, 0, "'r'"), -(17879, 0, "'a'"), -(17880, 0, "'t'"), -(17881, 0, "'i'"), -(17882, 0, "'n'"), -(17883, 0, "'g'"), -(17884, 0, "','"), -(17885, 0, "' '"), -(17886, 0, "'t'"), -(17887, 0, "'h'"), -(17888, 0, "'e'"), -(17889, 0, "' '"), -(17890, 0, "'c'"), -(17891, 0, "'o'"), -(17892, 0, "'n'"), -(17893, 0, "'t'"), -(17894, 0, "'e'"), -(17895, 0, "'n'"), -(17896, 0, "'t'"), -(17897, 0, "'s'"), -(17898, 0, "' '"), -(17899, 0, "'a'"), -(17900, 0, "'r'"), -(17901, 0, "'e'"), -(17902, 0, "' '"), -(17902, 1, "''"), -(17902, 0, "'n'"), -(17903, 0, "'''"), -(17904, 0, "'t'"), -(17905, 0, "' '"), -(17906, 0, "'m'"), -(17907, 0, "'o'"), -(17908, 0, "'d'"), -(17899, 10, "'a'"), -(17900, 0, "'r'"), -(17901, 0, "'e'"), -(17902, 0, "' '"), -(17903, 0, "'u'"), -(17904, 0, "'n'"), -(17905, 0, "'i'"), -(17906, 0, "'n'"), -(17907, 0, "'i'"), -(17908, 0, "'t'"), -(17909, 0, "' '"), -(17910, 0, "'m'"), -(17911, 0, "'e'"), -(17912, 0, "'m'"), -(17913, 0, "'o'"), -(17914, 0, "'r'"), -(17915, 0, "'y'"), -(17916, 0, "'.'"), -(44859, 0, "' '"), -(44859, 0, "'m'"), -(44860, 0, "'a'"), -(44861, 0, "'y'"), -(44859, 3, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(44883, 24, "''"), -(44883, 1, "''"), -(44883, 1, "''"), -(44921, 0, "')'"), -(50020, 0, "' '"), -(50020, 0, "'m'"), -(50021, 0, "'a'"), -(50022, 0, "'y'"), -(50023, 0, "'b'"), -(50020, 4, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(50044, 24, "''"), -(50044, 1, "''"), -(50044, 1, "''"), -(50048, 0, "')'"), -(50332, 0, "'m'"), -(50333, 0, "'a'"), -(50334, 0, "'y'"), -(50335, 0, "'b'"), -(50336, 0, "' '"), -(50332, 4, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(50356, 24, "''"), -(50356, 1, "''"), -(50356, 1, "''"), -(50360, 0, "')'"), -(50217, 1, "''"), -(50221, 0, "'.'"), -(50222, 0, "'g'"), -(50223, 0, "'e'"), -(50224, 0, "'t'"), -(50225, 0, "'_'"), -(50226, 0, "'m'"), -(50227, 0, "'u'"), -(50228, 0, "'t'"), -(50229, 0, "'('"), -(50230, 0, "')'"), -(50217, 0, "'*'"), -(50223, 7, "'a'"), -(50224, 0, "'s'"), -(50225, 0, "'_'"), -(50226, 0, "'m'"), -(50227, 0, "'u'"), -(50228, 0, "'t'"), -(50229, 0, "'_'"), -(50230, 0, "'p'"), -(50223, 8, "'as_mut_ptr'"), -(50218, 0, "'('"), -(50218, 1, "''"), -(50262, 7, "'r'"), -(50263, 0, "'e'"), -(50264, 0, "'p'"), -(50265, 0, "'l'"), -(50266, 0, "'a'"), -(50267, 0, "'c'"), -(50268, 0, "'e'"), -(50269, 0, "'d'"), -(50247, 5, "''"), -(50247, 1, "''"), -(50247, 0, "'D'"), -(50251, 1, "''"), -(51245, 4, "'maybeinit_slice_get_ref(dest)'"), -(50340, 29, "''"), -(50340, 0, "'maybeinit_slice_get_ref(dest)'"), -(51245, 29, "'d'"), -(50340, 29, "'d'"), -(51218, 0, "'e'"), -(50341, 0, "'e'"), -(51220, 0, "'s'"), -(50342, 0, "'s'"), -(51222, 0, "'t'"), -(50343, 0, "'t'"), -(51200, 0, "'n '"), -(50288, 0, "'n '"), -(51214, 12, "''"), -(50301, 0, "'l'"), -(50302, 0, "'e'"), -(50303, 0, "'t'"), -(50304, 0, "' '"), -(50305, 0, "'d'"), -(50306, 0, "'e'"), -(50307, 0, "'s'"), -(50308, 0, "'t'"), -(50309, 0, "' '"), -(50310, 0, "'='"), -(50311, 0, "' '"), -(50312, 0, "'maybeinit_slice_get_ref(dest)'"), -(50341, 0, "';'"), -(51254, 1, "''"), -(10891, 0, "'u'"), -(10892, 0, "'n'"), -(10893, 0, "'s'"), -(10894, 0, "'a'"), -(10895, 0, "'f'"), -(10896, 0, "'e'"), -(10897, 0, "' '"), -(10898, 0, "'{'"), -(10899, 0, "' '"), -(10930, 0, "' '"), -(10931, 0, "'}'"), -(18044, 4, "''"), -(17996, 16, "''"), -(17995, 1, "''"), -(18242, 12, "' '"), -(18205, 16, "' '"), -(18184, 16, "' '"), -(18134, 16, "' '"), -(18104, 12, "' '"), -(18059, 12, "' '"), -(17996, 12, "' '"), -(18228, 9, "''"), -(18227, 1, "''"), -(18825, 0, "'u'"), -(18826, 0, "'n'"), -(18827, 0, "'s'"), -(18828, 0, "'a'"), -(18829, 0, "'f'"), -(18830, 0, "'e'"), -(18831, 0, "' '"), -(18832, 0, "'{'"), -(18833, 0, "' '"), -(18858, 0, "' '"), -(18859, 0, "'}'"), -(50144, 0, "'&'"), -(50144, 1, "''"), -(50249, 0, "'// '"), -(50176, 0, "'// '"), -(50104, 0, "'// '"), -(50091, 0, "'n '"), -(50104, 0, "'/'"), -(50105, 0, "'/'"), -(50106, 0, "' '"), -(50107, 0, "'W'"), -(50108, 0, "'o'"), -(50109, 0, "'u'"), -(50110, 0, "'l'"), -(50111, 0, "'d'"), -(50112, 0, "' '"), -(50113, 0, "'p'"), -(50114, 0, "'r'"), -(50115, 0, "'e'"), -(50116, 0, "'f'"), -(50117, 0, "'e'"), -(50118, 0, "'r'"), -(50119, 0, "' '"), -(50120, 0, "'t'"), -(50121, 0, "'o'"), -(50122, 0, "' '"), -(50123, 0, "'u'"), -(50124, 0, "'s'"), -(50125, 0, "'e'"), -(50126, 0, "' '"), -(50127, 0, "'z'"), -(50128, 0, "'i'"), -(50129, 0, "'p'"), -(50130, 0, "'('"), -(50131, 0, "')'"), -(50132, 0, "' '"), -(50133, 0, "'b'"), -(50134, 0, "'u'"), -(50135, 0, "'t'"), -(50136, 0, "' '"), -(50137, 0, "'i'"), -(50138, 0, "'t'"), -(50139, 0, "' '"), -(50140, 0, "'g'"), -(50141, 0, "'i'"), -(50142, 0, "'v'"), -(50143, 0, "'e'"), -(50144, 0, "'s'"), -(50140, 5, "'t'"), -(50141, 0, "'a'"), -(50142, 0, "'k'"), -(50143, 0, "'e'"), -(50144, 0, "'s'"), -(50145, 0, "' '"), -(50146, 0, "'o'"), -(50147, 0, "'w'"), -(50148, 0, "'n'"), -(50149, 0, "'e'"), -(50150, 0, "'r'"), -(50151, 0, "'s'"), -(50152, 0, "'h'"), -(50153, 0, "'i'"), -(50154, 0, "'p'"), -(50155, 0, "' '"), -(50156, 0, "'o'"), -(50157, 0, "'f'"), -(50158, 0, "' '"), -(50159, 0, "'i'"), -(50160, 0, "'n'"), -(50161, 0, "'s'"), -(50162, 0, "'e'"), -(50163, 0, "'r'"), -(50164, 0, "'t'"), -(50165, 0, "'e'"), -(50166, 0, "'d'"), -(50167, 0, "'_'"), -(50168, 0, "'c'"), -(50169, 0, "'o'"), -(50170, 0, "'n'"), -(50171, 0, "'t'"), -(50172, 0, "'e'"), -(50173, 0, "'n'"), -(50174, 0, "'t'"), -(50175, 0, "' '"), -(50176, 0, "':'"), -(50177, 0, "'/'"), -(50178, 0, "'n '"), -(50191, 0, "'index..index + replaced_items_here'"), -(50139, 6, "' '"), -(50140, 0, "'w'"), -(50141, 0, "'a'"), -(50142, 0, "'n'"), -(50143, 0, "'t'"), -(50144, 0, "'s'"), -(50191, 0, "'f'"), -(50192, 0, "'o'"), -(50193, 0, "'r'"), -(50194, 0, "' '"), -(50195, 0, "'i'"), -(50196, 0, "' '"), -(50197, 0, "'i'"), -(50198, 0, "'n'"), -(50199, 0, "' '"), -(50234, 0, "' '"), -(50235, 0, "'{'"), -(50236, 0, "'n '"), -(50253, 0, "'n '"), -(50237, 16, "''"), -(50238, 16, "' }'"), -(50237, 0, "' '"), -(50237, 16, "''"), -(50195, 39, "''"), -(50195, 0, "'&'"), -(50196, 0, "'m'"), -(50197, 0, "'u'"), -(50198, 0, "'t'"), -(50199, 0, "' '"), -(50200, 0, "'s'"), -(50201, 0, "'l'"), -(50202, 0, "'o'"), -(50203, 0, "'t'"), -(50204, 0, "' '"), -(50205, 0, "'='"), -(50206, 0, "' '"), -(50206, 1, "''"), -(50205, 1, "''"), -(50205, 0, "'i'"), -(50206, 0, "'n'"), -(50207, 0, "' '"), -(50208, 0, "'d'"), -(50209, 0, "'e'"), -(50210, 0, "'s'"), -(50211, 0, "'t'"), -(50215, 0, "' '"), -(50215, 16, "''"), -(50194, 10, "''"), -(50194, 0, "' '"), -(50195, 0, "'s'"), -(50196, 0, "'l'"), -(50197, 0, "'o'"), -(50198, 0, "'t'"), -(50210, 0, "' '"), -(50226, 0, "'*slot.as_mut_ptr() = item;'"), -(50247, 5, "''"), -(50247, 0, "'i'"), -(50248, 0, "'n'"), -(50249, 0, "'s'"), -(50250, 0, "'e'"), -(50251, 0, "'r'"), -(50252, 0, "'t'"), -(50247, 6, "'inserted_content'"), -(50263, 0, "'.'"), -(50264, 0, "'n'"), -(50265, 0, "'e'"), -(50266, 0, "'x'"), -(50264, 3, "'next()'"), -(50270, 0, "'('"), -(50270, 1, "''"), -(50270, 0, "'.'"), -(50271, 0, "'u'"), -(50272, 0, "'n'"), -(50273, 0, "'w'"), -(50274, 0, "'r'"), -(50275, 0, "'a'"), -(50276, 0, "'p'"), -(50277, 0, "'('"), -(50278, 0, "')'"), -(50279, 0, "'/'"), -(50280, 0, "';'"), -(50280, 1, "''"), -(50279, 1, "''"), -(50279, 0, "';'"), -(50293, 0, "'// '"), -(50222, 0, "'// '"), -(50191, 0, "'// '"), -(50299, 3, "''"), -(50225, 3, "''"), -(50191, 3, "''"), -(50207, 0, "'.'"), -(50208, 0, "'i'"), -(50209, 0, "'t'"), -(50210, 0, "'e'"), -(50211, 0, "'r'"), -(50212, 0, "'('"), -(50213, 0, "')'"), -(50212, 0, "'_'"), -(50213, 0, "'m'"), -(50214, 0, "'u'"), -(50215, 0, "'t'"), -(38227, 3, "''"), -(38227, 1, "''"), -(38227, 0, "'mut '"), -(38200, 4, "''"), -(19648, 9, "''"), -(19699, 1, "''"), -(19698, 1, "''"), -(19698, 0, "' }'"), -(19698, 2, "''"), -(48839, 3, "''"), -(48839, 1, "''"), -(783, 55945, "'use std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min;nuse std::marker::PhantomData;nnuse std::fmt;nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of items in each node. Must fit in a u8 thanks to Node.n#[cfg(debug_assertions)]nconst NODE_NUM_ITEMS: usize = 10;nn#[cfg(not(debug_assertions))]nconst NODE_NUM_ITEMS: usize = 100;nn/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the contents are smaller.n#[cfg(debug_assertions)]nconst MAX_HEIGHT: usize = 5;nn#[cfg(not(debug_assertions))]nconst MAX_HEIGHT: usize = 10;nnnconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.nnpub struct ItemMarker<'a, C: ListConfig> {n ptr: *mut Node,n _phantom: PhantomData<&'a SkipList>n}nn/// The whole list is configured through a single generic trait parameternpub trait ListConfig {n type Item: Default + Copy; //+ std::fmt::Debug;nn /// Applications which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_item: &Self::Item) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n })n }nn fn split_item(_item: &Self::Item, _at: usize) -> (Self::Item, Self::Item) {n unimplemented!('Cannot insert in the middle of an item - split_item is not defined in trait');n }nn // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {n // }n n}nnpub trait Queryable {n type Query;nn // Returns Some(offset) into the item if its contained. Otherwise None.n fn contains_item(&self, query: &Self::Query) -> Option;n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEntry {n fn clone(&self) -> Self { *self }n}nnimpl SkipEntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on a node's height. Thisn/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but In/// could be wrong here. You probably wouldn't lose much performance in practicen/// by replacing the inline structure with a smallvec - but that would wasten/// memory in small nodes, and require extra pointer indirection on large nodes.n/// It also wouldn't remove all the unsafe here.n///n/// A different representation (which might be better or worse - I can't tell)n/// would be to have the nodes all be the same size in memory and change then/// *proportion* of the node's memory that is used by the string field vs then/// next pointers. That might be lighter weight for the allocator because then/// struct itself would be a fixed size; but I'm not sure if it would be better.n#[repr(C)] // Prevent parameter reordering.nstruct Node {n /// We start with the items themselves. Only the first `num_items` of thisn /// list is in use. The user specified length of the items in the node isn /// stored in nexts[0].skip_items. This is initialized withn /// Default::default() for the type, but when MaybeUninit completely lands,n /// it will be possible to make this a tiny bit faster by leaving the listn /// initially uninitialized.n items: [C::Item; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn /// With the heads array as is, we have no way to go from a marker back to an /// cursor (which is required to insert at that location in the list). Forn /// that we need to be able to figure out at each level of the nextsn /// pointers which object points to us, and the offset from that element ton /// the current element. Anyway, for markers to work we need this.n parent: *mut Node,nn // #[repr(align(std::align_of::()))]n n /// In reality this array has the size of height, allocated using more orn /// less direct calls to malloc() at runtime based on the randomly generatedn /// size. The size is always at least 1.n nexts: [SkipEntry; 0],n}nn// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)n// This test will fail if this ever stops being true.n#[test]nfn test_align() {n struct TestConfig;n impl ListConfig for TestConfig {n type Item = u8;n fn get_usersize(_item: &Self::Item) -> usize { 1 }n }n #[repr(C)] struct Check([SkipEntry; 0]);n assert!(mem::align_of::() >= mem::align_of::>());n // TODO: It'd be good to also check the alignment of the nexts field in Node.n}nnfn random_height(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and then iterators will be able to outlast a move of then // skiplist parent). But its also very nice having the code run fast forn // small lists. Most lists are small, and it makes sense to optimize forn // that.nn // TODO: For safety, pointers in to this structure should be Pin<> if wen // ever want to hold on to iterators.nn /// The total number of items in the skip list. This is not used internally -n /// just here for bookkeeping.n num_items: usize,n /// Size of the list in user specified units.n num_usercount: usize,nn /// The RNG we use to generate node heights. Specifying it explicitly allowsn /// unit tests and randomizer runs to be predictable, which is very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: Option,nn /// The first node is inline. The height is 1 more than the max height we'ven /// ever used. The highest next entry points to {null, total usersize}.n head: Node,nn /// This is so dirty. The first node is embedded in SkipList; but we need ton /// allocate enough room for height to get arbitrarily large. I could insistn /// on SkipList always getting allocated on the heap, but for small lists itsn /// much better to be on the stack.n ///n /// So this struct is repr(C) and I'm just padding out the struct directly.n /// All accesses should go through head because otherwise I think we violaten /// aliasing rules.n _nexts_padding: [SkipEntry; MAX_HEIGHT],n}nnnnimpl Node {n // Do I need to be explicit about the lifetime of the references being tiedn // to the lifetime of the node?n fn nexts(&self) -> &[SkipEntry] {n unsafe {n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)n }n }nn fn layout_with_height(height: u8) -> Layout {n Layout::from_size_align(n mem::size_of::>() + mem::size_of::>() * (height as usize),n mem::align_of::>()).unwrap()n }nn fn alloc_with_height(height: u8) -> *mut Node {n assert!(height >= 1 && height <= MAX_HEIGHT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut Node;n (*node) = Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: height,n parent: ptr::null_mut(),n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node {n Self::alloc_with_height(random_height(rng))n }nn unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n &self.items[..self.num_items as usize]n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n &(*self.here_ptr()).items[self.local_index]n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(&n.items[0..n.num_items as usize]);n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(&en.items[index]);n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(contents.len() <= NODE_NUM_ITEMS);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n new_node.num_items = contents.len() as u8;n new_node.items[..contents.len()].copy_from_slice(contents);nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += contents.len();n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = contents.len();n }nn notify(contents, ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n let num_inserted_usercount = C::userlen_of_slice(contents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n c[..].copy_within(item_idx..e_num_items,n item_idx + num_inserted_items);n }nn // Then copy in the new itemsn c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(contents, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node. That optimization hasn't beenn // added.n n for chunk in contents.chunks(NODE_NUM_ITEMS) {n let userlen = C::userlen_of_slice(chunk);n self.insert_node_at(cursor, chunk, userlen, true, notify);n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, end_items, end_usercount, false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);n if trailing_items > 0 {n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n // dbg!(skip_height);n // dbg!((*n).height as usize);nn n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;nn // dbg!((*n).content_slice());n // dbg!((*n).height);n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n // where Notify: FnMut(&[C::Item], ItemMarker) {nn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item], mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let old_items = &mut (*e).items[index..index + replaced_items_here];n let new_items = &inserted_content[0..replaced_items_here];nn let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn // Replace the items themselves. Everything else is commentary.n old_items.copy_from_slice(new_items);nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(new_items, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, inserted_content, Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &[start], &mut Self::no_notify);n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &[end], &mut Self::no_notify);n }n }nn }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nnimpl From> for SkipList {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList {n fn into(self) -> Vec {n let mut content = Vec::with_capacity(self.num_items);n'"), -(783, 50216, "'use std::mem::MaybeUninit;nuse std::ptr::NonNull;nuse std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min;nuse std::marker::PhantomData;nuse std::iter;nnuse std::fmt;nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of items in each node. Must fit in a u8 thanks to Node.n#[cfg(debug_assertions)]nconst NODE_NUM_ITEMS: usize = 10;nn#[cfg(not(debug_assertions))]nconst NODE_NUM_ITEMS: usize = 100;nn/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the contents are smaller.n#[cfg(debug_assertions)]nconst MAX_HEIGHT: usize = 5;nn#[cfg(not(debug_assertions))]nconst MAX_HEIGHT: usize = 10;nnnconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.nnpub struct ItemMarker<'a, C: ListConfig> {n ptr: *mut Node,n _phantom: PhantomData<&'a SkipList>n}nn/// The whole list is configured through a single generic trait parameternpub trait ListConfig {n type Item; //+ std::fmt::Debug;nn /// Applications which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_item: &Self::Item) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n })n }nn fn split_item(_item: &Self::Item, _at: usize) -> (Self::Item, Self::Item) {n unimplemented!('Cannot insert in the middle of an item - split_item is not defined in trait');n }nn // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {n // }n n}nnpub trait Queryable {n type Query;nn // Returns Some(offset) into the item if its contained. Otherwise None.n fn contains_item(&self, query: &Self::Query) -> Option;n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEntry {n fn clone(&self) -> Self { *self }n}nnimpl SkipEntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on a node's height. Thisn/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but In/// could be wrong here. You probably wouldn't lose much performance in practicen/// by replacing the inline structure with a smallvec - but that would wasten/// memory in small nodes, and require extra pointer indirection on large nodes.n/// It also wouldn't remove all the unsafe here.n///n/// A different representation (which might be better or worse - I can't tell)n/// would be to have the nodes all be the same size in memory and change then/// *proportion* of the node's memory that is used by the string field vs then/// next pointers. That might be lighter weight for the allocator because then/// struct itself would be a fixed size; but I'm not sure if it would be better.n#[repr(C)] // Prevent parameter reordering.nstruct Node {n /// We start with the items themselves. Only the first `num_items` of thisn /// list is in use. The user specified length of the items in the node isn /// stored in nexts[0].skip_items. This is initialized withn /// Default::default() for the type, but when MaybeUninit completely lands,n /// it will be possible to make this a tiny bit faster by leaving the listn /// initially uninitialized.n items: [MaybeUninit; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn /// With the heads array as is, we have no way to go from a marker back to an /// cursor (which is required to insert at that location in the list). Forn /// that we need to be able to figure out at each level of the nextsn /// pointers which object points to us, and the offset from that element ton /// the current element. Anyway, for markers to work we need this.n parent: *mut Node,nn // #[repr(align(std::align_of::()))]n n /// In reality this array has the size of height, allocated using more orn /// less direct calls to malloc() at runtime based on the randomly generatedn /// size. The size is always at least 1.n nexts: [SkipEntry; 0],n}nn// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)n// This test will fail if this ever stops being true.n#[test]nfn test_align() {n struct TestConfig;n impl ListConfig for TestConfig {n type Item = u8;n fn get_usersize(_item: &Self::Item) -> usize { 1 }n }n #[repr(C)] struct Check([SkipEntry; 0]);n assert!(mem::align_of::() >= mem::align_of::>());n // TODO: It'd be good to also check the alignment of the nexts field in Node.n}nnfn random_height(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and then iterators will be able to outlast a move of then // skiplist parent). But its also very nice having the code run fast forn // small lists. Most lists are small, and it makes sense to optimize forn // that.nn // TODO: For safety, pointers in to this structure should be Pin<> if wen // ever want to hold on to iterators.nn /// The total number of items in the skip list. This is not used internally -n /// just here for bookkeeping.n num_items: usize,n /// Size of the list in user specified units.n num_usercount: usize,nn /// The RNG we use to generate node heights. Specifying it explicitly allowsn /// unit tests and randomizer runs to be predictable, which is very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: Option,nn /// The first node is inline. The height is 1 more than the max height we'ven /// ever used. The highest next entry points to {null, total usersize}.n head: Node,nn /// This is so dirty. The first node is embedded in SkipList; but we need ton /// allocate enough room for height to get arbitrarily large. I could insistn /// on SkipList always getting allocated on the heap, but for small lists itsn /// much better to be on the stack.n ///n /// So this struct is repr(C) and I'm just padding out the struct directly.n /// All accesses should go through head because otherwise I think we violaten /// aliasing rules.n _nexts_padding: [SkipEntry; MAX_HEIGHT],n}nnnimpl Node {n // Do I need to be explicit about the lifetime of the references being tiedn // to the lifetime of the node?n fn nexts(&self) -> &[SkipEntry] {n unsafe {n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)n }n }nn fn layout_with_height(height: u8) -> Layout {n Layout::from_size_align(n mem::size_of::>() + mem::size_of::>() * (height as usize),n mem::align_of::>()).unwrap()n }nn fn alloc_with_height(height: u8) -> *mut Node {n assert!(height >= 1 && height <= MAX_HEIGHT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut Node;n (*node) = Node {n items: uninit_items_array(),n num_items: 0,n height: height,n parent: ptr::null_mut(),n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node {n Self::alloc_with_height(random_height(rng))n }nn unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n // TODO: Use MaybeUninit::slice_get_ref when it lands. This code is stolen from that implementation.nn // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nn// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.nstruct UninitOwnedIter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal from. Its unsafe if:n /// n /// - The iterator isn't fully drained (then we might not drop contents)n /// - The contents we iterate over aren't initializedn /// n /// After iterating, the contents are uninit memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n let ptr = slice.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n // unsafe fn from_slice(slice: &[C::Item]) -> Self {n // unsafe {n // let ptr = slice.as_mut_ptr();n // let end = ptr.add(slice.len());nn // UninitOwnedIter {n // ptr: NonNull::new_unchecked(ptr),n // end,n // _marker: PhantomDatan // }n // }n // }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option {n if self.ptr.as_ptr() == self.end {n Nonen } else {n Some(unsafe { self.ptr.as_ptr().read() })n }n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)]nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }n}nn// Stolen from core::mem::MaybeUninit. Its just not standardized yet.n#[inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n // let num_items = contents.len();n new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.n }n // new_node.items[..contents.len()].copy_from_slice(contents);nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += num_items;n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = num_items;n }nn notify(new_node.content_slice(), ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n // let num_inserted_usercount = C::userlen_of_slice(contents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n // Can't use copy_within because we aren't sure if the typen // implements Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);n // c[..].copy_within(item_idx..e_num_items,n // item_idx + num_inserted_items);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old items - they were only moved.n slot.as_mut_ptr().write(item);n }n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);n // c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }n // for chunk in contents.take(NODE_NUM_ITEMS) {n // // let userlen = C::userlen_of_slice(chunk);n // self.insert_node_at(cursor, chunk, true, notify);n // }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_usercount, false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n &mut c[item_idx],n trailing_items);n // c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n // dbg!(skip_height);n // dbg!((*n).height as usize);nn n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;nn // dbg!((*n).content_slice());n // dbg!((*n).height);n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n // where Notify: FnMut(&[C::Item], ItemMarker) {nn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }n // for (slot, item) in dest.iter_mut().zip(inserted_content) {n // *slot.as_mut_ptr() = item; // Drop the replaced content.n // }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n let usersize_delta = new_usersize as isize - old_usersize as isize;nn // old_items.copy_from_slice(new_items);nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn // inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList where C::Item: Copy {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nn// TODO: Remove Item: Copy constraint here.nimpl From> for SkipList where C::Item: Copy {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList where C::Item: Copy {n fn into(self) -> Vec {n let mut content: Vec = Vec::with_capacity(self.num_items);n'"), -(18233, 0, "'n '"), -(18238, 0, "'n '"), -(18234, 4, "''"), -(18239, 0, "'f'"), -(18240, 0, "'n'"), -(18241, 0, "' '"), -(18239, 3, "''"), -(18235, 4, "''"), -(18234, 1, "''"), -(18878, 0, "'n '"), -(18883, 0, "'n '"), -(18879, 4, "''"), -(18884, 0, "'f'"), -(18885, 0, "'n'"), -(18886, 0, "' '"), -(18887, 0, "'i'"), -(18888, 0, "'z'"), -(18888, 1, "''"), -(18887, 1, "''"), -(18887, 0, "'s'"), -(18888, 0, "'i'"), -(18889, 0, "'z'"), -(18890, 0, "'e'"), -(18891, 0, "'_'"), -(18892, 0, "'h'"), -(18893, 0, "'i'"), -(18894, 0, "'n'"), -(18895, 0, "'t'"), -(18896, 0, "'('"), -(18897, 0, "'&'"), -(18898, 0, "'s'"), -(18899, 0, "'e'"), -(18900, 0, "'l'"), -(18901, 0, "'f'"), -(18902, 0, "')'"), -(18903, 0, "' '"), -(18904, 0, "'-'"), -(18905, 0, "'>'"), -(18906, 0, "' '"), -(18907, 0, "'('"), -(18908, 0, "'u'"), -(18909, 0, "'s'"), -(18910, 0, "'e'"), -(18911, 0, "'i'"), -(18911, 1, "''"), -(18910, 1, "''"), -(18910, 0, "'i'"), -(18911, 0, "'z'"), -(18912, 0, "'e'"), -(18913, 0, "','"), -(18914, 0, "' '"), -(18915, 0, "'O'"), -(18916, 0, "'p'"), -(18917, 0, "'t'"), -(18918, 0, "'i'"), -(18919, 0, "'o'"), -(18920, 0, "'n'"), -(18921, 0, "'<'"), -(18922, 0, "'u'"), -(18923, 0, "'s'"), -(18924, 0, "'i'"), -(18925, 0, "'z'"), -(18926, 0, "'e'"), -(18927, 0, "'>'"), -(18928, 0, "')'"), -(18929, 0, "' '"), -(18930, 0, "'{'"), -(18931, 0, "' '"), -(18932, 0, "'n '"), -(18941, 0, "'n '"), -(18933, 8, "''"), -(18934, 8, "' }'"), -(18931, 1, "''"), -(18932, 0, "' '"), -(18940, 0, "'l'"), -(18941, 0, "'e'"), -(18942, 0, "'t'"), -(18943, 0, "' '"), -(18944, 0, "'s'"), -(18945, 0, "'i'"), -(18946, 0, "'e'"), -(18946, 1, "''"), -(18946, 0, "'z'"), -(18947, 0, "'e'"), -(18948, 0, "' '"), -(18949, 0, "'='"), -(18950, 0, "' '"), -(18951, 0, "'s'"), -(18952, 0, "'e'"), -(18953, 0, "'l'"), -(18954, 0, "'f'"), -(18955, 0, "'.'"), -(18956, 0, "'e'"), -(18957, 0, "'n'"), -(18958, 0, "'d'"), -(18959, 0, "' '"), -(18960, 0, "'-'"), -(18961, 0, "' '"), -(18962, 0, "'s'"), -(18963, 0, "'e'"), -(18964, 0, "'l'"), -(18965, 0, "'f'"), -(18966, 0, "'.'"), -(18967, 0, "'p'"), -(18968, 0, "'t'"), -(18969, 0, "'r'"), -(18970, 0, "';'"), -(18970, 0, "'.'"), -(18971, 0, "'a'"), -(18972, 0, "'s'"), -(18971, 2, "'as_ptr()'"), -(18960, 1, "''"), -(18959, 1, "''"), -(18959, 0, "'.'"), -(18960, 0, "'s'"), -(18961, 0, "'u'"), -(18962, 0, "'b'"), -(18963, 0, "'('"), -(18964, 1, "''"), -(18981, 0, "')'"), -(18951, 32, "''"), -(18951, 0, "'s'"), -(18952, 0, "'e'"), -(18953, 0, "'l'"), -(18954, 0, "'f'"), -(18955, 0, "'.'"), -(18956, 0, "'e'"), -(18957, 0, "'n'"), -(18958, 0, "'d'"), -(18959, 0, "' '"), -(18960, 0, "'a'"), -(18961, 0, "'s'"), -(18962, 0, "' '"), -(18963, 0, "'u'"), -(18964, 0, "'s'"), -(18965, 0, "'i'"), -(18966, 0, "'z'"), -(18967, 0, "'e'"), -(18968, 0, "' '"), -(18969, 0, "'-'"), -(18970, 0, "' '"), -(18971, 0, "'s'"), -(18972, 0, "'e'"), -(18973, 0, "'l'"), -(18974, 0, "'f'"), -(18975, 0, "'.'"), -(18976, 0, "'p'"), -(18977, 0, "'t'"), -(18978, 0, "'r'"), -(18979, 0, "' '"), -(18980, 0, "'a'"), -(18981, 0, "'s'"), -(18982, 0, "' '"), -(18983, 0, "'u'"), -(18984, 0, "'s'"), -(18985, 0, "'i'"), -(18986, 0, "'z'"), -(18987, 0, "'e'"), -(18951, 0, "'('"), -(18989, 0, "')'"), -(18990, 0, "'.'"), -(18990, 1, "''"), -(18990, 0, "' '"), -(18991, 0, "'/'"), -(18992, 0, "' '"), -(18993, 0, "'s'"), -(18994, 0, "'i'"), -(18995, 0, "'z'"), -(18996, 0, "'e'"), -(18997, 0, "'_'"), -(18998, 0, "'o'"), -(18999, 0, "'f'"), -(19000, 0, "':'"), -(19001, 0, "':'"), -(19002, 0, "'<'"), -(19003, 0, "'C'"), -(19004, 0, "':'"), -(19005, 0, "':'"), -(19006, 0, "'I'"), -(19007, 0, "'t'"), -(19008, 0, "'e'"), -(19009, 0, "'m'"), -(19010, 0, "'>'"), -(19011, 0, "'('"), -(19012, 0, "')'"), -(19013, 0, "';'"), -(19014, 0, "'n '"), -(19023, 0, "'('"), -(19024, 0, "'s'"), -(19025, 0, "'i'"), -(19026, 0, "'z'"), -(19027, 0, "'e'"), -(19028, 0, "','"), -(19029, 0, "' '"), -(19030, 0, "'S'"), -(19031, 0, "'o'"), -(19032, 0, "'m'"), -(19033, 0, "'e'"), -(19034, 0, "'('"), -(19035, 0, "'s'"), -(19036, 0, "'i'"), -(19037, 0, "'z'"), -(19038, 0, "'e'"), -(19039, 0, "')'"), -(19040, 0, "')'"), -(19011, 0, "':'"), -(19012, 0, "':'"), -(19011, 2, "''"), -(18980, 0, "'.'"), -(18981, 0, "'a'"), -(18982, 0, "'s'"), -(18983, 0, "'_'"), -(18984, 0, "'p'"), -(18985, 0, "'t'"), -(18986, 0, "'r'"), -(18987, 0, "'('"), -(18988, 0, "')'"), -(19002, 0, "'m'"), -(19003, 0, "'e'"), -(19004, 0, "'m'"), -(19005, 0, "':'"), -(19006, 0, "':'"), -(1247, 2, "'2'"), -(32176, 0, "'d'"), -(32177, 0, "'b'"), -(32178, 0, "'g'"), -(32179, 0, "'!'"), -(32180, 0, "'('"), -(32203, 0, "')'"), -(32205, 1, "''"), -(32205, 0, "'<'"), -(32203, 1, "''"), -(32180, 1, "''"), -(32179, 1, "''"), -(32178, 1, "''"), -(32177, 1, "''"), -(32176, 1, "''"), -(32175, 1, "''"), -(32175, 0, "'('"), -(32162, 0, "'// '"), -(1973, 0, "' type Item; //+ std::fmt::Debug;n'"), -(1987, 21, "''"), -(1977, 0, "'// '"), -(2007, 1, "''"), -(2006, 1, "''"), -(2005, 1, "''"), -(2004, 1, "''"), -(2004, 0, "':'"), -(2005, 1, "''"), -(54333, 0, "'n '"), -(54350, 0, "'s'"), -(54351, 0, "'e'"), -(54352, 0, "'l'"), -(54353, 0, "'f'"), -(54354, 0, "'.'"), -(54355, 0, "'p'"), -(54356, 0, "'r'"), -(54357, 0, "'i'"), -(54355, 3, "'print()'"), -(54362, 0, "'('"), -(54363, 0, "')'"), -(54363, 1, "''"), -(54362, 1, "''"), -(54362, 0, "';'"), -(54466, 0, "'n '"), -(54483, 0, "'self.print();'"), -(54877, 0, "'n '"), -(54894, 0, "'self.print();'"), -(42868, 13, "'e'"), -(42869, 0, "'n'"), -(42870, 0, "'d'"), -(42871, 0, "'_'"), -(42872, 0, "'i'"), -(42873, 0, "'t'"), -(42874, 0, "'e'"), -(42875, 0, "'m'"), -(42876, 0, "'s'"), -(32216, 1, "''"), -(32216, 0, "'>'"), -(32176, 3, "''"), -(42874, 0, "'.'"), -(42875, 0, "'l'"), -(42876, 0, "'e'"), -(42877, 0, "'n'"), -(42878, 0, "'('"), -(42879, 0, "')'"), -(1247, 1, "''"), -(1247, 0, "'1'"), -(1247, 1, "''"), -(1247, 0, "'1'"), -(1248, 0, "'0'"), -(18822, 0, "'n '"), -(18835, 0, "'l'"), -(18836, 0, "'e'"), -(18837, 0, "'t'"), -(18838, 0, "' '"), -(18839, 0, "'p'"), -(18840, 0, "'t'"), -(18841, 0, "'r'"), -(18842, 0, "' '"), -(18843, 0, "'='"), -(18844, 0, "' '"), -(18845, 0, "'s'"), -(18846, 0, "'e'"), -(18847, 0, "'l'"), -(18848, 0, "'f'"), -(18849, 0, "'.'"), -(18850, 0, "'p'"), -(18851, 0, "'t'"), -(18852, 0, "'r'"), -(18853, 0, "';'"), -(18881, 5, "''"), -(18854, 0, "'n '"), -(18867, 0, "'s'"), -(18868, 0, "'e'"), -(18869, 0, "'l'"), -(18870, 0, "'f'"), -(18871, 0, "'.'"), -(18872, 0, "'p'"), -(18873, 0, "'t'"), -(18874, 0, "'r'"), -(18875, 0, "' '"), -(18876, 0, "'+'"), -(18877, 0, "'='"), -(18878, 0, "' '"), -(18879, 0, "'1'"), -(18880, 0, "';'"), -(18876, 1, "''"), -(18878, 0, "'s'"), -(18879, 0, "'e'"), -(18880, 0, "'l'"), -(18881, 0, "'f'"), -(18882, 0, "'.'"), -(18883, 0, "'p'"), -(18884, 0, "'t'"), -(18885, 0, "'r'"), -(18886, 0, "'.'"), -(18887, 0, "'o'"), -(18888, 0, "'f'"), -(18889, 0, "'f'"), -(18890, 0, "'s'"), -(18891, 0, "'e'"), -(18892, 0, "'t'"), -(18893, 0, "'('"), -(18895, 0, "')'"), -(18886, 0, "'.'"), -(18887, 0, "'a'"), -(18888, 0, "'s'"), -(18889, 0, "'_'"), -(18890, 0, "'p'"), -(18891, 0, "'t'"), -(18892, 0, "'r'"), -(18893, 0, "'('"), -(18894, 0, "')'"), -(18877, 0, "' '"), -(18878, 0, "'N'"), -(18879, 0, "'o'"), -(18880, 0, "'n'"), -(18881, 0, "'N'"), -(18882, 0, "'u'"), -(18883, 0, "'l'"), -(18878, 6, "'NonNull'"), -(18885, 0, "':'"), -(18886, 0, "':'"), -(18887, 0, "'new_unchecked(ptr: *mut T)'"), -(18901, 11, "''"), -(18901, 1, "''"), -(18901, 1, "''"), -(18928, 0, "')'"), -(18877, 0, "' '"), -(18878, 0, "'u'"), -(18879, 0, "'n'"), -(18880, 0, "'s'"), -(18881, 0, "'a'"), -(18882, 0, "'f'"), -(18883, 0, "'e'"), -(18884, 0, "' '"), -(18885, 0, "'{'"), -(18938, 0, "' '"), -(18939, 0, "'}'"), -(10488, 349, "''"), -(10487, 1, "''"), -(10378, 109, "''"), -(17789, 359, "''"), -(17788, 1, "''"), -(17257, 0, "' '"), -(17258, 0, "'w'"), -(17259, 0, "'i'"), -(17260, 0, "'t'"), -(17261, 0, "'h'"), -(17262, 0, "'o'"), -(17263, 0, "'u'"), -(17264, 0, "'t'"), -(17265, 0, "' '"), -(17266, 0, "'d'"), -(17267, 0, "'r'"), -(17268, 0, "'o'"), -(17269, 0, "'p'"), -(17270, 0, "'p'"), -(17271, 0, "'i'"), -(17272, 0, "'n'"), -(17273, 0, "'g'"), -(17274, 0, "' '"), -(17275, 0, "'c'"), -(17276, 0, "'o'"), -(17277, 0, "'n'"), -(17278, 0, "'t'"), -(17279, 0, "'e'"), -(17280, 0, "'n'"), -(17281, 0, "'t'"), -(17202, 249, "' /// Make a slice we can iterate from and steal from without droppingn /// content. Its unsafe if:n ///n /// - The iterator isn't fully drained (then we might not drop contents)n /// - The contents we iterate over aren't initializedn ///'"), -(17253, 0, "'d'"), -(17254, 0, "'a'"), -(17255, 0, "'t'"), -(17256, 0, "'a'"), -(17257, 0, "' '"), -(17297, 14, "'T'"), -(17298, 0, "'h'"), -(17299, 0, "'i'"), -(17300, 0, "'s'"), -(17301, 0, "' '"), -(17302, 0, "'i'"), -(17303, 0, "'s'"), -(17304, 0, "' '"), -(17305, 0, "'v'"), -(17306, 0, "'e'"), -(17307, 0, "'r'"), -(17308, 0, "'y'"), -(17309, 0, "' '"), -(17310, 0, "'u'"), -(17311, 0, "'n'"), -(17312, 0, "'s'"), -(17313, 0, "'a'"), -(17314, 0, "'f'"), -(17315, 0, "'e'"), -(17316, 0, "':'"), -(17305, 5, "''"), -(17331, 4, "'I'"), -(17332, 0, "'f'"), -(17333, 0, "' '"), -(17334, 0, "'t'"), -(17335, 0, "'h'"), -(17336, 0, "'e'"), -(17337, 0, "' '"), -(17366, 34, "' '"), -(17367, 0, "'t'"), -(17368, 0, "'h'"), -(17369, 0, "'e'"), -(17370, 0, "'n'"), -(17371, 0, "' '"), -(17372, 0, "'t'"), -(17373, 0, "'h'"), -(17374, 0, "'e'"), -(17375, 0, "' '"), -(17372, 4, "'r'"), -(17373, 0, "'e'"), -(17374, 0, "'a'"), -(17375, 0, "'m'"), -(17375, 1, "''"), -(17374, 1, "''"), -(17374, 0, "'m'"), -(17375, 0, "'a'"), -(17376, 0, "'i'"), -(17377, 0, "'n'"), -(17378, 0, "'i'"), -(17379, 0, "'n'"), -(17380, 0, "'g'"), -(17381, 0, "' '"), -(17382, 0, "'i'"), -(17383, 0, "'t'"), -(17384, 0, "'e'"), -(17385, 0, "'m'"), -(17386, 0, "'s'"), -(17387, 0, "' '"), -(17388, 0, "'a'"), -(17389, 0, "'r'"), -(17390, 0, "'e'"), -(17391, 0, "' '"), -(17392, 0, "'f'"), -(17393, 0, "'o'"), -(17394, 0, "'r'"), -(17395, 0, "'g'"), -(17396, 0, "'o'"), -(17397, 0, "'t'"), -(17398, 0, "'t'"), -(17399, 0, "'e'"), -(17400, 0, "'n'"), -(17401, 0, "' '"), -(17402, 0, "'('"), -(17403, 0, "'n'"), -(17404, 0, "'o'"), -(17405, 0, "'t'"), -(17406, 0, "' '"), -(17407, 0, "'d'"), -(17408, 0, "'r'"), -(17409, 0, "'o'"), -(17410, 0, "'p'"), -(17411, 0, "'p'"), -(17412, 0, "'e'"), -(17413, 0, "'d'"), -(17414, 0, "')'"), -(17321, 94, "' /// - If the iterator isn't fully drained then remaining items are forgottenn /// (not dropped)'"), -(17388, 4, "'w'"), -(17389, 0, "'i'"), -(17390, 0, "'l'"), -(17391, 0, "'l'"), -(17392, 0, "' '"), -(17393, 0, "'b'"), -(17394, 0, "'e'"), -(17395, 0, "' '"), -(17321, 108, "' /// - If the iterator isn't fully drained then remaining items will ben /// forgotten (not dropped)'"), -(17417, 3, "'t'"), -(17418, 0, "'h'"), -(17419, 0, "'e'"), -(17420, 0, "'y'"), -(17421, 0, "' '"), -(17422, 0, "'a'"), -(17423, 0, "'r'"), -(17424, 0, "'e'"), -(17425, 0, "' '"), -(17426, 0, "'n'"), -(17427, 0, "'o'"), -(17428, 0, "'t'"), -(17438, 0, "'.'"), -(17450, 47, "'T'"), -(17451, 0, "'h'"), -(17452, 0, "'e'"), -(17453, 0, "' '"), -(17454, 0, "'s'"), -(17455, 0, "'l'"), -(17456, 0, "'i'"), -(17457, 0, "'c'"), -(17458, 0, "'e'"), -(17459, 0, "' '"), -(17460, 0, "'p'"), -(17461, 0, "'a'"), -(17462, 0, "'d'"), -(17462, 1, "''"), -(17462, 0, "'s'"), -(17463, 0, "'s'"), -(17464, 0, "'e'"), -(17465, 0, "'d'"), -(17466, 0, "' '"), -(17467, 0, "'i'"), -(17468, 0, "'n'"), -(17469, 0, "' '"), -(17470, 0, "'h'"), -(17471, 0, "'e'"), -(17472, 0, "'r'"), -(17473, 0, "'e'"), -(17474, 0, "' '"), -(17475, 0, "'m'"), -(17476, 0, "'u'"), -(17477, 0, "'s'"), -(17478, 0, "'t'"), -(17479, 0, "' '"), -(17480, 0, "'b'"), -(17481, 0, "'e'"), -(17482, 0, "' '"), -(17483, 0, "'i'"), -(17484, 0, "'n'"), -(17485, 0, "'i'"), -(17486, 0, "'t'"), -(17487, 0, "'i'"), -(17488, 0, "'a'"), -(17489, 0, "'l'"), -(17490, 0, "'i'"), -(17491, 0, "'z'"), -(17492, 0, "'e'"), -(17493, 0, "'d'"), -(17494, 0, "'.'"), -(17494, 1, "''"), -(17494, 0, "' '"), -(17495, 0, "'o'"), -(17496, 0, "'r'"), -(17497, 0, "' '"), -(17498, 0, "'t'"), -(17499, 0, "'h'"), -(17500, 0, "'e'"), -(17501, 0, "' '"), -(17502, 0, "'v'"), -(17503, 0, "'a'"), -(17504, 0, "'l'"), -(17505, 0, "'u'"), -(17506, 0, "'e'"), -(17507, 0, "'s'"), -(17498, 10, "'u'"), -(17499, 0, "'n'"), -(17500, 0, "'d'"), -(17501, 0, "'e'"), -(17502, 0, "'f'"), -(17503, 0, "'i'"), -(17504, 0, "'n'"), -(17505, 0, "'e'"), -(17506, 0, "'d'"), -(17507, 0, "' '"), -(17508, 0, "'v'"), -(17509, 0, "'a'"), -(17510, 0, "'l'"), -(17511, 0, "'u'"), -(17512, 0, "'e'"), -(17513, 0, "'s'"), -(17514, 0, "' '"), -(17514, 1, "''"), -(17507, 7, "''"), -(17507, 0, "' '"), -(17508, 0, "'b'"), -(17509, 0, "'e'"), -(17510, 0, "'h'"), -(17511, 0, "'a'"), -(17512, 0, "'v'"), -(17513, 0, "'i'"), -(17514, 0, "'o'"), -(17515, 0, "'u'"), -(17516, 0, "'r'"), -(17517, 0, "' '"), -(17518, 0, "'w'"), -(17519, 0, "'i'"), -(17520, 0, "'l'"), -(17521, 0, "'l'"), -(17522, 0, "' '"), -(17523, 0, "'h'"), -(17524, 0, "'i'"), -(17525, 0, "'t'"), -(17526, 0, "' '"), -(17527, 0, "'u'"), -(17528, 0, "'s'"), -(17529, 0, "'.'"), -(17440, 90, "' /// - The slice passed in here must be initialized or undefined behaviourn /// will hit us.'"), -(18768, 0, "'T'"), -(18769, 0, "'O'"), -(18770, 0, "'D'"), -(18771, 0, "'O'"), -(18772, 0, "':'"), -(18773, 0, "' '"), -(18809, 31, "''"), -(18809, 0, "' '"), -(18810, 0, "'R'"), -(18811, 0, "'e'"), -(18812, 0, "'p'"), -(18813, 0, "'l'"), -(18814, 0, "'a'"), -(18815, 0, "'c'"), -(18816, 0, "'e'"), -(18817, 0, "' '"), -(18818, 0, "'w'"), -(18819, 0, "'h'"), -(18820, 0, "'e'"), -(18821, 0, "'n'"), -(18822, 0, "' '"), -(18823, 0, "'a'"), -(18824, 0, "'v'"), -(18825, 0, "'a'"), -(18826, 0, "'l'"), -(18827, 0, "'i'"), -(18828, 0, "'a'"), -(18829, 0, "'b'"), -(18830, 0, "'l'"), -(18831, 0, "'e'"), -(18823, 9, "'a'"), -(18824, 0, "'v'"), -(18825, 0, "'a'"), -(18826, 0, "'i'"), -(18827, 0, "'l'"), -(18828, 0, "'a'"), -(18829, 0, "'b'"), -(18830, 0, "'l'"), -(18831, 0, "'e'"), -(18832, 0, "'.'"), -(18786, 11, "''"), -(18797, 0, "':'"), -(18798, 0, "':'"), -(18799, 0, "'s'"), -(18800, 0, "'l'"), -(18801, 0, "'i'"), -(18802, 0, "'c'"), -(18803, 0, "'e'"), -(18804, 0, "'_'"), -(18805, 0, "'g'"), -(18806, 0, "'e'"), -(18807, 0, "'t'"), -(18808, 0, "'_'"), -(18809, 0, "'r'"), -(18810, 0, "'e'"), -(18811, 0, "'f'"), -(20373, 0, "'n '"), -(20378, 0, "'/'"), -(20379, 0, "';'"), -(20380, 0, "' '"), -(20380, 1, "''"), -(20379, 1, "''"), -(20379, 0, "'/'"), -(20380, 0, "' '"), -(20381, 0, "'T'"), -(20382, 0, "'O'"), -(20383, 0, "'D'"), -(20384, 0, "'O'"), -(20385, 0, "':'"), -(20386, 0, "' '"), -(20387, 0, "'R'"), -(20388, 0, "'e'"), -(20389, 0, "'m'"), -(20390, 0, "'o'"), -(20391, 0, "'v'"), -(20392, 0, "'e'"), -(20393, 0, "' '"), -(20374, 20, "''"), -(20373, 1, "''"), -(31749, 43, "''"), -(31999, 71, "''"), -(35780, 71, "''"), -(37347, 115, "''"), -(37079, 18, "''"), -(37079, 3, "'I'"), -(37080, 0, "'t'"), -(37081, 0, "'e'"), -(37082, 0, "'m'"), -(37083, 5, "''"), -(37083, 0, "' '"), -(37084, 0, "'d'"), -(37085, 0, "'o'"), -(37086, 0, "'e'"), -(37087, 0, "'s'"), -(37088, 0, "'n'"), -(37089, 0, "'''"), -(37090, 0, "'t'"), -(37091, 0, "' '"), -(37092, 0, "'n'"), -(37093, 0, "'e'"), -(37094, 0, "'c'"), -(37095, 0, "'e'"), -(37096, 0, "'s'"), -(37097, 0, "'s'"), -(37098, 0, "'a'"), -(37099, 0, "'r'"), -(37100, 0, "'i'"), -(37101, 0, "'l'"), -(37102, 0, "'y'"), -(37103, 0, "' '"), -(37104, 0, "'i'"), -(37104, 1, "''"), -(37103, 1, "''"), -(37132, 1, "''"), -(37865, 84, "''"), -(37864, 1, "''"), -(41174, 210, "''"), -(44100, 90, "''"), -(46121, 102, "''"), -(46334, 101, "''"), -(46333, 1, "''"), -(47290, 173, "''"), -(48841, 168, "''"), -(49035, 53, "''"), -(49034, 1, "''"), -(49287, 76, "''"), -(50362, 64, "''"), -(52327, 30, "''"), -(52430, 30, "''"), -(52811, 30, "''"), -(1996, 0, "'// '"), -(1978, 3, "''"), -(39512, 0, "'_'"), -(8981, 0, "'m'"), -(8982, 0, "'u'"), -(8983, 0, "'t'"), -(8984, 0, "' '"), -(22182, 0, "'m'"), -(22183, 0, "'u'"), -(22184, 0, "'t'"), -(22185, 0, "' '"), -(22185, 1, "''"), -(22182, 3, "''"), -(22197, 0, "'_'"), -(22198, 0, "'m'"), -(22199, 0, "'u'"), -(22200, 0, "'t'"), -(22197, 4, "''"), -(8984, 1, "''"), -(8981, 3, "''"), -(6222, 0, "' nexts: [SkipEntry; 0],n'"), -(6256, 0, "'// '"), -(6248, 1, "''"), -(6248, 0, "'M'"), -(6249, 0, "'A'"), -(6250, 0, "'X'"), -(6248, 3, "'MAX_HEIGHT'"), -(6248, 10, "'MAX'"), -(6248, 3, "''"), -(6248, 0, "'0'"), -(6256, 3, "''"), -(6222, 30, "''"), -(6222, 0, "' nexts: [SkipEntry; 0],n'"), -(6256, 0, "'// '"), -(6248, 1, "''"), -(6248, 0, "'M'"), -(6249, 0, "'A'"), -(6250, 0, "'X'"), -(6248, 3, "'MAX_HEIGHT'"), -(9985, 0, "'S'"), -(9986, 0, "'k'"), -(9987, 0, "'i'"), -(9988, 0, "'p'"), -(9985, 4, "'SkipEntry'"), -(9994, 0, "':'"), -(9995, 0, "':'"), -(9996, 0, "'n'"), -(9997, 0, "'e'"), -(9996, 2, "'new_null()'"), -(10006, 0, "';'"), -(10007, 0, "' '"), -(10008, 0, "'M'"), -(10009, 0, "'A'"), -(10010, 0, "'X'"), -(10008, 3, "'MAX_HEIGHT'"), -(19787, 0, "'S'"), -(19788, 0, "'k'"), -(19789, 0, "'i'"), -(19790, 0, "'p'"), -(19787, 4, "'SkipEntry'"), -(19796, 0, "':'"), -(19797, 0, "':'"), -(19798, 0, "'new_null()'"), -(19808, 0, "';'"), -(19809, 0, "' '"), -(19810, 0, "'M'"), -(19811, 0, "'X'"), -(19811, 1, "''"), -(19811, 0, "'A'"), -(19812, 0, "'X'"), -(19810, 3, "'MAX_HEIGHT'"), -(9157, 0, "'// '"), -(9075, 0, "'// '"), -(9058, 0, "'// '"), -(9049, 0, "'n '"), -(9058, 0, "'s'"), -(9059, 0, "'e'"), -(9060, 0, "'l'"), -(9061, 0, "'f'"), -(9062, 0, "'.'"), -(9063, 0, "'n'"), -(9064, 0, "'e'"), -(9065, 0, "'x'"), -(9063, 3, "'nexts()'"), -(9070, 0, "'['"), -(9071, 0, "'.'"), -(9072, 0, "'.'"), -(9073, 0, "']'"), -(9073, 1, "''"), -(9072, 1, "''"), -(9071, 1, "''"), -(9070, 1, "''"), -(9069, 1, "''"), -(9068, 1, "''"), -(9068, 0, "'['"), -(9069, 0, "'.'"), -(9070, 0, "'.'"), -(9071, 0, "']'"), -(9058, 0, "'#'"), -(9058, 1, "''"), -(9058, 0, "'$'"), -(9058, 1, "''"), -(9058, 0, "'&'"), -(9367, 0, "'// '"), -(9277, 0, "'// '"), -(9260, 0, "'// '"), -(9251, 0, "'n '"), -(9260, 0, "'&self.nexts[..]'"), -(9261, 0, "'m'"), -(9262, 0, "'u'"), -(9263, 0, "'t'"), -(9264, 0, "' '"), -(9264, 1, "''"), -(9261, 3, "''"), -(9260, 15, "''"), -(9251, 9, "''"), -(9373, 3, "''"), -(9280, 3, "''"), -(9260, 3, "''"), -(9058, 1, "''"), -(9058, 0, "'$'"), -(9058, 1, "''"), -(9058, 0, "'#'"), -(9058, 1, "''"), -(9068, 4, "''"), -(9068, 0, "'()'"), -(9070, 0, "'[..]'"), -(9070, 4, "''"), -(9063, 7, "'nex'"), -(9049, 17, "''"), -(9163, 3, "''"), -(9078, 3, "''"), -(9058, 3, "''"), -(19810, 10, "'MAX'"), -(19811, 2, "''"), -(19811, 0, "'X'"), -(19809, 3, "''"), -(19808, 1, "''"), -(19798, 10, "''"), -(19796, 2, "''"), -(19787, 9, "'Skip'"), -(19787, 4, "''"), -(10008, 10, "'MAX'"), -(10007, 4, "''"), -(10006, 1, "''"), -(9996, 10, "'ne'"), -(9994, 4, "''"), -(9985, 9, "'Skip'"), -(9985, 4, "''"), -(6248, 10, "'MAX'"), -(6248, 3, "''"), -(6248, 0, "'0'"), -(6256, 3, "''"), -(6222, 30, "''"), -(39512, 1, "''"), -(39512, 0, "'_'"), -(18382, 0, "'u'"), -(18383, 0, "'n'"), -(18384, 0, "'c'"), -(18385, 0, "'k'"), -(18386, 0, "'e'"), -(18387, 0, "'d'"), -(18388, 0, "'l'"), -(18382, 7, "'s'"), -(18383, 0, "'t'"), -(18384, 0, "'d'"), -(18385, 0, "':'"), -(18386, 0, "':'"), -(18387, 0, "'i'"), -(18388, 0, "'n'"), -(18389, 0, "'t'"), -(18390, 0, "'r'"), -(18387, 4, "'intrinsics'"), -(18397, 0, "':'"), -(18398, 0, "':'"), -(18399, 0, "'u'"), -(18400, 0, "'n'"), -(18401, 0, "'c'"), -(18402, 0, "'h'"), -(18399, 4, "'unchecked_sub(x: T, y: T)'"), -(18413, 12, "''"), -(18431, 1, "''"), -(18430, 1, "''"), -(18430, 0, "','"), -(18382, 30, "'u'"), -(18383, 0, "'s'"), -(18384, 0, "'i'"), -(18385, 0, "'z'"), -(18386, 0, "'e'"), -(18387, 0, "':'"), -(18388, 0, "':'"), -(18382, 7, "''"), -(39511, 1, "''"), -(18401, 0, "' -'"), -(18400, 1, "''"), -(52842, 0, "'n '"), -(52847, 0, "'n '"), -(52843, 4, "''"), -(52848, 0, "'pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy'"), -(52864, 0, "'_'"), -(52865, 0, "'s'"), -(52866, 0, "'l'"), -(52867, 0, "'i'"), -(52868, 0, "'c'"), -(52869, 0, "'e'"), -(52943, 0, "' '"), -(52944, 0, "' '"), -(52944, 1, "''"), -(52944, 0, "'{'"), -(52945, 0, "'n '"), -(52954, 0, "'n '"), -(52946, 8, "''"), -(52947, 8, "' }'"), -(52946, 0, "' '"), -(52946, 8, "''"), -(51361, 0, "'<'"), -(51362, 0, "'I'"), -(51363, 0, "'>'"), -(51406, 10, "'I'"), -(51428, 0, "','"), -(51429, 0, "' '"), -(51430, 0, "' I: ExactSizeIterator'"), -(51415, 16, "''"), -(52397, 24, "'c'"), -(51723, 24, "'c'"), -(52375, 0, "'o'"), -(51724, 0, "'o'"), -(52377, 0, "'n'"), -(51725, 0, "'n'"), -(52379, 0, "'t'"), -(51726, 0, "'t'"), -(52381, 0, "'e'"), -(51727, 0, "'e'"), -(52383, 0, "'n'"), -(51728, 0, "'n'"), -(52385, 0, "'t'"), -(51729, 0, "'t'"), -(52387, 0, "'s'"), -(51730, 0, "'s'"), -(52381, 8, "'contents.iter().copied()'"), -(51723, 8, "'contents.iter().copied()'"), -(51415, 0, "'C::Item: Copy, '"), -(51415, 16, "''"), -(52397, 24, "'contents'"), -(51723, 24, "'contents'"), -(52929, 0, "' '"), -(52937, 0, "'s'"), -(52938, 0, "'e'"), -(52939, 0, "'l'"), -(52940, 0, "'f'"), -(52941, 0, "'.'"), -(52942, 0, "'i'"), -(52943, 0, "'n'"), -(52944, 0, "'s'"), -(52945, 0, "'e'"), -(52946, 0, "'r'"), -(52947, 0, "'t'"), -(52942, 6, "'insert_at_iter(cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)'"), -(52942, 77, "'insert'"), -(52948, 0, "'_'"), -(52949, 0, "'a'"), -(52950, 0, "'t'"), -(52951, 0, "'('"), -(52952, 0, "'u'"), -(52953, 0, "'s'"), -(52954, 0, "'e'"), -(52955, 0, "'r'"), -(52956, 0, "'p'"), -(52957, 0, "'o'"), -(52958, 0, "'s'"), -(52959, 0, "','"), -(52960, 0, "' '"), -(52864, 4, "''"), -(52957, 0, "'c'"), -(52958, 0, "'o'"), -(52959, 0, "'n'"), -(52960, 0, "'t'"), -(52961, 0, "'e'"), -(52962, 0, "'n'"), -(52963, 0, "'t'"), -(52964, 0, "'s'"), -(52965, 0, "'.'"), -(52966, 0, "'i'"), -(52967, 0, "'t'"), -(52968, 0, "'e'"), -(52969, 0, "'r'"), -(52970, 0, "'('"), -(52971, 0, "')'"), -(52972, 0, "'.'"), -(52973, 0, "'c'"), -(52974, 0, "'o'"), -(52975, 0, "'p'"), -(52976, 0, "'i'"), -(52977, 0, "'e'"), -(52978, 0, "'d'"), -(52979, 0, "'('"), -(52980, 0, "')'"), -(52981, 0, "')'"), -(52982, 0, "';'"), -(52982, 1, "''"), -(20503, 0, "')'"), -(20504, 0, "'s'"), -(20505, 0, "'l'"), -(20506, 0, "'i'"), -(20506, 1, "''"), -(20505, 1, "''"), -(20504, 1, "''"), -(20503, 1, "''"), -(20502, 1, "''"), -(20502, 0, "'_'"), -(20502, 1, "''"), -(20502, 0, "'t'"), -(20503, 0, "'_'"), -(20504, 0, "'s'"), -(20505, 0, "'l'"), -(20506, 0, "'i'"), -(20507, 0, "'c'"), -(20508, 0, "'e'"), -(51402, 0, "'n'"), -(51402, 1, "''"), -(51402, 0, "'m'"), -(51403, 0, "'u'"), -(51404, 0, "'t'"), -(51405, 0, "' '"), -(51504, 0, "'n '"), -(51513, 0, "'l'"), -(51514, 0, "'e'"), -(51515, 0, "'t'"), -(51516, 0, "' '"), -(51517, 0, "'n'"), -(51518, 0, "'u'"), -(51519, 0, "'m'"), -(51520, 0, "'_'"), -(51521, 0, "'i'"), -(51522, 0, "'n'"), -(51523, 0, "'s'"), -(51524, 0, "'e'"), -(51525, 0, "'r'"), -(51526, 0, "'t'"), -(51517, 10, "'num_inserted_items'"), -(51535, 0, "' '"), -(51536, 0, "'='"), -(51537, 0, "' '"), -(51538, 0, "'c'"), -(51539, 0, "'o'"), -(51540, 0, "'n'"), -(51541, 0, "'t'"), -(51542, 0, "'e'"), -(51543, 0, "'n'"), -(51544, 0, "'t'"), -(51545, 0, "'s'"), -(51546, 0, "'.'"), -(51547, 0, "'l'"), -(51548, 0, "'e'"), -(51549, 0, "'n'"), -(51550, 0, "'('"), -(51551, 0, "')'"), -(51552, 0, "';'"), -(52742, 14, "'n'"), -(51875, 14, "'n'"), -(52730, 0, "'u'"), -(51876, 0, "'u'"), -(52732, 0, "'m'"), -(51877, 0, "'m'"), -(52734, 0, "'_'"), -(51878, 0, "'_'"), -(52732, 4, "'num_inserted_items'"), -(51875, 4, "'num_inserted_items'"), -(52746, 18, "'num_'"), -(51875, 18, "'num_'"), -(52732, 4, "'contents.len()'"), -(51875, 4, "'contents.len()'"), -(52742, 14, "'num_'"), -(51875, 14, "'num_'"), -(52732, 4, "'num_inserted_items'"), -(51875, 4, "'num_inserted_items'"), -(10256, 0, "'n '"), -(10265, 0, "'p'"), -(10266, 0, "'t'"), -(10267, 0, "'r'"), -(10268, 0, "':'"), -(10269, 0, "':'"), -(10270, 0, "'d'"), -(10271, 0, "'r'"), -(10272, 0, "'o'"), -(10273, 0, "'p'"), -(10274, 0, "'_'"), -(10270, 5, "'drop_in_place(to_drop: *mut T)'"), -(10284, 15, "'p'"), -(10286, 0, "';'"), -(10287, 0, "' '"), -(10288, 0, "'/'"), -(10289, 0, "'/'"), -(10290, 0, "' '"), -(10291, 0, "'W'"), -(10292, 0, "'e'"), -(10293, 0, "'''"), -(10294, 0, "'l'"), -(10295, 0, "'l'"), -(10296, 0, "' '"), -(10297, 0, "'u'"), -(10298, 0, "'s'"), -(10299, 0, "'e'"), -(10300, 0, "' '"), -(10291, 10, "''"), -(10291, 0, "'W'"), -(10292, 0, "'e'"), -(10293, 0, "' '"), -(10294, 0, "'c'"), -(10295, 0, "'o'"), -(10296, 0, "'u'"), -(10297, 0, "'l'"), -(10298, 0, "'d'"), -(10299, 0, "' '"), -(10300, 0, "'j'"), -(10301, 0, "'u'"), -(10302, 0, "'s'"), -(10303, 0, "'t'"), -(10304, 0, "' '"), -(10305, 0, "'i'"), -(10306, 0, "'m'"), -(10307, 0, "'p'"), -(10308, 0, "'e'"), -(10309, 0, "'l'"), -(10310, 0, "'e'"), -(10311, 0, "'m'"), -(10312, 0, "'n'"), -(10313, 0, "'t'"), -(10305, 9, "'i'"), -(10306, 0, "'m'"), -(10307, 0, "'p'"), -(10308, 0, "'l'"), -(10309, 0, "'e'"), -(10310, 0, "'m'"), -(10311, 0, "'e'"), -(10312, 0, "'n'"), -(10313, 0, "'t'"), -(10314, 0, "' '"), -(10315, 0, "'d'"), -(10316, 0, "'r'"), -(10317, 0, "'o'"), -(10318, 0, "'p'"), -(10319, 0, "' '"), -(10320, 0, "'h'"), -(10321, 0, "'e'"), -(10322, 0, "'r'"), -(10323, 0, "'e'"), -(10324, 0, "','"), -(10325, 0, "' '"), -(10326, 0, "'b'"), -(10327, 0, "'u'"), -(10328, 0, "'t'"), -(10329, 0, "' '"), -(10330, 0, "'t'"), -(10331, 0, "'h'"), -(10332, 0, "'i'"), -(10333, 0, "'s'"), -(10334, 0, "' '"), -(10335, 0, "'i'"), -(10336, 0, "' '"), -(10336, 1, "''"), -(10336, 0, "'s'"), -(10337, 0, "' '"), -(10338, 0, "'c'"), -(10339, 0, "'l'"), -(10340, 0, "'e'"), -(10341, 0, "'a'"), -(10342, 0, "'n'"), -(10343, 0, "'e'"), -(10344, 0, "'r'"), -(10345, 0, "'.'"), -(11087, 0, "'n'"), -(11088, 0, "'n'"), -(11089, 0, "'i'"), -(11090, 0, "'m'"), -(11091, 0, "'p'"), -(11092, 0, "'l'"), -(11093, 0, "' '"), -(11093, 1, "''"), -(11093, 0, "'<'"), -(11094, 0, "'C'"), -(11095, 0, "':'"), -(11096, 0, "' '"), -(11097, 0, "'L'"), -(11098, 0, "'i'"), -(11099, 0, "'s'"), -(11100, 0, "'t'"), -(11097, 4, "'ListConfig'"), -(11107, 0, "'>'"), -(11108, 0, "' '"), -(11109, 0, "'D'"), -(11110, 0, "'r'"), -(11111, 0, "'o'"), -(11112, 0, "'p'"), -(11113, 0, "' '"), -(11114, 0, "'f'"), -(11115, 0, "'o'"), -(11116, 0, "'r'"), -(11117, 0, "' '"), -(11118, 0, "'N'"), -(11119, 0, "'o'"), -(11120, 0, "'d'"), -(11121, 0, "'e'"), -(11122, 0, "'<'"), -(11123, 0, "'C'"), -(11124, 0, "'>'"), -(11125, 0, "' '"), -(11126, 0, "'{'"), -(11127, 0, "'n '"), -(11132, 0, "'n '"), -(11128, 4, "''"), -(11129, 4, "'}'"), -(11128, 0, "' '"), -(11132, 0, "'f'"), -(11133, 0, "'n'"), -(11134, 0, "' '"), -(11135, 0, "'D'"), -(11135, 1, "''"), -(11135, 0, "'d'"), -(11136, 0, "'r'"), -(11137, 0, "'o'"), -(11138, 0, "'p'"), -(11139, 0, "'('"), -(11140, 0, "'&'"), -(11141, 0, "'m'"), -(11142, 0, "'u'"), -(11143, 0, "'t'"), -(11144, 0, "' '"), -(11145, 0, "'s'"), -(11146, 0, "'e'"), -(11147, 0, "'l'"), -(11148, 0, "'f'"), -(11149, 0, "')'"), -(11150, 0, "' '"), -(11151, 0, "'{'"), -(11152, 0, "'n '"), -(11153, 8, "' }'"), -(11152, 0, "'n '"), -(11161, 0, "'self.nexts.as_ptr(), self.height as usize'"), -(11161, 41, "''"), -(11161, 0, "'s'"), -(11162, 0, "'e'"), -(11163, 0, "'l'"), -(11164, 0, "'f'"), -(11165, 0, "'.'"), -(11166, 0, "'i'"), -(11167, 0, "'t'"), -(11168, 0, "'e'"), -(11169, 0, "'m'"), -(11170, 0, "'s'"), -(11152, 0, "'n '"), -(11161, 0, "'f'"), -(11162, 0, "'o'"), -(11163, 0, "'r'"), -(11164, 0, "' '"), -(11165, 0, "'l'"), -(11166, 0, "'e'"), -(11167, 0, "'t'"), -(11168, 0, "' '"), -(11168, 1, "''"), -(11167, 1, "''"), -(11166, 1, "''"), -(11165, 1, "''"), -(11165, 0, "'i'"), -(11166, 0, "' '"), -(11167, 0, "'i'"), -(11168, 0, "'n'"), -(11169, 0, "' '"), -(11170, 0, "'0'"), -(11171, 0, "'.'"), -(11172, 0, "'.'"), -(11173, 0, "'s'"), -(11174, 0, "'e'"), -(11175, 0, "'l'"), -(11176, 0, "'f'"), -(11177, 0, "'.'"), -(11178, 0, "'l'"), -(11179, 0, "'e'"), -(11179, 1, "''"), -(11178, 1, "''"), -(11178, 0, "'n'"), -(11179, 0, "'u'"), -(11180, 0, "'m'"), -(11178, 3, "'num_items'"), -(11187, 0, "' '"), -(11187, 1, "''"), -(11187, 0, "' '"), -(11188, 0, "'{'"), -(11198, 0, "' '"), -(11212, 0, "'n '"), -(11213, 12, "' }'"), -(11212, 0, "'['"), -(11213, 0, "'i'"), -(11214, 0, "']'"), -(11215, 0, "'.'"), -(11152, 0, "'n '"), -(11161, 0, "'i'"), -(11162, 0, "'f'"), -(11163, 0, "' '"), -(11164, 0, "'n'"), -(11165, 0, "'e'"), -(11166, 0, "'e'"), -(11164, 3, "'n'"), -(11165, 0, "'e'"), -(11165, 1, "''"), -(11164, 1, "''"), -(11164, 0, "'m'"), -(11165, 0, "'e'"), -(11166, 0, "'m'"), -(11167, 0, "':'"), -(11168, 0, "':'"), -(11169, 0, "'n'"), -(11170, 0, "'e'"), -(11171, 0, "'e'"), -(11172, 0, "'d'"), -(11169, 4, "'needs_drop()'"), -(11179, 0, "'<'"), -(11180, 0, "'C'"), -(11181, 0, "':'"), -(11182, 0, "':'"), -(11183, 0, "'I'"), -(11184, 0, "'t'"), -(11185, 0, "'e'"), -(11186, 0, "'m'"), -(11187, 0, "'>'"), -(11179, 0, "':'"), -(11180, 0, "':'"), -(11192, 0, "' '"), -(11193, 0, "'{'"), -(11268, 0, "'n '"), -(11269, 8, "' }'"), -(11269, 4, "' '"), -(11259, 8, "' '"), -(11232, 12, "' '"), -(11195, 8, "' '"), -(11265, 1, "''"), -(11252, 0, "' '"), -(11252, 0, "'p'"), -(11253, 0, "'t'"), -(11254, 0, "'r'"), -(11255, 0, "':'"), -(11256, 0, "':'"), -(11257, 0, "'drop_in_place(to_drop: *mut T)'"), -(11271, 15, "''"), -(11271, 1, "''"), -(11271, 1, "''"), -(11284, 0, "')'"), -(11271, 0, "'&'"), -(11285, 0, "' '"), -(11286, 0, "'a'"), -(11287, 0, "'s'"), -(11288, 0, "' '"), -(11289, 0, "'*'"), -(11290, 0, "'m'"), -(11291, 0, "'u'"), -(11292, 0, "'t'"), -(11293, 0, "' '"), -(11294, 0, "'_'"), -(11296, 0, "';'"), -(11272, 0, "'m'"), -(11273, 0, "'u'"), -(11274, 0, "'t'"), -(11275, 0, "' '"), -(11271, 5, "''"), -(11284, 0, "'.'"), -(11285, 0, "'a'"), -(11286, 0, "'s'"), -(11287, 0, "'_'"), -(11288, 0, "'m'"), -(11289, 0, "'u'"), -(11285, 5, "'as_mut_ptr'"), -(11295, 0, "'('"), -(11296, 0, "')'"), -(11297, 9, "''"), -(11297, 1, "''"), -(11153, 41, "''"), -(11152, 1, "''"), -(11272, 9, "''"), -(11271, 1, "''"), -(11258, 12, "' '"), -(11194, 16, "' '"), -(11153, 12, "' '"), -(11187, 0, "' '"), -(11188, 0, "'a'"), -(11189, 0, "'s'"), -(11190, 0, "' '"), -(11191, 0, "'u'"), -(11192, 0, "'s'"), -(11193, 0, "'i'"), -(11194, 0, "'z'"), -(11195, 0, "'e'"), -(11211, 0, "'u'"), -(11212, 0, "'n'"), -(11213, 0, "'s'"), -(11214, 0, "'a'"), -(11215, 0, "'f'"), -(11216, 0, "'e'"), -(11217, 0, "' '"), -(11218, 0, "'{'"), -(11219, 0, "' '"), -(11267, 0, "' '"), -(11268, 0, "'}'"), -(11198, 0, "'n '"), -(11211, 0, "'/'"), -(11212, 0, "'/'"), -(11213, 0, "' '"), -(11214, 0, "'C'"), -(11215, 0, "'o'"), -(11216, 0, "'u'"), -(11217, 0, "'l'"), -(11218, 0, "'d'"), -(11219, 0, "' '"), -(11220, 0, "'i'"), -(11221, 0, "'n'"), -(11222, 0, "'s'"), -(11223, 0, "'t'"), -(11224, 0, "'e'"), -(11225, 0, "'a'"), -(11226, 0, "'d'"), -(11227, 0, "' '"), -(11228, 0, "'c'"), -(11229, 0, "'a'"), -(11230, 0, "'l'"), -(11231, 0, "'l'"), -(11232, 0, "' '"), -(11233, 0, "'a'"), -(11234, 0, "'s'"), -(11235, 0, "'s'"), -(11236, 0, "'u'"), -(11237, 0, "'m'"), -(11238, 0, "'e'"), -(11239, 0, "'_'"), -(11240, 0, "'i'"), -(11241, 0, "'n'"), -(11242, 0, "'i'"), -(11243, 0, "'t'"), -(11244, 0, "'('"), -(11245, 0, "')'"), -(11246, 0, "' '"), -(11247, 0, "'o'"), -(11248, 0, "'n'"), -(11249, 0, "' '"), -(11250, 0, "'e'"), -(11251, 0, "'a'"), -(11252, 0, "'c'"), -(11253, 0, "'h'"), -(11254, 0, "' '"), -(11255, 0, "'i'"), -(11256, 0, "'t'"), -(11257, 0, "'e'"), -(11258, 0, "'m'"), -(11259, 0, "' '"), -(11260, 0, "'b'"), -(11261, 0, "'u'"), -(11262, 0, "'t'"), -(11263, 0, "' '"), -(11264, 0, "'I'"), -(11265, 0, "' '"), -(11266, 0, "'t'"), -(11267, 0, "'h'"), -(11268, 0, "'i'"), -(11269, 0, "'n'"), -(11270, 0, "'k'"), -(11271, 0, "' '"), -(11272, 0, "'t'"), -(11273, 0, "'h'"), -(11274, 0, "'i'"), -(11275, 0, "'s'"), -(11276, 0, "' '"), -(11277, 0, "'i'"), -(11278, 0, "'s'"), -(11279, 0, "' '"), -(11264, 16, "'t'"), -(11265, 0, "'h'"), -(11266, 0, "'i'"), -(11267, 0, "'s'"), -(11268, 0, "' '"), -(11269, 0, "'i'"), -(11270, 0, "'s'"), -(11271, 0, "' '"), -(11272, 0, "'f'"), -(11273, 0, "'r'"), -(11274, 0, "'i'"), -(11275, 0, "'e'"), -(11276, 0, "'n'"), -(11277, 0, "'d'"), -(11278, 0, "'l'"), -(11279, 0, "'i'"), -(11280, 0, "'e'"), -(11281, 0, "'r'"), -(11282, 0, "' '"), -(11283, 0, "'t'"), -(11284, 0, "'o'"), -(11285, 0, "' '"), -(11286, 0, "'t'"), -(11287, 0, "'h'"), -(11288, 0, "'e'"), -(11289, 0, "' '"), -(11290, 0, "'o'"), -(11291, 0, "'p'"), -(11292, 0, "'t'"), -(11293, 0, "'i'"), -(11294, 0, "'m'"), -(11295, 0, "'i'"), -(11296, 0, "'z'"), -(11297, 0, "'e'"), -(11298, 0, "'r'"), -(11299, 0, "'.'"), -(11199, 101, "' // Could instead call assume_init() on each item but this isn // friendlier to the optimizer.'"), -(51130, 20, "' where I: ExactSizeIterator'"), -(51119, 10, "'I'"), -(51041, 0, "'<'"), -(51042, 0, "'T'"), -(51043, 0, "'>'"), -(51043, 1, "''"), -(51042, 1, "''"), -(51042, 0, "'I'"), -(51043, 0, "'>'"), -(51042, 2, "''"), -(51042, 0, "'T>'"), -(51041, 3, "''"), -(51119, 1, "'&[C::Item]'"), -(51130, 41, "' where C::Item: Copy'"), -(51152, 0, "'n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {'"), -(51152, 133, "''"), -(51152, 0, "'n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {'"), -(51041, 0, "'_'"), -(51042, 0, "'s'"), -(51043, 0, "'l'"), -(51044, 0, "'i'"), -(51045, 0, "'c'"), -(51046, 0, "'e'"), -(51158, 0, "'n '"), -(51159, 8, "' }'"), -(51019, 145, "''"), -(51752, 0, "'n '"), -(51757, 0, "'n '"), -(51753, 4, "''"), -(51758, 0, "'n pub fn replace_at_slice(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n }'"), -(51754, 4, "''"), -(51753, 1, "''"), -(51130, 20, "' where I: ExactSizeIterator'"), -(51040, 0, "'<'"), -(51041, 1, "''"), -(51040, 1, "''"), -(51040, 0, "'t'"), -(51041, 0, "'<'"), -(51042, 0, "'I'"), -(51043, 0, "'>'"), -(51122, 10, "'I'"), -(51461, 16, "''"), -(51104, 0, "'m'"), -(51105, 0, "'u'"), -(51106, 0, "'t'"), -(51107, 0, "' '"), -(51377, 0, "'n '"), -(51386, 0, "'l'"), -(51387, 0, "'e'"), -(51388, 0, "'t'"), -(51389, 0, "' '"), -(51390, 0, "'n'"), -(51391, 0, "'u'"), -(51392, 0, "'m'"), -(51393, 0, "'_'"), -(51394, 0, "'i'"), -(51395, 0, "'n'"), -(51396, 0, "'s'"), -(51397, 0, "'e'"), -(51398, 0, "'r'"), -(51399, 0, "'t'"), -(51400, 0, "'e'"), -(51401, 0, "'d'"), -(51402, 0, "'_'"), -(51403, 0, "'i'"), -(51404, 0, "'t'"), -(51405, 0, "'e'"), -(51390, 16, "'num_inserted_items'"), -(51408, 0, "' '"), -(51409, 0, "'='"), -(51410, 0, "' '"), -(51411, 0, "'i'"), -(51412, 0, "'n'"), -(51413, 0, "'s'"), -(51414, 0, "'e'"), -(51415, 0, "'r'"), -(51416, 0, "'t'"), -(51411, 6, "'inserted_content'"), -(51427, 0, "'.'"), -(51428, 0, "'l'"), -(51429, 0, "'e'"), -(51430, 0, "'n'"), -(51431, 0, "'('"), -(51432, 0, "')'"), -(51433, 0, "';'"), -(51680, 22, "'n'"), -(51681, 0, "'u'"), -(51682, 0, "'m'"), -(51683, 0, "'_'"), -(51680, 4, "'num_inserted_items'"), -(51544, 0, "'n '"), -(51553, 0, "'n '"), -(51545, 8, "''"), -(51554, 0, "' if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n'"), -(51546, 16, "' '"), -(51545, 208, "''"), -(51544, 1, "''"), -(51948, 0, "'n '"), -(51957, 0, "'s'"), -(51958, 0, "'e'"), -(51959, 0, "'l'"), -(51960, 0, "'f'"), -(51961, 0, "'.'"), -(51962, 0, "'r'"), -(51963, 0, "'e'"), -(51964, 0, "'p'"), -(51965, 0, "'l'"), -(51962, 4, "'replace_at(mut start_userpos: usize, removed_items: usize, mut inserted_content: I)'"), -(51973, 24, "'s'"), -(51974, 0, "'t'"), -(51975, 0, "'a'"), -(51976, 0, "'r'"), -(51977, 0, "'t'"), -(51978, 0, "'_'"), -(51979, 0, "'u'"), -(51980, 0, "'s'"), -(51981, 0, "'e'"), -(51982, 0, "'r'"), -(51983, 0, "'p'"), -(51984, 0, "'o'"), -(51985, 0, "'s'"), -(51988, 20, "'r'"), -(51989, 0, "'e'"), -(51990, 0, "'m'"), -(51991, 0, "'o'"), -(51992, 0, "'v'"), -(51993, 0, "'e'"), -(51994, 0, "'d'"), -(51995, 0, "'_'"), -(51996, 0, "'i'"), -(51997, 0, "'t'"), -(51998, 0, "'e'"), -(51999, 0, "'m'"), -(52000, 0, "'s'"), -(52003, 23, "'i'"), -(52004, 0, "'n'"), -(52005, 0, "'s'"), -(52006, 0, "'e'"), -(52007, 0, "'r'"), -(52008, 0, "'t'"), -(52009, 0, "'e'"), -(52010, 0, "'d'"), -(52011, 0, "'_'"), -(52012, 0, "'c'"), -(52013, 0, "'o'"), -(52014, 0, "'n'"), -(52015, 0, "'t'"), -(52016, 0, "'e'"), -(52017, 0, "'n'"), -(52018, 0, "'t'"), -(52019, 0, "'.'"), -(52020, 0, "'s'"), -(52021, 0, "'l'"), -(52022, 0, "'i'"), -(52023, 0, "'c'"), -(52020, 4, "'i'"), -(52021, 0, "'t'"), -(52022, 0, "'e'"), -(52023, 0, "'r'"), -(52024, 0, "'('"), -(52025, 1, "')'"), -(52026, 0, "'.'"), -(52027, 0, "'c'"), -(52028, 0, "'o'"), -(52029, 0, "'p'"), -(52030, 0, "'i'"), -(52031, 0, "'e'"), -(52032, 0, "'d'"), -(52033, 0, "'('"), -(52034, 0, "')'"), -(52035, 0, "')'"), -(52036, 0, "';'"), -(51849, 3, "''"), -(51849, 1, "''"), -(51849, 0, "'mut '"), -(52020, 17, "'slic)'"), -(52003, 21, "'mut inserted_content: I'"), -(51988, 13, "'removed_items: usize'"), -(51973, 13, "'mut start_userpos: usize'"), -(51962, 83, "'repl'"), -(51948, 18, "''"), -(51544, 0, "'n'"), -(51545, 0, "'n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n'"), -(51546, 8, "' '"), -(51554, 207, "''"), -(51545, 9, "''"), -(51545, 0, "' '"), -(51544, 9, "''"), -(51680, 18, "'num_'"), -(51680, 4, "'inserted_content.len()'"), -(51427, 7, "''"), -(51411, 16, "'insert'"), -(51410, 7, "''"), -(51408, 2, "''"), -(51390, 18, "'num_inserted_ite'"), -(51389, 17, "''"), -(51377, 12, "''"), -(51107, 1, "''"), -(51104, 3, "''"), -(51461, 0, "'.iter().copied()'"), -(51122, 1, "'&[C::Item]'"), -(51040, 4, "''"), -(51040, 0, "''"), -(51040, 0, "'<'"), -(51040, 2, "''"), -(51040, 0, "'t'"), -(51122, 10, "'I'"), -(51461, 16, "''"), -(51104, 0, "'mut'"), -(51107, 0, "' '"), -(51377, 0, "'n let'"), -(51389, 0, "' num_inserted_ite'"), -(51390, 16, "'num_inserted_items'"), -(51408, 0, "' ='"), -(51410, 0, "' insert'"), -(51411, 6, "'inserted_content'"), -(51427, 0, "'.len();'"), -(51680, 22, "'num_'"), -(51680, 4, "'num_inserted_items'"), -(51544, 0, "'n '"), -(51553, 0, "'n '"), -(51545, 8, "''"), -(51554, 0, "' if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n'"), -(51546, 16, "' '"), -(51545, 208, "''"), -(51544, 1, "''"), -(51948, 0, "'n self.repl'"), -(51962, 4, "'replace_at(mut start_userpos: usize, removed_items: usize, mut inserted_content: I)'"), -(52021, 23, "'inserted_content.slic'"), -(51999, 20, "'removed_items'"), -(51973, 24, "'start_userpos'"), -(52020, 5, "'iter().copied());'"), -(51849, 4, "''"), -(51849, 0, "'mut '"), -(51849, 4, "''"), -(10265, 0, "'// '"), -(10265, 3, "''"), -(10257, 43487, "' dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nn// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.nstruct UninitOwnedIter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal data from without droppingn /// content. This is unsafe:n ///n /// - If the iterator isn't fully drained then remaining items will ben /// forgotten (they are not dropped).n /// - The slice passed in here must be initialized or undefined behaviourn /// will hit us.n ///n /// After iterating, the contents are uninit memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n let ptr = slice.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option {n if self.ptr.as_ptr() == self.end {n Nonen } else {n let ptr = self.ptr;n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };n Some(unsafe { ptr.as_ptr().read() })n }n }nn fn size_hint(&self) -> (usize, Option) {n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();n (size, Some(size))n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)]nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }n}nn// TODO: Stolen from MaybeUninit::slice_get_ref. Replace when available.n#[inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.n }nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += num_items;n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = num_items;n }nn notify(new_node.content_slice(), ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n // Can't use copy_within because Item doesn't necessarilyn // implement Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old items - they were only moved.n slot.as_mut_ptr().write(item);n }n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_items.len(), false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n &mut c[item_idx],n trailing_items);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nnn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn'"), -(10257, 42579, "' ptr::drop_in_place(p); // We could just implement drop here, but this is cleaner.n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnimpl Drop for Node {n fn drop(&mut self) {n for i in 0..self.num_items as usize {n // Could instead call assume_init() on each item but this isn // friendlier to the optimizer.n unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }n }n }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nn// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.nstruct UninitOwnedIter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal data from without droppingn /// content. This is unsafe:n ///n /// - If the iterator isn't fully drained then remaining items will ben /// forgotten (they are not dropped).n /// - The slice passed in here must be initialized or undefined behaviourn /// will hit us.n ///n /// After iterating, the contents are uninit memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n let ptr = slice.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option {n if self.ptr.as_ptr() == self.end {n Nonen } else {n let ptr = self.ptr;n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };n Some(unsafe { ptr.as_ptr().read() })n }n }nn fn size_hint(&self) -> (usize, Option) {n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();n (size, Some(size))n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)]nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }n}nn// TODO: Stolen from MaybeUninit::slice_get_ref. Replace when available.n#[inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at_slice(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.n }nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += num_items;n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = num_items;n }nn notify(new_node.content_slice(), ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n // Can't use copy_within because Item doesn't necessarilyn // implement Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old items - they were only moved.n slot.as_mut_ptr().write(item);n }n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, _end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_items.len(), false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n &mut c[item_idx],n trailing_items);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nnn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(num_inserted_items, self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n }nn pub fn insert_at(&mut self, mut userpos: usize, mut contents: I) where I: ExactSizeIterator {n if contents.len() == 0 { return; }n let num_inserted_items = contents.len();n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents, &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor, &mut contents, &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n'"), -(9755, 1, "''"), -(9754, 1, "''"), -(9758, 1, "''"), -(9758, 0, "'.'"), -(9759, 0, "'w'"), -(9760, 0, "'r'"), -(9761, 0, "'i'"), -(9762, 0, "'t'"), -(9763, 0, "'e'"), -(9764, 0, "'('"), -(9765, 1, "''"), -(9765, 1, "''"), -(9765, 1, "''"), -(9960, 1, "''"), -(9960, 0, "')'"), -(9961, 0, "';'"), -(10026, 1, "''"), -(10030, 0, "'.'"), -(10031, 0, "'w'"), -(10032, 0, "'r'"), -(10033, 0, "'i'"), -(10034, 0, "'t'"), -(10035, 0, "'e'"), -(10036, 0, "'('"), -(10037, 1, "''"), -(10037, 1, "''"), -(10037, 1, "''"), -(10058, 0, "')'"), -(11675, 1, "''"), -(11680, 1, "''"), -(11679, 1, "''"), -(11679, 0, "'.'"), -(11680, 0, "'w'"), -(11681, 0, "'r'"), -(11682, 0, "'i'"), -(11683, 0, "'t'"), -(11684, 0, "'e'"), -(11685, 0, "'('"), -(11686, 1, "''"), -(11741, 0, "')'"), -(13907, 1, "''"), -(13911, 0, "'.'"), -(13912, 0, "'w'"), -(13913, 0, "'r'"), -(13911, 3, "''"), -(13907, 0, "'*'"), -(10026, 0, "'*'"), -(10031, 6, "' '"), -(10032, 0, "'='"), -(10033, 0, "' '"), -(10034, 1, "''"), -(10055, 1, "''"), -(11671, 11, "'*'"), -(11672, 0, "'s'"), -(11673, 0, "'e'"), -(11674, 0, "'l'"), -(11675, 0, "'f'"), -(11676, 0, "' '"), -(11677, 0, "'='"), -(11678, 0, "' '"), -(11734, 1, "''"), -(1247, 2, "'2'"), -(1247, 1, "'10'"), -(1638, 1, "'2'"), -(1638, 1, "'5'"), -(44190, 0, "'n '"), -(44207, 0, "'n '"), -(44191, 16, "''"), -(44192, 16, "''"), -(44191, 0, "'n '"), -(44208, 0, "'f'"), -(44209, 0, "'o'"), -(44210, 0, "'r'"), -(44211, 0, "' '"), -(44212, 0, "'&'"), -(44213, 0, "'m'"), -(44214, 0, "'u'"), -(44215, 0, "'t'"), -(44216, 0, "' '"), -(44217, 0, "'i'"), -(44218, 0, "'t'"), -(44219, 0, "'e'"), -(44220, 0, "'m'"), -(44221, 0, "' '"), -(44222, 0, "'i'"), -(44223, 0, "'n'"), -(44224, 0, "' '"), -(44225, 0, "'&c[item_idx..item_idx + removed_here])'"), -(44262, 1, "''"), -(44262, 0, "' '"), -(44263, 0, "'{'"), -(44264, 0, "'n '"), -(44265, 20, "' }'"), -(44226, 0, "'m'"), -(44227, 0, "'u'"), -(44228, 0, "'t'"), -(44229, 0, "' '"), -(44213, 8, "''"), -(44212, 1, "''"), -(44211, 1, "''"), -(44211, 0, "'i'"), -(44211, 1, "''"), -(44211, 0, "' '"), -(44212, 0, "'i'"), -(44213, 0, "'t'"), -(44214, 0, "'e'"), -(44215, 0, "'m'"), -(44263, 0, "'n '"), -(44284, 0, "'i'"), -(44285, 0, "'t'"), -(44286, 0, "'e'"), -(44287, 0, "'m'"), -(44288, 0, "'.'"), -(44289, 0, "'a'"), -(44290, 0, "'s'"), -(44291, 0, "'_'"), -(44289, 3, "'as_mut_ptr'"), -(44299, 0, "'('"), -(44300, 0, "')'"), -(44284, 0, "' '"), -(44284, 0, "'m'"), -(44285, 0, "'e'"), -(44286, 0, "'m'"), -(44287, 0, "':'"), -(44288, 0, "':'"), -(44289, 0, "'d'"), -(44290, 0, "'r'"), -(44291, 0, "'o'"), -(44292, 0, "'p'"), -(44292, 1, "''"), -(44291, 1, "''"), -(44290, 1, "''"), -(44289, 1, "''"), -(44288, 1, "''"), -(44287, 1, "''"), -(44286, 1, "''"), -(44285, 1, "''"), -(44284, 1, "''"), -(44284, 0, "'p'"), -(44285, 0, "'t'"), -(44286, 0, "'r'"), -(44287, 0, "':'"), -(44288, 0, "':'"), -(44289, 0, "'d'"), -(44290, 0, "'r'"), -(44291, 0, "'p'"), -(44289, 3, "'drop_in_place(to_drop: *mut T)'"), -(44303, 15, "''"), -(44303, 1, "''"), -(44303, 1, "''"), -(44320, 0, "')'"), -(44321, 0, "';'"), -(44191, 0, "'n '"), -(44208, 0, "'i'"), -(44209, 0, "'f'"), -(44210, 0, "' '"), -(44211, 0, "'C'"), -(44212, 0, "':'"), -(44213, 0, "':'"), -(44213, 1, "''"), -(44212, 1, "''"), -(44211, 1, "''"), -(44211, 0, "'n'"), -(44212, 0, "'e'"), -(44213, 0, "'e'"), -(44213, 1, "''"), -(44212, 1, "''"), -(44211, 1, "''"), -(44211, 0, "'p'"), -(44212, 0, "'t'"), -(44213, 0, "'r'"), -(44214, 0, "':'"), -(44215, 0, "':'"), -(44216, 0, "'n'"), -(44217, 0, "'e'"), -(44218, 0, "'e'"), -(44211, 8, "'m'"), -(44212, 0, "'e'"), -(44213, 0, "'m'"), -(44214, 0, "':'"), -(44215, 0, "':'"), -(44216, 0, "'n'"), -(44217, 0, "'e'"), -(44218, 0, "'e'"), -(44216, 3, "'needs_drop()'"), -(44226, 0, "':'"), -(44227, 0, "':'"), -(44228, 0, "'<'"), -(44229, 0, "'T'"), -(44230, 0, "'>'"), -(44230, 1, "''"), -(44229, 1, "''"), -(44229, 0, "'C'"), -(44230, 0, "':'"), -(44231, 0, "':'"), -(44232, 0, "'I'"), -(44233, 0, "'t'"), -(44234, 0, "'e'"), -(44235, 0, "'m'"), -(44236, 0, "'>'"), -(44239, 0, "' '"), -(44240, 0, "'{'"), -(44373, 16, "' '"), -(44314, 20, "' '"), -(44242, 16, "' '"), -(44402, 0, "'n '"), -(44403, 20, "' }'"), -(11154, 0, "'n '"), -(11163, 0, "'f'"), -(11164, 0, "'o'"), -(11165, 0, "'r'"), -(11166, 0, "' '"), -(11167, 0, "'i'"), -(11168, 0, "'t'"), -(11169, 0, "'e'"), -(11170, 0, "'m'"), -(11171, 0, "' '"), -(11172, 0, "'i'"), -(11173, 0, "'n'"), -(11174, 0, "' '"), -(11175, 0, "'&'"), -(11176, 0, "'m'"), -(11177, 0, "'u'"), -(11178, 0, "'t'"), -(11179, 0, "' '"), -(11180, 0, "'s'"), -(11181, 0, "'e'"), -(11182, 0, "'l'"), -(11183, 0, "'f'"), -(11184, 0, "'.'"), -(11185, 0, "'i'"), -(11186, 0, "'t'"), -(11187, 0, "'e'"), -(11188, 0, "'m'"), -(11185, 4, "'items'"), -(11190, 0, "'['"), -(11191, 0, "'0'"), -(11192, 0, "'.'"), -(11193, 0, "'.'"), -(11194, 0, "'s'"), -(11195, 0, "'e'"), -(11196, 0, "'l'"), -(11197, 0, "'f'"), -(11198, 0, "'.'"), -(11199, 0, "'n'"), -(11200, 0, "'u'"), -(11201, 0, "'m'"), -(11202, 0, "'_'"), -(11203, 0, "'i'"), -(11204, 0, "'t'"), -(11205, 0, "'e'"), -(11206, 0, "'m'"), -(11207, 0, "'s'"), -(11208, 0, "' '"), -(11209, 0, "'a'"), -(11210, 0, "'s'"), -(11211, 0, "' '"), -(11212, 0, "'u'"), -(11213, 0, "'s'"), -(11214, 0, "'i'"), -(11215, 0, "'z'"), -(11216, 0, "'e'"), -(11217, 0, "']'"), -(11218, 0, "' '"), -(11219, 0, "'{'"), -(11221, 45, "''"), -(11220, 1, "''"), -(11338, 0, "' unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }n'"), -(11350, 0, "'// '"), -(11452, 13, "'i'"), -(11453, 0, "'t'"), -(11454, 0, "'e'"), -(11455, 0, "'m'"), -(11338, 73, "''"), -(11337, 1, "''"), -(55759, 20, "''"), -(20792, 0, "'n '"), -(20797, 0, "'n '"), -(20793, 4, "''"), -(20798, 0, "'p'"), -(20799, 0, "'u'"), -(20800, 0, "'b'"), -(20801, 0, "' '"), -(20802, 0, "'f'"), -(20803, 0, "'n'"), -(20804, 0, "' '"), -(20805, 0, "'n'"), -(20806, 0, "'e'"), -(20807, 0, "'w'"), -(20808, 0, "'_'"), -(20809, 0, "'f'"), -(20810, 0, "'r'"), -(20811, 0, "'o'"), -(20812, 0, "'m'"), -(20813, 0, "'_'"), -(20814, 0, "'i'"), -(20815, 0, "'t'"), -(20816, 0, "'e'"), -(20817, 0, "'r'"), -(20818, 0, "'('"), -(20819, 0, "'&'"), -(20819, 1, "''"), -(20818, 0, "'<'"), -(20819, 0, "'I'"), -(20820, 0, "'>'"), -(20822, 0, "'i'"), -(20823, 0, "'t'"), -(20824, 0, "'e'"), -(20825, 0, "'r'"), -(20826, 0, "':'"), -(20827, 0, "' '"), -(20828, 0, "'I'"), -(20829, 0, "')'"), -(20819, 1, "''"), -(20819, 0, "'I: ExactSizeIterator '"), -(20853, 1, "''"), -(20863, 0, "' '"), -(20864, 0, "'{'"), -(20865, 0, "'n '"), -(20874, 0, "'n '"), -(20866, 8, "''"), -(20867, 8, "' }'"), -(20945, 85, "''"), -(20866, 0, "' let mut rope = Self::new();n rope.insert_at_slice(0, s);n ropen'"), -(20950, 1, "''"), -(20929, 1, "''"), -(20928, 1, "''"), -(20927, 1, "''"), -(20926, 1, "''"), -(20925, 1, "''"), -(20924, 1, "''"), -(20928, 1, "''"), -(20928, 0, "'i'"), -(20929, 0, "'t'"), -(20930, 0, "'e'"), -(20931, 0, "'r'"), -(20863, 0, "' '"), -(20864, 0, "'-'"), -(20865, 0, "'>'"), -(20866, 0, "' '"), -(20867, 0, "'S'"), -(20868, 0, "'e'"), -(20869, 0, "'l'"), -(20870, 0, "'f'"), -(21033, 0, "'n '"), -(21042, 0, "'s'"), -(21043, 0, "'e'"), -(21044, 0, "'l'"), -(21045, 0, "'f'"), -(21042, 4, "'S'"), -(21043, 0, "'e'"), -(21044, 0, "'l'"), -(21045, 0, "'f'"), -(21046, 0, "':'"), -(21047, 0, "':'"), -(21048, 0, "'n'"), -(21049, 0, "'e'"), -(21050, 0, "'w'"), -(21051, 0, "'_'"), -(21048, 4, "'new_from_iter(iter: I)'"), -(21062, 7, "'s'"), -(21063, 0, "'.'"), -(21064, 0, "'i'"), -(21065, 0, "'t'"), -(21066, 0, "'e'"), -(21067, 0, "'r'"), -(21068, 0, "'('"), -(21069, 1, "')'"), -(21070, 0, "'.'"), -(21071, 0, "'c'"), -(21072, 0, "'o'"), -(21073, 0, "'p'"), -(21074, 0, "'i'"), -(21075, 0, "'e'"), -(21076, 0, "'d'"), -(21077, 0, "'('"), -(21078, 0, "')'"), -(21079, 0, "')'"), -(21080, 0, "';'"), -(21080, 1, "''"), -(55969, 1, "''"), -(55968, 1, "''"), -(55967, 1, "''"), -(55966, 1, "''"), -(55965, 1, "''"), -(55965, 0, "'i'"), -(55966, 0, "'t'"), -(55967, 0, "'e'"), -(55968, 0, "'r'"), -(55970, 12, "''"), -(55970, 0, "'s'"), -(55971, 0, "'.'"), -(55972, 0, "'i'"), -(55973, 0, "'n'"), -(55974, 0, "'t'"), -(55975, 0, "'o'"), -(55972, 4, "'into_iter()'"), -(55791, 43, "''"), -(55790, 1, "''"), -(55791, 0, "'impl From> for SkipList {n fn from(s: Vec) -> SkipList {n SkipList::new_from_iter(s.into_iter())n }n}n'"), -(55948, 0, "'n'"), -(55968, 0, "','"), -(55969, 0, "' '"), -(55970, 0, "' let mut rope = Self::new();n rope.insert_at_slice(0, s);n ropen'"), -(56042, 8, "''"), -(56006, 8, "''"), -(56034, 0, "' '"), -(56006, 0, "' '"), -(55970, 85, "''"), -(55970, 0, "'I'"), -(55971, 0, "':'"), -(55972, 0, "' '"), -(55973, 0, "'E'"), -(55974, 0, "'x'"), -(55975, 0, "'a'"), -(55973, 3, "'ExactSizeIterator'"), -(55990, 0, "'<'"), -(55991, 0, "'C'"), -(55992, 0, "':'"), -(55993, 0, "':'"), -(55994, 0, "'I'"), -(55995, 0, "'t'"), -(55996, 0, "'e'"), -(55997, 0, "'m'"), -(55998, 0, "'>'"), -(55971, 28, "''"), -(55978, 12, "'I'"), -(55997, 0, "' '"), -(55998, 0, "'w'"), -(55998, 1, "''"), -(55997, 1, "''"), -(55997, 0, "'w'"), -(55998, 0, "'h'"), -(55999, 0, "'e'"), -(56000, 0, "'r'"), -(56001, 0, "'e'"), -(56002, 0, "' '"), -(56003, 0, "'I'"), -(56004, 0, "':'"), -(56005, 0, "' '"), -(56006, 0, "'E'"), -(56007, 0, "'x'"), -(56008, 0, "'a'"), -(56006, 3, "'ExactSizeIterator'"), -(56023, 0, "'<'"), -(56024, 0, "'C'"), -(56025, 0, "':'"), -(56026, 0, "':'"), -(56027, 0, "'I'"), -(56028, 0, "'t'"), -(56029, 0, "'e'"), -(56030, 0, "'m'"), -(56031, 0, "'>'"), -(56032, 0, "' '"), -(56024, 0, "'I'"), -(56025, 0, "'t'"), -(56026, 0, "'e'"), -(56027, 0, "'m'"), -(56028, 0, "'='"), -(55788, 0, "'// '"), -(55782, 0, "'// '"), -(55746, 0, "'// '"), -(55702, 0, "'// '"), -(55627, 0, "'// '"), -(55962, 0, "'// '"), -(55956, 0, "'// '"), -(55909, 0, "'// '"), -(55863, 0, "'// '"), -(55806, 0, "'// '"), -(56070, 98, "'// fn from(s: Vec) -> SkipList {n// SkipList::new_from_iter(s.into_iter())n// }'"), -(56169, 3, "''"), -(56119, 3, "''"), -(56070, 3, "''"), -(56082, 15, "'i'"), -(56083, 0, "'t'"), -(56084, 0, "'e'"), -(56085, 0, "'r'"), -(56086, 0, "':'"), -(56087, 0, "' '"), -(56088, 0, "'I'"), -(56140, 13, "'i'"), -(56141, 0, "'t'"), -(56142, 0, "'e'"), -(56143, 0, "'r'"), -(55800, 3, "''"), -(55791, 3, "''"), -(55752, 3, "''"), -(55705, 3, "''"), -(55627, 3, "''"), -(55788, 0, "'// '"), -(55782, 0, "'// '"), -(55746, 0, "'// '"), -(55702, 0, "'// '"), -(55627, 0, "'// '"), -(55626, 352, "''"), -(55625, 1, "''"), -(56185, 973, "''"), -(56120, 68, "''"), -(56119, 1, "''"), -(54767, 0, "'n '"), -(54772, 0, "'n '"), -(54768, 4, "''"), -(54773, 0, "' // TODO: Don't export this.n pub fn print(&self) {n println!('items: {}tuserlen: {}, height: {}', self.num_items, self.get_userlen(), self.head.height);nn print!('HEAD:');n for s in self.head.nexts() {n print!(' |{} ', s.skip_usersize);n }n println!('');nn use std::collections::HashMap;n let mut ptr_to_id = HashMap::new();n // ptr_to_id.insert(std::ptr::null(), usize::MAX);n for (i, node) in self.iter().enumerate() {n print!('{}:', i);n ptr_to_id.insert(node as *const _, i);n for s in node.nexts() {n print!(' |{} ', s.skip_usersize);n }n print!(' : {:?}', node.content_slice());n if let Some(id) = ptr_to_id.get(&(node.parent as *const _)) {n print!(' (parent: {})', id);n }n print!(' (pointer: {:?})', node as *const _);nn println!();n }n }'"), -(55741, 4, "' '"), -(55731, 8, "' '"), -(55707, 12, "' '"), -(55706, 0, "' '"), -(55648, 12, "' '"), -(55634, 12, "' '"), -(55589, 16, "' '"), -(55515, 12, "' '"), -(55457, 12, "' '"), -(55443, 12, "' '"), -(55393, 16, "' '"), -(55357, 12, "' '"), -(55306, 12, "' '"), -(55276, 12, "' '"), -(55225, 8, "' '"), -(55166, 8, "' '"), -(55122, 8, "' '"), -(55083, 8, "' '"), -(55082, 0, "' '"), -(55060, 8, "' '"), -(55050, 8, "' '"), -(55004, 12, "' '"), -(54967, 8, "' '"), -(54942, 8, "' '"), -(54941, 0, "' '"), -(54831, 8, "' '"), -(54805, 4, "' '"), -(55845, 8, "' '"), -(55831, 12, "' '"), -(55803, 16, "' '"), -(55798, 4, "''"), -(55736, 16, "' '"), -(55718, 16, "' '"), -(55669, 20, "' '"), -(55591, 16, "' '"), -(55529, 16, "' '"), -(55511, 16, "' '"), -(55457, 20, "' '"), -(55417, 16, "' '"), -(55362, 16, "' '"), -(55328, 16, "' '"), -(55273, 12, "' '"), -(55210, 12, "' '"), -(55162, 12, "' '"), -(55119, 12, "' '"), -(55114, 4, "''"), -(55088, 12, "' '"), -(55074, 12, "' '"), -(55024, 16, "' '"), -(54983, 12, "' '"), -(54954, 12, "' '"), -(54949, 4, "''"), -(54835, 12, "' '"), -(54805, 8, "' '"), -(54769, 8, "' '"), -(54824, 0, "' '"), -(54825, 0, "'w'"), -(54826, 0, "'h'"), -(54827, 0, "'e'"), -(54828, 0, "'r'"), -(54829, 0, "'e'"), -(54830, 0, "' '"), -(54831, 0, "'C'"), -(54832, 0, "':'"), -(54833, 0, "':'"), -(54834, 0, "'I'"), -(54835, 0, "'t'"), -(54836, 0, "'e'"), -(54837, 0, "'m'"), -(54838, 0, "':'"), -(54839, 0, "' '"), -(54840, 0, "'D'"), -(54841, 0, "'e'"), -(54842, 0, "'b'"), -(54843, 0, "'u'"), -(54844, 0, "'g'"), -(54840, 0, "'s'"), -(54841, 0, "'t'"), -(54842, 0, "'d'"), -(54843, 0, "':'"), -(54844, 0, "':'"), -(54845, 0, "'f'"), -(54846, 0, "'m'"), -(54847, 0, "'t'"), -(54848, 0, "':'"), -(54849, 0, "':'"), -(52176, 0, "'// '"), -(52102, 0, "'// '"), -(52031, 0, "'// '"), -(51964, 0, "'// '"), -(51928, 0, "'// '"), -(51919, 0, "'n '"), -(51928, 0, "'d'"), -(51929, 0, "'b'"), -(51930, 0, "'g'"), -(51931, 0, "'_'"), -(51928, 4, "'s'"), -(51929, 0, "'e'"), -(51930, 0, "'l'"), -(51931, 0, "'f'"), -(51932, 0, "'.'"), -(51933, 0, "'d'"), -(51934, 0, "'b'"), -(51935, 0, "'g'"), -(51936, 0, "'_'"), -(51933, 4, "'dbg_check_cursor_at(cursor: &Cursor, userpos: usize, plus_items: usize)'"), -(51953, 18, "'&'"), -(51954, 0, "'c'"), -(51955, 0, "'y'"), -(51956, 0, "'r'"), -(51957, 0, "'s'"), -(51958, 0, "'o'"), -(51958, 1, "''"), -(51957, 1, "''"), -(51956, 1, "''"), -(51955, 1, "''"), -(51955, 0, "'u'"), -(51956, 0, "'r'"), -(51957, 0, "'s'"), -(51958, 0, "'o'"), -(51959, 0, "'r'"), -(51962, 14, "'s'"), -(51963, 0, "'t'"), -(51964, 0, "'a'"), -(51965, 0, "'r'"), -(51966, 0, "'t'"), -(51967, 0, "'_'"), -(51968, 0, "'u'"), -(51969, 0, "'s'"), -(51970, 0, "'e'"), -(51971, 0, "'r'"), -(51972, 0, "'p'"), -(51973, 0, "'o'"), -(51974, 0, "'s'"), -(51977, 17, "'n'"), -(51978, 0, "'u'"), -(51979, 0, "'m'"), -(51980, 0, "'_'"), -(51981, 0, "'i'"), -(51982, 0, "'n'"), -(51983, 0, "'s'"), -(51984, 0, "'e'"), -(51985, 0, "'r'"), -(51986, 0, "'t'"), -(51987, 0, "'e'"), -(51988, 0, "'d'"), -(51989, 0, "'_'"), -(51990, 0, "'i'"), -(51991, 0, "'t'"), -(51992, 0, "'e'"), -(51993, 0, "'m'"), -(51994, 0, "'s'"), -(51996, 0, "';'"), -(51998, 273, "''"), -(51023, 0, "'n '"), -(51028, 0, "'n '"), -(51024, 4, "''"), -(51029, 0, "' unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n'"), -(51177, 12, "' '"), -(51025, 8, "' '"), -(51223, 36, "''"), -(51177, 0, "' '"), -(51229, 0, "'n '"), -(51230, 12, "' }'"), -(51230, 8, "' '"), -(51053, 1, "''"), -(51052, 1, "''"), -(51051, 1, "''"), -(51050, 1, "''"), -(51049, 1, "''"), -(51048, 1, "''"), -(51047, 1, "''"), -(51047, 0, "'i'"), -(51048, 0, "'t'"), -(51049, 0, "'e'"), -(51050, 0, "'m'"), -(51058, 3, "''"), -(51093, 52, "''"), -(51093, 0, "','"), -(51094, 0, "' '"), -(51095, 0, "'n'"), -(51096, 0, "'e'"), -(51097, 0, "'w'"), -(51098, 0, "'I'"), -(51099, 0, "'t'"), -(51100, 0, "'e'"), -(51101, 0, "'m'"), -(51101, 1, "''"), -(51100, 1, "''"), -(51099, 1, "''"), -(51098, 1, "''"), -(51098, 0, "'_'"), -(51099, 0, "'i'"), -(51100, 0, "'t'"), -(51101, 0, "'e'"), -(51102, 0, "'m'"), -(51103, 0, "':'"), -(51104, 0, "' '"), -(51105, 0, "'C'"), -(51106, 0, "':'"), -(51107, 0, "':'"), -(51108, 0, "'I'"), -(51109, 0, "'t'"), -(51110, 0, "'e'"), -(51111, 0, "'m'"), -(51190, 0, "'n '"), -(51191, 12, "' '"), -(51025, 165, "' unsafe fn replace_item(&mut self, cursor: &mut Cursor, new_item: C::Item, mut notify: Notify) where Notify: FnMut(&[C::Item], ItemMarker) {'"), -(51025, 157, "' unsafe fn replace_item(&mut self, cursor: &mut Cursor, new_item: C::Item, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {'"), -(51134, 8, "' '"), -(51186, 0, "'n '"), -(51195, 0, "'s'"), -(51196, 0, "'e'"), -(51197, 0, "'l'"), -(51198, 0, "'f'"), -(51199, 0, "'.'"), -(51200, 0, "'r'"), -(51201, 0, "'e'"), -(51202, 0, "'p'"), -(51203, 0, "'l'"), -(51204, 0, "'a'"), -(51200, 5, "'replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)'"), -(51216, 22, "'c'"), -(51217, 0, "'u'"), -(51218, 0, "'r'"), -(51219, 0, "'s'"), -(51220, 0, "'o'"), -(51221, 0, "'r'"), -(51224, 24, "'1'"), -(51227, 24, "'o'"), -(51228, 0, "'n'"), -(51229, 0, "'c'"), -(51230, 0, "'e'"), -(51227, 4, "'i'"), -(51228, 0, "'t'"), -(51229, 0, "'e'"), -(51230, 0, "'r'"), -(51231, 0, "':'"), -(51232, 0, "':'"), -(51233, 0, "'o'"), -(51234, 0, "'n'"), -(51235, 0, "'c'"), -(51236, 0, "'e'"), -(51237, 0, "'('"), -(51238, 0, "'n'"), -(51239, 0, "'e'"), -(51240, 0, "'w'"), -(51241, 0, "'_'"), -(51242, 0, "'i'"), -(51243, 0, "'t'"), -(51244, 0, "'e'"), -(51245, 0, "'m'"), -(51246, 0, "')'"), -(51249, 18, "'n'"), -(51250, 0, "'o'"), -(51251, 0, "'t'"), -(51252, 0, "'i'"), -(51253, 0, "'f'"), -(51254, 0, "'y'"), -(51256, 0, "';'"), -(51227, 0, "'&'"), -(51228, 0, "'m'"), -(51229, 0, "'u'"), -(51230, 0, "'t'"), -(51231, 0, "' '"), -(51267, 4, "''"), -(51263, 4, "''"), -(51262, 1, "''"), -(51186, 0, "'n '"), -(51195, 0, "'/'"), -(51196, 0, "'/'"), -(51197, 0, "' '"), -(51198, 0, "'T'"), -(51199, 0, "'h'"), -(51200, 0, "'i'"), -(51201, 0, "'s'"), -(51202, 0, "' '"), -(51203, 0, "'c'"), -(51204, 0, "'o'"), -(51205, 0, "'u'"), -(51206, 0, "'l'"), -(51207, 0, "'d'"), -(51208, 0, "' '"), -(51209, 0, "'b'"), -(51210, 0, "'e'"), -(51211, 0, "' '"), -(51212, 0, "'o'"), -(51213, 0, "'p'"), -(51214, 0, "'t'"), -(51215, 0, "'i'"), -(51216, 0, "'m'"), -(51217, 0, "'i'"), -(51218, 0, "'z'"), -(51219, 0, "'e'"), -(51220, 0, "'d'"), -(51221, 0, "'.'"), -(51208, 0, "' '"), -(51209, 0, "'e'"), -(51210, 0, "'a'"), -(51211, 0, "'s'"), -(51212, 0, "'i'"), -(51213, 0, "'l'"), -(51214, 0, "'y'"), -(51114, 4, "''"), -(51308, 1, "''"), -(53479, 0, "'// '"), -(53462, 0, "'n '"), -(53479, 0, "'s'"), -(53480, 0, "'e'"), -(53481, 0, "'l'"), -(53482, 0, "'f'"), -(53483, 0, "'.'"), -(53484, 0, "'r'"), -(53485, 0, "'e'"), -(53486, 0, "'p'"), -(53487, 0, "'l'"), -(53488, 0, "'a'"), -(53484, 5, "'replace_item(cursor: &mut Cursor, new_item: C::Item, notify: Notify)'"), -(53497, 22, "'&'"), -(53498, 0, "'m'"), -(53499, 0, "'u'"), -(53500, 0, "'t'"), -(53501, 0, "' '"), -(53502, 0, "'c'"), -(53503, 0, "'u'"), -(53504, 0, "'r'"), -(53505, 0, "'s'"), -(53506, 0, "'o'"), -(53507, 0, "'r'"), -(53508, 0, "','"), -(53509, 0, "' '"), -(53509, 1, "''"), -(53508, 1, "''"), -(53510, 17, "'s'"), -(53511, 0, "'t'"), -(53512, 0, "'a'"), -(53513, 0, "'r'"), -(53514, 0, "'t'"), -(53516, 15, "'&mut Self::no_notify'"), -(53516, 0, "' '"), -(53538, 0, "';'"), -(53540, 103, "''"), -(53539, 0, "'n '"), -(53556, 0, "'n '"), -(53540, 16, "''"), -(53557, 0, "'/'"), -(53558, 0, "'/'"), -(53559, 0, "' '"), -(53560, 0, "'T'"), -(53561, 0, "'O'"), -(53562, 0, "'D'"), -(53563, 0, "'O'"), -(53564, 0, "':'"), -(53565, 0, "' '"), -(53566, 0, "'C'"), -(53567, 0, "'o'"), -(53568, 0, "'n'"), -(53569, 0, "'s'"), -(53570, 0, "'i'"), -(53571, 0, "'d'"), -(53572, 0, "'e'"), -(53573, 0, "'r'"), -(53574, 0, "' '"), -(53575, 0, "'f'"), -(53576, 0, "'u'"), -(53577, 0, "'s'"), -(53578, 0, "'i'"), -(53579, 0, "'n'"), -(53580, 0, "'g'"), -(53575, 6, "'c'"), -(53576, 0, "'o'"), -(53577, 0, "'n'"), -(53578, 0, "'c'"), -(53579, 0, "'a'"), -(53580, 0, "'t'"), -(53581, 0, "'e'"), -(53582, 0, "'n'"), -(53583, 0, "'a'"), -(53584, 0, "'t'"), -(53585, 0, "'i'"), -(53586, 0, "'n'"), -(53587, 0, "'g'"), -(53588, 0, "' '"), -(53589, 0, "'e'"), -(53590, 0, "'n'"), -(53591, 0, "'d'"), -(53592, 0, "' '"), -(53593, 0, "'o'"), -(53594, 0, "'n'"), -(53594, 1, "''"), -(53593, 1, "''"), -(53593, 0, "'i'"), -(53594, 0, "'n'"), -(53595, 0, "'t'"), -(53596, 0, "'o'"), -(53597, 0, "' '"), -(53598, 0, "'c'"), -(53599, 0, "'o'"), -(53600, 0, "'n'"), -(53601, 0, "'t'"), -(53602, 0, "'e'"), -(53603, 0, "'n'"), -(53604, 0, "'t'"), -(53605, 0, "'s'"), -(53606, 0, "'.'"), -(53606, 1, "''"), -(53606, 0, "' '"), -(53606, 1, "''"), -(53606, 0, "' '"), -(53607, 0, "'t'"), -(53608, 0, "'h'"), -(53609, 0, "'e'"), -(53610, 0, "'n'"), -(53611, 0, "' '"), -(53612, 0, "'j'"), -(53613, 0, "'u'"), -(53614, 0, "'s'"), -(53615, 0, "'t'"), -(53616, 0, "' '"), -(53617, 0, "'c'"), -(53618, 0, "'a'"), -(53619, 0, "'l'"), -(53620, 0, "'l'"), -(53621, 0, "' '"), -(53622, 0, "'i'"), -(53623, 0, "'n'"), -(53624, 0, "'s'"), -(53625, 0, "'e'"), -(53626, 0, "'r'"), -(53627, 0, "'t'"), -(53628, 0, "'_'"), -(53629, 0, "'a'"), -(53630, 0, "'t'"), -(53631, 0, "'_'"), -(53632, 0, "'i'"), -(53633, 0, "'t'"), -(53634, 0, "'e'"), -(53635, 0, "'r'"), -(53636, 0, "' '"), -(53637, 0, "'o'"), -(53638, 0, "'n'"), -(53639, 0, "'c'"), -(53640, 0, "'e'"), -(53641, 0, "'.'"), -(53541, 101, "' // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.'"), -(53749, 209, "''"), -(52518, 0, "'n '"), -(52523, 0, "'n '"), -(52519, 4, "''"), -(52524, 0, "'p'"), -(52525, 0, "'u'"), -(52526, 0, "'b'"), -(52527, 0, "' '"), -(52528, 0, "'f'"), -(52529, 0, "'n'"), -(52530, 0, "' '"), -(52531, 0, "'m'"), -(52532, 0, "'o'"), -(52532, 1, "''"), -(52532, 0, "'o'"), -(52533, 0, "'d'"), -(52534, 0, "'i'"), -(52535, 0, "'f'"), -(52536, 0, "'y'"), -(52537, 0, "'_'"), -(52538, 0, "'a'"), -(52539, 0, "'t'"), -(52540, 0, "'('"), -(52541, 0, "'&'"), -(52542, 0, "'m'"), -(52543, 0, "'u'"), -(52544, 0, "'t'"), -(52545, 0, "' '"), -(52546, 0, "'s'"), -(52547, 0, "'e'"), -(52548, 0, "'l'"), -(52549, 0, "'f'"), -(52550, 0, "','"), -(52551, 0, "' '"), -(52552, 0, "'m'"), -(52553, 0, "'o'"), -(52554, 0, "'d'"), -(52555, 0, "'i'"), -(52556, 0, "'f'"), -(52557, 0, "'y'"), -(52558, 0, "'_'"), -(52559, 0, "'f'"), -(52560, 0, "'n'"), -(52561, 0, "':'"), -(52562, 0, "' '"), -(52563, 0, "'F'"), -(52540, 0, "'<'"), -(52541, 0, "'F'"), -(52542, 0, "'>'"), -(52554, 0, "' '"), -(52555, 0, "'u'"), -(52556, 0, "'s'"), -(52557, 0, "'e'"), -(52558, 0, "'r'"), -(52559, 0, "'s'"), -(52560, 0, "'i'"), -(52560, 1, "''"), -(52559, 1, "''"), -(52559, 0, "'p'"), -(52560, 0, "'o'"), -(52561, 0, "'s'"), -(52562, 0, "':'"), -(52563, 0, "' '"), -(52564, 0, "'u'"), -(52565, 0, "'s'"), -(52566, 0, "'i'"), -(52567, 0, "'z'"), -(52568, 0, "'e'"), -(52569, 0, "','"), -(52583, 0, "')'"), -(52584, 0, "' '"), -(52585, 0, "'{'"), -(52586, 0, "'n '"), -(52595, 0, "'n '"), -(52587, 8, "''"), -(52588, 8, "' }'"), -(52584, 1, "''"), -(52584, 0, "'n '"), -(52589, 0, "'w'"), -(52590, 0, "'h'"), -(52591, 0, "'e'"), -(52592, 0, "'r'"), -(52593, 0, "'e'"), -(52594, 0, "' '"), -(52595, 0, "'F'"), -(52596, 0, "':'"), -(52597, 0, "' '"), -(52598, 0, "'F'"), -(52599, 0, "'n'"), -(52600, 0, "'O'"), -(52601, 0, "'n'"), -(52602, 0, "'c'"), -(52603, 0, "'e'"), -(52604, 0, "'('"), -(52605, 0, "'&'"), -(52606, 0, "'m'"), -(52607, 0, "'u'"), -(52608, 0, "'t'"), -(52609, 0, "' '"), -(52610, 0, "'C'"), -(52611, 0, "':'"), -(52612, 0, "':'"), -(52613, 0, "'I'"), -(52614, 0, "'t'"), -(52615, 0, "'e'"), -(52616, 0, "'m'"), -(52605, 0, "'i'"), -(52606, 0, "'t'"), -(52607, 0, "'e'"), -(52608, 0, "'m'"), -(52609, 0, "':'"), -(52610, 0, "' '"), -(52623, 0, "')'"), -(52624, 0, "' '"), -(52605, 6, "''"), -(52621, 0, "' '"), -(52629, 0, "'let (mut cursor, offset) = self.iter_at_userpos(userpos);n'"), -(52617, 0, "','"), -(52618, 0, "' '"), -(52619, 0, "'i'"), -(52620, 0, "'n'"), -(52620, 1, "''"), -(52619, 1, "''"), -(52619, 0, "'u'"), -(52620, 0, "'s'"), -(52621, 0, "'i'"), -(52622, 0, "'z'"), -(52623, 0, "'e'"), -(52694, 0, "' '"), -(52694, 8, "''"), -(15874, 0, "' unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }n'"), -(16087, 0, "'n '"), -(16119, 0, "'_'"), -(16088, 4, "''"), -(16116, 0, "'m'"), -(16117, 0, "'u'"), -(16118, 0, "'t'"), -(16135, 0, "'m'"), -(16136, 0, "'u'"), -(16137, 0, "'t'"), -(16138, 0, "' '"), -(16298, 0, "'m'"), -(16299, 0, "'u'"), -(16300, 0, "'t'"), -(16301, 0, "'_'"), -(16298, 4, "''"), -(16264, 0, "'m'"), -(16265, 0, "'u'"), -(16266, 0, "'t'"), -(16267, 0, "' '"), -(16087, 227, "''"), -(16087, 0, "'nn unsafe fn current_item_mut(&mut self) -> &mut C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &mut *(node.items[self.local_index].as_ptr())n }'"), -(16264, 4, "''"), -(16169, 0, "','"), -(16170, 0, "'u'"), -(16171, 0, "'t'"), -(16171, 1, "''"), -(16170, 1, "''"), -(16169, 1, "''"), -(16169, 0, "'m'"), -(16170, 0, "'u'"), -(16171, 0, "'t'"), -(16172, 0, "' '"), -(16268, 0, "'u'"), -(16268, 1, "''"), -(16268, 0, "'m'"), -(16269, 0, "'u'"), -(16270, 0, "'t'"), -(16271, 0, "' '"), -(16303, 6, "'a'"), -(16304, 0, "'s'"), -(16305, 0, "'_'"), -(16306, 0, "'m'"), -(16307, 0, "'u'"), -(16308, 0, "'t'"), -(16303, 6, "'as_mut_ptr'"), -(52929, 0, "' '"), -(52937, 0, "'l'"), -(52938, 0, "'e'"), -(52939, 0, "'t'"), -(52940, 0, "' '"), -(52941, 0, "'i'"), -(52942, 0, "'t'"), -(52943, 0, "'e'"), -(52944, 0, "'m'"), -(52945, 0, "' '"), -(52946, 0, "'='"), -(52947, 0, "' '"), -(52948, 0, "'c'"), -(52949, 0, "'u'"), -(52950, 0, "'r'"), -(52951, 0, "'s'"), -(52952, 0, "'o'"), -(52953, 0, "'r'"), -(52954, 0, "'.'"), -(52955, 0, "'c'"), -(52956, 0, "'u'"), -(52957, 0, "'r'"), -(52958, 0, "'r'"), -(52959, 0, "'e'"), -(52955, 5, "'current_item_mut()'"), -(52973, 0, "';'"), -(52974, 0, "'n '"), -(52983, 0, "'l'"), -(52984, 0, "'e'"), -(52985, 0, "'t'"), -(52986, 0, "' '"), -(52987, 0, "'o'"), -(52988, 0, "'l'"), -(52989, 0, "'d'"), -(52990, 0, "'_'"), -(52991, 0, "'s'"), -(52992, 0, "'i'"), -(52993, 0, "'z'"), -(52994, 0, "'e'"), -(52995, 0, "' '"), -(52996, 0, "'='"), -(52997, 0, "' '"), -(52998, 0, "'C'"), -(52999, 0, "':'"), -(53000, 0, "':'"), -(53001, 0, "'get_usersize(_item: &Self::Item)'"), -(53014, 18, "'i'"), -(53015, 0, "'t'"), -(53016, 0, "'e'"), -(53017, 0, "'m'"), -(53019, 0, "';'"), -(53020, 0, "'n '"), -(53021, 8, "''"), -(52947, 0, "' '"), -(52948, 0, "'u'"), -(52949, 0, "'n'"), -(52950, 0, "'s'"), -(52951, 0, "'a'"), -(52952, 0, "'f'"), -(52953, 0, "'e'"), -(52954, 0, "' '"), -(52955, 0, "'{'"), -(52982, 0, "' '"), -(52983, 0, "'}'"), -(53032, 0, "' '"), -(53040, 0, "'F'"), -(53041, 0, "'('"), -(53042, 0, "'i'"), -(53043, 0, "'t'"), -(53044, 0, "'e'"), -(53045, 0, "'m'"), -(53046, 0, "','"), -(53047, 0, "' '"), -(53048, 0, "'o'"), -(53049, 0, "'f'"), -(53050, 0, "'f'"), -(53051, 0, "'s'"), -(53052, 0, "'e'"), -(53053, 0, "'t'"), -(53054, 0, "')'"), -(53055, 0, "';'"), -(53056, 0, "'n '"), -(53057, 8, "''"), -(53040, 1, "''"), -(53040, 0, "'m'"), -(53041, 0, "'o'"), -(53042, 0, "'d'"), -(53043, 0, "'i'"), -(53044, 0, "'f'"), -(53045, 0, "'y'"), -(53040, 6, "'modify_fn'"), -(53065, 0, "' '"), -(53073, 0, "'l'"), -(53074, 0, "'e'"), -(53075, 0, "'t'"), -(53076, 0, "' '"), -(53077, 0, "'n'"), -(53078, 0, "'e'"), -(53079, 0, "'w'"), -(53080, 0, "'_'"), -(53081, 0, "'s'"), -(53082, 0, "'i'"), -(53083, 0, "'z'"), -(53084, 0, "'e'"), -(53085, 0, "' '"), -(53086, 0, "'='"), -(53087, 0, "' '"), -(53088, 0, "'C::get_usersize(item);'"), -(53110, 0, "'n '"), -(53119, 0, "'c'"), -(53120, 0, "'u'"), -(53121, 0, "'r'"), -(53122, 0, "'s'"), -(53123, 0, "'o'"), -(53124, 0, "'r'"), -(53125, 0, "'.'"), -(53126, 0, "'update_offsets(height: usize, by: isize)'"), -(53141, 0, "'s'"), -(53142, 0, "'e'"), -(53143, 0, "'l'"), -(53144, 0, "'f'"), -(53145, 0, "'.'"), -(53146, 0, "'n'"), -(53147, 0, "'o'"), -(53148, 0, "'d'"), -(53149, 0, "'e'"), -(53150, 0, "'.'"), -(53157, 7, "''"), -(53151, 6, "'heights'"), -(53157, 1, "''"), -(53146, 4, "'h'"), -(53147, 0, "'e'"), -(53148, 0, "'a'"), -(53149, 0, "'d'"), -(53157, 0, "' '"), -(53158, 0, "'a'"), -(53159, 0, "'s'"), -(53160, 0, "' '"), -(53161, 0, "'u'"), -(53162, 0, "'s'"), -(53163, 0, "'i'"), -(53164, 0, "'z'"), -(53165, 0, "'e'"), -(53168, 9, "''"), -(53168, 0, "'n'"), -(53169, 0, "'e'"), -(53170, 0, "'w'"), -(53171, 0, "'_'"), -(53172, 0, "'s'"), -(53173, 0, "'i'"), -(53174, 0, "'z'"), -(53175, 0, "'e'"), -(53176, 0, "' '"), -(53177, 0, "'a'"), -(53178, 0, "'s'"), -(53179, 0, "' '"), -(53180, 0, "'u'"), -(53181, 0, "'i'"), -(53181, 1, "''"), -(53180, 1, "''"), -(53180, 0, "'i'"), -(53181, 0, "'s'"), -(53182, 0, "'i'"), -(53183, 0, "'z'"), -(53184, 0, "'e'"), -(53185, 0, "' '"), -(53186, 0, "'-'"), -(53187, 0, "' '"), -(53188, 0, "'o'"), -(53189, 0, "'l'"), -(53190, 0, "'d'"), -(53191, 0, "'_'"), -(53192, 0, "'s'"), -(53193, 0, "'i'"), -(53194, 0, "'e'"), -(53194, 1, "''"), -(53194, 0, "'z'"), -(53195, 0, "'e'"), -(53196, 0, "' '"), -(53197, 0, "'a'"), -(53198, 0, "'s'"), -(53199, 0, "' '"), -(53200, 0, "'i'"), -(53201, 0, "'s'"), -(53200, 2, "'isize'"), -(53206, 0, "';'"), -(53119, 0, "'// '"), -(53110, 0, "'n '"), -(53119, 0, "'let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);n'"), -(53110, 0, "'n '"), -(53111, 8, "''"), -(53081, 0, "'u'"), -(53002, 0, "'u'"), -(53083, 0, "'s'"), -(53003, 0, "'s'"), -(53085, 0, "'e'"), -(53004, 0, "'e'"), -(53087, 0, "'r'"), -(53005, 0, "'r'"), -(53315, 12, "' '"), -(53234, 16, "' '"), -(53197, 12, "' '"), -(53195, 1, "''"), -(53316, 27, "''"), -(53315, 1, "''"), -(53406, 0, "'n }'"), -(53306, 10, "''"), -(53305, 0, "';'"), -(50310, 0, "'n // I hate this.'"), -(50192, 28, "''"), -(50282, 0, "'n }'"), -(50192, 12, "' '"), -(50178, 14, "''"), -(50177, 0, "';'"), -(50315, 0, "'n }'"), -(50288, 12, "' '"), -(50274, 14, "''"), -(50305, 0, "'n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);'"), -(50179, 95, "''"), -(53407, 8, "'n '"), -(53408, 8, "'n '"), -(53408, 9, "' '"), -(53407, 9, "' '"), -(53416, 0, "'n '"), -(53425, 0, "'n '"), -(53417, 8, "''"), -(53426, 0, "'n notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });'"), -(53418, 8, "''"), -(53520, 12, "' '"), -(53481, 16, "' '"), -(53457, 16, "' '"), -(53419, 12, "' '"), -(53417, 1, "''"), -(52827, 0, "', mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker)'"), -(52849, 12, "' '"), -(52786, 0, "','"), -(52787, 0, "' '"), -(52788, 0, "'N'"), -(52788, 1, "''"), -(52787, 1, "''"), -(52786, 1, "''"), -(52785, 0, "'N'"), -(52786, 0, "'i'"), -(52787, 0, "'t'"), -(52787, 1, "''"), -(52786, 1, "''"), -(52786, 0, "'o'"), -(52787, 0, "'t'"), -(52788, 0, "'i'"), -(52789, 0, "'f'"), -(52790, 0, "'y'"), -(52791, 0, "','"), -(52792, 0, "' '"), -(52835, 20, "''"), -(52821, 0, "', mut notify: Notify'"), -(52907, 1, "''"), -(52907, 0, "','"), -(52857, 94, "' where Notify: FnMut(&[C::Item], ItemMarker), where F: FnOnce(&mut C::Item, usize) {'"), -(52908, 6, "''"), -(53503, 4, "'&'"), -(53504, 0, "'['"), -(53504, 1, "''"), -(53503, 1, "''"), -(53503, 0, "'i'"), -(53504, 0, "'t'"), -(53505, 0, "'e'"), -(53506, 0, "'m'"), -(53507, 0, "'.'"), -(53508, 0, "'f'"), -(53509, 0, "'r'"), -(53510, 0, "'o'"), -(53511, 0, "'m'"), -(53512, 0, "'('"), -(53513, 0, "')'"), -(53508, 4, "'i'"), -(53509, 0, "'n'"), -(53510, 0, "'t'"), -(53511, 0, "'o'"), -(53503, 0, "'s'"), -(53504, 0, "'l'"), -(53505, 0, "'i'"), -(53506, 0, "'c'"), -(53507, 0, "'e'"), -(53508, 0, "':'"), -(53509, 0, "':'"), -(53510, 0, "'f'"), -(53511, 0, "'r'"), -(53512, 0, "'o'"), -(53513, 0, "'m'"), -(53514, 0, "'_'"), -(53515, 0, "'r'"), -(53516, 0, "'e'"), -(53517, 0, "'f'"), -(53518, 0, "'('"), -(53523, 7, "''"), -(53523, 0, "')'"), -(53503, 0, "'s'"), -(53504, 0, "'t'"), -(53505, 0, "'d'"), -(53506, 0, "':'"), -(53507, 0, "':'"), -(53561, 1, "''"), -(53561, 0, "'c'"), -(53562, 0, "'u'"), -(53563, 0, "'r'"), -(53564, 0, "'s'"), -(53565, 0, "'o'"), -(53566, 0, "'r'"), -(53567, 0, "'.'"), -(53568, 0, "'h'"), -(53569, 0, "'e'"), -(53570, 0, "'r'"), -(53571, 0, "'e'"), -(53568, 4, "'here_ptr()'"), -(53487, 0, "'}'"), -(53198, 0, "'{'"), -(53488, 1, "''"), -(53198, 1, "''"), -(53487, 0, "'n '"), -(53496, 0, "'l'"), -(53497, 0, "'e'"), -(53498, 0, "'t'"), -(53499, 0, "' '"), -(53500, 0, "'e'"), -(53501, 0, "' '"), -(53502, 0, "'='"), -(53503, 0, "' '"), -(53504, 0, "'c'"), -(53505, 0, "'u'"), -(53506, 0, "'r'"), -(53507, 0, "'s'"), -(53508, 0, "'o'"), -(53509, 0, "'r'"), -(53510, 0, "'.'"), -(53511, 0, "'h'"), -(53512, 0, "'e'"), -(53513, 0, "'r'"), -(53514, 0, "'e'"), -(53511, 4, "'here_ptr()'"), -(53521, 0, "';'"), -(53596, 17, "'e'"), -(53496, 26, "''"), -(53198, 0, "'let e = cursor.here_ptr();'"), -(53198, 0, "' '"), -(53232, 0, "'n '"), -(53535, 4, "''"), -(53233, 8, "''"), -(53523, 4, "''"), -(53522, 1, "''"), -(53232, 0, "'n let new_usersize = C::get_usersize(item);'"), -(53148, 50, "''"), -(53182, 0, "'n modify_fn(item, offset);'"), -(53115, 33, "''"), -(53149, 0, "'n let old_usersize = C::get_usersize(item);'"), -(53065, 50, "''"), -(53099, 0, "'n let item = unsafe { cursor.current_item_mut() };'"), -(53008, 57, "''"), -(53642, 0, "'// '"), -(53607, 0, "'// '"), -(53587, 0, "'// '"), -(53531, 0, "'// '"), -(53098, 0, "' '"), -(53099, 0, "'a'"), -(53100, 0, "'s'"), -(53101, 0, "' '"), -(53102, 0, "'*'"), -(53103, 0, "'m'"), -(53104, 0, "'u'"), -(53105, 0, "'t'"), -(53106, 0, "' '"), -(53107, 0, "'_'"), -(53106, 2, "''"), -(53101, 5, "''"), -(53098, 3, "''"), -(53232, 0, "'n '"), -(53241, 0, "'l'"), -(53242, 0, "'e'"), -(53243, 0, "'t'"), -(53244, 0, "' '"), -(53245, 0, "'s'"), -(53246, 0, "'l'"), -(53247, 0, "'i'"), -(53248, 0, "'c'"), -(53249, 0, "'e'"), -(53250, 0, "' '"), -(53251, 0, "'='"), -(53252, 0, "' '"), -(53253, 0, "'std::slice::from_ref(item)'"), -(53279, 0, "';'"), -(53699, 3, "''"), -(53661, 3, "''"), -(53638, 3, "''"), -(53579, 3, "''"), -(53586, 26, "'s'"), -(53587, 0, "'l'"), -(53588, 0, "'i'"), -(53589, 0, "'c'"), -(53590, 0, "'e'"), -(53586, 5, "'std::slice::from_ref(item)'"), -(53233, 48, "''"), -(12701, 0, "' '"), -(12705, 0, "'_'"), -(12706, 0, "'m'"), -(12707, 0, "'a'"), -(12708, 0, "'r'"), -(12709, 0, "'k'"), -(12710, 0, "'e'"), -(12711, 0, "'r'"), -(12712, 0, "':'"), -(12713, 0, "' '"), -(12714, 0, "'P'"), -(12715, 0, "'h'"), -(12716, 0, "'n'"), -(12714, 3, "'PhantomData'"), -(12617, 0, "','"), -(12618, 0, "' '"), -(12618, 1, "''"), -(12617, 1, "''"), -(12604, 0, "'''"), -(12605, 0, "'a'"), -(12606, 0, "','"), -(12607, 0, "' '"), -(12729, 0, "'<'"), -(12730, 0, "'S'"), -(12731, 0, "'k'"), -(12732, 0, "'i'"), -(12733, 0, "'p'"), -(12730, 4, "'SkipList'"), -(12738, 0, "'<'"), -(12730, 0, "'&'"), -(12731, 0, "'''"), -(12732, 0, "'a'"), -(12733, 0, "' '"), -(12743, 0, "'C'"), -(12744, 0, "'>'"), -(12745, 0, "'>'"), -(12746, 0, "','"), -(12625, 124, "''"), -(13326, 0, "'n '"), -(13331, 0, "'n '"), -(13327, 4, "''"), -(13332, 0, "' // TODO: Add a phantom lifetime reference to the skip list root for safety.n _marker: PhantomData<&'a SkipList>,nn'"), -(13412, 4, "' '"), -(13412, 8, "' '"), -(13328, 8, "' '"), -(13451, 1, "''"), -(13450, 1, "''"), -(13328, 79, "''"), -(13327, 1, "''"), -(13327, 0, "'n '"), -(13332, 0, "'/'"), -(13333, 0, "'/'"), -(13334, 0, "' '"), -(13335, 0, "'T'"), -(13336, 0, "'h'"), -(13337, 0, "'e'"), -(13338, 0, "' '"), -(13339, 0, "'c'"), -(13340, 0, "'u'"), -(13341, 0, "'r'"), -(13342, 0, "'s'"), -(13343, 0, "'o'"), -(13344, 0, "'r'"), -(13345, 0, "' '"), -(13346, 0, "'c'"), -(13347, 0, "'a'"), -(13348, 0, "'n'"), -(13349, 0, "'''"), -(13350, 0, "'t'"), -(13351, 0, "' '"), -(13352, 0, "'o'"), -(13353, 0, "'u'"), -(13354, 0, "'t'"), -(13355, 0, "'l'"), -(13356, 0, "'i'"), -(13357, 0, "'v'"), -(13358, 0, "'e'"), -(13359, 0, "' '"), -(13360, 0, "'t'"), -(13361, 0, "'h'"), -(13362, 0, "'e'"), -(13363, 0, "' '"), -(13364, 0, "'s'"), -(13365, 0, "'k'"), -(13366, 0, "'i'"), -(13367, 0, "'p'"), -(13368, 0, "'l'"), -(13369, 0, "'i'"), -(13370, 0, "'s'"), -(13371, 0, "'t'"), -(13372, 0, "'.'"), -(13425, 0, "'''"), -(13426, 0, "'a'"), -(13427, 0, "','"), -(13428, 0, "' '"), -(13451, 0, "'''"), -(13452, 0, "'a'"), -(13453, 0, "' '"), -(13453, 1, "''"), -(13453, 0, "','"), -(13454, 0, "' '"), -(15936, 0, "'''"), -(15937, 0, "'a'"), -(15938, 0, "' '"), -(16158, 0, "'''"), -(16159, 0, "'a'"), -(16160, 0, "' '"), -(16487, 0, "'''"), -(16488, 0, "'a'"), -(16489, 0, "','"), -(16490, 0, "' '"), -(16527, 0, "'''"), -(16528, 0, "'a'"), -(16529, 0, "' '"), -(16529, 1, "''"), -(16529, 0, "','"), -(16530, 0, "' '"), -(17182, 0, "'''"), -(17183, 0, "'a'"), -(17184, 0, "','"), -(17185, 0, "' '"), -(17215, 0, "'''"), -(17216, 0, "'a'"), -(17217, 0, "','"), -(17218, 0, "' '"), -(17231, 0, "'''"), -(17232, 0, "'a'"), -(17233, 0, "','"), -(17234, 0, "' '"), -(17272, 0, "'''"), -(17273, 0, "'a'"), -(17274, 0, "','"), -(17275, 0, "' '"), -(27721, 0, "'n '"), -(27734, 0, "'_'"), -(27735, 0, "'m'"), -(27736, 0, "'a'"), -(27737, 0, "'r'"), -(27738, 0, "'k'"), -(27739, 0, "'e'"), -(27740, 0, "'r'"), -(27741, 0, "':'"), -(27742, 0, "' '"), -(27743, 0, "'P'"), -(27744, 0, "'h'"), -(27745, 0, "'a'"), -(27746, 0, "'n'"), -(27743, 4, "'PhantomData'"), -(27754, 0, "','"), -(29701, 0, "'n '"), -(29714, 0, "'_'"), -(29715, 0, "'m'"), -(29716, 0, "'a'"), -(29717, 0, "'r'"), -(29718, 0, "'k'"), -(29714, 5, "'_marker'"), -(29721, 0, "':'"), -(29722, 0, "' '"), -(29723, 0, "'P'"), -(29724, 0, "'h'"), -(29725, 0, "'a'"), -(29726, 0, "'n'"), -(29723, 4, "'PhantomData'"), -(53762, 0, "'n }'"), -(53751, 8, "' '"), -(53716, 12, "' '"), -(53696, 12, "' '"), -(53640, 8, "' '"), -(53639, 0, "' '"), -(53629, 10, "''"), -(53812, 0, "'n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);'"), -(53538, 91, "''"), -(53721, 0, "'n cursor.update_offsets(self.head.height as usize, usersize_delta);'"), -(53460, 78, "''"), -(53643, 0, "'n if usersize_delta != 0 {'"), -(53620, 20, "' '"), -(53573, 24, "' '"), -(53541, 24, "' '"), -(53473, 20, "' '"), -(53460, 12, "' '"), -(53427, 33, "''"), -(53571, 16, "' '"), -(53528, 20, "' '"), -(53500, 20, "' '"), -(53436, 16, "' '"), -(53427, 8, "' '"), -(53555, 12, "' '"), -(53516, 16, "' '"), -(53492, 16, "' '"), -(53432, 12, "' '"), -(53427, 4, "''"), -(53550, 0, "'n '"), -(53551, 8, "''"), -(52573, 0, "'// '"), -(52573, 3, "''"), -(52573, 0, "'// '"), -(52573, 3, "''"), -(12621, 0, "','"), -(12622, 0, "' '"), -(12623, 0, "'S'"), -(12624, 0, "':'"), -(12625, 0, "' '"), -(12626, 0, "'&'"), -(12626, 1, "''"), -(12625, 1, "''"), -(12624, 1, "''"), -(12623, 1, "''"), -(12622, 1, "''"), -(12621, 1, "''"), -(12621, 0, "','"), -(12622, 0, "' '"), -(12623, 0, "'S'"), -(12624, 0, "':'"), -(12625, 0, "' '"), -(12626, 0, "'S'"), -(12627, 0, "'k'"), -(12628, 0, "'i'"), -(12629, 0, "'p'"), -(12626, 4, "'SkipList'"), -(12634, 0, "'<'"), -(12635, 0, "'c'"), -(12636, 0, "'''"), -(12636, 1, "''"), -(12635, 1, "''"), -(12635, 0, "'C'"), -(12636, 0, "'>'"), -(12626, 0, "'&'"), -(12638, 0, "'''"), -(12626, 0, "'''"), -(12627, 12, "'a'"), -(12628, 1, "''"), -(12628, 0, "' '"), -(12629, 0, "'+'"), -(12630, 0, "' '"), -(12631, 0, "'S'"), -(12632, 0, "'k'"), -(12633, 0, "'i'"), -(12634, 0, "'p'"), -(12631, 4, "'SkipList'"), -(12639, 0, "'<'"), -(12640, 0, "'C'"), -(12641, 0, "'>'"), -(12628, 14, "''"), -(12625, 0, "' + SkipList'"), -(12639, 0, "' '"), -(12640, 0, "'+'"), -(12627, 1, "''"), -(12626, 1, "''"), -(12625, 1, "''"), -(12625, 0, "' '"), -(12625, 1, "''"), -(12625, 0, "' + '"), -(12639, 2, "''"), -(12625, 14, "''"), -(12628, 0, "' + SkipList'"), -(12628, 14, "''"), -(12625, 0, "' + SkipList'"), -(12639, 0, "' +'"), -(12625, 3, "''"), -(12625, 0, "' '"), -(12626, 0, "'&'"), -(12621, 22, "''"), -(13378, 0, "'// '"), -(12604, 4, "''"), -(13368, 1, "''"), -(13368, 0, "','"), -(13369, 0, "' '"), -(13370, 0, "'b'"), -(13371, 0, "'u'"), -(13372, 0, "'t'"), -(13373, 0, "' '"), -(13374, 0, "'d'"), -(13375, 0, "'o'"), -(13376, 0, "'i'"), -(13377, 0, "'n'"), -(13378, 0, "'g'"), -(13379, 0, "' '"), -(13380, 0, "'t'"), -(13381, 0, "'h'"), -(13382, 0, "'i'"), -(13383, 0, "'s'"), -(13384, 0, "' '"), -(13385, 0, "'m'"), -(13386, 0, "'a'"), -(13387, 0, "'k'"), -(13388, 0, "'e'"), -(13389, 0, "'s'"), -(13390, 0, "' '"), -(13391, 0, "'i'"), -(13392, 0, "'t'"), -(13393, 0, "' '"), -(13394, 0, "'t'"), -(13395, 0, "'r'"), -(13396, 0, "'i'"), -(13397, 0, "'c'"), -(13398, 0, "'k'"), -(13399, 0, "'y'"), -(13400, 0, "' '"), -(13401, 0, "'t'"), -(13402, 0, "'o'"), -(13403, 0, "' '"), -(13404, 0, "'a'"), -(13405, 0, "'p'"), -(13406, 0, "'s'"), -(13407, 0, "'s'"), -(13404, 4, "'p'"), -(13405, 0, "'a'"), -(13406, 0, "'s'"), -(13407, 0, "'s'"), -(13408, 0, "' '"), -(13409, 0, "'c'"), -(13410, 0, "'u'"), -(13411, 0, "'r'"), -(13412, 0, "'s'"), -(13413, 0, "'o'"), -(13414, 0, "'r'"), -(13415, 0, "'s'"), -(13416, 0, "' '"), -(13417, 0, "'a'"), -(13418, 0, "'r'"), -(13419, 0, "'o'"), -(13420, 0, "'u'"), -(13421, 0, "'n'"), -(13422, 0, "'d'"), -(13423, 0, "' '"), -(13424, 0, "'i'"), -(13425, 0, "'n'"), -(13426, 0, "'t'"), -(13427, 0, "' '"), -(13428, 0, "'h'"), -(13429, 0, "'e'"), -(13430, 0, "' '"), -(13424, 7, "'i'"), -(13425, 0, "'n'"), -(13426, 0, "' '"), -(13427, 0, "'t'"), -(13428, 0, "'h'"), -(13429, 0, "'e'"), -(13430, 0, "' '"), -(13431, 0, "'S'"), -(13432, 0, "'k'"), -(13433, 0, "'i'"), -(13434, 0, "'p'"), -(13435, 0, "'l'"), -(13436, 0, "'i'"), -(13437, 0, "'s'"), -(13438, 0, "'t'"), -(13439, 0, "' '"), -(13440, 0, "'t'"), -(13441, 0, "'y'"), -(13442, 0, "'p'"), -(13443, 0, "'e'"), -(13444, 0, "'.'"), -(13445, 0, "' '"), -(13446, 0, "'I'"), -(13447, 0, "'''"), -(13446, 2, "'T'"), -(13447, 0, "'h'"), -(13448, 0, "'e'"), -(13449, 0, "'r'"), -(13450, 0, "'e'"), -(13451, 0, "'''"), -(13452, 0, "'s'"), -(13453, 0, "' '"), -(13454, 0, "'p'"), -(13455, 0, "'r'"), -(13456, 0, "'o'"), -(13457, 0, "'b'"), -(13458, 0, "'a'"), -(13459, 0, "'b'"), -(13460, 0, "'l'"), -(13461, 0, "'y'"), -(13462, 0, "' '"), -(13463, 0, "'a'"), -(13464, 0, "' '"), -(13465, 0, "'w'"), -(13466, 0, "'a'"), -(13467, 0, "'y'"), -(13468, 0, "' '"), -(13469, 0, "'o'"), -(13470, 0, "'u'"), -(13471, 0, "'t'"), -(13472, 0, "' '"), -(13473, 0, "'o'"), -(13474, 0, "'f'"), -(13475, 0, "' '"), -(13476, 0, "'t'"), -(13477, 0, "'h'"), -(13478, 0, "'i'"), -(13479, 0, "'s'"), -(13480, 0, "' '"), -(13481, 0, "'m'"), -(13482, 0, "'e'"), -(13483, 0, "'s'"), -(13484, 0, "'s'"), -(13485, 0, "','"), -(13486, 0, "' '"), -(13487, 0, "'b'"), -(13488, 0, "'u'"), -(13489, 0, "'t'"), -(13490, 0, "' '"), -(13491, 0, "'I'"), -(13492, 0, "'''"), -(13493, 0, "'m'"), -(13494, 0, "' '"), -(13495, 0, "'n'"), -(13496, 0, "'o'"), -(13497, 0, "'t'"), -(13498, 0, "' '"), -(13499, 0, "'g'"), -(13500, 0, "'o'"), -(13501, 0, "'o'"), -(13502, 0, "'d'"), -(13503, 0, "' '"), -(13504, 0, "'e'"), -(13505, 0, "'n'"), -(13506, 0, "'o'"), -(13507, 0, "'u'"), -(13508, 0, "'g'"), -(13509, 0, "'h'"), -(13510, 0, "' '"), -(13511, 0, "'a'"), -(13512, 0, "'t'"), -(13513, 0, "' '"), -(13514, 0, "'R'"), -(13515, 0, "'u'"), -(13516, 0, "'s'"), -(13517, 0, "'t'"), -(13518, 0, "' '"), -(13514, 5, "'r'"), -(13515, 0, "'u'"), -(13516, 0, "'s'"), -(13517, 0, "'t'"), -(13518, 0, "' '"), -(13519, 0, "'t'"), -(13520, 0, "'o'"), -(13521, 0, "' '"), -(13522, 0, "'f'"), -(13523, 0, "'i'"), -(13524, 0, "'g'"), -(13525, 0, "'u'"), -(13526, 0, "'r'"), -(13527, 0, "'e'"), -(13528, 0, "' '"), -(13529, 0, "'i'"), -(13530, 0, "'t'"), -(13531, 0, "' '"), -(13532, 0, "'o'"), -(13533, 0, "'u'"), -(13534, 0, "'t'"), -(13535, 0, "'.'"), -(13536, 0, "'n '"), -(13537, 4, "''"), -(13331, 0, "'T'"), -(13332, 0, "'O'"), -(13333, 0, "'D'"), -(13334, 0, "'O'"), -(13335, 0, "':'"), -(13336, 0, "' '"), -(13324, 218, "' // TODO: The cursor can't outlive the skiplist, but doing this makes itn // tricky to pass cursors around in the Skiplist type. There's probably an // way out of this mess, but I'm not good enough at rust to figure it out.'"), -(13556, 1, "''"), -(13640, 1, "''"), -(13639, 1, "''"), -(13638, 1, "''"), -(13637, 1, "''"), -(16712, 1, "''"), -(16711, 1, "''"), -(16710, 1, "''"), -(16709, 1, "''"), -(17453, 1, "''"), -(17396, 1, "''"), -(17451, 1, "''"), -(17395, 1, "''"), -(17449, 1, "''"), -(17394, 1, "''"), -(17447, 1, "''"), -(17393, 1, "''"), -(27904, 0, "'// '"), -(29887, 0, "'// '"), -(53603, 124, "''"), -(53816, 0, "'n notify(std::slice::from_ref(item), ItemMarker {n ptr: e,n _phantom: PhantomData,n });n'"), -(13614, 1, "''"), -(13613, 1, "''"), -(13612, 1, "''"), -(13611, 1, "''"), -(16115, 1, "''"), -(16115, 0, "'s'"), -(16116, 0, "'t'"), -(16117, 0, "'a'"), -(16118, 0, "'t'"), -(16119, 0, "'i'"), -(16120, 0, "'c'"), -(16342, 1, "''"), -(16342, 0, "'s'"), -(16343, 0, "'t'"), -(16344, 0, "'a'"), -(16345, 0, "'t'"), -(16346, 0, "'i'"), -(16347, 0, "'c'"), -(16342, 6, "''"), -(16342, 0, "'a'"), -(16115, 6, "''"), -(16115, 0, "'a'"), -(13611, 0, "''a, '"), -(52155, 0, "'p'"), -(52156, 0, "'u'"), -(52157, 0, "'b'"), -(52158, 0, "' '"), -(17405, 4, "''"), -(17360, 4, "''"), -(16669, 4, "''"), -(11778, 5885, "''"), -(11778, 0, "'n/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],nn // TODO: The cursor can't outlive the skiplist, but doing this makes itn // tricky to pass cursors around in the Skiplist type. There's probably an // way out of this mess, but I'm not good enough at rust to figure it out.n // _marker: PhantomData<&'a SkipList>,n}nnimpl<'a, C: ListConfig> Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &'a C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn unsafe fn current_item_mut(&mut self) -> &'a mut C::Item {n let node = &mut *self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &mut *(node.items[self.local_index].as_mut_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}n'"), -(1835, 0, "'// '"), -(1790, 1, "''"), -(1789, 1, "''"), -(1788, 1, "''"), -(1787, 1, "''"), -(36084, 0, "'// '"), -(39905, 0, "'// '"), -(51076, 0, "'// '"), -(53905, 0, "'// '"), -(30972, 0, "'u'"), -(30973, 0, "'n'"), -(30974, 0, "'s'"), -(30975, 0, "'a'"), -(30976, 0, "'f'"), -(30977, 0, "'e'"), -(30978, 0, "' '"), -(30972, 7, "''"), -(30976, 0, "'u'"), -(30977, 0, "'n'"), -(30978, 0, "'s'"), -(30979, 0, "'a'"), -(30980, 0, "'f'"), -(30981, 0, "'e'"), -(30982, 0, "' '"), -(31183, 17, "''"), -(31754, 12, "' '"), -(31661, 12, "' '"), -(31646, 12, "' '"), -(31628, 16, "' '"), -(31575, 20, "' '"), -(31550, 16, "' '"), -(31523, 20, "' '"), -(31480, 20, "' '"), -(31437, 20, "' '"), -(31366, 16, "' '"), -(31295, 12, "' '"), -(31255, 12, "' '"), -(31216, 12, "' '"), -(31183, 12, "' '"), -(31752, 10, "''"), -(30967, 0, "'n '"), -(30972, 0, "'/'"), -(30973, 0, "'/'"), -(30974, 0, "'/'"), -(30975, 0, "' '"), -(30976, 0, "'S'"), -(30977, 0, "'A'"), -(30978, 0, "'F'"), -(30979, 0, "'E'"), -(30980, 0, "'T'"), -(30981, 0, "'Y'"), -(30982, 0, "':'"), -(30983, 0, "' '"), -(30984, 0, "'T'"), -(30985, 0, "'h'"), -(30986, 0, "'e'"), -(30987, 0, "' '"), -(30988, 0, "'m'"), -(30988, 1, "''"), -(30984, 4, "'S'"), -(30985, 0, "'e'"), -(30986, 0, "'l'"), -(30987, 0, "'f'"), -(30988, 0, "' '"), -(30989, 0, "'m'"), -(30990, 0, "'u'"), -(30991, 0, "'s'"), -(30992, 0, "'t'"), -(30993, 0, "' '"), -(30994, 0, "'o'"), -(30995, 0, "'u'"), -(30996, 0, "'t'"), -(30997, 0, "'l'"), -(30998, 0, "'a'"), -(30999, 0, "'s'"), -(31000, 0, "' '"), -(31001, 0, "'t'"), -(31001, 1, "''"), -(31000, 1, "''"), -(31000, 0, "'t'"), -(31001, 0, "' '"), -(31002, 0, "'t'"), -(31003, 0, "'h'"), -(31004, 0, "'e'"), -(31005, 0, "' '"), -(31006, 0, "'l'"), -(31007, 0, "'i'"), -(31008, 0, "'f'"), -(31009, 0, "'e'"), -(31010, 0, "'t'"), -(31011, 0, "'i'"), -(31012, 0, "'m'"), -(31013, 0, "'e'"), -(31006, 8, "'m'"), -(31007, 0, "'a'"), -(31008, 0, "'r'"), -(31009, 0, "'k'"), -(31010, 0, "'e'"), -(31011, 0, "'r'"), -(31012, 0, "' '"), -(31013, 0, "'a'"), -(31014, 0, "'n'"), -(31015, 0, "'d'"), -(31016, 0, "' '"), -(31017, 0, "'n'"), -(31018, 0, "'o'"), -(31019, 0, "'t'"), -(31020, 0, "' '"), -(31021, 0, "'h'"), -(31022, 0, "'a'"), -(31023, 0, "'v'"), -(31024, 0, "'e'"), -(31025, 0, "' '"), -(31026, 0, "'b'"), -(31027, 0, "'e'"), -(31028, 0, "'e'"), -(31029, 0, "'n'"), -(31030, 0, "' '"), -(31031, 0, "'m'"), -(31032, 0, "'o'"), -(31033, 0, "'v'"), -(31034, 0, "'e'"), -(31035, 0, "'d'"), -(31036, 0, "' '"), -(31037, 0, "'s'"), -(31038, 0, "'i'"), -(31039, 0, "'n'"), -(31040, 0, "'c'"), -(31041, 0, "'e'"), -(31042, 0, "' '"), -(31043, 0, "'t'"), -(31044, 0, "'h'"), -(31045, 0, "'e'"), -(31046, 0, "' '"), -(31047, 0, "'m'"), -(31048, 0, "'a'"), -(31049, 0, "'r'"), -(31050, 0, "'k'"), -(31051, 0, "'e'"), -(31052, 0, "'r'"), -(31053, 0, "' '"), -(31054, 0, "'w'"), -(31055, 0, "'a'"), -(31056, 0, "'s'"), -(31057, 0, "' '"), -(31058, 0, "'c'"), -(31059, 0, "'r'"), -(31060, 0, "'e'"), -(31061, 0, "'a'"), -(31062, 0, "'t'"), -(31063, 0, "'e'"), -(31064, 0, "'d'"), -(31065, 0, "'.'"), -(31066, 0, "' '"), -(31067, 0, "'S'"), -(31068, 0, "'e'"), -(31069, 0, "'l'"), -(31070, 0, "'f'"), -(31071, 0, "' '"), -(31072, 0, "'s'"), -(31073, 0, "'h'"), -(31074, 0, "'o'"), -(31075, 0, "'u'"), -(31076, 0, "'l'"), -(31077, 0, "'d'"), -(31078, 0, "' '"), -(31079, 0, "'r'"), -(31080, 0, "'e'"), -(31081, 0, "'a'"), -(31082, 0, "'l'"), -(31083, 0, "'l'"), -(31084, 0, "'y'"), -(31085, 0, "' '"), -(31086, 0, "'b'"), -(31087, 0, "'e'"), -(31088, 0, "' '"), -(31089, 0, "'P'"), -(31090, 0, "'i'"), -(31091, 0, "'n'"), -(31092, 0, "'<'"), -(31093, 0, "'*'"), -(31093, 1, "''"), -(31093, 0, "'&'"), -(31093, 1, "''"), -(31093, 0, "'>'"), -(31094, 0, "'!'"), -(30968, 127, "' /// SAFETY: Self must outlast the marker and not have been moved since then /// marker was created. Self should really be Pin<>!'"), -(1764, 0, "'n'"), -(1765, 0, "'#'"), -(1766, 0, "'['"), -(1767, 0, "'d'"), -(1768, 0, "'e'"), -(1769, 0, "'r'"), -(1770, 0, "'i'"), -(1771, 0, "'v'"), -(1772, 0, "'e'"), -(1773, 0, "'('"), -(1774, 0, "'C'"), -(1774, 1, "'Clone'"), -(1779, 0, "','"), -(1780, 0, "' '"), -(1780, 1, "''"), -(1780, 0, "' '"), -(1781, 0, "'C'"), -(1782, 0, "'o'"), -(1783, 0, "'p'"), -(1784, 0, "'y'"), -(1785, 0, "')'"), -(1786, 0, "']'"), -(53052, 0, "'// '"), -(53135, 0, "'n '"), -(53144, 0, "'s'"), -(53145, 0, "'e'"), -(53146, 0, "'l'"), -(53147, 0, "'f'"), -(53148, 0, "'.'"), -(53149, 0, "'m'"), -(53150, 0, "'o'"), -(53151, 0, "'d'"), -(53152, 0, "'i'"), -(53153, 0, "'f'"), -(53149, 5, "'modify_at(userpos: usize, mut notify: Notify, modify_fn: F)'"), -(53159, 14, "'s'"), -(53160, 0, "'t'"), -(53161, 0, "'a'"), -(53162, 0, "'r'"), -(53163, 0, "'t'"), -(53164, 0, "'_'"), -(53165, 0, "'u'"), -(53166, 0, "'s'"), -(53167, 0, "'e'"), -(53168, 0, "'r'"), -(53169, 0, "'p'"), -(53170, 0, "'o'"), -(53171, 0, "'s'"), -(53174, 18, "'S'"), -(53175, 0, "'e'"), -(53176, 0, "'l'"), -(53177, 0, "'f'"), -(53178, 0, "':'"), -(53179, 0, "':'"), -(53180, 0, "'N'"), -(53180, 1, "''"), -(53180, 0, "'n'"), -(53181, 0, "'o'"), -(53180, 2, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(53190, 18, "''"), -(53190, 1, "''"), -(53189, 1, "''"), -(53189, 24, "''"), -(53191, 12, "''"), -(53191, 0, "'|'"), -(53192, 0, "'i'"), -(53193, 0, "'t'"), -(53194, 0, "'e'"), -(53195, 0, "'m'"), -(53196, 0, "','"), -(53197, 0, "' '"), -(53198, 0, "'o'"), -(53199, 0, "'f'"), -(53200, 0, "'f'"), -(53201, 0, "'s'"), -(53202, 0, "'e'"), -(53203, 0, "'t'"), -(53204, 0, "'|'"), -(53205, 0, "' '"), -(53206, 0, "'{'"), -(53207, 0, "'n '"), -(53220, 0, "'n '"), -(53221, 8, "' }'"), -(53220, 0, "'a'"), -(53221, 0, "'s'"), -(53222, 0, "'s'"), -(53220, 3, "'assert_eq!'"), -(53230, 0, "'('"), -(53231, 0, "'o'"), -(53232, 0, "'f'"), -(53233, 0, "'f'"), -(53234, 0, "'s'"), -(53235, 0, "'e'"), -(53236, 0, "'t'"), -(53237, 0, "','"), -(53238, 0, "' '"), -(53239, 0, "'0'"), -(53240, 0, "','"), -(53241, 0, "' '"), -(53242, 0, "'''"), -(53243, 0, "'r'"), -(53244, 0, "'e'"), -(53245, 0, "'p'"), -(53246, 0, "'l'"), -(53247, 0, "'a'"), -(53248, 0, "'c'"), -(53249, 0, "'e'"), -(53250, 0, "'_'"), -(53251, 0, "'a'"), -(53252, 0, "'t'"), -(53253, 0, "' '"), -(53254, 0, "'c'"), -(53255, 0, "'a'"), -(53256, 0, "'n'"), -(53257, 0, "'n'"), -(53258, 0, "'o'"), -(53259, 0, "'t'"), -(53260, 0, "' '"), -(53254, 7, "'m'"), -(53255, 0, "'u'"), -(53256, 0, "'s'"), -(53257, 0, "'t'"), -(53258, 0, "' '"), -(53259, 0, "'m'"), -(53260, 0, "'o'"), -(53261, 0, "'d'"), -(53262, 0, "'i'"), -(53263, 0, "'f'"), -(53264, 0, "'y'"), -(53265, 0, "' '"), -(53266, 0, "'t'"), -(53267, 0, "'h'"), -(53268, 0, "'e'"), -(53269, 0, "' '"), -(53270, 0, "'e'"), -(53271, 0, "'n'"), -(53272, 0, "'t'"), -(53273, 0, "'i'"), -(53274, 0, "'r'"), -(53275, 0, "'e'"), -(53276, 0, "' '"), -(53277, 0, "'i'"), -(53278, 0, "'t'"), -(53279, 0, "'e'"), -(53280, 0, "'m'"), -(53281, 0, "'''"), -(53282, 0, "')'"), -(53283, 0, "';'"), -(53284, 0, "'n '"), -(53297, 0, "'*'"), -(53298, 0, "'i'"), -(53299, 0, "'t'"), -(53300, 0, "'e'"), -(53301, 0, "'m'"), -(53302, 0, "' '"), -(53303, 0, "' '"), -(53303, 1, "''"), -(53303, 0, "'='"), -(53304, 0, "' '"), -(53136, 180, "''"), -(53135, 1, "''"), -(53052, 3, "''"), -(51850, 0, "'// '"), -(51920, 0, "'n '"), -(51929, 0, "'n '"), -(51921, 8, "''"), -(51930, 0, "' self.modify_at(start_userpos, Self::no_notify, |item, offset| {n assert_eq!(offset, 0, 'replace_at must modify the entire item');n *item = n })'"), -(51922, 16, "' '"), -(51922, 8, "' '"), -(51922, 16, "' '"), -(52100, 0, "'// '"), -(52079, 0, "'// '"), -(52002, 0, "'// '"), -(51930, 0, "'// '"), -(51850, 3, "''"), -(54399, 1, "''"), -(54399, 0, "'n '"), -(54404, 0, "'where Notify: FnMut(&[C::Item], ItemMarker), '"), -(54452, 6, "''"), -(54383, 0, "'mut notify: Notify, '"), -(54349, 0, "'N'"), -(54350, 0, "'o'"), -(54351, 0, "'t'"), -(54352, 0, "'i'"), -(54353, 0, "'f'"), -(54354, 0, "'y'"), -(54355, 0, "','"), -(54356, 0, "' '"), -(54391, 19, "''"), -(54390, 1, "''"), -(54406, 0, "'mut notify: Notify,'"), -(54424, 1, "''"), -(54406, 0, "','"), -(54407, 0, "' '"), -(55993, 0, "','"), -(55994, 0, "' '"), -(55995, 0, "'S'"), -(55996, 0, "'e'"), -(55997, 0, "'l'"), -(55998, 0, "'f'"), -(55999, 0, "':'"), -(56000, 0, "':'"), -(56001, 0, "'n'"), -(56002, 0, "'o'"), -(56001, 2, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(56011, 18, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 1, "''"), -(56011, 17, "''"), -(56010, 1, "''"), -(56010, 1, "''"), -(55784, 20, "'&'"), -(55608, 20, "'&'"), -(55399, 20, "'&'"), -(54847, 20, "'&'"), -(55728, 0, "'n'"), -(55571, 0, "'n'"), -(55381, 0, "'n'"), -(54848, 0, "'n'"), -(55732, 0, "'o'"), -(55574, 0, "'o'"), -(55383, 0, "'o'"), -(54849, 0, "'o'"), -(55736, 0, "'t'"), -(55577, 0, "'t'"), -(55385, 0, "'t'"), -(54850, 0, "'t'"), -(55740, 0, "'i'"), -(55580, 0, "'i'"), -(55387, 0, "'i'"), -(54851, 0, "'i'"), -(55744, 0, "'f'"), -(55583, 0, "'f'"), -(55389, 0, "'f'"), -(54852, 0, "'f'"), -(55748, 0, "'y'"), -(55586, 0, "'y'"), -(55391, 0, "'y'"), -(54853, 0, "'y'"), -(55746, 0, "'m'"), -(55583, 0, "'m'"), -(55387, 0, "'m'"), -(54848, 0, "'m'"), -(55750, 0, "'u'"), -(55586, 0, "'u'"), -(55389, 0, "'u'"), -(54849, 0, "'u'"), -(55754, 0, "'t'"), -(55589, 0, "'t'"), -(55391, 0, "'t'"), -(54850, 0, "'t'"), -(55758, 0, "' '"), -(55592, 0, "' '"), -(55393, 0, "' '"), -(54851, 0, "' '"), -(21405, 0, "','"), -(21406, 0, "' '"), -(21407, 0, "'S'"), -(21408, 0, "'e'"), -(21409, 0, "'l'"), -(21410, 0, "'f'"), -(21411, 0, "':'"), -(21412, 0, "':'"), -(21413, 0, "'n'"), -(21414, 0, "'o'"), -(21413, 2, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(21422, 44, "''"), -(56641, 0, "'n '"), -(56646, 0, "'n '"), -(56642, 4, "''"), -(56647, 0, "'p'"), -(56648, 0, "'u'"), -(56649, 0, "'b'"), -(56650, 0, "' '"), -(56651, 0, "'f'"), -(56652, 0, "'n'"), -(56653, 0, "' '"), -(56654, 0, "'e'"), -(56655, 0, "'i'"), -(56656, 0, "'d'"), -(56656, 1, "''"), -(56655, 1, "''"), -(56655, 0, "'d'"), -(56656, 0, "'i'"), -(56657, 0, "'t'"), -(56658, 0, "'('"), -(56659, 0, "'&'"), -(56660, 0, "'m'"), -(56661, 0, "'u'"), -(56662, 0, "'t'"), -(56663, 0, "' '"), -(56664, 0, "'s'"), -(56665, 0, "'e'"), -(56666, 0, "'l'"), -(56667, 0, "'f'"), -(56668, 0, "')'"), -(56668, 0, "','"), -(56669, 0, "' '"), -(56658, 0, "'<'"), -(56659, 0, "'R'"), -(56660, 0, "'>'"), -(56674, 0, "' '"), -(56675, 0, "'-'"), -(56676, 0, "'>'"), -(56677, 0, "' '"), -(56678, 0, "'R'"), -(56659, 0, "'F'"), -(56660, 0, "','"), -(56661, 0, "' '"), -(56676, 0, "'f'"), -(56677, 0, "':'"), -(56678, 0, "' '"), -(56679, 0, "'F'"), -(56686, 0, "' '"), -(56686, 1, "''"), -(56686, 0, "'n '"), -(56691, 0, "'w'"), -(56692, 0, "'h'"), -(56693, 0, "'e'"), -(56694, 0, "'r'"), -(56695, 0, "'e'"), -(56696, 0, "' '"), -(56697, 0, "'F'"), -(56698, 0, "':'"), -(56699, 0, "' '"), -(56700, 0, "'F'"), -(56701, 0, "'n'"), -(56702, 0, "'O'"), -(56703, 0, "'n'"), -(56700, 4, "'FnOnce'"), -(56706, 0, "'('"), -(56707, 0, "'E'"), -(56708, 0, "'d'"), -(56709, 0, "'i'"), -(56710, 0, "'t'"), -(56711, 0, "'<'"), -(56712, 0, "'C'"), -(56713, 0, "'>'"), -(56714, 0, "')'"), -(56707, 0, "'&'"), -(56708, 0, "'m'"), -(56709, 0, "'u'"), -(56710, 0, "'t'"), -(56711, 0, "' '"), -(56720, 0, "' '"), -(56721, 0, "'{'"), -(56722, 0, "'n '"), -(56731, 0, "'n '"), -(56723, 8, "''"), -(56724, 8, "' }'"), -(56723, 0, "' '"), -(56723, 8, "''"), -(56675, 0, "' '"), -(56676, 0, "'u'"), -(56677, 0, "'s'"), -(56678, 0, "'e'"), -(56679, 0, "'r'"), -(56680, 0, "'p'"), -(56681, 0, "'o'"), -(56682, 0, "'s'"), -(56683, 0, "':'"), -(56684, 0, "' '"), -(56685, 0, "'u'"), -(56686, 0, "'s'"), -(56687, 0, "'i'"), -(56688, 0, "'z'"), -(56689, 0, "'e'"), -(56690, 0, "','"), -(57754, 0, "'n'"), -(57755, 0, "'n'"), -(57756, 0, "'n'"), -(57757, 0, "'n'"), -(57758, 0, "'n'"), -(57755, 0, "'s'"), -(57756, 0, "'t'"), -(57757, 0, "'r'"), -(57758, 0, "'u'"), -(57759, 0, "'c'"), -(57760, 0, "'t'"), -(57761, 0, "' '"), -(57762, 0, "'E'"), -(57763, 0, "'d'"), -(57764, 0, "'i'"), -(57765, 0, "'t'"), -(57766, 0, "' '"), -(57755, 0, "'p'"), -(57756, 0, "'u'"), -(57757, 0, "'b'"), -(57758, 0, "' '"), -(57771, 0, "'{'"), -(57772, 0, "'n '"), -(57777, 0, "'n '"), -(57773, 4, "''"), -(57774, 4, "'}'"), -(57773, 0, "' '"), -(57777, 0, "'&'"), -(57777, 1, "''"), -(57777, 0, "'l'"), -(57778, 0, "'i'"), -(57779, 0, "'s'"), -(57780, 0, "'t'"), -(57781, 0, "':'"), -(57782, 0, "' '"), -(57783, 0, "'&'"), -(57784, 0, "'m'"), -(57785, 0, "'u'"), -(57786, 0, "'t'"), -(57787, 0, "' '"), -(57770, 0, "'<'"), -(57771, 0, "'''"), -(57772, 0, "'a'"), -(57773, 0, "'>'"), -(57788, 0, "'''"), -(57789, 0, "'a'"), -(57790, 0, "' '"), -(57795, 0, "'C'"), -(57796, 0, "'R'"), -(57797, 0, "'D'"), -(57798, 0, "'T'"), -(57795, 4, "'S'"), -(57796, 0, "'k'"), -(57797, 0, "'i'"), -(57798, 0, "'l'"), -(57795, 4, "'SkipList'"), -(57773, 0, "','"), -(57774, 0, "' '"), -(57775, 0, "'C'"), -(57776, 0, "':'"), -(57777, 0, "' '"), -(57778, 0, "'L'"), -(57779, 0, "'i'"), -(57780, 0, "'s'"), -(57778, 3, "'ListConfig'"), -(57818, 0, "'<'"), -(57819, 0, "'C'"), -(57820, 0, "'>'"), -(57821, 0, "','"), -(57822, 0, "'n '"), -(57827, 0, "'c'"), -(57828, 0, "'u'"), -(57829, 0, "'r'"), -(57830, 0, "'s'"), -(57831, 0, "'o'"), -(57832, 0, "'r'"), -(57833, 0, "':'"), -(57834, 0, "' '"), -(57835, 0, "'C'"), -(57836, 0, "'u'"), -(57837, 0, "'r'"), -(57835, 3, "'Cursor'"), -(57841, 0, "'<'"), -(57842, 0, "'C'"), -(57843, 0, "'>'"), -(57844, 0, "','"), -(57845, 0, "'n '"), -(57850, 0, "'l'"), -(57851, 0, "'o'"), -(57852, 0, "'c'"), -(57853, 0, "'a'"), -(57854, 0, "'l'"), -(57855, 0, "'_'"), -(57856, 0, "'o'"), -(57857, 0, "'f'"), -(57858, 0, "'f'"), -(57859, 0, "'s'"), -(57860, 0, "'e'"), -(57861, 0, "'t'"), -(57862, 0, "':'"), -(57863, 0, "' '"), -(57864, 0, "'u'"), -(57865, 0, "'s'"), -(57866, 0, "'i'"), -(57867, 0, "'z'"), -(57868, 0, "'e'"), -(57869, 0, "','"), -(57870, 0, "' '"), -(57871, 0, "'/'"), -(57872, 0, "'/'"), -(57873, 0, "' '"), -(57874, 0, "'O'"), -(57875, 0, "'f'"), -(57876, 0, "'f'"), -(57877, 0, "'s'"), -(57878, 0, "'e'"), -(57879, 0, "'t'"), -(57880, 0, "' '"), -(57881, 0, "'i'"), -(57882, 0, "'n'"), -(57883, 0, "'t'"), -(57884, 0, "'o'"), -(57885, 0, "' '"), -(57886, 0, "'t'"), -(57887, 0, "'h'"), -(57888, 0, "'e'"), -(57889, 0, "' '"), -(57890, 0, "'c'"), -(57891, 0, "'u'"), -(57892, 0, "'r'"), -(57893, 0, "'r'"), -(57894, 0, "'e'"), -(57895, 0, "'n'"), -(57896, 0, "'t'"), -(57897, 0, "' '"), -(57898, 0, "'i'"), -(57899, 0, "'t'"), -(57900, 0, "'e'"), -(57901, 0, "'m'"), -(57902, 0, "'.'"), -(57907, 0, "'i'"), -(57908, 0, "'m'"), -(57909, 0, "'p'"), -(57910, 0, "'l'"), -(57911, 0, "' '"), -(57912, 0, "'E'"), -(57913, 0, "'d'"), -(57914, 0, "'i'"), -(57915, 0, "'t'"), -(57911, 0, "'<'"), -(57912, 0, "'''"), -(57913, 0, "'a'"), -(57914, 0, "','"), -(57915, 0, "' '"), -(57916, 0, "'C'"), -(57917, 0, "':'"), -(57918, 0, "' '"), -(57919, 0, "'L'"), -(57920, 0, "'i'"), -(57921, 0, "'s'"), -(57922, 0, "'t'"), -(57919, 4, "'ListConfig'"), -(57929, 0, "'>'"), -(57935, 0, "'<'"), -(57936, 0, "'''"), -(57937, 0, "'a'"), -(57938, 0, "','"), -(57939, 0, "' '"), -(57940, 0, "'C'"), -(57941, 0, "'>'"), -(57942, 0, "' '"), -(57943, 0, "'{'"), -(57944, 0, "'n '"), -(57949, 0, "'n '"), -(57945, 4, "''"), -(57946, 4, "'}'"), -(56739, 0, "' '"), -(56747, 0, "'l'"), -(56748, 0, "'e'"), -(56749, 0, "'t'"), -(56750, 0, "' '"), -(56751, 0, "'e'"), -(56752, 0, "'d'"), -(56753, 0, "'i'"), -(56754, 0, "'t'"), -(56755, 0, "' '"), -(56756, 0, "'='"), -(56757, 0, "' '"), -(56758, 0, "'E'"), -(56759, 0, "'d'"), -(56760, 0, "'i'"), -(56761, 0, "'t'"), -(56762, 0, "' '"), -(56763, 0, "'{'"), -(56764, 0, "'n '"), -(56765, 12, "' }'"), -(56764, 0, "'n '"), -(56777, 0, "'l'"), -(56778, 0, "'i'"), -(56779, 0, "'s'"), -(56780, 0, "'t'"), -(56781, 0, "':'"), -(56782, 0, "' '"), -(56783, 0, "'s'"), -(56784, 0, "'e'"), -(56785, 0, "'l'"), -(56786, 0, "'f'"), -(56787, 0, "','"), -(56788, 0, "'n '"), -(56801, 0, "'c'"), -(56802, 0, "'u'"), -(56803, 0, "'r'"), -(56804, 0, "'s'"), -(56805, 0, "'o'"), -(56806, 0, "'r'"), -(56807, 0, "':'"), -(56808, 0, "' '"), -(56809, 0, "'c'"), -(56810, 0, "'u'"), -(56811, 0, "'r'"), -(56812, 0, "'s'"), -(56809, 4, "'t'"), -(56810, 0, "'h'"), -(56811, 0, "'i'"), -(56812, 0, "'s'"), -(56813, 0, "'.'"), -(56814, 0, "'c'"), -(56809, 6, "'s'"), -(56810, 0, "'e'"), -(56811, 0, "'l'"), -(56812, 0, "'f'"), -(56813, 0, "'.'"), -(56814, 0, "'c'"), -(56815, 0, "'u'"), -(56816, 0, "'r'"), -(56816, 1, "''"), -(56815, 1, "''"), -(56738, 0, "'n '"), -(56747, 0, "'l'"), -(56748, 0, "'e'"), -(56749, 0, "'t'"), -(56750, 0, "' '"), -(56751, 0, "'('"), -(56752, 0, "'c'"), -(56753, 0, "'u'"), -(56754, 0, "'r'"), -(56755, 0, "'s'"), -(56756, 0, "'o'"), -(56757, 0, "'r'"), -(56758, 0, "','"), -(56759, 0, "' '"), -(56760, 0, "'o'"), -(56761, 0, "'f'"), -(56762, 0, "'f'"), -(56763, 0, "'s'"), -(56764, 0, "'e'"), -(56765, 0, "'t'"), -(56766, 0, "')'"), -(56767, 0, "' '"), -(56768, 0, "'='"), -(56769, 0, "' '"), -(56770, 0, "'s'"), -(56771, 0, "'e'"), -(56772, 0, "'l'"), -(56773, 0, "'f'"), -(56774, 0, "'.'"), -(56775, 0, "'i'"), -(56776, 0, "'t'"), -(56777, 0, "'e'"), -(56778, 0, "'r'"), -(56779, 0, "'_'"), -(56775, 5, "'iter_at_userpos(target_userpos: usize)'"), -(56791, 21, "'u'"), -(56792, 0, "'s'"), -(56793, 0, "'e'"), -(56794, 0, "'r'"), -(56795, 0, "'p'"), -(56796, 0, "'o'"), -(56797, 0, "'s'"), -(56799, 0, "';'"), -(56871, 6, "'c'"), -(56872, 0, "'u'"), -(56873, 0, "'r'"), -(56874, 0, "'s'"), -(56875, 0, "'o'"), -(56876, 0, "'r'"), -(56877, 0, "','"), -(56878, 0, "'n '"), -(56891, 0, "'l'"), -(56892, 0, "'o'"), -(56893, 0, "'c'"), -(56894, 0, "'a'"), -(56895, 0, "'l'"), -(56891, 5, "'local_offset'"), -(56903, 0, "':'"), -(56904, 0, "' '"), -(56905, 0, "'o'"), -(56906, 0, "'f'"), -(56907, 0, "'f'"), -(56908, 0, "'s'"), -(56909, 0, "'e'"), -(56910, 0, "'t'"), -(56921, 0, "';'"), -(56922, 0, "'n '"), -(56931, 0, "'n '"), -(56923, 8, "''"), -(56932, 0, "'f'"), -(56933, 0, "'('"), -(56934, 0, "'e'"), -(56935, 0, "'d'"), -(56936, 0, "'i'"), -(56937, 0, "'t'"), -(56938, 0, "')'"), -(56934, 0, "'*'"), -(56934, 1, "''"), -(56934, 0, "'&'"), -(56935, 0, "'m'"), -(56936, 0, "'u'"), -(56937, 0, "'t'"), -(56938, 0, "' '"), -(56736, 0, "' '"), -(56737, 0, "'-'"), -(56738, 0, "'>'"), -(56739, 0, "' '"), -(56740, 0, "'R'"), -(56817, 0, "' '"), -(56818, 0, "'m'"), -(56819, 0, "'u'"), -(56820, 0, "'t'"), -(56821, 0, "' '"), -(56821, 1, "''"), -(56932, 0, "'n '"), -(56941, 0, "'/'"), -(56942, 0, "'/'"), -(56943, 0, "' '"), -(56944, 0, "'T'"), -(56945, 0, "'O'"), -(56946, 0, "'D'"), -(56947, 0, "'O'"), -(56948, 0, "':'"), -(56949, 0, "' '"), -(56950, 0, "'O'"), -(56951, 0, "'r'"), -(56952, 0, "' '"), -(56953, 0, "'m'"), -(56954, 0, "'a'"), -(56955, 0, "'y'"), -(56956, 0, "'b'"), -(56957, 0, "'e'"), -(56958, 0, "' '"), -(56959, 0, "'I'"), -(56960, 0, "' '"), -(56961, 0, "'s'"), -(56962, 0, "'h'"), -(56963, 0, "'o'"), -(56964, 0, "'u'"), -(56965, 0, "'l'"), -(56966, 0, "'d'"), -(56967, 0, "' '"), -(56968, 0, "'p'"), -(56969, 0, "'a'"), -(56970, 0, "'s'"), -(56971, 0, "'s'"), -(56972, 0, "' '"), -(56973, 0, "'o'"), -(56974, 0, "'w'"), -(56975, 0, "'n'"), -(56976, 0, "'e'"), -(56977, 0, "'r'"), -(56978, 0, "'s'"), -(56979, 0, "'h'"), -(56980, 0, "'i'"), -(56981, 0, "'p'"), -(56982, 0, "' '"), -(56983, 0, "'h'"), -(56984, 0, "'e'"), -(56985, 0, "'r'"), -(56986, 0, "'e'"), -(56987, 0, "'?'"), -(55999, 643, "''"), -(57572, 0, "'n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n'"), -(57572, 643, "''"), -(55999, 0, "'n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n'"), -(56640, 0, "'// '"), -(56630, 0, "'// '"), -(56557, 0, "'// '"), -(56500, 0, "'// '"), -(56464, 0, "'// '"), -(56402, 0, "'// '"), -(56333, 0, "'// '"), -(56267, 0, "'// '"), -(56228, 0, "'// '"), -(56168, 0, "'// '"), -(56125, 0, "'// '"), -(56073, 0, "'// '"), -(56004, 0, "'// '"), -(58254, 0, "'n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n'"), -(58282, 20, "''"), -(58304, 194, "''"), -(58304, 66, "''"), -(58304, 68, "''"), -(58304, 0, "' assert_eq!(offset, 0, 'Splitting nodes not yet supported');n'"), -(58323, 0, "'s'"), -(58324, 0, "'e'"), -(58325, 0, "'l'"), -(58326, 0, "'f'"), -(58327, 0, "'.'"), -(58328, 0, "'l'"), -(58329, 0, "'o'"), -(58330, 0, "'c'"), -(58331, 0, "'a'"), -(58332, 0, "'l'"), -(58333, 0, "'_'"), -(58328, 5, "'item'"), -(58159, 5, "'item'"), -(56939, 5, "'item'"), -(58402, 0, "'.'"), -(58403, 0, "'l'"), -(58404, 0, "'i'"), -(58405, 0, "'s'"), -(58406, 0, "'t'"), -(58425, 6, "'s'"), -(58426, 0, "'e'"), -(58427, 0, "'l'"), -(58428, 0, "'f'"), -(58429, 0, "'.'"), -(58430, 0, "'c'"), -(58431, 0, "'u'"), -(58432, 0, "'r'"), -(58433, 0, "'s'"), -(58434, 0, "'o'"), -(58435, 0, "'r'"), -(58515, 4, "'s'"), -(58516, 0, "'e'"), -(58517, 0, "'l'"), -(58518, 0, "'f'"), -(58519, 0, "'.'"), -(58520, 0, "'l'"), -(58521, 0, "'i'"), -(58522, 0, "'s'"), -(58523, 0, "'t'"), -(58541, 7, "'s'"), -(58542, 0, "'e'"), -(58543, 0, "'l'"), -(58544, 0, "'f'"), -(58545, 0, "'.'"), -(58541, 5, "'userpos'"), -(58632, 0, "'// '"), -(58559, 0, "'// '"), -(58497, 0, "'// '"), -(58461, 0, "'// '"), -(58421, 3, "''"), -(58421, 1, "''"), -(43534, 4, "''"), -(58445, 193, "''"), -(58444, 1, "''"), -(58248, 1, "''"), -(58442, 0, "'n '"), -(58451, 0, "'n '"), -(58443, 8, "''"), -(58452, 0, "'/'"), -(58453, 0, "'/'"), -(58454, 0, "' '"), -(58455, 0, "'T'"), -(58456, 0, "'O'"), -(58457, 0, "'D'"), -(58458, 0, "'O'"), -(58459, 0, "':'"), -(58460, 0, "' '"), -(58461, 0, "'C'"), -(58462, 0, "'h'"), -(58463, 0, "'e'"), -(58464, 0, "'c'"), -(58465, 0, "'k'"), -(58466, 0, "' '"), -(58467, 0, "'t'"), -(58468, 0, "'h'"), -(58469, 0, "'e'"), -(58470, 0, "' '"), -(58471, 0, "'c'"), -(58472, 0, "'u'"), -(58473, 0, "'r'"), -(58474, 0, "'s'"), -(58475, 0, "'o'"), -(58476, 0, "'r'"), -(58477, 0, "' '"), -(58478, 0, "'i'"), -(58479, 0, "'s'"), -(58480, 0, "' '"), -(58481, 0, "'s'"), -(58482, 0, "'t'"), -(58483, 0, "'i'"), -(58484, 0, "'l'"), -(58485, 0, "'l'"), -(58486, 0, "' '"), -(58487, 0, "'v'"), -(58488, 0, "'a'"), -(58489, 0, "'l'"), -(58490, 0, "'i'"), -(58491, 0, "'d'"), -(58492, 0, "'?'"), -(56676, 0, "'n '"), -(56681, 0, "'n '"), -(56677, 4, "''"), -(56682, 0, "'pub fn del_at(&mut self, mut userpos: usize, num_items: usize)'"), -(56744, 0, "' '"), -(56745, 0, "'{'"), -(56746, 0, "'n '"), -(56755, 0, "'n '"), -(56747, 8, "''"), -(56748, 8, "' }'"), -(56747, 0, "' '"), -(56755, 0, "'s'"), -(56756, 0, "'e'"), -(56757, 0, "'l'"), -(56758, 0, "'f'"), -(56759, 0, "'.'"), -(56760, 0, "'e'"), -(56761, 0, "'d'"), -(56762, 0, "'i'"), -(56763, 0, "'t'"), -(56764, 0, "'('"), -(56765, 0, "'u'"), -(56766, 0, "'s'"), -(56767, 0, "'e'"), -(56768, 0, "'r'"), -(56769, 0, "'p'"), -(56770, 0, "'o'"), -(56771, 0, "'s'"), -(56772, 0, "','"), -(56773, 0, "' '"), -(56774, 0, "'|'"), -(56775, 0, "'e'"), -(56776, 0, "'d'"), -(56777, 0, "'i'"), -(56778, 0, "'t'"), -(56779, 0, "'|'"), -(56780, 0, "' '"), -(56781, 0, "'{'"), -(56782, 0, "'n '"), -(56795, 0, "'n '"), -(56783, 12, "''"), -(56784, 12, "' }'"), -(56793, 0, "')'"), -(56783, 0, "' '"), -(56795, 0, "'e'"), -(56796, 0, "'d'"), -(56797, 0, "'i'"), -(56798, 0, "'t'"), -(56799, 0, "'.'"), -(56800, 0, "'d'"), -(56801, 0, "'e'"), -(56802, 0, "'l'"), -(56803, 0, "'_'"), -(56804, 0, "'a'"), -(56805, 0, "'t'"), -(56806, 0, "'('"), -(56807, 0, "'n'"), -(56808, 0, "'u'"), -(56809, 0, "'m'"), -(56810, 0, "'_'"), -(56811, 0, "'i'"), -(56812, 0, "'t'"), -(56813, 0, "'e'"), -(56814, 0, "'m'"), -(56815, 0, "'s'"), -(56816, 0, "')'"), -(56817, 0, "';'"), -(56707, 3, "''"), -(56707, 1, "''"), -(58598, 0, "'n '"), -(58607, 0, "'n // if cfg!(debug_assertions) {n // let (c2, _) = self.iter_at_userpos(userpos);n // if &cursor != &c2 { panic!('Invalid cursor after delete'); }n // }'"), -(58599, 8, "''"), -(58779, 3, "''"), -(58703, 3, "''"), -(58643, 3, "''"), -(58604, 3, "''"), -(58683, 0, "'s'"), -(58684, 0, "'e'"), -(58685, 0, "'l'"), -(58686, 0, "'f'"), -(58687, 0, "'.'"), -(58688, 0, "'c'"), -(58689, 0, "'u'"), -(58690, 0, "'r'"), -(58691, 0, "'s'"), -(58692, 0, "'o'"), -(58693, 0, "'r'"), -(58694, 0, "'.'"), -(58666, 0, "'.'"), -(58667, 0, "'l'"), -(58668, 0, "'i'"), -(58669, 0, "'s'"), -(58670, 0, "'t'"), -(58671, 0, "'.'"), -(58671, 1, "''"), -(58726, 0, "'s'"), -(58727, 0, "'e'"), -(58728, 0, "'l'"), -(58729, 0, "'f'"), -(58730, 0, "'.'"), -(58597, 1, "''"), -(58797, 50, "''"), -(55995, 682, "''"), -(55813, 0, "'// '"), -(55802, 0, "'// '"), -(55788, 0, "'// '"), -(55703, 0, "'// '"), -(55622, 0, "'// '"), -(55543, 0, "'// '"), -(55503, 0, "'// '"), -(55422, 0, "'// '"), -(55353, 0, "'// '"), -(55280, 0, "'// '"), -(55211, 0, "'// '"), -(55181, 0, "'// '"), -(55110, 0, "'// '"), -(55038, 0, "'// '"), -(54980, 0, "'// '"), -(54959, 0, "'// '"), -(54879, 0, "'// '"), -(54800, 0, "'// '"), -(54771, 0, "'// '"), -(54754, 0, "'// '"), -(54687, 0, "'// '"), -(54635, 0, "'// '"), -(54577, 0, "'// '"), -(54534, 0, "'// '"), -(54445, 0, "'// '"), -(54345, 0, "'// '"), -(55888, 3, "''"), -(55874, 3, "''"), -(55857, 3, "''"), -(55769, 3, "''"), -(55685, 3, "''"), -(55603, 3, "''"), -(55560, 3, "''"), -(55476, 3, "''"), -(55404, 3, "''"), -(55328, 3, "''"), -(55256, 3, "''"), -(55223, 3, "''"), -(55149, 3, "''"), -(55074, 3, "''"), -(55013, 3, "''"), -(54989, 3, "''"), -(54906, 3, "''"), -(54824, 3, "''"), -(54792, 3, "''"), -(54772, 3, "''"), -(54702, 3, "''"), -(54647, 3, "''"), -(54586, 3, "''"), -(54540, 3, "''"), -(54448, 3, "''"), -(54345, 3, "''"), -(56251, 0, "'n pub fn edit(&mut self, userpos: usize, f: F) -> Rn where F: FnOnce(&mut Edit) -> R {'"), -(56215, 0, "'// '"), -(56155, 0, "'// '"), -(56306, 0, "' '"), -(56307, 0, "'n'"), -(56308, 0, "'o'"), -(56309, 0, "'t'"), -(56310, 0, "'i'"), -(56311, 0, "'f'"), -(56312, 0, "'y'"), -(56313, 0, "':'"), -(56314, 0, "' '"), -(56315, 0, "'N'"), -(56316, 0, "'o'"), -(56317, 0, "'t'"), -(56318, 0, "'i'"), -(56319, 0, "'f'"), -(56320, 0, "'y'"), -(56321, 0, "','"), -(56274, 0, "'N'"), -(56275, 0, "'o'"), -(56276, 0, "'t'"), -(56277, 0, "'i'"), -(56278, 0, "'f'"), -(56279, 0, "'y'"), -(56280, 0, "','"), -(56281, 0, "' '"), -(56346, 0, "'where Notify: FnMut(&[C::Item], ItemMarker)'"), -(56392, 6, "' '"), -(56392, 1, "''"), -(56392, 0, "','"), -(56393, 0, "' '"), -(56273, 0, "')'"), -(56274, 0, "'n'"), -(56275, 0, "'o'"), -(56275, 1, "''"), -(56274, 1, "''"), -(56273, 1, "''"), -(56273, 0, "'_'"), -(56274, 0, "'n'"), -(56275, 0, "'o'"), -(56276, 0, "'t'"), -(56277, 0, "'i'"), -(56278, 0, "'f'"), -(56279, 0, "'y'"), -(56218, 3, "''"), -(56155, 3, "''"), -(56251, 0, "'n '"), -(56252, 8, "' }'"), -(56251, 0, "'n '"), -(56260, 0, "'s'"), -(56261, 0, "'e'"), -(56262, 0, "'l'"), -(56263, 0, "'f'"), -(56264, 0, "'.'"), -(56265, 0, "'e'"), -(56266, 0, "'d'"), -(56267, 0, "'i'"), -(56268, 0, "'t'"), -(56265, 4, "'edit_notify(userpos: usize, notify: Notify, f: F)'"), -(56277, 14, "'u'"), -(56278, 0, "'s'"), -(56279, 0, "'e'"), -(56280, 0, "'r'"), -(56281, 0, "'p'"), -(56282, 0, "'o'"), -(56283, 0, "'s'"), -(56286, 14, "'S'"), -(56287, 0, "'e'"), -(56288, 0, "'l'"), -(56289, 0, "'f'"), -(56290, 0, "':'"), -(56291, 0, "':'"), -(56292, 0, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(56301, 50, "''"), -(56301, 0, "','"), -(56302, 0, "' '"), -(56303, 0, "'f'"), -(56311, 0, "'n '"), -(57770, 0, "'n'"), -(56312, 4, "''"), -(57767, 0, "'where Notify: FnMut(&[C::Item], ItemMarker)'"), -(57773, 40, "''"), -(57767, 6, "''"), -(57766, 1, "''"), -(57800, 0, "','"), -(57801, 0, "' '"), -(57802, 0, "'N'"), -(57803, 0, "'o'"), -(57804, 0, "'t'"), -(57805, 0, "'i'"), -(57806, 0, "'f'"), -(57807, 0, "'y'"), -(57808, 0, "':'"), -(57809, 0, "' '"), -(57810, 0, "'Notify: FnMut(&[C::Item], ItemMarker)'"), -(57810, 40, "''"), -(57802, 8, "'Notify: FnMut(&[C::Item], ItemMarker)'"), -(57956, 0, "'n '"), -(57961, 0, "'N'"), -(57962, 0, "'o'"), -(57963, 0, "'t'"), -(57964, 0, "'i'"), -(57965, 0, "'f'"), -(57966, 0, "'y'"), -(57967, 0, "':'"), -(57968, 0, "' '"), -(57961, 0, "'n'"), -(57962, 0, "'o'"), -(57963, 0, "'t'"), -(57964, 0, "'i'"), -(57965, 0, "'f'"), -(57966, 0, "'y'"), -(57967, 0, "':'"), -(57968, 0, "' '"), -(57976, 1, "''"), -(57975, 1, "''"), -(58001, 0, "','"), -(58002, 0, "' '"), -(58003, 0, "'Notify: FnMut(&[C::Item], ItemMarker)'"), -(58055, 0, "','"), -(58056, 0, "' '"), -(58057, 0, "'N'"), -(58058, 0, "'o'"), -(58059, 0, "'t'"), -(58060, 0, "'i'"), -(58061, 0, "'f'"), -(58062, 0, "'y'"), -(56662, 0, "','"), -(56663, 0, "'n '"), -(56676, 0, "'n'"), -(56677, 0, "'o'"), -(56678, 0, "'t'"), -(56679, 0, "'i'"), -(56680, 0, "'f'"), -(56681, 0, "'y'"), -(56621, 8, "''"), -(56648, 0, "'item_'"), -(56508, 0, "'item_'"), -(56651, 13, "''"), -(56584, 43, "' list: self, cursor,'"), -(56584, 56, "' list: self, cursor, item_offset,'"), -(56584, 63, "' list: self, cursor, item_offset, notify'"), -(56554, 81, "' let mut edit = Edit { list: self, cursor, item_offset, notify'"), -(56554, 80, "' let mut edit = Edit { list: self, cursor, item_offset, notify };'"), -(56477, 0, "','"), -(56478, 0, "' '"), -(56479, 0, "'N'"), -(56480, 0, "'o'"), -(56481, 0, "'t'"), -(56482, 0, "'i'"), -(56483, 0, "'f'"), -(56484, 0, "'y'"), -(56242, 0, "','"), -(56243, 0, "' '"), -(56244, 0, "'_'"), -(56244, 1, "''"), -(56244, 0, "'S'"), -(56245, 0, "'e'"), -(56246, 0, "'l'"), -(56247, 0, "'f'"), -(56248, 0, "':'"), -(56249, 0, "':'"), -(56250, 0, "'no_notify(_items: &[C::Item], _marker: ItemMarker)'"), -(56250, 53, "''"), -(56250, 0, "'n'"), -(56251, 0, "'o'"), -(56252, 0, "'_'"), -(56253, 0, "'n'"), -(56254, 0, "'o'"), -(56255, 0, "'t'"), -(56256, 0, "'i'"), -(56257, 0, "'f'"), -(56258, 0, "'y'"), -(56244, 15, "''"), -(56244, 0, "'i'"), -(56245, 0, "'m'"), -(56246, 0, "'p'"), -(56247, 0, "'l'"), -(56247, 1, "''"), -(56246, 1, "''"), -(56245, 1, "''"), -(56244, 1, "''"), -(56244, 0, "'t'"), -(56245, 0, "'y'"), -(56246, 0, "'p'"), -(56247, 0, "'e'"), -(56248, 0, "'o'"), -(56248, 1, "''"), -(56248, 0, "' '"), -(56248, 1, "''"), -(56248, 0, "'o'"), -(56244, 5, "''"), -(56244, 0, "'impl'"), -(56244, 4, "''"), -(56244, 0, "'Self::no_notify'"), -(56244, 0, "'t'"), -(56245, 0, "'y'"), -(56246, 0, "'p'"), -(56247, 0, "'e'"), -(56248, 0, "' '"), -(56171, 0, "','"), -(56172, 0, "' '"), -(56173, 0, "'N'"), -(56174, 0, "'o'"), -(56175, 0, "'t'"), -(56176, 0, "'i'"), -(56177, 0, "'f'"), -(56178, 0, "'y'"), -(56171, 8, "''"), -(56167, 0, "'N'"), -(56168, 0, "'o'"), -(56169, 0, "'t'"), -(56170, 0, "'i'"), -(56171, 0, "'f'"), -(56172, 0, "'y'"), -(56173, 0, "','"), -(56174, 0, "' '"), -(56252, 20, "'N'"), -(56253, 0, "'o'"), -(56254, 0, "'t'"), -(56255, 0, "'i'"), -(56256, 0, "'f'"), -(56257, 0, "'y'"), -(56229, 0, "'Notify: FnMut(&[C::Item], ItemMarker), '"), -(56229, 42, "''"), -(56252, 6, "'type Self::no_notify'"), -(56174, 1, "''"), -(56167, 7, "''"), -(56244, 5, "''"), -(56244, 4, "''"), -(56244, 0, "'S'"), -(56245, 0, "'k'"), -(56246, 0, "'i'"), -(56247, 0, "'l'"), -(56244, 4, "'SkipList'"), -(56252, 0, "':'"), -(56253, 0, "':'"), -(56254, 0, "'<'"), -(56255, 0, "'C'"), -(56256, 0, "'>'"), -(56253, 1, "''"), -(56252, 1, "''"), -(56251, 1, "''"), -(56251, 0, "'t'"), -(56244, 0, "'<'"), -(56256, 0, "'>'"), -(56256, 0, "' '"), -(56257, 0, "'a'"), -(56258, 0, "'s'"), -(56259, 0, "' '"), -(56260, 0, "'S'"), -(56261, 0, "'k'"), -(56262, 0, "'i'"), -(56260, 3, "'SkipList'"), -(56268, 0, "'<'"), -(56269, 0, "'C'"), -(56270, 0, "'>'"), -(56268, 3, "''"), -(56260, 8, "'Ski'"), -(56259, 4, "''"), -(56256, 3, "''"), -(56256, 1, "''"), -(56244, 1, "''"), -(20204, 0, "'n'"), -(20205, 0, "'n pub fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}n'"), -(20206, 4, "''"), -(20222, 0, "'<'"), -(20223, 0, "'C'"), -(20224, 0, "':'"), -(20225, 0, "' '"), -(20226, 0, "'L'"), -(20227, 0, "'i'"), -(20228, 0, "'s'"), -(20229, 0, "'t'"), -(20226, 4, "'ListConfig'"), -(20236, 0, "'>'"), -(20222, 0, "'_'"), -(20223, 0, "'x'"), -(56327, 13, "''"), -(56336, 0, "'_'"), -(56337, 0, "'x'"), -(56338, 0, "'<'"), -(56339, 0, "'C'"), -(56340, 0, "'>'"), -(56385, 15, "'rustc --explain E0573'"), -(56385, 21, "'Self::no_notify'"), -(56385, 15, "'n'"), -(56386, 0, "'o'"), -(56387, 0, "'_'"), -(56388, 0, "'n'"), -(56389, 0, "'o'"), -(56385, 5, "'no_notify_x(_items: &[C::Item], _marker: ItemMarker)'"), -(56415, 0, "'>'"), -(56397, 0, "'<'"), -(56398, 18, "'C'"), -(56399, 0, "'>'"), -(56398, 2, "'_items: &[C::Item]'"), -(56416, 1, "''"), -(56397, 1, "''"), -(56396, 44, "''"), -(56396, 0, "'<'"), -(56397, 0, "'C'"), -(56398, 0, "'>'"), -(56396, 3, "''"), -(56340, 1, "''"), -(56339, 1, "''"), -(56338, 1, "''"), -(56238, 0, "'// '"), -(56233, 0, "'n '"), -(56238, 0, "' pub fn edit_notify(&mut self, userpos: usize, notify: Notify, f: F) -> Rn where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut Edit) -> R {n'"), -(56234, 8, "' '"), -(56484, 0, "'// '"), -(56255, 1, "''"), -(56254, 1, "''"), -(56253, 1, "''"), -(56252, 1, "''"), -(56251, 1, "''"), -(56250, 1, "''"), -(56249, 1, "''"), -(56289, 16, "''"), -(56559, 0, "'<'"), -(56560, 0, "'C'"), -(56561, 0, "'>'"), -(56559, 0, "':'"), -(56560, 0, "':'"), -(56306, 0, "'// '"), -(56238, 0, "'// '"), -(56467, 3, "''"), -(56404, 3, "''"), -(56504, 0, "':'"), -(56505, 0, "':'"), -(56506, 0, "'<'"), -(56507, 0, "'C'"), -(56508, 0, "'>'"), -(56505, 1, "''"), -(56504, 1, "''"), -(56493, 15, "''"), -(56493, 0, "'_'"), -(56494, 0, "'>'"), -(56493, 1, "''"), -(56493, 0, "'C'"), -(56493, 1, "''"), -(56493, 0, "'u'"), -(56494, 0, "'2'"), -(56495, 0, "'3'"), -(56495, 1, "''"), -(56494, 1, "''"), -(56494, 0, "'3'"), -(56495, 0, "'2'"), -(56514, 0, "'// '"), -(56563, 0, "'n '"), -(56572, 0, "' let (cursor, item_offset) = self.iter_at_userpos(userpos);n let mut edit = Edit { list: self, cursor, item_offset, notify };nn // TODO: Or maybe I should pass ownership here?n f(&mut edit)n'"), -(56564, 16, "' '"), -(56694, 6, "'n'"), -(56695, 0, "'o'"), -(56696, 0, "'_'"), -(56697, 0, "'n'"), -(56698, 0, "'o'"), -(56694, 5, "'no_notify_x(_items: &[C::Item], _marker: ItemMarker)'"), -(56724, 0, "'>'"), -(56706, 0, "'<'"), -(56725, 1, "''"), -(56706, 1, "''"), -(56705, 44, "''"), -(56705, 0, "'<'"), -(56706, 0, "'C'"), -(56707, 0, "'>'"), -(56705, 0, "':'"), -(56706, 0, "':'"), -(56694, 0, "'n'"), -(56695, 0, "'o'"), -(56696, 0, "'t'"), -(56697, 0, "'i'"), -(56698, 0, "'f'"), -(56699, 0, "'y'"), -(56700, 0, "':'"), -(56701, 0, "' '"), -(56493, 3, "'for<'r> fn(&'r [::Item], skiplist::ItemMarker) {skiplist::no_notify_x::}'"), -(56570, 28, "''"), -(56569, 1, "''"), -(56545, 10, "''"), -(56515, 10, "''"), -(56755, 0, "'&'"), -(56549, 0, "' '"), -(56550, 0, "'{no_notify_x::}'"), -(56493, 0, "'&'"), -(56420, 0, "','"), -(56421, 0, "' '"), -(56422, 0, "'N'"), -(56423, 0, "'N'"), -(56497, 0, "'N'"), -(56498, 0, "')'"), -(56498, 0, "'>'"), -(56500, 0, "','"), -(56501, 0, "' '"), -(56502, 0, "'N'"), -(56503, 0, "':'"), -(56504, 0, "' '"), -(56587, 1, "''"), -(56586, 1, "''"), -(56585, 1, "''"), -(56584, 1, "''"), -(56583, 1, "''"), -(56582, 1, "''"), -(56500, 0, "' '"), -(56501, 0, "'-'"), -(56502, 0, "'>'"), -(56503, 0, "' '"), -(56504, 0, "'R'"), -(56506, 1, "''"), -(56506, 0, "'n '"), -(56590, 1, "''"), -(56514, 1, "''"), -(56498, 0, "'N'"), -(56512, 0, "'N'"), -(56516, 0, "'&'"), -(56516, 1, "''"), -(56516, 58, "''"), -(56532, 1, "''"), -(56532, 0, "'}'"), -(56516, 0, "'for<'r> fn(&'r [::Item], ItemMarker) {'"), -(56524, 49, "''"), -(56524, 1, "''"), -(56540, 1, "''"), -(56843, 0, "'// '"), -(56821, 0, "'// '"), -(56765, 0, "'// '"), -(56672, 0, "'// '"), -(56605, 0, "'// '"), -(56547, 0, "'// '"), -(56512, 0, "'// '"), -(56468, 0, "'// '"), -(56404, 0, "'// '"), -(57191, 0, "':'"), -(57192, 0, "' '"), -(57193, 0, "'n'"), -(57194, 0, "'o'"), -(57193, 2, "'no_notify_x(_items: &[C::Item], _marker: ItemMarker)'"), -(57193, 55, "'no'"), -(57195, 0, "'n'"), -(57195, 1, "''"), -(57195, 0, "'_'"), -(57196, 0, "'n'"), -(57197, 0, "'o'"), -(57198, 0, "'t'"), -(57199, 0, "'i'"), -(57200, 0, "'f'"), -(57201, 0, "'y'"), -(57202, 0, "'_'"), -(57203, 0, "'x'"), -(57204, 0, "'<'"), -(57205, 0, "'C'"), -(57206, 0, "'>'"), -(57204, 0, "':'"), -(57205, 0, "':'"), -(57204, 2, "''"), -(57195, 12, "''"), -(57195, 0, "'n'"), -(57195, 1, "''"), -(57192, 3, "''"), -(57191, 1, "''"), -(56867, 3, "''"), -(56842, 3, "''"), -(56783, 3, "''"), -(56687, 3, "''"), -(56617, 3, "''"), -(56556, 3, "''"), -(56518, 3, "''"), -(56471, 3, "''"), -(56404, 3, "''"), -(56516, 24, "'for<'r> fn(&'r [::Item], skiplist::ItemMarker) {skiplist::no_notify_x::}'"), -(56594, 10, "''"), -(56568, 10, "''"), -(56538, 10, "''"), -(56516, 8, "''"), -(56516, 67, "''"), -(56516, 0, "'i'"), -(56517, 0, "'m'"), -(56518, 0, "'p'"), -(56519, 0, "'l'"), -(56520, 0, "' '"), -(56521, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(56464, 91, "' where F: FnOnce(&mut Edit) -> R, NN: impl FnMut(&[C::Item], ItemMarker) {'"), -(56464, 87, "' where F: FnOnce(&mut Edit) -> R,n NN: impl FnMut(&[C::Item], ItemMarker) {'"), -(56516, 5, "''"), -(56747, 1, "''"), -(56423, 1, "''"), -(56422, 1, "''"), -(56421, 1, "''"), -(56420, 1, "''"), -(56502, 43, "''"), -(56502, 0, "' '"), -(56502, 1, "''"), -(56502, 0, "',n NN: FnMut(&[C::Item], ItemMarker) '"), -(56512, 32, "''"), -(56508, 4, "''"), -(56504, 4, "''"), -(56503, 1, "''"), -(56502, 1, "''"), -(56493, 2, "'i'"), -(56494, 0, "'m'"), -(56495, 0, "'p'"), -(56496, 0, "'l'"), -(56497, 0, "' '"), -(56498, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(56493, 5, "''"), -(56493, 0, "'d'"), -(56494, 0, "'y'"), -(56495, 0, "'n'"), -(56496, 0, "' '"), -(56838, 0, "'// '"), -(56816, 0, "'// '"), -(56760, 0, "'// '"), -(56668, 0, "'// '"), -(56601, 0, "'// '"), -(56543, 0, "'// '"), -(56464, 0, "'// '"), -(56404, 0, "'// '"), -(58489, 0, "'// '"), -(58470, 0, "'// '"), -(58413, 0, "'// '"), -(58390, 0, "'// '"), -(58359, 0, "'// '"), -(58280, 0, "'// '"), -(58280, 0, "'// pub struct Edit<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> {n// list: &'a mut SkipList,n// cursor: Cursor,n// item_offset: usize, // Offset into the current item.n// notify: Notifyn// }n'"), -(58733, 3, "''"), -(58711, 3, "''"), -(58651, 3, "''"), -(58625, 3, "''"), -(58591, 3, "''"), -(58509, 3, "''"), -(58542, 42, "''"), -(58542, 0, "', Notify: FnMut(&[C::Item], ItemMarker)'"), -(58542, 42, "''"), -(58669, 6, "', Notify: FnMut(&[C::Item], ItemMarker)'"), -(58669, 15, "'f'"), -(58670, 0, "'n'"), -(58789, 0, "'nimpl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, Notify> {'"), -(58702, 0, "'// '"), -(58869, 8, "''"), -(57269, 0, "'// '"), -(57248, 0, "'// '"), -(57192, 0, "'// '"), -(57118, 0, "'// '"), -(57051, 0, "'// '"), -(56960, 0, "'// '"), -(56869, 0, "'// '"), -(56859, 3, "''"), -(56834, 3, "''"), -(56775, 3, "''"), -(56680, 3, "''"), -(56610, 3, "''"), -(56549, 3, "''"), -(56467, 3, "''"), -(56404, 3, "''"), -(56493, 9, "'f'"), -(56494, 0, "'n'"), -(56491, 31, "''"), -(58831, 0, "'nimpl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C> {'"), -(58752, 0, "'// '"), -(58752, 3, "''"), -(58831, 80, "''"), -(58774, 42, "''"), -(56794, 1, "''"), -(56802, 0, "' // pub fn edit_notify(&mut self, userpos: usize, notify: Notify, f: F) -> Rn // where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut Edit) -> R {n // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // let mut edit = Edit { list: self, cursor, item_offset, notify };nn // // TODO: Or maybe I should pass ownership here?n // f(&mut edit)n // }n'"), -(57651, 3, "''"), -(57627, 3, "''"), -(57568, 3, "''"), -(57491, 3, "''"), -(57421, 3, "''"), -(57327, 3, "''"), -(57233, 3, "''"), -(57393, 8, "''"), -(57252, 8, "''"), -(57322, 42, "''"), -(57322, 0, "'Notify: FnMut(&[C::Item], ItemMarker), '"), -(57252, 0, "'Notify, '"), -(57338, 5, "'f'"), -(57339, 0, "'n'"), -(57338, 29, "''"), -(57330, 8, "''"), -(57330, 1, "''"), -(57330, 1, "''"), -(57301, 6, "'fn(&[C::Item], ItemMarker)'"), -(53196, 0, "'// '"), -(53118, 0, "'// '"), -(53008, 0, "'// '"), -(52951, 0, "'// '"), -(52882, 0, "'// '"), -(52810, 0, "'// '"), -(52745, 0, "'// '"), -(52593, 0, "'// '"), -(53217, 3, "''"), -(53136, 3, "''"), -(53023, 3, "''"), -(52963, 3, "''"), -(52891, 3, "''"), -(52816, 3, "''"), -(52748, 3, "''"), -(52593, 3, "''"), -(60918, 0, "'n '"), -(60923, 0, "'n '"), -(60919, 4, "''"), -(60924, 0, "'n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);n }'"), -(60920, 4, "''"), -(60919, 1, "''"), -(60918, 1, "''"), -(60918, 0, "'n '"), -(60918, 614, "''"), -(59568, 0, "'n n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);n }'"), -(59569, 4, "''"), -(59606, 26, "''"), -(59652, 1, "''"), -(59652, 0, "'n '"), -(59700, 65, "''"), -(59700, 72, "''"), -(59719, 0, "'s'"), -(59720, 0, "'e'"), -(59721, 0, "'l'"), -(59722, 0, "'f'"), -(59723, 0, "'.'"), -(59724, 0, "'i'"), -(59725, 0, "'t'"), -(59726, 0, "'e'"), -(59727, 0, "'m'"), -(59728, 0, "'_'"), -(59857, 0, "'.'"), -(59858, 0, "'l'"), -(59859, 0, "'i'"), -(59860, 0, "'s'"), -(59861, 0, "'t'"), -(59930, 15, "''"), -(59930, 0, "'s'"), -(59931, 0, "'e'"), -(59932, 0, "'l'"), -(59933, 0, "'f'"), -(59934, 0, "'.'"), -(59935, 0, "'n'"), -(59936, 0, "'o'"), -(59937, 0, "'t'"), -(59938, 0, "'i'"), -(59939, 0, "'f'"), -(59940, 0, "'y'"), -(59884, 0, "'s'"), -(59885, 0, "'e'"), -(59886, 0, "'l'"), -(59887, 0, "'f'"), -(59888, 0, "'.'"), -(59960, 0, "'// '"), -(59960, 3, "''"), -(59964, 0, "'.'"), -(59965, 0, "'l'"), -(59966, 0, "'i'"), -(59967, 0, "'s'"), -(59968, 0, "'t'"), -(59991, 0, "'s'"), -(59992, 0, "'e'"), -(59993, 0, "'l'"), -(59994, 0, "'f'"), -(59995, 0, "'.'"), -(60004, 13, "'s'"), -(60005, 0, "'e'"), -(60006, 0, "'l'"), -(60007, 0, "'f'"), -(60008, 0, "'.'"), -(60004, 5, "'start_userpos'"), -(59835, 0, "'n '"), -(59844, 0, "'l'"), -(59845, 0, "'e'"), -(59846, 0, "'t'"), -(59847, 0, "' '"), -(59848, 0, "'s'"), -(59849, 0, "'t'"), -(59850, 0, "'a'"), -(59851, 0, "'r'"), -(59852, 0, "'t'"), -(59853, 0, "'_'"), -(59854, 0, "'u'"), -(59855, 0, "'s'"), -(59856, 0, "'e'"), -(59857, 0, "'r'"), -(59858, 0, "'p'"), -(59859, 0, "'o'"), -(59860, 0, "'s'"), -(59861, 0, "' '"), -(59862, 0, "'='"), -(59863, 0, "' '"), -(59864, 0, "'s'"), -(59865, 0, "'e'"), -(59866, 0, "'l'"), -(59867, 0, "'f'"), -(59868, 0, "'.'"), -(59869, 0, "'c'"), -(59870, 0, "'u'"), -(59871, 0, "'r'"), -(59872, 0, "'s'"), -(59869, 4, "'cursor'"), -(59875, 0, "'.'"), -(59876, 0, "'c'"), -(59877, 0, "'u'"), -(59878, 0, "'r'"), -(59876, 3, "''"), -(59876, 0, "'u'"), -(59877, 0, "'s'"), -(59878, 0, "'e'"), -(59879, 0, "'r'"), -(59876, 4, "'userpos'"), -(59883, 0, "';'"), -(59884, 0, "'n '"), -(59885, 8, "''"), -(58994, 0, "' notify: fn(&[C::Item], ItemMarker)n'"), -(59040, 0, "'// '"), -(59040, 3, "''"), -(59040, 0, "'// '"), -(59040, 3, "''"), -(59927, 0, "' '"), -(58994, 42, "''"), -(59036, 0, "'// '"), -(58994, 0, "'// '"), -(58937, 0, "'// '"), -(58914, 0, "'// '"), -(58883, 0, "'// '"), -(58846, 0, "'// '"), -(58841, 3, "''"), -(58819, 3, "''"), -(58759, 3, "''"), -(58733, 3, "''"), -(58699, 3, "''"), -(58617, 3, "''"), -(59130, 0, "'// '"), -(59039, 3, "''"), -(57606, 0, "'// '"), -(57585, 0, "'// '"), -(57529, 0, "'// '"), -(57455, 0, "'// '"), -(57388, 0, "'// '"), -(57347, 0, "'// '"), -(57233, 0, "'// '"), -(57228, 0, "'n '"), -(57233, 0, "'n '"), -(57229, 4, "''"), -(57230, 4, "''"), -(56491, 0, "','"), -(56492, 0, "' '"), -(56493, 0, "'n'"), -(56494, 0, "'o'"), -(56495, 0, "'t'"), -(56493, 3, "'no_notify_x(_items: &[C::Item], _marker: ItemMarker)'"), -(56493, 55, "'not'"), -(56495, 1, "''"), -(56495, 0, "'_'"), -(56496, 0, "'n'"), -(56497, 0, "'o'"), -(56498, 0, "'t'"), -(56499, 0, "'i'"), -(56500, 0, "'f'"), -(56501, 0, "'y'"), -(56502, 0, "'_'"), -(56503, 0, "'x'"), -(56504, 0, "':'"), -(56505, 0, "':'"), -(56506, 0, "'<'"), -(56507, 0, "'C'"), -(56508, 0, "'>'"), -(56509, 0, "' '"), -(56510, 0, "'a'"), -(56511, 0, "'s'"), -(56512, 0, "' '"), -(56513, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(56493, 0, "'<'"), -(56547, 0, "'>'"), -(56547, 1, "''"), -(56493, 1, "''"), -(56508, 1, "''"), -(56507, 1, "''"), -(56506, 1, "''"), -(56505, 1, "''"), -(56504, 1, "''"), -(56504, 0, "'::'"), -(56509, 36, "''"), -(56509, 0, "' as FnMut(&[C::Item], ItemMarker)'"), -(56509, 36, "''"), -(56493, 0, "'t'"), -(56494, 0, "'y'"), -(56495, 0, "'p'"), -(56496, 0, "'e'"), -(56497, 0, "'o'"), -(56498, 0, "'f'"), -(56499, 0, "'('"), -(56516, 0, "')'"), -(56493, 7, "''"), -(56493, 0, "'{'"), -(56510, 1, "''"), -(56510, 0, "'}'"), -(58703, 5, "'f'"), -(58704, 0, "'n'"), -(58703, 2, "'FnMut'"), -(58869, 0, "'// '"), -(58850, 0, "'// '"), -(58793, 0, "'// '"), -(58770, 0, "'// '"), -(58739, 0, "'// '"), -(58660, 0, "'// '"), -(59094, 3, "''"), -(59049, 3, "''"), -(58989, 3, "''"), -(58963, 3, "''"), -(58929, 3, "''"), -(58889, 3, "''"), -(59082, 0, "'// '"), -(59173, 3, "''"), -(56493, 18, "'expected type, found function'"), -(56493, 29, "'{no_notify_x::}'"), -(56493, 18, "''"), -(56492, 1, "''"), -(56491, 1, "''"), -(57224, 3, "''"), -(57200, 3, "''"), -(57141, 3, "''"), -(57064, 3, "''"), -(56994, 3, "''"), -(56900, 3, "''"), -(56806, 3, "''"), -(56966, 8, "''"), -(56966, 0, "', Notify'"), -(57206, 0, "'// '"), -(57185, 0, "'// '"), -(57129, 0, "'// '"), -(57055, 0, "'// '"), -(56988, 0, "'// '"), -(56897, 0, "'// '"), -(56806, 0, "'// '"), -(57224, 3, "''"), -(57200, 3, "''"), -(57141, 3, "''"), -(57064, 3, "''"), -(56994, 3, "''"), -(56900, 3, "''"), -(56806, 3, "''"), -(57206, 0, "'// '"), -(57185, 0, "'// '"), -(57129, 0, "'// '"), -(57055, 0, "'// '"), -(56988, 0, "'// '"), -(56897, 0, "'// '"), -(56806, 0, "'// '"), -(57626, 3, "''"), -(57602, 3, "''"), -(57543, 3, "''"), -(57466, 3, "''"), -(57396, 3, "''"), -(57352, 3, "''"), -(57235, 3, "''"), -(53122, 0, "'// '"), -(53012, 0, "'// '"), -(52955, 0, "'// '"), -(52886, 0, "'// '"), -(52814, 0, "'// '"), -(52749, 0, "'// '"), -(52740, 0, "'n '"), -(52749, 0, "'s'"), -(52750, 0, "'e'"), -(52751, 0, "'l'"), -(52752, 0, "'f'"), -(52753, 0, "'.'"), -(52754, 0, "'e'"), -(52755, 0, "'d'"), -(52756, 0, "'i'"), -(52754, 3, "'edit(userpos: usize, f: F)'"), -(52759, 14, "'s'"), -(52760, 0, "'t'"), -(52761, 0, "'a'"), -(52762, 0, "'r'"), -(52763, 0, "'t'"), -(52764, 0, "'_'"), -(52765, 0, "'u'"), -(52766, 0, "'s'"), -(52767, 0, "'e'"), -(52768, 0, "'r'"), -(52769, 0, "'p'"), -(52770, 0, "'o'"), -(52771, 0, "'s'"), -(52774, 4, "'|'"), -(52775, 0, "'e'"), -(52776, 0, "'i'"), -(52777, 0, "'d'"), -(52778, 0, "'t'"), -(52778, 1, "''"), -(52777, 1, "''"), -(52776, 1, "''"), -(52776, 0, "'d'"), -(52777, 0, "'i'"), -(52778, 0, "'t'"), -(52779, 0, "'|'"), -(52780, 0, "' '"), -(52781, 0, "'{'"), -(52782, 0, "'n '"), -(52783, 12, "' }'"), -(52782, 0, "'n '"), -(52795, 0, "'e'"), -(52796, 0, "'d'"), -(52797, 0, "'i'"), -(52798, 0, "'t'"), -(52799, 0, "'.'"), -(52800, 0, "'r'"), -(52801, 0, "'e'"), -(52802, 0, "'p'"), -(52803, 0, "'l'"), -(52804, 0, "'a'"), -(52800, 5, "'replace_at'"), -(52810, 0, "'('"), -(52811, 0, "'r'"), -(52812, 0, "'e'"), -(52813, 0, "'m'"), -(52814, 0, "'o'"), -(52815, 0, "'v'"), -(52816, 0, "'e'"), -(52817, 0, "'d'"), -(52818, 0, "'_'"), -(52819, 0, "'i'"), -(52820, 0, "'t'"), -(52821, 0, "'e'"), -(52822, 0, "'m'"), -(52823, 0, "'s'"), -(52824, 0, "','"), -(52825, 0, "' '"), -(52826, 0, "'i'"), -(52827, 0, "'n'"), -(52828, 0, "'s'"), -(52829, 0, "'e'"), -(52830, 0, "'r'"), -(52831, 0, "'t'"), -(52832, 0, "'e'"), -(52833, 0, "'d'"), -(52834, 0, "'_'"), -(52835, 0, "'c'"), -(52836, 0, "'o'"), -(52837, 0, "'n'"), -(52838, 0, "'t'"), -(52839, 0, "'e'"), -(52840, 0, "'n'"), -(52841, 0, "'t'"), -(52842, 0, "')'"), -(52843, 0, "';'"), -(52625, 4, "''"), -(52669, 4, "''"), -(52848, 469, "''"), -(54077, 0, "'// '"), -(53977, 0, "'// '"), -(53964, 0, "'// '"), -(53926, 0, "'// '"), -(53906, 0, "'// '"), -(53850, 0, "'// '"), -(53839, 0, "'// '"), -(53748, 0, "'// '"), -(53670, 0, "'// '"), -(53637, 0, "'// '"), -(53560, 0, "'// '"), -(53509, 0, "'// '"), -(53476, 0, "'// '"), -(53426, 0, "'// '"), -(53369, 0, "'// '"), -(53334, 0, "'// '"), -(53268, 0, "'// '"), -(53183, 0, "'// '"), -(53090, 0, "'// '"), -(54131, 3, "''"), -(54028, 3, "''"), -(54012, 3, "''"), -(53971, 3, "''"), -(53948, 3, "''"), -(53889, 3, "''"), -(53875, 3, "''"), -(53781, 3, "''"), -(53700, 3, "''"), -(53664, 3, "''"), -(53584, 3, "''"), -(53530, 3, "''"), -(53494, 3, "''"), -(53441, 3, "''"), -(53381, 3, "''"), -(53343, 3, "''"), -(53274, 3, "''"), -(53186, 3, "''"), -(53090, 3, "''"), -(58840, 3, "''"), -(55856, 3, "''"), -(59240, 3, "''"), -(52799, 3, "''"), -(59749, 0, "'n '"), -(59754, 0, "'n '"), -(59750, 4, "''"), -(59751, 4, "''"), -(59216, 1, "''"), -(59750, 0, "' '"), -(59754, 0, "'p'"), -(59755, 0, "'u'"), -(59756, 0, "'b'"), -(59757, 0, "' '"), -(59758, 0, "'f'"), -(59759, 0, "'n'"), -(59760, 0, "' '"), -(59761, 0, "'c'"), -(59762, 0, "'u'"), -(59763, 0, "'r'"), -(59764, 0, "'r'"), -(59765, 0, "'e'"), -(59766, 0, "'n'"), -(59767, 0, "'t'"), -(59768, 0, "'_'"), -(59769, 0, "'i'"), -(59770, 0, "'t'"), -(59771, 0, "'e'"), -(59772, 0, "'m'"), -(59773, 0, "'('"), -(59774, 0, "')'"), -(59774, 0, "'&'"), -(59775, 0, "'s'"), -(59776, 0, "'e'"), -(59777, 0, "'l'"), -(59778, 0, "'f'"), -(59779, 0, "','"), -(59780, 0, "' '"), -(59780, 1, "''"), -(59779, 1, "''"), -(59780, 0, "' '"), -(59781, 0, "'-'"), -(59782, 0, "'>'"), -(59783, 0, "' '"), -(59784, 0, "'C'"), -(59785, 0, "':'"), -(59786, 0, "':'"), -(59787, 0, "'I'"), -(59788, 0, "'t'"), -(59789, 0, "'e'"), -(59790, 0, "'m'"), -(59787, 4, "'Item'"), -(59784, 0, "'('"), -(59785, 0, "'&'"), -(59793, 0, "','"), -(59794, 0, "' '"), -(59795, 0, "'u'"), -(59796, 0, "'s'"), -(59797, 0, "'i'"), -(59798, 0, "'z'"), -(59799, 0, "'e'"), -(59800, 0, "')'"), -(59801, 0, "' '"), -(59802, 0, "'{'"), -(59803, 0, "'n '"), -(59812, 0, "'n '"), -(59804, 8, "''"), -(59805, 8, "' }'"), -(59804, 0, "' '"), -(59812, 0, "'s'"), -(59813, 0, "'e'"), -(59814, 0, "'l'"), -(59815, 0, "'f'"), -(59816, 0, "'.'"), -(59817, 0, "'c'"), -(59818, 0, "'u'"), -(59819, 0, "'r'"), -(59820, 0, "'s'"), -(59821, 0, "'o'"), -(59822, 0, "'r'"), -(59823, 0, "'.'"), -(59812, 0, "'// '"), -(59812, 3, "''"), -(59824, 0, "'unsafe { cursor.current_item_mut() };'"), -(59812, 12, "''"), -(59843, 1, "''"), -(59842, 1, "''"), -(59841, 1, "''"), -(59840, 1, "''"), -(59844, 1, "''"), -(59821, 0, "'s'"), -(59822, 0, "'e'"), -(59823, 0, "'l'"), -(59824, 0, "'f'"), -(59825, 0, "'.'"), -(59812, 0, "'('"), -(59850, 0, "','"), -(59851, 0, "' '"), -(59852, 0, "'s'"), -(59853, 0, "'e'"), -(59854, 0, "'l'"), -(59855, 0, "'f'"), -(59856, 0, "'.'"), -(59857, 0, "'i'"), -(59858, 0, "'t'"), -(59859, 0, "'e'"), -(59860, 0, "'m'"), -(59861, 0, "'_'"), -(59862, 0, "'o'"), -(59863, 0, "'f'"), -(59864, 0, "'f'"), -(59857, 8, "'item_offset'"), -(59868, 0, "')'"), -(16126, 4, "''"), -(59871, 0, "'n '"), -(59876, 0, "'n '"), -(59872, 4, "''"), -(59877, 0, "'p'"), -(59878, 0, "'u'"), -(59879, 0, "'b'"), -(59880, 0, "' '"), -(59881, 0, "'f'"), -(59882, 0, "'n'"), -(59883, 0, "' '"), -(59884, 0, "'n'"), -(59885, 0, "'e'"), -(59886, 0, "'x'"), -(59887, 0, "'t'"), -(59888, 0, "'_'"), -(59889, 0, "'i'"), -(59890, 0, "'t'"), -(59891, 0, "'e'"), -(59892, 0, "'m'"), -(59893, 0, "'('"), -(59894, 0, "')'"), -(59894, 0, "'&'"), -(59895, 0, "'m'"), -(59896, 0, "'u'"), -(59897, 0, "'t'"), -(59898, 0, "' '"), -(59899, 0, "'s'"), -(59900, 0, "'e'"), -(59901, 0, "'l'"), -(59902, 0, "'f'"), -(59904, 0, "' '"), -(59905, 0, "'{'"), -(59906, 0, "'n '"), -(59915, 0, "'n '"), -(59907, 8, "''"), -(59908, 8, "' }'"), -(59907, 0, "' '"), -(59915, 0, "'s'"), -(59916, 0, "'e'"), -(59917, 0, "'l'"), -(59918, 0, "'f'"), -(59919, 0, "'.'"), -(59920, 0, "'c'"), -(59921, 0, "'u'"), -(59922, 0, "'r'"), -(59923, 0, "'s'"), -(59924, 0, "'o'"), -(59925, 0, "'r'"), -(59926, 0, "'.'"), -(59927, 0, "'a'"), -(59928, 0, "'d'"), -(59929, 0, "'v'"), -(59930, 0, "'a'"), -(59931, 0, "'n'"), -(59927, 5, "'advance_item(height: u8)'"), -(59940, 10, "'s'"), -(59941, 0, "'e'"), -(59942, 0, "'l'"), -(59943, 0, "'f'"), -(59944, 0, "'.'"), -(59945, 0, "'list'"), -(59949, 0, "'.'"), -(59950, 0, "'h'"), -(59951, 0, "'e'"), -(59952, 0, "'a'"), -(59953, 0, "'d'"), -(59954, 0, "'.'"), -(59955, 0, "'h'"), -(59956, 0, "'e'"), -(59957, 0, "'i'"), -(59958, 0, "'g'"), -(59959, 0, "'h'"), -(59960, 0, "'t'"), -(59962, 0, "';'"), -(59963, 0, "'n '"), -(59972, 0, "'s'"), -(59973, 0, "'e'"), -(59974, 0, "'l'"), -(59975, 0, "'f'"), -(59976, 0, "'.'"), -(59977, 0, "'i'"), -(59978, 0, "'t'"), -(59979, 0, "'e'"), -(59980, 0, "'m'"), -(59981, 0, "'_'"), -(59982, 0, "'o'"), -(59983, 0, "'f'"), -(59984, 0, "'f'"), -(59977, 8, "'item_offset'"), -(59988, 0, "' '"), -(59989, 0, "'='"), -(59990, 0, "' '"), -(59991, 0, "'0'"), -(59992, 0, "';'"), -(59999, 0, "'n '"), -(60004, 0, "'n '"), -(60000, 4, "''"), -(60005, 0, "'unsafe { cursor.current_item_mut() };'"), -(60005, 37, "''"), -(60005, 0, "'n pub fn modify_at(&mut self, userpos: usize, mut notify: Notify, modify_fn: F)n where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut C::Item, usize) {n let (mut cursor, offset) = self.iter_at_userpos(userpos);n let e = cursor.here_ptr();n let item = unsafe { cursor.current_item_mut() };n let old_usersize = C::get_usersize(item);n modify_fn(item, offset);n let new_usersize = C::get_usersize(item);nn let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta);n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);n }nn notify(std::slice::from_ref(item), ItemMarker {n ptr: e,n // _phantom: PhantomData,n });nn // cursor.update_offsets(self.head.height as usize, new_size as isize - old_size as isize);n }'"), -(60025, 1, "''"), -(60024, 1, "''"), -(60024, 0, "'i'"), -(60025, 0, "'t'"), -(60026, 0, "'e'"), -(60027, 0, "'m'"), -(60027, 1, "''"), -(60026, 1, "''"), -(60025, 1, "''"), -(60024, 1, "''"), -(60024, 0, "'i'"), -(60025, 0, "'n'"), -(60026, 0, "'_'"), -(60026, 1, "''"), -(60025, 1, "''"), -(60024, 1, "''"), -(60023, 1, "''"), -(60024, 8, "''"), -(60001, 4, "''"), -(60000, 1, "''"), -(60049, 20, "''"), -(60073, 42, "''"), -(60001, 104, "' pub fn modify(&mut self, userpos: usize, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {'"), -(60102, 66, "''"), -(60118, 0, "'s'"), -(60119, 0, "'e'"), -(60120, 0, "'l'"), -(60121, 0, "'f'"), -(60122, 0, "'.'"), -(60170, 0, "'s'"), -(60171, 0, "'e'"), -(60172, 0, "'l'"), -(60173, 0, "'f'"), -(60174, 0, "'.'"), -(60278, 0, "'s'"), -(60279, 0, "'e'"), -(60280, 0, "'l'"), -(60281, 0, "'f'"), -(60282, 0, "'.'"), -(60283, 0, "'item_offset'"), -(60294, 6, "''"), -(60470, 0, "'s'"), -(60471, 0, "'e'"), -(60472, 0, "'l'"), -(60473, 0, "'f'"), -(60474, 0, "'.'"), -(60502, 0, "'l'"), -(60503, 0, "'i'"), -(60504, 0, "'s'"), -(60505, 0, "'t'"), -(60506, 0, "'.'"), -(60563, 0, "'l'"), -(60564, 0, "'i'"), -(60565, 0, "'s'"), -(60566, 0, "'t'"), -(60567, 0, "'.'"), -(60589, 0, "'l'"), -(60590, 0, "'i'"), -(60591, 0, "'s'"), -(60592, 0, "'t'"), -(60593, 0, "'.'"), -(60666, 0, "'s'"), -(60667, 0, "'e'"), -(60668, 0, "'l'"), -(60669, 0, "'f'"), -(60670, 0, "'.'"), -(60677, 0, "')'"), -(60666, 0, "'('"), -(60033, 16, "''"), -(60018, 0, "'_'"), -(60019, 0, "'i'"), -(60020, 0, "'t'"), -(60021, 0, "'e'"), -(60022, 0, "'m'"), -(60780, 101, "''"), -(60335, 0, "'n '"), -(60344, 0, "'i'"), -(60345, 0, "'f'"), -(60346, 0, "' '"), -(60347, 0, "'('"), -(60347, 1, "''"), -(60347, 0, "'n'"), -(60348, 0, "'e'"), -(60349, 0, "'w'"), -(60350, 0, "'_'"), -(60347, 4, "'new_usersize'"), -(60359, 0, "' '"), -(60360, 0, "'>'"), -(60361, 0, "' '"), -(60362, 0, "'s'"), -(60363, 0, "'e'"), -(60364, 0, "'l'"), -(60365, 0, "'f'"), -(60366, 0, "'.'"), -(60367, 0, "'i'"), -(60368, 0, "'t'"), -(60369, 0, "'e'"), -(60367, 3, "'item_offset'"), -(60336, 42, "''"), -(60335, 1, "''"), -(60635, 0, "'n '"), -(60648, 0, "'n '"), -(60636, 12, "''"), -(60649, 0, "' if new_usersize > self.item_offset'"), -(60637, 20, "' '"), -(60683, 0, "' '"), -(60684, 0, "'{'"), -(60685, 0, "'n '"), -(60702, 0, "'n '"), -(60686, 16, "''"), -(60687, 16, "' }'"), -(60686, 0, "' '"), -(60702, 0, "'s'"), -(60703, 0, "'e'"), -(60704, 0, "'l'"), -(60705, 0, "'f'"), -(60706, 0, "'.'"), -(60707, 0, "'i'"), -(60708, 0, "'t'"), -(60709, 0, "'e'"), -(60710, 0, "'m'"), -(60711, 0, "'_'"), -(60707, 5, "'item_offset'"), -(60718, 0, "' '"), -(60719, 0, "'='"), -(60720, 0, "' '"), -(60721, 0, "'n'"), -(60722, 0, "'e'"), -(60723, 0, "'w'"), -(60724, 0, "'_'"), -(60725, 0, "'u'"), -(60721, 5, "'new_usersize'"), -(60733, 0, "';'"), -(60636, 112, "''"), -(60636, 0, "'n if new_usersize > self.item_offset {n self.item_offset = new_usersize;n }'"), -(60734, 0, "' '"), -(60735, 0, "'/'"), -(60736, 0, "'/'"), -(60737, 0, "' '"), -(60737, 1, "''"), -(60736, 1, "''"), -(60735, 1, "''"), -(60734, 1, "''"), -(60636, 0, "'n '"), -(60649, 0, "'s'"), -(60650, 0, "'e'"), -(60651, 0, "'l'"), -(60652, 0, "'f'"), -(60653, 0, "'.'"), -(60654, 0, "'i'"), -(60655, 0, "'t'"), -(60656, 0, "'e'"), -(60657, 0, "'m'"), -(60654, 4, "'item_offset'"), -(60665, 0, "' '"), -(60666, 0, "'='"), -(60667, 0, "' '"), -(60668, 0, "'s'"), -(60669, 0, "'e'"), -(60670, 0, "'l'"), -(60671, 0, "'f'"), -(60672, 0, "'.'"), -(60673, 0, "'i'"), -(60673, 1, "'item_offset'"), -(60684, 0, "'.'"), -(60685, 0, "'m'"), -(60686, 0, "'a'"), -(60685, 2, "''"), -(60684, 1, "''"), -(60667, 0, "' '"), -(60668, 0, "'u'"), -(60669, 0, "'s'"), -(60670, 0, "'i'"), -(60671, 0, "'z'"), -(60672, 0, "'e'"), -(60673, 0, "':'"), -(60674, 0, "':'"), -(60675, 0, "'m'"), -(60676, 0, "'a'"), -(60677, 0, "'x'"), -(60678, 0, "'('"), -(60679, 1, "''"), -(60695, 0, "','"), -(60696, 0, "' '"), -(60697, 0, "'new_usersize'"), -(60709, 0, "')'"), -(60710, 0, "';'"), -(60712, 112, "''"), -(60635, 1, "''"), -(53100, 8, "''"), -(53130, 20, "''"), -(53154, 42, "''"), -(53079, 107, "' pub fn modify_at(&mut self, userpos: usize, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {'"), -(53183, 808, "''"), -(53182, 1, "''"), -(53182, 0, "'n '"), -(53191, 0, "'s'"), -(53192, 0, "'e'"), -(53193, 0, "'l'"), -(53194, 0, "'f'"), -(53195, 0, "'.'"), -(53196, 0, "'e'"), -(53197, 0, "'d'"), -(53198, 0, "'i'"), -(53199, 0, "'t'"), -(53200, 0, "'('"), -(53201, 0, "'s'"), -(53202, 0, "'t'"), -(53203, 0, "'a'"), -(53204, 0, "'r'"), -(53205, 0, "'t'"), -(53206, 0, "'_'"), -(53207, 0, "'u'"), -(53201, 7, "'start_userpos'"), -(53214, 0, "','"), -(53215, 0, "' '"), -(53216, 0, "'|'"), -(53217, 0, "'e'"), -(53218, 0, "'d'"), -(53219, 0, "'i'"), -(53220, 0, "'t'"), -(53221, 0, "'|'"), -(53201, 1, "''"), -(53201, 1, "''"), -(53201, 1, "''"), -(53201, 1, "''"), -(53201, 1, "''"), -(53201, 1, "''"), -(53216, 0, "' '"), -(53217, 0, "'{'"), -(53218, 0, "'n '"), -(53231, 0, "'s'"), -(53232, 0, "'e'"), -(53232, 1, "''"), -(53231, 1, "''"), -(53231, 0, "'e'"), -(53232, 0, "'d'"), -(53233, 0, "'i'"), -(53234, 0, "'t'"), -(53235, 0, "'.'"), -(53236, 0, "'m'"), -(53237, 0, "'o'"), -(53238, 0, "'d'"), -(53239, 0, "'i'"), -(53236, 4, "'modify_item'"), -(53097, 0, "'i'"), -(53098, 0, "'t'"), -(53099, 0, "'e'"), -(53100, 0, "'m'"), -(53101, 0, "'_'"), -(53252, 0, "'('"), -(53253, 0, "'m'"), -(53254, 0, "'o'"), -(53255, 0, "'d'"), -(53256, 0, "'i'"), -(53257, 0, "'f'"), -(53258, 0, "'y'"), -(53253, 6, "'modify_fn'"), -(53262, 0, "')'"), -(53263, 0, "';'"), -(53264, 0, "'n '"), -(53265, 12, "' }'"), -(53222, 1, "''"), -(53188, 75, "' self.edit(userpos, |edit| edit.modify_item(modify_fn);'"), -(53188, 72, "' self.edit(userpos, |edit| edit.modify_item(modify_fn); }'"), -(53250, 1, "''"), -(53249, 1, "''"), -(53249, 1, "''"), -(53249, 0, "')'"), -(53250, 0, "';'"), -(58398, 0, "'n '"), -(58403, 0, "'n '"), -(58399, 4, "''"), -(58404, 0, "' pub fn insert_at(&mut self, mut userpos: usize, mut contents: I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if contents.len() == 0 { return; }n let num_inserted_items = contents.len();n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents, &mut notify);nn self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_item(&mut cursor, start, &mut notify);nn // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.n self.insert_at_iter(&mut cursor, &mut contents, &mut notify);nn self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut notify);n }n }nn }'"), -(58400, 8, "' '"), -(58417, 3, "''"), -(58418, 8, "''"), -(58430, 21, "''"), -(58430, 0, "','"), -(58447, 20, "''"), -(58459, 42, "''"), -(58400, 95, "' pub fn insert(&mut self, mut contents: I) where I: ExactSizeIterator {'"), -(58593, 118, "''"), -(58592, 1, "''"), -(58592, 0, "'n'"), -(58593, 0, "' userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);n'"), -(58653, 0, "'// '"), -(58601, 0, "'// '"), -(58750, 6, "'s'"), -(58751, 0, "'e'"), -(58752, 0, "'l'"), -(58753, 0, "'f'"), -(58754, 0, "'.'"), -(58755, 0, "'i'"), -(58756, 0, "'t'"), -(58757, 0, "'e'"), -(58758, 0, "'m'"), -(58759, 0, "'_'"), -(58755, 5, "'item_offset'"), -(58795, 0, "'l'"), -(58796, 0, "'i'"), -(58797, 0, "'s'"), -(58798, 0, "'t'"), -(58799, 0, "'.'"), -(58820, 0, "'s'"), -(58821, 0, "'e'"), -(58822, 0, "'l'"), -(58823, 0, "'f'"), -(58824, 0, "'.'"), -(58853, 0, "'s'"), -(58854, 0, "'e'"), -(58855, 0, "'l'"), -(58856, 0, "'f'"), -(58857, 0, "'.'"), -(58849, 4, "''"), -(58848, 1, "''"), -(58848, 0, "'&mut '"), -(58849, 4, "''"), -(58849, 0, "'mut '"), -(58888, 0, "'.'"), -(58889, 0, "'l'"), -(58890, 0, "'i'"), -(58891, 0, "'s'"), -(58892, 0, "'t'"), -(58915, 0, "'s'"), -(58916, 0, "'e'"), -(58917, 0, "'l'"), -(58918, 0, "'f'"), -(58919, 0, "'.'"), -(58716, 0, "'n '"), -(58725, 0, "'n '"), -(58717, 8, "''"), -(58726, 0, "'l'"), -(58727, 0, "'e'"), -(58728, 0, "'t'"), -(58729, 0, "' '"), -(58730, 0, "'i'"), -(58731, 0, "'n'"), -(58732, 0, "'i'"), -(58733, 0, "'t'"), -(58734, 0, "'i'"), -(58735, 0, "'a'"), -(58736, 0, "'_'"), -(58736, 1, "''"), -(58736, 0, "'l'"), -(58737, 0, "'_'"), -(58738, 0, "'u'"), -(58739, 0, "'s'"), -(58740, 0, "'e'"), -(58741, 0, "'r'"), -(58742, 0, "'p'"), -(58743, 0, "'o'"), -(58744, 0, "'s'"), -(58745, 0, "' '"), -(58746, 0, "'='"), -(58747, 0, "' '"), -(58748, 0, "'s'"), -(58749, 0, "'e'"), -(58750, 0, "'l'"), -(58751, 0, "'f'"), -(58752, 0, "'.'"), -(58753, 0, "'c'"), -(58754, 0, "'u'"), -(58755, 0, "'r'"), -(58756, 0, "'s'"), -(58757, 0, "'o'"), -(58758, 0, "'r'"), -(58759, 0, "'.'"), -(58760, 0, "'u'"), -(58761, 0, "'s'"), -(58762, 0, "'e'"), -(58763, 0, "'r'"), -(58764, 0, "'p'"), -(58765, 0, "'o'"), -(58766, 0, "'s'"), -(58767, 0, "';'"), -(58730, 15, "'s'"), -(58731, 0, "'t'"), -(58732, 0, "'a'"), -(58733, 0, "'r'"), -(58734, 0, "'t'"), -(58735, 0, "'_'"), -(58736, 0, "'u'"), -(58737, 0, "'s'"), -(58738, 0, "'e'"), -(58739, 0, "'r'"), -(58740, 0, "'p'"), -(58741, 0, "'o'"), -(58742, 0, "'s'"), -(58978, 7, "'start_userpos'"), -(59070, 0, "'s'"), -(59071, 0, "'e'"), -(59072, 0, "'l'"), -(59073, 0, "'f'"), -(59074, 0, "'.'"), -(59161, 6, "'s'"), -(59162, 0, "'e'"), -(59163, 0, "'l'"), -(59164, 0, "'f'"), -(59165, 0, "'.'"), -(59166, 0, "'l'"), -(59167, 0, "'o'"), -(59168, 0, "'c'"), -(59169, 0, "'a'"), -(59166, 4, "'local_offset'"), -(59166, 12, "'loca'"), -(59161, 9, "'offset'"), -(59161, 6, "'self.loca'"), -(59166, 4, "'local_offset'"), -(59166, 1, "''"), -(59166, 1, "''"), -(59166, 1, "''"), -(59166, 1, "''"), -(59166, 1, "''"), -(59166, 0, "'i'"), -(59167, 0, "'t'"), -(59168, 0, "'e'"), -(59169, 0, "'m'"), -(59297, 0, "'s'"), -(59298, 0, "'e'"), -(59299, 0, "'l'"), -(59300, 0, "'f'"), -(59301, 0, "'.'"), -(59332, 0, "'.'"), -(59333, 0, "'l'"), -(59334, 0, "'i'"), -(59335, 0, "'s'"), -(59336, 0, "'t'"), -(59351, 6, "'self.item_offset'"), -(59463, 0, "'.'"), -(59464, 0, "'l'"), -(59465, 0, "'i'"), -(59466, 0, "'s'"), -(59467, 0, "'t'"), -(59486, 0, "'s'"), -(59487, 0, "'e'"), -(59487, 1, "''"), -(59486, 1, "''"), -(59487, 0, "'s'"), -(59488, 0, "'e'"), -(59489, 0, "'l'"), -(59490, 0, "'f'"), -(59491, 0, "'.'"), -(59512, 0, "'s'"), -(59513, 0, "'e'"), -(59514, 0, "'l'"), -(59515, 0, "'f'"), -(59516, 0, "'.'"), -(59668, 0, "'.'"), -(59669, 0, "'l'"), -(59670, 0, "'i'"), -(59671, 0, "'s'"), -(59672, 0, "'t'"), -(59694, 0, "'s'"), -(59695, 0, "'e'"), -(59696, 0, "'l'"), -(59697, 0, "'f'"), -(59698, 0, "'.'"), -(59727, 0, "'s'"), -(59728, 0, "'e'"), -(59729, 0, "'l'"), -(59730, 0, "'f'"), -(59731, 0, "'.'"), -(59763, 0, "'l'"), -(59764, 0, "'i'"), -(59765, 0, "'s'"), -(59766, 0, "'t'"), -(59767, 0, "'.'"), -(59789, 0, "'s'"), -(59790, 0, "'e'"), -(59791, 0, "'l'"), -(59792, 0, "'f'"), -(59793, 0, "'.'"), -(59802, 7, "'s'"), -(59803, 0, "'t'"), -(59804, 0, "'a'"), -(59805, 0, "'r'"), -(59802, 4, "'userpos'"), -(59802, 7, "'s'"), -(59803, 0, "'t'"), -(59804, 0, "'a'"), -(59805, 0, "'r'"), -(59802, 4, "'start_userpos'"), -(59860, 0, "'l'"), -(59861, 0, "'i'"), -(59862, 0, "'s'"), -(59863, 0, "'t'"), -(59864, 0, "'.'"), -(59885, 0, "'s'"), -(59886, 0, "'e'"), -(59887, 0, "'l'"), -(59888, 0, "'f'"), -(59889, 0, "'.'"), -(59925, 0, "'s'"), -(59926, 0, "'e'"), -(59927, 0, "'l'"), -(59928, 0, "'f'"), -(59929, 0, "'.'"), -(54724, 0, "'// '"), -(54710, 0, "'// '"), -(54625, 0, "'// '"), -(54544, 0, "'// '"), -(54465, 0, "'// '"), -(54425, 0, "'// '"), -(54344, 0, "'// '"), -(54275, 0, "'// '"), -(54202, 0, "'// '"), -(54133, 0, "'// '"), -(54103, 0, "'// '"), -(54032, 0, "'// '"), -(53960, 0, "'// '"), -(53902, 0, "'// '"), -(53881, 0, "'// '"), -(53801, 0, "'// '"), -(53722, 0, "'// '"), -(53693, 0, "'// '"), -(53676, 0, "'// '"), -(53609, 0, "'// '"), -(53557, 0, "'// '"), -(53499, 0, "'// '"), -(53456, 0, "'// '"), -(53447, 0, "'n '"), -(53456, 0, "'s'"), -(53457, 0, "'e'"), -(53458, 0, "'l'"), -(53459, 0, "'f'"), -(53460, 0, "'.'"), -(53461, 0, "'e'"), -(53462, 0, "'d'"), -(53463, 0, "'i'"), -(53461, 3, "'edit_notify(userpos: usize, notify: fn(&[C::Item], ItemMarker), f: F)'"), -(53473, 14, "'u'"), -(53474, 0, "'s'"), -(53475, 0, "'e'"), -(53476, 0, "'r'"), -(53477, 0, "'p'"), -(53478, 0, "'o'"), -(53479, 0, "'s'"), -(53482, 37, "''"), -(53482, 0, "'n'"), -(53483, 0, "'o'"), -(53484, 0, "'t'"), -(53485, 0, "'i'"), -(53486, 0, "'f'"), -(53487, 0, "'y'"), -(53280, 8, "''"), -(53329, 20, "''"), -(53341, 42, "''"), -(53401, 1, "''"), -(53400, 1, "''"), -(53399, 1, "''"), -(53398, 1, "''"), -(53397, 1, "''"), -(53396, 1, "''"), -(53395, 1, "''"), -(53405, 8, "''"), -(53405, 5, "''"), -(53405, 0, "'|'"), -(53406, 0, "'e'"), -(53407, 0, "'d'"), -(53408, 0, "'i'"), -(53409, 0, "'t'"), -(53410, 0, "'|'"), -(53411, 0, "' '"), -(53412, 0, "'e'"), -(53413, 0, "'d'"), -(53414, 0, "'i'"), -(53415, 0, "'t'"), -(53416, 0, "'.'"), -(53417, 0, "'i'"), -(53418, 0, "'n'"), -(53419, 0, "'s'"), -(53420, 0, "'e'"), -(53421, 0, "'r'"), -(53422, 0, "'t'"), -(53423, 0, "'('"), -(53424, 0, "'c'"), -(53425, 0, "'o'"), -(53426, 0, "'n'"), -(53427, 0, "'t'"), -(53428, 0, "'e'"), -(53429, 0, "'n'"), -(53430, 0, "'t'"), -(53431, 0, "'s'"), -(53432, 0, "')'"), -(53433, 0, "')'"), -(54944, 17, "''"), -(21484, 17, "''"), -(1247, 2, "'2'"), -(1247, 1, "'10'"), -(53418, 1347, "''"), -(53417, 1, "''"), -(53297, 3, "''"), -(53277, 3, "''"), -(53294, 1, "''"), -(53277, 1, "''"), -(58628, 1, "''"), -(58634, 0, "'n '"), -(58639, 0, "'n '"), -(58635, 4, "''"), -(58640, 0, "'p'"), -(58641, 0, "'u'"), -(58642, 0, "'b'"), -(58643, 0, "' '"), -(58644, 0, "'f'"), -(58645, 0, "'n'"), -(58646, 0, "' '"), -(58647, 0, "'i'"), -(58648, 0, "'n'"), -(58649, 0, "'s'"), -(58650, 0, "'e'"), -(58651, 0, "'r'"), -(58652, 0, "'t'"), -(58653, 0, "'_'"), -(58654, 0, "'s'"), -(58655, 0, "'l'"), -(58656, 0, "'i'"), -(58657, 0, "'c'"), -(58658, 0, "'e'"), -(58659, 0, "'('"), -(58660, 0, "'&'"), -(58661, 0, "'m'"), -(58662, 0, "'u'"), -(58663, 0, "'t'"), -(58664, 0, "' '"), -(58665, 0, "'s'"), -(58666, 0, "'e'"), -(58667, 0, "'l'"), -(58668, 0, "'f'"), -(58669, 0, "','"), -(58670, 0, "' '"), -(58671, 0, "'&'"), -(58672, 0, "'['"), -(58673, 0, "'C'"), -(58674, 0, "':'"), -(58675, 0, "':'"), -(58676, 0, "'I'"), -(58677, 0, "'t'"), -(58678, 0, "'e'"), -(58679, 0, "'m'"), -(58680, 0, "']'"), -(58671, 0, "'i'"), -(58672, 0, "'t'"), -(58673, 0, "'e'"), -(58674, 0, "'m'"), -(58675, 0, "'s'"), -(58676, 0, "':'"), -(58677, 0, "' '"), -(58688, 0, "')'"), -(58689, 0, "' '"), -(58690, 0, "'w'"), -(58691, 0, "'h'"), -(58692, 0, "'e'"), -(58693, 0, "'r'"), -(58694, 0, "'e'"), -(58695, 0, "' '"), -(58696, 0, "'C'"), -(58697, 0, "':'"), -(58698, 0, "':'"), -(58699, 0, "'I'"), -(58700, 0, "'m'"), -(58700, 1, "''"), -(58700, 0, "'t'"), -(58701, 0, "'e'"), -(58702, 0, "'m'"), -(58703, 0, "':'"), -(58704, 0, "' '"), -(58705, 0, "'C'"), -(58706, 0, "'o'"), -(58707, 0, "'p'"), -(58708, 0, "'y'"), -(58709, 0, "' '"), -(58710, 0, "'{'"), -(58711, 0, "'n '"), -(58720, 0, "'n '"), -(58712, 8, "''"), -(58713, 8, "' }'"), -(58712, 0, "' '"), -(58720, 0, "'s'"), -(58721, 0, "'e'"), -(58722, 0, "'l'"), -(58723, 0, "'f'"), -(58724, 0, "'.'"), -(58725, 0, "'i'"), -(58726, 0, "'n'"), -(58727, 0, "'s'"), -(58728, 0, "'e'"), -(58729, 0, "'r'"), -(58730, 0, "'t'"), -(58731, 0, "'('"), -(58732, 0, "'i'"), -(58733, 0, "'t'"), -(58734, 0, "'e'"), -(58735, 0, "'m'"), -(58736, 0, "'s'"), -(58737, 0, "'.'"), -(58738, 0, "'i'"), -(58739, 0, "'t'"), -(58740, 0, "'e'"), -(58741, 0, "'r'"), -(58742, 0, "'('"), -(58743, 0, "')'"), -(58744, 0, "'.'"), -(58745, 0, "'c'"), -(58746, 0, "'l'"), -(58746, 1, "''"), -(58746, 0, "'o'"), -(58747, 0, "'p'"), -(58748, 0, "'e'"), -(58749, 0, "'i'"), -(58749, 1, "''"), -(58748, 1, "''"), -(58748, 0, "'i'"), -(58749, 0, "'e'"), -(58750, 0, "'d'"), -(58751, 0, "'('"), -(58752, 0, "')'"), -(58753, 0, "')'"), -(58754, 0, "';'"), -(58731, 0, "'_iter'"), -(57083, 0, "'_iter'"), -(53398, 0, "'_iter'"), -(57069, 0, "'n '"), -(57074, 0, "'n '"), -(57070, 4, "''"), -(57075, 0, "'p'"), -(57076, 0, "'u'"), -(57077, 0, "'b'"), -(57078, 0, "' '"), -(57079, 0, "'f'"), -(57080, 0, "'n'"), -(57081, 0, "' '"), -(57082, 0, "'i'"), -(57083, 0, "'n'"), -(57084, 0, "'s'"), -(57085, 0, "'e'"), -(57086, 0, "'r'"), -(57087, 0, "'t'"), -(57088, 0, "'('"), -(57088, 1, "''"), -(57088, 0, "'('"), -(57089, 0, "'&'"), -(57090, 0, "'m'"), -(57091, 0, "'u'"), -(57092, 0, "'t'"), -(57093, 0, "' '"), -(57094, 0, "'s'"), -(57095, 0, "'e'"), -(57096, 0, "'l'"), -(57097, 0, "'f'"), -(57098, 0, "','"), -(57099, 0, "' '"), -(57100, 0, "'i'"), -(57101, 0, "'t'"), -(57102, 0, "'e'"), -(57103, 0, "'m'"), -(57104, 0, "':'"), -(57105, 0, "' '"), -(57106, 0, "'C'"), -(57107, 0, "':'"), -(57108, 0, "':'"), -(57109, 0, "'I'"), -(57110, 0, "'t'"), -(57111, 0, "'e'"), -(57109, 3, "'Item'"), -(57113, 0, "')'"), -(57114, 0, "' '"), -(57115, 0, "'{'"), -(57116, 0, "'n '"), -(57125, 0, "'n '"), -(57117, 8, "''"), -(57118, 8, "' }'"), -(57117, 0, "' '"), -(57125, 0, "'s'"), -(57126, 0, "'e'"), -(57127, 0, "'l'"), -(57128, 0, "'f'"), -(57129, 0, "'.'"), -(57130, 0, "'i'"), -(57131, 0, "'n'"), -(57132, 0, "'s'"), -(57133, 0, "'e'"), -(57134, 0, "'r'"), -(57130, 5, "'insert_iter(mut contents: I)'"), -(57142, 15, "'i'"), -(57143, 0, "'t'"), -(57144, 0, "'e'"), -(57145, 0, "'r'"), -(57146, 0, "':'"), -(57147, 0, "':'"), -(57148, 0, "'o'"), -(57149, 0, "'n'"), -(57148, 2, "'once(value: T)'"), -(57153, 8, "'i'"), -(57154, 0, "'t'"), -(57155, 0, "'e'"), -(57156, 0, "'m'"), -(57159, 0, "';'"), -(57069, 97, "''"), -(58644, 0, "'nn pub fn insert(&mut self, item: C::Item) {n self.insert_iter(iter::once(item));n }'"), -(51993, 193, "''"), -(51992, 1, "''"), -(51992, 0, "'n'"), -(51993, 0, "'n // self.modify_at(start_userpos, Self::no_notify, |item, offset| {n // assert_eq!(offset, 0, 'replace_at must modify the entire item');n // *item = n // })'"), -(60521, 0, "'n '"), -(60526, 0, "'n '"), -(60522, 4, "''"), -(60527, 0, "'p'"), -(60528, 0, "'u'"), -(60529, 0, "'b'"), -(60530, 0, "' '"), -(60531, 0, "'f'"), -(60532, 0, "'n'"), -(60533, 0, "' '"), -(60534, 0, "'r'"), -(60535, 0, "'e'"), -(60536, 0, "'p'"), -(60537, 0, "'l'"), -(60538, 0, "'a'"), -(60539, 0, "'c'"), -(60540, 0, "'e'"), -(60541, 0, "'_'"), -(60542, 0, "'i'"), -(60543, 0, "'t'"), -(60544, 0, "'e'"), -(60545, 0, "'m'"), -(60546, 0, "'('"), -(60547, 0, "'&'"), -(60548, 0, "'s'"), -(60549, 0, "'e'"), -(60550, 0, "'l'"), -(60551, 0, "'f'"), -(60552, 0, "','"), -(60553, 0, "' '"), -(60554, 0, "'r'"), -(60555, 0, "'e'"), -(60556, 0, "'p'"), -(60557, 0, "'l'"), -(60558, 0, "'a'"), -(60559, 0, "'c'"), -(60560, 0, "'e'"), -(60561, 0, "'m'"), -(60562, 0, "'e'"), -(60563, 0, "'n'"), -(60564, 0, "'t'"), -(60565, 0, "':'"), -(60566, 0, "' '"), -(60567, 0, "'C'"), -(60568, 0, "':'"), -(60569, 0, "':'"), -(60570, 0, "'I'"), -(60571, 0, "'t'"), -(60572, 0, "'e'"), -(60573, 0, "'m'"), -(60574, 0, "')'"), -(60575, 0, "' '"), -(60576, 0, "'{'"), -(60577, 0, "'n '"), -(60586, 0, "'n '"), -(60578, 8, "''"), -(60579, 8, "' }'"), -(60578, 0, "' '"), -(60586, 0, "'s'"), -(60587, 0, "'e'"), -(60588, 0, "'l'"), -(60589, 0, "'f'"), -(60590, 0, "'.'"), -(60591, 0, "'m'"), -(60592, 0, "'o'"), -(60593, 0, "'d'"), -(60594, 0, "'i'"), -(60591, 4, "'modify_item(modify_fn: F)'"), -(60603, 12, "''"), -(60603, 0, "'|'"), -(60604, 0, "'e'"), -(60604, 1, "''"), -(60604, 0, "'o'"), -(60605, 0, "'l'"), -(60606, 0, "'d'"), -(60607, 0, "'|'"), -(60608, 0, "' '"), -(60609, 0, "'*'"), -(60610, 0, "'o'"), -(60611, 0, "'l'"), -(60612, 0, "'d'"), -(60613, 0, "' '"), -(60614, 0, "'='"), -(60615, 0, "' '"), -(60616, 0, "'r'"), -(60617, 0, "'e'"), -(60618, 0, "'p'"), -(60619, 0, "'l'"), -(60620, 0, "'a'"), -(60621, 0, "'c'"), -(60622, 0, "'e'"), -(60623, 0, "'m'"), -(60624, 0, "'e'"), -(60625, 0, "'n'"), -(60626, 0, "'t'"), -(60628, 0, "';'"), -(60607, 0, "','"), -(60608, 0, "' '"), -(60609, 0, "'o'"), -(60610, 0, "'f'"), -(60611, 0, "'f'"), -(60612, 0, "'s'"), -(60613, 0, "'e'"), -(60614, 0, "'t'"), -(60617, 0, "'{'"), -(60617, 1, "''"), -(60609, 0, "'_'"), -(60577, 0, "'n '"), -(60577, 9, "''"), -(60548, 0, "'m'"), -(60549, 0, "'u'"), -(60550, 0, "'t'"), -(60551, 0, "' '"), -(52193, 304, "''"), -(52192, 1, "''"), -(56367, 0, "'n '"), -(56372, 0, "'n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }'"), -(56368, 4, "''"), -(56672, 0, "'n '"), -(56673, 4, "''"), -(56367, 1, "''"), -(56400, 20, "''"), -(56509, 0, "'.'"), -(56510, 0, "'l'"), -(56511, 0, "'i'"), -(56512, 0, "'s'"), -(56513, 0, "'t'"), -(56589, 0, "'.'"), -(56590, 0, "'l'"), -(56591, 0, "'i'"), -(56592, 0, "'s'"), -(56593, 0, "'t'"), -(56632, 0, "'s'"), -(56633, 0, "'e'"), -(56634, 0, "'l'"), -(56635, 0, "'f'"), -(56636, 0, "'.'"), -(59319, 5, "''"), -(58433, 5, "''"), -(57609, 5, "''"), -(59309, 0, "'.list'"), -(58428, 0, "'.list'"), -(57609, 0, "'.list'"), -(59345, 14, "''"), -(58459, 14, "''"), -(57635, 14, "''"), -(59292, 5, "''"), -(58420, 5, "''"), -(57610, 5, "''"), -(56632, 0, "'&'"), -(53999, 428, "''"), -(53998, 1, "''"), -(53431, 166, "''"), -(53430, 1, "''"), -(53430, 0, "'n '"), -(53431, 4, "''"), -(53379, 1, "''"), -(53345, 67, "' self.edit(userpos, |edit| edit.del(num_items);'"), -(53345, 65, "' self.edit(userpos, |edit| edit.del(num_items); })'"), -(53398, 1, "''"), -(53399, 1, "''"), -(53398, 1, "''"), -(53832, 8, "''"), -(58752, 0, "'I'"), -(58753, 0, "'o'"), -(58754, 0, "'t'"), -(58755, 0, "'u'"), -(58756, 0, "'i'"), -(58752, 5, "'O'"), -(58753, 0, "'p'"), -(58754, 0, "'t'"), -(58755, 0, "'i'"), -(58756, 0, "'o'"), -(58757, 0, "'n'"), -(58758, 0, "'<'"), -(58776, 0, "'>'"), -(58779, 0, "'n '"), -(58788, 0, "'i'"), -(58789, 0, "'f'"), -(58790, 0, "' '"), -(58791, 0, "'s'"), -(58792, 0, "'e'"), -(58793, 0, "'l'"), -(58794, 0, "'f'"), -(58795, 0, "'.'"), -(58796, 0, "'c'"), -(58797, 0, "'u'"), -(58798, 0, "'r'"), -(58799, 0, "'s'"), -(58800, 0, "'o'"), -(58801, 0, "'r'"), -(58802, 0, "'.'"), -(58803, 0, "'u'"), -(58804, 0, "'s'"), -(58805, 0, "'e'"), -(58806, 0, "'r'"), -(58807, 0, "'p'"), -(58808, 0, "'o'"), -(58809, 0, "'s'"), -(58810, 0, "' '"), -(58811, 0, "'='"), -(58812, 0, "'='"), -(58813, 0, "' '"), -(58814, 0, "'0'"), -(58815, 0, "' '"), -(58816, 0, "'7'"), -(58816, 1, "''"), -(58816, 0, "'&'"), -(58817, 0, "'&'"), -(58818, 0, "' '"), -(58819, 0, "'s'"), -(58820, 0, "'e'"), -(58821, 0, "'l'"), -(58822, 0, "'f'"), -(58823, 0, "'.'"), -(58824, 0, "'i'"), -(58825, 0, "'t'"), -(58826, 0, "'e'"), -(58824, 3, "'item_offset'"), -(58835, 0, "' '"), -(58836, 0, "'='"), -(58837, 0, "'='"), -(58838, 0, "' '"), -(58839, 0, "'0'"), -(58840, 0, "' '"), -(58841, 0, "'{'"), -(58842, 0, "' '"), -(58843, 0, "'N'"), -(58844, 0, "'o'"), -(58845, 0, "'n'"), -(58846, 0, "'e'"), -(58847, 0, "' '"), -(58848, 0, "'}'"), -(58849, 0, "'n '"), -(58858, 0, "'e'"), -(58859, 0, "'l'"), -(58860, 0, "'s'"), -(58861, 0, "'e'"), -(58862, 0, "' '"), -(58863, 0, "'{'"), -(58864, 0, "' '"), -(58850, 81, "' else { (unsafe { self.cursor.current_item() }, self.item_offset)'"), -(58865, 0, "'S'"), -(58866, 0, "'o'"), -(58867, 0, "'m'"), -(58868, 0, "'e'"), -(58869, 0, "'('"), -(58927, 0, "')'"), -(58928, 0, "' '"), -(58929, 0, "'}'"), -(16234, 1, "''"), -(16235, 16, "''"), -(16234, 1, "''"), -(16233, 1, "''"), -(16232, 1, "''"), -(16209, 0, "'self.local_index'"), -(16225, 0, "' '"), -(16226, 0, "'<'"), -(16227, 0, "' '"), -(29278, 79, "' if usersize >= offset { break; } // We're in the middle of an item.n'"), -(29278, 80, "' if usersize offset { break; } // We're in the middle of an item.n'"), -(29278, 78, "' if usersize > offset { break; } // We're in the middle of an item.n'"), -(58717, 254, "' pub fn prev_item(&self) -> Option<(&C::Item, usize)> {n if self.item_offset == 0 {n assert!(self.cursor.userpos == 0, 'Invalid cursor');n Nonen } else {n Some((unsafe { self.cursor.current_item() }, self.item_offset))n }n }nn pub fn advance_item(&mut self) {n'"), -(16098, 0, "' unsafe fn prev_item(&self) -> &'a C::Item {n let node = &*self.here_ptr();n assert!(self.local_index > 0);n debug_assert!(self.local_index < node.num_items as usize);n &*(node.items[self.local_index - 1].as_ptr())n }nn'"), -(59163, 76, "' Some((unsafe { self.cursor.prev_item() }, self.item_offset))n'"), -(59235, 0, "'n } else {'"), -(59146, 17, "''"), -(59063, 0, "'n '"), -(59076, 0, "'i'"), -(59077, 0, "'f'"), -(59078, 0, "' '"), -(59079, 0, "'s'"), -(59080, 0, "'e'"), -(59081, 0, "'l'"), -(59082, 0, "'f'"), -(59083, 0, "'.'"), -(59084, 0, "'c'"), -(59085, 0, "'u'"), -(59086, 0, "'r'"), -(59087, 0, "'s'"), -(59088, 0, "'o'"), -(59089, 0, "'r'"), -(59090, 0, "'.'"), -(59091, 0, "'i'"), -(59092, 0, "'n'"), -(59093, 0, "'d'"), -(59094, 0, "'e'"), -(59095, 0, "'x'"), -(59091, 5, "'local_index'"), -(59102, 0, "' '"), -(59103, 0, "'='"), -(59104, 0, "'='"), -(59105, 0, "' '"), -(59106, 0, "'0'"), -(59107, 0, "' '"), -(59108, 0, "'{'"), -(59122, 0, "' '"), -(59191, 0, "' '"), -(59199, 0, "'n '"), -(59200, 16, "' }'"), -(59213, 0, "' '"), -(59214, 0, "'e'"), -(59215, 0, "'l'"), -(59216, 0, "'s'"), -(59217, 0, "'e'"), -(59218, 0, "' '"), -(59219, 0, "'{'"), -(59233, 0, "' '"), -(59297, 0, "'n '"), -(59298, 16, "' }'"), -(59298, 13, "' '"), -(59298, 16, "' }'"), -(59328, 0, "'n '"), -(59341, 0, "'Some((unsafe { self.cursor.prev_item() }, self.item_offset))'"), -(59368, 9, "'n'"), -(59369, 0, "'e'"), -(59369, 1, "''"), -(59368, 1, "''"), -(59368, 0, "'c'"), -(59369, 0, "'u'"), -(59370, 0, "'r'"), -(59371, 0, "'r'"), -(59368, 4, "'current_item()'"), -(59381, 1, "''"), -(59380, 1, "''"), -(16263, 0, "'='"), -(20455, 80, "''"), -(20454, 1, "''"), -(20453, 1, "''"), -(20452, 1, "''"), -(53884, 1, "''"), -(53883, 1, "''"), -(53883, 5, "''"), -(53874, 0, "'S'"), -(53875, 0, "'e'"), -(53876, 0, "'l'"), -(53877, 0, "'f'"), -(53878, 0, "':'"), -(53879, 0, "':'"), -(1897, 0, "'n'"), -(1898, 0, "'n'"), -(1899, 0, "'n'"), -(1899, 1, "''"), -(1899, 0, "'i'"), -(1900, 0, "'m'"), -(1901, 0, "'p'"), -(1902, 0, "'l'"), -(1903, 0, "' '"), -(1904, 0, "'I'"), -(1905, 0, "'t'"), -(1906, 0, "'e'"), -(1907, 0, "'m'"), -(1904, 4, "'ItemMarker'"), -(1914, 0, "' '"), -(1915, 0, "'{'"), -(1916, 0, "'n '"), -(1921, 0, "'n '"), -(1917, 4, "''"), -(1918, 4, "'}'"), -(1917, 0, "' '"), -(1921, 0, "'n'"), -(1922, 0, "'u'"), -(1923, 0, "'l'"), -(1924, 0, "'l'"), -(1921, 0, "'f'"), -(1922, 0, "'n'"), -(1923, 0, "' '"), -(1928, 0, "')'"), -(1929, 0, "'('"), -(1929, 1, "''"), -(1928, 1, "''"), -(1928, 0, "'('"), -(1929, 0, "')'"), -(1930, 0, "' '"), -(1931, 0, "'-'"), -(1932, 0, "'>'"), -(1933, 0, "' '"), -(1934, 0, "'I'"), -(1935, 0, "'t'"), -(1936, 0, "'e'"), -(1937, 0, "'m'"), -(1934, 4, "'ItemMarker'"), -(1944, 0, "' '"), -(1945, 0, "'{'"), -(1946, 0, "'n '"), -(1955, 0, "'I'"), -(1956, 0, "'t'"), -(1957, 0, "'e'"), -(1958, 0, "'m'"), -(1959, 0, "'M'"), -(1955, 5, "'ItemMarker'"), -(1965, 0, "' '"), -(1966, 0, "'{'"), -(1967, 0, "' '"), -(1968, 0, "'p'"), -(1969, 0, "'t'"), -(1970, 0, "'r'"), -(1971, 0, "':'"), -(1972, 0, "' '"), -(1973, 0, "'P'"), -(1974, 0, "'t'"), -(1975, 0, "'r'"), -(1975, 1, "''"), -(1974, 1, "''"), -(1973, 1, "''"), -(1973, 0, "'p'"), -(1974, 0, "'t'"), -(1975, 0, "'r'"), -(1976, 0, "':'"), -(1977, 0, "':'"), -(1978, 0, "'n'"), -(1979, 0, "'u'"), -(1980, 0, "'l'"), -(1978, 3, "'null()'"), -(1984, 0, "' '"), -(1985, 0, "'}'"), -(1986, 0, "' '"), -(1986, 1, "''"), -(1986, 0, "'n '"), -(1987, 8, "' }'"), -(1903, 0, "'<'"), -(1904, 0, "'C'"), -(1905, 0, "'>'"), -(1917, 0, "'<'"), -(1918, 0, "'C'"), -(1919, 0, "'>'"), -(1950, 0, "'<'"), -(1951, 0, "'C'"), -(1952, 0, "'>'"), -(1905, 0, "':'"), -(1906, 0, "' '"), -(1907, 0, "'L'"), -(1908, 0, "'i'"), -(1909, 0, "'s'"), -(1910, 0, "'t'"), -(1907, 4, "'ListConfig'"), -(2003, 0, "'_'"), -(2004, 0, "'m'"), -(2005, 0, "'u'"), -(2006, 0, "'t'"), -(1939, 0, "'p'"), -(1940, 0, "'u'"), -(1941, 0, "'b'"), -(1942, 0, "' '"), -(1935, 0, "' pub fn null() -> ItemMarker {n ItemMarker { ptr: ptr::null_mut() }n }n'"), -(2033, 0, "'i'"), -(2034, 0, "'s'"), -(2035, 0, "'_'"), -(2041, 0, "'I'"), -(2042, 0, "'T'"), -(2041, 2, "'ItemMarker'"), -(2051, 0, "'<'"), -(2052, 0, "'C'"), -(2053, 0, "'>'"), -(2041, 13, "'&'"), -(2042, 0, "'s'"), -(2043, 0, "'e'"), -(2044, 0, "'l'"), -(2045, 0, "'f'"), -(2051, 13, "'b'"), -(2052, 0, "'o'"), -(2053, 0, "'o'"), -(2054, 0, "'l'"), -(2066, 35, "''"), -(2066, 0, "'p'"), -(2067, 0, "'t'"), -(2068, 0, "'r'"), -(2069, 0, "':'"), -(2070, 0, "':'"), -(2071, 0, "'i'"), -(2072, 0, "'s'"), -(2072, 1, "''"), -(2071, 1, "''"), -(2070, 1, "''"), -(2070, 0, "':'"), -(2066, 5, "''"), -(2066, 0, "'s'"), -(2067, 0, "'e'"), -(2068, 0, "'l'"), -(2069, 0, "'.'"), -(2069, 1, "''"), -(2069, 0, "'f'"), -(2070, 0, "'.'"), -(2071, 0, "'p'"), -(2072, 0, "'t'"), -(2073, 0, "'r'"), -(2074, 0, "'.'"), -(2075, 0, "'i'"), -(2076, 0, "'s'"), -(2077, 0, "'_'"), -(2078, 0, "'n'"), -(2079, 0, "'u'"), -(2080, 0, "'l'"), -(2081, 0, "'l'"), -(2082, 0, "'('"), -(2083, 0, "')'"), -(2041, 1, "''"), -(2021, 0, "'n '"), -(54174, 0, "'// '"), -(54153, 0, "'// '"), -(54097, 0, "'// '"), -(54006, 0, "'// '"), -(53939, 0, "'// '"), -(53881, 0, "'// '"), -(53840, 0, "'// '"), -(53780, 0, "'// '"), -(2022, 4, "''"), -(53772, 0, "' // pub fn edit(&mut self, userpos: usize, f: F) -> Rn // where F: FnOnce(&mut Edit) -> R {n // // self.edit_notify(userpos, no_notify_x::, f)n // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // let mut edit = Edit { list: self, cursor, item_offset, notify: Self::no_notify };nn // // TODO: Or maybe I should pass ownership here?n // f(&mut edit)n // }n'"), -(54615, 3, "''"), -(54591, 3, "''"), -(54532, 3, "''"), -(54438, 3, "''"), -(54368, 3, "''"), -(54307, 3, "''"), -(54263, 3, "''"), -(54200, 3, "''"), -(54211, 6, "''"), -(54237, 6, "''"), -(54242, 1, "''"), -(54242, 0, "'E'"), -(54243, 0, "'d'"), -(54244, 0, "'i'"), -(54245, 0, "'t'"), -(54246, 0, "'<'"), -(54247, 0, "'C'"), -(54248, 0, "'>'"), -(54249, 39, "''"), -(54249, 0, "' '"), -(54249, 1, "''"), -(54532, 12, "''"), -(54385, 15, "''"), -(54452, 65, "''"), -(54451, 1, "''"), -(54450, 1, "''"), -(53735, 14, "''"), -(53438, 14, "''"), -(53256, 14, "''"), -(53707, 0, "')'"), -(53424, 0, "')'"), -(53256, 0, "')'"), -(53710, 0, "'.'"), -(53426, 0, "'.'"), -(53257, 0, "'.'"), -(53727, 1, "''"), -(53449, 1, "''"), -(53281, 1, "''"), -(53280, 1, "''"), -(52803, 0, "')'"), -(52804, 0, "'.'"), -(52805, 28, "''"), -(52846, 11, "''"), -(54403, 6, "''"), -(53694, 424, "''"), -(54005, 51, "''"), -(54005, 0, "')'"), -(54006, 0, "' '"), -(54007, 0, "'-'"), -(54008, 0, "'>'"), -(54009, 0, "' '"), -(54010, 0, "'E'"), -(54011, 0, "'d'"), -(54012, 0, "'i'"), -(54013, 0, "'t'"), -(54014, 0, "'<'"), -(54015, 0, "'C'"), -(54016, 0, "'>'"), -(54017, 40, "''"), -(54017, 0, "' '"), -(54160, 77, "''"), -(54159, 1, "''"), -(54158, 1, "''"), -(54158, 0, "';n'"), -(54160, 0, "'n // TODO: Or maybe I should pass ownership here?n f(&mut edit)'"), -(54017, 1, "''"), -(54017, 0, "'n where F: FnOnce(&mut Edit) -> R '"), -(54009, 8, "''"), -(54006, 3, "''"), -(54005, 1, "''"), -(54005, 0, "', notify: fn(&[C::Item], ItemMarker), f: F) -> R'"), -(53694, 0, "'n // pub fn edit(&mut self, userpos: usize, f: F) -> Rn // where F: FnOnce(&mut Edit) -> R {n // // self.edit_notify(userpos, no_notify_x::, f)n // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // let mut edit = Edit { list: self, cursor, item_offset, notify: Self::no_notify };nn // // TODO: Or maybe I should pass ownership here?n // f(&mut edit)n // }'"), -(53694, 424, "''"), -(54005, 51, "''"), -(54005, 0, "', notify: fn(&[C::Item], ItemMarker), f: F) -> R'"), -(54049, 1, "''"), -(54048, 1, "''"), -(54047, 1, "''"), -(54046, 1, "''"), -(54045, 1, "''"), -(54044, 1, "''"), -(54049, 1, "''"), -(54049, 26, "''"), -(54056, 6, "''"), -(54044, 1, "''"), -(54044, 0, "')'"), -(54199, 77, "''"), -(54198, 1, "''"), -(54197, 1, "''"), -(54134, 15, "''"), -(58866, 0, "'n '"), -(58883, 0, "'/'"), -(58884, 0, "'/'"), -(58885, 0, "' '"), -(58886, 0, "'C'"), -(58953, 0, "' '"), -(58954, 0, "'a'"), -(58955, 0, "'t'"), -(58956, 0, "' '"), -(58957, 0, "'s'"), -(58958, 0, "'t'"), -(58959, 0, "'a'"), -(58960, 0, "'r'"), -(58961, 0, "'t'"), -(58962, 0, "' '"), -(58963, 0, "'o'"), -(58964, 0, "'f'"), -(58965, 0, "' '"), -(58966, 0, "'n'"), -(58967, 0, "'o'"), -(58968, 0, "'d'"), -(58969, 0, "'e'"), -(58947, 0, "'s'"), -(58948, 0, "'t'"), -(58949, 0, "'a'"), -(58950, 0, "'t'"), -(58951, 0, "'e'"), -(58952, 0, "':'"), -(58953, 0, "' '"), -(58954, 1, "''"), -(58954, 0, "'C'"), -(58867, 20, "''"), -(58866, 1, "''"), -(58866, 0, "'n '"), -(58883, 0, "'/'"), -(58884, 0, "'/'"), -(58885, 0, "' '"), -(58886, 0, "'C'"), -(58887, 0, "'u'"), -(58888, 0, "'r'"), -(58889, 0, "'s'"), -(58890, 0, "'o'"), -(58891, 0, "'r'"), -(58892, 0, "'s'"), -(58893, 0, "' '"), -(58894, 0, "'s'"), -(58895, 0, "'h'"), -(58896, 0, "'o'"), -(58897, 0, "'u'"), -(58898, 0, "'l'"), -(58899, 0, "'d'"), -(58900, 0, "' '"), -(58901, 0, "'a'"), -(58902, 0, "'l'"), -(58903, 0, "'w'"), -(58904, 0, "'a'"), -(58905, 0, "'y'"), -(58906, 0, "'s'"), -(58907, 0, "' '"), -(58908, 0, "'b'"), -(58909, 0, "'e'"), -(58910, 0, "' '"), -(58911, 0, "'a'"), -(58912, 0, "'t'"), -(58913, 0, "' '"), -(58914, 0, "'t'"), -(58915, 0, "'h'"), -(58916, 0, "'e'"), -(58917, 0, "' '"), -(58918, 0, "'e'"), -(58919, 0, "'n'"), -(58920, 0, "'d'"), -(58921, 0, "' '"), -(58922, 0, "'o'"), -(58923, 0, "'f'"), -(58924, 0, "' '"), -(58925, 0, "'t'"), -(58926, 0, "'h'"), -(58927, 0, "'e'"), -(58928, 0, "' '"), -(58929, 0, "'i'"), -(58930, 0, "'t'"), -(58931, 0, "'e'"), -(58932, 0, "'m'"), -(58933, 0, "' '"), -(58886, 48, "''"), -(58886, 0, "'C'"), -(58887, 0, "'u'"), -(58888, 0, "'r'"), -(58889, 0, "'s'"), -(58890, 0, "'o'"), -(58891, 0, "'r'"), -(58892, 0, "'s'"), -(58893, 0, "' '"), -(58894, 0, "'s'"), -(58895, 0, "'h'"), -(58896, 0, "'o'"), -(58897, 0, "'u'"), -(58898, 0, "'l'"), -(58899, 0, "'d'"), -(58900, 0, "' '"), -(58894, 7, "'s'"), -(58895, 0, "'t'"), -(58896, 0, "'i'"), -(58897, 0, "'c'"), -(58898, 0, "'k'"), -(58899, 0, "' '"), -(58900, 0, "'t'"), -(58901, 0, "'o'"), -(58902, 0, "' '"), -(58903, 0, "'t'"), -(58904, 0, "'h'"), -(58905, 0, "'e'"), -(58906, 0, "' '"), -(58907, 0, "'e'"), -(58908, 0, "'n'"), -(58909, 0, "'e'"), -(58909, 1, "''"), -(58909, 0, "'d'"), -(58910, 0, "' '"), -(58911, 0, "'o'"), -(58912, 0, "'f'"), -(58913, 0, "' '"), -(58914, 0, "'a'"), -(58915, 0, "' '"), -(58916, 0, "'n'"), -(58917, 0, "'o'"), -(58918, 0, "'d'"), -(58919, 0, "'e'"), -(58894, 0, "'a'"), -(58895, 0, "'t'"), -(58896, 0, "' '"), -(58897, 0, "'t'"), -(58898, 0, "'h'"), -(58899, 0, "'e'"), -(58900, 0, "' '"), -(58901, 0, "'e'"), -(58902, 0, "'n'"), -(58903, 0, "'d'"), -(58904, 0, "' '"), -(58905, 0, "'o'"), -(58906, 0, "'f'"), -(58907, 0, "' '"), -(58908, 0, "'a'"), -(58909, 0, "' '"), -(58910, 0, "'n'"), -(58911, 0, "'o'"), -(58912, 0, "'d'"), -(58913, 0, "'e'"), -(58914, 0, "' '"), -(58920, 21, "''"), -(58915, 5, "'d'"), -(58916, 0, "'o'"), -(58917, 0, "'n'"), -(58918, 0, "'''"), -(58919, 0, "'t'"), -(58920, 0, "' '"), -(58921, 0, "'m'"), -(58922, 0, "'o'"), -(58923, 0, "'v'"), -(58924, 0, "'e'"), -(58925, 0, "' '"), -(58926, 0, "'t'"), -(58927, 0, "'o'"), -(58928, 0, "' '"), -(58929, 0, "'t'"), -(58930, 0, "'h'"), -(58931, 0, "'e'"), -(58932, 0, "' '"), -(58933, 0, "'n'"), -(58934, 0, "'e'"), -(58935, 0, "'x'"), -(58936, 0, "'t'"), -(58937, 0, "' '"), -(58938, 0, "'n'"), -(58939, 0, "'o'"), -(58940, 0, "'d'"), -(58941, 0, "'e'"), -(58886, 56, "''"), -(58886, 0, "'W'"), -(58887, 0, "'h'"), -(58888, 0, "'e'"), -(58889, 0, "'n'"), -(58890, 0, "' '"), -(58890, 1, "''"), -(58890, 0, "' '"), -(58886, 5, "'T'"), -(58887, 0, "'h'"), -(58888, 0, "'e'"), -(58889, 0, "' '"), -(58890, 0, "'o'"), -(58891, 0, "'n'"), -(58892, 0, "'l'"), -(58893, 0, "'y'"), -(58894, 0, "' '"), -(58895, 0, "'t'"), -(58896, 0, "'i'"), -(58897, 0, "'m'"), -(58898, 0, "'e'"), -(58899, 0, "' '"), -(58900, 0, "'a'"), -(58901, 0, "' '"), -(58902, 0, "'c'"), -(58903, 0, "'u'"), -(58904, 0, "'r'"), -(58905, 0, "'s'"), -(58906, 0, "'o'"), -(58907, 0, "'r'"), -(58908, 0, "' '"), -(58909, 0, "'i'"), -(58910, 0, "'s'"), -(58911, 0, "' '"), -(58912, 0, "'r'"), -(58913, 0, "'i'"), -(58914, 0, "'g'"), -(58915, 0, "'h'"), -(58916, 0, "'t'"), -(58917, 0, "' '"), -(58918, 0, "'a'"), -(58919, 0, "'t'"), -(58920, 0, "' '"), -(58921, 0, "'t'"), -(58922, 0, "'h'"), -(58923, 0, "'e'"), -(58924, 0, "' '"), -(58925, 0, "'s'"), -(58926, 0, "'t'"), -(58927, 0, "'a'"), -(58928, 0, "'r'"), -(58929, 0, "'t'"), -(58930, 0, "' '"), -(58931, 0, "'o'"), -(58932, 0, "'f'"), -(58933, 0, "' '"), -(58934, 0, "'n'"), -(58935, 0, "'o'"), -(58935, 1, "''"), -(58934, 1, "''"), -(58934, 0, "'t'"), -(58935, 0, "'h'"), -(58936, 0, "'e'"), -(58937, 0, "' '"), -(58938, 0, "'n'"), -(58939, 0, "'o'"), -(58940, 0, "'d'"), -(58941, 0, "'e'"), -(58942, 0, "','"), -(58943, 0, "' '"), -(58943, 1, "''"), -(58942, 1, "''"), -(58942, 0, "' '"), -(58943, 0, "'i'"), -(58944, 0, "'s'"), -(58945, 0, "' '"), -(58946, 0, "'w'"), -(58947, 0, "'h'"), -(58948, 0, "'e'"), -(58949, 0, "'n'"), -(58950, 0, "' '"), -(58951, 0, "'t'"), -(58952, 0, "'h'"), -(58953, 0, "'e'"), -(58954, 0, "' '"), -(58955, 0, "'c'"), -(58956, 0, "'u'"), -(58957, 0, "'r'"), -(58958, 0, "'s'"), -(58959, 0, "'o'"), -(58960, 0, "'r'"), -(58961, 0, "' '"), -(58962, 0, "'s'"), -(58962, 1, "''"), -(58962, 0, "'i'"), -(58963, 0, "'s'"), -(58964, 0, "' '"), -(58965, 0, "'r'"), -(58966, 0, "'i'"), -(58967, 0, "'g'"), -(58968, 0, "'h'"), -(58965, 4, "'a'"), -(58966, 0, "'t'"), -(58967, 0, "' '"), -(58968, 0, "'t'"), -(58969, 0, "'h'"), -(58970, 0, "'e'"), -(58971, 0, "' '"), -(58972, 0, "'s'"), -(58973, 0, "'t'"), -(58974, 0, "'a'"), -(58975, 0, "'r'"), -(58976, 0, "'t'"), -(58977, 0, "' '"), -(58978, 0, "'o'"), -(58979, 0, "'f'"), -(58980, 0, "' '"), -(58981, 0, "'t'"), -(58982, 0, "'n'"), -(58982, 1, "''"), -(58982, 0, "'h'"), -(58983, 0, "'e'"), -(58984, 0, "' '"), -(58985, 0, "'e'"), -(58986, 0, "'n'"), -(58987, 0, "'t'"), -(58988, 0, "'i'"), -(58989, 0, "'r'"), -(58990, 0, "'e'"), -(58991, 0, "' '"), -(58992, 0, "'l'"), -(58993, 0, "'i'"), -(58994, 0, "'s'"), -(58995, 0, "'t'"), -(58996, 0, "'.'"), -(58867, 130, "' // The only time a cursor is right at the start of the node isn // when the cursor is at the start of the entire list.'"), -(58909, 2, "'s'"), -(58910, 0, "'h'"), -(58911, 0, "'o'"), -(58912, 0, "'u'"), -(58913, 0, "'l'"), -(58914, 0, "'d'"), -(58915, 0, "' '"), -(58916, 0, "'b'"), -(58917, 0, "'e'"), -(58919, 5, "''"), -(58918, 1, "''"), -(1897, 0, "'n'"), -(1898, 0, "'n'"), -(1899, 0, "'i'"), -(1900, 0, "'m'"), -(1901, 0, "'p'"), -(1902, 0, "'l'"), -(1903, 0, "' '"), -(1904, 0, "'C'"), -(1905, 0, "'o'"), -(1906, 0, "'p'"), -(1907, 0, "'y'"), -(1908, 0, "' '"), -(1909, 0, "'f'"), -(1910, 0, "'o'"), -(1911, 0, "'r'"), -(1912, 0, "' '"), -(1913, 0, "'I'"), -(1914, 0, "'t'"), -(1915, 0, "'e'"), -(1916, 0, "'m'"), -(1917, 0, "'M'"), -(1913, 5, "'ItemMarker'"), -(1923, 0, "' '"), -(1924, 0, "'{'"), -(1925, 0, "'}'"), -(1903, 0, "'<'"), -(1904, 0, "'C'"), -(1905, 0, "':'"), -(1906, 0, "' '"), -(1907, 0, "'L'"), -(1908, 0, "'i'"), -(1909, 0, "'s'"), -(1910, 0, "'t'"), -(1907, 4, "'ListConfig'"), -(1917, 0, "'>'"), -(1938, 0, "'<'"), -(1939, 0, "'C'"), -(1940, 0, "'>'"), -(1779, 6, "''"), -(1892, 0, "'n'"), -(1893, 0, "'i'"), -(1894, 0, "'m'"), -(1895, 0, "'p'"), -(1896, 0, "'l'"), -(1943, 0, "'nimpl Copy for ItemMarker {}'"), -(1893, 4, "''"), -(1892, 1, "''"), -(1913, 4, "'C'"), -(1914, 0, "'l'"), -(1915, 0, "'o'"), -(1916, 0, "'n'"), -(1917, 0, "'e'"), -(1764, 17, "''"), -(1921, 0, "'n n'"), -(1926, 0, "'f'"), -(1927, 0, "'n'"), -(1928, 0, "' '"), -(1929, 0, "'c'"), -(1930, 0, "'l'"), -(1931, 0, "'o'"), -(1929, 3, "'clone()'"), -(1926, 0, "'// '"), -(1926, 13, "'fn clone(&self) -> Self;'"), -(1949, 1, "''"), -(1949, 0, "' '"), -(1950, 0, "'{'"), -(1951, 0, "' '"), -(1952, 0, "'*'"), -(1953, 0, "'s'"), -(1954, 0, "'e'"), -(1955, 0, "'l'"), -(1956, 0, "'f'"), -(1957, 0, "' '"), -(1958, 0, "'}'"), -(1875, 0, "'n'"), -(1876, 0, "'/'"), -(1877, 0, "'/'"), -(1878, 0, "' '"), -(1879, 0, "'D'"), -(1880, 0, "'e'"), -(1881, 0, "'r'"), -(1882, 0, "'i'"), -(1883, 0, "'v'"), -(1884, 0, "'e'"), -(1885, 0, "' '"), -(1886, 0, "'t'"), -(1887, 0, "'r'"), -(1888, 0, "'a'"), -(1889, 0, "'i'"), -(1890, 0, "'t'"), -(1891, 0, "'s'"), -(1892, 0, "' '"), -(1893, 0, "'d'"), -(1894, 0, "'o'"), -(1895, 0, "'n'"), -(1896, 0, "'''"), -(1897, 0, "'t'"), -(1898, 0, "' '"), -(1899, 0, "'w'"), -(1900, 0, "'o'"), -(1901, 0, "'r'"), -(1902, 0, "'k'"), -(1903, 0, "' '"), -(1904, 0, "'h'"), -(1905, 0, "'e'"), -(1906, 0, "'r'"), -(1907, 0, "'e'"), -(1908, 0, "'.'"), -(54159, 2, "'F'"), -(54160, 0, "'n'"), -(54161, 0, "'M'"), -(54162, 0, "'u'"), -(54163, 0, "'t'"), -(54159, 0, "'i'"), -(54160, 0, "'m'"), -(54161, 0, "'p'"), -(54162, 0, "'l'"), -(54163, 0, "' '"), -(55769, 0, "'// '"), -(55727, 0, "'// '"), -(55670, 0, "'// '"), -(55647, 0, "'// '"), -(55616, 0, "'// '"), -(55579, 0, "'// '"), -(55574, 3, "''"), -(55552, 3, "''"), -(55492, 3, "''"), -(55466, 3, "''"), -(55432, 3, "''"), -(55350, 3, "''"), -(55559, 0, "'// '"), -(55540, 0, "'// '"), -(55483, 0, "'// '"), -(55460, 0, "'// '"), -(55429, 0, "'// '"), -(55350, 0, "'// '"), -(55784, 3, "''"), -(55739, 3, "''"), -(55679, 3, "''"), -(55653, 3, "''"), -(55619, 3, "''"), -(55579, 3, "''"), -(55727, 0, "' notify: fn(&[C::Item], ItemMarker)n'"), -(55773, 0, "'// '"), -(55739, 2, "'i'"), -(55740, 0, "'m'"), -(55741, 0, "'p'"), -(55742, 0, "'l'"), -(55743, 0, "' '"), -(55744, 0, "'F'"), -(55745, 0, "'n'"), -(55746, 0, "'M'"), -(55747, 0, "'u'"), -(55748, 0, "'t'"), -(55743, 6, "''"), -(55739, 4, "'fn'"), -(55773, 3, "''"), -(55727, 42, "''"), -(55769, 0, "'// '"), -(55727, 0, "'// '"), -(55670, 0, "'// '"), -(55647, 0, "'// '"), -(55616, 0, "'// '"), -(55579, 0, "'// '"), -(55574, 3, "''"), -(55552, 3, "''"), -(55492, 3, "''"), -(55466, 3, "''"), -(55432, 3, "''"), -(55350, 3, "''"), -(54098, 0, "'// '"), -(54024, 0, "'// '"), -(53957, 0, "'// '"), -(53899, 0, "'// '"), -(53843, 0, "'// '"), -(54138, 0, "'<'"), -(54139, 0, "'N'"), -(54140, 0, "':'"), -(54141, 0, "' '"), -(54142, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(54174, 0, "'>'"), -(54259, 0, "','"), -(54260, 0, "' '"), -(54261, 0, "'N'"), -(54211, 37, "'N'"), -(54110, 3, "''"), -(54033, 3, "''"), -(53963, 3, "''"), -(53902, 3, "''"), -(53843, 3, "''"), -(53891, 0, "','"), -(53892, 0, "' '"), -(53893, 0, "'i'"), -(53894, 0, "'m'"), -(53895, 0, "'p'"), -(53896, 0, "'l'"), -(53897, 0, "' '"), -(53898, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(55928, 0, "','"), -(55929, 0, "' '"), -(55930, 0, "'FnMut(&[C::Item], ItemMarker)'"), -(55930, 0, "'N'"), -(55931, 0, "':'"), -(55932, 0, "' '"), -(55977, 0, "','"), -(55978, 0, "' '"), -(55979, 0, "'N'"), -(49409, 0, "'&'"), -(52104, 5, "''"), -(49410, 0, "'m'"), -(49411, 0, "'u'"), -(49412, 0, "'t'"), -(49413, 0, "' '"), -(49397, 4, "''"), -(52318, 0, "'&'"), -(52319, 0, "'m'"), -(52320, 0, "'u'"), -(52321, 0, "'t'"), -(52322, 0, "' '"), -(58870, 0, "'&'"), -(58871, 0, "'m'"), -(58872, 0, "'u'"), -(58873, 0, "'t'"), -(58874, 0, "' '"), -(59452, 16, "''"), -(59452, 0, "'C'"), -(59453, 0, "':'"), -(59454, 0, "':'"), -(59455, 0, "'get_usersize(_item: &Self::Item)'"), -(59393, 0, "'n '"), -(59410, 0, "'l'"), -(59411, 0, "'e'"), -(59412, 0, "'t'"), -(59413, 0, "' '"), -(59414, 0, "'p'"), -(59415, 0, "'r'"), -(59416, 0, "'e'"), -(59417, 0, "'v'"), -(59418, 0, "'_'"), -(59419, 0, "'i'"), -(59420, 0, "'t'"), -(59421, 0, "'e'"), -(59422, 0, "'m'"), -(59423, 0, "' '"), -(59424, 0, "'='"), -(59425, 0, "' '"), -(59458, 23, "''"), -(59458, 0, "'self.cursor.prev_item()'"), -(59449, 34, "''"), -(59426, 0, "'unsafe { self.cursor.prev_item() }'"), -(59460, 0, "';'"), -(59484, 0, "'p'"), -(59485, 0, "'r'"), -(59486, 0, "'e'"), -(59487, 0, "'v'"), -(59488, 0, "'_'"), -(59484, 5, "'prev_item'"), -(59511, 18, "'p'"), -(59512, 0, "'r'"), -(59513, 0, "'e'"), -(59514, 0, "'v'"), -(59511, 4, "'prev_item'"), -(55393, 5375, "''"), -(56742, 0, "'n'"), -(56743, 0, "'n'"), -(56744, 0, "'n'"), -(56745, 0, "'n'"), -(56746, 0, "'npub struct Edit<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> {n list: &'a mut SkipList,n cursor: Cursor,n item_offset: usize, // Offset into the current item.n notify: Notifyn}n// pub struct Edit<'a, C: ListConfig> {n// list: &'a mut SkipList,n// cursor: Cursor,n// item_offset: usize, // Offset into the current item.n// notify: fn(&[C::Item], ItemMarker)n// }nn// impl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, Notify> {nimpl<'a, C: ListConfig, N: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, N> {n fn dbg_check_cursor_at(&self, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.list.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.list.head.height);n assert_eq!(&self.cursor, &c2);n }n }nn pub fn del(&mut self, num_items: usize) {n assert_eq!(self.item_offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.list.del_at_iter(&self.cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.list.iter_at_userpos(self.cursor.userpos);n if &self.cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }nn pub fn insert_iter(&mut self, mut contents: I) where I: ExactSizeIterator {n if contents.len() == 0 { return; }n let num_inserted_items = contents.len();n n // userpos = min(userpos, self.get_userlen());n // let (mut cursor, offset) = self.iter_at_userpos(userpos);nn let start_userpos = self.cursor.userpos;nn unsafe {n if self.item_offset == 0 {n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);n } else {n let current_item = self.cursor.current_item();n let (start, end) = C::split_item(current_item, self.item_offset);n // Move the cursor back to the start of the item we'ren // splitting.n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);n // This feels pretty inefficient; but its probably fine.n self.list.replace_item(&mut self.cursor, start, &mut self.notify);nn // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);nn self.list.insert_at_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);n }n }n }nn pub fn insert(&mut self, item: C::Item) {n self.insert_iter(iter::once(item));n }nn pub fn insert_slice(&mut self, items: &[C::Item]) where C::Item: Copy {n self.insert_iter(items.iter().copied());n }nn pub fn replace(&mut self, removed_items: usize, mut inserted_content: I)n where I: ExactSizeIterator {n assert_eq!(self.item_offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n let start_userpos = self.cursor.userpos;n n unsafe { self.list.replace_at_iter(&mut self.cursor, removed_items, &mut inserted_content, &mut self.notify); }nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);n }nn pub fn prev_item(&self) -> Option<(&C::Item, usize)> {n if self.item_offset == 0 {n if self.cursor.local_index == 0 {n // The only time a cursor should be at the start of the node isn // when the cursor is at the start of the entire list.n assert!(self.cursor.userpos == 0, 'Invalid state: Cursor at start of node');n Nonen } else {n let prev_item = unsafe { self.cursor.prev_item() };n Some((prev_item, C::get_usersize(prev_item)))n }n } else {n Some((unsafe { self.cursor.current_item() }, self.item_offset))n }n }nn pub fn advance_item(&mut self) {n self.cursor.advance_item(self.list.head.height);n self.item_offset = 0;n }nn pub fn modify_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {n let e = self.cursor.here_ptr();n let item = unsafe { self.cursor.current_item_mut() };n let old_usersize = C::get_usersize(item);n modify_fn(item, self.item_offset);n let new_usersize = C::get_usersize(item);nn let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n self.cursor.update_offsets(self.list.head.height as usize, usersize_delta);n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);n self.item_offset = usize::max(self.item_offset, new_usersize);n }nn (self.notify)(std::slice::from_ref(item), ItemMarker {n ptr: e,n // _phantom: PhantomData,n });n }nn pub fn replace_item(&mut self, replacement: C::Item) {n self.modify_item(|old, _offset| *old = replacement);n }n}n'"), -(56743, 0, "'n'"), -(56744, 0, "'i'"), -(56745, 0, "'m'"), -(56746, 0, "'p'"), -(56747, 0, "'l'"), -(56748, 0, "'<'"), -(56749, 0, "'C'"), -(56750, 0, "':'"), -(56751, 0, "' '"), -(56752, 0, "'L'"), -(56753, 0, "'i'"), -(56754, 0, "'s'"), -(56755, 0, "'t'"), -(56752, 4, "'ListConfig'"), -(56762, 0, "'>'"), -(56763, 0, "' '"), -(56764, 0, "'D'"), -(56765, 0, "'e'"), -(56766, 0, "'b'"), -(56767, 0, "'u'"), -(56768, 0, "'g'"), -(56764, 0, "'f'"), -(56765, 0, "'m'"), -(56766, 0, "'t'"), -(56767, 0, "':'"), -(56768, 0, "':'"), -(56769, 0, "'Debug'"), -(56769, 5, "''"), -(56774, 0, "' '"), -(56775, 0, "'f'"), -(56776, 0, "'o'"), -(56777, 0, "'r'"), -(56778, 0, "' '"), -(56779, 0, "'S'"), -(56780, 0, "'k'"), -(56781, 0, "'i'"), -(56782, 0, "'l'"), -(56779, 4, "'SkipList'"), -(56787, 0, "'<'"), -(56788, 0, "'C'"), -(56789, 0, "'>'"), -(56790, 0, "' '"), -(56791, 0, "'{'"), -(56792, 0, "'n '"), -(56797, 0, "'n '"), -(56793, 4, "''"), -(56794, 4, "'}'"), -(56793, 0, "' '"), -(56797, 0, "'n'"), -(56797, 1, "''"), -(56797, 0, "'f'"), -(56798, 0, "'n'"), -(56799, 0, "' '"), -(56800, 0, "'f'"), -(56801, 0, "'m'"), -(56802, 0, "'t'"), -(56803, 0, "'('"), -(56804, 0, "'&'"), -(56805, 0, "'s'"), -(56806, 0, "'e'"), -(56807, 0, "'l'"), -(56808, 0, "'f'"), -(56809, 0, "','"), -(56810, 0, "' '"), -(56811, 0, "'f'"), -(56812, 0, "':'"), -(56813, 0, "' '"), -(56814, 0, "'&'"), -(56815, 0, "'m'"), -(56816, 0, "'u'"), -(56817, 0, "'t'"), -(56818, 0, "' '"), -(56819, 0, "'F'"), -(56820, 0, "'o'"), -(56821, 0, "'r'"), -(56822, 0, "'m'"), -(56823, 0, "'a'"), -(56824, 0, "'t'"), -(56825, 0, "'t'"), -(56826, 0, "'e'"), -(56827, 0, "'r'"), -(56819, 9, "'Formatter'"), -(56828, 0, "'<'"), -(56829, 0, "'''"), -(56830, 0, "'_'"), -(56831, 0, "'''"), -(56831, 1, "''"), -(56831, 0, "'>'"), -(56832, 0, "')'"), -(56833, 0, "' '"), -(56834, 0, "'-'"), -(56835, 0, "'>'"), -(56836, 0, "' '"), -(56837, 0, "'R'"), -(56838, 0, "'e'"), -(56839, 0, "'s'"), -(56840, 0, "'u'"), -(56841, 0, "'l'"), -(56842, 0, "'t'"), -(56843, 0, "' '"), -(56844, 0, "'{'"), -(56845, 0, "'n '"), -(56854, 0, "'n '"), -(56846, 8, "''"), -(56847, 8, "' }'"), -(56792, 0, "'n '"), -(56797, 0, "'u'"), -(56798, 0, "'s'"), -(56799, 0, "'e'"), -(56800, 0, "' '"), -(56801, 0, "'s'"), -(56802, 0, "'t'"), -(56803, 0, "'d'"), -(56804, 0, "':'"), -(56805, 0, "':'"), -(56806, 0, "'f'"), -(56807, 0, "'m'"), -(56808, 0, "'t'"), -(56809, 0, "':'"), -(56810, 0, "':'"), -(56811, 0, "'F'"), -(56812, 0, "'o'"), -(56813, 0, "'r'"), -(56811, 3, "''"), -(56811, 0, "'*'"), -(56812, 0, "';'"), -(56811, 1, "''"), -(56811, 0, "'F'"), -(56812, 0, "'o'"), -(56813, 0, "'r'"), -(56814, 0, "'m'"), -(56811, 4, "'Formatter'"), -(56848, 0, "'s'"), -(56849, 0, "'t'"), -(56850, 0, "'d'"), -(56851, 0, "':'"), -(56852, 0, "':'"), -(56853, 0, "'f'"), -(56854, 0, "'m'"), -(56855, 0, "'t'"), -(56856, 0, "':'"), -(56857, 0, "':'"), -(56793, 28, "''"), -(56792, 1, "''"), -(56819, 5, "''"), -(56851, 0, "' '"), -(56859, 0, "'f'"), -(56860, 0, "'.'"), -(56861, 0, "'d'"), -(56862, 0, "'e'"), -(56863, 0, "'b'"), -(56864, 0, "'u'"), -(56865, 0, "'g'"), -(56861, 5, "'debug_list()'"), -(56873, 0, "'.'"), -(56874, 0, "'e'"), -(56875, 0, "'n'"), -(56876, 0, "'t'"), -(56877, 0, "'r'"), -(56878, 0, "'i'"), -(56879, 0, "'e'"), -(56880, 0, "'s'"), -(56881, 0, "'('"), -(56882, 0, "'s'"), -(56883, 0, "'e'"), -(56884, 0, "'l'"), -(56885, 0, "'f'"), -(56886, 0, "'.'"), -(56894, 0, "'// '"), -(56888, 0, "'// '"), -(56851, 0, "'// '"), -(56793, 0, "'// '"), -(56744, 0, "'// '"), -(56743, 0, "'n'"), -(56744, 0, "'n'"), -(56744, 0, "'i'"), -(56745, 0, "'m'"), -(56746, 0, "'p'"), -(56747, 0, "'l'"), -(56748, 0, "' '"), -(56744, 5, "''"), -(56743, 1, "''"), -(56796, 0, "'n// impl fmt::Debug for SkipList {'"), -(56796, 0, "'n'"), -(56744, 1, "''"), -(56795, 0, "'n'"), -(56743, 1, "''"), -(56794, 1, "''"), -(56743, 0, "'n'"), -(56744, 3, "''"), -(56764, 10, "'I'"), -(56765, 0, "'t'"), -(56766, 0, "'e'"), -(56767, 0, "'r'"), -(56768, 0, "'a'"), -(56769, 0, "'t'"), -(56770, 0, "'o'"), -(56771, 0, "'r'"), -(56790, 0, "'n '"), -(56795, 0, "'n '"), -(56791, 4, "''"), -(56792, 4, "'}'"), -(56791, 0, "' '"), -(56795, 0, "'t'"), -(56796, 0, "'y'"), -(56797, 0, "'p'"), -(56798, 0, "'e'"), -(56799, 0, "' '"), -(56800, 0, "'I'"), -(56801, 0, "'t'"), -(56802, 0, "'e'"), -(56803, 0, "'m'"), -(56804, 0, "' '"), -(56805, 0, "'='"), -(56806, 0, "' '"), -(56807, 0, "'C'"), -(56808, 0, "':'"), -(56809, 0, "':'"), -(56810, 0, "'I'"), -(56811, 0, "'t'"), -(56812, 0, "'e'"), -(56813, 0, "'m'"), -(56810, 4, "'Item'"), -(56814, 0, "';'"), -(56815, 0, "'n '"), -(56820, 0, "'n '"), -(56816, 4, "''"), -(56821, 0, "'f'"), -(56822, 0, "'n'"), -(56823, 0, "' '"), -(56824, 0, "'n'"), -(56825, 0, "'e'"), -(56826, 0, "'x'"), -(56827, 0, "'t'"), -(56828, 0, "'('"), -(56817, 12, "''"), -(56816, 1, "''"), -(56744, 74, "'/'"), -(56744, 1, "'impl Iterator for SkipList {n type Item = C::Item;nn}'"), -(56817, 0, "'// '"), -(56791, 0, "'// '"), -(56744, 0, "'// '"), -(56743, 0, "'n'"), -(56744, 0, "'nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}n'"), -(57104, 0, "'n'"), -(56752, 4, "'L'"), -(56753, 0, "'i'"), -(56754, 0, "'s'"), -(56755, 0, "'t'"), -(56799, 0, "','"), -(56800, 0, "' '"), -(56801, 0, "'u'"), -(56802, 0, "'s'"), -(56803, 0, "'i'"), -(56804, 0, "'z'"), -(56805, 0, "'e'"), -(56846, 8, "'L'"), -(56847, 0, "'i'"), -(56848, 0, "'s'"), -(56849, 0, "'t'"), -(56850, 0, "'I'"), -(56851, 0, "'t'"), -(56852, 0, "'e'"), -(56853, 0, "'r'"), -(56880, 11, "'C'"), -(56881, 0, "':'"), -(56882, 0, "':'"), -(56883, 0, "'Item'"), -(56927, 7, "'C'"), -(56928, 0, "':'"), -(56929, 0, "':'"), -(56930, 0, "'I'"), -(56927, 4, "'S'"), -(56928, 0, "'e'"), -(56929, 0, "'l'"), -(56930, 0, "'f'"), -(56931, 0, "':'"), -(56932, 0, "':'"), -(56933, 0, "'I'"), -(56934, 0, "'t'"), -(56935, 0, "'e'"), -(56936, 0, "'m'"), -(56927, 10, "'C::I'"), -(56927, 4, "'Node'"), -(56927, 7, "'C::I'"), -(56927, 4, "'Self::Item'"), -(56926, 1, "''"), -(56925, 1, "''"), -(56924, 1, "''"), -(56880, 0, "'&'"), -(56881, 0, "'''"), -(56882, 0, "'a'"), -(56883, 0, "' '"), -(56928, 0, "'''"), -(56929, 0, "'a'"), -(56930, 0, "' '"), -(57101, 0, "'// '"), -(57091, 0, "'// '"), -(57014, 0, "'// '"), -(56980, 0, "'// '"), -(56953, 0, "'// '"), -(56944, 0, "'n '"), -(56953, 0, "'u'"), -(56954, 0, "'n'"), -(56955, 0, "'i'"), -(56956, 0, "'m'"), -(56957, 0, "'p'"), -(56953, 5, "'unimplemented'"), -(56966, 0, "'('"), -(56967, 0, "')'"), -(56968, 0, "';'"), -(56968, 1, "''"), -(56966, 0, "'!'"), -(56927, 4, "''"), -(56941, 24, "''"), -(56940, 1, "''"), -(56940, 0, "'n '"), -(56949, 0, "'i'"), -(56950, 0, "'f'"), -(56951, 0, "' '"), -(56941, 11, "''"), -(56940, 1, "''"), -(56779, 1, "''"), -(56779, 0, "' '"), -(56780, 0, "'{'"), -(56781, 0, "'n '"), -(56786, 0, "'n'"), -(56787, 0, "'o'"), -(56788, 0, "'d'"), -(56789, 0, "'e'"), -(56790, 0, "':'"), -(56791, 0, "' '"), -(56812, 1, "''"), -(56811, 1, "''"), -(56811, 0, "','"), -(56812, 0, "'n '"), -(56817, 0, "'i'"), -(56818, 0, "'n'"), -(56819, 0, "'d'"), -(56820, 0, "'e'"), -(56821, 0, "'x'"), -(56822, 0, "':'"), -(56823, 0, "' '"), -(56829, 1, "''"), -(56829, 0, "'n '"), -(56830, 4, "'}'"), -(56831, 1, "''"), -(56963, 0, "'n '"), -(56972, 0, "'i'"), -(56973, 0, "'f'"), -(56974, 0, "' '"), -(56975, 0, "'s'"), -(56976, 0, "'e'"), -(56977, 0, "'l'"), -(56978, 0, "'f'"), -(56979, 0, "'.'"), -(56980, 0, "'n'"), -(56981, 0, "'o'"), -(56982, 0, "'d'"), -(56983, 0, "'e'"), -(56984, 0, "' '"), -(56984, 1, "''"), -(56984, 0, "'.'"), -(56985, 0, "'i'"), -(56986, 0, "'s'"), -(56987, 0, "'_'"), -(56972, 16, "''"), -(56972, 0, "'i'"), -(56973, 0, "'f'"), -(56974, 0, "' '"), -(56975, 0, "'l'"), -(56976, 0, "'e'"), -(56977, 0, "'t'"), -(56978, 0, "' '"), -(56979, 0, "'S'"), -(56980, 0, "'o'"), -(56981, 0, "'m'"), -(56982, 0, "'e'"), -(56983, 0, "'('"), -(56984, 0, "'n'"), -(56985, 0, "'o'"), -(56986, 0, "'d'"), -(56987, 0, "'e'"), -(56988, 0, "')'"), -(56989, 0, "' '"), -(56990, 0, "'='"), -(56991, 0, "' '"), -(56992, 0, "'s'"), -(56993, 0, "'e'"), -(56994, 0, "'l'"), -(56995, 0, "'f'"), -(56996, 0, "'.'"), -(56997, 0, "'n'"), -(56998, 0, "'o'"), -(56999, 0, "'d'"), -(57000, 0, "'e'"), -(57001, 0, "' '"), -(57002, 0, "'{'"), -(57003, 0, "'n '"), -(57016, 0, "'n '"), -(57004, 12, "''"), -(57005, 12, "' }'"), -(57014, 0, "' '"), -(57015, 0, "'e'"), -(57016, 0, "'l'"), -(57017, 0, "'s'"), -(57018, 0, "'e'"), -(57019, 0, "' '"), -(57020, 0, "'{'"), -(57021, 0, "' '"), -(57022, 0, "'N'"), -(57023, 0, "'o'"), -(57024, 0, "'n'"), -(57025, 0, "'e'"), -(57026, 0, "' '"), -(57027, 0, "'}'"), -(57004, 0, "' '"), -(57016, 0, "'l'"), -(57017, 0, "'e'"), -(57018, 0, "'t'"), -(57019, 0, "' '"), -(57020, 0, "'i'"), -(57021, 0, "'t'"), -(57022, 0, "'e'"), -(57020, 3, "'c'"), -(57021, 0, "'u'"), -(57022, 0, "'r'"), -(57023, 0, "'r'"), -(57024, 0, "'e'"), -(57025, 0, "'n'"), -(57026, 0, "'t'"), -(57027, 0, "' '"), -(57028, 0, "'='"), -(57029, 0, "' '"), -(57030, 0, "'n'"), -(57031, 0, "'o'"), -(57032, 0, "'d'"), -(57033, 0, "'e'"), -(57034, 0, "'['"), -(57034, 1, "''"), -(57034, 0, "'.'"), -(57035, 0, "'i'"), -(57036, 0, "'t'"), -(57037, 0, "'e'"), -(57038, 0, "'m'"), -(57039, 0, "'s'"), -(57040, 0, "'['"), -(57041, 0, "'s'"), -(57042, 0, "'e'"), -(57043, 0, "'l'"), -(57044, 0, "'f'"), -(57045, 0, "'.'"), -(57046, 0, "'i'"), -(57047, 0, "'n'"), -(57048, 0, "'d'"), -(57049, 0, "'e'"), -(57050, 0, "'x'"), -(57051, 0, "']'"), -(57052, 0, "';'"), -(57053, 0, "'n '"), -(57066, 0, "'n '"), -(57054, 12, "''"), -(57067, 0, "'c'"), -(57068, 0, "'u'"), -(57069, 0, "'r'"), -(57070, 0, "'r'"), -(57071, 0, "'e'"), -(57072, 0, "'n'"), -(57073, 0, "'t'"), -(57074, 0, "'.'"), -(57067, 0, "'u'"), -(57068, 0, "'n'"), -(57069, 0, "'s'"), -(57070, 0, "'a'"), -(57071, 0, "'f'"), -(57072, 0, "'e'"), -(57073, 0, "' '"), -(57074, 0, "'{'"), -(57075, 0, "' '"), -(57084, 0, "'g'"), -(57085, 0, "'e'"), -(57086, 0, "'t'"), -(57087, 0, "'_'"), -(57088, 0, "'r'"), -(57089, 0, "'e'"), -(57090, 0, "'f'"), -(57091, 0, "'('"), -(57092, 0, "')'"), -(57093, 0, "' '"), -(57094, 0, "'}'"), -(57067, 0, "'S'"), -(57068, 0, "'o'"), -(57069, 0, "'m'"), -(57070, 0, "'e'"), -(57071, 0, "'('"), -(57100, 0, "')'"), -(57089, 7, "'a'"), -(57090, 0, "'s'"), -(57091, 0, "'_'"), -(57092, 0, "'p'"), -(57093, 0, "'t'"), -(57094, 0, "'r'"), -(57081, 0, "'*'"), -(57081, 0, "'&'"), -(57030, 0, "'&'"), -(57054, 0, "'n '"), -(57067, 0, "'i'"), -(57068, 0, "'f'"), -(57069, 0, "' '"), -(57070, 0, "'s'"), -(57071, 0, "'e'"), -(57072, 0, "'l'"), -(57073, 0, "'f'"), -(57074, 0, "'.'"), -(57075, 0, "'i'"), -(57076, 0, "'n'"), -(57077, 0, "'d'"), -(57078, 0, "'e'"), -(57079, 0, "'x'"), -(57080, 0, "' '"), -(57081, 0, "'+'"), -(57082, 0, "' '"), -(57083, 0, "'1'"), -(57083, 1, "''"), -(57082, 1, "''"), -(57081, 1, "''"), -(57067, 14, "'s'"), -(57068, 0, "'e'"), -(57069, 0, "'l'"), -(57070, 0, "'f'"), -(57071, 0, "'.'"), -(57072, 0, "'i'"), -(57073, 0, "'n'"), -(57074, 0, "'d'"), -(57075, 0, "'e'"), -(57076, 0, "'x'"), -(57077, 0, "' '"), -(57078, 0, "'+'"), -(57079, 0, "'='"), -(57080, 0, "' '"), -(57081, 0, "'1'"), -(57082, 0, "';'"), -(57083, 0, "'n '"), -(57096, 0, "'i'"), -(57097, 0, "'f'"), -(57098, 0, "' '"), -(57099, 0, "'s'"), -(57100, 0, "'e'"), -(57101, 0, "'l'"), -(57102, 0, "'f'"), -(57103, 0, "'.'"), -(57104, 0, "'i'"), -(57105, 0, "'n'"), -(57106, 0, "'d'"), -(57107, 0, "'e'"), -(57108, 0, "'x'"), -(57109, 0, "' '"), -(57110, 0, "'='"), -(57111, 0, "'='"), -(57112, 0, "' '"), -(57112, 1, "''"), -(57111, 1, "''"), -(57110, 1, "''"), -(57110, 0, "'='"), -(57111, 0, "'='"), -(57112, 0, "' '"), -(57113, 0, "'n'"), -(57114, 0, "'o'"), -(57115, 0, "'d'"), -(57116, 0, "'e'"), -(57117, 0, "'.'"), -(57118, 0, "'l'"), -(57119, 0, "'e'"), -(57120, 0, "'n'"), -(57120, 1, "''"), -(57119, 1, "''"), -(57118, 1, "''"), -(57117, 1, "''"), -(57117, 0, "'.'"), -(57118, 0, "'n'"), -(57119, 0, "'u'"), -(57120, 0, "'m'"), -(57118, 3, "'num_items'"), -(57127, 0, "' '"), -(57128, 0, "'{'"), -(57129, 0, "'n '"), -(57130, 16, "' }'"), -(57129, 0, "'n '"), -(57146, 0, "'s'"), -(57147, 0, "'e'"), -(57148, 0, "'l'"), -(57149, 0, "'f'"), -(57150, 0, "'.'"), -(57151, 0, "'i'"), -(57152, 0, "'n'"), -(57153, 0, "'d'"), -(57154, 0, "'e'"), -(57155, 0, "'x'"), -(57156, 0, "' '"), -(57157, 0, "'='"), -(57158, 0, "' '"), -(57159, 0, "'0'"), -(57160, 0, "';'"), -(57161, 0, "'n '"), -(57178, 0, "'s'"), -(57179, 0, "'e'"), -(57180, 0, "'l'"), -(57181, 0, "'f'"), -(57182, 0, "'.'"), -(57183, 0, "'n'"), -(57184, 0, "'o'"), -(57185, 0, "'d'"), -(57186, 0, "'e'"), -(57187, 0, "' '"), -(57188, 0, "'='"), -(57189, 0, "' '"), -(57190, 0, "'s'"), -(57191, 0, "'e'"), -(57192, 0, "'l'"), -(57193, 0, "'f'"), -(57194, 0, "'.'"), -(57195, 0, "'n'"), -(57196, 0, "'o'"), -(57197, 0, "'d'"), -(57198, 0, "'e'"), -(57199, 0, "'.'"), -(57200, 0, "'n'"), -(57200, 1, "''"), -(57199, 1, "''"), -(57199, 0, "'.'"), -(57200, 0, "'n'"), -(57201, 0, "'e'"), -(57202, 0, "'x'"), -(57203, 0, "'t'"), -(57204, 0, "'_'"), -(57205, 0, "'n'"), -(57206, 0, "'o'"), -(57207, 0, "'d'"), -(57208, 0, "'e'"), -(57209, 0, "'('"), -(57210, 0, "')'"), -(57211, 0, "';'"), -(57190, 0, "'unsafe { n.first_skip_entry().node.as_ref() }'"), -(57235, 22, "''"), -(57235, 0, "';'"), -(57200, 0, "'o'"), -(57201, 0, "'d'"), -(57202, 0, "'e'"), -(57127, 0, "' '"), -(57128, 0, "'a'"), -(57129, 0, "'s'"), -(57130, 0, "' '"), -(57131, 0, "'u'"), -(57132, 0, "'s'"), -(57133, 0, "'i'"), -(57134, 0, "'z'"), -(57135, 0, "'e'"), -(11448, 0, "'n '"), -(11453, 0, "'n '"), -(11449, 4, "''"), -(11454, 0, "'self.node.next_node();'"), -(11454, 22, "''"), -(11449, 5, "''"), -(11449, 0, "' '"), -(11448, 5, "''"), -(57213, 23, "''"), -(57213, 0, "'g'"), -(57214, 0, "'e'"), -(57215, 0, "'t'"), -(57216, 0, "'_'"), -(57217, 0, "'n'"), -(57213, 5, "'get_next_ptr()'"), -(12071, 23, "''"), -(12071, 0, "'g'"), -(12072, 0, "'e'"), -(12073, 0, "'t'"), -(12074, 0, "'n'"), -(12071, 4, "'get_next_ptr()'"), -(57318, 176, "''"), -(57575, 3, "''"), -(57566, 3, "''"), -(57526, 3, "''"), -(57465, 3, "''"), -(57413, 3, "''"), -(57459, 0, "' '"), -(57460, 0, "'w'"), -(57461, 0, "'h'"), -(57462, 0, "'e'"), -(57463, 0, "'r'"), -(57464, 0, "'e'"), -(57465, 0, "' '"), -(57466, 0, "'C'"), -(57467, 0, "':'"), -(57468, 0, "':'"), -(57469, 0, "'I'"), -(57470, 0, "'t'"), -(57471, 0, "'e'"), -(57472, 0, "'m'"), -(57473, 0, "':'"), -(57474, 0, "' '"), -(57475, 0, "'f'"), -(57476, 0, "'m'"), -(57477, 0, "'t'"), -(57478, 0, "':'"), -(57479, 0, "' '"), -(57479, 1, "''"), -(57479, 0, "':'"), -(57480, 0, "' '"), -(57480, 1, "''"), -(57480, 0, "'D'"), -(57481, 0, "'e'"), -(57482, 0, "'b'"), -(57483, 0, "'u'"), -(57484, 0, "'g'"), -(57537, 0, "'f'"), -(57538, 0, "'t'"), -(57539, 0, "':'"), -(57540, 0, "':'"), -(57540, 1, "''"), -(57539, 1, "''"), -(57538, 1, "''"), -(57538, 0, "'m'"), -(57539, 0, "'t'"), -(57540, 0, "':'"), -(57541, 0, "':'"), -(57594, 0, "'// '"), -(57588, 0, "'// '"), -(57551, 0, "'// '"), -(57488, 0, "'// '"), -(57413, 0, "'// '"), -(55381, 0, "'n '"), -(55386, 0, "'n '"), -(55382, 4, "''"), -(55387, 0, "'p'"), -(55388, 0, "'u'"), -(55389, 0, "'b'"), -(55390, 0, "' '"), -(55391, 0, "'f'"), -(55392, 0, "'n'"), -(55393, 0, "' '"), -(55394, 0, "'i'"), -(55395, 0, "'t'"), -(55396, 0, "'e'"), -(55397, 0, "'m'"), -(55398, 0, "'_'"), -(55399, 0, "'i'"), -(55400, 0, "'t'"), -(55401, 0, "'e'"), -(55402, 0, "'r'"), -(55403, 0, "'('"), -(55404, 0, "'&'"), -(55405, 0, "'s'"), -(55406, 0, "'e'"), -(55407, 0, "'l'"), -(55408, 0, "'f'"), -(55409, 0, "')'"), -(55410, 0, "' '"), -(55411, 0, "'-'"), -(55412, 0, "'>'"), -(55413, 0, "' '"), -(55414, 0, "'L'"), -(55415, 0, "'i'"), -(55416, 0, "'s'"), -(55417, 0, "'t'"), -(55418, 0, "'I'"), -(55414, 5, "'ListIter'"), -(55422, 0, "'<'"), -(55423, 0, "'C'"), -(55424, 0, "'>'"), -(55425, 0, "' '"), -(55426, 0, "'{'"), -(55427, 0, "'n '"), -(55436, 0, "'n '"), -(55428, 8, "''"), -(55429, 8, "' }'"), -(55428, 0, "' '"), -(55436, 0, "'L'"), -(55437, 0, "'i'"), -(55438, 0, "'s'"), -(55439, 0, "'t'"), -(55440, 0, "'I'"), -(55436, 5, "'ListIter'"), -(55444, 0, "' '"), -(55445, 0, "'{'"), -(55446, 0, "'n '"), -(55459, 0, "'n'"), -(55460, 0, "'o'"), -(55461, 0, "'d'"), -(55462, 0, "'e'"), -(55463, 0, "':'"), -(55464, 0, "' '"), -(55465, 0, "'S'"), -(55466, 0, "'o'"), -(55467, 0, "'m'"), -(55468, 0, "'e'"), -(55469, 0, "'('"), -(55470, 0, "'s'"), -(55471, 0, "'e'"), -(55472, 0, "'l'"), -(55473, 0, "'f'"), -(55474, 0, "'.'"), -(55475, 0, "'h'"), -(55476, 0, "'e'"), -(55477, 0, "'a'"), -(55475, 3, "'head'"), -(55479, 0, "')'"), -(55470, 0, "'&'"), -(55481, 0, "','"), -(55482, 0, "'n '"), -(55495, 0, "'i'"), -(55496, 0, "'n'"), -(55497, 0, "'d'"), -(55498, 0, "'e'"), -(55499, 0, "'x'"), -(55500, 0, "':'"), -(55501, 0, "' '"), -(55502, 0, "'0'"), -(55503, 0, "'n '"), -(55504, 12, "' }'"), -(56874, 0, "'p'"), -(56875, 0, "'u'"), -(56876, 0, "'b'"), -(56877, 0, "' '"), -(55382, 137, "''"), -(55381, 1, "''"), -(22276, 0, "'n '"), -(22277, 4, "''"), -(22276, 0, "'n '"), -(22281, 0, "'n pub fn item_iter(&self) -> ListIter {n ListIter {n node: Some(&self.head),n index: 0n }n }'"), -(22277, 4, "''"), -(22276, 1, "''"), -(55028, 0, "'node_'"), -(23928, 0, "'node_'"), -(22214, 0, "'node_'"), -(22293, 5, "''"), -(55737, 0, "'n'"), -(55738, 0, "'o'"), -(55739, 0, "'d'"), -(55740, 0, "'e'"), -(55741, 0, "'_'"), -(56786, 0, "'n'"), -(56787, 0, "'o'"), -(56788, 0, "'d'"), -(56789, 0, "'e'"), -(56790, 0, "'_'"), -(57029, 0, "'mIte'"), -(56912, 0, "'mIte'"), -(22337, 0, "'mIte'"), -(22315, 0, "'mIte'"), -(56996, 0, "'n'"), -(57785, 3, "''"), -(57776, 3, "''"), -(57736, 3, "''"), -(57670, 3, "''"), -(57592, 3, "''"), -(57766, 0, "'i'"), -(57767, 0, "'t'"), -(57768, 0, "'e'"), -(57769, 0, "'r'"), -(57770, 0, "'('"), -(57771, 0, "')'"), -(57772, 0, "')'"), -(57773, 0, "'.'"), -(57774, 0, "'f'"), -(57775, 0, "'i'"), -(57776, 0, "'n'"), -(57777, 0, "'i'"), -(57778, 0, "'s'"), -(57779, 0, "'h'"), -(57780, 0, "'('"), -(57781, 0, "')'"), -(57505, 86, "''"), -(57504, 1, "''"), -(57504, 0, "'n'"), -(57702, 0, "'n '"), -(57707, 0, "'n '"), -(57703, 4, "''"), -(57708, 0, "'f'"), -(57709, 0, "'n'"), -(57710, 0, "' '"), -(57711, 0, "'s'"), -(57711, 1, "''"), -(57710, 1, "''"), -(57709, 1, "''"), -(57708, 1, "''"), -(57704, 4, "''"), -(57703, 1, "''"), -(57702, 1, "''"), -(57502, 0, "'n '"), -(57507, 0, "'n '"), -(57503, 4, "''"), -(57508, 0, "'f'"), -(57509, 0, "'n'"), -(57510, 0, "' '"), -(57511, 0, "'s'"), -(57512, 0, "'i'"), -(57513, 0, "'z'"), -(57511, 3, "'size_hint()'"), -(57522, 0, "' '"), -(57523, 0, "'-'"), -(57524, 0, "'>'"), -(57525, 0, "' '"), -(57526, 0, "'('"), -(57527, 0, "'u'"), -(57528, 0, "'s'"), -(57529, 0, "'i'"), -(57530, 0, "'z'"), -(57531, 0, "'e'"), -(57532, 0, "','"), -(57533, 0, "' '"), -(57534, 0, "'O'"), -(57535, 0, "'p'"), -(57536, 0, "'t'"), -(57537, 0, "'i'"), -(57538, 0, "'o'"), -(57539, 0, "'n'"), -(57540, 0, "'('"), -(57541, 0, "'u'"), -(57542, 0, "'s'"), -(57543, 0, "'i'"), -(57544, 0, "'z'"), -(57545, 0, "'e'"), -(57546, 0, "')'"), -(57547, 0, "' '"), -(57547, 1, "''"), -(57547, 0, "')'"), -(57548, 0, "' '"), -(57549, 0, "'{'"), -(57550, 0, "'n '"), -(57551, 8, "' }'"), -(57550, 0, "'n '"), -(57559, 0, "'u'"), -(57560, 0, "'n'"), -(57561, 0, "'i'"), -(57562, 0, "'m'"), -(57563, 0, "'p'"), -(57564, 0, "'l'"), -(57559, 6, "'unimplemented'"), -(57572, 0, "'!'"), -(57573, 0, "'('"), -(57574, 0, "')'"), -(57521, 0, "'&'"), -(57522, 0, "'s'"), -(57523, 0, "'e'"), -(57524, 0, "'l'"), -(57525, 0, "'f'"), -(57545, 1, "''"), -(57545, 0, "'<'"), -(57551, 1, "''"), -(57551, 0, "'>'"), -(56994, 0, "','"), -(56995, 0, "'n '"), -(57000, 0, "'r'"), -(57001, 0, "'e'"), -(57002, 0, "'m'"), -(57003, 0, "'a'"), -(57004, 0, "'i'"), -(57005, 0, "'n'"), -(57006, 0, "'i'"), -(57007, 0, "'n'"), -(57008, 0, "'g'"), -(57009, 0, "'_'"), -(57010, 0, "'i'"), -(57011, 0, "'t'"), -(57012, 0, "'e'"), -(57013, 0, "'m'"), -(57014, 0, "'s'"), -(57015, 0, "':'"), -(57016, 0, "' '"), -(57017, 0, "'u'"), -(57018, 0, "'s'"), -(57019, 0, "'i'"), -(57020, 0, "'z'"), -(57021, 0, "'e'"), -(57022, 0, "' '"), -(57023, 0, "'/'"), -(57024, 0, "'/'"), -(57025, 0, "' '"), -(57026, 0, "'F'"), -(57027, 0, "'o'"), -(57028, 0, "'r'"), -(57029, 0, "'e'"), -(57030, 0, "' '"), -(57030, 1, "''"), -(57029, 1, "''"), -(57029, 0, "' '"), -(57030, 0, "'s'"), -(57031, 0, "'i'"), -(57032, 0, "'z'"), -(57033, 0, "'e'"), -(57034, 0, "'_'"), -(57035, 0, "'h'"), -(57036, 0, "'i'"), -(57037, 0, "'n'"), -(57038, 0, "'t'"), -(57039, 0, "'.'"), -(57610, 16, "''"), -(57610, 0, "'('"), -(57611, 0, "'r'"), -(57612, 0, "'e'"), -(57613, 0, "'m'"), -(57614, 0, "'a'"), -(57615, 0, "'i'"), -(57616, 0, "'n'"), -(57611, 6, "'remain'"), -(57617, 0, "'i'"), -(57618, 0, "'n'"), -(57619, 0, "'g'"), -(57611, 9, "'remaining_items'"), -(57626, 0, "','"), -(57627, 0, "' '"), -(57628, 0, "'S'"), -(57629, 0, "'o'"), -(57630, 0, "'m'"), -(57631, 0, "'z'"), -(57632, 0, "'e'"), -(57633, 0, "'('"), -(57633, 1, "''"), -(57632, 1, "''"), -(57631, 1, "''"), -(57631, 0, "'m'"), -(57631, 1, "''"), -(57631, 0, "'e'"), -(57632, 0, "'('"), -(57633, 0, "'r'"), -(57634, 0, "'e'"), -(57626, 0, "'s'"), -(57627, 0, "'e'"), -(57628, 0, "'l'"), -(57629, 0, "'f'"), -(57629, 1, "''"), -(57628, 1, "''"), -(57627, 1, "''"), -(57626, 1, "''"), -(57611, 0, "'s'"), -(57612, 0, "'e'"), -(57613, 0, "'l'"), -(57614, 0, "'f'"), -(57615, 0, "'.'"), -(57638, 0, "'s'"), -(57639, 0, "'e'"), -(57640, 0, "'l'"), -(57641, 0, "'f'"), -(57642, 0, "'.'"), -(57645, 0, "'m'"), -(57646, 0, "'a'"), -(57647, 0, "'i'"), -(57648, 0, "'n'"), -(57649, 0, "'i'"), -(57650, 0, "'n'"), -(57643, 8, "'remaining_items'"), -(57658, 0, "')'"), -(57659, 0, "')'"), -(22405, 0, "','"), -(22406, 0, "'n '"), -(22419, 0, "'r'"), -(22420, 0, "'e'"), -(22421, 0, "'m'"), -(22422, 0, "'a'"), -(22423, 0, "'i'"), -(22424, 0, "'n'"), -(22419, 6, "'remaining_items'"), -(22434, 0, "':'"), -(22435, 0, "' '"), -(22436, 0, "'s'"), -(22437, 0, "'e'"), -(22438, 0, "'l'"), -(22439, 0, "'f'"), -(22440, 0, "'.'"), -(22441, 0, "'l'"), -(22442, 0, "'e'"), -(22443, 0, "'n'"), -(22441, 3, "'len_items()'"), -(54748, 3, "''"), -(54742, 1, "'n'"), -(54740, 1, "'l'"), -(27931, 3, "''"), -(27925, 1, "'n'"), -(27923, 1, "'l'"), -(26884, 3, "''"), -(26878, 1, "'n'"), -(26876, 1, "'l'"), -(22151, 3, "''"), -(22145, 1, "'n'"), -(22143, 1, "'l'"), -(22203, 262, "''"), -(22202, 1, "''"), -(22280, 0, "'n '"), -(22285, 0, "'n fn node_iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn iter(&self) -> ListItemIter {n ListItemIter {n node: Some(&self.head),n index: 0,n remaining_items: self.len_items()n }n }'"), -(22281, 4, "''"), -(22544, 0, "'n '"), -(22545, 4, "''"), -(22544, 0, "'n '"), -(22549, 0, "'f'"), -(22550, 0, "'n'"), -(22551, 0, "' '"), -(22552, 0, "'h'"), -(22553, 0, "'e'"), -(22554, 0, "'i'"), -(22555, 0, "'g'"), -(22556, 0, "'h'"), -(22557, 0, "'t'"), -(22558, 0, "'('"), -(22559, 0, "')'"), -(22559, 0, "'&'"), -(22560, 0, "'s'"), -(22561, 0, "'m'"), -(22561, 1, "''"), -(22560, 1, "''"), -(22560, 0, "'m'"), -(22561, 0, "'u'"), -(22562, 0, "'t'"), -(22563, 0, "' '"), -(22564, 0, "'s'"), -(22565, 0, "'e'"), -(22566, 0, "'l'"), -(22567, 0, "'f'"), -(22569, 0, "' '"), -(22570, 0, "'-'"), -(22571, 0, "'>'"), -(22572, 0, "' '"), -(22573, 0, "'u'"), -(22574, 0, "'s'"), -(22575, 0, "'i'"), -(22576, 0, "'z'"), -(22577, 0, "'e'"), -(22578, 0, "' '"), -(22579, 0, "'{'"), -(22580, 0, "'n '"), -(22589, 0, "'n '"), -(22581, 8, "''"), -(22582, 8, "' }'"), -(22581, 0, "' '"), -(22589, 0, "'s'"), -(22590, 0, "'e'"), -(22591, 0, "'l'"), -(22592, 0, "'f'"), -(22593, 0, "'.'"), -(22594, 0, "'h'"), -(22595, 0, "'e'"), -(22596, 0, "'a'"), -(22597, 0, "'d'"), -(22598, 0, "'.'"), -(22599, 0, "'h'"), -(22600, 0, "'e'"), -(22601, 0, "'i'"), -(22599, 3, "'height'"), -(22605, 0, "' '"), -(22606, 0, "'a'"), -(22607, 0, "'s'"), -(22608, 0, "' '"), -(22609, 0, "'u'"), -(22610, 0, "'s'"), -(22611, 0, "'i'"), -(22612, 0, "'z'"), -(22613, 0, "'e'"), -(22544, 0, "'n '"), -(22549, 0, "'#'"), -(22550, 0, "'['"), -(22551, 0, "'i'"), -(22552, 0, "'n'"), -(22553, 0, "'l'"), -(22554, 0, "'i'"), -(22555, 0, "'n'"), -(22551, 5, "'inline'"), -(22557, 0, "'='"), -(22558, 0, "'a'"), -(22559, 0, "'l'"), -(22560, 0, "'w'"), -(22561, 0, "'a'"), -(22558, 4, "'always'"), -(22564, 0, "']'"), -(22557, 1, "''"), -(22557, 0, "'('"), -(22564, 0, "')'"), -(66235, 21, "'.'"), -(62885, 21, "'.'"), -(51797, 21, "'.'"), -(51372, 21, "'.'"), -(49261, 21, "'.'"), -(42201, 21, "'.'"), -(40541, 21, "'.'"), -(40234, 21, "'.'"), -(34225, 21, "'.'"), -(28107, 21, "'.'"), -(26593, 21, "'.'"), -(22615, 21, "'.'"), -(66016, 0, "'h'"), -(62686, 0, "'h'"), -(51618, 0, "'h'"), -(51213, 0, "'h'"), -(49122, 0, "'h'"), -(42082, 0, "'h'"), -(40442, 0, "'h'"), -(40155, 0, "'h'"), -(34166, 0, "'h'"), -(28068, 0, "'h'"), -(26574, 0, "'h'"), -(22616, 0, "'h'"), -(66028, 0, "'e'"), -(62697, 0, "'e'"), -(51628, 0, "'e'"), -(51222, 0, "'e'"), -(49130, 0, "'e'"), -(42089, 0, "'e'"), -(40448, 0, "'e'"), -(40160, 0, "'e'"), -(34170, 0, "'e'"), -(28071, 0, "'e'"), -(26576, 0, "'e'"), -(22617, 0, "'e'"), -(66040, 0, "'i'"), -(62708, 0, "'i'"), -(51638, 0, "'i'"), -(51231, 0, "'i'"), -(49138, 0, "'i'"), -(42096, 0, "'i'"), -(40454, 0, "'i'"), -(40165, 0, "'i'"), -(34174, 0, "'i'"), -(28074, 0, "'i'"), -(26578, 0, "'i'"), -(22618, 0, "'i'"), -(66052, 0, "'g'"), -(62719, 0, "'g'"), -(51648, 0, "'g'"), -(51240, 0, "'g'"), -(49146, 0, "'g'"), -(42103, 0, "'g'"), -(40460, 0, "'g'"), -(40170, 0, "'g'"), -(34178, 0, "'g'"), -(28077, 0, "'g'"), -(26580, 0, "'g'"), -(22619, 0, "'g'"), -(66064, 0, "'h'"), -(62730, 0, "'h'"), -(51658, 0, "'h'"), -(51249, 0, "'h'"), -(49154, 0, "'h'"), -(42110, 0, "'h'"), -(40466, 0, "'h'"), -(40175, 0, "'h'"), -(34182, 0, "'h'"), -(28080, 0, "'h'"), -(26582, 0, "'h'"), -(22620, 0, "'h'"), -(66076, 0, "'t'"), -(62741, 0, "'t'"), -(51668, 0, "'t'"), -(51258, 0, "'t'"), -(49162, 0, "'t'"), -(42117, 0, "'t'"), -(40472, 0, "'t'"), -(40180, 0, "'t'"), -(34186, 0, "'t'"), -(28083, 0, "'t'"), -(26584, 0, "'t'"), -(22621, 0, "'t'"), -(66088, 0, "'('"), -(62752, 0, "'('"), -(51678, 0, "'('"), -(51267, 0, "'('"), -(49170, 0, "'('"), -(42124, 0, "'('"), -(40478, 0, "'('"), -(40185, 0, "'('"), -(34190, 0, "'('"), -(28086, 0, "'('"), -(26586, 0, "'('"), -(22622, 0, "'('"), -(66100, 0, "')'"), -(62763, 0, "')'"), -(51688, 0, "')'"), -(51276, 0, "')'"), -(49178, 0, "')'"), -(42131, 0, "')'"), -(40484, 0, "')'"), -(40190, 0, "')'"), -(34194, 0, "')'"), -(28089, 0, "')'"), -(26588, 0, "')'"), -(22623, 0, "')'"), -(22582, 4, "''"), -(22612, 8, "''"), -(22611, 1, "''"), -(22611, 0, "'.'"), -(22612, 0, "'h'"), -(22613, 0, "'e'"), -(22614, 0, "'a'"), -(22615, 0, "'d'"), -(22616, 0, "'.'"), -(22617, 0, "'h'"), -(22618, 0, "'e'"), -(22619, 0, "'i'"), -(22620, 0, "'g'"), -(22621, 0, "'h'"), -(22622, 0, "'t'"), -(22623, 0, "' '"), -(22624, 0, "'a'"), -(22625, 0, "'s'"), -(22626, 0, "' '"), -(22627, 0, "'u'"), -(22628, 0, "'s'"), -(22629, 0, "'i'"), -(22630, 0, "'z'"), -(22631, 0, "'e'"), -(17047, 1, "''"), -(57686, 0, "'// '"), -(57627, 0, "'// '"), -(57575, 0, "'// '"), -(57692, 3, "''"), -(57630, 3, "''"), -(57575, 3, "''"), -(62314, 0, "' '"), -(62315, 0, "'w'"), -(62316, 0, "'a'"), -(62317, 0, "'n'"), -(62318, 0, "'t'"), -(62319, 0, "'_'"), -(62315, 5, "'m'"), -(62316, 0, "'o'"), -(62317, 0, "'d'"), -(62318, 0, "'i'"), -(62319, 0, "'f'"), -(62320, 0, "'y'"), -(62321, 0, "'_'"), -(62322, 0, "'n'"), -(62323, 0, "'e'"), -(62324, 0, "'x'"), -(62325, 0, "'t'"), -(62326, 0, "':'"), -(62327, 0, "' '"), -(62328, 0, "'b'"), -(62329, 0, "'o'"), -(62330, 0, "'o'"), -(62331, 0, "'l'"), -(62332, 0, "','"), -(62454, 0, "' '"), -(62455, 0, "'i'"), -(62456, 0, "'f'"), -(62457, 0, "' '"), -(62457, 1, "''"), -(62456, 1, "''"), -(62455, 1, "''"), -(62454, 1, "''"), -(62276, 0, "'n '"), -(62281, 0, "'n '"), -(62277, 4, "''"), -(62282, 0, "'f'"), -(62283, 0, "'n'"), -(62284, 0, "' '"), -(62285, 0, "'i'"), -(62286, 0, "'s'"), -(62286, 1, "''"), -(62285, 1, "''"), -(62285, 0, "'a'"), -(62286, 0, "'t'"), -(62287, 0, "'_'"), -(62288, 0, "'e'"), -(62289, 0, "'n'"), -(62290, 0, "'_'"), -(62291, 0, "'o'"), -(62292, 0, "'f'"), -(62292, 1, "''"), -(62291, 1, "''"), -(62290, 1, "''"), -(62289, 1, "''"), -(62289, 0, "'d'"), -(62289, 1, "''"), -(62289, 0, "'n'"), -(62290, 0, "'d'"), -(62291, 0, "'_'"), -(62292, 0, "'o'"), -(62293, 0, "'f'"), -(62294, 0, "'_'"), -(62295, 0, "'n'"), -(62296, 0, "'o'"), -(62297, 0, "'d'"), -(62298, 0, "'e'"), -(62299, 0, "'('"), -(62300, 0, "'&'"), -(62301, 0, "'s'"), -(62302, 0, "'e'"), -(62303, 0, "'l'"), -(62304, 0, "'f'"), -(62305, 0, "')'"), -(62306, 0, "' '"), -(62307, 0, "'-'"), -(62308, 0, "'>'"), -(62309, 0, "' '"), -(62310, 0, "'b'"), -(62311, 0, "'o'"), -(62312, 0, "'o'"), -(62313, 0, "'l'"), -(62314, 0, "' '"), -(62315, 0, "'{'"), -(62316, 0, "'n '"), -(62325, 0, "'n '"), -(62317, 8, "''"), -(62318, 8, "' }'"), -(62317, 0, "' '"), -(62325, 0, "'s'"), -(62326, 0, "'e'"), -(62327, 0, "'l'"), -(62328, 0, "'f'"), -(62329, 0, "'.'"), -(62330, 0, "'l'"), -(62331, 0, "'o'"), -(62332, 0, "'c'"), -(62333, 0, "'a'"), -(62334, 0, "'l'"), -(62335, 0, "'_'"), -(62330, 6, "'local_index'"), -(62330, 0, "'c'"), -(62331, 0, "'u'"), -(62332, 0, "'r'"), -(62333, 0, "'s'"), -(62334, 0, "'o'"), -(62335, 0, "'r'"), -(62336, 0, "'.'"), -(62348, 0, "' '"), -(62349, 0, "'='"), -(62350, 0, "'='"), -(62351, 0, "' '"), -(62352, 0, "'s'"), -(62353, 0, "'e'"), -(62354, 0, "'l'"), -(62355, 0, "'f'"), -(62356, 0, "'.'"), -(62325, 0, "'// '"), -(62277, 90, "''"), -(62386, 0, "'n '"), -(62395, 0, "'i'"), -(62396, 0, "'f'"), -(62397, 0, "' '"), -(62398, 0, "'m'"), -(62399, 0, "'o'"), -(62400, 0, "'d'"), -(62401, 0, "'i'"), -(62398, 4, "'modify_next'"), -(62409, 0, "' '"), -(62410, 0, "'&'"), -(62411, 0, "'&'"), -(62412, 0, "' '"), -(62413, 0, "'s'"), -(62414, 0, "'e'"), -(62415, 0, "'l'"), -(62416, 0, "'f'"), -(62417, 0, "'.'"), -(62418, 0, "'c'"), -(62419, 0, "'u'"), -(62420, 0, "'r'"), -(62421, 0, "'s'"), -(62422, 0, "'o'"), -(62423, 0, "'r'"), -(62424, 0, "'.'"), -(62425, 0, "'i'"), -(62426, 0, "'s'"), -(62425, 2, "'is_at_node_end()'"), -(62441, 0, "' '"), -(62442, 0, "'{'"), -(62443, 0, "'n '"), -(62444, 12, "' }'"), -(62443, 0, "'n '"), -(62444, 12, "''"), -(62409, 32, "''"), -(62398, 0, "'!'"), -(62410, 0, "' '"), -(62411, 0, "'&'"), -(62412, 0, "'&'"), -(62413, 0, "' '"), -(62413, 1, "''"), -(62410, 3, "''"), -(62398, 1, "''"), -(62412, 0, "' '"), -(62409, 0, "' && self.cursor.is_at_node_end()'"), -(62387, 79, "''"), -(62386, 1, "''"), -(62296, 0, "'p'"), -(62296, 1, "''"), -(63225, 0, "'prev_'"), -(62296, 0, "'prev_'"), -(53539, 0, "'prev_'"), -(62323, 19, "''"), -(63135, 0, "'n '"), -(63136, 4, "''"), -(63136, 0, "'n '"), -(63137, 4, "''"), -(63137, 0, "' pub fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {n'"), -(63141, 0, "'// '"), -(62458, 16, "'p'"), -(62459, 0, "'r'"), -(62460, 0, "'e'"), -(62461, 0, "'v'"), -(62458, 4, "'prev_item()'"), -(62468, 1, "''"), -(62467, 1, "''"), -(62467, 0, "'_'"), -(62468, 0, "'m'"), -(62469, 0, "'u'"), -(62470, 0, "'t'"), -(16427, 0, "'n unsafe fn prev_item(&self) -> &'a C::Item {n let node = &*self.here_ptr();n assert!(self.local_index > 0);n debug_assert!(self.local_index <= node.num_items as usize);n &*(node.items[self.local_index - 1].as_ptr())n }n'"), -(16705, 0, "'_'"), -(16706, 0, "'m'"), -(16707, 0, "'u'"), -(16708, 0, "'t'"), -(16711, 0, "'m'"), -(16712, 0, "'u'"), -(16713, 0, "'t'"), -(16714, 0, "' '"), -(16728, 0, "' '"), -(16728, 1, "''"), -(16728, 0, "'m'"), -(16729, 0, "'u'"), -(16730, 0, "'t'"), -(16731, 0, "' '"), -(16934, 0, "'m'"), -(16935, 0, "'u'"), -(16936, 0, "'t'"), -(16937, 0, "'_'"), -(16896, 0, "'m'"), -(16897, 0, "'u'"), -(16898, 0, "'t'"), -(16899, 0, "' '"), -(16762, 0, "','"), -(16763, 0, "'u'"), -(16764, 0, "'t'"), -(16764, 1, "''"), -(16763, 1, "''"), -(16762, 1, "''"), -(16762, 0, "'m'"), -(16763, 0, "'u'"), -(16764, 0, "'t'"), -(16765, 0, "' '"), -(59838, 0, "'-'"), -(59838, 1, "''"), -(62723, 0, "' '"), -(62723, 1, "''"), -(62723, 0, "' '"), -(62723, 1, "''"), -(62723, 1, "''"), -(62723, 0, "'n '"), -(62763, 1, "''"), -(62763, 0, "'n '"), -(62723, 0, "'n '"), -(62736, 0, "'i'"), -(62737, 0, "'f'"), -(62738, 0, "' '"), -(62739, 0, "'s'"), -(62740, 0, "'e'"), -(62741, 0, "'l'"), -(62742, 0, "'f'"), -(62743, 0, "'.'"), -(62744, 0, "'item_offset'"), -(62755, 0, "' '"), -(62756, 0, "'>'"), -(62757, 0, "' '"), -(62758, 0, "'0'"), -(62759, 0, "' '"), -(62760, 0, "'{'"), -(62761, 0, "' '"), -(62762, 0, "'s'"), -(62763, 0, "'e'"), -(62764, 0, "'l'"), -(62765, 0, "'f'"), -(62766, 0, "'.'"), -(62767, 0, "'c'"), -(62768, 0, "'u'"), -(62769, 0, "'r'"), -(62770, 0, "'s'"), -(62771, 0, "'o'"), -(62772, 0, "'r'"), -(62773, 0, "'.'"), -(62774, 0, "'n'"), -(62775, 0, "'e'"), -(62776, 0, "'x'"), -(62776, 1, "''"), -(62775, 1, "''"), -(62774, 1, "''"), -(62773, 1, "''"), -(62773, 0, "'.'"), -(62774, 0, "'c'"), -(62775, 0, "'u'"), -(62776, 0, "'r'"), -(62777, 0, "'r'"), -(62774, 4, "'current_item_mut()'"), -(62792, 0, "' '"), -(62793, 0, "'}'"), -(62807, 0, "'e'"), -(62808, 0, "'l'"), -(62809, 0, "'s'"), -(62810, 0, "'e'"), -(62811, 0, "' '"), -(62812, 0, "'{'"), -(62813, 0, "' '"), -(62841, 0, "' '"), -(62842, 0, "'}'"), -(63516, 3, "''"), -(63606, 0, "'n '"), -(63607, 8, "' }'"), -(63530, 1, "''"), -(63530, 1, "''"), -(63530, 1, "''"), -(63530, 1, "''"), -(63530, 0, "'n'"), -(63531, 0, "'e'"), -(63532, 0, "'x'"), -(63533, 0, "'t'"), -(63606, 0, "'n '"), -(63615, 0, "'i'"), -(63616, 0, "'f'"), -(63617, 0, "' '"), -(63618, 0, "'s'"), -(63619, 0, "'e'"), -(63620, 0, "'l'"), -(63621, 0, "'f'"), -(63622, 0, "'.'"), -(63623, 0, "'c'"), -(63624, 0, "'u'"), -(63625, 0, "'r'"), -(63626, 0, "'s'"), -(63627, 0, "'o'"), -(63628, 0, "'r'"), -(63629, 0, "'.'"), -(63630, 0, "'is_at_node_end()'"), -(63646, 0, "' '"), -(63647, 0, "'{'"), -(63648, 0, "'n '"), -(63661, 0, "'s'"), -(63662, 0, "'e'"), -(63663, 0, "'l'"), -(63664, 0, "'f'"), -(63665, 0, "'.'"), -(63666, 0, "'a'"), -(63667, 0, "'d'"), -(63668, 0, "'v'"), -(63669, 0, "'a'"), -(63666, 4, "'advance_item()'"), -(63680, 0, "';'"), -(63681, 0, "'n '"), -(63682, 12, "' }'"), -(63691, 0, "'n '"), -(63700, 0, "'m'"), -(63701, 0, "'o'"), -(63702, 0, "'d'"), -(63703, 0, "'i'"), -(63704, 0, "'f'"), -(63705, 0, "'y'"), -(63706, 0, "'_'"), -(63707, 0, "'p'"), -(63708, 0, "'r'"), -(63709, 0, "'e'"), -(63710, 0, "'v'"), -(63700, 11, "'modify_prev_item'"), -(63700, 0, "'s'"), -(63701, 0, "'e'"), -(63702, 0, "'l'"), -(63703, 0, "'f'"), -(63704, 0, "'.'"), -(63721, 0, "'('"), -(63722, 0, "'s'"), -(63723, 0, "'e'"), -(63724, 0, "'l'"), -(63725, 0, "'f'"), -(63726, 0, "','"), -(63727, 0, "' '"), -(63728, 0, "'m'"), -(63729, 0, "'o'"), -(63730, 0, "'d'"), -(63731, 0, "'i'"), -(63732, 0, "'f'"), -(63733, 0, "'y'"), -(63734, 0, "'_'"), -(63735, 0, "'f'"), -(63736, 0, "'n'"), -(63737, 0, "')'"), -(63738, 0, "';'"), -(63746, 1, "''"), -(63722, 6, "''"), -(63630, 14, "''"), -(63630, 0, "'h'"), -(63631, 0, "'e'"), -(63632, 0, "'r'"), -(63633, 0, "'e'"), -(63634, 0, "'_'"), -(63630, 5, "'here_ptr()'"), -(63639, 1, "''"), -(63638, 1, "''"), -(63638, 0, "'()'"), -(63630, 10, "'here_'"), -(63630, 5, "''"), -(63630, 0, "'is_at_node_end'"), -(63646, 0, "' '"), -(63647, 0, "'|'"), -(63647, 1, "''"), -(63646, 1, "''"), -(63646, 0, "'n '"), -(63655, 0, "'|'"), -(63656, 0, "'|'"), -(63657, 0, "' '"), -(63658, 0, "'*'"), -(63659, 0, "'s'"), -(63660, 0, "'e'"), -(63661, 0, "'l'"), -(63662, 0, "'f'"), -(63663, 0, "'.'"), -(63658, 1, "''"), -(63658, 0, "'*'"), -(63658, 1, "''"), -(63658, 0, "'('"), -(63664, 0, "'c'"), -(63665, 0, "'u'"), -(63666, 0, "'r'"), -(63667, 0, "'s'"), -(63668, 0, "'o'"), -(63669, 0, "'r'"), -(63670, 0, "'.'"), -(63671, 0, "'c'"), -(63672, 0, "'u'"), -(63673, 0, "'r'"), -(63674, 0, "'r'"), -(63675, 0, "'e'"), -(63676, 0, "'n'"), -(63677, 0, "'t'"), -(63671, 7, "'current_item'"), -(63683, 0, "'('"), -(63684, 0, "')'"), -(63659, 0, "'C'"), -(63660, 0, "':'"), -(63661, 0, "':'"), -(63662, 0, "'get_usersize(_item: &Self::Item)'"), -(63675, 18, "''"), -(63675, 1, "''"), -(63701, 0, "')'"), -(63702, 0, "' '"), -(63703, 0, "'<'"), -(63704, 0, "'='"), -(63705, 0, "' '"), -(63706, 0, "'s'"), -(63707, 0, "'e'"), -(63708, 0, "'l'"), -(63709, 0, "'f'"), -(63710, 0, "'.'"), -(63711, 0, "'l'"), -(63712, 0, "'o'"), -(63713, 0, "'c'"), -(63714, 0, "'a'"), -(63711, 4, "'local_index'"), -(63711, 11, "'i'"), -(63712, 0, "'t'"), -(63713, 0, "'e'"), -(63714, 0, "'m'"), -(63715, 0, "'_'"), -(63716, 0, "'o'"), -(63717, 0, "'f'"), -(63718, 0, "'f'"), -(63719, 0, "'s'"), -(63720, 0, "'e'"), -(63721, 0, "'t'"), -(63722, 0, "')'"), -(63675, 0, "'u'"), -(63676, 0, "'n'"), -(63677, 0, "'s'"), -(63678, 0, "'a'"), -(63679, 0, "'f'"), -(63680, 0, "'e'"), -(63681, 0, "' '"), -(63682, 0, "'{'"), -(63683, 0, "' '"), -(63710, 0, "' '"), -(63711, 0, "'}'"), -(63511, 0, "'n '"), -(63516, 0, "'/'"), -(63517, 0, "'/'"), -(63518, 0, "' '"), -(63519, 0, "'T'"), -(63520, 0, "'O'"), -(63521, 0, "'D'"), -(63522, 0, "'O'"), -(63523, 0, "':'"), -(63524, 0, "' '"), -(63525, 0, "'N'"), -(63526, 0, "'o'"), -(63527, 0, "'t'"), -(63528, 0, "' '"), -(63529, 0, "'s'"), -(63530, 0, "'u'"), -(63531, 0, "'r'"), -(63532, 0, "'e'"), -(63533, 0, "' '"), -(63534, 0, "'i'"), -(63535, 0, "'f'"), -(63536, 0, "' '"), -(63537, 0, "'t'"), -(63538, 0, "'h'"), -(63539, 0, "'i'"), -(63540, 0, "'s'"), -(63541, 0, "' '"), -(63542, 0, "'f'"), -(63543, 0, "'u'"), -(63544, 0, "'n'"), -(63545, 0, "'c'"), -(63546, 0, "'t'"), -(63547, 0, "'i'"), -(63548, 0, "'o'"), -(63549, 0, "'n'"), -(63550, 0, "' '"), -(63551, 0, "'i'"), -(63552, 0, "'s'"), -(63553, 0, "' '"), -(63554, 0, "'c'"), -(63555, 0, "'o'"), -(63556, 0, "'r'"), -(63557, 0, "'r'"), -(63558, 0, "'e'"), -(63559, 0, "'c'"), -(63560, 0, "'t'"), -(63561, 0, "'.'"), -(63562, 0, "' '"), -(63563, 0, "'N'"), -(63564, 0, "'e'"), -(63565, 0, "'e'"), -(63566, 0, "'d'"), -(63567, 0, "'s'"), -(63568, 0, "' '"), -(63569, 0, "'t'"), -(63570, 0, "'e'"), -(63571, 0, "'s'"), -(63572, 0, "'t'"), -(63573, 0, "'s'"), -(63574, 0, "'!'"), -(53820, 1, "''"), -(53819, 1, "''"), -(53818, 1, "''"), -(53817, 1, "''"), -(53817, 0, "'n'"), -(53818, 0, "'e'"), -(53819, 0, "'x'"), -(53820, 0, "'t'"), -(62565, 4, "''"), -(62579, 1, "''"), -(62578, 1, "''"), -(62577, 1, "''"), -(62576, 1, "''"), -(62575, 1, "''"), -(62575, 0, "'prev_'"), -(62651, 0, "'n fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {'"), -(62651, 0, "'n '"), -(62660, 0, "'n '"), -(62652, 8, "''"), -(62653, 8, "' }'"), -(62658, 0, "'n '"), -(62659, 4, "''"), -(62565, 0, "'u'"), -(62566, 0, "'n'"), -(62567, 0, "'s'"), -(62568, 0, "'a'"), -(62569, 0, "'f'"), -(62570, 0, "'e'"), -(62571, 0, "' '"), -(62586, 1, "''"), -(62585, 1, "''"), -(62584, 1, "''"), -(62583, 1, "''"), -(62582, 1, "''"), -(62600, 0, "' '"), -(62601, 0, "'*'"), -(62601, 1, "''"), -(62601, 0, "'e'"), -(62602, 0, "':'"), -(62603, 0, "' '"), -(62604, 0, "'*'"), -(62605, 0, "'m'"), -(62606, 0, "'u'"), -(62607, 0, "'t'"), -(62608, 0, "' '"), -(62609, 0, "'N'"), -(62610, 0, "'o'"), -(62611, 0, "'d'"), -(62612, 0, "'e'"), -(62613, 0, "'<'"), -(62614, 0, "'C'"), -(62615, 0, "'>'"), -(62616, 0, "','"), -(62617, 0, "' '"), -(62618, 0, "'i'"), -(62619, 0, "'t'"), -(62620, 0, "'e'"), -(62621, 0, "'m'"), -(62622, 0, "':'"), -(62623, 0, "' '"), -(62624, 0, "'&'"), -(62625, 0, "'m'"), -(62626, 0, "'u'"), -(62627, 0, "'t'"), -(62628, 0, "' '"), -(62629, 0, "'C'"), -(62630, 0, "':'"), -(62631, 0, "':'"), -(62632, 0, "'I'"), -(62633, 0, "'t'"), -(62634, 0, "'e'"), -(62635, 0, "'m'"), -(62636, 0, "','"), -(62989, 650, "''"), -(62691, 0, "' let old_usersize = C::get_usersize(item);n modify_fn(item, self.item_offset);n let new_usersize = C::get_usersize(item);nn let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n self.cursor.update_offsets(self.list.height(), usersize_delta);n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);n self.item_offset = usize::max(self.item_offset, new_usersize);n }nn (self.notify)(std::slice::from_ref(item), ItemMarker {n ptr: e,n // _phantom: PhantomData,n });n'"), -(63341, 1, "''"), -(62601, 17, "''"), -(63430, 31, "''"), -(62673, 0, "'n '"), -(62682, 0, "'let e = self.cursor.here_ptr();'"), -(62682, 0, "'// '"), -(62693, 23, "''"), -(63291, 1, "''"), -(63291, 0, "'self.cursor.here_ptr();'"), -(63313, 1, "''"), -(62674, 19, "''"), -(62673, 1, "''"), -(63887, 16, "''"), -(63886, 1, "''"), -(63885, 1, "''"), -(63884, 1, "''"), -(63883, 1, "''"), -(63829, 0, "'self.item_offset'"), -(63845, 0, "' '"), -(63846, 0, "'>'"), -(63847, 0, "' '"), -(63847, 1, "''"), -(63847, 0, "'='"), -(63848, 0, "' '"), -(63828, 1, "''"), -(63902, 1, "''"), -(63956, 0, "'// '"), -(63992, 0, "'n '"), -(64001, 0, "'s'"), -(64002, 0, "'e'"), -(64003, 0, "'l'"), -(64004, 0, "'f'"), -(64005, 0, "'.'"), -(64006, 0, "'m'"), -(64007, 0, "'o'"), -(64008, 0, "'d'"), -(64009, 0, "'i'"), -(64010, 0, "'f'"), -(64006, 5, "'modify_item(item: &mut C::Item, modify_fn: F)'"), -(64018, 18, "'s'"), -(64019, 0, "'e'"), -(64020, 0, "'l'"), -(64021, 0, "'f'"), -(64022, 0, "'.'"), -(64023, 0, "'c'"), -(64024, 0, "'u'"), -(64025, 0, "'r'"), -(64026, 0, "'s'"), -(64027, 0, "'o'"), -(64028, 0, "'r'"), -(64029, 0, "'.'"), -(64030, 0, "'c'"), -(64031, 0, "'u'"), -(64032, 0, "'r'"), -(64033, 0, "'r'"), -(64030, 4, "'current_item_mut()'"), -(64050, 12, "'m'"), -(64051, 0, "'o'"), -(64052, 0, "'d'"), -(64053, 0, "'i'"), -(64054, 0, "'f'"), -(64055, 0, "'y'"), -(64056, 0, "'_'"), -(64057, 0, "'f'"), -(64058, 0, "'n'"), -(64060, 0, "';'"), -(64001, 0, "'u'"), -(64002, 0, "'n'"), -(64003, 0, "'s'"), -(64004, 0, "'a'"), -(64005, 0, "'f'"), -(64006, 0, "'e'"), -(64007, 0, "' '"), -(64008, 0, "'{'"), -(64009, 0, "' '"), -(64070, 0, "' '"), -(64071, 0, "'}'"), -(63947, 45, "''"), -(63947, 0, "'n '"), -(63948, 8, "''"), -(62601, 18, "''"), -(63930, 0, "' '"), -(62601, 0, "'item: &mut C::Item'"), -(63948, 8, "''"), -(62601, 18, "''"), -(62601, 0, "'m'"), -(62602, 0, "'o'"), -(62603, 0, "'d'"), -(62604, 0, "'i'"), -(62605, 0, "'f'"), -(62606, 0, "'y'"), -(62607, 0, "'_'"), -(62608, 0, "'c'"), -(62609, 0, "'u'"), -(62610, 0, "'r'"), -(62611, 0, "'r'"), -(62612, 0, "'e'"), -(62613, 0, "'n'"), -(62613, 1, "''"), -(62612, 1, "''"), -(62611, 1, "''"), -(62610, 1, "''"), -(62609, 1, "''"), -(62608, 1, "''"), -(62608, 0, "'p'"), -(62609, 0, "'r'"), -(62610, 0, "'e'"), -(62611, 0, "'v'"), -(62612, 0, "':'"), -(62613, 0, "' '"), -(62614, 0, "'b'"), -(62615, 0, "'o'"), -(62616, 0, "'o'"), -(62617, 0, "'l'"), -(62672, 0, "'n '"), -(63460, 158, "''"), -(62673, 8, "''"), -(62673, 0, "' let item = unsafe {n if self.item_offset > 0 { self.cursor.current_item_mut() }n else { self.cursor.prev_item_mut() }n };'"), -(62831, 0, "'n '"), -(62832, 8, "''"), -(62716, 16, "'m'"), -(62717, 0, "'o'"), -(62718, 0, "'d'"), -(62719, 0, "'i'"), -(62720, 0, "'f'"), -(62721, 0, "'y'"), -(62716, 6, "'modify_prev'"), -(62734, 30, "''"), -(62756, 0, "'self.cursor.current_item_mut()'"), -(62786, 27, "''"), -(62734, 0, "'self.cursor.prev_item_mut()'"), -(62729, 1, "''"), -(62729, 1, "''"), -(62729, 1, "''"), -(62728, 1, "''"), -(63975, 30, "''"), -(63975, 0, "'f'"), -(63976, 0, "'a'"), -(63977, 0, "'l'"), -(63978, 0, "'s'"), -(63979, 0, "'e'"), -(63820, 0, "'('"), -(63821, 0, "'s'"), -(63822, 0, "'e'"), -(63823, 0, "'l'"), -(63824, 0, "'f'"), -(63825, 0, "'.'"), -(63826, 0, "'i'"), -(63827, 0, "'t'"), -(63828, 0, "'e'"), -(63829, 0, "'m'"), -(63830, 0, "'_'"), -(63831, 0, "'o'"), -(63832, 0, "'f'"), -(63833, 0, "'f'"), -(63834, 0, "'s'"), -(63835, 0, "'e'"), -(63836, 0, "'t'"), -(63837, 0, "' '"), -(63838, 0, "'>'"), -(63839, 0, "' '"), -(63840, 0, "'0'"), -(63841, 0, "' '"), -(63842, 0, "'&'"), -(63843, 0, "'&'"), -(63844, 0, "' '"), -(63919, 0, "')'"), -(63601, 1, "''"), -(63597, 4, "''"), -(63593, 4, "''"), -(63592, 1, "''"), -(63592, 0, "'n '"), -(63601, 0, "'unsafe { self.modify_item(false, modify_fn); }'"), -(63627, 5, "'t'"), -(63628, 0, "'r'"), -(63629, 0, "'u'"), -(63630, 0, "'e'"), -(62692, 8, "''"), -(62673, 78, "' let item = if modify_prev { self.cursor.prev_item_mut() }'"), -(62739, 12, "' '"), -(62787, 10, "''"), -(62786, 1, "''"), -(62786, 0, "';'"), -(63471, 0, "'p'"), -(63472, 0, "'u'"), -(63473, 0, "'b'"), -(63474, 0, "' '"), -(54288, 0, "'_'"), -(54289, 0, "'m'"), -(54288, 2, "''"), -(63314, 1, "''"), -(63325, 1, "''"), -(63325, 0, "')'"), -(63314, 0, "'('"), -(62962, 0, "'0'"), -(62963, 0, "';'"), -(62964, 0, "' '"), -(62965, 0, "'/'"), -(62966, 0, "'/'"), -(62964, 3, "''"), -(62962, 2, "''"), -(63232, 0, "'// '"), -(63232, 3, "''"), -(63456, 0, "'// '"), -(63418, 0, "'// '"), -(63377, 0, "'// '"), -(63314, 0, "'// '"), -(63465, 3, "''"), -(63424, 3, "''"), -(63380, 3, "''"), -(63314, 3, "''"), -(67039, 0, "' '"), -(67030, 1, "''"), -(64176, 0, "'n'"), -(57202, 1, "''"), -(57103, 0, "'i'"), -(57097, 1, "''"), -(56878, 0, "'n'"), -(56796, 1, "''"), -(56795, 0, "'{'"), -(56753, 1, "''"), -(56736, 0, "'>'"), -(56734, 1, "''"), -(56728, 0, "'>'"), -(56724, 1, "''"), -(56707, 0, "'i'"), -(56706, 1, "''"), -(56054, 0, "'i'"), -(56048, 1, "''"), -(55841, 0, "'n'"), -(58313, 0, "'// '"), -(54544, 13, "''"), -(54517, 0, "'('"), -(54517, 1, "''"), -(54544, 0, "'item_offset, '"), -(54806, 13, "''"), -(54544, 13, "''"), -(54766, 0, "'('"), -(54517, 0, "'('"), -(54803, 0, "','"), -(54570, 0, "','"), -(54805, 0, "' '"), -(54571, 0, "' '"), -(54807, 0, "'item_offset, '"), -(54572, 0, "'item_offset, '"), -(54832, 1, "''"), -(54584, 1, "''"), -(54830, 1, "''"), -(54583, 1, "''"), -(54829, 0, "')'"), -(54583, 0, "')'"), -(54335, 0, "'('"), -(54382, 0, "','"), -(54383, 0, "' '"), -(54384, 0, "'u'"), -(54385, 0, "'s'"), -(54386, 0, "'i'"), -(54387, 0, "'z'"), -(54388, 0, "'e'"), -(54389, 0, "')'"), -(54702, 0, "'('"), -(54713, 0, "','"), -(54714, 0, "' '"), -(54715, 0, "'u'"), -(54716, 0, "'s'"), -(54717, 0, "'i'"), -(54718, 0, "'z'"), -(54719, 0, "'e'"), -(54720, 0, "')'"), -(59138, 78, "''"), -(59138, 1, "''"), -(60947, 0, "'n '"), -(60952, 0, "'n '"), -(60948, 4, "''"), -(60953, 0, "'p'"), -(60954, 0, "'u'"), -(60955, 0, "'b'"), -(60956, 0, "' '"), -(60957, 0, "'f'"), -(60958, 0, "'n'"), -(60959, 0, "' '"), -(60960, 0, "'i'"), -(60961, 0, "'n'"), -(60962, 0, "'s'"), -(60963, 0, "'e'"), -(60964, 0, "'r'"), -(60965, 0, "'t'"), -(60966, 0, "'_'"), -(60967, 0, "'b'"), -(60968, 0, "'e'"), -(60969, 0, "'t'"), -(60970, 0, "'w'"), -(60971, 0, "'e'"), -(60972, 0, "'e'"), -(60973, 0, "'n'"), -(60974, 0, "'(&mut self, mut contents: I) where I: ExactSizeIterator {'"), -(60988, 0, "' '"), -(60989, 0, "'o'"), -(60990, 0, "'f'"), -(60991, 0, "'f'"), -(60992, 0, "'s'"), -(60993, 0, "'e'"), -(60994, 0, "'t'"), -(60995, 0, "':'"), -(60996, 0, "' '"), -(60997, 0, "'u'"), -(60998, 0, "'s'"), -(60999, 0, "'i'"), -(61000, 0, "'z'"), -(61001, 0, "'e'"), -(61002, 0, "','"), -(61063, 0, "'n '"), -(61072, 0, "'n '"), -(61064, 8, "''"), -(61065, 8, "' }'"), -(59610, 124, "''"), -(59609, 1, "''"), -(60939, 0, "' '"), -(60947, 0, "'i'"), -(60948, 0, "'f'"), -(60949, 0, "' '"), -(60950, 0, "'o'"), -(60951, 0, "'f'"), -(60952, 0, "'f'"), -(60953, 0, "'s'"), -(60954, 0, "'e'"), -(60955, 0, "'t'"), -(60956, 0, "' '"), -(60957, 0, "'='"), -(60958, 0, "'='"), -(60959, 0, "' '"), -(60960, 0, "'0'"), -(60961, 0, "' '"), -(60962, 0, "'{'"), -(60963, 0, "' '"), -(60964, 0, "'r'"), -(60965, 0, "'e'"), -(60966, 0, "'t'"), -(60967, 0, "'u'"), -(60968, 0, "'r'"), -(60969, 0, "'n'"), -(60970, 0, "' '"), -(60971, 0, "'i'"), -(60972, 0, "'n'"), -(60972, 1, "''"), -(60971, 1, "''"), -(60971, 0, "'t'"), -(60972, 0, "'h'"), -(60973, 0, "'i'"), -(60974, 0, "'s'"), -(60975, 0, "'.'"), -(60976, 0, "'i'"), -(60977, 0, "'n'"), -(60978, 0, "'s'"), -(60979, 0, "'e'"), -(60980, 0, "'r'"), -(60981, 0, "'t'"), -(60982, 0, "'_'"), -(60983, 0, "'i'"), -(60976, 8, "'insert_iter'"), -(60987, 0, "'('"), -(60988, 0, "'c'"), -(60989, 0, "'o'"), -(60990, 0, "'n'"), -(60991, 0, "'t'"), -(60992, 0, "'e'"), -(60993, 0, "'n'"), -(60994, 0, "'t'"), -(60995, 0, "'s'"), -(60996, 0, "')'"), -(60997, 0, "';'"), -(60998, 0, "' '"), -(60999, 0, "'}'"), -(61000, 0, "'n '"), -(61001, 8, "''"), -(60971, 4, "'s'"), -(60972, 0, "'e'"), -(60973, 0, "'l'"), -(60974, 0, "'f'"), -(59660, 56, "''"), -(59754, 16, "' '"), -(59660, 16, "' '"), -(59750, 12, "' '"), -(59660, 12, "' '"), -(59746, 8, "' '"), -(59660, 8, "' '"), -(59750, 12, "' '"), -(59660, 12, "' '"), -(59660, 0, "' unsafe {n if self.item_offset == 0 {n'"), -(59677, 39, "''"), -(59771, 16, "' '"), -(59677, 16, "' '"), -(59840, 21, "''"), -(59840, 884, "''"), -(59840, 15, "''"), -(60034, 0, "'n '"), -(60043, 0, "' let current_item = self.cursor.current_item();n let (start, end) = C::split_item(current_item, self.item_offset);n // Move the cursor back to the start of the item we'ren // splitting.n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);n // This feels pretty inefficient; but its probably fine.n self.list.replace_item(&mut self.cursor, start, &mut self.notify);nn // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);nn self.list.insert_at_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);'"), -(60828, 16, "' '"), -(60750, 16, "' '"), -(60656, 16, "' '"), -(60616, 16, "' '"), -(60535, 16, "' '"), -(60451, 16, "' '"), -(60378, 16, "' '"), -(60289, 16, "' '"), -(60259, 16, "' '"), -(60188, 16, "' '"), -(60106, 16, "' '"), -(60035, 24, "' '"), -(60311, 16, "'o'"), -(60145, 16, "'o'"), -(60297, 0, "'f'"), -(60146, 0, "'f'"), -(60299, 0, "'f'"), -(60147, 0, "'f'"), -(60301, 0, "'s'"), -(60148, 0, "'s'"), -(60303, 0, "'e'"), -(60149, 0, "'e'"), -(60305, 0, "'t'"), -(60150, 0, "'t'"), -(59605, 4, "''"), -(59601, 4, "''"), -(59600, 1, "''"), -(60025, 0, "'n '"), -(60034, 0, "' let num_inserted_items = contents.len();n let start_userpos = self.cursor.userpos;n'"), -(60026, 16, "' '"), -(59873, 0, "'_'"), -(59874, 0, "'i'"), -(59875, 0, "'t'"), -(59876, 0, "'e'"), -(59877, 0, "'r'"), -(61002, 0, "'n '"), -(61003, 4, "''"), -(61002, 0, "'n '"), -(61007, 0, "' pub fn insert(&mut self, item: C::Item) {n self.insert_iter(iter::once(item));n }'"), -(61003, 8, "' '"), -(61020, 0, "'_'"), -(61021, 0, "'b'"), -(61022, 0, "'e'"), -(61023, 0, "'t'"), -(61024, 0, "'w'"), -(61025, 0, "'e'"), -(61026, 0, "'e'"), -(61027, 0, "'n'"), -(61039, 0, "' '"), -(61040, 0, "'o'"), -(61041, 0, "'f'"), -(61042, 0, "'f'"), -(61043, 0, "'s'"), -(61044, 0, "'e'"), -(61045, 0, "'t'"), -(61046, 0, "':'"), -(61047, 0, "' '"), -(61048, 0, "'u'"), -(61049, 0, "'s'"), -(61050, 0, "'i'"), -(61051, 0, "'z'"), -(61052, 0, "'e'"), -(61053, 0, "','"), -(61092, 0, "'b'"), -(61093, 0, "'e'"), -(61094, 0, "'t'"), -(61095, 0, "'w'"), -(61096, 0, "'e'"), -(61097, 0, "'e'"), -(61098, 0, "'n'"), -(61099, 0, "'_'"), -(61105, 0, "'o'"), -(61106, 0, "'f'"), -(61107, 0, "'f'"), -(61108, 0, "'s'"), -(61109, 0, "'e'"), -(61110, 0, "'t'"), -(61111, 0, "','"), -(61112, 0, "' '"), -(61398, 79, "''"), -(61769, 35, "''"), -(62231, 12, "' '"), -(62169, 16, "' '"), -(62101, 16, "' '"), -(62080, 12, "' '"), -(62059, 16, "' '"), -(61966, 16, "' '"), -(61895, 16, "' '"), -(61815, 16, "' '"), -(61769, 12, "' '"), -(62209, 103, "''"), -(62310, 30, "''"), -(62617, 18, "''"), -(62418, 7, "''"), -(62951, 74, "''"), -(62950, 1, "''"), -(63427, 7, "''"), -(63207, 7, "''"), -(63464, 112, "''"), -(63463, 1, "''"), -(63463, 0, "' '"), -(63335, 0, "'n '"), -(63336, 4, "''"), -(63335, 1, "''"), -(63271, 0, "'n '"), -(63276, 0, "'/'"), -(63277, 0, "'/'"), -(63278, 0, "'/'"), -(63279, 0, "' '"), -(63280, 0, "'T'"), -(63281, 0, "'h'"), -(63282, 0, "'i'"), -(63283, 0, "'s'"), -(63284, 0, "' '"), -(63280, 5, "'C'"), -(63281, 0, "'a'"), -(63282, 0, "'v'"), -(63283, 0, "'e'"), -(63284, 0, "'a'"), -(63285, 0, "'t'"), -(63286, 0, "':'"), -(63287, 0, "' '"), -(63288, 0, "'T'"), -(63289, 0, "'h'"), -(63290, 0, "'i'"), -(63291, 0, "'s'"), -(63292, 0, "' '"), -(63293, 0, "'m'"), -(63294, 0, "'o'"), -(63295, 0, "'v'"), -(63296, 0, "'e'"), -(63297, 0, "'s'"), -(63298, 0, "' '"), -(63299, 0, "'t'"), -(63300, 0, "'h'"), -(63301, 0, "'e'"), -(63302, 0, "' '"), -(63303, 0, "'c'"), -(63304, 0, "'u'"), -(63305, 0, "'r'"), -(63306, 0, "'s'"), -(63307, 0, "'o'"), -(63308, 0, "'r'"), -(63309, 0, "' '"), -(63310, 0, "'t'"), -(63311, 0, "'o'"), -(63312, 0, "' '"), -(63313, 0, "'t'"), -(63314, 0, "'h'"), -(63315, 0, "'e'"), -(63316, 0, "' '"), -(63317, 0, "'n'"), -(63318, 0, "'e'"), -(63319, 0, "'x'"), -(63320, 0, "'t'"), -(63321, 0, "' '"), -(63322, 0, "'i'"), -(63323, 0, "'t'"), -(63324, 0, "'e'"), -(63325, 0, "'m'"), -(17326, 16, "''"), -(17325, 1, "''"), -(17324, 1, "''"), -(17323, 1, "''"), -(17300, 0, "'>'"), -(17301, 0, "' '"), -(17301, 1, "''"), -(17300, 1, "''"), -(17323, 0, "' > '"), -(17323, 3, "''"), -(17300, 0, "'>'"), -(17300, 1, "''"), -(17300, 0, "'<'"), -(17301, 0, "' '"), -(17300, 0, "'self.local_index'"), -(17316, 0, "' '"), -(16462, 0, "'O'"), -(16463, 0, "'p'"), -(16464, 0, "'t'"), -(16465, 0, "'i'"), -(16466, 0, "'o'"), -(16467, 0, "'n'"), -(16479, 0, "'>'"), -(16468, 0, "'<'"), -(16521, 0, "'n '"), -(16530, 0, "'i'"), -(16531, 0, "'f'"), -(16532, 0, "' '"), -(16533, 0, "'s'"), -(16534, 0, "'e'"), -(16535, 0, "'l'"), -(16536, 0, "'f'"), -(16537, 0, "'.'"), -(16538, 0, "'l'"), -(16539, 0, "'o'"), -(16540, 0, "'c'"), -(16541, 0, "'a'"), -(16542, 0, "'l'"), -(16538, 5, "'local_index'"), -(16549, 0, "' '"), -(16550, 0, "'='"), -(16551, 0, "'='"), -(16552, 0, "' '"), -(16553, 0, "'0'"), -(16554, 0, "' '"), -(16555, 0, "'{'"), -(16556, 0, "'n '"), -(16569, 0, "'n '"), -(16557, 12, "''"), -(16558, 12, "' }'"), -(16557, 0, "' '"), -(16569, 0, "'a'"), -(16570, 0, "'s'"), -(16571, 0, "'s'"), -(16572, 0, "'e'"), -(16573, 0, "'r'"), -(16569, 5, "'assert_eq!'"), -(16579, 0, "'('"), -(16580, 0, "'s'"), -(16581, 0, "'e'"), -(16582, 0, "'l'"), -(16583, 0, "'f'"), -(16584, 0, "'.'"), -(16584, 1, "''"), -(16584, 0, "'.'"), -(16585, 0, "'u'"), -(16586, 0, "'s'"), -(16587, 0, "'e'"), -(16588, 0, "'r'"), -(16589, 0, "'p'"), -(16590, 0, "'o'"), -(16591, 0, "'s'"), -(16592, 0, "','"), -(16593, 0, "' '"), -(16594, 0, "'0'"), -(16595, 0, "')'"), -(16596, 0, "';'"), -(16522, 75, "' if self.local_index == 0 { assert_eq!(self.userpos, 0);'"), -(16522, 73, "' if self.local_index == 0 { assert_eq!(self.userpos, 0); }'"), -(16522, 65, "' if self.local_index == 0 { assert_eq!(self.userpos, 0);n }'"), -(16522, 63, "' if self.local_index == 0 {n assert_eq!(self.userpos, 0);'"), -(16597, 0, "'n '"), -(16610, 0, "'N'"), -(16611, 0, "'o'"), -(16612, 0, "'n'"), -(16613, 0, "'e'"), -(16624, 0, "' '"), -(16625, 0, "'e'"), -(16626, 0, "'l'"), -(16627, 0, "'s'"), -(16628, 0, "'e'"), -(16629, 0, "' '"), -(16630, 0, "'{'"), -(16739, 8, "' '"), -(16671, 8, "' '"), -(16632, 8, "' '"), -(16632, 42, "''"), -(16631, 1, "''"), -(16761, 0, "'n '"), -(16762, 12, "' }'"), -(16715, 0, "'S'"), -(16715, 1, "''"), -(16716, 0, "'S'"), -(16717, 0, "'o'"), -(16718, 0, "'m'"), -(16719, 0, "'e'"), -(16720, 0, "'('"), -(16766, 0, "')'"), -(16845, 8, "'n '"), -(16846, 8, "'n '"), -(16845, 0, "' let node = &*self.here_ptr();n if self.local_index == 0 {n assert_eq!(self.userpos, 0);n Nonen } else {n debug_assert!(self.local_index <= node.num_items as usize);n Some(&*(node.items[self.local_index - 1].as_ptr()))n }n'"), -(17083, 0, "'m'"), -(17084, 0, "'u'"), -(17085, 0, "'t'"), -(17086, 0, "' '"), -(16865, 0, "'m'"), -(16866, 0, "'u'"), -(16867, 0, "'t'"), -(16868, 0, "' '"), -(16827, 0, "'O'"), -(16828, 0, "'t'"), -(16828, 1, "''"), -(16828, 0, "'p'"), -(16829, 0, "'t'"), -(16830, 0, "'i'"), -(16831, 0, "'o'"), -(16832, 0, "'n'"), -(16833, 0, "'<'"), -(16849, 0, "'>'"), -(17314, 0, "'// '"), -(17246, 0, "'// '"), -(17207, 0, "'// '"), -(17165, 0, "'// '"), -(17137, 0, "'m'"), -(17138, 0, "'u'"), -(17139, 0, "'t'"), -(17140, 0, "' '"), -(17140, 1, "''"), -(17140, 0, "'_'"), -(17159, 225, "''"), -(17055, 0, "'.'"), -(17055, 1, "''"), -(17424, 0, "'O'"), -(17203, 0, "'O'"), -(17426, 0, "'p'"), -(17204, 0, "'p'"), -(17428, 0, "'t'"), -(17205, 0, "'t'"), -(17430, 0, "'i'"), -(17206, 0, "'i'"), -(17432, 0, "'o'"), -(17207, 0, "'o'"), -(17434, 0, "'n'"), -(17208, 0, "'n'"), -(17436, 0, "'<'"), -(17209, 0, "'<'"), -(17453, 0, "'>'"), -(17221, 0, "'>'"), -(16929, 0, "'n '"), -(16930, 12, "''"), -(16929, 1, "''"), -(17271, 0, "'// '"), -(17262, 0, "'n '"), -(17271, 0, "'i'"), -(17272, 0, "'f'"), -(17273, 0, "' '"), -(17274, 0, "'self.local_index < node.num_items'"), -(17307, 0, "' '"), -(17308, 0, "'a'"), -(17309, 0, "'s'"), -(17310, 0, "' '"), -(17311, 0, "'u'"), -(17312, 0, "'s'"), -(17313, 0, "'i'"), -(17314, 0, "'z'"), -(17315, 0, "'e'"), -(17316, 0, "' '"), -(17317, 0, "'{'"), -(17318, 0, "'n '"), -(17331, 0, "'n '"), -(17319, 12, "''"), -(17320, 12, "' }'"), -(17319, 0, "' '"), -(17331, 0, "'/'"), -(17332, 0, "'/'"), -(17333, 0, "' '"), -(17334, 0, "'O'"), -(17335, 0, "'k'"), -(17336, 0, "' '"), -(17337, 0, "'-'"), -(17338, 0, "' '"), -(17339, 0, "'w'"), -(17340, 0, "'e'"), -(17341, 0, "'''"), -(17342, 0, "'r'"), -(17343, 0, "'e'"), -(17344, 0, "' '"), -(17339, 6, "'j'"), -(17340, 0, "'u'"), -(17341, 0, "'s'"), -(17342, 0, "'t'"), -(17343, 0, "' '"), -(17344, 0, "'r'"), -(17345, 0, "'e'"), -(17346, 0, "'t'"), -(17347, 0, "'u'"), -(17348, 0, "'r'"), -(17349, 0, "'n'"), -(17350, 0, "' '"), -(17351, 0, "'t'"), -(17352, 0, "'h'"), -(17353, 0, "'e'"), -(17354, 0, "' '"), -(17355, 0, "'c'"), -(17356, 0, "'u'"), -(17357, 0, "'r'"), -(17358, 0, "'r'"), -(17359, 0, "'e'"), -(17360, 0, "'n'"), -(17361, 0, "'t'"), -(17362, 0, "' '"), -(17363, 0, "'i'"), -(17364, 0, "'t'"), -(17365, 0, "'e'"), -(17366, 0, "'m'"), -(17367, 0, "'.'"), -(17379, 70, "''"), -(17428, 0, "'n }'"), -(17379, 8, "' '"), -(17369, 10, "''"), -(17381, 0, "'S'"), -(17382, 0, "'o'"), -(17383, 0, "'m'"), -(17384, 0, "'e'"), -(17385, 0, "'('"), -(17427, 0, "')'"), -(17438, 0, "' '"), -(17439, 0, "'e'"), -(17440, 0, "'l'"), -(17441, 0, "'s'"), -(17442, 0, "'e'"), -(17443, 0, "' '"), -(17444, 0, "'{'"), -(17445, 0, "'n '"), -(17458, 0, "'n '"), -(17446, 12, "''"), -(17447, 12, "' }'"), -(17446, 0, "' '"), -(17458, 0, "'/'"), -(17459, 0, "'/'"), -(17460, 0, "' '"), -(17461, 0, "'R'"), -(17462, 0, "'e'"), -(17463, 0, "'t'"), -(17464, 0, "'u'"), -(17465, 0, "'r'"), -(17466, 0, "'n'"), -(17467, 0, "' '"), -(17468, 0, "'t'"), -(17469, 0, "'h'"), -(17470, 0, "'e'"), -(17471, 0, "' '"), -(17472, 0, "'f'"), -(17473, 0, "'i'"), -(17474, 0, "'r'"), -(17475, 0, "'s'"), -(17476, 0, "'t'"), -(17477, 0, "' '"), -(17478, 0, "'i'"), -(17479, 0, "'t'"), -(17480, 0, "'e'"), -(17481, 0, "'m'"), -(17482, 0, "' '"), -(17483, 0, "'i'"), -(17484, 0, "'n'"), -(17485, 0, "' '"), -(17486, 0, "'t'"), -(17487, 0, "'h'"), -(17488, 0, "'e'"), -(17489, 0, "' '"), -(17490, 0, "'n'"), -(17491, 0, "'e'"), -(17492, 0, "'x'"), -(17493, 0, "'t'"), -(17494, 0, "' '"), -(17495, 0, "'n'"), -(17496, 0, "'o'"), -(17497, 0, "'d'"), -(17498, 0, "'e'"), -(17499, 0, "'.'"), -(17461, 10, "'P'"), -(17462, 0, "'e'"), -(17463, 0, "'e'"), -(17464, 0, "'l'"), -(17464, 1, "''"), -(17464, 0, "'k'"), -(17465, 0, "' '"), -(17466, 0, "'t'"), -(17467, 0, "'h'"), -(17468, 0, "'e'"), -(17498, 0, "'n '"), -(17511, 0, "'l'"), -(17512, 0, "'e'"), -(17513, 0, "'t'"), -(17514, 0, "' '"), -(17515, 0, "'n'"), -(17516, 0, "'e'"), -(17517, 0, "'x'"), -(17518, 0, "'t'"), -(17519, 0, "' '"), -(17520, 0, "'='"), -(17521, 0, "' '"), -(17522, 0, "'s'"), -(17523, 0, "'e'"), -(17524, 0, "'l'"), -(17525, 0, "'f'"), -(17526, 0, "'.'"), -(17527, 0, "'h'"), -(17528, 0, "'e'"), -(17529, 0, "'r'"), -(17530, 0, "'e'"), -(17527, 4, "'here_ptr()'"), -(17537, 0, "'.'"), -(17538, 0, "'n'"), -(17539, 0, "'o'"), -(17540, 0, "'d'"), -(17541, 0, "'e'"), -(17527, 15, "''"), -(17527, 0, "'e'"), -(17528, 0, "'n'"), -(17529, 0, "'t'"), -(17530, 0, "'r'"), -(17531, 0, "'i'"), -(17532, 0, "'e'"), -(17533, 0, "'s'"), -(17527, 7, "''"), -(17527, 0, "'here_ptr().node'"), -(17538, 4, "''"), -(17538, 0, "'g'"), -(17539, 0, "'e'"), -(17540, 0, "'t'"), -(17541, 0, "'_'"), -(17542, 0, "'n'"), -(17543, 0, "'e'"), -(17544, 0, "'x'"), -(17538, 7, "'get_next_ptr'"), -(17550, 0, "'('"), -(17551, 0, "')'"), -(17522, 0, "'('"), -(17523, 0, "'*'"), -(17539, 0, "')'"), -(17498, 0, "'n '"), -(17511, 0, "'u'"), -(17512, 0, "'n'"), -(17513, 0, "'s'"), -(17514, 0, "'a'"), -(17515, 0, "'f'"), -(17516, 0, "'e'"), -(17517, 0, "' '"), -(17518, 0, "'{'"), -(17576, 0, "'n '"), -(17577, 12, "' }'"), -(17576, 14, "''"), -(17517, 2, "''"), -(17498, 19, "''"), -(17555, 0, "';'"), -(17556, 0, "'n '"), -(17569, 0, "'i'"), -(17570, 0, "'f'"), -(17571, 0, "' '"), -(17572, 0, "'n'"), -(17573, 0, "'e'"), -(17574, 0, "'x'"), -(17575, 0, "'t'"), -(17576, 0, "'.'"), -(17577, 0, "'i'"), -(17578, 0, "'s'"), -(17579, 0, "'_'"), -(17580, 0, "'n'"), -(17581, 0, "'u'"), -(17577, 5, "'is_null'"), -(17584, 0, "'('"), -(17585, 0, "')'"), -(17586, 0, "' '"), -(17587, 0, "'{'"), -(17588, 0, "' '"), -(17589, 0, "'r'"), -(17590, 0, "'e'"), -(17591, 0, "'t'"), -(17592, 0, "'u'"), -(17593, 0, "'r'"), -(17594, 0, "'n'"), -(17595, 0, "' '"), -(17596, 0, "'N'"), -(17597, 0, "'o'"), -(17598, 0, "'n'"), -(17599, 0, "'e'"), -(17600, 0, "';'"), -(17601, 0, "' '"), -(17602, 0, "'}'"), -(17603, 0, "'n '"), -(17616, 0, "'e'"), -(17617, 0, "'l'"), -(17618, 0, "'s'"), -(17619, 0, "'e'"), -(17620, 0, "' '"), -(17589, 7, "''"), -(17593, 1, "''"), -(17613, 0, "'{'"), -(17614, 0, "'n '"), -(17631, 0, "'n '"), -(17615, 16, "''"), -(17616, 16, "' }'"), -(17615, 0, "' '"), -(17631, 0, "'S'"), -(17632, 0, "'o'"), -(17633, 0, "'m'"), -(17634, 0, "'e'"), -(17635, 0, "'('"), -(17636, 0, "'('"), -(17636, 1, "''"), -(17636, 0, "'('"), -(17637, 0, "'*'"), -(17638, 0, "'n'"), -(17639, 0, "'e'"), -(17640, 0, "'x'"), -(17641, 0, "'t'"), -(17642, 0, "')'"), -(17643, 0, "'.'"), -(17644, 0, "'c'"), -(17645, 0, "'o'"), -(17646, 0, "'n'"), -(17647, 0, "'t'"), -(17648, 0, "'e'"), -(17649, 0, "'n'"), -(17650, 0, "'t'"), -(17644, 7, "'content'"), -(17651, 0, "'_'"), -(17652, 0, "'s'"), -(17653, 0, "'l'"), -(17654, 0, "'i'"), -(17655, 0, "'c'"), -(17656, 0, "'e'"), -(17657, 0, "'['"), -(17658, 0, "'0'"), -(17658, 1, "''"), -(17658, 0, "']'"), -(17658, 1, "''"), -(17658, 0, "'0'"), -(17659, 0, "']'"), -(17657, 0, "'('"), -(17658, 0, "')'"), -(17662, 0, "')'"), -(17636, 0, "'&'"), -(17192, 0, "'<'"), -(17193, 0, "'''"), -(17194, 0, "'a'"), -(17195, 0, "'>'"), -(13966, 1, "''"), -(13965, 1, "''"), -(13964, 1, "''"), -(13963, 1, "''"), -(16808, 0, "'<'"), -(16809, 0, "'''"), -(16810, 0, "'a'"), -(16811, 0, "'.'"), -(16811, 1, "''"), -(16811, 0, "'>'"), -(16447, 0, "'<'a>'"), -(17622, 0, "'n '"), -(17639, 0, "'d'"), -(17640, 0, "'e'"), -(17641, 0, "'b'"), -(17642, 0, "'u'"), -(17643, 0, "'g'"), -(17639, 5, "'debug_assert!'"), -(17652, 0, "'('"), -(17653, 0, "'*'"), -(17654, 0, "'n'"), -(17655, 0, "'e'"), -(17656, 0, "'x'"), -(17657, 0, "'t'"), -(17653, 0, "'('"), -(17659, 0, "')'"), -(17660, 0, "'.'"), -(17661, 0, "'n'"), -(17662, 0, "'u'"), -(17663, 0, "'m'"), -(17664, 0, "'_'"), -(17665, 0, "'i'"), -(17666, 0, "'t'"), -(17667, 0, "'e'"), -(17668, 0, "'m'"), -(17669, 0, "'s'"), -(17670, 0, "' '"), -(17671, 0, "'>'"), -(17672, 0, "' '"), -(17673, 0, "'0'"), -(17674, 0, "')'"), -(17675, 0, "';'"), -(17698, 1, "''"), -(17698, 0, "'&'"), -(17707, 13, "''"), -(17707, 1, "''"), -(17707, 1, "''"), -(17707, 0, "'i'"), -(17708, 0, "'t'"), -(17709, 0, "'e'"), -(17710, 0, "'m'"), -(17711, 0, "'s'"), -(17715, 0, "'.'"), -(17716, 0, "'a'"), -(17717, 0, "'s'"), -(17718, 0, "'_'"), -(17719, 0, "'r'"), -(17720, 0, "'e'"), -(17721, 0, "'f'"), -(17722, 0, "'('"), -(17723, 0, "')'"), -(17716, 6, "'a'"), -(17717, 0, "'s'"), -(17718, 0, "'_'"), -(17719, 0, "'p'"), -(17720, 0, "'t'"), -(17721, 0, "'r'"), -(17699, 0, "'*'"), -(17168, 0, "'n '"), -(17173, 0, "'n '"), -(17169, 4, "''"), -(17174, 0, "'f'"), -(17175, 0, "'n'"), -(17176, 0, "' '"), -(17177, 0, "'p'"), -(17178, 0, "'e'"), -(17179, 0, "'e'"), -(17180, 0, "'k'"), -(17181, 0, "'_'"), -(17182, 0, "'n'"), -(17183, 0, "'e'"), -(17184, 0, "'x'"), -(17185, 0, "'t'"), -(17186, 0, "'_'"), -(17187, 0, "'i'"), -(17188, 0, "'t'"), -(17189, 0, "'e'"), -(17190, 0, "'m'"), -(17191, 0, "'('"), -(17192, 0, "'&'"), -(17193, 0, "'s'"), -(17194, 0, "'e'"), -(17195, 0, "'l'"), -(17196, 0, "'f'"), -(17197, 0, "')'"), -(17198, 0, "' '"), -(17199, 0, "'-'"), -(17200, 0, "'>'"), -(17201, 0, "' '"), -(17202, 0, "'O'"), -(17202, 1, "''"), -(17202, 0, "'O'"), -(17202, 1, "''"), -(17202, 0, "'*'"), -(17203, 0, "'C'"), -(17204, 0, "':'"), -(17205, 0, "':'"), -(17206, 0, "'I'"), -(17206, 1, "'Item'"), -(17203, 0, "'m'"), -(17204, 0, "'u'"), -(17205, 0, "'t'"), -(17206, 0, "' '"), -(17214, 0, "' '"), -(17215, 0, "'{'"), -(17216, 0, "'n '"), -(17225, 0, "'n '"), -(17217, 8, "''"), -(17218, 8, "' }'"), -(17217, 0, "' let next = (*self.here_ptr()).get_next_ptr();n if next.is_null() { None }n else {n debug_assert!((*next).num_items > 0);n Some(&*(*next).items[0].as_ptr())n }n'"), -(17437, 12, "' '"), -(17387, 16, "' '"), -(17333, 16, "' '"), -(17314, 12, "' '"), -(17275, 12, "' '"), -(17217, 12, "' '"), -(17426, 1, "''"), -(17299, 4, "''"), -(17299, 0, "'p'"), -(17300, 0, "'t'"), -(17301, 0, "'r'"), -(17302, 0, "':'"), -(17303, 0, "':'"), -(17304, 0, "'n'"), -(17305, 0, "'u'"), -(17306, 0, "'l'"), -(17304, 3, "'null()'"), -(17422, 1, "''"), -(17390, 7, "''"), -(17308, 0, "'_'"), -(17309, 0, "'m'"), -(17310, 0, "'u'"), -(17311, 0, "'t'"), -(17414, 0, "'m'"), -(17415, 0, "'u'"), -(17416, 0, "'t'"), -(17417, 0, "'_'"), -(17174, 0, "'u'"), -(17175, 0, "'n'"), -(17176, 0, "'s'"), -(17177, 0, "'a'"), -(17178, 0, "'f'"), -(17179, 0, "'e'"), -(17180, 0, "' '"), -(17209, 0, "'O'"), -(17210, 0, "'p'"), -(17211, 0, "'t'"), -(17212, 0, "'i'"), -(17213, 0, "'o'"), -(17214, 0, "'n'"), -(17215, 0, "'<'"), -(17228, 0, "'>'"), -(17314, 15, "'N'"), -(17315, 0, "'u'"), -(17315, 1, "''"), -(17314, 1, "''"), -(17314, 0, "'N'"), -(17315, 0, "'o'"), -(17316, 0, "'n'"), -(17317, 0, "'e'"), -(17398, 0, "'S'"), -(17399, 0, "'o'"), -(17400, 0, "'m'"), -(17401, 0, "'e'"), -(17402, 0, "'('"), -(17432, 0, "')'"), -(17787, 0, "'n '"), -(17800, 0, "'s'"), -(17801, 0, "'e'"), -(17802, 0, "'l'"), -(17803, 0, "'f'"), -(17804, 0, "'.'"), -(17805, 0, "'.'"), -(17806, 0, "'p'"), -(17807, 0, "'e'"), -(17808, 0, "'e'"), -(17809, 0, "'k'"), -(17809, 1, "''"), -(17808, 1, "''"), -(17807, 1, "''"), -(17806, 1, "''"), -(17805, 1, "''"), -(17805, 0, "'p'"), -(17806, 0, "'e'"), -(17807, 0, "'e'"), -(17808, 0, "'k'"), -(17805, 4, "'peek_next_item()'"), -(17821, 0, "'.'"), -(17822, 0, "'a'"), -(17823, 0, "'n'"), -(17824, 0, "'d'"), -(17822, 3, "'and_then(f: F)'"), -(17831, 4, "'|'"), -(17832, 0, "'p'"), -(17833, 0, "'t'"), -(17834, 0, "'r'"), -(17835, 0, "'|'"), -(17836, 0, "' '"), -(17837, 0, "'&'"), -(17838, 0, "'*'"), -(17839, 0, "'p'"), -(17840, 0, "'t'"), -(17841, 0, "'r'"), -(18076, 0, "'// '"), -(18026, 0, "'// '"), -(17972, 0, "'// '"), -(17953, 0, "'// '"), -(17914, 0, "'// '"), -(17856, 0, "'// '"), -(17822, 8, "'m'"), -(17823, 0, "'a'"), -(17824, 0, "'p'"), -(17839, 252, "''"), -(17927, 8, "'n '"), -(17928, 8, "'n '"), -(17927, 0, "' let node = &*self.here_ptr();n if self.local_index < node.num_items as usize {n // Ok - just return the current item.n Some(&*(node.items[self.local_index].as_ptr()))n } else {n // Peek the first item in the next node.n self.peek_next_item().map(|ptr| &*ptr)n }n'"), -(17947, 0, "'m'"), -(17948, 0, "'u'"), -(17949, 0, "'t'"), -(17950, 0, "' '"), -(18127, 0, "'m'"), -(18128, 0, "'u'"), -(18129, 0, "'t'"), -(18130, 0, "'_'"), -(18270, 160, "''"), -(18270, 9, "''"), -(18270, 0, "'t_ptr())n'"), -(18270, 0, "'nn let node = &mut *self.here_ptr();n debug_assert!(self.local_index < node.num_items as usize);n &mut *(node.items[self.local_index].as_mu'"), -(18270, 160, "''"), -(18270, 9, "''"), -(18093, 0, "'m'"), -(18094, 0, "'u'"), -(18095, 0, "'t'"), -(18096, 0, "' '"), -(18258, 0, "'m'"), -(18259, 0, "'u'"), -(18260, 0, "'t'"), -(18261, 0, "' '"), -(17169, 0, "'n '"), -(17174, 0, "'/'"), -(17175, 0, "'/'"), -(17176, 0, "' '"), -(17177, 0, "'C'"), -(17178, 0, "'o'"), -(17179, 0, "'u'"), -(17180, 0, "'l'"), -(17181, 0, "'d'"), -(17182, 0, "' '"), -(17183, 0, "'b'"), -(17184, 0, "'e'"), -(17185, 0, "' '"), -(17186, 0, "'O'"), -(17187, 0, "'p'"), -(17188, 0, "'t'"), -(17189, 0, "'i'"), -(17190, 0, "'o'"), -(17191, 0, "'n'"), -(17192, 0, "'<'"), -(17193, 0, "'N'"), -(17194, 0, "'o'"), -(17195, 0, "'n'"), -(17196, 0, "'N'"), -(17197, 0, "'u'"), -(17198, 0, "'l'"), -(17199, 0, "'l'"), -(17200, 0, "'<'"), -(17201, 0, "'>'"), -(17201, 1, "''"), -(17201, 0, "'.'"), -(17202, 0, "'.'"), -(17202, 1, "''"), -(17201, 1, "''"), -(17201, 0, "'_'"), -(17202, 0, "'>'"), -(17203, 0, "'>'"), -(17204, 0, "'.'"), -(17205, 0, "'.'"), -(17206, 0, "'.'"), -(15888, 0, "'.'"), -(15889, 0, "'u'"), -(15890, 0, "'n'"), -(15891, 0, "'w'"), -(15892, 0, "'r'"), -(15893, 0, "'a'"), -(15894, 0, "'p'"), -(15895, 0, "'('"), -(15896, 0, "')'"), -(17933, 0, "'<'"), -(17934, 0, "'''"), -(17935, 0, "'a'"), -(17936, 0, "'>'"), -(55525, 0, "'n '"), -(55530, 0, "'n '"), -(55526, 4, "''"), -(55531, 0, "'p'"), -(55532, 0, "'u'"), -(55533, 0, "'b'"), -(55534, 0, "' '"), -(55535, 0, "'f'"), -(55536, 0, "'n'"), -(55537, 0, "' '"), -(55538, 0, "'e'"), -(55539, 0, "'d'"), -(55540, 0, "'i'"), -(55541, 0, "'t'"), -(55542, 0, "'_'"), -(55543, 0, "'b'"), -(55544, 0, "'e'"), -(55545, 0, "'t'"), -(55546, 0, "'w'"), -(55547, 0, "'e'"), -(55548, 0, "'e'"), -(55549, 0, "'('"), -(55549, 1, "''"), -(55549, 0, "'n'"), -(55550, 0, "'_'"), -(55550, 1, "''"), -(55550, 0, "'(&mut self, userpos: usize) -> (Edit)>, usize) {n // self.edit_notify(userpos, no_notify_x::, f)n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: Self::no_notify }, item_offset)n }'"), -(55763, 0, "'n '"), -(55772, 0, "'a'"), -(55773, 0, "'s'"), -(55772, 2, "'assert_eq!'"), -(55782, 0, "'('"), -(55783, 0, "'i'"), -(55784, 0, "'t'"), -(55785, 0, "'e'"), -(55786, 0, "'m'"), -(55787, 0, "'_'"), -(55788, 0, "'o'"), -(55783, 6, "'item_offset'"), -(55794, 0, "','"), -(55795, 0, "' '"), -(55796, 0, "'0'"), -(55797, 0, "','"), -(55798, 0, "' '"), -(55799, 0, "'''"), -(55800, 0, "'C'"), -(55801, 0, "'a'"), -(55802, 0, "'n'"), -(55803, 0, "'n'"), -(55804, 0, "'o'"), -(55805, 0, "'t'"), -(55806, 0, "' '"), -(55800, 7, "'e'"), -(55801, 0, "'d'"), -(55802, 0, "'i'"), -(55803, 0, "'t'"), -(55804, 0, "'_'"), -(55805, 0, "'b'"), -(55806, 0, "'e'"), -(55807, 0, "'t'"), -(55808, 0, "'w'"), -(55809, 0, "'e'"), -(55810, 0, "'e'"), -(55811, 0, "'n'"), -(55812, 0, "' '"), -(55813, 0, "'f'"), -(55814, 0, "'o'"), -(55815, 0, "'u'"), -(55816, 0, "'n'"), -(55817, 0, "'d'"), -(55818, 0, "' '"), -(55813, 6, "'l'"), -(55814, 0, "'a'"), -(55815, 0, "'n'"), -(55816, 0, "'d'"), -(55817, 0, "'e'"), -(55818, 0, "'d'"), -(55819, 0, "' '"), -(55820, 0, "'b'"), -(55820, 1, "''"), -(55820, 0, "'i'"), -(55821, 0, "'n'"), -(55822, 0, "'s'"), -(55823, 0, "'i'"), -(55824, 0, "'d'"), -(55825, 0, "'e'"), -(55826, 0, "' '"), -(55827, 0, "'a'"), -(55828, 0, "'n'"), -(55829, 0, "' '"), -(55830, 0, "'i'"), -(55831, 0, "'t'"), -(55832, 0, "'e'"), -(55833, 0, "'m'"), -(55834, 0, "'''"), -(55835, 0, "')'"), -(55836, 0, "';'"), -(55846, 1, "''"), -(55898, 14, "''"), -(55581, 1, "''"), -(55627, 8, "''"), -(55183, 0, "'_'"), -(54899, 0, "'_'"), -(54726, 0, "'_'"), -(54304, 0, "'_'"), -(55187, 0, "'b'"), -(54902, 0, "'b'"), -(54728, 0, "'b'"), -(54305, 0, "'b'"), -(55191, 0, "'e'"), -(54905, 0, "'e'"), -(54730, 0, "'e'"), -(54306, 0, "'e'"), -(55195, 0, "'t'"), -(54908, 0, "'t'"), -(54732, 0, "'t'"), -(54307, 0, "'t'"), -(55199, 0, "'w'"), -(54911, 0, "'w'"), -(54734, 0, "'w'"), -(54308, 0, "'w'"), -(55194, 9, "'edit_between(userpos: usize)'"), -(54905, 9, "'edit_between(userpos: usize)'"), -(54727, 9, "'edit_between(userpos: usize)'"), -(54300, 9, "'edit_between(userpos: usize)'"), -(55264, 14, "''"), -(54956, 14, "''"), -(54759, 14, "''"), -(54313, 14, "''"), -(55222, 1, "''"), -(54928, 1, "''"), -(54745, 1, "''"), -(54313, 1, "''"), -(55218, 1, "''"), -(54925, 1, "''"), -(54743, 1, "''"), -(54312, 1, "''"), -(54706, 7, "''"), -(54685, 22, "''"), -(54684, 1, "''"), -(54683, 1, "''"), -(54682, 1, "''"), -(54681, 1, "''"), -(54680, 1, "''"), -(54679, 1, "''"), -(54678, 1, "''"), -(54677, 1, "''"), -(54676, 0, "': FnOnce(&mut C::Item)'"), -(54677, 1, "''"), -(54676, 1, "''"), -(54675, 1, "''"), -(54675, 0, "'F: '"), -(54676, 22, "''"), -(54635, 0, "': FnOnce(&mut C::Item)'"), -(54847, 34, "''"), -(54794, 0, "': ExactSizeIterator '"), -(54827, 1, "''"), -(54873, 7, "''"), -(54869, 4, "''"), -(54868, 1, "''"), -(54867, 1, "''"), -(54867, 0, "' '"), -(54867, 1, "''"), -(54867, 0, "')'"), -(54868, 0, "' '"), -(54250, 34, "''"), -(54249, 1, "''"), -(54248, 1, "''"), -(54247, 1, "''"), -(54246, 1, "''"), -(54245, 1, "''"), -(54244, 1, "''"), -(54243, 1, "''"), -(54165, 1, "''"), -(54165, 0, "'I: ExactSizeIterator'"), -(54863, 0, "' self.edit_between(userpos).insert_iter(contents)n'"), -(54871, 0, "'// '"), -(54922, 0, "'n '"), -(54931, 0, "'l'"), -(54932, 0, "'e'"), -(54933, 0, "'t'"), -(54934, 0, "' '"), -(54935, 0, "'('"), -(54936, 0, "'e'"), -(54937, 0, "'d'"), -(54938, 0, "'i'"), -(54939, 0, "'t'"), -(54940, 0, "','"), -(54941, 0, "' '"), -(54942, 0, "'o'"), -(54943, 0, "'f'"), -(54944, 0, "'f'"), -(54945, 0, "'s'"), -(54946, 0, "'e'"), -(54947, 0, "'t'"), -(54948, 0, "')'"), -(54949, 0, "' '"), -(54950, 0, "'='"), -(54951, 0, "' '"), -(54952, 0, "'s'"), -(54953, 0, "'e'"), -(54954, 0, "'l'"), -(54955, 0, "'f'"), -(54956, 0, "'.'"), -(54957, 0, "'e'"), -(54958, 0, "'d'"), -(54959, 0, "'i'"), -(54960, 0, "'t'"), -(54961, 0, "'('"), -(54962, 0, "'u'"), -(54963, 0, "'s'"), -(54964, 0, "'e'"), -(54965, 0, "'r'"), -(54966, 0, "'p'"), -(54967, 0, "'o'"), -(54968, 0, "'s'"), -(54969, 0, "')'"), -(54970, 0, "';'"), -(54971, 0, "'n '"), -(54980, 0, "'e'"), -(54981, 0, "'d'"), -(54982, 0, "'i'"), -(54983, 0, "'t'"), -(54984, 0, "'.'"), -(54985, 0, "'i'"), -(54986, 0, "'n'"), -(54987, 0, "'s'"), -(54988, 0, "'e'"), -(54989, 0, "'r'"), -(54985, 5, "'insert_between_iter(offset: usize, mut contents: I)'"), -(55005, 13, "'o'"), -(55006, 0, "'f'"), -(55007, 0, "'f'"), -(55008, 0, "'s'"), -(55009, 0, "'e'"), -(55010, 0, "'t'"), -(55013, 15, "'c'"), -(55014, 0, "'o'"), -(55015, 0, "'n'"), -(55016, 0, "'t'"), -(55017, 0, "'e'"), -(55018, 0, "'n'"), -(55019, 0, "'t'"), -(55020, 0, "'s'"), -(55022, 0, "';'"), -(55024, 57, "''"), -(54863, 59, "''"), -(54862, 1, "''"), -(61575, 0, "'.'"), -(61576, 0, "'u'"), -(61577, 0, "'n'"), -(61578, 0, "'w'"), -(61579, 0, "'r'"), -(61580, 0, "'a'"), -(61581, 0, "'p'"), -(61582, 0, "'('"), -(61583, 0, "')'"), -(61576, 6, "'e'"), -(61577, 0, "'x'"), -(61578, 0, "'p'"), -(61579, 0, "'e'"), -(61580, 0, "'c'"), -(61581, 0, "'t'"), -(61583, 0, "'''"), -(61583, 1, "''"), -(61576, 6, "'unwrap'"), -(63103, 8, "''"), -(63094, 1, "''"), -(63426, 16, "''"), -(63460, 1, "''"), -(63459, 1, "''"), -(63458, 1, "''"), -(63458, 0, "' '"), -(63459, 0, "'}'"), -(63461, 58, "''"), -(16604, 0, "','"), -(16605, 0, "' '"), -(16606, 0, "''Invalid state: Cursor at start of node''"), -(63503, 9, "''"), -(63502, 1, "''"), -(63148, 307, "''"), -(63147, 1, "''"), -(63148, 12, "' '"), -(63097, 0, "'n pub fn prev_item(&self) -> Option<&C::Item> {n unsafe { self.cursor.prev_item() }n }n'"), -(63209, 1, "''"), -(63209, 1, "''"), -(63209, 1, "''"), -(63209, 1, "''"), -(63209, 0, "'n'"), -(63210, 0, "'e'"), -(63211, 0, "'x'"), -(63212, 0, "'t'"), -(63277, 9, "'n'"), -(63278, 0, "'e'"), -(63279, 0, "'x'"), -(63280, 0, "'T'"), -(63281, 0, "'_'"), -(63282, 0, "'t'"), -(63283, 0, "'i'"), -(63283, 1, "''"), -(63282, 1, "''"), -(63281, 1, "''"), -(63280, 1, "''"), -(63280, 0, "'t'"), -(63281, 0, "'_'"), -(63282, 0, "'i'"), -(63283, 0, "'t'"), -(63284, 0, "'e'"), -(63285, 0, "'m'"), -(63277, 4, "'c'"), -(63278, 0, "'u'"), -(63279, 0, "'r'"), -(63280, 0, "'r'"), -(63281, 0, "'e'"), -(63282, 0, "'n'"), -(63283, 0, "'t'"), -(63449, 4, "'n'"), -(63450, 0, "'e'"), -(63451, 0, "'x'"), -(63452, 0, "'t'"), -(63539, 1, "''"), -(63538, 1, "''"), -(63537, 1, "''"), -(63536, 1, "''"), -(63536, 0, "'n'"), -(63537, 0, "'e'"), -(63538, 0, "'x'"), -(63539, 0, "'t'"), -(63543, 27, "''"), -(63561, 0, "'self.cursor.prev_item_mut()'"), -(63588, 30, "''"), -(63543, 0, "'self.cursor.current_item_mut()'"), -(64330, 4, "'f'"), -(64331, 0, "'a'"), -(64332, 0, "'l'"), -(64333, 0, "'s'"), -(64334, 0, "'e'"), -(64685, 5, "'t'"), -(64686, 0, "'r'"), -(64687, 0, "'e'"), -(64687, 1, "''"), -(64687, 0, "'u'"), -(64688, 0, "'e'"), -(63442, 19, "''"), -(63423, 0, "'p'"), -(63424, 0, "'r'"), -(63425, 0, "'e'"), -(63426, 0, "'v'"), -(63427, 0, "'_'"), -(63512, 64, "''"), -(63511, 1, "''"), -(63540, 1, "''"), -(63539, 1, "''"), -(63539, 0, "'.'"), -(63540, 0, "'u'"), -(63541, 0, "'n'"), -(63540, 2, "'unwrap()'"), -(63540, 6, "'e'"), -(63541, 0, "'x'"), -(63542, 0, "'p'"), -(63543, 0, "'e'"), -(63544, 0, "'c'"), -(63545, 0, "'t'"), -(63547, 0, "'''"), -(63548, 0, "'C'"), -(63549, 0, "'a'"), -(63549, 1, "''"), -(63548, 1, "''"), -(63548, 0, "'C'"), -(63549, 0, "'u'"), -(63550, 0, "'r'"), -(63551, 0, "'s'"), -(63552, 0, "'p'"), -(63552, 1, "''"), -(63552, 0, "'o'"), -(63553, 0, "'r'"), -(63548, 6, "'c'"), -(63549, 0, "'a'"), -(63550, 0, "'n'"), -(63551, 0, "'n'"), -(63552, 0, "'o'"), -(63553, 0, "'t'"), -(63554, 0, "' '"), -(63555, 0, "'m'"), -(63556, 0, "'o'"), -(63548, 9, "'C'"), -(63549, 0, "'a'"), -(63550, 0, "'n'"), -(63551, 0, "'n'"), -(63552, 0, "'o'"), -(63553, 0, "'t'"), -(63554, 0, "' '"), -(63555, 0, "'m'"), -(63556, 0, "'o'"), -(63557, 0, "'d'"), -(63558, 0, "'i'"), -(63559, 0, "'f'"), -(63560, 0, "'y'"), -(63548, 13, "'C'"), -(63549, 0, "'u'"), -(63550, 0, "'r'"), -(63551, 0, "'s'"), -(63552, 0, "'o'"), -(63553, 0, "'r'"), -(63554, 0, "' '"), -(63555, 0, "'a'"), -(63556, 0, "'t'"), -(63557, 0, "' '"), -(63558, 0, "'s'"), -(63559, 0, "'t'"), -(63560, 0, "'a'"), -(63561, 0, "'r'"), -(63562, 0, "'t'"), -(63563, 0, "' '"), -(63564, 0, "'o'"), -(63565, 0, "'f'"), -(63566, 0, "' '"), -(63567, 0, "'d'"), -(63568, 0, "'o'"), -(63569, 0, "'c'"), -(63570, 0, "'u'"), -(63571, 0, "'m'"), -(63572, 0, "'e'"), -(63573, 0, "'n'"), -(63574, 0, "'t'"), -(63575, 0, "'.'"), -(63576, 0, "' '"), -(63577, 0, "'C'"), -(63578, 0, "'a'"), -(63579, 0, "'n'"), -(63580, 0, "'n'"), -(63581, 0, "'o'"), -(63582, 0, "'t'"), -(63583, 0, "' '"), -(63584, 0, "'m'"), -(63585, 0, "'o'"), -(63586, 0, "'d'"), -(63587, 0, "'i'"), -(63588, 0, "'f'"), -(63589, 0, "'y'"), -(63590, 0, "' '"), -(63591, 0, "'p'"), -(63592, 0, "'r'"), -(63593, 0, "'e'"), -(63594, 0, "'v'"), -(63595, 0, "'.'"), -(63596, 0, "'''"), -(63595, 1, "''"), -(64183, 150, "''"), -(63406, 6, "'p'"), -(63407, 0, "'u'"), -(63408, 0, "'b'"), -(64389, 42, "''"), -(64389, 12, "' '"), -(64418, 10, "''"), -(64417, 1, "''"), -(64426, 9, "''"), -(64438, 0, "'p'"), -(64439, 0, "'r'"), -(64440, 0, "'e'"), -(64441, 0, "'v'"), -(64442, 0, "'_'"), -(64448, 4, "''"), -(64448, 1, "''"), -(64448, 1, "''"), -(64460, 1, "''"), -(64459, 1, "''"), -(64486, 0, "'p'"), -(64487, 0, "'r'"), -(64488, 0, "'e'"), -(64489, 0, "'v'"), -(64490, 0, "'_'"), -(64565, 9, "''"), -(63508, 0, "' '"), -(63509, 0, "'u'"), -(63510, 0, "'n'"), -(63511, 0, "'s'"), -(63512, 0, "'a'"), -(63513, 0, "'f'"), -(63514, 0, "'e'"), -(63515, 0, "' '"), -(63516, 0, "'{'"), -(63545, 0, "' '"), -(63546, 0, "'}'"), -(61508, 0, "'n '"), -(61517, 0, "'u'"), -(61518, 0, "'n'"), -(61519, 0, "'s'"), -(61520, 0, "'a'"), -(61521, 0, "'f'"), -(61522, 0, "'e'"), -(61523, 0, "' '"), -(61524, 0, "'{'"), -(62212, 8, "' '"), -(62142, 8, "' '"), -(62056, 8, "' '"), -(62024, 8, "' '"), -(61951, 8, "' '"), -(61875, 8, "' '"), -(61810, 8, "' '"), -(61739, 8, "' '"), -(61717, 8, "' '"), -(61654, 8, "' '"), -(61581, 8, "' '"), -(61526, 8, "' '"), -(62351, 0, "'n '"), -(62352, 12, "' }'"), -(54918, 0, "'m'"), -(54919, 0, "'u'"), -(54920, 0, "'t'"), -(54921, 0, "' '"), -(54666, 1, "''"), -(54665, 1, "''"), -(54665, 0, "'a'"), -(54666, 0, "'f'"), -(54667, 0, "'t'"), -(54668, 0, "'e'"), -(54669, 0, "'r'"), -(54669, 1, "''"), -(54668, 1, "''"), -(54667, 1, "''"), -(54666, 1, "''"), -(54665, 1, "''"), -(54665, 0, "'a'"), -(54666, 0, "'t'"), -(54690, 0, "','"), -(54691, 0, "' '"), -(54692, 0, "'u'"), -(54693, 0, "'s'"), -(54694, 0, "'i'"), -(54695, 0, "'z'"), -(54696, 0, "'e'"), -(54743, 0, "' let (mut edit, offset) = self.edit(userpos);n'"), -(54665, 2, "'a'"), -(54666, 0, "'f'"), -(54667, 0, "'t'"), -(54668, 0, "'e'"), -(54669, 0, "'r'"), -(54798, 0, "'n '"), -(54807, 0, "'i'"), -(54808, 0, "'f'"), -(54809, 0, "' '"), -(54810, 0, "'o'"), -(54811, 0, "'f'"), -(54812, 0, "'f'"), -(54813, 0, "'s'"), -(54814, 0, "'e'"), -(54815, 0, "'t'"), -(54816, 0, "' '"), -(54817, 0, "'='"), -(54818, 0, "'='"), -(54819, 0, "' '"), -(54820, 0, "'0'"), -(54821, 0, "' '"), -(54822, 0, "'{'"), -(54823, 0, "' '"), -(54833, 0, "'// '"), -(54824, 0, "'e'"), -(54825, 0, "'d'"), -(54826, 0, "'i'"), -(54827, 0, "'t'"), -(54828, 0, "'.'"), -(54829, 0, "'m'"), -(54830, 0, "'o'"), -(54831, 0, "'d'"), -(54832, 0, "'i'"), -(54829, 4, "'modify_next_item'"), -(54845, 0, "'('"), -(54846, 0, "'|'"), -(54847, 0, "'i'"), -(54848, 0, "'t'"), -(54849, 0, "'e'"), -(54850, 0, "'m'"), -(54851, 0, "'|'"), -(54852, 0, "' '"), -(54853, 0, "'m'"), -(54854, 0, "'o'"), -(54855, 0, "'d'"), -(54856, 0, "'i'"), -(54853, 4, "'modify_fn'"), -(54862, 0, "'('"), -(54863, 0, "'i'"), -(54864, 0, "'t'"), -(54865, 0, "'e'"), -(54866, 0, "'m'"), -(54867, 0, "','"), -(54868, 0, "' '"), -(54869, 0, "'o'"), -(54870, 0, "'f'"), -(54871, 0, "'f'"), -(54872, 0, "'s'"), -(54873, 0, "'e'"), -(54874, 0, "'t'"), -(54875, 0, "')'"), -(54876, 0, "')'"), -(54877, 0, "' '"), -(54878, 0, "'}'"), -(54879, 0, "'n '"), -(54888, 0, "'e'"), -(54889, 0, "'l'"), -(54890, 0, "'s'"), -(54891, 0, "'e'"), -(54892, 0, "' '"), -(54893, 0, "'{'"), -(54894, 0, "'n '"), -(54907, 0, "'n '"), -(54895, 12, "''"), -(54896, 12, "' }'"), -(54895, 0, "' '"), -(64594, 1, "''"), -(54895, 12, "''"), -(64582, 1, "''"), -(64582, 1, "''"), -(64582, 1, "''"), -(64582, 0, "'c'"), -(64583, 0, "'u'"), -(64584, 0, "'r'"), -(64585, 0, "'r'"), -(64586, 0, "'e'"), -(64587, 0, "'n'"), -(64588, 0, "'t'"), -(64582, 7, "''"), -(64582, 0, "'next'"), -(54895, 0, "' '"), -(64594, 4, "''"), -(54895, 12, "''"), -(64582, 0, "'current'"), -(54836, 4, "'c'"), -(54837, 0, "'u'"), -(54838, 0, "'r'"), -(54839, 0, "'r'"), -(54840, 0, "'e'"), -(54841, 0, "'n'"), -(54842, 0, "'t'"), -(54883, 25, "''"), -(54882, 1, "''"), -(54881, 1, "''"), -(54880, 1, "''"), -(54807, 17, "''"), -(54864, 66, "''"), -(63253, 4, "'c'"), -(63254, 0, "'u'"), -(63255, 0, "'r'"), -(63256, 0, "'r'"), -(63257, 0, "'e'"), -(63258, 0, "'n'"), -(63259, 0, "'t'"), -(63324, 1, "''"), -(63324, 1, "''"), -(63324, 1, "''"), -(63324, 1, "''"), -(63324, 0, "'c'"), -(63325, 0, "'u'"), -(63326, 0, "'r'"), -(63327, 0, "'r'"), -(63328, 0, "'e'"), -(63329, 0, "'n'"), -(63330, 0, "'t'"), -(63324, 7, "''"), -(63324, 0, "'prev'"), -(63253, 7, "'prev'"), -(54864, 0, "' // self.edit_between(userpos).modify_next_item(modify_fn)n'"), -(54864, 66, "''"), -(63253, 4, "'current'"), -(63253, 7, "'prev'"), -(63353, 4, "'c'"), -(63354, 0, "'u'"), -(63355, 0, "'r'"), -(63356, 0, "'r'"), -(63357, 0, "'e'"), -(63358, 0, "'n'"), -(63359, 0, "'t'"), -(2236, 0, "'n'"), -(2237, 0, "'n'"), -(2237, 1, "''"), -(2236, 1, "''"), -(3161, 0, "'n'"), -(3162, 0, "'n'"), -(3163, 0, "'p'"), -(3164, 0, "'u'"), -(3165, 0, "'b'"), -(3166, 0, "' '"), -(3167, 0, "'t'"), -(3168, 0, "'r'"), -(3169, 0, "'a'"), -(3170, 0, "'i'"), -(3171, 0, "'t'"), -(3172, 0, "' '"), -(3173, 0, "'N'"), -(3174, 0, "'o'"), -(3175, 0, "'t'"), -(3176, 0, "'i'"), -(3177, 0, "'f'"), -(3178, 0, "'y'"), -(3178, 1, "''"), -(3178, 0, "'i'"), -(3179, 0, "'e'"), -(3180, 0, "'d'"), -(3180, 1, "''"), -(3179, 1, "''"), -(3178, 1, "''"), -(3178, 0, "'y'"), -(3179, 0, "' '"), -(3180, 0, "'{'"), -(3181, 0, "'n '"), -(3182, 4, "'}'"), -(3181, 0, "'n '"), -(3186, 0, "'f'"), -(3187, 0, "'n'"), -(3188, 0, "' '"), -(3189, 0, "'u'"), -(3190, 0, "'s'"), -(3191, 0, "'e'"), -(3192, 0, "'d'"), -(3189, 0, "'i'"), -(3190, 0, "'s'"), -(3191, 0, "'_'"), -(3189, 0, "'n'"), -(3190, 0, "'o'"), -(3191, 0, "'f'"), -(3192, 0, "'i'"), -(3192, 1, "''"), -(3191, 1, "''"), -(3191, 0, "'t'"), -(3192, 0, "'i'"), -(3193, 0, "'f'"), -(3194, 0, "'i'"), -(3195, 0, "'c'"), -(3196, 0, "'a'"), -(3197, 0, "'t'"), -(3198, 0, "'i'"), -(3199, 0, "'o'"), -(3200, 0, "'n'"), -(3201, 0, "'_'"), -(3178, 1, "''"), -(3177, 1, "''"), -(3177, 0, "'f'"), -(3178, 0, "'i'"), -(3179, 0, "'c'"), -(3180, 0, "'a'"), -(3181, 0, "'t'"), -(3182, 0, "'i'"), -(3183, 0, "'o'"), -(3184, 0, "'n'"), -(3185, 0, "'T'"), -(3186, 0, "'a'"), -(3187, 0, "'r'"), -(3188, 0, "'g'"), -(3189, 0, "'e'"), -(3190, 0, "'t'"), -(3213, 0, "'s'"), -(3214, 1, "''"), -(3214, 1, "''"), -(3214, 1, "''"), -(3219, 0, "' '"), -(3220, 0, "'-'"), -(3220, 1, "''"), -(3219, 1, "''"), -(3219, 0, "'('"), -(3220, 0, "')'"), -(3221, 0, "' '"), -(3222, 0, "'-'"), -(3223, 0, "'>'"), -(3224, 0, "' '"), -(3225, 0, "'b'"), -(3226, 0, "'o'"), -(3227, 0, "'o'"), -(3228, 0, "'l'"), -(3229, 0, "' '"), -(3230, 0, "'{'"), -(3231, 0, "' '"), -(3232, 0, "'t'"), -(3233, 0, "'r'"), -(3234, 0, "'u'"), -(3235, 0, "'e'"), -(3236, 0, "' '"), -(3237, 0, "'}'"), -(3238, 0, "'n '"), -(3243, 0, "'n '"), -(3239, 4, "''"), -(3240, 4, "''"), -(3193, 0, "'n '"), -(3198, 0, "'/'"), -(3199, 0, "'/'"), -(3200, 0, "' '"), -(3201, 0, "'F'"), -(3202, 0, "'o'"), -(3203, 0, "'r'"), -(3204, 0, "' '"), -(3201, 4, "'T'"), -(3202, 0, "'u'"), -(3203, 0, "' '"), -(3203, 1, "''"), -(3202, 1, "''"), -(3202, 0, "'o'"), -(3203, 0, "' '"), -(3204, 0, "'t'"), -(3205, 0, "'u'"), -(3206, 0, "'r'"), -(3207, 0, "'n'"), -(3208, 0, "' '"), -(3209, 0, "'o'"), -(3210, 0, "'f'"), -(3211, 0, "'f'"), -(3212, 0, "' '"), -(3213, 0, "'s'"), -(3214, 0, "'o'"), -(3215, 0, "'m'"), -(3216, 0, "'e'"), -(3217, 0, "' '"), -(3218, 0, "'c'"), -(3219, 0, "'o'"), -(3220, 0, "'m'"), -(3221, 0, "'p'"), -(3222, 0, "'l'"), -(3223, 0, "'i'"), -(3224, 0, "'e'"), -(3225, 0, "'r'"), -(3226, 0, "' '"), -(3227, 0, "'i'"), -(3228, 0, "'n'"), -(3218, 11, "'i'"), -(3219, 0, "'n'"), -(3220, 0, "'f'"), -(3221, 0, "'r'"), -(3222, 0, "'a'"), -(3223, 0, "'s'"), -(3218, 6, "'b'"), -(3219, 0, "'o'"), -(3220, 0, "'o'"), -(3221, 0, "'k'"), -(3222, 0, "'k'"), -(3223, 0, "'e'"), -(3224, 0, "'e'"), -(3225, 0, "'p'"), -(3226, 0, "'i'"), -(3227, 0, "'n'"), -(3228, 0, "'g'"), -(3229, 0, "'.'"), -(3230, 0, "' '"), -(3231, 0, "'T'"), -(3232, 0, "'h'"), -(3233, 0, "'e'"), -(3234, 0, "' '"), -(3235, 0, "'o'"), -(3236, 0, "'p'"), -(3237, 0, "'t'"), -(3238, 0, "'i'"), -(3239, 0, "'m'"), -(3240, 0, "'i'"), -(3241, 0, "'e'"), -(3242, 0, "'r'"), -(3242, 1, "''"), -(3241, 1, "''"), -(3241, 0, "'z'"), -(3242, 0, "'e'"), -(3243, 0, "'r'"), -(3244, 0, "' '"), -(3245, 0, "'w'"), -(3246, 0, "'i'"), -(3247, 0, "'l'"), -(3248, 0, "'l'"), -(3249, 0, "' '"), -(3250, 0, "'i'"), -(3251, 0, "'n'"), -(3252, 0, "'l'"), -(3253, 0, "'i'"), -(3254, 0, "'n'"), -(3255, 0, "'e'"), -(3256, 0, "' '"), -(3257, 0, "'t'"), -(3258, 0, "'h'"), -(3259, 0, "'i'"), -(3260, 0, "'s'"), -(3212, 5, "' '"), -(3212, 1, "''"), -(3224, 0, "' '"), -(3225, 0, "'r'"), -(3226, 0, "'e'"), -(3227, 0, "'l'"), -(3228, 0, "'a'"), -(3229, 0, "'t'"), -(3230, 0, "'e'"), -(3231, 0, "'d'"), -(3232, 0, "' '"), -(3233, 0, "'t'"), -(3234, 0, "'o'"), -(3235, 0, "' '"), -(3236, 0, "'l'"), -(3236, 1, "''"), -(3236, 0, "'q'"), -(3237, 0, "'u'"), -(3238, 0, "'e'"), -(3239, 0, "'r'"), -(3240, 0, "'y'"), -(3241, 0, "' '"), -(3242, 0, "'l'"), -(3243, 0, "'o'"), -(3244, 0, "'o'"), -(3245, 0, "'k'"), -(3246, 0, "'u'"), -(3247, 0, "'p'"), -(3248, 0, "'s'"), -(3198, 0, "'/'"), -(3236, 0, "' '"), -(3237, 0, "'I'"), -(3238, 0, "'t'"), -(3239, 0, "'e'"), -(3240, 0, "'m'"), -(3241, 0, "'M'"), -(3242, 0, "'a'"), -(3243, 0, "'r'"), -(3244, 0, "'k'"), -(3245, 0, "'e'"), -(3246, 0, "'r'"), -(3194, 99, "' /// To turn off bookkeeping related to ItemMarker query lookups. Then /// optimizer will inline this'"), -(3306, 0, "'c'"), -(3307, 0, "'o'"), -(3308, 0, "'n'"), -(3309, 0, "'s'"), -(3310, 0, "'t'"), -(3311, 0, "' '"), -(3311, 1, "''"), -(3311, 0, "' '"), -(3306, 6, "''"), -(3348, 0, "' '"), -(3348, 4, "''"), -(3045, 110, "''"), -(3238, 0, "' // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {n // }n'"), -(3347, 1, "''"), -(3343, 3, "''"), -(3242, 3, "''"), -(3263, 1, "''"), -(3081, 0, "'<'"), -(3082, 0, "'I'"), -(3083, 0, "'t'"), -(3084, 0, "'e'"), -(3085, 0, "'m'"), -(3086, 0, "'>'"), -(3278, 6, "''"), -(3082, 4, "'C'"), -(3083, 0, "':'"), -(3084, 0, "' '"), -(3085, 0, "'L'"), -(3086, 0, "'i'"), -(3087, 0, "'s'"), -(3088, 0, "'t'"), -(3089, 0, "'o'"), -(3085, 5, "'ListConfig'"), -(3287, 0, "'C'"), -(3288, 0, "':'"), -(3289, 0, "':'"), -(3297, 1, "''"), -(3319, 4, "'C'"), -(3323, 25, "''"), -(3323, 0, "';'"), -(3323, 1, "''"), -(3322, 1, "''"), -(3322, 0, "';'"), -(22222, 0, "'N'"), -(22223, 0, "'o'"), -(22224, 0, "'f'"), -(22225, 0, "'i'"), -(22225, 1, "''"), -(22224, 1, "''"), -(22224, 0, "'t'"), -(22225, 0, "'i'"), -(22226, 0, "'f'"), -(22227, 0, "'y'"), -(22230, 0, "','"), -(22231, 0, "' '"), -(22232, 0, "'N'"), -(22233, 0, "':'"), -(22234, 0, "' '"), -(22235, 0, "'N'"), -(22236, 0, "'o'"), -(22237, 0, "'t'"), -(22238, 0, "'i'"), -(22235, 4, "'NotificationTarget'"), -(22233, 20, "''"), -(22212, 0, "','"), -(22213, 0, "' '"), -(22214, 0, "': NotificationTarget'"), -(22214, 0, "'N'"), -(22235, 0, "'<'"), -(22236, 0, "'C'"), -(22237, 0, "'>'"), -(22248, 6, "''"), -(7554, 0, "','"), -(7555, 0, "' '"), -(7556, 0, "'N'"), -(7557, 0, "':'"), -(7558, 0, "' '"), -(7559, 0, "'N'"), -(7560, 0, "'o'"), -(7561, 0, "'t'"), -(7562, 0, "'i'"), -(7559, 4, "'NotificationTarget'"), -(7540, 0, "'N'"), -(7541, 0, "'o'"), -(7542, 0, "'f'"), -(7543, 0, "'i'"), -(7544, 0, "'y'"), -(7544, 1, "''"), -(7543, 1, "''"), -(7542, 1, "''"), -(7542, 0, "'t'"), -(7543, 0, "'i'"), -(7544, 0, "'f'"), -(7545, 0, "'y'"), -(7583, 0, "'<'"), -(7584, 0, "'C'"), -(7585, 0, "'>'"), -(7560, 26, "''"), -(7545, 1, "''"), -(7544, 1, "''"), -(7543, 1, "''"), -(7542, 1, "''"), -(7541, 1, "''"), -(7540, 1, "''"), -(22252, 1, "''"), -(22251, 1, "''"), -(22250, 1, "''"), -(22250, 0, "', N'"), -(7540, 0, "'Notify'"), -(7560, 0, "', N: NotificationTarget'"), -(9373, 0, "'n '"), -(9378, 0, "'n '"), -(9374, 4, "''"), -(9379, 0, "'_'"), -(9380, 0, "'p'"), -(9381, 0, "'h'"), -(9382, 0, "'a'"), -(9383, 0, "'n'"), -(9384, 0, "'t'"), -(9385, 0, "'o'"), -(9386, 0, "'m'"), -(9387, 0, "':'"), -(9388, 0, "' '"), -(9389, 0, "'P'"), -(9390, 0, "'h'"), -(9391, 0, "'a'"), -(9392, 0, "'n'"), -(9389, 4, "'PhantomData'"), -(9400, 0, "'<'"), -(9401, 0, "'N'"), -(9402, 0, "'>'"), -(22302, 8, "'SkipListNotify'"), -(22368, 0, "'N'"), -(22369, 0, "'o'"), -(22370, 0, "'f'"), -(22371, 0, "'i'"), -(22372, 0, "'y'"), -(22372, 1, "''"), -(22371, 1, "''"), -(22370, 1, "''"), -(22370, 0, "'t'"), -(22371, 0, "'i'"), -(22372, 0, "'f'"), -(22373, 0, "'y'"), -(22378, 0, "','"), -(22379, 0, "' '"), -(22380, 0, "'N'"), -(22773, 0, "'n '"), -(22786, 0, "'_'"), -(22787, 0, "'m'"), -(22788, 0, "'a'"), -(22789, 0, "'r'"), -(22790, 0, "'k'"), -(22791, 0, "'e'"), -(22792, 0, "'r'"), -(22793, 0, "':'"), -(22794, 0, "' '"), -(22795, 0, "'P'"), -(22796, 0, "'h'"), -(22797, 0, "'a'"), -(22798, 0, "'n'"), -(22795, 4, "'PhantomData'"), -(22787, 6, "'p'"), -(22788, 0, "'h'"), -(22789, 0, "'a'"), -(22790, 0, "'n'"), -(22791, 0, "'t'"), -(22792, 0, "'o'"), -(22793, 0, "'m'"), -(56606, 0, "'// '"), -(56547, 0, "'// '"), -(56480, 0, "'// '"), -(56357, 0, "'// '"), -(56017, 0, "' '"), -(56018, 0, "'n'"), -(56019, 0, "'o'"), -(56020, 0, "'t'"), -(56021, 0, "'i'"), -(56022, 0, "'f'"), -(56023, 0, "'y'"), -(56024, 0, "'_'"), -(56025, 0, "'t'"), -(56026, 0, "'a'"), -(56027, 0, "'r'"), -(56028, 0, "'g'"), -(56029, 0, "'e'"), -(56030, 0, "'t'"), -(56017, 14, "''"), -(55981, 0, "'n '"), -(55986, 0, "'n '"), -(55982, 4, "''"), -(55987, 0, "'p'"), -(55988, 0, "'u'"), -(55989, 0, "' '"), -(55990, 0, "'b'"), -(55990, 1, "''"), -(55989, 1, "''"), -(55989, 0, "'b'"), -(55990, 0, "' '"), -(55991, 0, "'f'"), -(55992, 0, "'n'"), -(55993, 0, "' '"), -(55983, 11, "''"), -(55982, 1, "''"), -(55981, 1, "''"), -(56352, 0, "'n '"), -(56357, 0, "'p'"), -(56358, 0, "'u'"), -(56359, 0, "'b'"), -(56360, 0, "' '"), -(56361, 0, "'f'"), -(56362, 0, "'n'"), -(56363, 0, "' '"), -(56364, 0, "'e'"), -(56365, 0, "'d'"), -(56366, 0, "'i'"), -(56367, 0, "'t'"), -(56368, 0, "'_'"), -(56369, 0, "'n'"), -(56370, 0, "'o'"), -(56371, 0, "'t'"), -(56372, 0, "'i'"), -(56373, 0, "'f'"), -(56374, 0, "'y'"), -(56375, 0, "'('"), -(56375, 1, "''"), -(56375, 0, "'<'"), -(56375, 1, "''"), -(56375, 0, "'('"), -(56376, 0, "'&'"), -(56377, 0, "'m'"), -(56378, 0, "'u'"), -(56379, 0, "'t'"), -(56380, 0, "' '"), -(56381, 0, "'s'"), -(56382, 0, "'e'"), -(56383, 0, "'l'"), -(56384, 0, "'f'"), -(56385, 0, "','"), -(56386, 0, "' '"), -(56387, 0, "'u'"), -(56388, 0, "'s'"), -(56389, 0, "'e'"), -(56390, 0, "'r'"), -(56391, 0, "'p'"), -(56392, 0, "'o'"), -(56393, 0, "'s'"), -(56394, 0, "':'"), -(56395, 0, "' '"), -(56396, 0, "'u'"), -(56397, 0, "'s'"), -(56398, 0, "'i'"), -(56399, 0, "'z'"), -(56400, 0, "'e'"), -(56401, 0, "','"), -(56402, 0, "' '"), -(56402, 1, "''"), -(56401, 1, "''"), -(56401, 0, "')'"), -(56402, 0, "' '"), -(56403, 0, "'{'"), -(56404, 0, "'n '"), -(56413, 0, "'n '"), -(56405, 8, "''"), -(56406, 8, "' }'"), -(56405, 0, "' '"), -(56405, 8, "''"), -(56401, 0, "','"), -(56402, 0, "' '"), -(56403, 0, "'n'"), -(56404, 0, "'o'"), -(56405, 0, "'t'"), -(56406, 0, "'i'"), -(56407, 0, "'f'"), -(56408, 0, "'y'"), -(56409, 0, "'_'"), -(56410, 0, "'t'"), -(56411, 0, "'a'"), -(56412, 0, "'r'"), -(56413, 0, "'g'"), -(56414, 0, "'e'"), -(56415, 0, "'t'"), -(56416, 0, "':'"), -(56417, 0, "' '"), -(56418, 0, "'N'"), -(56419, 0, "':'"), -(56420, 0, "':'"), -(56420, 1, "''"), -(56419, 1, "''"), -(56418, 0, "'&'"), -(56419, 0, "'m'"), -(56420, 0, "'u'"), -(56421, 0, "'t'"), -(56422, 0, "' '"), -(56428, 0, "' '"), -(56436, 0, "'a'"), -(56437, 0, "'s'"), -(56438, 0, "'s'"), -(56439, 0, "'e'"), -(56440, 0, "'r'"), -(56441, 0, "'t'"), -(56442, 0, "'!'"), -(56443, 0, "'('"), -(56444, 0, "'N'"), -(56445, 0, "':'"), -(56446, 0, "':'"), -(56447, 0, "'notifications_used()'"), -(56467, 0, "')'"), -(56468, 0, "';'"), -(55899, 0, "'n '"), -(55908, 0, "'assert!(N::notifications_used());'"), -(55916, 0, "'!'"), -(56513, 4, "'n '"), -(56513, 0, "' // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // (Edit { list: self, cursor, notify }, item_offset)n'"), -(56644, 1, "''"), -(56587, 3, "''"), -(56517, 3, "''"), -(56622, 0, "'_'"), -(56623, 0, "'t'"), -(56624, 0, "'a'"), -(56625, 0, "'r'"), -(56626, 0, "'g'"), -(56627, 0, "'e'"), -(56628, 0, "'t'"), -(60297, 5, "''"), -(60299, 32, "''"), -(60299, 0, "'N'"), -(60300, 0, "'o'"), -(60301, 0, "'t'"), -(60302, 0, "'i'"), -(60299, 4, "'NotificationTarget'"), -(60317, 0, "'<'"), -(60318, 0, "'C'"), -(60319, 0, "'>'"), -(60352, 0, "','"), -(60353, 0, "' '"), -(60354, 0, "'N'"), -(60342, 8, "'SkipListNotify'"), -(60459, 6, "'&'"), -(60460, 0, "'m'"), -(60461, 0, "'u'"), -(60462, 0, "'t'"), -(60463, 0, "' '"), -(60464, 0, "'N'"), -(60280, 0, "' '"), -(60281, 0, "'''"), -(60282, 0, "'b'"), -(60283, 0, "':'"), -(60284, 0, "' '"), -(60285, 0, "'''"), -(60286, 0, "'a'"), -(60467, 0, "'''"), -(60468, 0, "'b'"), -(60469, 0, "' '"), -(60287, 0, "','"), -(60286, 1, "''"), -(60285, 1, "''"), -(60284, 1, "''"), -(60283, 1, "''"), -(60283, 0, "': 'a'"), -(60344, 1, "''"), -(60344, 0, "'b'"), -(60469, 1, "''"), -(60469, 0, "'a'"), -(60286, 1, "''"), -(60285, 1, "''"), -(60284, 1, "''"), -(60283, 1, "''"), -(60282, 1, "''"), -(60281, 1, "''"), -(60280, 1, "''"), -(60279, 1, "''"), -(60336, 1, "''"), -(60336, 0, "'a'"), -(60468, 0, "','"), -(60778, 56, "'<'a, C: ListConfig, N: NotificationTarget>'"), -(64788, 1, "''"), -(64799, 1, "''"), -(64799, 0, "'.'"), -(64800, 0, "'n'"), -(64801, 0, "'o'"), -(64802, 0, "'t'"), -(64803, 0, "'i'"), -(64800, 4, "'notify(items: &[C::Item], at_marker: ItemMarker)'"), -(64807, 44, "''"), -(64806, 1, "''"), -(38784, 6, "'N'"), -(42261, 0, "'.'"), -(42262, 0, "'n'"), -(42263, 0, "'o'"), -(42264, 0, "'t'"), -(42265, 0, "'i'"), -(42266, 0, "'f'"), -(42267, 0, "'y'"), -(34835, 6, "'M'"), -(34835, 1, "''"), -(34835, 0, "'N'"), -(38455, 0, "'.'"), -(38456, 0, "'n'"), -(38457, 0, "'o'"), -(38458, 0, "'t'"), -(38459, 0, "'i'"), -(38460, 0, "'f'"), -(38461, 0, "'y'"), -(34856, 42, "''"), -(38765, 42, "''"), -(38667, 8, "''"), -(34721, 8, "''"), -(51080, 42, "''"), -(51054, 6, "'N'"), -(53256, 1, "'.'"), -(53256, 1, "''"), -(53256, 0, "'y'"), -(53257, 0, "'.'"), -(53258, 0, "'n'"), -(53259, 0, "'o'"), -(53260, 0, "'t'"), -(53261, 0, "'i'"), -(53262, 0, "'f'"), -(53263, 0, "'y'"), -(53911, 50, "''"), -(53910, 1, "''"), -(53903, 6, "'N'"), -(53828, 6, "''"), -(53828, 1, "''"), -(53827, 1, "''"), -(50943, 8, "''"), -(56260, 0, "' -> (Edit, usize)'"), -(56431, 0, "'n'"), -(56432, 0, "'o'"), -(56433, 0, "'t'"), -(56434, 0, "'i'"), -(56435, 0, "'f'"), -(56436, 0, "'y'"), -(56437, 0, "':'"), -(56438, 0, "' '"), -(56210, 0, "'<'"), -(56211, 0, "'''"), -(56212, 0, "'a'"), -(56213, 0, "','"), -(56214, 0, "' '"), -(56215, 0, "'''"), -(56216, 0, "'b'"), -(56217, 0, "':'"), -(56218, 0, "' '"), -(56219, 0, "'''"), -(56220, 0, "'a'"), -(56221, 0, "'>'"), -(56224, 0, "'''"), -(56225, 0, "'b'"), -(56226, 0, "' '"), -(56269, 0, "'''"), -(56270, 0, "'a'"), -(56271, 0, "' '"), -(56213, 8, "''"), -(56217, 1, "''"), -(56217, 0, "'a'"), -(3325, 0, "'n'"), -(3326, 0, "'n'"), -(3327, 0, "'p'"), -(3328, 0, "'u'"), -(3329, 0, "'b'"), -(3330, 0, "' '"), -(3331, 0, "'t'"), -(3332, 0, "'r'"), -(3333, 0, "'a'"), -(3334, 0, "'i'"), -(3335, 0, "'t'"), -(3336, 0, "' '"), -(3337, 0, "'N'"), -(3338, 0, "'o'"), -(3339, 0, "'N'"), -(3340, 0, "'o'"), -(3327, 4, "''"), -(3326, 0, "'n'"), -(3327, 0, "'s'"), -(3328, 0, "'t'"), -(3329, 0, "'r'"), -(3330, 0, "'u'"), -(3331, 0, "'c'"), -(3332, 0, "'t'"), -(3333, 0, "' '"), -(3334, 0, "'N'"), -(3335, 0, "'o'"), -(3335, 1, "''"), -(3335, 0, "'u'"), -(3336, 0, "'l'"), -(3337, 0, "'l'"), -(3338, 0, "'N'"), -(3339, 0, "'o'"), -(3340, 0, "'t'"), -(3341, 0, "'i'"), -(3342, 0, "'f'"), -(3343, 0, "'i'"), -(3344, 0, "'c'"), -(3345, 0, "'a'"), -(3346, 0, "'t'"), -(3347, 0, "'i'"), -(3348, 0, "'o'"), -(3349, 0, "'n'"), -(3335, 1, "''"), -(3335, 1, "''"), -(3335, 1, "''"), -(3335, 0, "'o'"), -(3334, 14, "'N'"), -(3335, 0, "'o'"), -(3336, 0, "'N'"), -(3337, 0, "'o'"), -(3338, 0, "'t'"), -(3339, 0, "'i'"), -(3340, 0, "'f'"), -(3341, 0, "'y'"), -(3343, 10, "'i'"), -(3344, 0, "'m'"), -(3345, 0, "'p'"), -(3346, 0, "'l'"), -(3347, 0, "' '"), -(3348, 0, "'N'"), -(3349, 0, "'o'"), -(3350, 0, "'t'"), -(3351, 0, "'i'"), -(3352, 0, "'f'"), -(3348, 5, "'NotificationTarget'"), -(3347, 0, "'<'"), -(3348, 0, "'C'"), -(3349, 0, "'>'"), -(3349, 0, "':'"), -(3350, 0, "' '"), -(3351, 0, "'L'"), -(3352, 0, "'i'"), -(3353, 0, "'s'"), -(3354, 0, "'t'"), -(3351, 4, "'ListConfig'"), -(3381, 0, "'<'"), -(3382, 0, "'C'"), -(3383, 0, "'>'"), -(3384, 0, "' '"), -(3385, 0, "'f'"), -(3386, 0, "'o'"), -(3387, 0, "'r'"), -(3388, 0, "' '"), -(3389, 0, "'N'"), -(3390, 0, "'o'"), -(3391, 0, "'N'"), -(3392, 0, "'o'"), -(3389, 4, "'NoNotify'"), -(3397, 0, "' '"), -(3398, 0, "'{'"), -(3399, 0, "'n '"), -(3404, 0, "'n '"), -(3400, 4, "''"), -(3401, 4, "'}'"), -(3400, 0, "' '"), -(3404, 0, "'f'"), -(3405, 0, "'n'"), -(3406, 0, "' '"), -(3407, 0, "'n'"), -(3408, 0, "'o'"), -(3409, 0, "'t'"), -(3410, 0, "'i'"), -(3411, 0, "'f'"), -(3412, 0, "'i'"), -(3407, 6, "'notifications_used'"), -(3425, 0, "'('"), -(3426, 0, "')'"), -(3427, 0, "' '"), -(3428, 0, "'-'"), -(3429, 0, "'>'"), -(3430, 0, "' '"), -(3431, 0, "'b'"), -(3432, 0, "'o'"), -(3433, 0, "'o'"), -(3434, 0, "'l'"), -(3435, 0, "' '"), -(3436, 0, "'{'"), -(3437, 0, "' '"), -(3438, 0, "'f'"), -(3439, 0, "'a'"), -(3440, 0, "'l'"), -(3441, 0, "'s'"), -(3442, 0, "'e'"), -(3443, 0, "' '"), -(3444, 0, "'}'"), -(3445, 0, "'n '"), -(3450, 0, "'fn notify(&mut self, items: &[C::Item], at_marker: ItemMarker);'"), -(3342, 0, "';'"), -(3516, 1, "''"), -(3516, 0, "' '"), -(3517, 0, "'{'"), -(3518, 0, "'}'"), -(20130, 0, "','"), -(20131, 0, "' '"), -(20132, 0, "'N'"), -(20133, 0, "':'"), -(20134, 0, "' '"), -(20135, 0, "'N'"), -(20136, 0, "'o'"), -(20137, 0, "'t'"), -(20138, 0, "'i'"), -(20139, 0, "'f'"), -(20135, 5, "'NotificationTarget'"), -(20153, 0, "'<'"), -(20154, 0, "'C'"), -(20155, 0, "'>'"), -(20304, 0, "','"), -(20305, 0, "' '"), -(20306, 0, "'C'"), -(20306, 1, "''"), -(20306, 0, "'N'"), -(20294, 8, "'SkipListNotify'"), -(20312, 1, "''"), -(20312, 0, "'_'"), -(20312, 1, "''"), -(20312, 0, "'N'"), -(20341, 0, "', N: NotificationTarget'"), -(20390, 0, "','"), -(20391, 0, "' '"), -(20392, 0, "'N'"), -(21131, 0, "','"), -(21132, 0, "' '"), -(21133, 0, "', N: NotificationTarget'"), -(21133, 26, "''"), -(21132, 1, "''"), -(21131, 1, "''"), -(21131, 0, "', N: NotificationTarget'"), -(21193, 0, "','"), -(21194, 0, "' '"), -(21195, 0, "'N'"), -(45357, 0, "','"), -(45358, 0, "' '"), -(45359, 0, "'N'"), -(3327, 0, "'// '"), -(3393, 8, "''"), -(3393, 0, "'('"), -(3394, 0, "')'"), -(3326, 20, "''"), -(22587, 0, "' '"), -(22588, 0, "'='"), -(22589, 0, "' '"), -(22590, 0, "'('"), -(22591, 0, "')'"), -(22589, 3, "''"), -(22587, 2, "''"), -(22566, 0, "' '"), -(22567, 0, "'='"), -(22568, 0, "' '"), -(22569, 0, "'('"), -(22570, 0, "')'"), -(22568, 3, "''"), -(22566, 2, "''"), -(7759, 0, "' '"), -(7760, 0, "'='"), -(7761, 0, "' '"), -(7762, 0, "'('"), -(7763, 0, "')'"), -(60462, 1, "''"), -(22644, 1, "''"), -(22586, 1, "''"), -(20289, 1, "''"), -(7718, 1, "''"), -(60457, 1, "''"), -(22640, 1, "''"), -(22583, 1, "''"), -(20287, 1, "''"), -(7717, 1, "''"), -(60452, 1, "''"), -(22636, 1, "''"), -(22580, 1, "''"), -(20285, 1, "''"), -(7716, 1, "''"), -(60447, 1, "''"), -(22632, 1, "''"), -(22577, 1, "''"), -(20283, 1, "''"), -(7715, 1, "''"), -(60442, 1, "''"), -(22628, 1, "''"), -(22574, 1, "''"), -(20281, 1, "''"), -(7714, 1, "''"), -(60437, 1, "''"), -(22624, 1, "''"), -(22571, 1, "''"), -(20279, 1, "''"), -(7713, 1, "''"), -(60432, 1, "''"), -(22620, 1, "''"), -(22568, 1, "''"), -(20277, 1, "''"), -(7712, 1, "''"), -(60428, 0, "'t'"), -(22617, 0, "'t'"), -(22566, 0, "'t'"), -(20276, 0, "'t'"), -(7712, 0, "'t'"), -(54461, 69, "''"), -(54461, 1906, "''"), -(56037, 0, "'n'"), -(56038, 0, "'i'"), -(56039, 0, "'m'"), -(56040, 0, "'p'"), -(56041, 0, "'l'"), -(56042, 0, "' '"), -(56042, 1, "''"), -(56042, 0, "'<'"), -(56043, 0, "'C'"), -(56044, 0, "':'"), -(56045, 0, "' '"), -(56046, 0, "'L'"), -(56047, 0, "'i'"), -(56048, 0, "'s'"), -(56049, 0, "'t'"), -(56046, 4, "'ListConfig'"), -(56056, 0, "'>'"), -(56057, 0, "' '"), -(56058, 0, "'S'"), -(56059, 0, "'k'"), -(56060, 0, "'i'"), -(56058, 3, "'SkipList'"), -(56066, 0, "'<'"), -(56067, 0, "'C'"), -(56068, 0, "','"), -(56069, 0, "' '"), -(56070, 0, "'('"), -(56071, 0, "')'"), -(56071, 1, "''"), -(56070, 1, "''"), -(56069, 1, "''"), -(56068, 1, "''"), -(56068, 0, "'>'"), -(56069, 0, "' '"), -(56070, 0, "'{'"), -(56071, 0, "'n '"), -(56076, 0, "'n '"), -(56072, 4, "''"), -(56073, 4, "'}'"), -(56072, 0, "'n pub fn replace_at>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I) {n self.edit_between(start_userpos).replace(removed_items, inserted_content);n }nn pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n }nn pub fn modify_item_after(&mut self, userpos: usize, modify_fn: F) {n let (mut edit, offset) = self.edit(userpos);n edit.modify_current_item(|item| modify_fn(item, offset))n }nn pub fn insert_at>(&mut self, userpos: usize, contents: I) {n let (mut edit, offset) = self.edit(userpos);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n }nn pub fn del_at(&mut self, userpos: usize, num_items: usize) {n self.edit_between(userpos).del(num_items)n }nn pub fn edit(&mut self, userpos: usize) -> (Edit)>, usize) {n // self.edit_notify(userpos, no_notify_x::, f)n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert!(!N::notifications_used());n (Edit { list: self, cursor, notify: Self::no_notify }, item_offset)n }nn pub fn edit_between(&mut self, userpos: usize) -> Edit)> {n // self.edit_notify(userpos, no_notify_x::, f)n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: Self::no_notify }n }'"), -(56071, 1, "''"), -(57483, 42, "''"), -(57482, 1, "''"), -(57628, 37, "''"), -(57309, 37, "''"), -(57591, 0, "'('"), -(57309, 0, "'('"), -(57593, 0, "')'"), -(57310, 0, "')'"), -(60257, 0, "'='"), -(60258, 0, "' '"), -(60258, 1, "''"), -(60257, 1, "''"), -(60257, 0, "' '"), -(60258, 0, "'='"), -(60259, 0, "' '"), -(60260, 0, "'('"), -(60261, 0, "')'"), -(57591, 4, "''"), -(57307, 4, "''"), -(57848, 0, "')'"), -(57833, 0, "'('"), -(57503, 0, "')'"), -(57488, 0, "'('"), -(57836, 15, "')'"), -(57489, 15, "')'"), -(57823, 1, "''"), -(57490, 1, "''"), -(57820, 0, "'&'"), -(57488, 0, "'&'"), -(57822, 0, "'m'"), -(57489, 0, "'m'"), -(57824, 0, "'u'"), -(57490, 0, "'u'"), -(57826, 0, "'t'"), -(57491, 0, "'t'"), -(57828, 0, "' '"), -(57492, 0, "' '"), -(58387, 0, "','"), -(58388, 0, "' '"), -(58389, 0, "'N'"), -(58390, 0, "':'"), -(58391, 0, "' '"), -(58392, 0, "'N'"), -(58393, 0, "'o'"), -(58394, 0, "'t'"), -(58395, 0, "'i'"), -(58396, 0, "'f'"), -(58392, 5, "'NotificationTarget'"), -(58410, 0, "'<'"), -(58411, 0, "'C'"), -(58412, 0, "'>'"), -(58434, 0, "','"), -(58435, 0, "' '"), -(58436, 0, "'C'"), -(58436, 1, "''"), -(58436, 0, "'N'"), -(57845, 32, "'impl> '"), -(57845, 46, "'impl SkipList '"), -(57845, 20, "'impl> '"), -(57901, 0, "','"), -(57902, 0, "' '"), -(57903, 0, "'N'"), -(57849, 41, "''"), -(57862, 1, "''"), -(57861, 1, "''"), -(57860, 1, "''"), -(57859, 1, "''"), -(57859, 0, "'C, N'"), -(57849, 0, "'>'"), -(57863, 26, "''"), -(57877, 1, "''"), -(57877, 0, "'_'"), -(57863, 0, "','"), -(57864, 0, "' '"), -(57865, 0, "'N'"), -(57866, 0, "':'"), -(57867, 0, "' '"), -(57868, 0, "'_'"), -(57883, 1, "''"), -(57883, 0, "'N'"), -(57883, 1, "''"), -(57883, 0, "'_'"), -(57867, 2, "''"), -(57864, 3, "''"), -(57863, 1, "''"), -(57877, 1, "''"), -(57877, 0, "'N'"), -(57863, 0, "', N: NotificationTarget'"), -(58763, 23, "'impl> '"), -(58961, 20, "'impl> '"), -(58831, 0, "','"), -(58832, 0, "' '"), -(58833, 0, "'N'"), -(59044, 0, "','"), -(59045, 0, "' '"), -(59046, 0, "'N'"), -(59045, 2, "''"), -(59044, 1, "''"), -(58832, 2, "''"), -(58831, 1, "''"), -(58961, 46, "'impl '"), -(58763, 46, "'impl '"), -(58763, 23, "'impl> '"), -(58961, 20, "'impl> '"), -(58831, 0, "','"), -(58832, 0, "' N'"), -(59044, 0, "','"), -(59045, 0, "' N'"), -(58768, 0, "'I'"), -(58769, 0, "','"), -(58770, 0, "' '"), -(58916, 0, "','"), -(58917, 0, "' '"), -(58918, 0, "'N'"), -(60109, 0, "', N: NotificationTarget'"), -(60162, 0, "','"), -(60163, 0, "' '"), -(60164, 0, "'N'"), -(56037, 0, "'n'"), -(56038, 0, "'/'"), -(56039, 0, "'/'"), -(56040, 0, "' '"), -(56041, 0, "'T'"), -(56042, 0, "'h'"), -(56043, 0, "'e'"), -(56044, 0, "'s'"), -(56045, 0, "'e'"), -(56046, 0, "' '"), -(56047, 0, "'m'"), -(56048, 0, "'e'"), -(56049, 0, "'t'"), -(56050, 0, "'h'"), -(56051, 0, "'o'"), -(56052, 0, "'d'"), -(56053, 0, "'s'"), -(56054, 0, "' '"), -(56055, 0, "'a'"), -(56056, 0, "'r'"), -(56057, 0, "'e'"), -(56058, 0, "' '"), -(56059, 0, "'o'"), -(56060, 0, "'n'"), -(56061, 0, "'l'"), -(56062, 0, "'y'"), -(56063, 0, "' '"), -(56064, 0, "'a'"), -(56065, 0, "'v'"), -(56066, 0, "'a'"), -(56067, 0, "'i'"), -(56068, 0, "'l'"), -(56069, 0, "'a'"), -(56070, 0, "'b'"), -(56071, 0, "'l'"), -(56072, 0, "'e'"), -(56073, 0, "' '"), -(56074, 0, "'i'"), -(56075, 0, "'f'"), -(56076, 0, "' '"), -(56077, 0, "'t'"), -(56078, 0, "'h'"), -(56079, 0, "'e'"), -(56080, 0, "'r'"), -(56081, 0, "'e'"), -(56082, 0, "'''"), -(56083, 0, "'s'"), -(56084, 0, "' '"), -(56085, 0, "'n'"), -(56086, 0, "'o'"), -(56087, 0, "' '"), -(56088, 0, "'n'"), -(56089, 0, "'o'"), -(56090, 0, "'t'"), -(56091, 0, "'i'"), -(56092, 0, "'f'"), -(56093, 0, "'i'"), -(56094, 0, "'c'"), -(56095, 0, "'a'"), -(56096, 0, "'t'"), -(56097, 0, "'i'"), -(56098, 0, "'o'"), -(56099, 0, "'n'"), -(56100, 0, "' '"), -(56101, 0, "'t'"), -(56102, 0, "'a'"), -(56103, 0, "'r'"), -(56104, 0, "'g'"), -(56105, 0, "'e'"), -(56106, 0, "'t'"), -(56107, 0, "'.'"), -(57654, 57, "''"), -(57390, 57, "''"), -(57596, 1, "''"), -(57389, 1, "''"), -(23633, 294, "''"), -(23633, 0, "'n pub fn new_from_iter>(iter: I) -> Self {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n Self::new_from_iter(s.iter().copied())n }n'"), -(23712, 0, "'w'"), -(23713, 0, "'h'"), -(23714, 0, "'e'"), -(23715, 0, "'r'"), -(23716, 0, "'e'"), -(23717, 0, "' '"), -(23718, 0, "'N'"), -(23719, 0, "':'"), -(23720, 0, "' '"), -(23721, 0, "'('"), -(23722, 0, "')'"), -(23723, 0, "' '"), -(23719, 1, "''"), -(23719, 0, "' '"), -(23720, 0, "'='"), -(23721, 0, "'='"), -(23711, 14, "''"), -(23634, 293, "''"), -(55849, 0, "'n '"), -(55854, 0, "' pub fn new_from_iter>(iter: I) -> Self {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n Self::new_from_iter(s.iter().copied())n }n'"), -(55850, 8, "' '"), -(56143, 0, "'n '"), -(56144, 4, "''"), -(56143, 1, "''"), -(58740, 26, "''"), -(58766, 1, "''"), -(58765, 1, "''"), -(58764, 1, "''"), -(58845, 1, "''"), -(58844, 1, "''"), -(58843, 1, "''"), -(58718, 0, "'n'"), -(58719, 0, "'/'"), -(58720, 0, "'/'"), -(58721, 0, "' '"), -(58722, 0, "'O'"), -(58723, 0, "'n'"), -(58724, 0, "'l'"), -(58725, 0, "'y'"), -(58726, 0, "' '"), -(58727, 0, "'w'"), -(58727, 1, "''"), -(58727, 0, "'i'"), -(58728, 0, "'f'"), -(58729, 0, "' '"), -(58730, 0, "'t'"), -(58731, 0, "'h'"), -(58732, 0, "'e'"), -(58733, 0, "'r'"), -(58734, 0, "'e'"), -(58735, 0, "'''"), -(58736, 0, "'s'"), -(58737, 0, "' '"), -(58738, 0, "'n'"), -(58739, 0, "'o'"), -(58740, 0, "' '"), -(58741, 0, "'n'"), -(58742, 0, "'o'"), -(58743, 0, "'t'"), -(58744, 0, "'i'"), -(58745, 0, "'f'"), -(58746, 0, "'i'"), -(58747, 0, "'c'"), -(58748, 0, "'a'"), -(58749, 0, "'t'"), -(58750, 0, "'i'"), -(58751, 0, "'o'"), -(58752, 0, "'n'"), -(58753, 0, "' '"), -(58754, 0, "'t'"), -(58755, 0, "'a'"), -(58756, 0, "'r'"), -(58757, 0, "'g'"), -(58758, 0, "'e'"), -(58759, 0, "'t'"), -(58760, 0, "'.'"), -(55743, 0, "'n'"), -(55744, 0, "'n'"), -(55745, 0, "'s'"), -(55746, 0, "'t'"), -(55747, 0, "'a'"), -(55748, 0, "'t'"), -(55749, 0, "'i'"), -(55750, 0, "'c'"), -(55751, 0, "' '"), -(55752, 0, "'m'"), -(55753, 0, "'u'"), -(55754, 0, "'t'"), -(55755, 0, "' '"), -(55756, 0, "'T'"), -(55757, 0, "'A'"), -(55758, 0, "'R'"), -(55759, 0, "'G'"), -(55760, 0, "'E'"), -(55761, 0, "'T'"), -(55762, 0, "':'"), -(55763, 0, "' '"), -(55764, 0, "'('"), -(55765, 0, "')'"), -(55765, 1, "''"), -(55764, 1, "''"), -(55763, 1, "''"), -(55762, 1, "''"), -(55762, 0, "' '"), -(55763, 0, "'='"), -(55764, 0, "' '"), -(55765, 0, "'('"), -(55766, 0, "')'"), -(55767, 0, "';'"), -(55756, 0, "'N'"), -(55757, 0, "'_'"), -(55764, 0, "':'"), -(55765, 0, "' '"), -(55766, 0, "'('"), -(55767, 0, "')'"), -(57539, 1, "''"), -(57538, 1, "''"), -(57538, 0, "'N'"), -(57539, 0, "'_'"), -(57540, 0, "'T'"), -(57541, 0, "'A'"), -(57542, 0, "'R'"), -(57543, 0, "'G'"), -(57544, 0, "'E'"), -(57545, 0, "'T'"), -(57533, 0, "'u'"), -(57534, 0, "'n'"), -(57535, 0, "'s'"), -(57536, 0, "'a'"), -(57537, 0, "'f'"), -(57538, 0, "'e'"), -(57539, 0, "' '"), -(57540, 0, "'{'"), -(57541, 0, "' '"), -(57555, 0, "' '"), -(57556, 0, "'}'"), -(57829, 7, "'unsafe { &mut N_TARGET }'"), -(57844, 0, "'ULL_NOTIFY'"), -(57548, 0, "'ULL_NOTIFY'"), -(55757, 0, "'ULL_NOTIFY'"), -(2236, 0, "'n'"), -(2237, 0, "'n'"), -(2238, 0, "'i'"), -(2239, 0, "'m'"), -(2240, 0, "'p'"), -(2241, 0, "'l'"), -(2242, 0, "' '"), -(2243, 0, "'D'"), -(2244, 0, "'e'"), -(2245, 0, "'f'"), -(2246, 0, "'a'"), -(2247, 0, "'u'"), -(2248, 0, "'l'"), -(2249, 0, "'t'"), -(2250, 0, "' '"), -(2251, 0, "'f'"), -(2252, 0, "'o'"), -(2253, 0, "'r'"), -(2254, 0, "' '"), -(2255, 0, "'I'"), -(2256, 0, "'t'"), -(2257, 0, "'e'"), -(2258, 0, "'m'"), -(2259, 0, "'M'"), -(2255, 5, "'ItemMarker'"), -(2242, 0, "'<'"), -(2243, 0, "'C'"), -(2244, 0, "'>'"), -(2268, 0, "'<'"), -(2269, 0, "'C'"), -(2270, 0, "'>'"), -(2271, 0, "' '"), -(2272, 0, "'{'"), -(2273, 0, "'n '"), -(2274, 4, "'}'"), -(2273, 0, "'n '"), -(2278, 0, "'f'"), -(2279, 0, "'n'"), -(2280, 0, "' '"), -(2281, 0, "'d'"), -(2282, 0, "'e'"), -(2283, 0, "'f'"), -(2281, 3, "'default()'"), -(2290, 0, "' '"), -(2291, 0, "'{'"), -(2292, 0, "' '"), -(2293, 0, "'S'"), -(2294, 0, "'e'"), -(2295, 0, "'l'"), -(2296, 0, "'f'"), -(2297, 0, "':'"), -(2298, 0, "':'"), -(2299, 0, "'n'"), -(2300, 0, "'u'"), -(2301, 0, "'l'"), -(2302, 0, "'l'"), -(2303, 0, "'('"), -(2304, 0, "')'"), -(2305, 0, "' '"), -(2306, 0, "'}'"), -(2290, 0, "' '"), -(2291, 0, "'-'"), -(2292, 0, "'>'"), -(2293, 0, "' '"), -(2294, 0, "'S'"), -(2295, 0, "'E'"), -(2296, 0, "'l'"), -(2297, 0, "'f'"), -(2294, 4, "'S'"), -(2295, 0, "'e'"), -(2296, 0, "'l'"), -(2297, 0, "'f'"), -(2244, 0, "':'"), -(2245, 0, "' '"), -(2246, 0, "'L'"), -(2247, 0, "'i'"), -(2248, 0, "'s'"), -(2249, 0, "'t'"), -(2246, 4, "'ListConfig'"), -(55950, 0, "'impl SkipList {n pub fn new_from_iter>(iter: I) -> Self {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n Self::new_from_iter(s.iter().copied())n }nn pub fn replace_at>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I) {n self.edit_between(start_userpos).replace(removed_items, inserted_content);n }nn pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n }nn pub fn modify_item_after(&mut self, userpos: usize, modify_fn: F) {n let (mut edit, offset) = self.edit(userpos);n edit.modify_current_item(|item| modify_fn(item, offset))n }nn pub fn insert_at>(&mut self, userpos: usize, contents: I) {n let (mut edit, offset) = self.edit(userpos);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n }nn pub fn del_at(&mut self, userpos: usize, num_items: usize) {n self.edit_between(userpos).del(num_items)n }nn pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)n }nn pub fn edit_between(&mut self, userpos: usize) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }n }n}n'"), -(58005, 0, "','"), -(58006, 0, "' '"), -(58007, 0, "'N'"), -(58008, 0, "':'"), -(58009, 0, "' '"), -(58010, 0, "'L'"), -(58011, 0, "'i'"), -(58010, 2, "'N'"), -(58011, 0, "'o'"), -(58012, 0, "'t'"), -(58013, 0, "'i'"), -(58014, 0, "'f'"), -(58010, 5, "'NotificationTarget'"), -(58028, 0, "'<'"), -(58029, 0, "'C'"), -(58030, 0, "'>'"), -(58043, 0, "','"), -(58044, 0, "' '"), -(58045, 0, "'N'"), -(58047, 0, "' '"), -(58047, 1, "''"), -(58074, 0, "'_'"), -(58075, 0, "'n'"), -(58246, 0, "'_'"), -(58247, 0, "'n'"), -(58120, 0, "','"), -(58121, 0, "' '"), -(58122, 0, "'&'"), -(58123, 0, "'m'"), -(58124, 0, "'u'"), -(58125, 0, "'t'"), -(58126, 0, "' '"), -(58127, 0, "'n'"), -(58127, 1, "''"), -(58127, 0, "'N'"), -(58122, 0, "'n'"), -(58123, 0, "'o'"), -(58124, 0, "'t'"), -(58125, 0, "'i'"), -(58126, 0, "'f'"), -(58127, 0, "'y'"), -(58128, 0, "':'"), -(58129, 0, "' '"), -(58278, 0, "','"), -(58279, 0, "' '"), -(58280, 0, "'n'"), -(58281, 0, "'o'"), -(58282, 0, "'t'"), -(58283, 0, "'i'"), -(58284, 0, "'f'"), -(58285, 0, "'y'"), -(58286, 0, "':'"), -(58287, 0, "' '"), -(58288, 0, "'&'"), -(58289, 0, "'m'"), -(58290, 0, "'u'"), -(58291, 0, "'t'"), -(58292, 0, "' '"), -(58293, 0, "'n'"), -(58293, 1, "''"), -(58293, 0, "'N'"), -(58353, 0, "'_'"), -(58354, 0, "'n'"), -(58373, 0, "','"), -(58374, 0, "' '"), -(58375, 0, "'n'"), -(58376, 0, "'o'"), -(58377, 0, "'t'"), -(58378, 0, "'i'"), -(58379, 0, "'f'"), -(58380, 0, "'y'"), -(59467, 0, "'_'"), -(59313, 0, "'_'"), -(59096, 0, "'_'"), -(58875, 0, "'_'"), -(58643, 0, "'_'"), -(58411, 0, "'_'"), -(59473, 0, "'n'"), -(59318, 0, "'n'"), -(59100, 0, "'n'"), -(58878, 0, "'n'"), -(58645, 0, "'n'"), -(58412, 0, "'n'"), -(60107, 0, "'// '"), -(60027, 0, "'// '"), -(59953, 0, "'// '"), -(59886, 0, "'// '"), -(59822, 0, "'// '"), -(59815, 0, "'// '"), -(59720, 0, "'// '"), -(59653, 0, "'// '"), -(59588, 0, "'// '"), -(59581, 0, "'// '"), -(59531, 0, "'// '"), -(59464, 0, "'// '"), -(59457, 0, "'// '"), -(59399, 0, "'// '"), -(59299, 0, "'// '"), -(59292, 0, "'// '"), -(59240, 0, "'// '"), -(59187, 0, "'// '"), -(59086, 0, "'// '"), -(59079, 0, "'// '"), -(59014, 0, "'// '"), -(58961, 0, "'// '"), -(58855, 0, "'// '"), -(58848, 0, "'// '"), -(58759, 0, "'// '"), -(58622, 0, "'// '"), -(59322, 3, "''"), -(59267, 3, "''"), -(59211, 3, "''"), -(59107, 3, "''"), -(59200, 0, "','"), -(59201, 0, "' '"), -(59202, 0, "'N'"), -(59202, 1, "''"), -(59202, 0, "'n'"), -(59203, 0, "'o'"), -(59204, 0, "'t'"), -(59205, 0, "'i'"), -(59206, 0, "'f'"), -(59207, 0, "'y'"), -(59208, 0, "':'"), -(59209, 0, "' '"), -(59210, 0, "'&'"), -(59211, 0, "'m'"), -(59212, 0, "'u'"), -(59213, 0, "'t'"), -(59214, 0, "' '"), -(59215, 0, "'N'"), -(54280, 5, "''"), -(54262, 292, "''"), -(54263, 267, "''"), -(54262, 1, "''"), -(57421, 0, "'n'"), -(59626, 0, "'n '"), -(59631, 0, "'n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: notify_target }, item_offset)n }'"), -(59627, 4, "''"), -(58698, 0, "'_'"), -(58699, 0, "'n'"), -(58708, 0, "','"), -(58709, 0, "' '"), -(58710, 0, "'n'"), -(58711, 0, "'o'"), -(58712, 0, "'t'"), -(58713, 0, "'i'"), -(58714, 0, "'f'"), -(58715, 0, "'y'"), -(59084, 245, "''"), -(59083, 1, "''"), -(59391, 292, "''"), -(57824, 0, "'n '"), -(57829, 0, "'n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: notify_target }, item_offset)n }'"), -(57825, 4, "''"), -(56893, 526, "''"), -(55711, 0, "'nn pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)n }nn pub fn edit_between(&mut self, userpos: usize) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }n }'"), -(59376, 307, "''"), -(58117, 0, "'nn // pub fn edit_between(&mut self, userpos: usize) -> Edit {n // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // assert_eq!(item_offset, 0, 'edit_between landed inside an item');n // Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }n // }'"), -(58420, 3, "''"), -(58337, 3, "''"), -(58260, 3, "''"), -(58190, 3, "''"), -(58123, 3, "''"), -(58142, 0, "'_'"), -(58143, 0, "'n'"), -(58170, 0, "','"), -(58171, 0, "' '"), -(58172, 0, "'n'"), -(58173, 0, "'o'"), -(58174, 0, "'t'"), -(58175, 0, "'i'"), -(58176, 0, "'f'"), -(58177, 0, "'y'"), -(58178, 0, "':'"), -(58179, 0, "' '"), -(58180, 0, "'&'"), -(58181, 0, "'m'"), -(58182, 0, "'u'"), -(58183, 0, "'t'"), -(58184, 0, "' '"), -(58185, 0, "'N'"), -(58383, 36, "''"), -(58080, 15, "''"), -(57890, 1, "''"), -(57889, 1, "''"), -(57888, 1, "''"), -(57887, 1, "''"), -(57886, 1, "''"), -(57885, 1, "''"), -(57884, 1, "''"), -(57884, 0, "'_target'"), -(57884, 7, "''"), -(58175, 0, "','"), -(58176, 0, "' '"), -(58177, 0, "'N'"), -(58159, 0, "'''"), -(58160, 0, "' '"), -(58160, 1, "''"), -(58160, 0, "'a'"), -(58161, 0, "' '"), -(58122, 0, "'<'"), -(58123, 0, "'''"), -(58124, 0, "'a'"), -(58125, 0, "'>'"), -(58128, 0, "'''"), -(58129, 0, "'a'"), -(58130, 0, "' '"), -(58547, 0, "'_'"), -(58548, 0, "'n'"), -(58563, 0, "','"), -(58564, 0, "' '"), -(58565, 0, "'n'"), -(58566, 0, "'o'"), -(58567, 0, "'t'"), -(58568, 0, "'i'"), -(58569, 0, "'f'"), -(58570, 0, "'y'"), -(58518, 0, "','"), -(58519, 0, "' '"), -(58520, 0, "'n'"), -(58521, 0, "'o'"), -(58522, 0, "'t'"), -(58523, 0, "'i'"), -(58524, 0, "'f'"), -(58525, 0, "'y'"), -(58526, 0, "':'"), -(58527, 0, "' '"), -(58528, 0, "'&'"), -(58529, 0, "'m'"), -(58530, 0, "'u'"), -(58531, 0, "'t'"), -(58532, 0, "' '"), -(58533, 0, "'N'"), -(59530, 3, "''"), -(59469, 3, "''"), -(59366, 3, "''"), -(59438, 0, "','"), -(59439, 0, "' '"), -(59440, 0, "'n'"), -(59441, 0, "'o'"), -(59442, 0, "'t'"), -(59443, 0, "'i'"), -(59444, 0, "'f'"), -(59445, 0, "'y'"), -(59446, 0, "'&'"), -(59446, 1, "''"), -(59446, 0, "':'"), -(59447, 0, "' '"), -(59448, 0, "'&'"), -(59449, 0, "'n'"), -(59449, 1, "''"), -(59449, 0, "'m'"), -(59450, 0, "'u'"), -(59451, 0, "'t'"), -(59452, 0, "' '"), -(59453, 0, "'N'"), -(59500, 0, "'_'"), -(59501, 0, "'n'"), -(59536, 0, "','"), -(59537, 0, "' '"), -(59538, 0, "'n'"), -(59539, 0, "'o'"), -(59540, 0, "'t'"), -(59541, 0, "'i'"), -(59542, 0, "'f'"), -(59543, 0, "'y'"), -(57486, 2199, "''"), -(55269, 0, "'n '"), -(55274, 0, "'n '"), -(55270, 4, "''"), -(55275, 0, "'n '"), -(55271, 4, "''"), -(55276, 0, "'n '"), -(55272, 4, "''"), -(55277, 0, "' pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {n Self::new_from_iter_n(s.iter().copied(), notify)n }nn pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify }, item_offset)n }nn pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify }n }nn pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);n }nn // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n // }nn // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {n // let (mut edit, offset) = self.edit(userpos);n // edit.modify_current_item(|item| modify_fn(item, offset))n // }nn pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {n let (mut edit, offset) = self.edit_n(userpos, notify);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {n self.insert_at_n(userpos, contents.iter().copied(), notify)n }nn // pub fn del_at_n(&mut self, userpos: usize, num_items: usize) {n // self.edit_between(userpos).del(num_items)n // }n'"), -(55273, 8, "' '"), -(55429, 0, "'_'"), -(55430, 0, "'n'"), -(55439, 0, "','"), -(55440, 0, "' '"), -(55441, 0, "'n'"), -(55442, 0, "'o'"), -(55443, 0, "'t'"), -(55444, 0, "'i'"), -(55445, 0, "'f'"), -(55446, 0, "'y'"), -(55272, 2210, "''"), -(55271, 1, "''"), -(55270, 1, "''"), -(55269, 1, "''"), -(57486, 0, "'n pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {n let mut rope = Self::new();n rope.insert_at_n(0, iter, notify);n ropen }nn pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {n Self::new_from_iter_n(s.iter().copied(), notify)n }nn pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify }, item_offset)n }nn pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify }n }nn pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);n }nn // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n // }nn // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {n // let (mut edit, offset) = self.edit(userpos);n // edit.modify_current_item(|item| modify_fn(item, offset))n // }nn pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {n let (mut edit, offset) = self.edit_n(userpos, notify);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {n self.insert_at_n(userpos, contents.iter().copied(), notify)n }nn // pub fn del_at_n(&mut self, userpos: usize, num_items: usize) {n // self.edit_between(userpos).del(num_items)n // }n'"), -(1764, 0, "'n'"), -(1765, 0, "'#'"), -(1766, 0, "'['"), -(1767, 0, "'d'"), -(1768, 0, "'e'"), -(1769, 0, "'r'"), -(1770, 0, "'i'"), -(1771, 0, "'v'"), -(1772, 0, "'e'"), -(1773, 0, "'('"), -(1774, 0, "'P'"), -(1775, 0, "'a'"), -(1776, 0, "'r'"), -(1777, 0, "'t'"), -(1778, 0, "'i'"), -(1774, 5, "'PartialEq'"), -(1783, 0, "')'"), -(1783, 0, "','"), -(1784, 0, "' '"), -(1785, 0, "'E'"), -(1786, 0, "'q'"), -(1788, 0, "']'"), -(1765, 24, "''"), -(1764, 1, "''"), -(2041, 0, "'n'"), -(2042, 0, "'i'"), -(2043, 0, "'m'"), -(2044, 0, "'p'"), -(2045, 0, "'l'"), -(2046, 0, "' '"), -(2042, 5, "''"), -(2041, 1, "''"), -(1996, 0, "'impl Copy for ItemMarker {}n'"), -(2062, 4, "'P'"), -(2063, 0, "'a'"), -(2064, 0, "'r'"), -(2065, 0, "'t'"), -(2066, 0, "'i'"), -(2067, 0, "'a'"), -(2062, 6, "'PartialEq'"), -(2091, 0, "'n n'"), -(2096, 0, "'fn eq(&self, other: &Rhs) -> bool;'"), -(2117, 3, "'S'"), -(2118, 0, "'e'"), -(2119, 0, "'l'"), -(2120, 0, "'f'"), -(2126, 4, "''"), -(2126, 0, "'{'"), -(2127, 0, "'}'"), -(2127, 0, "' '"), -(2128, 0, "'s'"), -(2129, 0, "'e'"), -(2130, 0, "'l'"), -(2131, 0, "'f'"), -(2132, 0, "'.'"), -(2133, 0, "'p'"), -(2134, 0, "'t'"), -(2135, 0, "'r'"), -(2136, 0, "' '"), -(2137, 0, "'='"), -(2138, 0, "'='"), -(2139, 0, "' '"), -(2140, 0, "'o'"), -(2141, 0, "'t'"), -(2142, 0, "'h'"), -(2143, 0, "'e'"), -(2144, 0, "'r'"), -(2145, 0, "'.'"), -(2146, 0, "'p'"), -(2147, 0, "'t'"), -(2148, 0, "'r'"), -(2149, 0, "' '"), -(2151, 1, "''"), -(2125, 0, "' '"), -(2126, 0, "'b'"), -(2127, 0, "'o'"), -(2128, 0, "'o'"), -(2129, 0, "'l'"), -(2042, 0, "'impl PartialEq for ItemMarker {n'"), -(2141, 65, "''"), -(2092, 0, "' '"), -(2092, 0, "' fn eq(&self, other: &Self) -> bool { self.ptr == other.ptr }n'"), -(2210, 2, "''"), -(2157, 4, "' '"), -(2157, 0, "'}n'"), -(2159, 8, "' '"), -(2159, 4, "''"), -(2179, 9, "'E'"), -(2180, 0, "'q'"), -(2201, 0, "'}'"), -(62348, 5104, "''"), -(55474, 4385, "''"), -(55433, 41, "''"), -(51128, 0, "'['"), -(51129, 0, "'i'"), -(51130, 0, "'b'"), -(51130, 1, "''"), -(51129, 1, "''"), -(51128, 1, "''"), -(51128, 0, "'['"), -(51129, 0, "'u'"), -(51130, 0, "'b'"), -(51130, 1, "''"), -(51129, 1, "''"), -(51128, 1, "''"), -(51128, 0, "'p'"), -(51129, 0, "'u'"), -(51130, 0, "'b'"), -(51131, 0, "')'"), -(51132, 0, "'c'"), -(51133, 0, "'r'"), -(51133, 1, "''"), -(51132, 1, "''"), -(51131, 1, "''"), -(51131, 0, "'('"), -(51132, 0, "'c'"), -(51133, 0, "'r'"), -(51134, 0, "'a'"), -(51135, 0, "'t'"), -(51136, 0, "'e'"), -(51137, 0, "')'"), -(51138, 0, "' '"), -(45930, 0, "'pub(crate) '"), -(38842, 0, "'pub(crate) '"), -(38838, 4, "' '"), -(38838, 8, "' '"), -(29645, 0, "'pub(crate) '"), -(16747, 0, "'pub(crate) '"), -(16751, 5, "'s'"), -(16752, 0, "'e'"), -(16753, 0, "'l'"), -(16754, 0, "'f'"), -(16751, 4, "'crate'"), -(16751, 5, "'s'"), -(16752, 0, "'u'"), -(16753, 0, "'p'"), -(16754, 0, "'e'"), -(16755, 0, "'r'"), -(16881, 0, "'pub(super) '"), -(16374, 0, "'pub(super) '"), -(16251, 0, "'pub(super) '"), -(51213, 1, "''"), -(46004, 1, "''"), -(38905, 1, "''"), -(29697, 1, "''"), -(51209, 1, "''"), -(46001, 1, "''"), -(38903, 1, "''"), -(29696, 1, "''"), -(51205, 1, "''"), -(45998, 1, "''"), -(38901, 1, "''"), -(29695, 1, "''"), -(51201, 1, "''"), -(45995, 1, "''"), -(38899, 1, "''"), -(29694, 1, "''"), -(51197, 1, "''"), -(45992, 1, "''"), -(38897, 1, "''"), -(29693, 1, "''"), -(51194, 0, "'s'"), -(45990, 0, "'s'"), -(38896, 0, "'s'"), -(29693, 0, "'s'"), -(51198, 0, "'u'"), -(45993, 0, "'u'"), -(38898, 0, "'u'"), -(29694, 0, "'u'"), -(51202, 0, "'p'"), -(45996, 0, "'p'"), -(38900, 0, "'p'"), -(29695, 0, "'p'"), -(51206, 0, "'e'"), -(45999, 0, "'e'"), -(38902, 0, "'e'"), -(29696, 0, "'e'"), -(51210, 0, "'r'"), -(46002, 0, "'r'"), -(38904, 0, "'r'"), -(29697, 0, "'r'"), -(16832, 1, "''"), -(16832, 0, "'s'"), -(16833, 0, "'i'"), -(16834, 0, "'z'"), -(16835, 0, "'e'"), -(24375, 0, "'p'"), -(24376, 0, "'u'"), -(24377, 0, "'b'"), -(24378, 0, "'('"), -(24379, 0, "'s'"), -(24380, 0, "'u'"), -(24381, 0, "'p'"), -(24382, 0, "'e'"), -(24383, 0, "'r'"), -(24384, 0, "')'"), -(24385, 0, "' '"), -(16431, 2, "'u'"), -(16432, 0, "'s'"), -(16433, 0, "'z'"), -(16434, 0, "'i'"), -(16434, 1, "''"), -(16433, 1, "''"), -(16433, 0, "'i'"), -(16434, 0, "'z'"), -(16435, 0, "'e'"), -(16628, 9, "''"), -(13593, 0, "'pub(super) '"), -(13593, 11, "''"), -(13590, 3, "'pub(super) '"), -(13600, 1, "''"), -(13594, 5, "'c'"), -(13595, 0, "'r'"), -(13596, 0, "'e'"), -(13597, 0, "'a'"), -(13598, 0, "'t'"), -(13599, 0, "'e'"), -(13599, 1, "''"), -(13598, 1, "''"), -(13597, 1, "''"), -(13596, 1, "''"), -(13596, 0, "'a'"), -(13597, 0, "'t'"), -(13598, 0, "'e'"), -(14034, 0, "'pub(super) '"), -(14283, 0, "'pub(super) '"), -(14319, 0, "'pub(super) '"), -(18277, 0, "'pub(super) '"), -(18693, 0, "'pub(super) '"), -(19190, 0, "'pub(super) '"), -(17996, 0, "'pub(super) '"), -(17573, 0, "'pub(super) '"), -(17170, 0, "'pub(super) '"), -(16992, 2, "'u'"), -(16993, 0, "'s'"), -(16994, 0, "'i'"), -(16995, 0, "'z'"), -(16996, 0, "'e'"), -(17064, 9, "''"), -(54204, 0, "'pub(super) '"), -(14686, 0, "'pub(super) '"), -(8662, 0, "'pub(super) '"), -(8745, 0, "'pub(super) '"), -(5888, 0, "'pub(super) '"), -(3703, 0, "'_'"), -(3723, 0, "'_'"), -(33936, 4, "''"), -(33936, 0, "'pub(super) '"), -(4065, 0, "'pub(super) '"), -(1808, 0, "'pub(super) '"), -(31206, 4, "''"), -(31205, 1, "''"), -(31205, 0, "' '"), -(31206, 0, "'l'"), -(31207, 0, "'i'"), -(31208, 0, "'s'"), -(31209, 0, "'t'"), -(31206, 0, "'s'"), -(31207, 0, "'k'"), -(31208, 0, "'i'"), -(31206, 3, "''"), -(31206, 5, "''"), -(59430, 4, "'l'"), -(58657, 4, "'l'"), -(58649, 4, "'l'"), -(59425, 0, "'i'"), -(58655, 0, "'i'"), -(58650, 0, "'i'"), -(59428, 0, "'s'"), -(58657, 0, "'s'"), -(58651, 0, "'s'"), -(59431, 0, "'t'"), -(58659, 0, "'t'"), -(58652, 0, "'t'"), -(582, 178, "''"), -(1144, 4, "'L'"), -(1145, 0, "'i'"), -(1146, 0, "'s'"), -(1147, 0, "'t'"), -(54562, 0, "'('"), -(54563, 0, "'c'"), -(54564, 0, "'r'"), -(54565, 0, "'a'"), -(54566, 0, "'t'"), -(54567, 0, "'e'"), -(54568, 0, "')'"), -(54523, 32, "''"), -(54522, 1, "''"), -(54530, 5, "'s'"), -(54531, 0, "'u'"), -(54532, 0, "'p'"), -(54533, 0, "'e'"), -(54534, 0, "'r'"), -(54530, 5, "'d'"), -(54531, 0, "'i'"), -(54531, 1, "''"), -(54530, 1, "''"), -(54530, 0, "'p'"), -(54531, 0, "'a'"), -(54532, 0, "'t'"), -(54533, 0, "'h'"), -(54530, 4, "''"), -(54530, 0, "'''"), -(54531, 0, "'.'"), -(54532, 0, "'.'"), -(54533, 0, "'''"), -(54526, 10, "''"), -(54526, 0, "'p'"), -(54527, 0, "'u'"), -(54528, 0, "'b'"), -(54529, 0, "'('"), -(54530, 0, "'s'"), -(54531, 0, "'u'"), -(54532, 0, "'p'"), -(54533, 0, "'e'"), -(54534, 0, "'r'"), -(54535, 0, "')'"), -(54536, 0, "' '"), -(54530, 5, "'i'"), -(54531, 0, "'n'"), -(54532, 0, "' '"), -(54533, 0, "'''"), -(54534, 0, "'.'"), -(54535, 0, "'.'"), -(54536, 0, "'''"), -(54533, 4, "'s'"), -(54534, 0, "'u'"), -(54535, 0, "'p'"), -(54536, 0, "'e'"), -(54537, 0, "'r'"), -(54533, 5, "'s'"), -(54534, 0, "'e'"), -(54535, 0, "'l'"), -(54536, 0, "'f'"), -(54529, 9, "''"), -(54529, 0, "'('"), -(54529, 1, "''"), -(54521, 0, "'n '"), -(54526, 0, "'/'"), -(54527, 0, "'/'"), -(54528, 0, "' '"), -(54529, 0, "'T'"), -(54530, 0, "'O'"), -(54531, 0, "'D'"), -(54532, 0, "'O'"), -(54533, 0, "':'"), -(54534, 0, "' '"), -(54535, 0, "'D'"), -(54536, 0, "'o'"), -(54537, 0, "' '"), -(54538, 0, "'n'"), -(54539, 0, "'o'"), -(54540, 0, "'t'"), -(54541, 0, "' '"), -(54542, 0, "'e'"), -(54543, 0, "'x'"), -(54544, 0, "'p'"), -(54545, 0, "'o'"), -(54546, 0, "'e'"), -(54547, 0, "'t'"), -(54548, 0, "' '"), -(54548, 1, "''"), -(54547, 1, "''"), -(54546, 1, "''"), -(54546, 0, "'r'"), -(54547, 0, "'t'"), -(54548, 0, "' '"), -(54549, 0, "'t'"), -(54550, 0, "'h'"), -(54551, 0, "'i'"), -(54552, 0, "'s'"), -(54553, 0, "'.'"), -(54554, 0, "' '"), -(54554, 1, "''"), -(54535, 0, "'T'"), -(54536, 0, "'h'"), -(54537, 0, "'i'"), -(54538, 0, "'s'"), -(54539, 0, "' '"), -(54540, 0, "'i'"), -(54541, 0, "'s'"), -(54542, 0, "' '"), -(54543, 0, "'j'"), -(54544, 0, "'s'"), -(54545, 0, "'u'"), -(54546, 0, "'t'"), -(54547, 0, "' '"), -(54548, 0, "'f'"), -(54549, 0, "'o'"), -(54550, 0, "'r'"), -(54551, 0, "' '"), -(54552, 0, "'d'"), -(54553, 0, "'e'"), -(54543, 11, "'j'"), -(54544, 0, "'u'"), -(54545, 0, "'s'"), -(54546, 0, "'t'"), -(54547, 0, "' '"), -(54548, 0, "'f'"), -(54549, 0, "'o'"), -(54550, 0, "'r'"), -(54551, 0, "' '"), -(54552, 0, "'d'"), -(54553, 0, "'e'"), -(54554, 0, "'b'"), -(54555, 0, "'u'"), -(54556, 0, "'g'"), -(54557, 0, "'g'"), -(54558, 0, "'i'"), -(54559, 0, "'n'"), -(54560, 0, "'g'"), -(54561, 0, "'.'"), -(54562, 0, "' '"), -(32164, 0, "'n '"), -(32173, 0, "'a'"), -(32174, 0, "'s'"), -(32175, 0, "'s'"), -(32176, 0, "'e'"), -(32177, 0, "'r'"), -(32178, 0, "'t'"), -(32179, 0, "'!'"), -(32180, 0, "'('"), -(32181, 0, "'N'"), -(32182, 0, "':'"), -(32183, 0, "':'"), -(32184, 0, "'notifications_used()'"), -(32204, 0, "','"), -(32205, 0, "' '"), -(32206, 0, "'''"), -(32207, 0, "'C'"), -(32208, 0, "'a'"), -(32209, 0, "'n'"), -(32210, 0, "'n'"), -(32211, 0, "'o'"), -(32212, 0, "'t'"), -(32207, 6, "'i'"), -(32208, 0, "'t'"), -(32209, 0, "'e'"), -(32210, 0, "'r'"), -(32211, 0, "'_'"), -(32212, 0, "'a'"), -(32213, 0, "'t'"), -(32214, 0, "'_'"), -(32215, 0, "'n'"), -(32216, 0, "'o'"), -(32217, 0, "'d'"), -(32218, 0, "'e'"), -(32219, 0, "' '"), -(32220, 0, "'n'"), -(32221, 0, "'o'"), -(32222, 0, "'t'"), -(32223, 0, "' '"), -(32224, 0, "'a'"), -(32225, 0, "'v'"), -(32226, 0, "'a'"), -(32227, 0, "'i'"), -(32228, 0, "'l'"), -(32229, 0, "'a'"), -(32230, 0, "'b'"), -(32231, 0, "'l'"), -(32232, 0, "'e'"), -(32233, 0, "' '"), -(32234, 0, "'i'"), -(32235, 0, "'f'"), -(32236, 0, "' '"), -(32237, 0, "'n'"), -(32238, 0, "'o'"), -(32239, 0, "'t'"), -(32240, 0, "'i'"), -(32241, 0, "'f'"), -(32242, 0, "'i'"), -(32243, 0, "'c'"), -(32244, 0, "'a'"), -(32245, 0, "'t'"), -(32246, 0, "'i'"), -(32247, 0, "'o'"), -(32248, 0, "'n'"), -(32249, 0, "'s'"), -(32250, 0, "' '"), -(32251, 0, "'a'"), -(32252, 0, "'r'"), -(32253, 0, "'e'"), -(32254, 0, "' '"), -(32255, 0, "'d'"), -(32256, 0, "'i'"), -(32257, 0, "'s'"), -(32258, 0, "'a'"), -(32259, 0, "'b'"), -(32260, 0, "'l'"), -(32261, 0, "'e'"), -(32262, 0, "'d'"), -(32263, 0, "'''"), -(32264, 0, "')'"), -(32265, 0, "';'"), -(32266, 0, "'n '"), -(38129, 0, "'n '"), -(32267, 8, "''"), -(38130, 0, "'i'"), -(38131, 0, "'f'"), -(38132, 0, "' '"), -(38133, 0, "'N'"), -(38134, 0, "':'"), -(38135, 0, "':'"), -(38136, 0, "'notifications_used()'"), -(38156, 0, "' '"), -(38157, 0, "'{'"), -(38572, 8, "' '"), -(38558, 12, "' '"), -(38477, 16, "' '"), -(38433, 16, "' '"), -(38416, 16, "' '"), -(38345, 16, "' '"), -(38289, 16, "' '"), -(38270, 12, "' '"), -(38232, 12, "' '"), -(38194, 12, "' '"), -(38159, 8, "' '"), -(38625, 0, "'n '"), -(38626, 12, "' }'"), -(49367, 0, "'n '"), -(49367, 17, "''"), -(38626, 9, "' '"), -(38625, 13, "''"), -(38612, 12, "' '"), -(38594, 16, "' '"), -(38509, 20, "' '"), -(38461, 20, "' '"), -(38440, 20, "' '"), -(38365, 20, "' '"), -(38305, 20, "' '"), -(38282, 16, "' '"), -(38240, 16, "' '"), -(38198, 16, "' '"), -(38159, 12, "' '"), -(38133, 23, "''"), -(38122, 13, "''"), -(38121, 1, "''"), -(38132, 0, "' '"), -(38133, 0, "'N::notifications_used()'"), -(38156, 0, "' '"), -(38157, 0, "'&'"), -(38158, 0, "'&'"), -(49322, 0, "' '"), -(49323, 0, "'N::notifications_used()'"), -(49346, 0, "' '"), -(49347, 0, "'&'"), -(49348, 0, "'&'"), -(33899, 4, "'c'"), -(33900, 0, "'u'"), -(33901, 0, "'r'"), -(33902, 0, "'s'"), -(33903, 0, "'o'"), -(33904, 0, "'r'"), -(32075, 1, "''"), -(32074, 1, "''"), -(32073, 1, "''"), -(32072, 1, "''"), -(32072, 0, "'c'"), -(32073, 0, "'u'"), -(32074, 0, "'r'"), -(32075, 0, "'s'"), -(32076, 0, "'o'"), -(32077, 0, "'r'"), -(28226, 4, "'c'"), -(28227, 0, "'u'"), -(28228, 0, "'r'"), -(28229, 0, "'s'"), -(28230, 0, "'o'"), -(28231, 0, "'r'"), -(34637, 1, "''"), -(34636, 1, "''"), -(34635, 1, "''"), -(34634, 1, "''"), -(34634, 0, "'c'"), -(34635, 0, "'u'"), -(34636, 0, "'r'"), -(34637, 0, "'s'"), -(34638, 0, "'o'"), -(34639, 0, "'r'"), -(29703, 3, "'curso'"), -(27769, 3, "'curso'"), -(27847, 0, "'n '"), -(27864, 0, "'a'"), -(27865, 0, "'s'"), -(27866, 0, "'s'"), -(27867, 0, "'e'"), -(27868, 0, "'r'"), -(27864, 5, "'assert_eq!'"), -(27874, 0, "'('"), -(27875, 0, "'n'"), -(27876, 0, "'o'"), -(27877, 0, "'r'"), -(27878, 0, "'m'"), -(27879, 0, "'a'"), -(27875, 5, "'normal_iter'"), -(27886, 0, "'.'"), -(27887, 0, "'u'"), -(27888, 0, "'s'"), -(27889, 0, "'e'"), -(27890, 0, "'p'"), -(27891, 0, "'o'"), -(27891, 1, "''"), -(27890, 1, "''"), -(27890, 0, "'r'"), -(27891, 0, "'p'"), -(27892, 0, "'o'"), -(27893, 0, "'s'"), -(27894, 0, "','"), -(27895, 0, "' '"), -(27896, 0, "'n'"), -(27897, 0, "'u'"), -(27898, 0, "'m'"), -(27899, 0, "'_'"), -(27900, 0, "'u'"), -(27896, 5, "'num_usercount'"), -(27909, 0, "')'"), -(27910, 0, "';'"), -(27911, 0, "'n assert_eq!(normal_iter.userpos, num_usercount);'"), -(27911, 64, "''"), -(28041, 0, "'n '"), -(28058, 0, "'i'"), -(28059, 0, "'f'"), -(28060, 0, "' '"), -(28061, 0, "'p'"), -(28061, 1, "''"), -(28061, 0, "'N'"), -(28062, 0, "':'"), -(28063, 0, "':'"), -(28064, 0, "'notifications_used()'"), -(28084, 0, "' '"), -(28085, 0, "'{'"), -(28397, 16, "' '"), -(28291, 16, "' '"), -(28227, 16, "' '"), -(28209, 16, "' '"), -(28161, 20, "' '"), -(28087, 16, "' '"), -(28472, 0, "'n '"), -(28473, 20, "' }'"), -(26687, 247, "''"), -(26341, 0, "'n '"), -(26358, 0, "'i'"), -(26359, 0, "'f'"), -(26360, 0, "' '"), -(26361, 0, "'N'"), -(26362, 0, "':'"), -(26363, 0, "':'"), -(26364, 0, "'notifications_used()'"), -(26384, 0, "' '"), -(26385, 0, "'{'"), -(26733, 16, "' '"), -(26713, 16, "' '"), -(26669, 20, "' '"), -(26644, 16, "' '"), -(26562, 20, "' '"), -(26505, 16, "' '"), -(26444, 20, "' '"), -(26387, 16, "' '"), -(26847, 0, "'n '"), -(26848, 20, "' }'"), -(38144, 0, "' if cfg!(debug_assertions) {n'"), -(38184, 0, "' '"), -(38182, 1, "''"), -(38181, 1, "''"), -(38159, 22, "''"), -(38158, 1, "''"), -(38157, 1, "''"), -(38144, 13, "''"), -(38144, 0, "'cfg!(debug_assertions)'"), -(38133, 95, "' if cfg!(debug_assertions) N::notifications_used() && new_height_usize > 1 {'"), -(38166, 0, "' '"), -(38167, 0, "'|'"), -(38168, 0, "'|'"), -(38144, 0, "'('"), -(38194, 0, "')'"), -(38221, 1, "''"), -(38144, 51, "''"), -(38144, 0, "'s'"), -(38145, 0, "'e'"), -(38146, 0, "'l'"), -(38147, 0, "'f'"), -(38148, 0, "'.'"), -(38149, 0, "'s'"), -(38150, 0, "'t'"), -(38151, 0, "'o'"), -(38152, 0, "'r'"), -(38153, 0, "'e'"), -(38153, 1, "''"), -(38152, 1, "''"), -(38151, 1, "''"), -(38150, 1, "''"), -(38149, 1, "''"), -(38149, 0, "'u'"), -(38150, 0, "'s'"), -(38151, 0, "'e'"), -(38152, 0, "'_'"), -(38153, 0, "'p'"), -(38154, 0, "'a'"), -(38155, 0, "'r'"), -(38156, 0, "'e'"), -(38157, 0, "'n'"), -(38158, 0, "'t'"), -(38159, 0, "'s'"), -(38160, 0, "'('"), -(38161, 0, "')'"), -(24736, 0, "'n '"), -(24741, 0, "'n '"), -(24737, 4, "''"), -(24742, 0, "'#'"), -(24743, 0, "'['"), -(24744, 0, "'i'"), -(24745, 0, "'n'"), -(24746, 0, "'l'"), -(24747, 0, "'i'"), -(24748, 0, "'n'"), -(24749, 0, "'e'"), -(24750, 0, "'('"), -(24751, 0, "'a'"), -(24752, 0, "'l'"), -(24753, 0, "'w'"), -(24754, 0, "'a'"), -(24755, 0, "'y'"), -(24756, 0, "'s'"), -(24757, 0, "')'"), -(24758, 0, "']'"), -(24759, 0, "'n '"), -(24764, 0, "'f'"), -(24765, 0, "'n'"), -(24766, 0, "' '"), -(24767, 0, "'u'"), -(24768, 0, "'s'"), -(24769, 0, "'e'"), -(24770, 0, "'_'"), -(24771, 0, "'p'"), -(24772, 0, "'a'"), -(24773, 0, "'r'"), -(24774, 0, "'e'"), -(24775, 0, "'n'"), -(24776, 0, "'t'"), -(24777, 0, "'s'"), -(24778, 0, "'('"), -(24779, 0, "'&'"), -(24780, 0, "'s'"), -(24781, 0, "'e'"), -(24781, 1, "''"), -(24780, 1, "''"), -(24779, 1, "''"), -(24779, 0, "')'"), -(24780, 0, "' '"), -(24781, 0, "'-'"), -(24782, 0, "'>'"), -(24783, 0, "' '"), -(24784, 0, "'b'"), -(24785, 0, "'o'"), -(24786, 0, "'o'"), -(24787, 0, "'l'"), -(24788, 0, "' '"), -(24789, 0, "'{'"), -(24790, 0, "'n '"), -(24799, 0, "'n '"), -(24791, 8, "''"), -(24792, 8, "' }'"), -(24791, 0, "'(cfg!(debug_assertions) || N::notifications_used())'"), -(24791, 0, "' '"), -(24799, 1, "''"), -(24848, 1, "''"), -(38262, 5, "''"), -(38262, 0, "'S'"), -(38263, 0, "'e'"), -(38264, 0, "'l'"), -(38265, 0, "'f'"), -(38266, 0, "':'"), -(38267, 0, "':'"), -(49447, 23, "'Self::use_parents()'"), -(26479, 23, "'Self::use_parents()'"), -(28023, 23, "'Self::use_parents()'"), -(28023, 19, "'N::notifications_used()'"), -(28023, 23, "'Self::use_parents()'"), -(32324, 1, "''"), -(32324, 1, "''"), -(32324, 1, "''"), -(32324, 1, "''"), -(32324, 0, "'c'"), -(32325, 0, "'u'"), -(32326, 0, "'r'"), -(32327, 0, "'s'"), -(32328, 0, "'o'"), -(32329, 0, "'r'"), -(32298, 23, "'Self::use_parents()'"), -(3771, 0, "'// '"), -(3704, 0, "'// '"), -(3628, 0, "'// '"), -(3611, 0, "'// '"), -(3589, 0, "'// '"), -(34004, 0, "' pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n'"), -(34163, 0, "'// '"), -(34316, 0, "'n pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {'"), -(34004, 155, "''"), -(34246, 29, "''"), -(34245, 1, "''"), -(34245, 0, "'i'"), -(34246, 0, "'m'"), -(34247, 0, "'p'"), -(34248, 0, "'l'"), -(34249, 0, "' '"), -(34250, 0, "'F'"), -(34251, 0, "'n'"), -(34252, 0, "'M'"), -(34253, 0, "'u'"), -(34253, 1, "''"), -(34252, 1, "''"), -(34252, 0, "'('"), -(34203, 0, "'<'"), -(34204, 0, "'F'"), -(34205, 0, "'>'"), -(34205, 1, "''"), -(34204, 1, "''"), -(34204, 0, "'Q'"), -(34205, 0, "'>'"), -(34248, 8, "'Q'"), -(34264, 24, "''"), -(34263, 1, "''"), -(34263, 1, "''"), -(34263, 0, "'n '"), -(34268, 0, "'w'"), -(34269, 0, "'h'"), -(34270, 0, "'e'"), -(34271, 0, "'r'"), -(34272, 0, "'e'"), -(34273, 0, "' '"), -(34274, 0, "'fn contains_item(&self, query: &Self::Query) -> Option;'"), -(34274, 0, "'W'"), -(34275, 0, "':'"), -(34276, 0, "' '"), -(34276, 1, "''"), -(34275, 1, "''"), -(34274, 1, "''"), -(34274, 0, "'Q'"), -(34275, 0, "':'"), -(34276, 0, "' '"), -(34277, 16, "'F'"), -(34278, 0, "'n'"), -(34280, 5, "''"), -(34280, 0, "'C'"), -(34281, 0, "':'"), -(34282, 0, "':'"), -(34283, 0, "'I'"), -(34284, 0, "'t'"), -(34285, 0, "'e'"), -(34286, 0, "'m'"), -(34287, 21, "''"), -(34280, 0, "'&'"), -(34280, 0, "'i'"), -(34281, 0, "'t'"), -(34282, 0, "'e'"), -(34283, 0, "'m'"), -(34284, 0, "':'"), -(34285, 0, "' '"), -(34312, 1, "''"), -(34312, 0, "' '"), -(34280, 6, "''"), -(34603, 5, "'p'"), -(34241, 5, "'p'"), -(34600, 0, "'r'"), -(34242, 0, "'r'"), -(34602, 0, "'e'"), -(34243, 0, "'e'"), -(34604, 0, "'d'"), -(34244, 0, "'d'"), -(34606, 0, "'i'"), -(34245, 0, "'i'"), -(34608, 0, "'c'"), -(34246, 0, "'c'"), -(34610, 0, "'a'"), -(34247, 0, "'a'"), -(34612, 0, "'t'"), -(34248, 0, "'t'"), -(34614, 0, "'e'"), -(34249, 0, "'e'"), -(34252, 1, "''"), -(34252, 0, "'P'"), -(34204, 1, "''"), -(34204, 0, "'P'"), -(34278, 1, "''"), -(34278, 0, "'P'"), -(34588, 0, "'p'"), -(34589, 0, "'r'"), -(34590, 0, "'e'"), -(34591, 0, "'d'"), -(34592, 0, "'i'"), -(34593, 0, "'c'"), -(34594, 0, "'a'"), -(34595, 0, "'t'"), -(34596, 0, "'e'"), -(34597, 0, "'('"), -(34602, 0, "')'"), -(34603, 25, "''"), -(3588, 200, "'n'"), -(3588, 1, "''"), -(33804, 158, "''"), -(32094, 0, "')'"), -(32085, 0, "'('"), -(32095, 0, "','"), -(32096, 0, "' '"), -(32097, 0, "'u'"), -(32098, 0, "'s'"), -(32099, 0, "'i'"), -(32100, 0, "'z'"), -(32101, 0, "'e'"), -(33663, 0, "'('"), -(33670, 0, "','"), -(33671, 0, "' '"), -(33672, 0, "'9'"), -(33672, 1, "''"), -(33672, 0, "'0'"), -(33673, 0, "')'"), -(33672, 2, "''"), -(33672, 0, "'9'"), -(33671, 2, "''"), -(33670, 1, "''"), -(33663, 1, "''"), -(32096, 6, "''"), -(32095, 1, "''"), -(32095, 1, "''"), -(32085, 1, "''"), -(33804, 0, "' // pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n'"), -(33804, 158, "''"), -(32094, 0, "')'"), -(32085, 0, "'('"), -(32095, 1, "''"), -(32085, 1, "''"), -(31987, 0, "'n '"), -(31992, 0, "'/'"), -(31993, 0, "'/'"), -(31994, 0, "' '"), -(31994, 1, "''"), -(31994, 0, "'/'"), -(31995, 0, "' '"), -(31996, 0, "'G'"), -(31997, 0, "'e'"), -(31997, 1, "''"), -(31996, 1, "''"), -(31996, 0, "'C'"), -(31997, 0, "'r'"), -(31998, 0, "'e'"), -(31999, 0, "'a'"), -(32000, 0, "'t'"), -(32001, 0, "'e'"), -(32002, 0, "' '"), -(32003, 0, "'a'"), -(32004, 0, "' '"), -(32005, 0, "'c'"), -(32006, 0, "'u'"), -(32007, 0, "'r'"), -(32008, 0, "'s'"), -(32009, 0, "'o'"), -(32010, 0, "'r'"), -(32011, 0, "' '"), -(32012, 0, "'a'"), -(32013, 0, "'t'"), -(32014, 0, "' '"), -(32015, 0, "'t'"), -(32016, 0, "'h'"), -(32017, 0, "'e'"), -(32018, 0, "' '"), -(32019, 0, "'s'"), -(32020, 0, "'p'"), -(32021, 0, "'e'"), -(32022, 0, "'c'"), -(32023, 0, "'i'"), -(32024, 0, "'f'"), -(32025, 0, "'i'"), -(32026, 0, "'e'"), -(32027, 0, "'d'"), -(32028, 0, "' '"), -(32029, 0, "'n'"), -(32030, 0, "'o'"), -(32031, 0, "'d'"), -(32032, 0, "'e'"), -(32033, 0, "','"), -(32034, 0, "' '"), -(32035, 0, "'u'"), -(32036, 0, "'s'"), -(32037, 0, "'i'"), -(32038, 0, "'n'"), -(32039, 0, "'g'"), -(32040, 0, "' '"), -(32041, 0, "'t'"), -(32042, 0, "'h'"), -(32043, 0, "'e'"), -(32044, 0, "' '"), -(32045, 0, "'p'"), -(32046, 0, "'a'"), -(32047, 0, "'r'"), -(32048, 0, "'e'"), -(32049, 0, "'n'"), -(32050, 0, "'t'"), -(32051, 0, "'s'"), -(32052, 0, "' '"), -(32053, 0, "'i'"), -(32054, 0, "'n'"), -(32055, 0, "'f'"), -(32056, 0, "'r'"), -(32057, 0, "'a'"), -(32058, 0, "'s'"), -(32059, 0, "'t'"), -(32060, 0, "'r'"), -(32061, 0, "'u'"), -(32062, 0, "'c'"), -(32063, 0, "'t'"), -(32064, 0, "'u'"), -(32065, 0, "'r'"), -(32066, 0, "'e'"), -(32067, 0, "' '"), -(32068, 0, "'t'"), -(32069, 0, "'o'"), -(32070, 0, "' '"), -(32071, 0, "'c'"), -(32072, 0, "'a'"), -(32073, 0, "'l'"), -(32074, 0, "'c'"), -(32075, 0, "'u'"), -(32076, 0, "'l'"), -(32077, 0, "'a'"), -(32078, 0, "'t'"), -(32079, 0, "'e'"), -(32080, 0, "' '"), -(32081, 0, "'o'"), -(32082, 0, "'f'"), -(32083, 0, "'f'"), -(32084, 0, "'s'"), -(32085, 0, "'e'"), -(32086, 0, "'t'"), -(32087, 0, "'s'"), -(32088, 0, "'.'"), -(32089, 0, "'q'"), -(32089, 1, "''"), -(31988, 101, "' /// Create a cursor at the specified node, using the parents infrastructuren /// to calculate offsets.'"), -(32097, 0, "' '"), -(32098, 0, "'N'"), -(32099, 0, "'o'"), -(32100, 0, "'t'"), -(32101, 0, "'e'"), -(32102, 0, "' '"), -(32103, 0, "'t'"), -(32104, 0, "'h'"), -(32105, 0, "'i'"), -(32106, 0, "'s'"), -(32107, 0, "' '"), -(32108, 0, "'i'"), -(32098, 11, "''"), -(32097, 1, "''"), -(32097, 0, "' '"), -(32098, 0, "'T'"), -(32099, 0, "'e'"), -(32100, 0, "'h'"), -(32101, 0, "' '"), -(32102, 0, "'o'"), -(32102, 1, "''"), -(32101, 1, "''"), -(32100, 1, "''"), -(32099, 1, "''"), -(32099, 0, "'h'"), -(32100, 0, "'e'"), -(32101, 0, "' '"), -(32102, 0, "'o'"), -(32103, 0, "'f'"), -(32104, 0, "'f'"), -(32105, 0, "'s'"), -(32106, 0, "'e'"), -(32107, 0, "'t'"), -(32108, 0, "' '"), -(32109, 0, "'a'"), -(32110, 0, "'n'"), -(32111, 0, "'d'"), -(32112, 0, "' '"), -(32113, 0, "'l'"), -(32114, 0, "'o'"), -(32115, 0, "'c'"), -(32116, 0, "'a'"), -(32117, 0, "'l'"), -(32118, 0, "'_'"), -(32119, 0, "'i'"), -(32120, 0, "'n'"), -(32121, 0, "'d'"), -(32122, 0, "'e'"), -(32123, 0, "'x'"), -(32124, 0, "' '"), -(32125, 0, "'p'"), -(32126, 0, "'a'"), -(32127, 0, "'r'"), -(32128, 0, "'a'"), -(32129, 0, "'m'"), -(32130, 0, "'e'"), -(32131, 0, "'t'"), -(32132, 0, "'e'"), -(32133, 0, "'r'"), -(32134, 0, "'s'"), -(32135, 0, "' '"), -(32136, 0, "'a'"), -(32137, 0, "'r'"), -(32138, 0, "'e'"), -(32139, 0, "' '"), -(32140, 0, "'n'"), -(32141, 0, "'o'"), -(32141, 1, "''"), -(32140, 1, "''"), -(32140, 0, "'u'"), -(32141, 0, "'n'"), -(32142, 0, "'c'"), -(32143, 0, "'k'"), -(32144, 0, "'e'"), -(32145, 0, "'d'"), -(32145, 1, "''"), -(32145, 0, "'c'"), -(32146, 0, "'k'"), -(32140, 7, "'u'"), -(32141, 0, "'n'"), -(32142, 0, "'c'"), -(32143, 0, "'k'"), -(32144, 0, "'e'"), -(32136, 9, "'m'"), -(32137, 0, "'u'"), -(32138, 0, "'s'"), -(32139, 0, "'t'"), -(32140, 0, "' '"), -(32141, 0, "'s'"), -(32142, 0, "'p'"), -(32143, 0, "'e'"), -(32144, 0, "'c'"), -(32136, 9, "'s'"), -(32137, 0, "'h'"), -(32138, 0, "'o'"), -(32139, 0, "'u'"), -(32140, 0, "'l'"), -(32141, 0, "'d'"), -(32142, 0, "' '"), -(32143, 0, "'s'"), -(32144, 0, "'p'"), -(32145, 0, "'e'"), -(32146, 0, "'c'"), -(32147, 0, "'i'"), -(32148, 0, "'f'"), -(32149, 0, "'y'"), -(32150, 0, "' '"), -(32151, 0, "'t'"), -(32152, 0, "'h'"), -(32153, 0, "'e'"), -(32154, 0, "' '"), -(32155, 0, "'o'"), -(32156, 0, "'f'"), -(32157, 0, "'f'"), -(32158, 0, "'s'"), -(32159, 0, "'e'"), -(32160, 0, "'t'"), -(32161, 0, "' '"), -(32162, 0, "'i'"), -(32163, 0, "'n'"), -(32164, 0, "'t'"), -(32165, 0, "'o'"), -(32166, 0, "' '"), -(32167, 0, "'t'"), -(32168, 0, "'h'"), -(32169, 0, "'e'"), -(32170, 0, "' '"), -(32171, 0, "'c'"), -(32172, 0, "'u'"), -(32173, 0, "'r'"), -(32174, 0, "'r'"), -(32175, 0, "'e'"), -(32176, 0, "'n'"), -(32177, 0, "'t'"), -(32178, 0, "' '"), -(32179, 0, "'n'"), -(32180, 0, "'o'"), -(32181, 0, "'d'"), -(32182, 0, "'e'"), -(32183, 0, "'.'"), -(32184, 0, "' '"), -(32185, 0, "'T'"), -(32186, 0, "'h'"), -(32187, 0, "'e'"), -(32188, 0, "' '"), -(32185, 4, "''"), -(32185, 0, "'O'"), -(32186, 0, "'f'"), -(32187, 0, "'f'"), -(32188, 0, "'s'"), -(32189, 0, "'e'"), -(32190, 0, "'t'"), -(32191, 0, "' '"), -(32192, 0, "'m'"), -(32193, 0, "'u'"), -(32193, 1, "''"), -(32192, 1, "''"), -(32192, 0, "'*'"), -(32193, 0, "'m'"), -(32194, 0, "'u'"), -(32195, 0, "'s'"), -(32196, 0, "'t'"), -(32197, 0, "'*'"), -(32198, 0, "' '"), -(32199, 0, "'b'"), -(32200, 0, "'e'"), -(32201, 0, "' '"), -(32202, 0, "'s'"), -(32203, 0, "'p'"), -(32204, 0, "'e'"), -(32205, 0, "'c'"), -(32206, 0, "'i'"), -(32207, 0, "'f'"), -(32208, 0, "'i'"), -(32209, 0, "'e'"), -(32210, 0, "'d'"), -(32202, 9, "'a'"), -(32203, 0, "'t'"), -(32204, 0, "' '"), -(32205, 0, "'a'"), -(32206, 0, "' '"), -(32206, 1, "''"), -(32206, 0, "'n'"), -(32207, 0, "' '"), -(32208, 0, "'i'"), -(32209, 0, "'t'"), -(32210, 0, "'e'"), -(32211, 0, "'m'"), -(32212, 0, "' '"), -(32213, 0, "'b'"), -(32214, 0, "'o'"), -(32215, 0, "'u'"), -(32216, 0, "'n'"), -(32217, 0, "'d'"), -(32218, 0, "'a'"), -(32219, 0, "'r'"), -(32220, 0, "'y'"), -(32184, 0, "' '"), -(32185, 0, "'T'"), -(32186, 0, "'h'"), -(32187, 0, "'e'"), -(32188, 0, "'y'"), -(32189, 0, "' '"), -(32190, 0, "'a'"), -(32191, 0, "'r'"), -(32192, 0, "'e'"), -(32193, 0, "' '"), -(32194, 0, "'a'"), -(32195, 0, "'c'"), -(32196, 0, "'c'"), -(32197, 0, "'e'"), -(32198, 0, "'p'"), -(32199, 0, "'t'"), -(32200, 0, "'e'"), -(32201, 0, "'d'"), -(32202, 0, "' '"), -(32203, 0, "'a'"), -(32204, 0, "'s'"), -(32205, 0, "'-'"), -(32206, 0, "'i'"), -(32207, 0, "'s'"), -(32208, 0, "'.'"), -(32068, 178, "' /// to calculate offsets. The offset and local_index parameters shouldn /// specify the offset into the current node. They are accepted as-is.n /// Offset *must* be at an item boundary'"), -(34398, 0, "'n '"), -(34407, 0, "'l'"), -(34408, 0, "'e'"), -(34409, 0, "'t'"), -(34410, 0, "' '"), -(34411, 0, "'m'"), -(34412, 0, "'u'"), -(34413, 0, "'t'"), -(34414, 0, "' '"), -(34415, 0, "'i'"), -(34416, 0, "'t'"), -(34417, 0, "'e'"), -(34418, 0, "'m'"), -(34419, 0, "'_'"), -(34420, 0, "'o'"), -(34421, 0, "'f'"), -(34422, 0, "'f'"), -(34423, 0, "'s'"), -(34424, 0, "'e'"), -(34425, 0, "'t'"), -(34426, 0, "' '"), -(34427, 0, "'='"), -(34428, 0, "' '"), -(34429, 0, "'0'"), -(34430, 0, "';'"), -(34429, 1, "''"), -(34428, 1, "''"), -(34427, 1, "''"), -(34426, 1, "''"), -(34426, 0, "' = 0'"), -(34534, 0, "'_'"), -(34573, 0, "'// '"), -(34598, 0, "'n '"), -(34615, 0, "'i'"), -(34616, 0, "'t'"), -(34617, 0, "'e'"), -(34618, 0, "'m'"), -(34619, 0, "'_'"), -(34620, 0, "'o'"), -(34615, 6, "'item_offset'"), -(34626, 0, "' '"), -(34627, 0, "'='"), -(34628, 0, "' '"), -(34629, 0, "'i'"), -(34630, 0, "'t'"), -(34631, 0, "'e'"), -(34632, 0, "'m'"), -(34629, 4, "'item_offset_'"), -(34641, 0, "';'"), -(34897, 0, "'('"), -(34941, 0, "','"), -(34942, 0, "' '"), -(34943, 0, "'i'"), -(34944, 0, "'t'"), -(34945, 0, "'e'"), -(34946, 0, "'m'"), -(34947, 0, "'_'"), -(34943, 5, "'item_offset'"), -(34954, 0, "')'"), -(34175, 0, "'('"), -(34185, 0, "','"), -(34186, 0, "' '"), -(34187, 0, "'u'"), -(34188, 0, "'s'"), -(34189, 0, "'i'"), -(34190, 0, "'z'"), -(34191, 0, "'e'"), -(34192, 0, "')'"), -(34175, 0, "'O'"), -(34176, 0, "'p'"), -(34177, 0, "'t'"), -(34178, 0, "'i'"), -(34179, 0, "'o'"), -(34180, 0, "'n'"), -(34181, 0, "'<'"), -(34200, 0, "'>'"), -(34816, 0, "'n '"), -(34825, 0, "'i'"), -(34826, 0, "'f'"), -(34827, 0, "' '"), -(34817, 11, "''"), -(34816, 1, "''"), -(34825, 0, "'// '"), -(34816, 0, "'n '"), -(34825, 0, "'m'"), -(34825, 1, "''"), -(34825, 0, "'i'"), -(34826, 0, "'f'"), -(34827, 0, "' '"), -(34828, 0, "'l'"), -(34829, 0, "'e'"), -(34830, 0, "'t'"), -(34831, 0, "' '"), -(34832, 0, "'l'"), -(34833, 0, "'o'"), -(34834, 0, "'c'"), -(34835, 0, "'a'"), -(34832, 4, "'local_index'"), -(34843, 0, "' '"), -(34844, 0, "' '"), -(34844, 1, "''"), -(34844, 0, "'='"), -(34845, 0, "' '"), -(34846, 0, "'l'"), -(34847, 0, "'o'"), -(34848, 0, "'c'"), -(34849, 0, "'a'"), -(34850, 0, "'l'"), -(34846, 5, "'local_index'"), -(34857, 0, "' '"), -(34858, 0, "'{'"), -(35018, 0, "'n // let local_index = local_index.expect('Invalid marker - item not found in node');'"), -(34952, 8, "' '"), -(34860, 92, "''"), -(34930, 0, "'n '"), -(34931, 12, "' }'"), -(34940, 0, "' '"), -(34941, 0, "'e'"), -(34942, 0, "'l'"), -(34943, 0, "'s'"), -(34944, 0, "'e'"), -(34945, 0, "' '"), -(34946, 0, "'{'"), -(34947, 0, "' '"), -(34948, 0, "'N'"), -(34949, 0, "'o'"), -(34950, 0, "'n'"), -(34951, 0, "'e'"), -(34952, 0, "' '"), -(34953, 0, "'}'"), -(34832, 0, "'S'"), -(34833, 0, "'o'"), -(34834, 0, "'m'"), -(34835, 0, "'e'"), -(34836, 0, "'('"), -(34848, 0, "')'"), -(34878, 0, "'C'"), -(34879, 0, "'o'"), -(34880, 0, "'m'"), -(34881, 0, "'e'"), -(34881, 1, "''"), -(34880, 1, "''"), -(34879, 1, "''"), -(34878, 1, "''"), -(34878, 0, "'S'"), -(34879, 0, "'o'"), -(34880, 0, "'m'"), -(34881, 0, "'e'"), -(34882, 0, "'('"), -(34941, 0, "')'"), -(34816, 0, "'n '"), -(34825, 0, "'l'"), -(34826, 0, "'o'"), -(34827, 0, "'c'"), -(34828, 0, "'a'"), -(34825, 4, "'local_index'"), -(34836, 0, "'.'"), -(34837, 0, "'m'"), -(34838, 0, "'a'"), -(34837, 2, "'map(f: F)'"), -(34841, 5, "''"), -(34841, 0, "'l'"), -(34841, 1, "''"), -(34841, 0, "''"), -(34841, 1, "''"), -(34841, 0, "'|'"), -(34842, 0, "'l'"), -(34843, 0, "'o'"), -(34844, 0, "'c'"), -(34845, 0, "'a'"), -(34846, 0, "'l'"), -(34842, 5, "'local_index'"), -(34853, 0, "'|'"), -(34855, 66, "''"), -(34854, 1, "''"), -(34854, 0, "'n '"), -(34854, 0, "'{'"), -(34854, 1, "''"), -(34854, 0, "' '"), -(34855, 0, "'{'"), -(34928, 0, "'n '"), -(34929, 12, "' }'"), -(34938, 0, "')'"), -(34927, 1, "''"), -(34939, 116, "''"), -(34939, 0, "' } else { None }n // let local_index = local_index.expect('Invalid marker - item not found in node');n'"), -(34939, 24, "''"), -(34939, 92, "''"), -(55306, 1, "''"), -(55305, 1, "''"), -(10576, 8, "''"), -(32654, 13, "''"), -(58218, 229, "''"), -(57449, 0, "'nimpl> fmt::Debug for SkipList where C::Item: fmt::Debug {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_list().entries(self.iter()).finish()n }n}n'"), -(57450, 0, "'impl> fmt::Debug for SkipList where C::Item: fmt::Debug {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_list().entries(self.iter()).finish()n }n}n'"), -(57678, 0, "'n'"), -(57725, 10, "'D'"), -(57726, 0, "'e'"), -(57727, 0, "'f'"), -(57728, 0, "'a'"), -(57729, 0, "'u'"), -(57730, 0, "'l'"), -(57731, 0, "'t'"), -(57751, 26, "''"), -(57761, 3, "'d'"), -(57762, 0, "'e'"), -(57763, 0, "'f'"), -(57764, 0, "'a'"), -(57765, 0, "'u'"), -(57766, 0, "'l'"), -(57767, 0, "'t'"), -(57807, 11, "'S'"), -(57808, 0, "'e'"), -(57809, 0, "'l'"), -(57810, 0, "'f'"), -(57769, 33, "''"), -(57789, 44, "''"), -(57789, 0, "'S'"), -(57790, 0, "'k'"), -(57789, 2, "'SkipList'"), -(57797, 0, "':'"), -(57798, 0, "':'"), -(57799, 0, "'n'"), -(57800, 0, "'e'"), -(57801, 0, "'w'"), -(57802, 0, "'('"), -(57803, 0, "')'"), -(56481, 7, "''"), -(56497, 1, "''"), -(18854, 0, "'// '"), -(18844, 0, "'// '"), -(18789, 0, "'// '"), -(18736, 0, "'// '"), -(18719, 0, "'// '"), -(18651, 0, "'// '"), -(18601, 0, "'// '"), -(18545, 0, "'// '"), -(18503, 0, "'// '"), -(18417, 0, "'// '"), -(57729, 7, "'y'"), -(57500, 7, "'y'"), -(57148, 7, "'y'"), -(56565, 7, "'y'"), -(56020, 7, "'y'"), -(22665, 7, "'y'"), -(21233, 7, "'y'"), -(20443, 7, "'y'"), -(20238, 7, "'y'"), -(7663, 7, "'y'"), -(3439, 7, "'y'"), -(3155, 7, "'y'"), -(2409, 10, "''"), -(2409, 0, "'ListConfig'"), -(2409, 10, "'L'"), -(2410, 0, "'i'"), -(2411, 0, "'s'"), -(2412, 0, "'t'"), -(2413, 0, "'I'"), -(2414, 0, "'t'"), -(2415, 0, "'e'"), -(2416, 0, "'m'"), -(2420, 14, "''"), -(2419, 1, "''"), -(2325, 73, "''"), -(2324, 1, "''"), -(2346, 36, "''"), -(2618, 7, "''"), -(2623, 6, "''"), -(2619, 4, "'s'"), -(2620, 0, "'e'"), -(2621, 0, "'l'"), -(2622, 0, "'f'"), -(2678, 6, "''"), -(2826, 6, "''"), -(2814, 7, "''"), -(2249, 1, "''"), -(2054, 1, "''"), -(2009, 1, "''"), -(1892, 1, "''"), -(1846, 1, "''"), -(1760, 1, "''"), -(1621, 1, "''"), -(2242, 1, "''"), -(2048, 1, "''"), -(2004, 1, "''"), -(1888, 1, "''"), -(1843, 1, "''"), -(1758, 1, "''"), -(1620, 1, "''"), -(2235, 1, "''"), -(2042, 1, "''"), -(1999, 1, "''"), -(1884, 1, "''"), -(1840, 1, "''"), -(1756, 1, "''"), -(1619, 1, "''"), -(2228, 1, "''"), -(2036, 1, "''"), -(1994, 1, "''"), -(1880, 1, "''"), -(1837, 1, "''"), -(1754, 1, "''"), -(1618, 1, "''"), -(2221, 1, "''"), -(2030, 1, "''"), -(1989, 1, "''"), -(1876, 1, "''"), -(1834, 1, "''"), -(1752, 1, "''"), -(1617, 1, "''"), -(2214, 1, "''"), -(2024, 1, "''"), -(1984, 1, "''"), -(1872, 1, "''"), -(1831, 1, "''"), -(1750, 1, "''"), -(1616, 1, "''"), -(2208, 0, "'I'"), -(2019, 0, "'I'"), -(1980, 0, "'I'"), -(1869, 0, "'I'"), -(1829, 0, "'I'"), -(1749, 0, "'I'"), -(1616, 0, "'I'"), -(2215, 0, "'t'"), -(2025, 0, "'t'"), -(1985, 0, "'t'"), -(1873, 0, "'t'"), -(1832, 0, "'t'"), -(1751, 0, "'t'"), -(1617, 0, "'t'"), -(2222, 0, "'e'"), -(2031, 0, "'e'"), -(1990, 0, "'e'"), -(1877, 0, "'e'"), -(1835, 0, "'e'"), -(1753, 0, "'e'"), -(1618, 0, "'e'"), -(2229, 0, "'m'"), -(2037, 0, "'m'"), -(1995, 0, "'m'"), -(1881, 0, "'m'"), -(1838, 0, "'m'"), -(1755, 0, "'m'"), -(1619, 0, "'m'"), -(2225, 1, "''"), -(2032, 1, "''"), -(1989, 1, "''"), -(1874, 1, "''"), -(1830, 1, "''"), -(1746, 1, "''"), -(1609, 1, "''"), -(2219, 0, "'I'"), -(2027, 0, "'I'"), -(1985, 0, "'I'"), -(1871, 0, "'I'"), -(1828, 0, "'I'"), -(1745, 0, "'I'"), -(1609, 0, "'I'"), -(1654, 1, "''"), -(1654, 0, "'I'"), -(1780, 1, "''"), -(1780, 0, "'I'"), -(1863, 1, "''"), -(1863, 0, "'I'"), -(1913, 1, "''"), -(1912, 1, "''"), -(1912, 0, "'I'"), -(1913, 0, "'>'"), -(2020, 1, "''"), -(2020, 0, "'I'"), -(2261, 1, "''"), -(2093, 1, "''"), -(2056, 1, "''"), -(2259, 0, "'I'"), -(2092, 0, "'I'"), -(2056, 0, "'I'"), -(4117, 13, "'I'"), -(4031, 13, "'I'"), -(3986, 13, "'I'"), -(3556, 13, "'I'"), -(3240, 13, "'I'"), -(2990, 13, "'I'"), -(4058, 0, "':'"), -(3984, 0, "':'"), -(3951, 0, "':'"), -(3533, 0, "':'"), -(3229, 0, "':'"), -(2991, 0, "':'"), -(4064, 0, "' '"), -(3989, 0, "' '"), -(3955, 0, "' '"), -(3536, 0, "' '"), -(3231, 0, "' '"), -(2992, 0, "' '"), -(4070, 0, "'L'"), -(3994, 0, "'L'"), -(3959, 0, "'L'"), -(3539, 0, "'L'"), -(3233, 0, "'L'"), -(2993, 0, "'L'"), -(4076, 0, "'i'"), -(3999, 0, "'i'"), -(3963, 0, "'i'"), -(3542, 0, "'i'"), -(3235, 0, "'i'"), -(2994, 0, "'i'"), -(4082, 0, "'s'"), -(4004, 0, "'s'"), -(3967, 0, "'s'"), -(3545, 0, "'s'"), -(3237, 0, "'s'"), -(2995, 0, "'s'"), -(4088, 0, "'t'"), -(4009, 0, "'t'"), -(3971, 0, "'t'"), -(3548, 0, "'t'"), -(3239, 0, "'t'"), -(2996, 0, "'t'"), -(4094, 0, "'I'"), -(4014, 0, "'I'"), -(3975, 0, "'I'"), -(3551, 0, "'I'"), -(3241, 0, "'I'"), -(2997, 0, "'I'"), -(4100, 0, "'t'"), -(4019, 0, "'t'"), -(3979, 0, "'t'"), -(3554, 0, "'t'"), -(3243, 0, "'t'"), -(2998, 0, "'t'"), -(4106, 0, "'e'"), -(4024, 0, "'e'"), -(3983, 0, "'e'"), -(3557, 0, "'e'"), -(3245, 0, "'e'"), -(2999, 0, "'e'"), -(4112, 0, "'m'"), -(4029, 0, "'m'"), -(3987, 0, "'m'"), -(3560, 0, "'m'"), -(3247, 0, "'m'"), -(3000, 0, "'m'"), -(3357, 7, "'L'"), -(3193, 7, "'L'"), -(3352, 0, "'i'"), -(3194, 0, "'i'"), -(3354, 0, "'s'"), -(3195, 0, "'s'"), -(3356, 0, "'t'"), -(3196, 0, "'t'"), -(3358, 0, "'I'"), -(3197, 0, "'I'"), -(3360, 0, "'t'"), -(3198, 0, "'t'"), -(3362, 0, "'e'"), -(3199, 0, "'e'"), -(3364, 0, "'m'"), -(3200, 0, "'m'"), -(3226, 1, "''"), -(3226, 0, "'I'"), -(3392, 1, "''"), -(3392, 0, "'I'"), -(3358, 8, "'I'"), -(3193, 8, "'I'"), -(3258, 1, "''"), -(3258, 0, "'I'"), -(3610, 1, "''"), -(3610, 0, "'I'"), -(4118, 1, "''"), -(4044, 1, "''"), -(4000, 1, "''"), -(4116, 0, "'I'"), -(4043, 0, "'I'"), -(4000, 0, "'I'"), -(5363, 13, "'I'"), -(5364, 0, "'L'"), -(5364, 1, "''"), -(5364, 0, "':'"), -(5365, 0, "' '"), -(5366, 0, "'L'"), -(5367, 0, "'i'"), -(5368, 0, "'s'"), -(5369, 0, "'t'"), -(5370, 0, "'I'"), -(5366, 5, "'ListItem'"), -(5815, 7, "'I'"), -(6363, 1, "''"), -(6363, 0, "'I'"), -(6651, 1, "''"), -(6651, 0, "'I'"), -(7032, 0, "'// '"), -(6975, 0, "'// '"), -(6969, 0, "'// '"), -(6910, 0, "'// '"), -(6886, 0, "'// '"), -(6849, 0, "'// '"), -(6826, 0, "'// '"), -(6821, 0, "'n '"), -(6826, 0, "'s'"), -(6827, 0, "'t'"), -(6828, 0, "'r'"), -(6829, 0, "'u'"), -(6830, 0, "'c'"), -(6831, 0, "'t'"), -(6832, 0, "' '"), -(6833, 0, "'I'"), -(6834, 0, "'t'"), -(6835, 0, "'e'"), -(6836, 0, "'m'"), -(6837, 0, "'('"), -(6838, 0, "'u'"), -(6839, 0, "'8'"), -(6840, 0, "')'"), -(6841, 0, "';'"), -(7002, 3, "''"), -(6940, 3, "''"), -(6913, 3, "''"), -(6873, 3, "''"), -(6843, 25, "''"), -(6842, 1, "''"), -(6852, 10, "'L'"), -(6853, 0, "'i'"), -(6854, 0, "'s'"), -(6855, 0, "'t'"), -(6856, 0, "'I'"), -(6857, 0, "'t'"), -(6858, 0, "'e'"), -(6859, 0, "'m'"), -(6865, 10, "'I'"), -(6866, 0, "'t'"), -(6867, 0, "'e'"), -(6868, 0, "'m'"), -(6872, 23, "''"), -(6871, 1, "''"), -(7087, 3, "''"), -(7001, 3, "''"), -(6941, 3, "''"), -(6976, 10, "'I'"), -(6977, 0, "'t'"), -(6978, 0, "'e'"), -(6979, 0, "'m'"), -(7054, 10, "'I'"), -(7055, 0, "'t'"), -(7056, 0, "'e'"), -(7057, 0, "'m'"), -(7069, 0, "'// '"), -(7380, 10, "'L'"), -(7381, 0, "'i'"), -(7382, 0, "'s'"), -(7383, 0, "'t'"), -(7380, 4, "'ListItem'"), -(7377, 1, "''"), -(7377, 0, "'I'"), -(8693, 1, "''"), -(8693, 0, "'I'"), -(9206, 1, "''"), -(9206, 0, "'I'"), -(9262, 13, "'I'"), -(9263, 0, "':'"), -(9264, 0, "' '"), -(9264, 1, "''"), -(9264, 0, "' '"), -(9265, 0, "'I'"), -(9265, 1, "''"), -(9265, 0, "'L'"), -(9266, 0, "'i'"), -(9267, 0, "'s'"), -(9268, 0, "'t'"), -(9269, 0, "'I'"), -(9265, 5, "'ListItem'"), -(9280, 1, "''"), -(9280, 0, "'I'"), -(9436, 1, "''"), -(9436, 0, "'I'"), -(11466, 1, "''"), -(11240, 1, "''"), -(11123, 1, "''"), -(10679, 1, "''"), -(10583, 1, "''"), -(10172, 1, "''"), -(10016, 1, "''"), -(9943, 1, "''"), -(9883, 1, "''"), -(9850, 1, "''"), -(9605, 1, "''"), -(11456, 0, "'I'"), -(11231, 0, "'I'"), -(11115, 0, "'I'"), -(10672, 0, "'I'"), -(10577, 0, "'I'"), -(10167, 0, "'I'"), -(10012, 0, "'I'"), -(9940, 0, "'I'"), -(9881, 0, "'I'"), -(9849, 0, "'I'"), -(9605, 0, "'I'"), -(7406, 1, "''"), -(7406, 0, "'I'"), -(10885, 7, "'I'"), -(11905, 13, "'I'"), -(11859, 13, "'I'"), -(11516, 13, "'I'"), -(11882, 0, "':'"), -(11848, 0, "':'"), -(11517, 0, "':'"), -(11885, 0, "' '"), -(11850, 0, "' '"), -(11518, 0, "' '"), -(11888, 0, "'L'"), -(11852, 0, "'L'"), -(11519, 0, "'L'"), -(11891, 0, "'i'"), -(11854, 0, "'i'"), -(11520, 0, "'i'"), -(11894, 0, "'s'"), -(11856, 0, "'s'"), -(11521, 0, "'s'"), -(11897, 0, "'t'"), -(11858, 0, "'t'"), -(11522, 0, "'t'"), -(11900, 0, "'I'"), -(11860, 0, "'I'"), -(11523, 0, "'I'"), -(11898, 5, "'ListItem'"), -(11857, 5, "'ListItem'"), -(11519, 5, "'ListItem'"), -(11543, 1, "''"), -(11543, 0, "'I'"), -(12017, 1, "''"), -(11970, 1, "''"), -(11886, 1, "''"), -(12015, 0, "'I'"), -(11969, 0, "'I'"), -(11886, 0, "'I'"), -(11940, 1, "''"), -(11940, 0, "'I'"), -(13016, 2, "'I'"), -(13017, 11, "':'"), -(13018, 0, "' '"), -(13019, 0, "'L'"), -(13020, 0, "'i'"), -(13021, 0, "'s'"), -(13022, 0, "'t'"), -(13023, 0, "'I'"), -(13019, 5, "'ListItem'"), -(13749, 1, "'I'"), -(14054, 13, "'I'"), -(14055, 0, "'L'"), -(14055, 1, "''"), -(14055, 0, "':'"), -(14056, 0, "' '"), -(14057, 0, "'L'"), -(14058, 0, "'i'"), -(14059, 0, "'s'"), -(14060, 0, "'t'"), -(14057, 4, "'ListItem'"), -(14074, 1, "''"), -(14074, 0, "'I'"), -(14804, 1, "'I'"), -(15969, 15, "''"), -(15969, 1, "''"), -(16008, 1, "''"), -(16007, 1, "''"), -(16006, 1, "''"), -(15997, 0, "' '"), -(15998, 0, "'}'"), -(16008, 0, "'.'"), -(16009, 0, "'g'"), -(16010, 0, "'e'"), -(16011, 0, "'t'"), -(16012, 0, "'_'"), -(16013, 0, "'u'"), -(16014, 0, "'s'"), -(16015, 0, "'e'"), -(16016, 0, "'r'"), -(16009, 8, "'get_usersize'"), -(16021, 0, "'('"), -(16022, 0, "')'"), -(17769, 7, "'I'"), -(17476, 7, "'I'"), -(17052, 7, "'I'"), -(16626, 7, "'I'"), -(18672, 1, "'I'"), -(19448, 13, "'I'"), -(19407, 13, "'I'"), -(18720, 13, "'I'"), -(19425, 0, "':'"), -(19396, 0, "':'"), -(18721, 0, "':'"), -(19428, 0, "'L'"), -(19398, 0, "'L'"), -(18722, 0, "'L'"), -(19431, 0, "'i'"), -(19400, 0, "'i'"), -(18723, 0, "'i'"), -(19434, 0, "'s'"), -(19402, 0, "'s'"), -(18724, 0, "'s'"), -(19437, 0, "'t'"), -(19404, 0, "'t'"), -(18725, 0, "'t'"), -(19440, 0, "'I'"), -(19406, 0, "'I'"), -(18726, 0, "'I'"), -(19438, 5, "'ListItem'"), -(19403, 5, "'ListItem'"), -(18722, 5, "'ListItem'"), -(19444, 0, "' '"), -(19406, 0, "' '"), -(18722, 0, "' '"), -(20124, 1, "''"), -(19925, 1, "''"), -(19479, 1, "''"), -(19432, 1, "''"), -(18754, 1, "''"), -(20120, 0, "'I'"), -(19922, 0, "'I'"), -(19477, 0, "'I'"), -(19431, 0, "'I'"), -(18754, 0, "'I'"), -(20877, 13, "'I'"), -(20093, 13, "'I'"), -(19894, 13, "'I'"), -(20854, 0, "'L'"), -(20082, 0, "'L'"), -(19895, 0, "'L'"), -(20856, 1, "''"), -(20083, 1, "''"), -(19895, 1, "''"), -(20854, 0, "':'"), -(20082, 0, "':'"), -(19895, 0, "':'"), -(20857, 0, "' '"), -(20084, 0, "' '"), -(19896, 0, "' '"), -(20860, 0, "'L'"), -(20086, 0, "'L'"), -(19897, 0, "'L'"), -(20863, 0, "'i'"), -(20088, 0, "'i'"), -(19898, 0, "'i'"), -(20866, 0, "'s'"), -(20090, 0, "'s'"), -(19899, 0, "'s'"), -(20869, 0, "'t'"), -(20092, 0, "'t'"), -(19900, 0, "'t'"), -(20872, 0, "'I'"), -(20094, 0, "'I'"), -(19901, 0, "'I'"), -(20870, 5, "'ListItem'"), -(20091, 5, "'ListItem'"), -(19897, 5, "'ListItem'"), -(20963, 7, "'I'"), -(20664, 7, "'I'"), -(20602, 7, "'I'"), -(20025, 7, "'I'"), -(20001, 7, "'I'"), -(20060, 1, "''"), -(20060, 0, "'I'"), -(20132, 1, "''"), -(20132, 0, "'I'"), -(20878, 1, "'I'"), -(20915, 1, "''"), -(20915, 0, "'I'"), -(21389, 7, "'I'"), -(22261, 13, "'I: ListItem'"), -(22290, 1, "''"), -(22290, 0, "'I'"), -(22303, 1, "''"), -(22303, 0, "'I'"), -(22357, 1, "''"), -(22357, 0, "'I'"), -(24917, 1, "''"), -(24114, 1, "''"), -(23934, 1, "''"), -(23632, 1, "''"), -(23554, 1, "''"), -(24913, 0, "'I'"), -(24111, 0, "'I'"), -(23932, 0, "'I'"), -(23631, 0, "'I'"), -(23554, 0, "'I'"), -(25809, 1, "''"), -(25809, 0, "'I'"), -(29321, 1, "'I'"), -(30812, 1, "''"), -(29418, 1, "''"), -(30811, 0, "'I'"), -(29418, 0, "'I'"), -(31351, 1, "'I'"), -(31351, 16, "''"), -(31388, 1, "''"), -(31388, 0, "'.'"), -(31389, 0, "'g'"), -(31390, 0, "'e'"), -(31391, 0, "'t'"), -(31392, 0, "'_'"), -(31393, 0, "'u'"), -(31394, 0, "'s'"), -(31389, 6, "'get_usersize'"), -(31401, 0, "'('"), -(31402, 0, "')'"), -(31360, 1, "''"), -(31997, 1, "''"), -(31944, 1, "''"), -(31996, 0, "'I'"), -(31944, 0, "'I'"), -(31997, 1, "''"), -(31944, 1, "''"), -(31996, 0, "'C'"), -(31944, 0, "'C'"), -(35012, 1, "''"), -(34882, 1, "''"), -(33807, 1, "''"), -(33771, 1, "''"), -(32138, 1, "''"), -(31997, 1, "''"), -(31944, 1, "''"), -(35006, 0, "'I'"), -(34877, 0, "'I'"), -(33803, 0, "'I'"), -(33768, 0, "'I'"), -(32136, 0, "'I'"), -(31996, 0, "'I'"), -(31944, 0, "'I'"), -(33836, 7, "'I'"), -(34380, 16, "''"), -(34384, 1, "''"), -(34384, 0, "'.'"), -(34385, 0, "'g'"), -(34386, 0, "'e'"), -(34387, 0, "'t'"), -(34388, 0, "'_'"), -(34389, 0, "'u'"), -(34390, 0, "'s'"), -(34391, 0, "'e'"), -(34392, 0, "'r'"), -(34385, 8, "'get_usersize'"), -(34397, 0, "'('"), -(34398, 0, "')'"), -(34971, 0, "'t'"), -(34972, 0, "'e'"), -(34973, 0, "'r'"), -(35101, 0, "'t'"), -(35102, 0, "'e'"), -(35103, 0, "'r'"), -(35120, 7, "'I'"), -(35655, 7, "'I'"), -(35757, 1, "''"), -(35757, 0, "'I'"), -(38936, 0, "'t'"), -(38937, 0, "'e'"), -(38938, 0, "'r'"), -(38972, 1, "''"), -(38972, 0, "'I'"), -(39029, 0, "'t'"), -(39030, 0, "'e'"), -(39031, 0, "'r'"), -(39057, 7, "'I'"), -(41720, 1, "''"), -(41720, 0, "'I'"), -(45343, 1, "''"), -(45343, 0, "'I'"), -(46058, 1, "'I'"), -(47505, 7, "'I'"), -(47726, 1, "'I'"), -(51262, 0, "'t'"), -(51263, 0, "'e'"), -(51264, 0, "'r'"), -(51352, 0, "'t'"), -(51353, 0, "'e'"), -(51354, 0, "'r'"), -(51392, 0, "'t'"), -(51393, 0, "'e'"), -(51394, 0, "'r'"), -(51420, 7, "'I'"), -(51298, 1, "''"), -(51298, 0, "'I'"), -(52387, 1, "'I'"), -(52816, 1, "'I'"), -(54183, 1, "'I'"), -(54197, 7, "'I'"), -(54629, 7, "'I'"), -(55576, 13, "'I::get_usersize('"), -(55576, 16, "'C: ListConfig'"), -(55576, 13, "'I'"), -(55577, 0, "':'"), -(55578, 0, "' '"), -(55579, 0, "'L'"), -(55580, 0, "'i'"), -(55581, 0, "'s'"), -(55582, 0, "'t'"), -(55583, 0, "'I'"), -(55579, 5, "'ListItem'"), -(56554, 1, "''"), -(56144, 1, "''"), -(55605, 1, "''"), -(56552, 0, "'I'"), -(56143, 0, "'I'"), -(55605, 0, "'I'"), -(55618, 1, "''"), -(55618, 0, "'I'"), -(55630, 7, "'I'"), -(56845, 7, "'I'"), -(56805, 7, "'I'"), -(56764, 7, "'I'"), -(56728, 7, "'I'"), -(56583, 7, "'I'"), -(55680, 7, "'I'"), -(56101, 13, "'I: ListItem'"), -(56152, 1, "''"), -(56152, 0, "'I'"), -(56504, 13, "'I: ListItem'"), -(56611, 1, "''"), -(56611, 0, "'I'"), -(56611, 1, "''"), -(56611, 0, "'C'"), -(56504, 11, "'C: ListConfig'"), -(56152, 1, "''"), -(56152, 0, "'I'"), -(56504, 13, "'I: ListItem'"), -(56611, 1, "''"), -(56611, 0, "'I'"), -(56502, 0, "'t'"), -(56503, 0, "'e'"), -(56504, 0, "'r'"), -(56551, 0, "'t'"), -(56552, 0, "'e'"), -(56553, 0, "'r'"), -(56603, 0, "'t'"), -(56604, 0, "'e'"), -(56605, 0, "'r'"), -(56677, 13, "'I: ListItem'"), -(56737, 1, "''"), -(56737, 0, "'I'"), -(56706, 1, "''"), -(56706, 0, "'I'"), -(57496, 13, "'I: ListItem'"), -(57373, 13, "'I: ListItem'"), -(57220, 13, "'I: ListItem'"), -(56997, 13, "'I: ListItem'"), -(57410, 1, "''"), -(57247, 1, "''"), -(57026, 1, "''"), -(57408, 0, "'I'"), -(57246, 0, "'I'"), -(57026, 0, "'I'"), -(57272, 1, "''"), -(57054, 1, "''"), -(57271, 0, "'I'"), -(57054, 0, "'I'"), -(57558, 7, "'I'"), -(57066, 7, "'I'"), -(57527, 1, "'I'"), -(2839, 6, "''"), -(2827, 6, "''"), -(6884, 18, "'&'"), -(6885, 0, "'s'"), -(6886, 0, "'e'"), -(6887, 0, "'l'"), -(6888, 0, "'f'"), -(57459, 1, "''"), -(57338, 1, "''"), -(57187, 1, "''"), -(56972, 1, "''"), -(56652, 1, "''"), -(56482, 1, "''"), -(56076, 1, "''"), -(55551, 1, "''"), -(22236, 1, "''"), -(20824, 1, "''"), -(20054, 1, "''"), -(19869, 1, "''"), -(19419, 1, "''"), -(19380, 1, "''"), -(18695, 1, "''"), -(14029, 1, "''"), -(12991, 1, "''"), -(11876, 1, "''"), -(11832, 1, "''"), -(11491, 1, "''"), -(9237, 1, "''"), -(7352, 1, "''"), -(5351, 1, "''"), -(4083, 1, "''"), -(3999, 1, "''"), -(3956, 1, "''"), -(3528, 1, "''"), -(3220, 1, "''"), -(2978, 1, "''"), -(2225, 1, "''"), -(2032, 1, "''"), -(1989, 1, "''"), -(1874, 1, "''"), -(1830, 1, "''"), -(1746, 1, "''"), -(1609, 1, "''"), -(57424, 0, "'I'"), -(57304, 0, "'I'"), -(57154, 0, "'I'"), -(56940, 0, "'I'"), -(56621, 0, "'I'"), -(56452, 0, "'I'"), -(56047, 0, "'I'"), -(55523, 0, "'I'"), -(22209, 0, "'I'"), -(20798, 0, "'I'"), -(20029, 0, "'I'"), -(19845, 0, "'I'"), -(19396, 0, "'I'"), -(19358, 0, "'I'"), -(18674, 0, "'I'"), -(14009, 0, "'I'"), -(12972, 0, "'I'"), -(11858, 0, "'I'"), -(11815, 0, "'I'"), -(11475, 0, "'I'"), -(9222, 0, "'I'"), -(7338, 0, "'I'"), -(5338, 0, "'I'"), -(4071, 0, "'I'"), -(3988, 0, "'I'"), -(3946, 0, "'I'"), -(3519, 0, "'I'"), -(3212, 0, "'I'"), -(2971, 0, "'I'"), -(2219, 0, "'I'"), -(2027, 0, "'I'"), -(1985, 0, "'I'"), -(1871, 0, "'I'"), -(1828, 0, "'I'"), -(1745, 0, "'I'"), -(1609, 0, "'I'"), -(57459, 1, "''"), -(57338, 1, "''"), -(57187, 1, "''"), -(56972, 1, "''"), -(56652, 1, "''"), -(56482, 1, "''"), -(56076, 1, "''"), -(55551, 1, "''"), -(22236, 1, "''"), -(20824, 1, "''"), -(20054, 1, "''"), -(19869, 1, "''"), -(19419, 1, "''"), -(19380, 1, "''"), -(18695, 1, "''"), -(14029, 1, "''"), -(12991, 1, "''"), -(11876, 1, "''"), -(11832, 1, "''"), -(11491, 1, "''"), -(9237, 1, "''"), -(7352, 1, "''"), -(5351, 1, "''"), -(4083, 1, "''"), -(3999, 1, "''"), -(3956, 1, "''"), -(3528, 1, "''"), -(3220, 1, "''"), -(2978, 1, "''"), -(2225, 1, "''"), -(2032, 1, "''"), -(1989, 1, "''"), -(1874, 1, "''"), -(1830, 1, "''"), -(1746, 1, "''"), -(1609, 1, "''"), -(57424, 0, "'T'"), -(57304, 0, "'T'"), -(57154, 0, "'T'"), -(56940, 0, "'T'"), -(56621, 0, "'T'"), -(56452, 0, "'T'"), -(56047, 0, "'T'"), -(55523, 0, "'T'"), -(22209, 0, "'T'"), -(20798, 0, "'T'"), -(20029, 0, "'T'"), -(19845, 0, "'T'"), -(19396, 0, "'T'"), -(19358, 0, "'T'"), -(18674, 0, "'T'"), -(14009, 0, "'T'"), -(12972, 0, "'T'"), -(11858, 0, "'T'"), -(11815, 0, "'T'"), -(11475, 0, "'T'"), -(9222, 0, "'T'"), -(7338, 0, "'T'"), -(5338, 0, "'T'"), -(4071, 0, "'T'"), -(3988, 0, "'T'"), -(3946, 0, "'T'"), -(3519, 0, "'T'"), -(3212, 0, "'T'"), -(2971, 0, "'T'"), -(2219, 0, "'T'"), -(2027, 0, "'T'"), -(1985, 0, "'T'"), -(1871, 0, "'T'"), -(1828, 0, "'T'"), -(1745, 0, "'T'"), -(1609, 0, "'T'"), -(57459, 1, "''"), -(57338, 1, "''"), -(57187, 1, "''"), -(56972, 1, "''"), -(56652, 1, "''"), -(56482, 1, "''"), -(56076, 1, "''"), -(55551, 1, "''"), -(22236, 1, "''"), -(20824, 1, "''"), -(20054, 1, "''"), -(19869, 1, "''"), -(19419, 1, "''"), -(19380, 1, "''"), -(18695, 1, "''"), -(14029, 1, "''"), -(12991, 1, "''"), -(11876, 1, "''"), -(11832, 1, "''"), -(11491, 1, "''"), -(9237, 1, "''"), -(7352, 1, "''"), -(5351, 1, "''"), -(4083, 1, "''"), -(3999, 1, "''"), -(3956, 1, "''"), -(3528, 1, "''"), -(3220, 1, "''"), -(2978, 1, "''"), -(2225, 1, "''"), -(2032, 1, "''"), -(1989, 1, "''"), -(1874, 1, "''"), -(1830, 1, "''"), -(1746, 1, "''"), -(1609, 1, "''"), -(57424, 0, "'V'"), -(57304, 0, "'V'"), -(57154, 0, "'V'"), -(56940, 0, "'V'"), -(56621, 0, "'V'"), -(56452, 0, "'V'"), -(56047, 0, "'V'"), -(55523, 0, "'V'"), -(22209, 0, "'V'"), -(20798, 0, "'V'"), -(20029, 0, "'V'"), -(19845, 0, "'V'"), -(19396, 0, "'V'"), -(19358, 0, "'V'"), -(18674, 0, "'V'"), -(14009, 0, "'V'"), -(12972, 0, "'V'"), -(11858, 0, "'V'"), -(11815, 0, "'V'"), -(11475, 0, "'V'"), -(9222, 0, "'V'"), -(7338, 0, "'V'"), -(5338, 0, "'V'"), -(4071, 0, "'V'"), -(3988, 0, "'V'"), -(3946, 0, "'V'"), -(3519, 0, "'V'"), -(3212, 0, "'V'"), -(2971, 0, "'V'"), -(2219, 0, "'V'"), -(2027, 0, "'V'"), -(1985, 0, "'V'"), -(1871, 0, "'V'"), -(1828, 0, "'V'"), -(1745, 0, "'V'"), -(1609, 0, "'V'"), -(57459, 1, "''"), -(57338, 1, "''"), -(57187, 1, "''"), -(56972, 1, "''"), -(56652, 1, "''"), -(56482, 1, "''"), -(56076, 1, "''"), -(55551, 1, "''"), -(22236, 1, "''"), -(20824, 1, "''"), -(20054, 1, "''"), -(19869, 1, "''"), -(19419, 1, "''"), -(19380, 1, "''"), -(18695, 1, "''"), -(14029, 1, "''"), -(12991, 1, "''"), -(11876, 1, "''"), -(11832, 1, "''"), -(11491, 1, "''"), -(9237, 1, "''"), -(7352, 1, "''"), -(5351, 1, "''"), -(4083, 1, "''"), -(3999, 1, "''"), -(3956, 1, "''"), -(3528, 1, "''"), -(3220, 1, "''"), -(2978, 1, "''"), -(2225, 1, "''"), -(2032, 1, "''"), -(1989, 1, "''"), -(1874, 1, "''"), -(1830, 1, "''"), -(1746, 1, "''"), -(1609, 1, "''"), -(57424, 0, "'I'"), -(57304, 0, "'I'"), -(57154, 0, "'I'"), -(56940, 0, "'I'"), -(56621, 0, "'I'"), -(56452, 0, "'I'"), -(56047, 0, "'I'"), -(55523, 0, "'I'"), -(22209, 0, "'I'"), -(20798, 0, "'I'"), -(20029, 0, "'I'"), -(19845, 0, "'I'"), -(19396, 0, "'I'"), -(19358, 0, "'I'"), -(18674, 0, "'I'"), -(14009, 0, "'I'"), -(12972, 0, "'I'"), -(11858, 0, "'I'"), -(11815, 0, "'I'"), -(11475, 0, "'I'"), -(9222, 0, "'I'"), -(7338, 0, "'I'"), -(5338, 0, "'I'"), -(4071, 0, "'I'"), -(3988, 0, "'I'"), -(3946, 0, "'I'"), -(3519, 0, "'I'"), -(3212, 0, "'I'"), -(2971, 0, "'I'"), -(2219, 0, "'I'"), -(2027, 0, "'I'"), -(1985, 0, "'I'"), -(1871, 0, "'I'"), -(1828, 0, "'I'"), -(1745, 0, "'I'"), -(1609, 0, "'I'"), -(57460, 0, "'t'"), -(57339, 0, "'t'"), -(57188, 0, "'t'"), -(56973, 0, "'t'"), -(56653, 0, "'t'"), -(56483, 0, "'t'"), -(56077, 0, "'t'"), -(55552, 0, "'t'"), -(22237, 0, "'t'"), -(20825, 0, "'t'"), -(20055, 0, "'t'"), -(19870, 0, "'t'"), -(19420, 0, "'t'"), -(19381, 0, "'t'"), -(18696, 0, "'t'"), -(14030, 0, "'t'"), -(12992, 0, "'t'"), -(11877, 0, "'t'"), -(11833, 0, "'t'"), -(11492, 0, "'t'"), -(9238, 0, "'t'"), -(7353, 0, "'t'"), -(5352, 0, "'t'"), -(4084, 0, "'t'"), -(4000, 0, "'t'"), -(3957, 0, "'t'"), -(3529, 0, "'t'"), -(3221, 0, "'t'"), -(2979, 0, "'t'"), -(2226, 0, "'t'"), -(2033, 0, "'t'"), -(1990, 0, "'t'"), -(1875, 0, "'t'"), -(1831, 0, "'t'"), -(1747, 0, "'t'"), -(1610, 0, "'t'"), -(57496, 0, "'e'"), -(57374, 0, "'e'"), -(57222, 0, "'e'"), -(57006, 0, "'e'"), -(56685, 0, "'e'"), -(56514, 0, "'e'"), -(56107, 0, "'e'"), -(55581, 0, "'e'"), -(22265, 0, "'e'"), -(20852, 0, "'e'"), -(20081, 0, "'e'"), -(19895, 0, "'e'"), -(19444, 0, "'e'"), -(19404, 0, "'e'"), -(18718, 0, "'e'"), -(14051, 0, "'e'"), -(13012, 0, "'e'"), -(11896, 0, "'e'"), -(11851, 0, "'e'"), -(11509, 0, "'e'"), -(9254, 0, "'e'"), -(7368, 0, "'e'"), -(5366, 0, "'e'"), -(4097, 0, "'e'"), -(4012, 0, "'e'"), -(3968, 0, "'e'"), -(3539, 0, "'e'"), -(3230, 0, "'e'"), -(2987, 0, "'e'"), -(2233, 0, "'e'"), -(2039, 0, "'e'"), -(1995, 0, "'e'"), -(1879, 0, "'e'"), -(1834, 0, "'e'"), -(1749, 0, "'e'"), -(1611, 0, "'e'"), -(57532, 0, "'m'"), -(57409, 0, "'m'"), -(57256, 0, "'m'"), -(57039, 0, "'m'"), -(56717, 0, "'m'"), -(56545, 0, "'m'"), -(56137, 0, "'m'"), -(55610, 0, "'m'"), -(22293, 0, "'m'"), -(20879, 0, "'m'"), -(20107, 0, "'m'"), -(19920, 0, "'m'"), -(19468, 0, "'m'"), -(19427, 0, "'m'"), -(18740, 0, "'m'"), -(14072, 0, "'m'"), -(13032, 0, "'m'"), -(11915, 0, "'m'"), -(11869, 0, "'m'"), -(11526, 0, "'m'"), -(9270, 0, "'m'"), -(7383, 0, "'m'"), -(5380, 0, "'m'"), -(4110, 0, "'m'"), -(4024, 0, "'m'"), -(3979, 0, "'m'"), -(3549, 0, "'m'"), -(3239, 0, "'m'"), -(2995, 0, "'m'"), -(2240, 0, "'m'"), -(2045, 0, "'m'"), -(2000, 0, "'m'"), -(1883, 0, "'m'"), -(1837, 0, "'m'"), -(1751, 0, "'m'"), -(1612, 0, "'m'"), -(57485, 0, "'t'"), -(57319, 0, "'t'"), -(57101, 0, "'t'"), -(56890, 0, "'t'"), -(56856, 0, "'t'"), -(56791, 0, "'t'"), -(56778, 0, "'t'"), -(56689, 0, "'t'"), -(56610, 0, "'t'"), -(56594, 0, "'t'"), -(56196, 0, "'t'"), -(55668, 0, "'t'"), -(54243, 0, "'t'"), -(51358, 0, "'t'"), -(47565, 0, "'t'"), -(46118, 0, "'t'"), -(39032, 0, "'t'"), -(35067, 0, "'t'"), -(34934, 0, "'t'"), -(33867, 0, "'t'"), -(33831, 0, "'t'"), -(32198, 0, "'t'"), -(32057, 0, "'t'"), -(32004, 0, "'t'"), -(30872, 0, "'t'"), -(29478, 0, "'t'"), -(29381, 0, "'t'"), -(24977, 0, "'t'"), -(24174, 0, "'t'"), -(23994, 0, "'t'"), -(23692, 0, "'t'"), -(23614, 0, "'t'"), -(22350, 0, "'t'"), -(21446, 0, "'t'"), -(20935, 0, "'t'"), -(20644, 0, "'t'"), -(20162, 0, "'t'"), -(20052, 0, "'t'"), -(19974, 0, "'t'"), -(19527, 0, "'t'"), -(19477, 0, "'t'"), -(18796, 0, "'t'"), -(18711, 0, "'t'"), -(14843, 0, "'t'"), -(14113, 0, "'t'"), -(13785, 0, "'t'"), -(12050, 0, "'t'"), -(12003, 0, "'t'"), -(11916, 0, "'t'"), -(11570, 0, "'t'"), -(11484, 0, "'t'"), -(11258, 0, "'t'"), -(11141, 0, "'t'"), -(10703, 0, "'t'"), -(10607, 0, "'t'"), -(10196, 0, "'t'"), -(10040, 0, "'t'"), -(9967, 0, "'t'"), -(9907, 0, "'t'"), -(9874, 0, "'t'"), -(9629, 0, "'t'"), -(9460, 0, "'t'"), -(9304, 0, "'t'"), -(9227, 0, "'t'"), -(8714, 0, "'t'"), -(7427, 0, "'t'"), -(6682, 0, "'t'"), -(6394, 0, "'t'"), -(5846, 0, "'t'"), -(4146, 0, "'t'"), -(4069, 0, "'t'"), -(4022, 0, "'t'"), -(3629, 0, "'t'"), -(3394, 0, "'t'"), -(3274, 0, "'t'"), -(3232, 0, "'t'"), -(2283, 0, "'t'"), -(2112, 0, "'t'"), -(2075, 0, "'t'"), -(2036, 0, "'t'"), -(1925, 0, "'t'"), -(1873, 0, "'t'"), -(1787, 0, "'t'"), -(1658, 0, "'t'"), -(57569, 0, "'e'"), -(57402, 0, "'e'"), -(57183, 0, "'e'"), -(56971, 0, "'e'"), -(56936, 0, "'e'"), -(56870, 0, "'e'"), -(56856, 0, "'e'"), -(56766, 0, "'e'"), -(56686, 0, "'e'"), -(56669, 0, "'e'"), -(56270, 0, "'e'"), -(55741, 0, "'e'"), -(54315, 0, "'e'"), -(51429, 0, "'e'"), -(47635, 0, "'e'"), -(46187, 0, "'e'"), -(39100, 0, "'e'"), -(35134, 0, "'e'"), -(35000, 0, "'e'"), -(33932, 0, "'e'"), -(33895, 0, "'e'"), -(32261, 0, "'e'"), -(32119, 0, "'e'"), -(32065, 0, "'e'"), -(30932, 0, "'e'"), -(29537, 0, "'e'"), -(29439, 0, "'e'"), -(25034, 0, "'e'"), -(24230, 0, "'e'"), -(24049, 0, "'e'"), -(23746, 0, "'e'"), -(23667, 0, "'e'"), -(22402, 0, "'e'"), -(21497, 0, "'e'"), -(20985, 0, "'e'"), -(20693, 0, "'e'"), -(20210, 0, "'e'"), -(20099, 0, "'e'"), -(20020, 0, "'e'"), -(19572, 0, "'e'"), -(19521, 0, "'e'"), -(18839, 0, "'e'"), -(18753, 0, "'e'"), -(14884, 0, "'e'"), -(14153, 0, "'e'"), -(13824, 0, "'e'"), -(12088, 0, "'e'"), -(12040, 0, "'e'"), -(11952, 0, "'e'"), -(11605, 0, "'e'"), -(11518, 0, "'e'"), -(11291, 0, "'e'"), -(11173, 0, "'e'"), -(10734, 0, "'e'"), -(10637, 0, "'e'"), -(10225, 0, "'e'"), -(10068, 0, "'e'"), -(9994, 0, "'e'"), -(9933, 0, "'e'"), -(9899, 0, "'e'"), -(9653, 0, "'e'"), -(9483, 0, "'e'"), -(9326, 0, "'e'"), -(9248, 0, "'e'"), -(8734, 0, "'e'"), -(7446, 0, "'e'"), -(6700, 0, "'e'"), -(6411, 0, "'e'"), -(5862, 0, "'e'"), -(4161, 0, "'e'"), -(4083, 0, "'e'"), -(4035, 0, "'e'"), -(3641, 0, "'e'"), -(3405, 0, "'e'"), -(3284, 0, "'e'"), -(3241, 0, "'e'"), -(2291, 0, "'e'"), -(2119, 0, "'e'"), -(2081, 0, "'e'"), -(2041, 0, "'e'"), -(1929, 0, "'e'"), -(1876, 0, "'e'"), -(1789, 0, "'e'"), -(1659, 0, "'e'"), -(57653, 0, "'m'"), -(57485, 0, "'m'"), -(57265, 0, "'m'"), -(57052, 0, "'m'"), -(57016, 0, "'m'"), -(56949, 0, "'m'"), -(56934, 0, "'m'"), -(56843, 0, "'m'"), -(56762, 0, "'m'"), -(56744, 0, "'m'"), -(56344, 0, "'m'"), -(55814, 0, "'m'"), -(54387, 0, "'m'"), -(51500, 0, "'m'"), -(47705, 0, "'m'"), -(46256, 0, "'m'"), -(39168, 0, "'m'"), -(35201, 0, "'m'"), -(35066, 0, "'m'"), -(33997, 0, "'m'"), -(33959, 0, "'m'"), -(32324, 0, "'m'"), -(32181, 0, "'m'"), -(32126, 0, "'m'"), -(30992, 0, "'m'"), -(29596, 0, "'m'"), -(29497, 0, "'m'"), -(25091, 0, "'m'"), -(24286, 0, "'m'"), -(24104, 0, "'m'"), -(23800, 0, "'m'"), -(23720, 0, "'m'"), -(22454, 0, "'m'"), -(21548, 0, "'m'"), -(21035, 0, "'m'"), -(20742, 0, "'m'"), -(20258, 0, "'m'"), -(20146, 0, "'m'"), -(20066, 0, "'m'"), -(19617, 0, "'m'"), -(19565, 0, "'m'"), -(18882, 0, "'m'"), -(18795, 0, "'m'"), -(14925, 0, "'m'"), -(14193, 0, "'m'"), -(13863, 0, "'m'"), -(12126, 0, "'m'"), -(12077, 0, "'m'"), -(11988, 0, "'m'"), -(11640, 0, "'m'"), -(11552, 0, "'m'"), -(11324, 0, "'m'"), -(11205, 0, "'m'"), -(10765, 0, "'m'"), -(10667, 0, "'m'"), -(10254, 0, "'m'"), -(10096, 0, "'m'"), -(10021, 0, "'m'"), -(9959, 0, "'m'"), -(9924, 0, "'m'"), -(9677, 0, "'m'"), -(9506, 0, "'m'"), -(9348, 0, "'m'"), -(9269, 0, "'m'"), -(8754, 0, "'m'"), -(7465, 0, "'m'"), -(6718, 0, "'m'"), -(6428, 0, "'m'"), -(5878, 0, "'m'"), -(4176, 0, "'m'"), -(4097, 0, "'m'"), -(4048, 0, "'m'"), -(3653, 0, "'m'"), -(3416, 0, "'m'"), -(3294, 0, "'m'"), -(3250, 0, "'m'"), -(2299, 0, "'m'"), -(2126, 0, "'m'"), -(2087, 0, "'m'"), -(2046, 0, "'m'"), -(1933, 0, "'m'"), -(1879, 0, "'m'"), -(1791, 0, "'m'"), -(1660, 0, "'m'"), -(3230, 0, "'t'"), -(3231, 0, "'e'"), -(3232, 0, "'m'"), -(3400, 0, "'t'"), -(3401, 0, "'e'"), -(3402, 0, "'m'"), -(55968, 0, "'t'"), -(11008, 0, "'t'"), -(55970, 0, "'e'"), -(11009, 0, "'e'"), -(55972, 0, "'m'"), -(11010, 0, "'m'"), -(57875, 0, "'t'"), -(12090, 0, "'t'"), -(57877, 0, "'e'"), -(12091, 0, "'e'"), -(57879, 0, "'m'"), -(12092, 0, "'m'"), -(17925, 0, "'t'"), -(16800, 0, "'t'"), -(17927, 0, "'e'"), -(16801, 0, "'e'"), -(17929, 0, "'m'"), -(16802, 0, "'m'"), -(17223, 0, "'t'"), -(17224, 0, "'e'"), -(17225, 0, "'m'"), -(17644, 0, "'t'"), -(17645, 0, "'e'"), -(17646, 0, "'m'"), -(17647, 0, "'8'"), -(17647, 1, "''"), -(20235, 0, "'tem'"), -(20279, 0, "'tem'"), -(20360, 0, "'tem'"), -(20880, 0, "'tem'"), -(21158, 0, "'tem'"), -(21185, 0, "'tem'"), -(22561, 0, "'tem'"), -(22618, 0, "'tem'"), -(26088, 0, "'tem'"), -(34142, 0, "'tem'"), -(35341, 0, "'tem'"), -(35438, 0, "'tem'"), -(35976, 0, "'tem'"), -(36081, 0, "'tem'"), -(39321, 0, "'tem'"), -(39390, 0, "'tem'"), -(42056, 0, "'tem'"), -(45682, 0, "'tem'"), -(48074, 0, "'tem'"), -(51774, 0, "'tem'"), -(52744, 0, "'tem'"), -(53176, 0, "'tem'"), -(54563, 0, "'tem'"), -(54998, 0, "'tem'"), -(55996, 0, "'tem'"), -(55996, 3, "''"), -(57692, 0, "'tem'"), -(57474, 0, "'tem'"), -(57145, 0, "'tem'"), -(56539, 0, "'tem'"), -(55996, 0, "'tem'"), -(57498, 0, "'tem'"), -(57166, 0, "'tem'"), -(56011, 0, "'tem'"), -(56984, 0, "'tem'"), -(58017, 0, "'tem'"), -(39320, 4, "'I'"), -(39321, 0, "'t'"), -(39322, 0, "'e'"), -(39323, 0, "'r'"), -(2720, 0, "' '"), -(2721, 0, "'w'"), -(2722, 0, "'h'"), -(2723, 0, "'e'"), -(2724, 0, "'r'"), -(2725, 0, "'e'"), -(2726, 0, "' '"), -(2727, 0, "'S'"), -(2728, 0, "'e'"), -(2729, 0, "'l'"), -(2730, 0, "'f'"), -(2731, 0, "':'"), -(2732, 0, "' '"), -(2733, 0, "'L'"), -(2734, 0, "'S'"), -(2734, 1, "''"), -(2733, 1, "''"), -(2733, 0, "'S'"), -(2734, 0, "'i'"), -(2735, 0, "'z'"), -(2736, 0, "'e'"), -(2737, 0, "'d'"), -(2720, 18, "''"), -(2374, 0, "' where Self: Sized'"), -(2374, 18, "':'"), -(2375, 0, "' '"), -(2376, 0, "'S'"), -(2377, 0, "'i'"), -(2378, 0, "'z'"), -(2379, 0, "'e'"), -(2380, 0, "'d'"), -(35350, 1, "''"), -(35349, 1, "''"), -(35348, 1, "''"), -(35348, 0, "'t'"), -(35349, 0, "'e'"), -(35350, 0, "'r'"), -(56965, 30, "''"), -(56954, 11, "''"), -(56907, 0, "': ExactSizeIterator'"), -(56907, 30, "''"), -(56954, 0, "' where Iter'"), -(56965, 0, "': ExactSizeIterator'"), -(56913, 0, "'x'"), -(56995, 0, "'x'"), -(56935, 0, "'x'"), -(56955, 0, "'x'"), -(57042, 0, "'x'"), -(57042, 1, "''"), -(56955, 1, "''"), -(56935, 1, "''"), -(56995, 1, "''"), -(56913, 1, "''"), -(35348, 3, "''"), -(35348, 0, "'ter'"), -(56961, 4, "'I'"), -(56903, 4, "'I'"), -(57010, 4, "'I'"), -(56927, 4, "'I'"), -(51751, 4, "'I'"), -(51711, 4, "'I'"), -(51618, 4, "'I'"), -(39367, 4, "'I'"), -(39327, 4, "'I'"), -(39268, 4, "'I'"), -(35424, 4, "'I'"), -(35347, 4, "'I'"), -(35288, 4, "'I'"), -(31657, 0, "'&'"), -(2999, 4, "''"), -(2998, 1, "''"), -(2997, 1, "''"), -(3000, 0, "'n'"), -(3001, 0, "'n'"), -(3001, 0, "'i'"), -(3002, 0, "'m'"), -(3003, 0, "'p'"), -(3004, 0, "'l'"), -(3005, 0, "' '"), -(3006, 0, "'L'"), -(3007, 0, "'i'"), -(3008, 0, "'s'"), -(3009, 0, "'t'"), -(3010, 0, "'I'"), -(3011, 0, "'t'"), -(3012, 0, "'e'"), -(3013, 0, "'m'"), -(3014, 0, "' '"), -(3015, 0, "'f'"), -(3016, 0, "'o'"), -(3017, 0, "'r'"), -(3018, 0, "' '"), -(3005, 0, "'<'"), -(3006, 0, "'T'"), -(3007, 0, "'>'"), -(3021, 1, "''"), -(3017, 0, "'<'"), -(3018, 0, "'T'"), -(3019, 0, "'>'"), -(3024, 0, "' '"), -(3025, 0, "'T'"), -(3026, 0, "':'"), -(3027, 0, "' '"), -(3028, 0, "'S'"), -(3029, 0, "'i'"), -(3030, 0, "'z'"), -(3031, 0, "'e'"), -(3032, 0, "'d'"), -(3033, 0, "' '"), -(3034, 0, "'{'"), -(3035, 0, "'}'"), -(3021, 3, "'w'"), -(3022, 0, "'h'"), -(3023, 0, "'e'"), -(3024, 0, "'r'"), -(3025, 0, "'e'"), -(3020, 0, "' '"), -(3021, 0, "'f'"), -(3022, 0, "'o'"), -(3023, 0, "'r'"), -(3024, 0, "' '"), -(3025, 0, "'T'"), -(3019, 1, "''"), -(3018, 1, "''"), -(3017, 1, "''"), -(3000, 42, "''"), -(2853, 1, "''"), -(2853, 0, "'s'"), -(55959, 0, "','"), -(55960, 0, "' '"), -(55961, 0, "'R'"), -(55962, 0, "'h'"), -(55963, 0, "'s'"), -(55964, 0, "':'"), -(55965, 0, "' '"), -(55966, 0, "'?'"), -(55967, 0, "'S'"), -(55968, 0, "'i'"), -(55969, 0, "'z'"), -(55970, 0, "'e'"), -(55971, 0, "'d'"), -(55972, 0, "' '"), -(55973, 0, "'+'"), -(55974, 0, "' '"), -(55974, 1, "''"), -(55973, 1, "''"), -(55972, 0, "' '"), -(55973, 0, "'='"), -(55974, 0, "' '"), -(55975, 0, "'I'"), -(55976, 0, "'t'"), -(55977, 0, "'e'"), -(55978, 0, "'m'"), -(55979, 1, "''"), -(56020, 0, "'<'"), -(56021, 0, "'R'"), -(56022, 0, "'h'"), -(56023, 0, "'s'"), -(56024, 0, "'>'"), -(56063, 4, "'R'"), -(56064, 0, "'h'"), -(56065, 0, "'s'"), -(55972, 7, "''"), -(55959, 13, "''"), -(56026, 0, "'<'"), -(56027, 0, "', Rhs: ?Sized'"), -(56040, 0, "'>'"), -(56028, 1, "''"), -(56027, 1, "''"), -(55978, 27, "''"), -(56042, 0, "' '"), -(56043, 0, "' where Item: PartialEq'"), -(56043, 1, "''"), -(56003, 8, "''"), -(6963, 45, "''"), -(6962, 1, "''"), -(6934, 34, "' impl ListItem for Item { }'"), -(6962, 1, "''"), -(2999, 0, "'n'"), -(3000, 0, "'n'"), -(3001, 0, "'/'"), -(3002, 0, "'/'"), -(3003, 0, "' '"), -(3004, 0, "'B'"), -(3005, 0, "'l'"), -(3006, 0, "'a'"), -(3007, 0, "'n'"), -(3008, 0, "'k'"), -(3009, 0, "'e'"), -(3010, 0, "'t'"), -(3011, 0, "' '"), -(3012, 0, "'i'"), -(3013, 0, "'m'"), -(3014, 0, "'p'"), -(3015, 0, "'l'"), -(3016, 0, "'e'"), -(3017, 0, "'m'"), -(3018, 0, "'e'"), -(3019, 0, "'n'"), -(3020, 0, "'t'"), -(3021, 0, "'a'"), -(3022, 0, "'t'"), -(3023, 0, "'i'"), -(3024, 0, "'o'"), -(3025, 0, "'n'"), -(3026, 0, "'s'"), -(3027, 0, "' '"), -(3028, 0, "'f'"), -(3029, 0, "'o'"), -(3030, 0, "'r'"), -(3031, 0, "' '"), -(3032, 0, "'b'"), -(3033, 0, "'u'"), -(3034, 0, "'i'"), -(3035, 0, "'l'"), -(3036, 0, "'t'"), -(3037, 0, "'i'"), -(3038, 0, "'n'"), -(3032, 0, "'s'"), -(3033, 0, "'o'"), -(3034, 0, "'m'"), -(3035, 0, "'e'"), -(3036, 0, "' '"), -(3037, 0, "'c'"), -(3038, 0, "'o'"), -(3039, 0, "'m'"), -(3040, 0, "'m'"), -(3041, 0, "'o'"), -(3042, 0, "'n'"), -(3043, 0, "' '"), -(3051, 0, "' '"), -(3052, 0, "'t'"), -(3053, 0, "'y'"), -(3054, 0, "'p'"), -(3055, 0, "'e'"), -(3056, 0, "'s'"), -(3057, 0, "';'"), -(3058, 0, "' '"), -(3058, 1, "''"), -(3057, 1, "''"), -(3057, 0, "','"), -(3058, 0, "' '"), -(3059, 0, "'b'"), -(3060, 0, "'e'"), -(3061, 0, "'c'"), -(3062, 0, "'a'"), -(3063, 0, "'u'"), -(3064, 0, "'s'"), -(3065, 0, "'e'"), -(3066, 0, "' '"), -(3067, 0, "'i'"), -(3068, 0, "'t'"), -(3069, 0, "'s'"), -(3070, 0, "' '"), -(3071, 0, "'i'"), -(3072, 0, "'m'"), -(3073, 0, "'p'"), -(3074, 0, "'o'"), -(3075, 0, "'s'"), -(3076, 0, "'s'"), -(3077, 0, "'i'"), -(3078, 0, "'b'"), -(3079, 0, "'l'"), -(3080, 0, "'e'"), -(3081, 0, "' '"), -(3082, 0, "'t'"), -(3083, 0, "'o'"), -(3084, 0, "' '"), -(3085, 0, "'a'"), -(3086, 0, "'d'"), -(3087, 0, "'d'"), -(3088, 0, "' '"), -(3089, 0, "'t'"), -(3090, 0, "'h'"), -(3091, 0, "'e'"), -(3092, 0, "'s'"), -(3093, 0, "'e'"), -(3094, 0, "' '"), -(3095, 0, "'l'"), -(3096, 0, "'a'"), -(3097, 0, "'t'"), -(3098, 0, "'e'"), -(3099, 0, "'r'"), -(3100, 0, "'.'"), -(3101, 0, "' '"), -(3102, 0, "'T'"), -(3103, 0, "'h'"), -(3104, 0, "'e'"), -(3105, 0, "'s'"), -(3106, 0, "'e'"), -(3107, 0, "' '"), -(3108, 0, "'a'"), -(3109, 0, "'l'"), -(3110, 0, "'l'"), -(3111, 0, "' '"), -(3112, 0, "'u'"), -(3113, 0, "'s'"), -(3114, 0, "'e'"), -(3115, 0, "' '"), -(3101, 15, "''"), -(3001, 100, "'// Blanket implementations for some common builtin types, because its impossiblen// to add these later.'"), -(3104, 0, "'n'"), -(3105, 0, "'i'"), -(3106, 0, "'m'"), -(3107, 0, "'p'"), -(3108, 0, "'l'"), -(3109, 0, "' '"), -(3110, 0, "'L'"), -(3111, 0, "'i'"), -(3112, 0, "'s'"), -(3113, 0, "'t'"), -(3114, 0, "'I'"), -(3115, 0, "'t'"), -(3116, 0, "'e'"), -(3117, 0, "'m'"), -(3118, 0, "' '"), -(3119, 0, "'f'"), -(3120, 0, "'o'"), -(3121, 0, "'r'"), -(3122, 0, "' '"), -(3123, 0, "'u'"), -(3124, 0, "'8'"), -(3125, 0, "' '"), -(3126, 0, "'{'"), -(3127, 0, "'}'"), -(3105, 0, "'impl ListItem for u8 {}n'"), -(3129, 0, "'impl ListItem for u8 {}n'"), -(3153, 0, "'impl ListItem for u8 {}n'"), -(3177, 0, "'impl ListItem for u8 {}n'"), -(3147, 1, "''"), -(3147, 0, "'s'"), -(3172, 1, "''"), -(3172, 0, "'1'"), -(3173, 0, "'6'"), -(3197, 1, "''"), -(3197, 0, "'3'"), -(3198, 0, "'2'"), -(3222, 1, "''"), -(3221, 1, "''"), -(3221, 0, "'f'"), -(3222, 0, "'3'"), -(3223, 0, "'2'"), -(3203, 0, "'impl ListItem for f32 {}n'"), -(3248, 1, "''"), -(3247, 1, "''"), -(3247, 0, "'6'"), -(3248, 0, "'4'"), -(3128, 24, "''"), -(3129, 0, "'impl ListItem for u16 {}n'"), -(3172, 1, "''"), -(3172, 0, "'s'"), -(3179, 0, "'impl ListItem for u32 {}n'"), -(3222, 1, "''"), -(3222, 0, "'s'"), -(3172, 1, "''"), -(3172, 0, "'i'"), -(3222, 1, "''"), -(3222, 0, "'i'"), -(3105, 0, "'impl ListItem for u8 {}n'"), -(3147, 1, "''"), -(3147, 0, "'i'"), -(3128, 0, "'nimpl ListItem for u8 {}'"), -(3124, 1, "''"), -(3123, 1, "''"), -(3123, 0, "'('"), -(3124, 0, "')'"), -(3128, 0, "'n'"), -(3128, 1, "''"), -(3105, 0, "'impl ListItem for () {}n'"), -(3133, 0, "'<'"), -(3134, 0, "'X'"), -(3135, 0, "','"), -(3136, 0, "' '"), -(3137, 0, "'Y'"), -(3138, 0, "'>'"), -(3154, 0, "'X'"), -(3155, 0, "','"), -(3156, 0, "' '"), -(3157, 0, "'Y'"), -(3129, 0, "'impl ListItem for (X, Y) {}n'"), -(3172, 0, "','"), -(3173, 0, "' '"), -(3174, 0, "'Z'"), -(3195, 0, "','"), -(3196, 0, "' '"), -(3197, 0, "'Z'"), -(3163, 0, "'impl ListItem for (X, Y, Z) {}n'"), -(3207, 9, "''"), -(3207, 0, "'<'"), -(3208, 0, "'V'"), -(3209, 0, "'>'"), -(3224, 9, "''"), -(3224, 0, "'O'"), -(3225, 0, "'p'"), -(3226, 0, "'t'"), -(3227, 0, "'i'"), -(3228, 0, "'o'"), -(3229, 0, "'n'"), -(3230, 0, "'<'"), -(3231, 0, "'V'"), -(3232, 0, "'>'"), -(3236, 0, "'n'"), -(3203, 0, "'impl ListItem for Option {}n'"), -(3242, 1, "''"), -(3242, 0, "'E'"), -(3243, 0, "','"), -(3244, 0, "' '"), -(3245, 0, "'R'"), -(3261, 6, "'R'"), -(3262, 0, "'e'"), -(3263, 0, "'s'"), -(3264, 0, "'u'"), -(3265, 0, "'l'"), -(3266, 0, "'t'"), -(3268, 1, "''"), -(3268, 0, "'E'"), -(3269, 0, "','"), -(3270, 0, "' '"), -(3271, 0, "'R'"), -(3268, 4, "'T'"), -(3242, 4, "'T'"), -(3266, 0, "','"), -(3243, 0, "','"), -(3268, 0, "' '"), -(3244, 0, "' '"), -(3270, 0, "'E'"), -(3245, 0, "'E'"), -(3104, 0, "' '"), -(3105, 0, "'T'"), -(3106, 0, "'h'"), -(3107, 0, "'e'"), -(3108, 0, "'s'"), -(3109, 0, "'e'"), -(3110, 0, "' '"), -(3111, 0, "'a'"), -(3112, 0, "'l'"), -(3113, 0, "'l'"), -(3114, 0, "' '"), -(3115, 0, "'m'"), -(3116, 0, "'a'"), -(3117, 0, "'k'"), -(3118, 0, "'e'"), -(3119, 0, "' '"), -(3120, 0, "'e'"), -(3121, 0, "'a'"), -(3122, 0, "'c'"), -(3123, 0, "'h'"), -(3124, 0, "' '"), -(3115, 10, "'s'"), -(3116, 0, "'e'"), -(3116, 1, "''"), -(3115, 1, "''"), -(3115, 0, "'u'"), -(3116, 0, "'s'"), -(3117, 0, "'e'"), -(3118, 0, "' '"), -(3115, 4, "'m'"), -(3116, 0, "'a'"), -(3117, 0, "'k'"), -(3118, 0, "'e'"), -(3119, 0, "' '"), -(3120, 0, "'e'"), -(3121, 0, "'v'"), -(3122, 0, "'e'"), -(3123, 0, "'r'"), -(3124, 0, "'y'"), -(3125, 0, "'t'"), -(3126, 0, "'h'"), -(3127, 0, "'i'"), -(3128, 0, "'n'"), -(3129, 0, "'g'"), -(3130, 0, "' '"), -(3131, 0, "'a'"), -(3131, 1, "''"), -(3131, 0, "'h'"), -(3132, 0, "'a'"), -(3133, 0, "'v'"), -(3134, 0, "'e'"), -(3135, 0, "' '"), -(3136, 0, "'a'"), -(3137, 0, "' '"), -(3138, 0, "'s'"), -(3139, 0, "'i'"), -(3140, 0, "'z'"), -(3141, 0, "'e'"), -(3142, 0, "' '"), -(3143, 0, "'o'"), -(3144, 0, "'f'"), -(3145, 0, "' '"), -(3146, 0, "'1'"), -(3147, 0, "'.'"), -(3111, 8, "'m'"), -(3112, 0, "'a'"), -(3113, 0, "'k'"), -(3114, 0, "'e'"), -(3115, 0, "' '"), -(3116, 0, "'e'"), -(3117, 0, "'v'"), -(3118, 0, "'e'"), -(3119, 0, "'r'"), -(3120, 0, "'y'"), -(3121, 0, "' '"), -(3122, 0, "'i'"), -(3123, 0, "'t'"), -(3124, 0, "'e'"), -(3125, 0, "'m'"), -(3126, 11, "''"), -(3318, 0, "'impl ListItem for u8 {}nimpl ListItem for i8 {}nimpl ListItem for u16 {}nimpl ListItem for i16 {}nimpl ListItem for u32 {}nimpl ListItem for i32 {}nimpl ListItem for f32 {}nimpl ListItem for f64 {}n'"), -(3516, 0, "'n'"), -(3535, 0, "'&'"), -(3560, 0, "'&'"), -(3710, 0, "'&'"), -(3685, 0, "'&'"), -(3660, 0, "'&'"), -(3635, 0, "'&'"), -(3610, 0, "'&'"), -(3585, 0, "'&'"), -(3169, 0, "'impl ListItem for (X, Y) {}nimpl ListItem for (X, Y, Z) {}nimpl ListItem for Option {}nimpl ListItem for Result {}n'"), -(3449, 0, "'&'"), -(3412, 0, "'&'"), -(3378, 0, "'&'"), -(3341, 0, "'&'"), -(3316, 0, "'n'"), -(4315, 0, "'n '"), -(4320, 0, "'f'"), -(4321, 0, "'n'"), -(4322, 0, "' '"), -(4323, 0, "'n'"), -(4324, 0, "'o'"), -(4325, 0, "'t'"), -(4326, 0, "'i'"), -(4327, 0, "'f'"), -(4328, 0, "'y'"), -(4329, 0, "'_'"), -(4330, 0, "'r'"), -(4331, 0, "'e'"), -(4332, 0, "'m'"), -(4333, 0, "'o'"), -(4334, 0, "'v'"), -(4335, 0, "'e'"), -(4336, 0, "'d'"), -(4254, 0, "'_'"), -(4255, 0, "'c'"), -(4256, 0, "'h'"), -(4257, 0, "'a'"), -(4258, 0, "'n'"), -(4259, 0, "'g'"), -(4260, 0, "'e'"), -(4261, 0, "'d'"), -(4345, 0, "'('"), -(4346, 0, "'*'"), -(4346, 1, "''"), -(4346, 0, "'&'"), -(4347, 0, "'m'"), -(4348, 0, "'u'"), -(4349, 0, "'t'"), -(4350, 0, "' '"), -(4351, 0, "'s'"), -(4352, 0, "'e'"), -(4353, 0, "'l'"), -(4354, 0, "'f'"), -(4355, 0, "' '"), -(4355, 1, "''"), -(4355, 0, "','"), -(4356, 0, "' '"), -(4357, 0, "'_'"), -(4328, 30, "''"), -(4142, 0, "'n '"), -(4147, 0, "'fn notify_removed(&mut self, _'"), -(4176, 1, "''"), -(4176, 0, "'k'"), -(4177, 0, "'t'"), -(4178, 0, "'e'"), -(4179, 0, "'m'"), -(4179, 1, "''"), -(4178, 1, "''"), -(4177, 1, "''"), -(4176, 1, "''"), -(4176, 0, "'i'"), -(4177, 0, "'t'"), -(4178, 0, "'e'"), -(4179, 0, "'m'"), -(4180, 0, "'s'"), -(4181, 0, "':'"), -(4182, 0, "' '"), -(4183, 0, "'*'"), -(4183, 1, "''"), -(4183, 0, "'&'"), -(4184, 0, "'['"), -(4185, 0, "'I'"), -(4186, 0, "'t'"), -(4187, 0, "'e'"), -(4188, 0, "'m'"), -(4189, 0, "']'"), -(4190, 0, "')'"), -(4191, 0, "';'"), -(4304, 8, "''"), -(4370, 0, "'fn notify_removed(&mut self, items: &[Item]);'"), -(4415, 0, "' '"), -(4416, 0, "'{'"), -(4417, 0, "'}'"), -(4414, 1, "''"), -(4399, 0, "'_'"), -(47346, 0, "', notify: &mut N'"), -(48739, 0, "'n '"), -(48756, 0, "'n'"), -(48757, 0, "'o'"), -(48758, 0, "'t'"), -(48759, 0, "'i'"), -(48760, 0, "'f'"), -(48761, 0, "'y'"), -(48762, 0, "'.'"), -(48763, 0, "'notify_removed(items: &[Item])'"), -(48778, 14, "'c'"), -(48779, 0, "'['"), -(48778, 2, "'item_idx..item_idx + removed_here'"), -(48812, 0, "';'"), -(48778, 0, "'c'"), -(48779, 0, "'['"), -(48813, 0, "']'"), -(48778, 0, "' '"), -(48778, 0, "'m'"), -(48779, 0, "'a'"), -(48780, 0, "'y'"), -(48781, 0, "'b'"), -(48778, 4, "'maybeinit_slice_get_ref(slice: &[MaybeUninit])'"), -(48802, 24, "''"), -(48802, 1, "''"), -(48802, 1, "''"), -(48839, 0, "'n '"), -(48856, 0, "'0'"), -(48856, 1, "''"), -(48852, 4, "''"), -(48848, 4, "''"), -(48844, 4, "''"), -(48840, 4, "''"), -(48839, 1, "''"), -(48839, 0, "')'"), -(48802, 0, "'&'"), -(48739, 0, "'n '"), -(48756, 0, "'i'"), -(48757, 0, "'f'"), -(48758, 0, "' '"), -(48759, 0, "'('"), -(48760, 0, "'n'"), -(48761, 0, "'o'"), -(48762, 0, "'t'"), -(48763, 0, "'i'"), -(48763, 1, "''"), -(48762, 1, "''"), -(48761, 1, "''"), -(48760, 1, "''"), -(48759, 1, "''"), -(48759, 0, "'n'"), -(48760, 0, "'o'"), -(48761, 0, "'t'"), -(48762, 0, "'i'"), -(48763, 0, "'f'"), -(48764, 0, "'y'"), -(48765, 0, "'.'"), -(48766, 0, "'n'"), -(48767, 0, "'o'"), -(48768, 0, "'t'"), -(48769, 0, "'i'"), -(48770, 0, "'f'"), -(48771, 0, "'i'"), -(48766, 6, "''"), -(48765, 1, "''"), -(48765, 0, "'.'"), -(48759, 7, "'N'"), -(48760, 0, "':'"), -(48761, 0, "':'"), -(48762, 0, "'notifications_used()'"), -(48782, 0, "' '"), -(48783, 0, "'{'"), -(48887, 0, "'n '"), -(48888, 16, "' }'"), -(48801, 0, "' '"), -(48784, 0, "'n '"), -(48784, 21, "''"), -(48739, 0, "'n '"), -(48756, 0, "'/'"), -(48757, 0, "'/'"), -(48758, 0, "' '"), -(48759, 0, "'G'"), -(48760, 0, "'u'"), -(48761, 0, "'a'"), -(48762, 0, "'r'"), -(48763, 0, "'d'"), -(48764, 0, "' '"), -(48765, 0, "'m'"), -(48766, 0, "'a'"), -(48767, 0, "'y'"), -(48768, 0, "' '"), -(48769, 0, "'h'"), -(48770, 0, "'a'"), -(48771, 0, "'v'"), -(48772, 0, "'e'"), -(48773, 0, "' '"), -(48774, 0, "'n'"), -(48775, 0, "'o'"), -(48776, 0, "' '"), -(48777, 0, "'e'"), -(48778, 0, "'f'"), -(48779, 0, "'f'"), -(48780, 0, "'e'"), -(48781, 0, "'c'"), -(48782, 0, "'c'"), -(48783, 0, "'t'"), -(48783, 1, "''"), -(48782, 1, "''"), -(48782, 0, "'t'"), -(48783, 0, "'.'"), -(48784, 0, "' '"), -(48785, 0, "'N'"), -(48786, 0, "'o'"), -(48787, 0, "'t'"), -(48788, 0, "' '"), -(48789, 0, "'s'"), -(48790, 0, "'u'"), -(48791, 0, "'r'"), -(48792, 0, "'e'"), -(48793, 0, "' '"), -(48794, 0, "'h'"), -(48795, 0, "'o'"), -(48796, 0, "'w'"), -(48797, 0, "' '"), -(4244, 0, "'n '"), -(4249, 0, "'c'"), -(4250, 0, "'o'"), -(4251, 0, "'n'"), -(4252, 0, "'s'"), -(4253, 0, "'t'"), -(4254, 0, "' '"), -(4255, 0, "'f'"), -(4256, 0, "'o'"), -(4257, 0, "'o'"), -(4258, 0, "':'"), -(4259, 0, "' '"), -(4260, 0, "'b'"), -(4261, 0, "'o'"), -(4262, 0, "'o'"), -(4263, 0, "'l'"), -(4264, 0, "','"), -(4264, 1, "''"), -(4264, 0, "';'"), -(4245, 20, "''"), -(3917, 0, "'n '"), -(3922, 0, "' const foo: bool;'"), -(3918, 8, "' '"), -(3938, 0, "'n '"), -(3939, 4, "''"), -(3928, 3, "'n'"), -(3929, 0, "'o'"), -(3930, 0, "'t'"), -(3931, 0, "'i'"), -(3932, 0, "'f'"), -(3933, 0, "'i'"), -(3928, 6, "'notifications_used()'"), -(3947, 1, "''"), -(3946, 1, "''"), -(3954, 154, "''"), -(4133, 2, "'c'"), -(4134, 0, "'n'"), -(4134, 1, "''"), -(4134, 0, "'o'"), -(4135, 0, "'n'"), -(4136, 0, "'s'"), -(4137, 0, "'t'"), -(4127, 1, "''"), -(3952, 0, "' '"), -(3953, 0, "'='"), -(3954, 0, "' '"), -(3955, 0, "'t'"), -(3956, 0, "'r'"), -(3957, 0, "'u'"), -(3958, 0, "'e'"), -(4139, 44, "'const notifications_used: bool = true;'"), -(4172, 5, "'f'"), -(4173, 0, "'a'"), -(4174, 0, "'l'"), -(4175, 0, "'s'"), -(4176, 0, "'e'"), -(4177, 0, "';'"), -(4163, 6, "''"), -(4139, 6, "''"), -(4139, 0, "'const '"), -(4163, 0, "': bool'"), -(3928, 18, "'u'"), -(3929, 0, "'s'"), -(3930, 0, "'e'"), -(3931, 0, "'d'"), -(4131, 18, "'u'"), -(4132, 0, "'s'"), -(4133, 0, "'e'"), -(4134, 0, "'d'"), -(25340, 20, "'u'"), -(25341, 0, "'s'"), -(25342, 0, "'e'"), -(25343, 0, "'d'"), -(48665, 20, "'u'"), -(48666, 0, "'s'"), -(48667, 0, "'e'"), -(48668, 0, "'d'"), -(55432, 0, "'&'"), -(55432, 1, "''"), -(55432, 0, "','"), -(55433, 0, "' '"), -(55434, 0, "'n'"), -(55435, 0, "'o'"), -(55436, 0, "'t'"), -(55437, 0, "'i'"), -(55438, 0, "'f'"), -(55439, 0, "'y'"), -(48584, 59, "''"), -(48737, 0, "'n '"), -(49821, 0, "'n '"), -(48738, 16, "''"), -(49822, 0, "'n '"), -(49806, 16, "''"), -(49823, 0, "' if N::used {n notify.notify_removed(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n }n'"), -(49807, 32, "' '"), -(49960, 1, "''"), -(49878, 62, "''"), -(49878, 0, "'*'"), -(49879, 0, "'('"), -(49880, 0, "'e'"), -(49881, 0, "')'"), -(49881, 1, "''"), -(49880, 1, "''"), -(49879, 1, "''"), -(49878, 1, "''"), -(49878, 0, "'*'"), -(49878, 1, "''"), -(49878, 0, "'('"), -(49879, 0, "'E'"), -(49879, 1, "''"), -(49879, 0, "'*'"), -(49880, 0, "'e'"), -(49881, 0, "')'"), -(49882, 0, "'.'"), -(49883, 0, "'g'"), -(49884, 0, "'e'"), -(49885, 0, "'t'"), -(49886, 0, "'_'"), -(49887, 0, "'c'"), -(49888, 0, "'o'"), -(49889, 0, "'n'"), -(49890, 0, "'t'"), -(49891, 0, "'e'"), -(49892, 0, "'n'"), -(49893, 0, "'t'"), -(49894, 0, "'('"), -(49895, 0, "')'"), -(49883, 11, "'c'"), -(49884, 0, "'o'"), -(49885, 0, "'n'"), -(49886, 0, "'t'"), -(49887, 0, "'e'"), -(49888, 0, "'n'"), -(49889, 0, "'t'"), -(49883, 7, "'content_slice'"), -(49829, 4, "'USED'"), -(48606, 4, "'USED'"), -(25340, 4, "'USED'"), -(3928, 4, "'USED'"), -(4131, 4, "'U'"), -(4132, 0, "'S'"), -(4133, 0, "'E'"), -(4134, 0, "'D'"), -(58117, 0, "'n'"), -(58117, 0, "'n'"), -(58118, 0, "'i'"), -(58119, 0, "'m'"), -(58120, 0, "'p'"), -(58121, 0, "'l'"), -(58122, 0, "'<'"), -(58123, 0, "'I'"), -(58123, 1, "''"), -(58122, 1, "''"), -(58121, 1, "''"), -(58120, 1, "''"), -(58119, 1, "''"), -(58118, 1, "''"), -(58118, 0, "'i'"), -(58119, 0, "'m'"), -(58120, 0, "'p'"), -(58121, 0, "'l'"), -(58122, 0, "'<'"), -(58123, 0, "'I'"), -(58124, 0, "'t'"), -(58125, 0, "'e'"), -(58126, 0, "'m'"), -(58127, 0, "':'"), -(58128, 0, "' '"), -(58129, 0, "'L'"), -(58130, 0, "'i'"), -(58131, 0, "'s'"), -(58132, 0, "'t'"), -(58129, 4, "'ListItem'"), -(58137, 0, "'>'"), -(58138, 0, "' '"), -(58139, 0, "'F'"), -(58140, 0, "'r'"), -(58141, 0, "'o'"), -(58142, 0, "'m'"), -(58143, 0, "'I'"), -(58144, 0, "'t'"), -(58145, 0, "'e'"), -(58146, 0, "'r'"), -(58147, 0, "'a'"), -(58148, 0, "'t'"), -(58149, 0, "'o'"), -(58150, 0, "'r'"), -(58139, 0, "'i'"), -(58140, 0, "'t'"), -(58141, 0, "'e'"), -(58142, 0, "'r'"), -(58143, 0, "':'"), -(58144, 0, "':'"), -(58139, 0, "'s'"), -(58140, 0, "'t'"), -(58141, 0, "'d'"), -(58142, 0, "':'"), -(58143, 0, "':'"), -(58162, 0, "' '"), -(58163, 0, "'f'"), -(58164, 0, "'o'"), -(58165, 0, "'r'"), -(58166, 0, "' '"), -(58167, 0, "'S'"), -(58168, 0, "'k'"), -(58169, 0, "'i'"), -(58170, 0, "'p'"), -(58167, 4, "'SkipList'"), -(58175, 0, "'<'"), -(58176, 0, "'I'"), -(58177, 0, "'t'"), -(58178, 0, "'e'"), -(58179, 0, "'m'"), -(58180, 0, "'>'"), -(58181, 0, "' '"), -(58182, 0, "'{'"), -(58183, 0, "'n '"), -(58188, 0, "'n '"), -(58184, 4, "''"), -(58185, 4, "'}'"), -(58139, 5, "''"), -(58179, 0, "'fn from_iter>(iter: T) -> Self;'"), -(58179, 0, "' '"), -(58239, 1, "''"), -(58239, 0, "' '"), -(58240, 0, "'{'"), -(58241, 0, "'n '"), -(58250, 0, "'n '"), -(58242, 8, "''"), -(58243, 8, "' }'"), -(58242, 0, "' '"), -(58242, 8, "''"), -(58219, 1, "''"), -(58219, 0, "'I'"), -(58220, 0, "'t'"), -(58221, 0, "'e'"), -(58222, 0, "'m'"), -(58218, 1, "''"), -(58216, 1, "''"), -(58216, 0, "' '"), -(58218, 0, "' '"), -(58245, 0, "' '"), -(58253, 0, "'S'"), -(58254, 0, "'k'"), -(58255, 0, "'i'"), -(58256, 0, "'p'"), -(58253, 4, "'SkipList'"), -(58261, 0, "'<'"), -(58261, 1, "''"), -(58261, 0, "':'"), -(58262, 0, "':'"), -(58263, 0, "'n'"), -(58264, 0, "'e'"), -(58265, 0, "'w'"), -(58265, 1, "''"), -(58264, 1, "''"), -(58263, 1, "''"), -(58263, 0, "'from(iter: I)'"), -(58268, 7, "'i'"), -(58269, 0, "'t'"), -(58270, 0, "'e'"), -(58271, 0, "'r'"), -(58267, 0, "'_'"), -(58268, 0, "'i'"), -(58269, 0, "'t'"), -(58270, 0, "'e'"), -(58271, 0, "'r'"), -(58157, 0, "'<'"), -(58158, 0, "'I'"), -(58159, 0, "'t'"), -(58160, 0, "'e'"), -(58161, 0, "'m'"), -(58162, 0, "'>'"), -(58269, 9, "'n'"), -(58270, 0, "'e'"), -(58271, 0, "'w'"), -(58272, 0, "'_'"), -(58273, 0, "'f'"), -(58274, 0, "'r'"), -(58275, 0, "'o'"), -(58276, 0, "'m'"), -(58269, 8, "'new_from_iter'"), -(58182, 0, "' '"), -(58183, 0, "'w'"), -(58184, 0, "'h'"), -(58185, 0, "'e'"), -(58186, 0, "'r'"), -(58187, 0, "'e'"), -(58188, 0, "' '"), -(58182, 7, "''"), -(58295, 0, "'// '"), -(58289, 0, "'// '"), -(58251, 0, "'// '"), -(58185, 0, "'// '"), -(58118, 0, "'// '"), -(58117, 0, "'n'"), -(58118, 0, "'/'"), -(58119, 0, "'/'"), -(58120, 0, "' '"), -(58121, 0, "'N'"), -(58122, 0, "'e'"), -(58123, 0, "'e'"), -(58124, 0, "'d'"), -(58125, 0, "'s'"), -(58126, 0, "' '"), -(58127, 0, "'m'"), -(58128, 0, "'e'"), -(58129, 0, "' '"), -(58130, 0, "'t'"), -(58131, 0, "'o'"), -(58132, 0, "' '"), -(58133, 0, "'r'"), -(58134, 0, "'e'"), -(58135, 0, "'l'"), -(58136, 0, "'a'"), -(58137, 0, "'x'"), -(58138, 0, "' '"), -(58139, 0, "'t'"), -(58140, 0, "'h'"), -(58141, 0, "'e'"), -(58142, 0, "' '"), -(58143, 0, "'E'"), -(58144, 0, "'x'"), -(58145, 0, "'a'"), -(58146, 0, "'c'"), -(58147, 0, "'t'"), -(58148, 0, "'I'"), -(58148, 1, "''"), -(58148, 0, "'S'"), -(58149, 0, "'i'"), -(58150, 0, "'z'"), -(58151, 0, "'e'"), -(58152, 0, "'I'"), -(58153, 0, "'t'"), -(58154, 0, "'e'"), -(58155, 0, "'r'"), -(58156, 0, "'a'"), -(58157, 0, "'t'"), -(58158, 0, "'o'"), -(58159, 0, "'r'"), -(58160, 0, "' '"), -(58161, 0, "'c'"), -(58162, 0, "'o'"), -(58163, 0, "'n'"), -(58164, 0, "'s'"), -(58165, 0, "'t'"), -(58166, 0, "'r'"), -(58167, 0, "'a'"), -(58168, 0, "'i'"), -(58169, 0, "'t'"), -(58170, 0, "'n'"), -(58170, 1, "''"), -(58169, 1, "''"), -(58169, 0, "'n'"), -(58170, 0, "'t'"), -(58171, 0, "' '"), -(58172, 0, "'o'"), -(58173, 0, "'n'"), -(58174, 0, "' '"), -(58175, 0, "'i'"), -(58176, 0, "'n'"), -(58177, 0, "'s'"), -(58178, 0, "'e'"), -(58179, 0, "'r'"), -(58180, 0, "'t'"), -(58181, 0, "'.'"), -(59202, 0, "'O'"), -(59203, 0, "'p'"), -(59204, 0, "'t'"), -(59205, 0, "'i'"), -(59206, 0, "'o'"), -(59207, 0, "'n'"), -(59208, 0, "'<'"), -(59214, 0, "'>'"), -(59795, 0, "'n '"), -(59804, 0, "'i'"), -(59805, 0, "'f'"), -(59806, 0, "' '"), -(59807, 0, "'l'"), -(59808, 0, "'e'"), -(59809, 0, "'t'"), -(59810, 0, "' '"), -(59811, 0, "'s'"), -(59812, 0, "'e'"), -(59813, 0, "'l'"), -(59814, 0, "'f'"), -(59815, 0, "'.'"), -(59816, 0, "'r'"), -(59817, 0, "'e'"), -(59818, 0, "'m'"), -(59819, 0, "'a'"), -(59816, 4, "'remaining_items'"), -(59810, 0, "' '"), -(59811, 0, "'r'"), -(59812, 0, "' '"), -(59813, 0, "'='"), -(59835, 0, "' '"), -(59836, 0, "'{'"), -(59846, 0, "' '"), -(59900, 0, "'n '"), -(59901, 12, "' }'"), -(59910, 0, "' '"), -(59911, 0, "'e'"), -(59912, 0, "'l'"), -(59913, 0, "'s'"), -(59914, 0, "'e'"), -(59915, 0, "' '"), -(59916, 0, "'{'"), -(59917, 0, "'n '"), -(59930, 0, "'('"), -(59931, 0, "'0'"), -(59932, 0, "','"), -(59933, 0, "' '"), -(59934, 0, "'N'"), -(59935, 0, "'o'"), -(59936, 0, "'n'"), -(59937, 0, "'e'"), -(59938, 0, "')'"), -(59939, 0, "'n '"), -(59940, 12, "' }'"), -(59878, 20, "'r'"), -(59851, 20, "'r'"), -(59811, 0, "'S'"), -(59812, 0, "'o'"), -(59813, 0, "'m'"), -(59814, 0, "'e'"), -(59815, 0, "'('"), -(59817, 0, "')'"), -(59232, 1, "''"), -(59232, 0, "','"), -(59233, 0, "' '"), -(59234, 0, "'o'"), -(59234, 1, "''"), -(59234, 0, "'i'"), -(59235, 0, "'f'"), -(59236, 0, "' '"), -(59237, 0, "'k'"), -(59238, 0, "'n'"), -(59239, 0, "'o'"), -(59240, 0, "'w'"), -(59241, 0, "'n'"), -(59242, 0, "'.'"), -(24805, 0, "'S'"), -(24806, 0, "'o'"), -(24807, 0, "'m'"), -(24808, 0, "'e'"), -(24809, 0, "'('"), -(24826, 0, "')'"), -(24843, 0, "'n '"), -(24848, 0, "'n '"), -(24844, 4, "''"), -(24849, 0, "'f'"), -(24850, 0, "'n'"), -(24851, 0, "' '"), -(24852, 0, "'i'"), -(24853, 0, "'t'"), -(24854, 0, "'e'"), -(24855, 0, "'r'"), -(24856, 0, "'_'"), -(24857, 0, "'f'"), -(24858, 0, "'r'"), -(24859, 0, "'o'"), -(24860, 0, "'m'"), -(24861, 0, "'_'"), -(24862, 0, "'n'"), -(24863, 0, "'o'"), -(24864, 0, "'d'"), -(24865, 0, "'e'"), -(24849, 0, "'p'"), -(24850, 0, "'u'"), -(24851, 0, "'b'"), -(24852, 0, "'('"), -(24853, 0, "'c'"), -(24854, 0, "'r'"), -(24855, 0, "'a'"), -(24856, 0, "'t'"), -(24857, 0, "'e'"), -(24858, 0, "')'"), -(24859, 0, "' '"), -(24877, 0, "'('"), -(24843, 35, "''"), -(12430, 0, "'n '"), -(12435, 0, "'n '"), -(12431, 4, "''"), -(12436, 0, "'n pub fn iter(&self) -> ListItemIter {n ListItemIter {n node: Some(&self.head),n index: 0,n remaining_items: Some(self.len_items())n }n }'"), -(12432, 4, "''"), -(12431, 1, "''"), -(12430, 1, "''"), -(12430, 0, "'n '"), -(12443, 0, "'('"), -(12431, 4, "''"), -(12440, 0, "'c'"), -(12441, 0, "'r'"), -(12442, 0, "'a'"), -(12443, 0, "'t'"), -(12444, 0, "'e'"), -(12445, 0, "')'"), -(12460, 0, "','"), -(12461, 0, "' '"), -(12462, 0, "'u'"), -(12463, 0, "'s'"), -(12464, 0, "'i'"), -(12465, 0, "'z'"), -(12466, 0, "'e'"), -(12462, 0, "'i'"), -(12463, 0, "'n'"), -(12464, 0, "'d'"), -(12465, 0, "'e'"), -(12466, 0, "'x'"), -(12467, 0, "':'"), -(12468, 0, "' '"), -(12462, 0, "'l'"), -(12463, 0, "'o'"), -(12464, 0, "'c'"), -(12465, 0, "'a'"), -(12466, 0, "'l'"), -(12467, 0, "'_'"), -(12557, 5, "''"), -(12611, 22, "'N'"), -(12612, 0, "'o'"), -(12613, 0, "'n'"), -(12614, 0, "'e'"), -(12614, 1, "''"), -(12614, 0, "'e'"), -(12580, 1, "''"), -(12579, 1, "''"), -(12579, 0, "'l'"), -(12580, 0, "'o'"), -(12581, 0, "'c'"), -(12582, 0, "'a'"), -(12583, 0, "'l'"), -(12579, 5, "'local_index'"), -(12590, 0, "','"), -(3594, 0, "'impl ListItem for i32 {}n'"), -(3619, 0, "'impl ListItem for i32 {}n'"), -(3637, 3, "'u'"), -(3638, 0, "'s'"), -(3639, 0, "'i'"), -(3640, 0, "'z'"), -(3641, 0, "'e'"), -(3664, 3, "'i'"), -(3665, 0, "'s'"), -(3666, 0, "'i'"), -(3667, 0, "'z'"), -(3668, 0, "'e'"), -(3852, 0, "'impl ListItem for &i32 {}n'"), -(3878, 0, "'impl ListItem for &i32 {}n'"), -(3897, 3, "'u'"), -(3898, 0, "'s'"), -(3899, 0, "'i'"), -(3900, 0, "'z'"), -(3901, 0, "'e'"), -(3925, 3, "'i'"), -(3926, 0, "'s'"), -(3927, 0, "'i'"), -(3928, 0, "'z'"), -(3929, 0, "'e'"), -(50203, 1, "''"), -(50199, 3, "'t'"), -(50197, 1, "'del'"), -(50192, 4, "'n'"), -(50190, 1, "''"), -(48980, 1, "''"), -(48976, 3, "'t'"), -(48974, 1, "'del'"), -(48969, 4, "'n'"), -(48967, 1, "''"), -(4356, 1, "''"), -(4352, 3, "'t'"), -(4350, 1, "'del'"), -(4345, 4, "'n'"), -(4343, 1, "''"), -(4149, 1, "''"), -(4145, 3, "'t'"), -(4143, 1, "'del'"), -(4138, 4, "'n'"), -(4136, 1, "''"), -(55274, 3, "''"), -(55272, 1, "'_se'"), -(55271, 0, "'o'"), -(43854, 3, "''"), -(43852, 1, "'_se'"), -(43851, 0, "'o'"), -(40082, 3, "''"), -(40080, 1, "'_se'"), -(40079, 0, "'o'"), -(4266, 3, "''"), -(4264, 1, "'_se'"), -(4263, 0, "'o'"), -(4068, 3, "''"), -(4066, 1, "'_se'"), -(4065, 0, "'o'"), -(2354, 0, "'n'"), -(2355, 0, "'n'"), -(2356, 0, "'//! Utilities for formatting and printing strings.nn#![stable(feature = 'rust1', since = '1.0.0')]nnuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};nuse crate::marker::PhantomData;nuse crate::mem;nuse crate::num::flt2dec;nuse crate::ops::Deref;nuse crate::result;nuse crate::str;nnmod builders;nmod float;nmod num;nn#[stable(feature = 'fmt_flags_align', since = '1.28.0')]n/// Possible alignments returned by `Formatter::align`n#[derive(Debug)]npub enum Alignment {n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be left-aligned.n Left,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be right-aligned.n Right,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be center-aligned.n Center,n}nn#[stable(feature = 'debug_builders', since = '1.2.0')]npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};nn#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub mod rt {n pub mod v1;n}nn/// The type returned by formatter methods.n///n/// # Examplesn///n/// ```n/// use std::fmt;n///n/// #[derive(Debug)]n/// struct Triangle {n/// a: f32,n/// b: f32,n/// c: f32n/// }n///n/// impl fmt::Display for Triangle {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {}, {})', self.a, self.b, self.c)n/// }n/// }n///n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };n///n/// assert_eq!(format!('{}', pythagorean_triple), '(3, 4, 5)');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub type Result = result::Result<(), Error>;nn/// The error type which is returned from formatting a message into a stream.n///n/// This type does not support transmission of an error other than that an errorn/// occurred. Any extra information must be arranged to be transmitted throughn/// some other means.n///n/// An important thing to remember is that the type `fmt::Error` should not ben/// confused with [`std::io::Error`] or [`std::error::Error`], which you may alson/// have in scope.n///n/// [`std::io::Error`]: ../../std/io/struct.Error.htmln/// [`std::error::Error`]: ../../std/error/trait.Error.htmln///n/// # Examplesn///n/// ```rustn/// use std::fmt::{self, write};n///n/// let mut output = String::new();n/// if let Err(fmt::Error) = write(&mut output, format_args!('Hello {}!', 'world')) {n/// panic!('An error occurred');n/// }n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]npub struct Error;nn/// A collection of methods that are required to format a message into a stream.n///n/// This trait is the type which this modules requires when formattingn/// information. This is similar to the standard library's [`io::Write`] trait,n/// but it is only intended for use in libcore.n///n/// This trait should generally not be implemented by consumers of the standardn/// library. The [`write!`] macro accepts an instance of [`io::Write`], and then/// [`io::Write`] trait is favored over implementing this trait.n///n/// [`write!`]: ../../std/macro.write.htmln/// [`io::Write`]: ../../std/io/trait.Write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Write {n /// Writes a string slice into this writer, returning whether the writen /// succeeded.n ///n /// This method can only succeed if the entire string slice was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_str(s)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'hola').unwrap();n /// assert_eq!(&buf, 'hola');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_str(&mut self, s: &str) -> Result;nn /// Writes a [`char`] into this writer, returning whether the write succeeded.n ///n /// A single [`char`] may be encoded as more than one byte.n /// This method can only succeed if the entire byte sequence was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`char`]: ../../std/primitive.char.htmln /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {n /// f.write_char(c)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'a').unwrap();n /// writer(&mut buf, 'b').unwrap();n /// assert_eq!(&buf, 'ab');n /// ```n #[stable(feature = 'fmt_write_char', since = '1.1.0')]n fn write_char(&mut self, c: char) -> Result {n self.write_str(c.encode_utf8(&mut [0; 4]))n }nn /// Glue for usage of the [`write!`] macro with implementors of this trait.n ///n /// This method should generally not be invoked manually, but rather throughn /// the [`write!`] macro itself.n ///n /// [`write!`]: ../../std/macro.write.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_fmt(format_args!('{}', s))n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'world').unwrap();n /// assert_eq!(&buf, 'world');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {n write(&mut self, args)n }n}nn#[stable(feature = 'fmt_write_blanket_impl', since = '1.4.0')]nimpl Write for &mut W {n fn write_str(&mut self, s: &str) -> Result {n (**self).write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n (**self).write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n (**self).write_fmt(args)n }n}nn/// Configuration for formatting.n///n/// A `Formatter` represents various options related to formatting. Users do notn/// construct `Formatter`s directly; a mutable reference to one is passed ton/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].n///n/// To interact with a `Formatter`, you'll call various methods to change then/// various options related to formatting. For examples, please see then/// documentation of the methods defined on `Formatter` below.n///n/// [`Debug`]: trait.Debug.htmln/// [`Display`]: trait.Display.htmln#[allow(missing_debug_implementations)]n#[stable(feature = 'rust1', since = '1.0.0')]npub struct Formatter<'a> {n flags: u32,n fill: char,n align: rt::v1::Alignment,n width: Option,n precision: Option,nn buf: &'a mut (dyn Write + 'a),n}nn// NB. Argument is essentially an optimized partially applied formatting function,n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.nnextern 'C' {n type Opaque;n}nn/// This struct represents the generic 'argument' which is taken by the Xprintfn/// family of functions. It contains a function to format the given value. Atn/// compile time it is ensured that the function and the value have the correctn/// types, and then this struct is used to canonicalize arguments to one type.n#[derive(Copy, Clone)]n#[allow(missing_debug_implementations)]n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub struct ArgumentV1<'a> {n value: &'a Opaque,n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,n}nn// This guarantees a single stable value for the function pointer associated withn// indices/counts in the formatting infrastructure.n//n// Note that a function defined as such would not be correct as functions aren// always tagged unnamed_addr with the current lowering to LLVM IR, so theirn// address is not considered important to LLVM and as such the as_usize castn// could have been miscompiled. In practice, we never call as_usize on non-usizen// containing data (as a matter of static generation of the formattingn// arguments), so this is merely an additional check.n//n// We primarily want to ensure that the function pointer at `USIZE_MARKER` hasn// an address corresponding *only* to functions that also take `&usize` as theirn// first argument. The read_volatile here ensures that we can safely ready out an// usize from the passed reference and that this address does not point at an// non-usize taking function.n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {n // SAFETY: ptr is a referencen let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };n loop {}n};nnimpl<'a> ArgumentV1<'a> {n #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {n // SAFETY: `mem::transmute(x)` is safe becausen // 1. `&'b T` keeps the lifetime it originated with `'b`n // (so as to not have an unbounded lifetime)n // 2. `&'b T` and `&'b Opaque` have the same memory layoutn // (when `T` is `Sized`, as it is here)n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABIn // (as long as `T` is `Sized`)n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }n }nn #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {n ArgumentV1::new(x, USIZE_MARKER)n }nn fn as_usize(&self) -> Option {n if self.formatter as usize == USIZE_MARKER as usize {n // SAFETY: The `formatter` field is only set to USIZE_MARKER ifn // the value is a usize, so this is safen Some(unsafe { *(self.value as *const _ as *const usize) })n } else {n Nonen }n }n}nn// flags available in the v1 format of format_argsn#[derive(Copy, Clone)]nenum FlagV1 {n SignPlus,n SignMinus,n Alternate,n SignAwareZeroPad,n DebugLowerHex,n DebugUpperHex,n}nnimpl<'a> Arguments<'a> {n /// When using the format_args!() macro, this function is used to generate then /// Arguments structure.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {n Arguments { pieces, fmt: None, args }n }nn /// This function is used to specify nonstandard formatting parameters.n /// The `pieces` array must be at least as long as `fmt` to constructn /// a valid Arguments structure. Also, any `Count` within `fmt` that isn /// `CountIsParam` or `CountIsNextParam` has to point to an argumentn /// created with `argumentusize`. However, failing to do so doesn't causen /// unsafety, but will ignore invalid .n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1_formatted(n pieces: &'a [&'a str],n args: &'a [ArgumentV1<'a>],n fmt: &'a [rt::v1::Argument],n ) -> Arguments<'a> {n Arguments { pieces, fmt: Some(fmt), args }n }nn /// Estimates the length of the formatted text.n ///n /// This is intended to be used for setting initial `String` capacityn /// when using `format!`. Note: this is neither the lower nor upper bound.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn estimated_capacity(&self) -> usize {n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();nn if self.args.is_empty() {n pieces_lengthn } else if self.pieces[0] == '' && pieces_length < 16 {n // If the format string starts with an argument,n // don't preallocate anything, unless lengthn // of pieces is significant.n 0n } else {n // There are some arguments, so any additional pushn // will reallocate the string. To avoid that,n // we're 'pre-doubling' the capacity here.n pieces_length.checked_mul(2).unwrap_or(0)n }n }n}nn/// This structure represents a safely precompiled version of a format stringn/// and its arguments. This cannot be generated at runtime because it cannotn/// safely be done, so no constructors are given and the fields are privaten/// to prevent modification.n///n/// The [`format_args!`] macro will safely create an instance of this structure.n/// The macro validates the format string at compile-time so usage of then/// [`write`] and [`format`] functions can be safely performed.n///n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`n/// and `Display` contexts as seen below. The example also shows that `Debug`n/// and `Display` format to the same thing: the interpolated format stringn/// in `format_args!`.n///n/// ```rustn/// let debug = format!('{:?}', format_args!('{} foo {:?}', 1, 2));n/// let display = format!('{}', format_args!('{} foo {:?}', 1, 2));n/// assert_eq!('1 foo 2', display);n/// assert_eq!(display, debug);n/// ```n///n/// [`format_args!`]: ../../std/macro.format_args.htmln/// [`format`]: ../../std/fmt/fn.format.htmln/// [`write`]: ../../std/fmt/fn.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone)]npub struct Arguments<'a> {n // Format string pieces to print.n pieces: &'a [&'a str],nn // Placeholder specs, or `None` if all specs are default (as in '{}{}').n fmt: Option<&'a [rt::v1::Argument]>,nn // Dynamic arguments for interpolation, to be interleaved with stringn // pieces. (Every argument is preceded by a string piece.)n args: &'a [ArgumentV1<'a>],n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n Display::fmt(self, fmt)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n write(fmt.buf, *self)n }n}nn/// `?` formatting.n///n/// `Debug` should format the output in a programmer-facing, debugging context.n///n/// Generally speaking, you should just `derive` a `Debug` implementation.n///n/// When used with the alternate format specifier `#?`, the output is pretty-printed.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// This trait can be used with `#[derive]` if all fields implement `Debug`. Whenn/// `derive`d for structs, it will use the name of the `struct`, then `{`, then an/// comma-separated list of each field's name and `Debug` value, then `}`. Forn/// `enum`s, it will use the name of the variant and, if applicable, `(`, then then/// `Debug` values of the fields, then `)`.n///n/// # Stabilityn///n/// Derived `Debug` formats are not stable, and so may change with future Rustn/// versions. Additionally, `Debug` implementations of types provided by then/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, andn/// may also change with future Rust versions.n///n/// # Examplesn///n/// Deriving an implementation:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// Manually implementing:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Debug for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// f.debug_struct('Point')n/// .field('x', &self.x)n/// .field('y', &self.y)n/// .finish()n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// There are a number of helper methods on the [`Formatter`] struct to help you with manualn/// implementations, such as [`debug_struct`].n///n/// `Debug` implementations using either `derive` or the debug builder APIn/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.n///n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_structn/// [`Formatter`]: ../../std/fmt/struct.Formatter.htmln///n/// Pretty-printing with `#?`:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:#?}', origin),n/// 'The origin is: Point {n/// x: 0,n/// y: 0,n/// }');n/// ```nn#[stable(feature = 'rust1', since = '1.0.0')]n#[rustc_on_unimplemented(n on(n crate_local,n label = '`{Self}` cannot be formatted using `{{:?}}`',n note = 'add `#[derive(Debug)]` or manually implement `{Debug}`'n ),n message = '`{Self}` doesn't implement `{Debug}`',n label = '`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`'n)]n#[doc(alias = '{:?}')]n#[rustc_diagnostic_item = 'debug_trait']npub trait Debug {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Debug for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// f.debug_tuple('')n /// .field(&self.longitude)n /// .field(&self.latitude)n /// .finish()n /// }n /// }n ///n /// let position = Position { longitude: 1.987, latitude: 2.983 };n /// assert_eq!(format!('{:?}', position), '(1.987, 2.983)');n ///n /// assert_eq!(format!('{:#?}', position), '(n /// 1.987,n /// 2.983,n /// )');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.npub(crate) mod macros {n /// Derive macro generating an impl of the trait `Debug`.n #[rustc_builtin_macro]n #[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n #[allow_internal_unstable(core_intrinsics)]n pub macro Debug($item:item) {n /* compiler built-in */n }n}n#[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n#[doc(inline)]npub use macros::Debug;nn/// Format trait for an empty format, `{}`.n///n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facingn/// output, and so cannot be derived.n///n/// [debug]: trait.Debug.htmln///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Implementing `Display` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Display for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {})', self.x, self.y)n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {}', origin), 'The origin is: (0, 0)');n/// ```n#[rustc_on_unimplemented(n on(n _Self = 'std::path::Path',n label = '`{Self}` cannot be formatted with the default formatter; call `.display()` on it',n note = 'call `.display()` or `.to_string_lossy()` to safely print paths, n as they may contain non-Unicode data'n ),n message = '`{Self}` doesn't implement `{Display}`',n label = '`{Self}` cannot be formatted with the default formatter',n note = 'in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead'n)]n#[doc(alias = '{}')]n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Display {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Display for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// write!(f, '({}, {})', self.longitude, self.latitude)n /// }n /// }n ///n /// assert_eq!('(1.987, 2.983)',n /// format!('{}', Position { longitude: 1.987, latitude: 2.983, }));n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `o` formatting.n///n/// The `Octal` trait should format its output as a number in base-8.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0o` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '52' in octaln///n/// assert_eq!(format!('{:o}', x), '52');n/// assert_eq!(format!('{:#o}', x), '0o52');n///n/// assert_eq!(format!('{:o}', -16), '37777777760');n/// ```n///n/// Implementing `Octal` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Octal for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as octal is: {:o}', l), 'l as octal is: 11');n///n/// assert_eq!(format!('l as octal is: {:#06o}', l), 'l as octal is: 0o0011');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Octal {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `b` formatting.n///n/// The `Binary` trait should format its output as a number in binary.n///n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0b` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// # Examplesn///n/// Basic usage with [`i32`]:n///n/// ```n/// let x = 42; // 42 is '101010' in binaryn///n/// assert_eq!(format!('{:b}', x), '101010');n/// assert_eq!(format!('{:#b}', x), '0b101010');n///n/// assert_eq!(format!('{:b}', -16), '11111111111111111111111111110000');n/// ```n///n/// Implementing `Binary` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Binary for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(107);n///n/// assert_eq!(format!('l as binary is: {:b}', l), 'l as binary is: 1101011');n///n/// assert_eq!(n/// format!('l as binary is: {:#032b}', l),n/// 'l as binary is: 0b000000000000000000000001101011'n/// );n/// ```n///n/// [module]: ../../std/fmt/index.htmln/// [`i8`]: ../../std/primitive.i8.htmln/// [`i128`]: ../../std/primitive.i128.htmln/// [`isize`]: ../../std/primitive.isize.htmln/// [`i32`]: ../../std/primitive.i32.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Binary {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `x` formatting.n///n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`n/// in lower case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2a' in hexn///n/// assert_eq!(format!('{:x}', x), '2a');n/// assert_eq!(format!('{:#x}', x), '0x2a');n///n/// assert_eq!(format!('{:x}', -16), 'fffffff0');n/// ```n///n/// Implementing `LowerHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as hex is: {:x}', l), 'l as hex is: 9');n///n/// assert_eq!(format!('l as hex is: {:#010x}', l), 'l as hex is: 0x00000009');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `X` formatting.n///n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`n/// in upper case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2A' in hexn///n/// assert_eq!(format!('{:X}', x), '2A');n/// assert_eq!(format!('{:#X}', x), '0x2A');n///n/// assert_eq!(format!('{:X}', -16), 'FFFFFFF0');n/// ```n///n/// Implementing `UpperHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(i32::MAX);n///n/// assert_eq!(format!('l as hex is: {:X}', l), 'l as hex is: 7FFFFFFF');n///n/// assert_eq!(format!('l as hex is: {:#010X}', l), 'l as hex is: 0x7FFFFFFF');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `p` formatting.n///n/// The `Pointer` trait should format its output as a memory location. This is commonly presentedn/// as hexadecimal.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `&i32`:n///n/// ```n/// let x = &42;n///n/// let address = format!('{:p}', x); // this produces something like '0x7f06092ac6d0'n/// ```n///n/// Implementing `Pointer` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Pointer for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can usen///n/// let ptr = self as *const Self;n/// fmt::Pointer::fmt(&ptr, f)n/// }n/// }n///n/// let l = Length(42);n///n/// println!('l is in memory here: {:p}', l);n///n/// let l_ptr = format!('{:018p}', l);n/// assert_eq!(l_ptr.len(), 18);n/// assert_eq!(&l_ptr[..2], '0x');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Pointer {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `e` formatting.n///n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notationn///n/// assert_eq!(format!('{:e}', x), '4.2e1');n/// ```n///n/// Implementing `LowerExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:e}', l),n/// 'l in scientific notation is: 1e2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05e}', l),n/// 'l in scientific notation is: 001e2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `E` formatting.n///n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notationn///n/// assert_eq!(format!('{:E}', x), '4.2E1');n/// ```n///n/// Implementing `UpperExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:E}', l),n/// 'l in scientific notation is: 1E2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05E}', l),n/// 'l in scientific notation is: 001E2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// The `write` function takes an output stream, and an `Arguments` structn/// that can be precompiled with the `format_args!` macro.n///n/// The arguments will be formatted according to the specified format stringn/// into the output stream provided.n///n/// # Examplesn///n/// Basic usage:n///n/// ```n/// use std::fmt;n///n/// let mut output = String::new();n/// fmt::write(&mut output, format_args!('Hello {}!', 'world'))n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// Please note that using [`write!`] might be preferable. Example:n///n/// ```n/// use std::fmt::Write;n///n/// let mut output = String::new();n/// write!(&mut output, 'Hello {}!', 'world')n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// [`write!`]: ../../std/macro.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {n let mut formatter = Formatter {n flags: 0,n width: None,n precision: None,n buf: output,n align: rt::v1::Alignment::Unknown,n fill: ' ',n };nn let mut idx = 0;nn match args.fmt {n None => {n // We can use default formatting parameters for all arguments.n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n (arg.formatter)(arg.value, &mut formatter)?;n idx += 1;n }n }n Some(fmt) => {n // Every spec has a corresponding argument that is preceded byn // a string piece.n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n run(&mut formatter, arg, &args.args)?;n idx += 1;n }n }n }nn // There can be only one trailing string piece left.n if let Some(piece) = args.pieces.get(idx) {n formatter.buf.write_str(*piece)?;n }nn Ok(())n}nnfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {n fmt.fill = arg.format.fill;n fmt.align = arg.format.align;n fmt.flags = arg.format.flags;n fmt.width = getcount(args, &arg.format.width);n fmt.precision = getcount(args, &arg.format.precision);nn // Extract the correct argumentn let value = args[arg.position];nn // Then actually do some printingn (value.formatter)(value.value, fmt)n}nnfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {n match *cnt {n rt::v1::Count::Is(n) => Some(n),n rt::v1::Count::Implied => None,n rt::v1::Count::Param(i) => args[i].as_usize(),n }n}nn/// Padding after the end of something. Returned by `Formatter::padding`.n#[must_use = 'don't forget to write the post padding']nstruct PostPadding {n fill: char,n padding: usize,n}nnimpl PostPadding {n fn new(fill: char, padding: usize) -> PostPadding {n PostPadding { fill, padding }n }nn /// Write this post padding.n fn write(self, buf: &mut dyn Write) -> Result {n for _ in 0..self.padding {n buf.write_char(self.fill)?;n }n Ok(())n }n}nnimpl<'a> Formatter<'a> {n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>n wheren 'b: 'c,n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),n {n Formatter {n // We want to change thisn buf: wrap(self.buf),nn // And preserve thesen flags: self.flags,n fill: self.fill,n align: self.align,n width: self.width,n precision: self.precision,n }n }nn // Helper methods used for padding and processing formatting arguments thatn // all formatting traits can use.nn /// Performs the correct padding for an integer which has already beenn /// emitted into a str. The str should *not* contain the sign for then /// integer, that will be added by this method.n ///n /// # Argumentsn ///n /// * is_nonnegative - whether the original integer was either positive or zero.n /// * prefix - if the '#' character (Alternate) is provided, thisn /// is the prefix to put in front of the number.n /// * buf - the byte array that the number has been formatted inton ///n /// This function will correctly account for the flags provided as well asn /// the minimum width. It will not take precision into account.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo { nb: i32 };n ///n /// impl Foo {n /// fn new(nb: i32) -> Foo {n /// Foo {n /// nb,n /// }n /// }n /// }n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// // We need to remove '-' from the number output.n /// let tmp = self.nb.abs().to_string();n ///n /// formatter.pad_integral(self.nb > 0, 'Foo ', &tmp)n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo::new(2)), '2');n /// assert_eq!(&format!('{}', Foo::new(-1)), '-1');n /// assert_eq!(&format!('{:#}', Foo::new(-1)), '-Foo 1');n /// assert_eq!(&format!('{:0>#8}', Foo::new(-1)), '00-Foo 1');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {n let mut width = buf.len();nn let mut sign = None;n if !is_nonnegative {n sign = Some('-');n width += 1;n } else if self.sign_plus() {n sign = Some('+');n width += 1;n }nn let prefix = if self.alternate() {n width += prefix.chars().count();n Some(prefix)n } else {n Nonen };nn // Writes the sign if it exists, and then the prefix if it was requestedn #[inline(never)]n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {n if let Some(c) = sign {n f.buf.write_char(c)?;n }n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }n }nn // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If there's no minimum length requirements then we can justn // write the bytes.n None => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // Check if we're over the minimum width, if so then we can alson // just write the bytes.n Some(min) if width >= min => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // The sign and prefix goes before the padding if the fill charactern // is zeron Some(min) if self.sign_aware_zero_pad() => {n let old_fill = crate::mem::replace(&mut self.fill, '0');n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);n write_prefix(self, sign, prefix)?;n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)?;n self.fill = old_fill;n self.align = old_align;n Ok(())n }n // Otherwise, the sign and prefix goes after the paddingn Some(min) => {n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)n }n }n }nn /// This function takes a string slice and emits it to the internal buffern /// after applying the relevant formatting flags specified. The flagsn /// recognized for generic strings are:n ///n /// * width - the minimum width of what to emitn /// * fill/align - what to emit and where to emit it if the stringn /// provided needs to be paddedn /// * precision - the maximum length to emit, the string is truncated if itn /// is longer than this lengthn ///n /// Notably this function ignores the `flag` parameters.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.pad('Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{:<4}', Foo), 'Foo ');n /// assert_eq!(&format!('{:0>4}', Foo), '0Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad(&mut self, s: &str) -> Result {n // Make sure there's a fast path up frontn if self.width.is_none() && self.precision.is_none() {n return self.buf.write_str(s);n }n // The `precision` field can be interpreted as a `max-width` for then // string being formatted.n let s = if let Some(max) = self.precision {n // If our string is longer that the precision, then we must haven // truncation. However other flags like `fill`, `width` and `align`n // must act as always.n if let Some((i, _)) = s.char_indices().nth(max) {n // LLVM here can't prove that `..i` won't panic `&s[..i]`, butn // we know that it can't panic. Use `get` + `unwrap_or` to avoidn // `unsafe` and otherwise don't emit any panic-related coden // here.n s.get(..i).unwrap_or(&s)n } else {n &sn }n } else {n &sn };n // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If we're under the maximum length, and there's no minimum lengthn // requirements, then we can just emit the stringn None => self.buf.write_str(s),n // If we're under the maximum width, check if we're over the minimumn // width, if so it's as easy as just emitting the string.n Some(width) if s.chars().count() >= width => self.buf.write_str(s),n // If we're under both the maximum and the minimum width, then filln // up the minimum width with the specified string + some alignment.n Some(width) => {n let align = rt::v1::Alignment::Left;n let post_padding = self.padding(width - s.chars().count(), align)?;n self.buf.write_str(s)?;n post_padding.write(self.buf)n }n }n }nn /// Write the pre-padding and return the unwritten post-padding. Callers aren /// responsible for ensuring post-padding is written after the thing that isn /// being padded.n fn padding(n &mut self,n padding: usize,n default: rt::v1::Alignment,n ) -> result::Result {n let align = match self.align {n rt::v1::Alignment::Unknown => default,n _ => self.align,n };nn let (pre_pad, post_pad) = match align {n rt::v1::Alignment::Left => (0, padding),n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),n };nn for _ in 0..pre_pad {n self.buf.write_char(self.fill)?;n }nn Ok(PostPadding::new(self.fill, post_pad))n }nn /// Takes the formatted parts and applies the padding.n /// Assumes that the caller already has rendered the parts with required precision,n /// so that `self.precision` can be ignored.n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n if let Some(mut width) = self.width {n // for the sign-aware zero padding, we render the sign first andn // behave as if we had no sign from the beginning.n let mut formatted = formatted.clone();n let old_fill = self.fill;n let old_align = self.align;n let mut align = old_align;n if self.sign_aware_zero_pad() {n // a sign always goes firstn let sign = formatted.sign;n self.buf.write_str(sign)?;nn // remove the sign from the formatted partsn formatted.sign = '';n width = width.saturating_sub(sign.len());n align = rt::v1::Alignment::Right;n self.fill = '0';n self.align = rt::v1::Alignment::Right;n }nn // remaining parts go through the ordinary padding process.n let len = formatted.len();n let ret = if width <= len {n // no paddingn self.write_formatted_parts(&formatted)n } else {n let post_padding = self.padding(width - len, align)?;n self.write_formatted_parts(&formatted)?;n post_padding.write(self.buf)n };n self.fill = old_fill;n self.align = old_align;n retn } else {n // this is the common case and we take a shortcutn self.write_formatted_parts(formatted)n }n }nn fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.n // It's safe to use for `flt2dec::Part::Num` since every char `c` is betweenn // `b'0'` and `b'9'`, which means `s` is valid UTF-8.n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`n // since `buf` should be plain ASCII, but it's possible for someone to passn // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is an // public function.n // FIXME: Determine whether this could result in UB.n buf.write_str(unsafe { str::from_utf8_unchecked(s) })n }nn if !formatted.sign.is_empty() {n self.buf.write_str(formatted.sign)?;n }n for part in formatted.parts {n match *part {n flt2dec::Part::Zero(mut nzeroes) => {n const ZEROES: &str = // 64 zeroesn '0000000000000000000000000000000000000000000000000000000000000000';n while nzeroes > ZEROES.len() {n self.buf.write_str(ZEROES)?;n nzeroes -= ZEROES.len();n }n if nzeroes > 0 {n self.buf.write_str(&ZEROES[..nzeroes])?;n }n }n flt2dec::Part::Num(mut v) => {n let mut s = [0; 5];n let len = part.len();n for c in s[..len].iter_mut().rev() {n *c = b'0' + (v % 10) as u8;n v /= 10;n }n write_bytes(self.buf, &s[..len])?;n }n flt2dec::Part::Copy(buf) => {n write_bytes(self.buf, buf)?;n }n }n }n Ok(())n }nn /// Writes some data to the underlying buffer contained within thisn /// formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_str('Foo')n /// // This is equivalent to:n /// // write!(formatter, 'Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo), 'Foo');n /// assert_eq!(&format!('{:0>8}', Foo), 'Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_str(&mut self, data: &str) -> Result {n self.buf.write_str(data)n }nn /// Writes some formatted information into this instance.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_fmt(format_args!('Foo {}', self.0))n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo(-1)), 'Foo -1');n /// assert_eq!(&format!('{:0>8}', Foo(2)), 'Foo 2');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {n write(self.buf, fmt)n }nn /// Flags for formattingn #[stable(feature = 'rust1', since = '1.0.0')]n #[rustc_deprecated(n since = '1.24.0',n reason = 'use the `sign_plus`, `sign_minus`, `alternate`, n or `sign_aware_zero_pad` methods instead'n )]n pub fn flags(&self) -> u32 {n self.flagsn }nn /// Character used as 'fill' whenever there is alignment.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let c = formatter.fill();n /// if let Some(width) = formatter.width() {n /// for _ in 0..width {n /// write!(formatter, '{}', c)?;n /// }n /// Ok(())n /// } else {n /// write!(formatter, '{}', c)n /// }n /// }n /// }n ///n /// // We set alignment to the left with '>'.n /// assert_eq!(&format!('{:G>3}', Foo), 'GGG');n /// assert_eq!(&format!('{:t>6}', Foo), 'tttttt');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn fill(&self) -> char {n self.filln }nn /// Flag indicating what form of alignment was requested.n ///n /// # Examplesn ///n /// ```n /// extern crate core;n ///n /// use std::fmt::{self, Alignment};n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let s = if let Some(s) = formatter.align() {n /// match s {n /// Alignment::Left => 'left',n /// Alignment::Right => 'right',n /// Alignment::Center => 'center',n /// }n /// } else {n /// 'into the void'n /// };n /// write!(formatter, '{}', s)n /// }n /// }n ///n /// assert_eq!(&format!('{:<}', Foo), 'left');n /// assert_eq!(&format!('{:>}', Foo), 'right');n /// assert_eq!(&format!('{:^}', Foo), 'center');n /// assert_eq!(&format!('{}', Foo), 'into the void');n /// ```n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n pub fn align(&self) -> Option {n match self.align {n rt::v1::Alignment::Left => Some(Alignment::Left),n rt::v1::Alignment::Right => Some(Alignment::Right),n rt::v1::Alignment::Center => Some(Alignment::Center),n rt::v1::Alignment::Unknown => None,n }n }nn /// Optionally specified integer width that the output should be.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(width) = formatter.width() {n /// // If we received a width, we use itn /// write!(formatter, '{:width$}', &format!('Foo({})', self.0), width = width)n /// } else {n /// // Otherwise we do nothing specialn /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:10}', Foo(23)), 'Foo(23) ');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn width(&self) -> Option {n self.widthn }nn /// Optionally specified precision for numeric types. Alternatively, then /// maximum width for string types.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(f32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(precision) = formatter.precision() {n /// // If we received a precision, we use it.n /// write!(formatter, 'Foo({1:.*})', precision, self.0)n /// } else {n /// // Otherwise we default to 2.n /// write!(formatter, 'Foo({:.2})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:.4}', Foo(23.2)), 'Foo(23.2000)');n /// assert_eq!(&format!('{}', Foo(23.2)), 'Foo(23.20)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn precision(&self) -> Option {n self.precisionn }nn /// Determines if the `+` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_plus() {n /// write!(formatter,n /// 'Foo({}{})',n /// if self.0 < 0 { '-' } else { '+' },n /// self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:+}', Foo(23)), 'Foo(+23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_plus(&self) -> bool {n self.flags & (1 << FlagV1::SignPlus as u32) != 0n }nn /// Determines if the `-` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_minus() {n /// // You want a minus sign? Have one!n /// write!(formatter, '-Foo({})', self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:-}', Foo(23)), '-Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_minus(&self) -> bool {n self.flags & (1 << FlagV1::SignMinus as u32) != 0n }nn /// Determines if the `#` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.alternate() {n /// write!(formatter, 'Foo({})', self.0)n /// } else {n /// write!(formatter, '{}', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:#}', Foo(23)), 'Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn alternate(&self) -> bool {n self.flags & (1 << FlagV1::Alternate as u32) != 0n }nn /// Determines if the `0` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// assert!(formatter.sign_aware_zero_pad());n /// assert_eq!(formatter.width(), Some(4));n /// // We ignore the formatter's options.n /// write!(formatter, '{}', self.0)n /// }n /// }n ///n /// assert_eq!(&format!('{:04}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_aware_zero_pad(&self) -> bool {n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0n }nn // FIXME: Decide what public API we want for these two flags.n // https://github.com/rust-lang/rust/issues/48584n fn debug_lower_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0n }nn fn debug_upper_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0n }nn /// Creates a [`DebugStruct`] builder designed to assist with creation ofn /// [`fmt::Debug`] implementations for structs.n ///n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.htmln /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.htmln ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::net::Ipv4Addr;n ///n /// struct Foo {n /// bar: i32,n /// baz: String,n /// addr: Ipv4Addr,n /// }n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_struct('Foo')n /// .field('bar', &self.bar)n /// .field('baz', &self.baz)n /// .field('addr', &format_args!('{}', self.addr))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo { bar: 10, baz: 'Hello World', addr: 127.0.0.1 }',n /// format!('{:?}', Foo {n /// bar: 10,n /// baz: 'Hello World'.to_string(),n /// addr: Ipv4Addr::new(127, 0, 0, 1),n /// })n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {n builders::debug_struct_new(self, name)n }nn /// Creates a `DebugTuple` builder designed to assist with creation ofn /// `fmt::Debug` implementations for tuple structs.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::marker::PhantomData;n ///n /// struct Foo(i32, String, PhantomData);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_tuple('Foo')n /// .field(&self.0)n /// .field(&self.1)n /// .field(&format_args!('_'))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo(10, 'Hello', _)',n /// format!('{:?}', Foo(10, 'Hello'.to_string(), PhantomData::))n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {n builders::debug_tuple_new(self, name)n }nn /// Creates a `DebugList` builder designed to assist with creation ofn /// `fmt::Debug` implementations for list-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_list().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '[10, 11]');n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {n builders::debug_list_new(self)n }nn /// Creates a `DebugSet` builder designed to assist with creation ofn /// `fmt::Debug` implementations for set-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '{10, 11}');n /// ```n ///n /// [`format_args!`]: ../../std/macro.format_args.htmln ///n /// In this more complex example, we use [`format_args!`] and `.debug_set()`n /// to build a list of match arms:n ///n /// ```rustn /// use std::fmt;n ///n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);n ///n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>n /// wheren /// L: 'a + fmt::Debug, R: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// L::fmt(&(self.0).0, fmt)?;n /// fmt.write_str(' => ')?;n /// R::fmt(&(self.0).1, fmt)n /// }n /// }n ///n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>n /// wheren /// K: 'a + fmt::Debug, V: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set()n /// .entries(self.0.iter().map(Arm))n /// .entry(&Arm(&(format_args!('_'), &self.1)))n /// .finish()n /// }n /// }n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {n builders::debug_set_new(self)n }nn /// Creates a `DebugMap` builder designed to assist with creation ofn /// `fmt::Debug` implementations for map-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec<(String, i32)>);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()n /// }n /// }n ///n /// assert_eq!(n /// format!('{:?}', Foo(vec![('A'.to_string(), 10), ('B'.to_string(), 11)])),n /// r#'{'A': 10, 'B': 11}'#n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {n builders::debug_map_new(self)n }n}nn#[stable(since = '1.2.0', feature = 'formatter_write')]nimpl Write for Formatter<'_> {n fn write_str(&mut self, s: &str) -> Result {n self.buf.write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n self.buf.write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n write(self.buf, args)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Error {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt('an error occurred when formatting an argument', f)n }n}nn// Implementations of the core formatting traitsnnmacro_rules! fmt_refs {n ($($tr:ident),*) => {n $(n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n )*n }n}nnfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Debug for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Display for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for bool {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(self, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for bool {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(if *self { 'true' } else { 'false' }, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n let mut from = 0;n for (i, c) in self.char_indices() {n let esc = c.escape_debug();n // If char needs escaping, flush backlog so far and write, else skipn if esc.len() != 1 {n f.write_str(&self[from..i])?;n for c in esc {n f.write_char(c)?;n }n from = i + c.len_utf8();n }n }n f.write_str(&self[from..])?;n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad(self)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n for c in self.escape_debug() {n f.write_char(c)?n }n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n if f.width.is_none() && f.precision.is_none() {n f.write_char(*self)n } else {n f.pad(self.encode_utf8(&mut [0; 4]))n }n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let old_width = f.width;n let old_flags = f.flags;nn // The alternate flag is already treated by LowerHex as being special-n // it denotes whether to prefix with 0x. We use it to work out whethern // or not to zero extend, and then unconditionally set it to get then // prefix.n if f.alternate() {n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);nn if f.width.is_none() {n f.width = Some(((mem::size_of::() * 8) / 4) + 2);n }n }n f.flags |= 1 << (FlagV1::Alternate as u32);nn let ret = LowerHex::fmt(&(*self as *const () as usize), f);nn f.width = old_width;n f.flags = old_flags;nn retn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(&**self as *const T), f)n }n}nn// Implementation of Display/Debug for various core typesnn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}nnmacro_rules! peel {n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })n}nnmacro_rules! tuple {n () => ();n ( $($name:ident,)+ ) => (n #[stable(feature = 'rust1', since = '1.0.0')]n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {n #[allow(non_snake_case, unused_assignments)]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let mut builder = f.debug_tuple('');n let ($(ref $name,)+) = *self;n $(n builder.field(&$name);n )+nn builder.finish()n }n }n peel! { $($name,)+ }n )n}nnmacro_rules! last_type {n ($a:ident,) => { $a };n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };n}nntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for [T] {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.debug_list().entries(self.iter()).finish()n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for () {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('()')n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for PhantomData {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('PhantomData')n }n}'"), -(2356, 69106, "''"), -(2356, 0, "'//! Utilities for formatting and printing strings.nn#![stable(feature = 'rust1', since = '1.0.0')]nnuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};nuse crate::marker::PhantomData;nuse crate::mem;nuse crate::num::flt2dec;nuse crate::ops::Deref;nuse crate::result;nuse crate::str;nnmod builders;nmod float;nmod num;nn#[stable(feature = 'fmt_flags_align', since = '1.28.0')]n/// Possible alignments returned by `Formatter::align`n#[derive(Debug)]npub enum Alignment {n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be left-aligned.n Left,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be right-aligned.n Right,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be center-aligned.n Center,n}nn#[stable(feature = 'debug_builders', since = '1.2.0')]npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};nn#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub mod rt {n pub mod v1;n}nn/// The type returned by formatter methods.n///n/// # Examplesn///n/// ```n/// use std::fmt;n///n/// #[derive(Debug)]n/// struct Triangle {n/// a: f32,n/// b: f32,n/// c: f32n/// }n///n/// impl fmt::Display for Triangle {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {}, {})', self.a, self.b, self.c)n/// }n/// }n///n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };n///n/// assert_eq!(format!('{}', pythagorean_triple), '(3, 4, 5)');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub type Result = result::Result<(), Error>;nn/// The error type which is returned from formatting a message into a stream.n///n/// This type does not support transmission of an error other than that an errorn/// occurred. Any extra information must be arranged to be transmitted throughn/// some other means.n///n/// An important thing to remember is that the type `fmt::Error` should not ben/// confused with [`std::io::Error`] or [`std::error::Error`], which you may alson/// have in scope.n///n/// [`std::io::Error`]: ../../std/io/struct.Error.htmln/// [`std::error::Error`]: ../../std/error/trait.Error.htmln///n/// # Examplesn///n/// ```rustn/// use std::fmt::{self, write};n///n/// let mut output = String::new();n/// if let Err(fmt::Error) = write(&mut output, format_args!('Hello {}!', 'world')) {n/// panic!('An error occurred');n/// }n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]npub struct Error;nn/// A collection of methods that are required to format a message into a stream.n///n/// This trait is the type which this modules requires when formattingn/// information. This is similar to the standard library's [`io::Write`] trait,n/// but it is only intended for use in libcore.n///n/// This trait should generally not be implemented by consumers of the standardn/// library. The [`write!`] macro accepts an instance of [`io::Write`], and then/// [`io::Write`] trait is favored over implementing this trait.n///n/// [`write!`]: ../../std/macro.write.htmln/// [`io::Write`]: ../../std/io/trait.Write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Write {n /// Writes a string slice into this writer, returning whether the writen /// succeeded.n ///n /// This method can only succeed if the entire string slice was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_str(s)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'hola').unwrap();n /// assert_eq!(&buf, 'hola');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_str(&mut self, s: &str) -> Result;nn /// Writes a [`char`] into this writer, returning whether the write succeeded.n ///n /// A single [`char`] may be encoded as more than one byte.n /// This method can only succeed if the entire byte sequence was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`char`]: ../../std/primitive.char.htmln /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {n /// f.write_char(c)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'a').unwrap();n /// writer(&mut buf, 'b').unwrap();n /// assert_eq!(&buf, 'ab');n /// ```n #[stable(feature = 'fmt_write_char', since = '1.1.0')]n fn write_char(&mut self, c: char) -> Result {n self.write_str(c.encode_utf8(&mut [0; 4]))n }nn /// Glue for usage of the [`write!`] macro with implementors of this trait.n ///n /// This method should generally not be invoked manually, but rather throughn /// the [`write!`] macro itself.n ///n /// [`write!`]: ../../std/macro.write.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_fmt(format_args!('{}', s))n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'world').unwrap();n /// assert_eq!(&buf, 'world');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {n write(&mut self, args)n }n}nn#[stable(feature = 'fmt_write_blanket_impl', since = '1.4.0')]nimpl Write for &mut W {n fn write_str(&mut self, s: &str) -> Result {n (**self).write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n (**self).write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n (**self).write_fmt(args)n }n}nn/// Configuration for formatting.n///n/// A `Formatter` represents various options related to formatting. Users do notn/// construct `Formatter`s directly; a mutable reference to one is passed ton/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].n///n/// To interact with a `Formatter`, you'll call various methods to change then/// various options related to formatting. For examples, please see then/// documentation of the methods defined on `Formatter` below.n///n/// [`Debug`]: trait.Debug.htmln/// [`Display`]: trait.Display.htmln#[allow(missing_debug_implementations)]n#[stable(feature = 'rust1', since = '1.0.0')]npub struct Formatter<'a> {n flags: u32,n fill: char,n align: rt::v1::Alignment,n width: Option,n precision: Option,nn buf: &'a mut (dyn Write + 'a),n}nn// NB. Argument is essentially an optimized partially applied formatting function,n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.nnextern 'C' {n type Opaque;n}nn/// This struct represents the generic 'argument' which is taken by the Xprintfn/// family of functions. It contains a function to format the given value. Atn/// compile time it is ensured that the function and the value have the correctn/// types, and then this struct is used to canonicalize arguments to one type.n#[derive(Copy, Clone)]n#[allow(missing_debug_implementations)]n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub struct ArgumentV1<'a> {n value: &'a Opaque,n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,n}nn// This guarantees a single stable value for the function pointer associated withn// indices/counts in the formatting infrastructure.n//n// Note that a function defined as such would not be correct as functions aren// always tagged unnamed_addr with the current lowering to LLVM IR, so theirn// address is not considered important to LLVM and as such the as_usize castn// could have been miscompiled. In practice, we never call as_usize on non-usizen// containing data (as a matter of static generation of the formattingn// arguments), so this is merely an additional check.n//n// We primarily want to ensure that the function pointer at `USIZE_MARKER` hasn// an address corresponding *only* to functions that also take `&usize` as theirn// first argument. The read_volatile here ensures that we can safely ready out an// usize from the passed reference and that this address does not point at an// non-usize taking function.n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {n // SAFETY: ptr is a referencen let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };n loop {}n};nnimpl<'a> ArgumentV1<'a> {n #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {n // SAFETY: `mem::transmute(x)` is safe becausen // 1. `&'b T` keeps the lifetime it originated with `'b`n // (so as to not have an unbounded lifetime)n // 2. `&'b T` and `&'b Opaque` have the same memory layoutn // (when `T` is `Sized`, as it is here)n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABIn // (as long as `T` is `Sized`)n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }n }nn #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {n ArgumentV1::new(x, USIZE_MARKER)n }nn fn as_usize(&self) -> Option {n if self.formatter as usize == USIZE_MARKER as usize {n // SAFETY: The `formatter` field is only set to USIZE_MARKER ifn // the value is a usize, so this is safen Some(unsafe { *(self.value as *const _ as *const usize) })n } else {n Nonen }n }n}nn// flags available in the v1 format of format_argsn#[derive(Copy, Clone)]nenum FlagV1 {n SignPlus,n SignMinus,n Alternate,n SignAwareZeroPad,n DebugLowerHex,n DebugUpperHex,n}nnimpl<'a> Arguments<'a> {n /// When using the format_args!() macro, this function is used to generate then /// Arguments structure.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {n Arguments { pieces, fmt: None, args }n }nn /// This function is used to specify nonstandard formatting parameters.n /// The `pieces` array must be at least as long as `fmt` to constructn /// a valid Arguments structure. Also, any `Count` within `fmt` that isn /// `CountIsParam` or `CountIsNextParam` has to point to an argumentn /// created with `argumentusize`. However, failing to do so doesn't causen /// unsafety, but will ignore invalid .n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1_formatted(n pieces: &'a [&'a str],n args: &'a [ArgumentV1<'a>],n fmt: &'a [rt::v1::Argument],n ) -> Arguments<'a> {n Arguments { pieces, fmt: Some(fmt), args }n }nn /// Estimates the length of the formatted text.n ///n /// This is intended to be used for setting initial `String` capacityn /// when using `format!`. Note: this is neither the lower nor upper bound.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn estimated_capacity(&self) -> usize {n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();nn if self.args.is_empty() {n pieces_lengthn } else if self.pieces[0] == '' && pieces_length < 16 {n // If the format string starts with an argument,n // don't preallocate anything, unless lengthn // of pieces is significant.n 0n } else {n // There are some arguments, so any additional pushn // will reallocate the string. To avoid that,n // we're 'pre-doubling' the capacity here.n pieces_length.checked_mul(2).unwrap_or(0)n }n }n}nn/// This structure represents a safely precompiled version of a format stringn/// and its arguments. This cannot be generated at runtime because it cannotn/// safely be done, so no constructors are given and the fields are privaten/// to prevent modification.n///n/// The [`format_args!`] macro will safely create an instance of this structure.n/// The macro validates the format string at compile-time so usage of then/// [`write`] and [`format`] functions can be safely performed.n///n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`n/// and `Display` contexts as seen below. The example also shows that `Debug`n/// and `Display` format to the same thing: the interpolated format stringn/// in `format_args!`.n///n/// ```rustn/// let debug = format!('{:?}', format_args!('{} foo {:?}', 1, 2));n/// let display = format!('{}', format_args!('{} foo {:?}', 1, 2));n/// assert_eq!('1 foo 2', display);n/// assert_eq!(display, debug);n/// ```n///n/// [`format_args!`]: ../../std/macro.format_args.htmln/// [`format`]: ../../std/fmt/fn.format.htmln/// [`write`]: ../../std/fmt/fn.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone)]npub struct Arguments<'a> {n // Format string pieces to print.n pieces: &'a [&'a str],nn // Placeholder specs, or `None` if all specs are default (as in '{}{}').n fmt: Option<&'a [rt::v1::Argument]>,nn // Dynamic arguments for interpolation, to be interleaved with stringn // pieces. (Every argument is preceded by a string piece.)n args: &'a [ArgumentV1<'a>],n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n Display::fmt(self, fmt)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n write(fmt.buf, *self)n }n}nn/// `?` formatting.n///n/// `Debug` should format the output in a programmer-facing, debugging context.n///n/// Generally speaking, you should just `derive` a `Debug` implementation.n///n/// When used with the alternate format specifier `#?`, the output is pretty-printed.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// This trait can be used with `#[derive]` if all fields implement `Debug`. Whenn/// `derive`d for structs, it will use the name of the `struct`, then `{`, then an/// comma-separated list of each field's name and `Debug` value, then `}`. Forn/// `enum`s, it will use the name of the variant and, if applicable, `(`, then then/// `Debug` values of the fields, then `)`.n///n/// # Stabilityn///n/// Derived `Debug` formats are not stable, and so may change with future Rustn/// versions. Additionally, `Debug` implementations of types provided by then/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, andn/// may also change with future Rust versions.n///n/// # Examplesn///n/// Deriving an implementation:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// Manually implementing:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Debug for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// f.debug_struct('Point')n/// .field('x', &self.x)n/// .field('y', &self.y)n/// .finish()n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// There are a number of helper methods on the [`Formatter`] struct to help you with manualn/// implementations, such as [`debug_struct`].n///n/// `Debug` implementations using either `derive` or the debug builder APIn/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.n///n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_structn/// [`Formatter`]: ../../std/fmt/struct.Formatter.htmln///n/// Pretty-printing with `#?`:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:#?}', origin),n/// 'The origin is: Point {n/// x: 0,n/// y: 0,n/// }');n/// ```nn#[stable(feature = 'rust1', since = '1.0.0')]n#[rustc_on_unimplemented(n on(n crate_local,n label = '`{Self}` cannot be formatted using `{{:?}}`',n note = 'add `#[derive(Debug)]` or manually implement `{Debug}`'n ),n message = '`{Self}` doesn't implement `{Debug}`',n label = '`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`'n)]n#[doc(alias = '{:?}')]n#[rustc_diagnostic_item = 'debug_trait']npub trait Debug {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Debug for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// f.debug_tuple('')n /// .field(&self.longitude)n /// .field(&self.latitude)n /// .finish()n /// }n /// }n ///n /// let position = Position { longitude: 1.987, latitude: 2.983 };n /// assert_eq!(format!('{:?}', position), '(1.987, 2.983)');n ///n /// assert_eq!(format!('{:#?}', position), '(n /// 1.987,n /// 2.983,n /// )');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.npub(crate) mod macros {n /// Derive macro generating an impl of the trait `Debug`.n #[rustc_builtin_macro]n #[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n #[allow_internal_unstable(core_intrinsics)]n pub macro Debug($item:item) {n /* compiler built-in */n }n}n#[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n#[doc(inline)]npub use macros::Debug;nn/// Format trait for an empty format, `{}`.n///n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facingn/// output, and so cannot be derived.n///n/// [debug]: trait.Debug.htmln///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Implementing `Display` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Display for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {})', self.x, self.y)n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {}', origin), 'The origin is: (0, 0)');n/// ```n#[rustc_on_unimplemented(n on(n _Self = 'std::path::Path',n label = '`{Self}` cannot be formatted with the default formatter; call `.display()` on it',n note = 'call `.display()` or `.to_string_lossy()` to safely print paths, n as they may contain non-Unicode data'n ),n message = '`{Self}` doesn't implement `{Display}`',n label = '`{Self}` cannot be formatted with the default formatter',n note = 'in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead'n)]n#[doc(alias = '{}')]n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Display {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Display for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// write!(f, '({}, {})', self.longitude, self.latitude)n /// }n /// }n ///n /// assert_eq!('(1.987, 2.983)',n /// format!('{}', Position { longitude: 1.987, latitude: 2.983, }));n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `o` formatting.n///n/// The `Octal` trait should format its output as a number in base-8.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0o` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '52' in octaln///n/// assert_eq!(format!('{:o}', x), '52');n/// assert_eq!(format!('{:#o}', x), '0o52');n///n/// assert_eq!(format!('{:o}', -16), '37777777760');n/// ```n///n/// Implementing `Octal` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Octal for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as octal is: {:o}', l), 'l as octal is: 11');n///n/// assert_eq!(format!('l as octal is: {:#06o}', l), 'l as octal is: 0o0011');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Octal {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `b` formatting.n///n/// The `Binary` trait should format its output as a number in binary.n///n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0b` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// # Examplesn///n/// Basic usage with [`i32`]:n///n/// ```n/// let x = 42; // 42 is '101010' in binaryn///n/// assert_eq!(format!('{:b}', x), '101010');n/// assert_eq!(format!('{:#b}', x), '0b101010');n///n/// assert_eq!(format!('{:b}', -16), '11111111111111111111111111110000');n/// ```n///n/// Implementing `Binary` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Binary for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(107);n///n/// assert_eq!(format!('l as binary is: {:b}', l), 'l as binary is: 1101011');n///n/// assert_eq!(n/// format!('l as binary is: {:#032b}', l),n/// 'l as binary is: 0b000000000000000000000001101011'n/// );n/// ```n///n/// [module]: ../../std/fmt/index.htmln/// [`i8`]: ../../std/primitive.i8.htmln/// [`i128`]: ../../std/primitive.i128.htmln/// [`isize`]: ../../std/primitive.isize.htmln/// [`i32`]: ../../std/primitive.i32.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Binary {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `x` formatting.n///n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`n/// in lower case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2a' in hexn///n/// assert_eq!(format!('{:x}', x), '2a');n/// assert_eq!(format!('{:#x}', x), '0x2a');n///n/// assert_eq!(format!('{:x}', -16), 'fffffff0');n/// ```n///n/// Implementing `LowerHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as hex is: {:x}', l), 'l as hex is: 9');n///n/// assert_eq!(format!('l as hex is: {:#010x}', l), 'l as hex is: 0x00000009');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `X` formatting.n///n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`n/// in upper case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2A' in hexn///n/// assert_eq!(format!('{:X}', x), '2A');n/// assert_eq!(format!('{:#X}', x), '0x2A');n///n/// assert_eq!(format!('{:X}', -16), 'FFFFFFF0');n/// ```n///n/// Implementing `UpperHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(i32::MAX);n///n/// assert_eq!(format!('l as hex is: {:X}', l), 'l as hex is: 7FFFFFFF');n///n/// assert_eq!(format!('l as hex is: {:#010X}', l), 'l as hex is: 0x7FFFFFFF');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `p` formatting.n///n/// The `Pointer` trait should format its output as a memory location. This is commonly presentedn/// as hexadecimal.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `&i32`:n///n/// ```n/// let x = &42;n///n/// let address = format!('{:p}', x); // this produces something like '0x7f06092ac6d0'n/// ```n///n/// Implementing `Pointer` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Pointer for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can usen///n/// let ptr = self as *const Self;n/// fmt::Pointer::fmt(&ptr, f)n/// }n/// }n///n/// let l = Length(42);n///n/// println!('l is in memory here: {:p}', l);n///n/// let l_ptr = format!('{:018p}', l);n/// assert_eq!(l_ptr.len(), 18);n/// assert_eq!(&l_ptr[..2], '0x');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Pointer {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `e` formatting.n///n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notationn///n/// assert_eq!(format!('{:e}', x), '4.2e1');n/// ```n///n/// Implementing `LowerExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:e}', l),n/// 'l in scientific notation is: 1e2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05e}', l),n/// 'l in scientific notation is: 001e2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `E` formatting.n///n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notationn///n/// assert_eq!(format!('{:E}', x), '4.2E1');n/// ```n///n/// Implementing `UpperExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:E}', l),n/// 'l in scientific notation is: 1E2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05E}', l),n/// 'l in scientific notation is: 001E2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// The `write` function takes an output stream, and an `Arguments` structn/// that can be precompiled with the `format_args!` macro.n///n/// The arguments will be formatted according to the specified format stringn/// into the output stream provided.n///n/// # Examplesn///n/// Basic usage:n///n/// ```n/// use std::fmt;n///n/// let mut output = String::new();n/// fmt::write(&mut output, format_args!('Hello {}!', 'world'))n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// Please note that using [`write!`] might be preferable. Example:n///n/// ```n/// use std::fmt::Write;n///n/// let mut output = String::new();n/// write!(&mut output, 'Hello {}!', 'world')n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// [`write!`]: ../../std/macro.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {n let mut formatter = Formatter {n flags: 0,n width: None,n precision: None,n buf: output,n align: rt::v1::Alignment::Unknown,n fill: ' ',n };nn let mut idx = 0;nn match args.fmt {n None => {n // We can use default formatting parameters for all arguments.n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n (arg.formatter)(arg.value, &mut formatter)?;n idx += 1;n }n }n Some(fmt) => {n // Every spec has a corresponding argument that is preceded byn // a string piece.n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n run(&mut formatter, arg, &args.args)?;n idx += 1;n }n }n }nn // There can be only one trailing string piece left.n if let Some(piece) = args.pieces.get(idx) {n formatter.buf.write_str(*piece)?;n }nn Ok(())n}nnfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {n fmt.fill = arg.format.fill;n fmt.align = arg.format.align;n fmt.flags = arg.format.flags;n fmt.width = getcount(args, &arg.format.width);n fmt.precision = getcount(args, &arg.format.precision);nn // Extract the correct argumentn let value = args[arg.position];nn // Then actually do some printingn (value.formatter)(value.value, fmt)n}nnfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {n match *cnt {n rt::v1::Count::Is(n) => Some(n),n rt::v1::Count::Implied => None,n rt::v1::Count::Param(i) => args[i].as_usize(),n }n}nn/// Padding after the end of something. Returned by `Formatter::padding`.n#[must_use = 'don't forget to write the post padding']nstruct PostPadding {n fill: char,n padding: usize,n}nnimpl PostPadding {n fn new(fill: char, padding: usize) -> PostPadding {n PostPadding { fill, padding }n }nn /// Write this post padding.n fn write(self, buf: &mut dyn Write) -> Result {n for _ in 0..self.padding {n buf.write_char(self.fill)?;n }n Ok(())n }n}nnimpl<'a> Formatter<'a> {n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>n wheren 'b: 'c,n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),n {n Formatter {n // We want to change thisn buf: wrap(self.buf),nn // And preserve thesen flags: self.flags,n fill: self.fill,n align: self.align,n width: self.width,n precision: self.precision,n }n }nn // Helper methods used for padding and processing formatting arguments thatn // all formatting traits can use.nn /// Performs the correct padding for an integer which has already beenn /// emitted into a str. The str should *not* contain the sign for then /// integer, that will be added by this method.n ///n /// # Argumentsn ///n /// * is_nonnegative - whether the original integer was either positive or zero.n /// * prefix - if the '#' character (Alternate) is provided, thisn /// is the prefix to put in front of the number.n /// * buf - the byte array that the number has been formatted inton ///n /// This function will correctly account for the flags provided as well asn /// the minimum width. It will not take precision into account.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo { nb: i32 };n ///n /// impl Foo {n /// fn new(nb: i32) -> Foo {n /// Foo {n /// nb,n /// }n /// }n /// }n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// // We need to remove '-' from the number output.n /// let tmp = self.nb.abs().to_string();n ///n /// formatter.pad_integral(self.nb > 0, 'Foo ', &tmp)n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo::new(2)), '2');n /// assert_eq!(&format!('{}', Foo::new(-1)), '-1');n /// assert_eq!(&format!('{:#}', Foo::new(-1)), '-Foo 1');n /// assert_eq!(&format!('{:0>#8}', Foo::new(-1)), '00-Foo 1');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {n let mut width = buf.len();nn let mut sign = None;n if !is_nonnegative {n sign = Some('-');n width += 1;n } else if self.sign_plus() {n sign = Some('+');n width += 1;n }nn let prefix = if self.alternate() {n width += prefix.chars().count();n Some(prefix)n } else {n Nonen };nn // Writes the sign if it exists, and then the prefix if it was requestedn #[inline(never)]n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {n if let Some(c) = sign {n f.buf.write_char(c)?;n }n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }n }nn // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If there's no minimum length requirements then we can justn // write the bytes.n None => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // Check if we're over the minimum width, if so then we can alson // just write the bytes.n Some(min) if width >= min => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // The sign and prefix goes before the padding if the fill charactern // is zeron Some(min) if self.sign_aware_zero_pad() => {n let old_fill = crate::mem::replace(&mut self.fill, '0');n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);n write_prefix(self, sign, prefix)?;n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)?;n self.fill = old_fill;n self.align = old_align;n Ok(())n }n // Otherwise, the sign and prefix goes after the paddingn Some(min) => {n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)n }n }n }nn /// This function takes a string slice and emits it to the internal buffern /// after applying the relevant formatting flags specified. The flagsn /// recognized for generic strings are:n ///n /// * width - the minimum width of what to emitn /// * fill/align - what to emit and where to emit it if the stringn /// provided needs to be paddedn /// * precision - the maximum length to emit, the string is truncated if itn /// is longer than this lengthn ///n /// Notably this function ignores the `flag` parameters.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.pad('Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{:<4}', Foo), 'Foo ');n /// assert_eq!(&format!('{:0>4}', Foo), '0Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad(&mut self, s: &str) -> Result {n // Make sure there's a fast path up frontn if self.width.is_none() && self.precision.is_none() {n return self.buf.write_str(s);n }n // The `precision` field can be interpreted as a `max-width` for then // string being formatted.n let s = if let Some(max) = self.precision {n // If our string is longer that the precision, then we must haven // truncation. However other flags like `fill`, `width` and `align`n // must act as always.n if let Some((i, _)) = s.char_indices().nth(max) {n // LLVM here can't prove that `..i` won't panic `&s[..i]`, butn // we know that it can't panic. Use `get` + `unwrap_or` to avoidn // `unsafe` and otherwise don't emit any panic-related coden // here.n s.get(..i).unwrap_or(&s)n } else {n &sn }n } else {n &sn };n // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If we're under the maximum length, and there's no minimum lengthn // requirements, then we can just emit the stringn None => self.buf.write_str(s),n // If we're under the maximum width, check if we're over the minimumn // width, if so it's as easy as just emitting the string.n Some(width) if s.chars().count() >= width => self.buf.write_str(s),n // If we're under both the maximum and the minimum width, then filln // up the minimum width with the specified string + some alignment.n Some(width) => {n let align = rt::v1::Alignment::Left;n let post_padding = self.padding(width - s.chars().count(), align)?;n self.buf.write_str(s)?;n post_padding.write(self.buf)n }n }n }nn /// Write the pre-padding and return the unwritten post-padding. Callers aren /// responsible for ensuring post-padding is written after the thing that isn /// being padded.n fn padding(n &mut self,n padding: usize,n default: rt::v1::Alignment,n ) -> result::Result {n let align = match self.align {n rt::v1::Alignment::Unknown => default,n _ => self.align,n };nn let (pre_pad, post_pad) = match align {n rt::v1::Alignment::Left => (0, padding),n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),n };nn for _ in 0..pre_pad {n self.buf.write_char(self.fill)?;n }nn Ok(PostPadding::new(self.fill, post_pad))n }nn /// Takes the formatted parts and applies the padding.n /// Assumes that the caller already has rendered the parts with required precision,n /// so that `self.precision` can be ignored.n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n if let Some(mut width) = self.width {n // for the sign-aware zero padding, we render the sign first andn // behave as if we had no sign from the beginning.n let mut formatted = formatted.clone();n let old_fill = self.fill;n let old_align = self.align;n let mut align = old_align;n if self.sign_aware_zero_pad() {n // a sign always goes firstn let sign = formatted.sign;n self.buf.write_str(sign)?;nn // remove the sign from the formatted partsn formatted.sign = '';n width = width.saturating_sub(sign.len());n align = rt::v1::Alignment::Right;n self.fill = '0';n self.align = rt::v1::Alignment::Right;n }nn // remaining parts go through the ordinary padding process.n let len = formatted.len();n let ret = if width <= len {n // no paddingn self.write_formatted_parts(&formatted)n } else {n let post_padding = self.padding(width - len, align)?;n self.write_formatted_parts(&formatted)?;n post_padding.write(self.buf)n };n self.fill = old_fill;n self.align = old_align;n retn } else {n // this is the common case and we take a shortcutn self.write_formatted_parts(formatted)n }n }nn fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.n // It's safe to use for `flt2dec::Part::Num` since every char `c` is betweenn // `b'0'` and `b'9'`, which means `s` is valid UTF-8.n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`n // since `buf` should be plain ASCII, but it's possible for someone to passn // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is an // public function.n // FIXME: Determine whether this could result in UB.n buf.write_str(unsafe { str::from_utf8_unchecked(s) })n }nn if !formatted.sign.is_empty() {n self.buf.write_str(formatted.sign)?;n }n for part in formatted.parts {n match *part {n flt2dec::Part::Zero(mut nzeroes) => {n const ZEROES: &str = // 64 zeroesn '0000000000000000000000000000000000000000000000000000000000000000';n while nzeroes > ZEROES.len() {n self.buf.write_str(ZEROES)?;n nzeroes -= ZEROES.len();n }n if nzeroes > 0 {n self.buf.write_str(&ZEROES[..nzeroes])?;n }n }n flt2dec::Part::Num(mut v) => {n let mut s = [0; 5];n let len = part.len();n for c in s[..len].iter_mut().rev() {n *c = b'0' + (v % 10) as u8;n v /= 10;n }n write_bytes(self.buf, &s[..len])?;n }n flt2dec::Part::Copy(buf) => {n write_bytes(self.buf, buf)?;n }n }n }n Ok(())n }nn /// Writes some data to the underlying buffer contained within thisn /// formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_str('Foo')n /// // This is equivalent to:n /// // write!(formatter, 'Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo), 'Foo');n /// assert_eq!(&format!('{:0>8}', Foo), 'Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_str(&mut self, data: &str) -> Result {n self.buf.write_str(data)n }nn /// Writes some formatted information into this instance.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_fmt(format_args!('Foo {}', self.0))n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo(-1)), 'Foo -1');n /// assert_eq!(&format!('{:0>8}', Foo(2)), 'Foo 2');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {n write(self.buf, fmt)n }nn /// Flags for formattingn #[stable(feature = 'rust1', since = '1.0.0')]n #[rustc_deprecated(n since = '1.24.0',n reason = 'use the `sign_plus`, `sign_minus`, `alternate`, n or `sign_aware_zero_pad` methods instead'n )]n pub fn flags(&self) -> u32 {n self.flagsn }nn /// Character used as 'fill' whenever there is alignment.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let c = formatter.fill();n /// if let Some(width) = formatter.width() {n /// for _ in 0..width {n /// write!(formatter, '{}', c)?;n /// }n /// Ok(())n /// } else {n /// write!(formatter, '{}', c)n /// }n /// }n /// }n ///n /// // We set alignment to the left with '>'.n /// assert_eq!(&format!('{:G>3}', Foo), 'GGG');n /// assert_eq!(&format!('{:t>6}', Foo), 'tttttt');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn fill(&self) -> char {n self.filln }nn /// Flag indicating what form of alignment was requested.n ///n /// # Examplesn ///n /// ```n /// extern crate core;n ///n /// use std::fmt::{self, Alignment};n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let s = if let Some(s) = formatter.align() {n /// match s {n /// Alignment::Left => 'left',n /// Alignment::Right => 'right',n /// Alignment::Center => 'center',n /// }n /// } else {n /// 'into the void'n /// };n /// write!(formatter, '{}', s)n /// }n /// }n ///n /// assert_eq!(&format!('{:<}', Foo), 'left');n /// assert_eq!(&format!('{:>}', Foo), 'right');n /// assert_eq!(&format!('{:^}', Foo), 'center');n /// assert_eq!(&format!('{}', Foo), 'into the void');n /// ```n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n pub fn align(&self) -> Option {n match self.align {n rt::v1::Alignment::Left => Some(Alignment::Left),n rt::v1::Alignment::Right => Some(Alignment::Right),n rt::v1::Alignment::Center => Some(Alignment::Center),n rt::v1::Alignment::Unknown => None,n }n }nn /// Optionally specified integer width that the output should be.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(width) = formatter.width() {n /// // If we received a width, we use itn /// write!(formatter, '{:width$}', &format!('Foo({})', self.0), width = width)n /// } else {n /// // Otherwise we do nothing specialn /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:10}', Foo(23)), 'Foo(23) ');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn width(&self) -> Option {n self.widthn }nn /// Optionally specified precision for numeric types. Alternatively, then /// maximum width for string types.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(f32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(precision) = formatter.precision() {n /// // If we received a precision, we use it.n /// write!(formatter, 'Foo({1:.*})', precision, self.0)n /// } else {n /// // Otherwise we default to 2.n /// write!(formatter, 'Foo({:.2})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:.4}', Foo(23.2)), 'Foo(23.2000)');n /// assert_eq!(&format!('{}', Foo(23.2)), 'Foo(23.20)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn precision(&self) -> Option {n self.precisionn }nn /// Determines if the `+` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_plus() {n /// write!(formatter,n /// 'Foo({}{})',n /// if self.0 < 0 { '-' } else { '+' },n /// self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:+}', Foo(23)), 'Foo(+23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_plus(&self) -> bool {n self.flags & (1 << FlagV1::SignPlus as u32) != 0n }nn /// Determines if the `-` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_minus() {n /// // You want a minus sign? Have one!n /// write!(formatter, '-Foo({})', self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:-}', Foo(23)), '-Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_minus(&self) -> bool {n self.flags & (1 << FlagV1::SignMinus as u32) != 0n }nn /// Determines if the `#` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.alternate() {n /// write!(formatter, 'Foo({})', self.0)n /// } else {n /// write!(formatter, '{}', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:#}', Foo(23)), 'Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn alternate(&self) -> bool {n self.flags & (1 << FlagV1::Alternate as u32) != 0n }nn /// Determines if the `0` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// assert!(formatter.sign_aware_zero_pad());n /// assert_eq!(formatter.width(), Some(4));n /// // We ignore the formatter's options.n /// write!(formatter, '{}', self.0)n /// }n /// }n ///n /// assert_eq!(&format!('{:04}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_aware_zero_pad(&self) -> bool {n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0n }nn // FIXME: Decide what public API we want for these two flags.n // https://github.com/rust-lang/rust/issues/48584n fn debug_lower_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0n }nn fn debug_upper_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0n }nn /// Creates a [`DebugStruct`] builder designed to assist with creation ofn /// [`fmt::Debug`] implementations for structs.n ///n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.htmln /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.htmln ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::net::Ipv4Addr;n ///n /// struct Foo {n /// bar: i32,n /// baz: String,n /// addr: Ipv4Addr,n /// }n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_struct('Foo')n /// .field('bar', &self.bar)n /// .field('baz', &self.baz)n /// .field('addr', &format_args!('{}', self.addr))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo { bar: 10, baz: 'Hello World', addr: 127.0.0.1 }',n /// format!('{:?}', Foo {n /// bar: 10,n /// baz: 'Hello World'.to_string(),n /// addr: Ipv4Addr::new(127, 0, 0, 1),n /// })n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {n builders::debug_struct_new(self, name)n }nn /// Creates a `DebugTuple` builder designed to assist with creation ofn /// `fmt::Debug` implementations for tuple structs.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::marker::PhantomData;n ///n /// struct Foo(i32, String, PhantomData);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_tuple('Foo')n /// .field(&self.0)n /// .field(&self.1)n /// .field(&format_args!('_'))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo(10, 'Hello', _)',n /// format!('{:?}', Foo(10, 'Hello'.to_string(), PhantomData::))n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {n builders::debug_tuple_new(self, name)n }nn /// Creates a `DebugList` builder designed to assist with creation ofn /// `fmt::Debug` implementations for list-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_list().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '[10, 11]');n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {n builders::debug_list_new(self)n }nn /// Creates a `DebugSet` builder designed to assist with creation ofn /// `fmt::Debug` implementations for set-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '{10, 11}');n /// ```n ///n /// [`format_args!`]: ../../std/macro.format_args.htmln ///n /// In this more complex example, we use [`format_args!`] and `.debug_set()`n /// to build a list of match arms:n ///n /// ```rustn /// use std::fmt;n ///n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);n ///n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>n /// wheren /// L: 'a + fmt::Debug, R: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// L::fmt(&(self.0).0, fmt)?;n /// fmt.write_str(' => ')?;n /// R::fmt(&(self.0).1, fmt)n /// }n /// }n ///n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>n /// wheren /// K: 'a + fmt::Debug, V: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set()n /// .entries(self.0.iter().map(Arm))n /// .entry(&Arm(&(format_args!('_'), &self.1)))n /// .finish()n /// }n /// }n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {n builders::debug_set_new(self)n }nn /// Creates a `DebugMap` builder designed to assist with creation ofn /// `fmt::Debug` implementations for map-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec<(String, i32)>);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()n /// }n /// }n ///n /// assert_eq!(n /// format!('{:?}', Foo(vec![('A'.to_string(), 10), ('B'.to_string(), 11)])),n /// r#'{'A': 10, 'B': 11}'#n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {n builders::debug_map_new(self)n }n}nn#[stable(since = '1.2.0', feature = 'formatter_write')]nimpl Write for Formatter<'_> {n fn write_str(&mut self, s: &str) -> Result {n self.buf.write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n self.buf.write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n write(self.buf, args)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Error {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt('an error occurred when formatting an argument', f)n }n}nn// Implementations of the core formatting traitsnnmacro_rules! fmt_refs {n ($($tr:ident),*) => {n $(n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n )*n }n}nnfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Debug for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Display for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for bool {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(self, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for bool {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(if *self { 'true' } else { 'false' }, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n let mut from = 0;n for (i, c) in self.char_indices() {n let esc = c.escape_debug();n // If char needs escaping, flush backlog so far and write, else skipn if esc.len() != 1 {n f.write_str(&self[from..i])?;n for c in esc {n f.write_char(c)?;n }n from = i + c.len_utf8();n }n }n f.write_str(&self[from..])?;n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad(self)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n for c in self.escape_debug() {n f.write_char(c)?n }n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n if f.width.is_none() && f.precision.is_none() {n f.write_char(*self)n } else {n f.pad(self.encode_utf8(&mut [0; 4]))n }n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let old_width = f.width;n let old_flags = f.flags;nn // The alternate flag is already treated by LowerHex as being special-n // it denotes whether to prefix with 0x. We use it to work out whethern // or not to zero extend, and then unconditionally set it to get then // prefix.n if f.alternate() {n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);nn if f.width.is_none() {n f.width = Some(((mem::size_of::() * 8) / 4) + 2);n }n }n f.flags |= 1 << (FlagV1::Alternate as u32);nn let ret = LowerHex::fmt(&(*self as *const () as usize), f);nn f.width = old_width;n f.flags = old_flags;nn retn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(&**self as *const T), f)n }n}nn// Implementation of Display/Debug for various core typesnn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}nnmacro_rules! peel {n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })n}nnmacro_rules! tuple {n () => ();n ( $($name:ident,)+ ) => (n #[stable(feature = 'rust1', since = '1.0.0')]n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {n #[allow(non_snake_case, unused_assignments)]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let mut builder = f.debug_tuple('');n let ($(ref $name,)+) = *self;n $(n builder.field(&$name);n )+nn builder.finish()n }n }n peel! { $($name,)+ }n )n}nnmacro_rules! last_type {n ($a:ident,) => { $a };n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };n}nntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for [T] {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.debug_list().entries(self.iter()).finish()n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for () {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('()')n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for PhantomData {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('PhantomData')n }n}'"), -(2356, 69106, "''"), -(2356, 0, "'i'"), -(2357, 0, "'m'"), -(2358, 0, "'p'"), -(2359, 0, "'l'"), -(2356, 4, "''"), -(2259, 0, "'impl Default for ItemMarker {n fn default() -> Self { Self::null() }n}nn'"), -(2377, 7, "'D'"), -(2378, 0, "'e'"), -(2379, 0, "'b'"), -(2380, 0, "'u'"), -(2381, 0, "'g'"), -(2377, 0, "'f'"), -(2378, 0, "'m'"), -(2379, 0, "'t'"), -(2380, 0, "':'"), -(2381, 0, "':'"), -(2415, 37, "''"), -(2415, 0, "'f'"), -(2416, 0, "'n'"), -(2417, 0, "' '"), -(2418, 0, "'f'"), -(2419, 0, "'m'"), -(2420, 0, "'t'"), -(2421, 0, "'('"), -(2422, 0, "'&'"), -(2423, 0, "'s'"), -(2424, 0, "'e'"), -(2425, 0, "'l'"), -(2426, 0, "'f'"), -(2427, 0, "','"), -(2428, 0, "' '"), -(2429, 0, "'f'"), -(2430, 0, "':'"), -(2431, 0, "' '"), -(2432, 0, "'&'"), -(2433, 0, "'m'"), -(2434, 0, "'u'"), -(2435, 0, "'t'"), -(2436, 0, "' '"), -(2437, 0, "'F'"), -(2438, 0, "'o'"), -(2439, 0, "'r'"), -(2440, 0, "'m'"), -(2441, 0, "'a'"), -(2442, 0, "'t'"), -(2443, 0, "'t'"), -(2444, 0, "'e'"), -(2445, 0, "'r'"), -(2446, 0, "'<'"), -(2447, 0, "'''"), -(2448, 0, "'_'"), -(2449, 0, "'''"), -(2449, 1, "''"), -(2449, 0, "'>'"), -(2450, 0, "')'"), -(2451, 0, "' '"), -(2452, 0, "'-'"), -(2453, 0, "'>'"), -(2454, 0, "' '"), -(2455, 0, "'R'"), -(2456, 0, "'e'"), -(2457, 0, "'s'"), -(2458, 0, "'u'"), -(2459, 0, "'l'"), -(2460, 0, "'t'"), -(2461, 0, "' '"), -(2462, 0, "'{'"), -(2463, 0, "'n '"), -(2472, 0, "'n '"), -(2464, 8, "''"), -(2465, 8, "' }'"), -(2464, 0, "' '"), -(2472, 0, "'f'"), -(2473, 0, "'.'"), -(2474, 0, "'p'"), -(2475, 0, "'a'"), -(2476, 0, "'d'"), -(2477, 0, "'('"), -(2478, 0, "'''"), -(2479, 0, "'I'"), -(2480, 0, "'t'"), -(2481, 0, "'e'"), -(2482, 0, "'m'"), -(2483, 0, "'M'"), -(2484, 0, "'a'"), -(2485, 0, "'r'"), -(2486, 0, "'k'"), -(2487, 0, "'e'"), -(2488, 0, "'r'"), -(2489, 0, "'''"), -(2490, 0, "')'"), -(2491, 0, "';'"), -(2491, 1, "''"), -(2437, 0, "'f'"), -(2438, 0, "'m'"), -(2439, 0, "'t'"), -(2440, 0, "':'"), -(2441, 0, "':'"), -(2460, 0, "'s'"), -(2461, 0, "'t'"), -(2462, 0, "':'"), -(2462, 1, "''"), -(2462, 0, "'d'"), -(2463, 0, "':'"), -(2464, 0, "':'"), -(2460, 3, "'f'"), -(2461, 0, "'m'"), -(2462, 0, "'t'"), -(3651, 0, "'nimpl ListItem for u8 {}'"), -(3651, 0, "'nimpl ListItem for u8 {}'"), -(3675, 0, "'n'"), -(3646, 2, "'b'"), -(3647, 0, "'o'"), -(3648, 0, "'o'"), -(3649, 0, "'l'"), -(3672, 2, "'c'"), -(3673, 0, "'h'"), -(3674, 0, "'a'"), -(3675, 0, "'r'"), -(3680, 1, "''"), -(3933, 0, "'n'"), -(3933, 0, "'impl ListItem for bool {}nimpl ListItem for char {}n'"), -(3984, 1, "''"), -(3951, 0, "'&'"), -(3978, 0, "'&'"), -(3154, 0, "'n '"), -(3159, 0, "'n '"), -(3155, 4, "''"), -(3160, 0, "'f'"), -(3161, 0, "'n'"), -(3162, 0, "' '"), -(3163, 0, "'m'"), -(3164, 0, "'e'"), -(3165, 0, "'r'"), -(3166, 0, "'g'"), -(3167, 0, "'e'"), -(3168, 0, "'_'"), -(3169, 0, "'i'"), -(3170, 0, "'n'"), -(3171, 0, "'t'"), -(3172, 0, "'o'"), -(3173, 0, "'('"), -(3174, 0, "'&'"), -(3175, 0, "'m'"), -(3176, 0, "'u'"), -(3177, 0, "'t'"), -(3178, 0, "' '"), -(3179, 0, "'s'"), -(3180, 0, "'e'"), -(3181, 0, "'l'"), -(3182, 0, "'f'"), -(3183, 0, "','"), -(3184, 0, "' '"), -(3185, 0, "'o'"), -(3186, 0, "'t'"), -(3187, 0, "'h'"), -(3188, 0, "'e'"), -(3189, 0, "'r'"), -(3190, 0, "':'"), -(3191, 0, "' '"), -(3192, 0, "'&'"), -(3193, 0, "'S'"), -(3194, 0, "'e'"), -(3195, 0, "'p'"), -(3196, 0, "'l'"), -(3197, 0, "'f'"), -(3197, 1, "''"), -(3196, 1, "''"), -(3195, 1, "''"), -(3195, 0, "'l'"), -(3196, 0, "'f'"), -(3197, 0, "')'"), -(3198, 0, "' '"), -(3199, 0, "'-'"), -(3199, 1, "''"), -(3199, 0, "'-'"), -(3200, 0, "'>'"), -(3201, 0, "' '"), -(3202, 0, "'b'"), -(3203, 0, "'o'"), -(3204, 0, "'o'"), -(3205, 0, "'l'"), -(3206, 0, "';'"), -(3160, 0, "'// '"), -(3156, 0, "' // fn merge_into(&mut self, other: &Self) -> bool;n'"), -(3215, 3, "''"), -(3210, 0, "'n '"), -(3223, 10, "'c'"), -(3211, 4, "''"), -(3220, 0, "'a'"), -(3221, 0, "'n'"), -(3222, 0, "'_'"), -(3223, 0, "'m'"), -(3224, 0, "'e'"), -(3225, 0, "'r'"), -(3226, 0, "'g'"), -(3227, 0, "'e'"), -(3230, 4, "''"), -(3258, 0, "'n '"), -(3263, 0, "'f'"), -(3264, 0, "'n'"), -(3265, 0, "' '"), -(3266, 0, "'m'"), -(3267, 0, "'e'"), -(3268, 0, "'r'"), -(3269, 0, "'g'"), -(3270, 0, "'e'"), -(3271, 0, "'('"), -(3272, 0, "'&'"), -(3272, 1, "''"), -(3272, 0, "'s'"), -(3273, 0, "'e'"), -(3274, 0, "'l'"), -(3275, 0, "'f'"), -(3276, 0, "','"), -(3277, 0, "' '"), -(3278, 0, "'t'"), -(3279, 0, "'h'"), -(3279, 1, "''"), -(3278, 1, "''"), -(3278, 0, "'i'"), -(3279, 0, "'t'"), -(3280, 0, "'h'"), -(3281, 0, "'e'"), -(3282, 0, "'r'"), -(3283, 0, "':'"), -(3284, 0, "' '"), -(3285, 0, "'S'"), -(3286, 0, "'e'"), -(3287, 0, "'l'"), -(3288, 0, "'f'"), -(3278, 1, "''"), -(3278, 0, "'o'"), -(3289, 0, "')'"), -(3290, 0, "' '"), -(3291, 0, "'-'"), -(3292, 0, "'.'"), -(3293, 0, "' '"), -(3294, 0, "'S'"), -(3294, 1, "''"), -(3293, 1, "''"), -(3292, 1, "''"), -(3292, 0, "'>'"), -(3293, 0, "' '"), -(3294, 0, "'S'"), -(3295, 0, "'e'"), -(3296, 0, "'l'"), -(3297, 0, "'f'"), -(3298, 0, "';'"), -(3299, 0, "'n '"), -(3300, 4, "''"), -(3263, 0, "'// '"), -(3216, 0, "'// '"), -(3306, 0, "'n '"), -(3311, 0, "'f'"), -(3312, 0, "'n'"), -(3313, 0, "' '"), -(3314, 0, "'t'"), -(3315, 0, "'r'"), -(3316, 0, "'y'"), -(3317, 0, "'_'"), -(3318, 0, "'m'"), -(3319, 0, "'e'"), -(3320, 0, "'r'"), -(3321, 0, "'g'"), -(3322, 0, "'e'"), -(3323, 0, "'('"), -(3324, 0, "'&'"), -(3325, 0, "'s'"), -(3326, 0, "'e'"), -(3327, 0, "'l'"), -(3328, 0, "'f'"), -(3329, 0, "','"), -(3330, 0, "' '"), -(3331, 0, "'o'"), -(3332, 0, "'t'"), -(3333, 0, "'h'"), -(3334, 0, "'e'"), -(3335, 0, "'r'"), -(3336, 0, "':'"), -(3337, 0, "' '"), -(3338, 0, "'&'"), -(3339, 0, "'s'"), -(3340, 0, "'e'"), -(3341, 0, "'l'"), -(3342, 0, "'f'"), -(3343, 0, "')'"), -(3344, 0, "' '"), -(3345, 0, "'-'"), -(3346, 0, "'>'"), -(3347, 0, "' '"), -(3348, 0, "'O'"), -(3349, 0, "'p'"), -(3350, 0, "'t'"), -(3351, 0, "'i'"), -(3352, 0, "'o'"), -(3353, 0, "'n'"), -(3354, 0, "'<'"), -(3355, 0, "'S'"), -(3356, 0, "'e'"), -(3357, 0, "'l'"), -(3358, 0, "'f'"), -(3359, 0, "')'"), -(3359, 1, "''"), -(3359, 0, "'>'"), -(3360, 0, "';'"), -(3361, 0, "'/'"), -(3362, 0, "'/'"), -(3362, 1, "''"), -(3361, 1, "''"), -(3311, 0, "'// '"), -(3211, 153, "''"), -(3210, 1, "''"), -(3160, 3, "''"), -(3206, 1, "''"), -(3206, 0, "' '"), -(3207, 0, "'{'"), -(3208, 0, "'n '"), -(3209, 8, "' }'"), -(3208, 0, "'n '"), -(3217, 0, "'f'"), -(3218, 0, "'a'"), -(3219, 0, "'l'"), -(3220, 0, "'s'"), -(3221, 0, "'e'"), -(3155, 0, "'n '"), -(3160, 0, "'/'"), -(3161, 0, "'/'"), -(3162, 0, "' '"), -(3163, 0, "'T'"), -(3164, 0, "'r'"), -(3165, 0, "'y'"), -(3156, 10, "''"), -(3155, 1, "''"), -(3185, 0, "'_'"), -(3163, 0, "'t'"), -(3164, 0, "'r'"), -(3165, 0, "'y'"), -(3166, 0, "'_'"), -(3176, 1, "''"), -(3175, 1, "''"), -(3174, 1, "''"), -(3173, 1, "''"), -(3172, 1, "''"), -(3172, 0, "'_into'"), -(2835, 0, "'n '"), -(3168, 14, "'m'"), -(2836, 4, "''"), -(3165, 0, "'e'"), -(3166, 0, "'r'"), -(3167, 0, "'g'"), -(3168, 0, "'e'"), -(3169, 0, "'_'"), -(3170, 0, "'f'"), -(3171, 0, "'r'"), -(3172, 0, "'o'"), -(3173, 0, "'m'"), -(2836, 0, "'/'"), -(2837, 0, "'/'"), -(2838, 0, "'/'"), -(2838, 1, "''"), -(2837, 1, "''"), -(2836, 1, "''"), -(2836, 0, "' '"), -(2844, 0, "'/'"), -(2845, 0, "'/'"), -(2846, 0, "'/'"), -(2846, 1, "''"), -(2845, 1, "''"), -(2844, 1, "''"), -(2840, 4, "''"), -(2840, 0, "'/'"), -(2841, 0, "'/'"), -(2842, 0, "'/'"), -(2843, 0, "'/'"), -(2844, 0, "' '"), -(2844, 1, "''"), -(2843, 1, "''"), -(2843, 0, "' '"), -(2844, 0, "'T'"), -(2845, 0, "'h'"), -(2846, 0, "'e'"), -(2847, 0, "' '"), -(2848, 0, "'u'"), -(2849, 0, "'s'"), -(2850, 0, "'e'"), -(2851, 0, "'r'"), -(2848, 4, "'l'"), -(2849, 0, "'e'"), -(2850, 0, "'n'"), -(2851, 0, "'g'"), -(2844, 8, "'A'"), -(2845, 0, "'n'"), -(2846, 0, "' '"), -(2847, 0, "'o'"), -(2848, 0, "'p'"), -(2849, 0, "'t'"), -(2850, 0, "'i'"), -(2851, 0, "'m'"), -(2852, 0, "'i'"), -(2853, 0, "'z'"), -(2854, 0, "'e'"), -(2855, 0, "'d'"), -(2856, 0, "' '"), -(2857, 0, "'v'"), -(2858, 0, "'e'"), -(2859, 0, "'r'"), -(2857, 3, "'m'"), -(2858, 0, "'e'"), -(2859, 0, "'t'"), -(2860, 0, "'h'"), -(2861, 0, "'o'"), -(2862, 0, "'d'"), -(2863, 0, "' '"), -(2864, 0, "'t'"), -(2865, 0, "'o'"), -(2866, 0, "' '"), -(2867, 0, "'c'"), -(2868, 0, "'a'"), -(2869, 0, "'l'"), -(2870, 0, "'c'"), -(2871, 0, "'u'"), -(2872, 0, "'l'"), -(2873, 0, "'a'"), -(2874, 0, "'t'"), -(2875, 0, "'e'"), -(2876, 0, "' '"), -(2877, 0, "'t'"), -(2878, 0, "'h'"), -(2879, 0, "'e'"), -(2880, 0, "' '"), -(2881, 0, "'u'"), -(2882, 0, "'s'"), -(2883, 0, "'e'"), -(2884, 0, "'r'"), -(2885, 0, "'l'"), -(2886, 0, "'e'"), -(2887, 0, "'n'"), -(2888, 0, "' '"), -(2889, 0, "'o'"), -(2890, 0, "'f'"), -(2891, 0, "' '"), -(2892, 0, "'a'"), -(2893, 0, "' '"), -(2894, 0, "'s'"), -(2895, 0, "'l'"), -(2896, 0, "'i'"), -(2897, 0, "'c'"), -(2898, 0, "'e'"), -(2899, 0, "' '"), -(2900, 0, "'o'"), -(2901, 0, "'f'"), -(2902, 0, "' '"), -(2903, 0, "'L'"), -(2904, 0, "'i'"), -(2905, 0, "'s'"), -(2906, 0, "'t'"), -(2907, 0, "'I'"), -(2908, 0, "'t'"), -(2909, 0, "'e'"), -(2910, 0, "'m'"), -(2911, 0, "'s'"), -(2912, 0, "'.'"), -(2913, 0, "' '"), -(2914, 0, "'T'"), -(2915, 0, "'h'"), -(2916, 0, "'e'"), -(2917, 0, "' '"), -(2918, 0, "'d'"), -(2919, 0, "'e'"), -(2920, 0, "'f'"), -(2921, 0, "'a'"), -(2922, 0, "'u'"), -(2923, 0, "'l'"), -(2924, 0, "'t'"), -(2925, 0, "' '"), -(2926, 0, "'i'"), -(2927, 0, "'m'"), -(2928, 0, "'p'"), -(2929, 0, "'l'"), -(2930, 0, "'e'"), -(2931, 0, "'m'"), -(2932, 0, "'e'"), -(2933, 0, "'n'"), -(2934, 0, "'t'"), -(2935, 0, "'a'"), -(2936, 0, "'t'"), -(2937, 0, "'i'"), -(2938, 0, "'o'"), -(2939, 0, "'n'"), -(2940, 0, "' '"), -(2941, 0, "'s'"), -(2942, 0, "'i'"), -(2943, 0, "'m'"), -(2944, 0, "'p'"), -(2945, 0, "'l'"), -(2946, 0, "'y'"), -(2947, 0, "' '"), -(2948, 0, "'c'"), -(2949, 0, "'a'"), -(2950, 0, "'l'"), -(2951, 0, "'l'"), -(2952, 0, "'s'"), -(2953, 0, "' '"), -(2954, 0, "'g'"), -(2954, 1, "''"), -(2954, 0, "'['"), -(2955, 0, "'`'"), -(2956, 0, "'g'"), -(2957, 0, "'e'"), -(2958, 0, "'t'"), -(2959, 0, "'_'"), -(2960, 0, "'u'"), -(2961, 0, "'s'"), -(2962, 0, "'e'"), -(2963, 0, "'r'"), -(2964, 0, "'s'"), -(2965, 0, "'i'"), -(2966, 0, "'z'"), -(2967, 0, "'e'"), -(2968, 0, "'`'"), -(2969, 0, "']'"), -(2970, 0, "' '"), -(2971, 0, "'i'"), -(2972, 0, "'n'"), -(2973, 0, "' '"), -(2974, 0, "'a'"), -(2975, 0, "' '"), -(2976, 0, "'l'"), -(2977, 0, "'o'"), -(2978, 0, "'o'"), -(2979, 0, "'p'"), -(2980, 0, "'.'"), -(2836, 145, "' /// An optimized method to calculate the userlen of a slice of ListItems.n /// The default implementation simply calls [`get_usersize`] in a loop.'"), -(3144, 0, "'n '"), -(3149, 0, "'/'"), -(3150, 0, "'/'"), -(3151, 0, "'/'"), -(3152, 0, "' '"), -(3153, 0, "'S'"), -(3154, 0, "'p'"), -(3155, 0, "'l'"), -(3156, 0, "'i'"), -(3157, 0, "'t'"), -(3158, 0, "' '"), -(3159, 0, "'t'"), -(3160, 0, "'h'"), -(3161, 0, "'e'"), -(3162, 0, "' '"), -(3163, 0, "'s'"), -(3164, 0, "'p'"), -(3165, 0, "'e'"), -(3163, 3, "'n'"), -(3164, 0, "'a'"), -(3165, 0, "'m'"), -(3166, 0, "'e'"), -(3167, 0, "'d'"), -(3168, 0, "' '"), -(3169, 0, "'i'"), -(3170, 0, "'t'"), -(3171, 0, "'e'"), -(3172, 0, "'m'"), -(3173, 0, "' '"), -(3174, 0, "'a'"), -(3175, 0, "'t'"), -(3174, 2, "'i'"), -(3175, 0, "'n'"), -(3176, 0, "' '"), -(3177, 0, "'a'"), -(3177, 1, "''"), -(3176, 1, "''"), -(3176, 0, "'t'"), -(3177, 0, "'o'"), -(3178, 0, "' '"), -(3179, 0, "'a'"), -(3180, 0, "' '"), -(3181, 0, "'p'"), -(3182, 0, "'a'"), -(3183, 0, "'i'"), -(3184, 0, "'r'"), -(3185, 0, "' '"), -(3186, 0, "'o'"), -(3187, 0, "'f'"), -(3188, 0, "' '"), -(3189, 0, "'i'"), -(3190, 0, "'t'"), -(3191, 0, "'e'"), -(3192, 0, "'m'"), -(3193, 0, "'s'"), -(3163, 5, "'p'"), -(3164, 0, "'a'"), -(3165, 0, "'s'"), -(3166, 0, "'s'"), -(3167, 0, "'e'"), -(3168, 0, "'d'"), -(3195, 0, "' '"), -(3196, 0, "'a'"), -(3197, 0, "'t'"), -(3198, 0, "' '"), -(3199, 0, "'a'"), -(3200, 0, "' '"), -(3201, 0, "'s'"), -(3202, 0, "'p'"), -(3202, 1, "''"), -(3201, 1, "''"), -(3200, 1, "''"), -(3199, 1, "''"), -(3199, 0, "'a'"), -(3200, 0, "' '"), -(3201, 0, "'s'"), -(3201, 1, "''"), -(3200, 1, "''"), -(3199, 1, "''"), -(3198, 1, "''"), -(3198, 0, "' '"), -(3199, 0, "'s'"), -(3200, 0, "'o'"), -(3201, 0, "'m'"), -(3202, 0, "'e'"), -(3203, 0, "' '"), -(3204, 0, "'s'"), -(3205, 0, "'p'"), -(3206, 0, "'e'"), -(3207, 0, "'c'"), -(3208, 0, "'i'"), -(3209, 0, "'f'"), -(3210, 0, "'i'"), -(3211, 0, "'e'"), -(3212, 0, "'d'"), -(3213, 0, "' '"), -(3214, 0, "'o'"), -(3215, 0, "'f'"), -(3216, 0, "'f'"), -(3217, 0, "'s'"), -(3218, 0, "'e'"), -(3219, 0, "'t'"), -(3220, 0, "'.'"), -(3204, 10, "''"), -(3230, 1, "''"), -(19527, 0, "'n pub(super) unsafe fn current_item<'a>(&self) -> Option<&'a Item> {n let node = &*self.here_ptr();n if self.local_index < node.num_items as usize {n // Ok - just return the current item.n Some(&*(node.items[self.local_index].as_ptr()))n } else {n // Peek the first item in the next node.n self.peek_next_item().map(|ptr| &*ptr)n }n }n'"), -(19966, 12, "'t'"), -(19967, 0, "'a'"), -(19968, 0, "'k'"), -(19969, 0, "'e'"), -(19970, 0, "'_'"), -(19971, 0, "'i'"), -(19972, 0, "'t'"), -(19973, 0, "'e'"), -(19974, 0, "'m'"), -(19981, 0, "'m'"), -(19982, 0, "'u'"), -(19983, 0, "'t'"), -(19984, 0, "' '"), -(20001, 1, "''"), -(20001, 1, "''"), -(20001, 1, "''"), -(20001, 1, "''"), -(20295, 0, "'// '"), -(20282, 0, "'n '"), -(20295, 0, "'u'"), -(20296, 0, "'n'"), -(20297, 0, "'i'"), -(20298, 0, "'m'"), -(20299, 0, "'p'"), -(20300, 0, "'l'"), -(20295, 6, "'unimplemented'"), -(20308, 0, "'('"), -(20309, 0, "')'"), -(20310, 0, "';'"), -(20380, 0, "'// '"), -(20370, 0, "'// '"), -(20316, 0, "'// '"), -(20287, 0, "'// '"), -(20234, 0, "'// '"), -(20217, 0, "'// '"), -(20157, 0, "'// '"), -(20107, 0, "'// '"), -(20051, 0, "'// '"), -(20013, 0, "'// '"), -(19945, 0, "'// '"), -(19532, 11, "''"), -(19532, 0, "'pub(super) '"), -(20410, 3, "''"), -(20397, 3, "''"), -(20340, 3, "''"), -(20308, 3, "''"), -(20252, 3, "''"), -(20232, 3, "''"), -(20169, 3, "''"), -(20116, 3, "''"), -(20057, 3, "''"), -(20016, 3, "''"), -(19945, 3, "''"), -(20380, 0, "'// '"), -(20370, 0, "'// '"), -(20316, 0, "'// '"), -(20287, 0, "'// '"), -(20234, 0, "'// '"), -(20217, 0, "'// '"), -(20157, 0, "'// '"), -(20107, 0, "'// '"), -(20051, 0, "'// '"), -(20013, 0, "'// '"), -(19945, 0, "'// '"), -(19243, 11, "''"), -(19892, 1, "''"), -(19889, 2, "'nod'"), -(19266, 1, "''"), -(19263, 2, "'nod'"), -(19298, 212, "''"), -(19302, 0, "'// '"), -(19243, 0, "'// '"), -(19656, 50, "' let next = (*self.here_ptr()).get_next_ptr();n if next.is_null() { None }n else {n debug_assert!((*next).num_items > 0);n Some((*next).items[0].as_mut_ptr())n }n'"), -(19868, 0, "' '"), -(19858, 8, "' '"), -(19810, 12, "' '"), -(19760, 12, "' '"), -(19745, 8, "' '"), -(19710, 8, "' '"), -(19656, 8, "' '"), -(19892, 4, "''"), -(19878, 12, "' '"), -(19826, 16, "' '"), -(19772, 16, "' '"), -(19753, 12, "' '"), -(19714, 12, "' '"), -(19656, 12, "' '"), -(19656, 212, "' self.peek_next_node().map(|ptr| &*ptr)'"), -(19305, 3, "''"), -(19243, 3, "''"), -(19298, 0, "' let next = (*self.here_ptr()).get_next_ptr();n if next.is_null() { None }n else {n debug_assert!((*next).num_items > 0);n Some((*next).items[0].as_mut_ptr())n }n'"), -(19893, 0, "'_start'"), -(19267, 0, "'_start'"), -(20411, 3, "''"), -(20398, 3, "''"), -(20341, 3, "''"), -(20309, 3, "''"), -(20253, 3, "''"), -(20233, 3, "''"), -(20170, 3, "''"), -(20117, 3, "''"), -(20058, 3, "''"), -(20017, 3, "''"), -(19946, 3, "''"), -(19975, 1, "''"), -(19974, 1, "''"), -(19973, 1, "''"), -(19972, 1, "''"), -(19972, 0, "'p'"), -(19973, 0, "'r'"), -(19974, 0, "'e'"), -(19975, 0, "'v'"), -(19976, 0, "'_'"), -(19976, 1, "''"), -(20047, 0, "'n '"), -(20056, 0, "'i'"), -(20057, 0, "'f'"), -(20058, 0, "' '"), -(20059, 0, "'s'"), -(20060, 0, "'e'"), -(20061, 0, "'l'"), -(20062, 0, "'f'"), -(20063, 0, "'.'"), -(20064, 0, "'i'"), -(20065, 0, "'n'"), -(20066, 0, "'d'"), -(20067, 0, "'e'"), -(20064, 4, "'l'"), -(20065, 0, "'o'"), -(20066, 0, "'c'"), -(20067, 0, "'a'"), -(20068, 0, "'l'"), -(20064, 5, "'local_index'"), -(20075, 0, "' '"), -(20076, 0, "'='"), -(20077, 0, "'='"), -(20078, 0, "' '"), -(20079, 0, "'0'"), -(20080, 0, "' '"), -(20081, 0, "'{'"), -(20082, 0, "' '"), -(20083, 0, "'N'"), -(20084, 0, "'o'"), -(20085, 0, "'n'"), -(20086, 0, "'e'"), -(20087, 0, "' '"), -(20088, 0, "'}'"), -(20098, 0, "'e'"), -(20099, 0, "'l'"), -(20100, 0, "'s'"), -(20101, 0, "'e'"), -(20102, 0, "' '"), -(20270, 153, "''"), -(20103, 45, "''"), -(20102, 1, "''"), -(20102, 0, "' if self.local_index < node.num_items as usize'"), -(20103, 45, "''"), -(20102, 1, "''"), -(20104, 0, "'n '"), -(20117, 0, "'d'"), -(20118, 0, "'e'"), -(20119, 0, "'b'"), -(20120, 0, "'u'"), -(20121, 0, "'g'"), -(20117, 5, "'debug_assert!'"), -(20130, 0, "'('"), -(20131, 0, "'if self.local_index < node.num_items as usize'"), -(20131, 3, "''"), -(20298, 0, "'// '"), -(20288, 0, "'// '"), -(20228, 0, "'// '"), -(20178, 0, "'// '"), -(20109, 0, "'// '"), -(20094, 0, "'// '"), -(20052, 0, "'// '"), -(20014, 0, "'// '"), -(19946, 0, "'// '"), -(3265, 0, "'n fn split_item(self, _at: usize) -> (Self, Self) {'"), -(3270, 0, "'// '"), -(3230, 0, "'&'"), -(1069, 2, "'2'")] +structure RustCode = +struct + val txns = + #[ ( 0 + , 0 + , "/// This is an implementation of a general purpose skip list. It was originally\n/// ported from a version of skiplists intended for efficient string handling\n/// found here - https://github.com/josephg/rustrope\n\n/// This implementation is not optimized for strings (there's some string\n/// specific features like unicode handling which have been intentionally\n/// removed for simplicity). But it does have another somewhat unusual feature -\n/// users can specify their own size function, and lookups, inserts and deletes\n/// can use their custom length property to specify offsets.\n\n/// Unlike other rust rope implementations, this implementation should be very\n/// fast; but it manages that through heavy use of unsafe pointers and C-style\n/// dynamic arrays.\n\nuse std::{mem, ptr};\nuse std::alloc::{alloc, dealloc, Layout};\nuse std::cmp::min;\n\nuse rand::{RngCore, Rng, SeedableRng};\nuse rand::rngs::SmallRng;\n\n/// The likelyhood a node will have height (n+1) instead of n\nconst BIAS: u8 = 100; // out of 256.\n\n/// The number of items in each node. Must fit in a u8 thanks to Node.\n// const NODE_NUM_ITEMS: usize = 100;\nconst NODE_NUM_ITEMS: usize = 100;\n\n/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^\n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flip\n/// side, cursors grow linearly with this number; so smaller is marginally\n/// better when the contents are smaller.\nconst MAX_HEIGHT: usize = 20;\n\nconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.\n\n/// The whole list is configured through a single generic trait parameter\npub trait ListConfig {\n type Item: Default + Copy;\n\n /// Applications which have custom sizes (or do their own\n /// run-length-encoding) can define their own size function for items. When\n /// items are inserted or replaced, the position is specified using the\n /// custom size defined here.\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n\n fn userlen_of_slice(items: &[Self::Item]) -> usize {\n items.iter().fold(0, |acc, item| {\n acc + Self::get_usersize(item)\n })\n }\n\n fn split_item(_item: Self::Item) -> (Self::Item, Self::Item) {\n unimplemented!(\"Cannot insert in the middle of an item - split_item is not defined in trait\");\n }\n\n // type RngType: rand::RngCore = rand::rngs::SmallRng;\n // fn get_rng() -> Self::RngType {\n // use rand::SeedableRng;\n // // rand::rngs::SmallRng::from_seed(SeedableRng::seed_from_u64(10))\n // rand::rngs::SmallRng::from_entropy()\n // }\n}\n\n/// This represents a single entry in either the nexts pointers list or in an\n/// iterator.\n#[derive(Debug, PartialEq, Eq)]\nstruct SkipEntry {\n /// The node being pointed to.\n node: *mut Node,\n\n /// The number of *items* between the start of the current node and the\n /// start of the next node. That means nexts entry 0 contains the length of\n /// the current node.\n skip_usersize: usize,\n}\n\n// We can't use #[derive()] here for Copy and Clone due to a bug in the rust\n// compiler: https://github.com/rust-lang/rust/issues/26925\nimpl Copy for SkipEntry {}\nimpl Clone for SkipEntry {\n fn clone(&self) -> Self { *self }\n}\n\nimpl SkipEntry {\n fn new_null() -> Self {\n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }\n }\n}\n\n\n/// The node structure is designed in a very fancy way which would be more at\n/// home in C or something like that. The basic idea is that the node structure\n/// is fixed size in memory, but the proportion of that space taken up by\n/// characters and by the height differ depending on a node's height. This\n/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but I\n/// could be wrong here. You probably wouldn't lose much performance in practice\n/// by replacing the inline structure with a smallvec - but that would waste\n/// memory in small nodes, and require extra pointer indirection on large nodes.\n/// It also wouldn't remove all the unsafe here.\n///\n/// A different representation (which might be better or worse - I can't tell)\n/// would be to have the nodes all be the same size in memory and change the\n/// *proportion* of the node's memory that is used by the string field vs the\n/// next pointers. That might be lighter weight for the allocator because the\n/// struct itself would be a fixed size; but I'm not sure if it would be better.\n#[repr(C)] // Prevent parameter reordering.\nstruct Node {\n /// We start with the items themselves. Only the first `num_items` of this\n /// list is in use. The user specified length of the items in the node is\n /// stored in nexts[0].skip_items. This is initialized with\n /// Default::default() for the type, but when MaybeUninit completely lands,\n /// it will be possible to make this a tiny bit faster by leaving the list\n /// initially uninitialized.\n items: [C::Item; NODE_NUM_ITEMS],\n\n /// Number of items in `items` in use / filled.\n num_items: u8,\n\n /// Height of nexts array.\n height: u8,\n\n // #[repr(align(std::align_of::()))]\n \n /// In reality this array has the size of height, allocated using more or\n /// less direct calls to malloc() at runtime based on the randomly generated\n /// size. The size is always at least 1.\n nexts: [SkipEntry; 0],\n}\n\n// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)\n// This test will fail if this ever stops being true.\n#[test]\nfn test_align() {\n struct TestConfig;\n impl ListConfig for TestConfig {\n type Item = u8;\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n }\n #[repr(C)] struct Check([SkipEntry; 0]);\n assert!(mem::align_of::() >= mem::align_of::>());\n // TODO: It'd be good to also check the alignment of the nexts field in Node.\n}\n\nfn random_height(rng: &mut R) -> u8 {\n let mut h: u8 = 1;\n // Should I use a csrng here? Does it matter?\n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }\n h\n}\n\n#[repr(C)]\npub struct SkipList {\n // TODO: Consider putting the head item on the heap. For the use case here\n // its almost certainly fine either way. The code feels a bit cleaner if its\n // on the heap (and then iterators will be able to outlast a move of the\n // skiplist parent). But its also very nice having the code run fast for\n // small lists. Most lists are small, and it makes sense to optimize for\n // that.\n\n // TODO: For safety, pointers in to this structure should be Pin<> if we\n // ever want to hold on to iterators.\n\n /// The total number of items in the skip list. This is not used internally -\n /// just here for bookkeeping.\n num_items: usize,\n /// Size of the list in user specified units.\n num_usercount: usize,\n\n /// The RNG we use to generate node heights. Specifying it explicitly allows\n /// unit tests and randomizer runs to be predictable, which is very helpful\n /// during debugging. I'm still not sure how the type of this should be\n /// specified. Should it be a generic parameter? Box?\n /// ??\n rng: SmallRng,\n\n /// The first node is inline. The height is 1 more than the max height we've\n /// ever used. The highest next entry points to {null, total usersize}.\n head: Node,\n\n /// This is so dirty. The first node is embedded in SkipList; but we need to\n /// allocate enough room for height to get arbitrarily large. I could insist\n /// on SkipList always getting allocated on the heap, but for small lists its\n /// much better to be on the stack.\n ///\n /// So this struct is repr(C) and I'm just padding out the struct directly.\n /// All accesses should go through head because otherwise I think we violate\n /// aliasing rules.\n _nexts_padding: [SkipEntry; MAX_HEIGHT],\n}\n\n\n\nimpl Node {\n // Do I need to be explicit about the lifetime of the references being tied\n // to the lifetime of the node?\n fn nexts(&self) -> &[SkipEntry] {\n unsafe {\n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)\n }\n }\n\n fn nexts_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)\n }\n }\n\n fn layout_with_height(height: u8) -> Layout {\n Layout::from_size_align(\n mem::size_of::>() + mem::size_of::>() * (height as usize),\n mem::align_of::>()).unwrap()\n }\n\n fn alloc_with_height(height: u8) -> *mut Node {\n assert!(height >= 1 && height <= MAX_HEIGHT_U8);\n\n unsafe {\n let node = alloc(Self::layout_with_height(height)) as *mut Node;\n (*node) = Node {\n items: [C::Item::default(); NODE_NUM_ITEMS],\n num_items: 0,\n height: height,\n nexts: [],\n };\n\n for next in (*node).nexts_mut() {\n *next = SkipEntry::new_null();\n }\n\n node\n }\n }\n\n fn alloc(rng: &mut R) -> *mut Node {\n Self::alloc_with_height(random_height(rng))\n }\n\n unsafe fn free(p: *mut Node) {\n dealloc(p as *mut u8, Self::layout_with_height((*p).height));\n }\n\n fn content_slice(&self) -> &[C::Item] {\n &self.items[..self.num_items as usize]\n }\n\n // The height is at least 1, so this is always valid.\n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {\n unsafe { &*self.nexts.as_ptr() }\n }\n\n fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {\n unsafe { &mut *self.nexts.as_mut_ptr() }\n }\n\n // TODO: Rename to len() ?\n fn get_userlen(&self) -> usize {\n self.first_skip_entry().skip_usersize\n }\n \n fn get_next_ptr(&self) -> *mut Node {\n self.first_skip_entry().node\n }\n\n /// I dunno where this logic should live, but we want to get the index of\n /// the item at the specified offset into the node (and the offset into the\n /// item).\n /// \n /// If the offset lands between items, we could return either the previous or next item.\n /// \n /// Returns (index, item_offset).\n fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {\n if usersize_offset == 0 { return (0, 0); }\n\n for (i, item) in self.content_slice().iter().enumerate() {\n let usersize = C::get_usersize(item);\n if usersize > usersize_offset {\n return (i, usersize_offset);\n } else if usersize == usersize_offset {\n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }\n } else {\n usersize_offset -= usersize;\n }\n }\n panic!(\"Could not find requested offset within the node\");\n }\n}\n\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone, Debug)]\nstruct Cursor {\n // TODO: Add a phantom lifetime reference to the skip list root for safety.\n\n // This isn't strictly necessary. Earlier versions tacked this on to the\n // last item in entries... I'm still not sure the cleanest way to do this.\n userpos: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n}\n\nimpl Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n\n next\n }\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos { return false; }\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl SkipList {\n pub fn new() -> Self {\n SkipList:: {\n num_items: 0,\n num_usercount: 0,\n rng: SmallRng::seed_from_u64(123),\n head: Node {\n items: [C::Item::default(); NODE_NUM_ITEMS],\n num_items: 0,\n height: 1, // Stores max height of list nodes\n nexts: [],\n },\n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],\n }\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, s);\n rope\n }\n\n pub fn get_userlen(&self) -> usize {\n self.num_usercount\n }\n\n fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn len_items(&self) -> usize {\n self.num_items as usize\n }\n\n fn heads_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())\n }\n }\n\n /// Walk the list and validate internal constraints. This is used for\n /// testing the structure itself, and should generally not be called by\n /// users.\n pub fn check(&self) {\n // #[cfg(test)]\n {\n assert!(self.head.height >= 1);\n assert!(self.head.height <= MAX_HEIGHT_U8);\n\n // let skip_over = self.get_top_entry();\n // println!(\"Skip over skip chars {}, num bytes {}\", skip_over.skip_items, self.num_bytes);\n\n let mut iter = [SkipEntry {\n // Bleh.\n node: &self.head as *const Node as *mut Node,\n // The skips will store the total distance travelled since the\n // start of this traversal at each height. All the entries above\n // head.height are ignored though.\n skip_usersize: 0\n }; MAX_HEIGHT];\n\n let mut num_items = 0;\n let mut num_usercount = 0;\n\n for n in self.iter() {\n // println!(\"visiting {:?}\", n.as_str());\n assert!((n as *const Node == &self.head as *const Node) || n.num_items > 0);\n assert!(n.height <= MAX_HEIGHT_U8);\n assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n\n // Make sure the number of items matches the count\n let local_count = C::userlen_of_slice(&n.items[0..n.num_items as usize]);\n assert_eq!(local_count, n.get_userlen());\n\n // assert_eq!(n.as_str().chars().count(), n.num_chars());\n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {\n assert_eq!(entry.node as *const Node, n as *const Node);\n assert_eq!(entry.skip_usersize, num_usercount);\n\n // println!(\"replacing entry {:?} with {:?}\", entry, n.nexts()[i].node);\n entry.node = n.nexts()[i].node;\n entry.skip_usersize += n.nexts()[i].skip_usersize;\n }\n\n num_items += n.num_items as usize;\n num_usercount += n.get_userlen();\n }\n\n for entry in iter[0..self.head.height as usize].iter() {\n // println!(\"{:?}\", entry);\n assert!(entry.node.is_null());\n assert_eq!(entry.skip_usersize, num_usercount);\n }\n \n // println!(\"self bytes: {}, count bytes {}\", self.num_bytes, num_bytes);\n assert_eq!(self.num_items, num_items);\n assert_eq!(self.get_userlen(), num_usercount);\n }\n }\n \n \n /// Internal function for creating a cursor at a particular location in the\n /// skiplist. The returned cursor is a list of nodes which point past the\n /// specified position, as well as offsets of how far into their character\n /// lists the specified characters are.\n /// \n /// Note this does not calculate the index and offset in the current node.\n ///\n /// TODO: This should be Pin<&self>.\n fn iter_at_userpos(&self, target_userpos: usize) -> Cursor {\n assert!(target_userpos <= self.get_userlen());\n\n let mut e: *const Node = &self.head;\n let mut height = self.head.height as usize - 1;\n \n let mut offset = target_userpos; // How many more items to skip\n\n // We're populating the head node pointer to simplify the case when the\n // iterator grows. We could put offset into the skip_usersize but it\n // would only be *mostly* correct, not always correct. (Since cursor\n // entries above height are not updated by insert.)\n let mut cursor = Cursor {\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n userpos: target_userpos,\n };\n\n loop { // while height >= 0\n let en = unsafe { &*e };\n let next = en.nexts()[height];\n let skip = next.skip_usersize;\n if offset > skip {\n // Go right.\n debug_assert!(e == &self.head || en.num_items > 0);\n offset -= skip;\n e = next.node;\n assert!(!e.is_null(), \"Internal constraint violation: Reached rope end prematurely\");\n } else {\n // Record this and go down.\n cursor.entries[height] = SkipEntry {\n skip_usersize: offset,\n node: e as *mut Node, // This is pretty gross\n };\n\n if height == 0 { break; } else { height -= 1; }\n }\n };\n\n // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n cursor\n }\n\n // Internal fn to create a new node at the specified iterator filled with\n // the specified content. The passed cursor should point at the end of the\n // previous node. It will be updated to point to the end of the newly\n // inserted content.\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize) {\n // println!(\"Insert_node_at {} len {}\", contents.len(), self.num_bytes);\n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n assert!(contents.len() <= NODE_NUM_ITEMS);\n\n let new_node = Node::alloc(&mut self.rng);\n (*new_node).num_items = contents.len() as u8;\n (*new_node).items[..contents.len()].copy_from_slice(contents);\n let new_height = (*new_node).height;\n\n let mut head_height = self.head.height as usize;\n let new_height_usize = new_height as usize;\n while head_height < new_height_usize {\n // This seems weird given we're about to overwrite these values\n // below. What we're doing is retroactively setting up the cursor\n // and head pointers *as if* the height had been this high all\n // along. This way we only have to populate the higher head values\n // lazily.\n let total_userlen = self.num_usercount;\n let nexts = self.heads_mut();\n nexts[head_height].skip_usersize = total_userlen;\n cursor.entries[head_height].skip_usersize = cursor.userpos;\n\n head_height += 1; // This is ugly.\n self.head.height += 1;\n }\n\n for i in 0..new_height_usize {\n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];\n let new_nexts = (*new_node).nexts_mut();\n\n // The new node points to the successor (or null)\n new_nexts[i] = SkipEntry {\n node: prev_skip.node,\n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersize\n };\n\n // The previous node points to the new node\n *prev_skip = SkipEntry {\n node: new_node,\n skip_usersize: cursor.entries[i].skip_usersize\n };\n\n // Move the iterator to the end of the newly inserted node.\n cursor.entries[i] = SkipEntry {\n node: new_node,\n skip_usersize: new_userlen\n };\n }\n\n for i in new_height_usize..head_height {\n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n cursor.entries[i].skip_usersize += new_userlen;\n }\n\n self.num_items += contents.len();\n self.num_usercount += new_userlen;\n cursor.userpos += new_userlen;\n }\n\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, contents: &[C::Item]) {\n // iter specifies where to insert.\n\n let mut e = cursor.here_ptr();\n // The insertion offset into the destination node.\n assert!(cursor.userpos <= self.num_usercount);\n assert!(item_idx <= (*e).num_items as usize);\n\n // We might be able to insert the new data into the current node, depending on\n // how big it is.\n let num_inserted_items = contents.len();\n let num_inserted_usercount = C::userlen_of_slice(contents);\n\n // Can we insert into the current node?\n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;\n\n // Can we insert into the start of the successor node?\n if !insert_here && item_idx == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {\n // We can insert into the subsequent node if:\n // - We can't insert into the current node\n // - There _is_ a next node to insert into\n // - The insert would be at the start of the next node\n // - There's room in the next node\n if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {\n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {\n item_idx = 0;\n cursor.advance_node();\n e = next;\n\n insert_here = true;\n }\n }\n }\n\n let e_num_items = (*e).num_items as usize; // convenience.\n\n if insert_here {\n // println!(\"insert_here {}\", contents);\n // First push the current items later in the array\n let c = &mut (*e).items;\n if item_idx < e_num_items {\n c[..].copy_within(item_idx..e_num_items,\n item_idx + num_inserted_items);\n }\n\n // Then copy in the new items\n c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);\n\n (*e).num_items += num_inserted_items as u8;\n self.num_items += num_inserted_items;\n self.num_usercount += num_inserted_usercount;\n\n // .... aaaand update all the offset amounts.\n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);\n\n // TODO: For consistency we might want to think about updating the\n // iterator here.\n } else {\n // There isn't room. We'll need to add at least one new node to the\n // list. We could be a bit more careful here and copy as much as\n // possible into the current node - that would decrease the number\n // of new nodes in some cases, but I don't think the performance\n // difference will be large enough to justify the complexity.\n\n // If we're not at the end of the current node, we'll need to remove\n // the end of the current node's data and reinsert it later.\n let num_end_items = e_num_items - item_idx;\n\n let (end_items, end_usercount) = if num_end_items > 0 {\n // We'll mark the items as deleted from the node, while leaving\n // the data itself there for now to avoid a copy.\n\n // Note that if we wanted to, it would also be correct (and\n // slightly more space efficient) to pack some of the new\n // string's characters into this node after trimming it.\n let end_items = &(*e).items[item_idx..e_num_items];\n (*e).num_items = item_idx as u8;\n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;\n\n cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));\n\n // We need to trim the size off because we'll add the characters\n // back with insert_node_at.\n self.num_usercount -= end_usercount;\n self.num_items -= num_end_items;\n\n (Some(end_items), end_usercount)\n } else {\n (None, 0)\n };\n\n // Now we insert new nodes containing the new character data. The\n // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.\n // As further optimization, we could try and fit the last piece into\n // the start of the subsequent node. That optimization hasn't been\n // added.\n \n for chunk in contents.chunks(NODE_NUM_ITEMS) {\n let userlen = C::userlen_of_slice(chunk);\n self.insert_node_at(cursor, chunk, userlen);\n }\n\n // TODO: Consider recursively calling insert_at_iter() here instead\n // of making a whole new node for the remaining content.\n if let Some(end_items) = end_items {\n self.insert_node_at(cursor, end_items, end_usercount);\n }\n }\n }\n\n /// Interestingly unlike the original, here we only care about specifying\n /// the number of removed items by counting them. We do not use usersize in\n /// the deleted item count.\n ///\n /// If the deleted content occurs at the start of a node, the cursor passed\n /// here must point to the end of the previous node, not the start of the\n /// current node.\n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, mut num_deleted_items: usize) {\n if num_deleted_items == 0 { return; }\n\n let mut e = cursor.here_ptr();\n while num_deleted_items > 0 {\n if item_idx == (*e).num_items as usize {\n let entry = (*e).first_skip_entry();\n // End of current node. Skip to the start of the next one. We're\n // intentionally not updating the iterator because if we delete\n // a whole node we need the iterator to point to the previous\n // element. And if we only delete here, the iterator doesn't\n // need to be moved.\n e = entry.node;\n if e.is_null() { panic!(\"Cannot delete past the end of the list\"); }\n item_idx = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let removed_here = min(num_deleted_items, e_num_items - item_idx);\n \n let height = (*e).height as usize;\n let removed_userlen;\n\n if removed_here < e_num_items || e as *const _ == &self.head as *const _ {\n // Just trim the node down.\n let trailing_items = e_num_items - item_idx - removed_here;\n \n let c = &mut (*e).items;\n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);\n if trailing_items > 0 {\n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);\n }\n\n (*e).num_items -= removed_here as u8;\n self.num_items -= removed_here;\n self.num_usercount -= removed_userlen;\n\n for s in (*e).nexts_mut() {\n s.skip_usersize -= removed_userlen;\n }\n } else {\n // Remove the node from the skip list entirely. e should be the\n // next node after the position of the iterator.\n assert_ne!(cursor.here_ptr(), e);\n\n removed_userlen = (*e).get_userlen();\n let next = (*e).first_skip_entry().node;\n\n for i in 0..(*e).height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.node = (*e).nexts_mut()[i].node;\n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;\n }\n\n self.num_items -= (*e).num_items as usize;\n self.num_usercount -= removed_userlen;\n\n Node::free(e);\n e = next;\n }\n\n for i in height..self.head.height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.skip_usersize -= removed_userlen;\n }\n\n num_deleted_items -= removed_here;\n }\n }\n\n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {\n if removed_items == 0 && inserted_content.len() == 0 { return; }\n\n // For validation. This is where the cursor should end up.\n // let expected_final_position = start_userpos + inserted_content.len() - removed_items;\n\n start_userpos = min(start_userpos, self.get_userlen());\n\n let mut cursor = self.iter_at_userpos(start_userpos);\n let (mut index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n // Replace as many items from removed_items as we can with inserted_content.\n unsafe {\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n let mut e = cursor.here_ptr();\n if index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n index = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let old_items = &mut (*e).items[index..index + replaced_items_here];\n let new_items = &inserted_content[0..replaced_items_here];\n\n // Replace the items themselves.\n old_items.copy_from_slice(new_items);\n\n // And bookkeeping. Bookkeeping forever.\n let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n\n inserted_content = &inserted_content[replaced_items_here..];\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(&mut cursor, index, inserted_content);\n } else if removed_items > 0 {\n self.del_at_iter(&mut cursor, index, removed_items);\n }\n }\n\n // TODO: Assert that the iterator is after replaced content.\n // #[cfg(debug_assertions)] {\n // let c2 = self.iter_at_userpos(expected_final_position);\n // if &cursor != &c2 { panic!(\"Invalid cursor after replace\"); }\n // }\n }\n\n pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {\n if contents.len() == 0 { return; }\n \n userpos = min(userpos, self.get_userlen());\n let mut cursor = self.iter_at_userpos(userpos);\n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n unsafe { self.insert_at_iter(&mut cursor, index, contents); }\n\n #[cfg(debug_assertions)] {\n let c2 = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));\n if &cursor != &c2 { panic!(\"Invalid cursor after insert\"); }\n }\n // TODO: Assert that the iterator now points after removed content.\n }\n\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let mut cursor = self.iter_at_userpos(userpos);\n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, index, num_items); }\n // TODO: Assert that the iterator remains where it was.\n }\n}\n\n\nimpl SkipList where C::Item: PartialEq {\n pub fn eq_list(&self, other: &[C::Item]) -> bool {\n let mut pos = 0;\n let other_len = other.len();\n\n for node in self.iter() {\n let my_data = node.content_slice();\n let my_len = my_data.len();\n\n if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {\n return false\n }\n pos += my_data.len();\n }\n\n return pos == other_len;\n }\n}\n\nimpl Drop for SkipList {\n fn drop(&mut self) {\n let mut node = self.head.first_skip_entry().node;\n unsafe {\n while !node.is_null() {\n let next = (*node).first_skip_entry().node;\n Node::free(node);\n node = next;\n }\n }\n }\n}\n\n\nimpl From<&[C::Item]> for SkipList {\n fn from(s: &[C::Item]) -> SkipList {\n SkipList::new_from_slice(s)\n }\n}\n\nimpl From> for SkipList {\n fn from(s: Vec) -> SkipList {\n SkipList::new_from_slice(s.as_slice())\n }\n}\n\nimpl Into> for &SkipList {\n fn into(self) -> Vec {\n let mut content = Vec::with_capacity(self.num_items);\n\n for node in self.iter() {\n content.extend(node.content_slice().iter());\n }\n\n content\n }\n}\n\nimpl SkipList where C::Item: std::fmt::Debug {\n // TODO: Don't export this.\n pub fn print(&self) {\n println!(\"items: {}\\tuserlen: {}, height: {}\", self.num_items, self.get_userlen(), self.head.height);\n\n print!(\"HEAD:\");\n for s in self.head.nexts() {\n print!(\" |{} \", s.skip_usersize);\n }\n println!(\"\");\n\n for (i, node) in self.iter().enumerate() {\n print!(\"{}:\", i);\n for s in node.nexts() {\n print!(\" |{} \", s.skip_usersize);\n }\n println!(\" : {:?}\", node.content_slice());\n }\n }\n}\n\n// impl usize> PartialEq for SkipList {\n// // This is quite complicated. It would be cleaner to just write a bytes\n// // iterator, then iterate over the bytes of both strings comparing along the\n// // way.\n// // However, this should be faster because it can memcmp().\n\n// // Another way to implement this would be to rewrite it as a comparison with\n// // an iterator over &str. Then the rope vs rope comparison would be trivial,\n// // but also we could add comparison functions with a single &str and stuff\n// // very easily.\n// fn eq(&self, other: &SkipList) -> bool {\n// if self.num_items != other.num_items\n// || self.num_chars() != other.num_chars() {\n// return false\n// }\n\n// let mut other_iter = other.iter().map(|n| { n.as_str() });\n\n// let mut os = other_iter.next();\n// let mut opos: usize = 0; // Byte offset in os.\n// for n in self.iter() {\n// let s = n.as_str();\n// let mut pos: usize = 0; // Current byte offset in s\n// debug_assert_eq!(s.len(), n.num_bytes as usize);\n\n// // Walk s.len() bytes through the other rope\n// while pos < n.num_bytes as usize {\n// if let Some(oss) = os {\n// let amt = min(s.len() - pos, oss.len() - opos);\n// // println!(\"iter slen {} pos {} osslen {} amt {}\", s.len(), pos, oss.len(), amt);\n\n// if &s[pos..pos+amt] != &oss[opos..opos+amt] {\n// return false\n// }\n\n// pos += amt;\n// opos += amt;\n// debug_assert!(opos <= oss.len());\n\n// if opos == oss.len() {\n// os = other_iter.next();\n// opos = 0;\n// }\n// } else {\n// panic!(\"Internal string length does not match\");\n// }\n// }\n// }\n\n// true\n// }\n// }\n// impl usize> Eq for SkipList {}\n\n// impl Clone for SkipList where F: Fn(&T) -> usize {\n// fn clone(&self) -> Self {\n// let mut r = SkipList::new(self.get_usersize);\n// r.num_items = self.num_items;\n// let head_str = self.head.as_str();\n// r.head.items[..head_str.len()].copy_from_slice(head_str.as_bytes());\n// r.head.num_bytes = self.head.num_bytes;\n// r.head.height = self.head.height;\n \n// {\n// // I could just edit the overflow memory directly, but this is safer\n// // because of aliasing rules.\n// let head_nexts = r.head.nexts_mut();\n// for i in 0..self.head.height as usize {\n// head_nexts[i].skip_items = self.nexts[i].skip_items;\n// }\n// }\n\n// let mut nodes = [&mut r.head as *mut Node; MAX_HEIGHT];\n\n// // The first node the iterator will return is the head. Ignore it.\n// let mut iter = self.iter();\n// iter.next();\n// for other in iter {\n// // This also sets height.\n// let height = other.height;\n// let node = Node::alloc_with_height(height);\n// unsafe {\n// (*node).num_bytes = other.num_bytes;\n// let len = other.num_bytes as usize;\n// (*node).items[..len].copy_from_slice(&other.items[..len]);\n\n// let other_nexts = other.nexts();\n// let nexts = (*node).nexts_mut();\n// for i in 0..height as usize {\n// nexts[i].skip_items = other_nexts[i].skip_items;\n// (*nodes[i]).nexts_mut()[i].node = node;\n// nodes[i] = node;\n// }\n// }\n// }\n\n// r\n// }\n// }\n" + ) + , (25738, 108, "") + , (25738, 0, "\n ") + , (25747, 4, "") + , (25743, 4, "") + , (25739, 4, "") + , (25738, 1, "") + , (25737, 1, "") + , (25737, 0, "\n ") + , (25750, 0, "/") + , (25751, 0, "/") + , (25752, 0, " ") + , (25753, 0, "T") + , (25754, 0, "h") + , (25755, 0, "i") + , (25756, 0, "s") + , (25757, 0, " ") + , (25758, 0, "i") + , (25759, 0, "s") + , (25760, 0, " ") + , (25761, 0, "s") + , (25762, 0, "u") + , (25762, 1, "") + , (25761, 1, "") + , (25761, 0, "u") + , (25762, 0, "s") + , (25763, 0, "u") + , (25764, 0, "a") + , (25765, 0, "l") + , (25766, 0, "l") + , (25767, 0, "y") + , (25768, 0, " ") + , (25769, 0, "n") + , (25770, 0, "o") + , (25771, 0, "t") + , (25772, 0, " ") + , (25773, 0, "n") + , (25774, 0, "e") + , (25775, 0, "e") + , (25776, 0, "d") + , (25777, 0, "e") + , (25778, 0, "d") + , (25779, 0, ",") + , (25780, 0, " ") + , (25781, 0, "s") + , (25782, 0, "o") + , (25783, 0, " ") + , (25784, 0, "i") + , (25785, 0, "t") + , (25786, 0, " ") + , (25787, 0, "f") + , (25788, 0, "e") + , (25789, 0, "e") + , (25790, 0, "l") + , (25791, 0, "s") + , (25792, 0, " ") + , (25793, 0, "l") + , (25794, 0, "i") + , (25795, 0, "k") + , (25796, 0, "e") + , (25797, 0, " ") + , (25798, 0, "a") + , (25799, 0, " ") + , (25800, 0, "b") + , (25801, 0, "i") + , (25802, 0, "t") + , (25803, 0, " ") + , (25804, 0, "o") + , (25805, 0, "f") + , (25806, 0, " ") + , (25807, 0, "a") + , (25808, 0, " ") + , (25809, 0, "w") + , (25810, 0, "a") + , (25811, 0, "s") + , (25812, 0, "t") + , (25813, 0, "e") + , (25814, 0, " ") + , (25815, 0, "o") + , (25816, 0, "f") + , (25817, 0, " ") + , (25818, 0, "C") + , (25819, 0, "P") + , (25820, 0, "U") + , (25821, 0, " ") + , (25822, 0, "a") + , (25823, 0, "n") + , (25824, 0, "d") + , (25825, 0, " ") + , (25826, 0, "c") + , (25827, 0, "o") + , (25828, 0, "m") + , (25829, 0, "p") + , (25830, 0, "l") + , (25831, 0, "e") + , (25832, 0, "x") + , (25833, 0, "i") + , (25821, 13, ",") + , (25822, 0, " ") + , (25823, 0, "b") + , (25824, 0, "u") + , (25753, 72, "U") + , (25754, 0, "p") + , (25755, 0, "d") + , (25756, 0, "a") + , (25757, 0, "t") + , (25758, 0, "i") + , (25759, 0, "n") + , (25760, 0, "g") + , (25761, 0, " ") + , (25762, 0, "t") + , (25763, 0, "h") + , (25764, 0, "e") + , (25765, 0, " ") + , (25766, 0, "c") + , (25767, 0, "u") + , (25768, 0, "r") + , (25769, 0, "s") + , (25770, 0, "o") + , (25771, 0, "r") + , (25772, 0, " ") + , (25773, 0, "a") + , (25774, 0, "f") + , (25775, 0, "t") + , (25776, 0, "e") + , (25777, 0, "r") + , (25778, 0, " ") + , (25779, 0, "t") + , (25780, 0, "h") + , (25781, 0, "e") + , (25782, 0, " ") + , (25783, 0, "o") + , (25784, 0, "p") + , (25785, 0, "e") + , (25786, 0, "r") + , (25787, 0, "a") + , (25788, 0, "t") + , (25789, 0, "i") + , (25790, 0, "o") + , (25791, 0, "n") + , (25792, 0, " ") + , (25793, 0, "d") + , (25793, 1, "") + , (25793, 0, "f") + , (25794, 0, "e") + , (25795, 0, "e") + , (25796, 0, "l") + , (25797, 0, "s") + , (25798, 0, " ") + , (25799, 0, "a") + , (25800, 0, " ") + , (25801, 0, "b") + , (25802, 0, "i") + , (25803, 0, "t") + , (25804, 0, " ") + , (25805, 0, "e") + , (25806, 0, "x") + , (25807, 0, "c") + , (25808, 0, "e") + , (25809, 0, "s") + , (25810, 0, "s") + , (25811, 0, "i") + , (25812, 0, "v") + , (25813, 0, "e") + , (25814, 0, ",") + , (25815, 0, " ") + , (25816, 0, "b") + , (25817, 0, "u") + , (25818, 0, "t") + , (25819, 0, " ") + , (25820, 0, "i") + , (25821, 0, "t") + , (25822, 0, "s") + , (25823, 0, " ") + , (25824, 0, "i") + , (25825, 0, "m") + , (25826, 0, "p") + , (25827, 0, "o") + , (25828, 0, "r") + , (25829, 0, "t") + , (25830, 0, "a") + , (25831, 0, "n") + , (25832, 0, "t") + , (25833, 0, " ") + , (25752, 82, " ") + , (25753, 0, "U") + , (25754, 0, "s") + , (25755, 0, "u") + , (25756, 0, "a") + , (25757, 0, "l") + , (25758, 0, "l") + , (25759, 0, "y") + , (25760, 0, " ") + , (25761, 0, "t") + , (25762, 0, "h") + , (25763, 0, "e") + , (25764, 0, " ") + , (25765, 0, "c") + , (25766, 0, "u") + , (25767, 0, "r") + , (25768, 0, "s") + , (25769, 0, "o") + , (25770, 0, "r") + , (25771, 0, " ") + , (25772, 0, "w") + , (25773, 0, "i") + , (25774, 0, "l") + , (25775, 0, "l") + , (25776, 0, " ") + , (25777, 0, "b") + , (25778, 0, "e") + , (25779, 0, " ") + , (25780, 0, "d") + , (25781, 0, "i") + , (25782, 0, "s") + , (25783, 0, "c") + , (25784, 0, "a") + , (25785, 0, "r") + , (25786, 0, "d") + , (25787, 0, "e") + , (25788, 0, "d") + , (25789, 0, " ") + , (25790, 0, "a") + , (25791, 0, "f") + , (25792, 0, "t") + , (25793, 0, "e") + , (25794, 0, "r") + , (25795, 0, " ") + , (25796, 0, "o") + , (25797, 0, "n") + , (25798, 0, "e") + , (25799, 0, " ") + , (25800, 0, "c") + , (25801, 0, "h") + , (25802, 0, "a") + , (25803, 0, "n") + , (25804, 0, "g") + , (25805, 0, "e") + , (25806, 0, ",") + , (25807, 0, " ") + , (25808, 0, "b") + , (25809, 0, "u") + , (25810, 0, "t") + , (25811, 0, " ") + , (25812, 0, "f") + , (25813, 0, "o") + , (25814, 0, "r") + , (25815, 0, " ") + , (25816, 0, "c") + , (25817, 0, "o") + , (25818, 0, "m") + , (25819, 0, "p") + , (25820, 0, "o") + , (25821, 0, "u") + , (25822, 0, "n") + , (25823, 0, "d") + , (25824, 0, " ") + , (25825, 0, "e") + , (25826, 0, "d") + , (25827, 0, "i") + , (25828, 0, "t") + , (25829, 0, "s") + , (25830, 0, " ") + , (25831, 0, "i") + , (25832, 0, "t") + , (25833, 0, "s") + , (25834, 0, " ") + , (25835, 0, "i") + , (25836, 0, "m") + , (25837, 0, "p") + , (25838, 0, "o") + , (25839, 0, "r") + , (25840, 0, "t") + , (25841, 0, "a") + , (25842, 0, "n") + , (25843, 0, "t") + , (25844, 0, " ") + , (25845, 0, "t") + , (25846, 0, "h") + , (25847, 0, "e") + , (25848, 0, " ") + , (25849, 0, "p") + , (25850, 0, "a") + , (25851, 0, "s") + , (25852, 0, "s") + , (25853, 0, "e") + , (25854, 0, "d") + , (25855, 0, " ") + , (25856, 0, "c") + , (25857, 0, "u") + , (25858, 0, "r") + , (25859, 0, "s") + , (25860, 0, "o") + , (25861, 0, "r") + , (25812, 50, "f") + , (25813, 0, "o") + , (25814, 0, "r") + , (25815, 0, " ") + , (25816, 0, "c") + , (25817, 0, "o") + , (25818, 0, "n") + , (25819, 0, "s") + , (25820, 0, "i") + , (25821, 0, "s") + , (25822, 0, "t") + , (25823, 0, "e") + , (25824, 0, "n") + , (25825, 0, "c") + , (25826, 0, "y") + , (25827, 0, " ") + , (25828, 0, "o") + , (25829, 0, "f") + , (25830, 0, " ") + , (25831, 0, "c") + , (25832, 0, "o") + , (25833, 0, "m") + , (25834, 0, "p") + , (25835, 0, "o") + , (25836, 0, "u") + , (25837, 0, "n") + , (25838, 0, "d") + , (25839, 0, " ") + , (25840, 0, "e") + , (25841, 0, "d") + , (25842, 0, "i") + , (25843, 0, "r") + , (25844, 0, "s") + , (25845, 0, " ") + , (25845, 1, "") + , (25844, 1, "") + , (25843, 1, "") + , (25843, 0, "t") + , (25844, 0, "s") + , (25845, 0, " ") + , (25846, 0, "w") + , (25847, 0, "e") + , (25848, 0, " ") + , (25848, 1, "") + , (25848, 0, " ") + , (25849, 0, "k") + , (25850, 0, "e") + , (25851, 0, "e") + , (25852, 0, "p") + , (25853, 0, " ") + , (25854, 0, "t") + , (25855, 0, "h") + , (25856, 0, "e") + , (25857, 0, " ") + , (25858, 0, "c") + , (25859, 0, "u") + , (25860, 0, "r") + , (25861, 0, "s") + , (25862, 0, "o") + , (25846, 17, "w") + , (25847, 0, "e") + , (25848, 0, "'") + , (25849, 0, "l") + , (25850, 0, "l") + , (25851, 0, " ") + , (25852, 0, "u") + , (25853, 0, "p") + , (25854, 0, "d") + , (25855, 0, "a") + , (25856, 0, "t") + , (25857, 0, "e") + , (25858, 0, " ") + , (25859, 0, "t") + , (25860, 0, "h") + , (25861, 0, "e") + , (25862, 0, " ") + , (25863, 0, "c") + , (25864, 0, "u") + , (25865, 0, "r") + , (25866, 0, "s") + , (25867, 0, "o") + , (25868, 0, "r") + , (25869, 0, " ") + , (25870, 0, "t") + , (25871, 0, "o") + , (25872, 0, " ") + , (25873, 0, "p") + , (25874, 0, "o") + , (25875, 0, "i") + , (25876, 0, "n") + , (25877, 0, "t") + , (25878, 0, " ") + , (25879, 0, "t") + , (25880, 0, "o") + , (25881, 0, "t") + , (25882, 0, " ") + , (25882, 1, "") + , (25881, 1, "") + , (25881, 0, " ") + , (25882, 0, "t") + , (25883, 0, "h") + , (25884, 0, "e") + , (25885, 0, " ") + , (25886, 0, "e") + , (25887, 0, "n") + , (25888, 0, "d") + , (25889, 0, " ") + , (25890, 0, "o") + , (25891, 0, "f") + , (25892, 0, " ") + , (25893, 0, "t") + , (25894, 0, "h") + , (25895, 0, "e") + , (25896, 0, " ") + , (25897, 0, "n") + , (25898, 0, "o") + , (25899, 0, "e") + , (25899, 1, "") + , (25898, 1, "") + , (25898, 0, "e") + , (25899, 0, "w") + , (25900, 0, " ") + , (25901, 0, "c") + , (25902, 0, "o") + , (25903, 0, "n") + , (25904, 0, "t") + , (25905, 0, "e") + , (25906, 0, "n") + , (25907, 0, "t") + , (25908, 0, ".") + , ( 25738 + , 171 + , " // Usually the cursor will be discarded after one change, but for\n // consistency of compound edits we'll update the cursor to point to\n // the end of the new content." + ) + , (25939, 0, "\n ") + , (25952, 0, "c") + , (25953, 0, "u") + , (25954, 0, "r") + , (25955, 0, "s") + , (25956, 0, "o") + , (25957, 0, "r") + , (25958, 0, ".") + , (25952, 7, "") + , (25952, 0, "c") + , (25953, 0, "u") + , (25954, 0, "r") + , (25955, 0, "s") + , (25956, 0, "o") + , (25957, 0, "r") + , (25958, 0, ".") + , (25959, 0, "userpos") + , (25966, 0, " ") + , (25967, 0, "+") + , (25968, 0, "=") + , (25969, 0, " ") + , (25970, 0, "n") + , (25971, 0, "u") + , (25972, 0, "m") + , (25973, 0, "_") + , (25970, 4, "num_inserted_usercount") + , (25992, 0, ";") + , (25939, 0, "\n ") + , (25952, 0, "f") + , (25953, 0, "o") + , (25954, 0, "r") + , (25955, 0, " ") + , (25956, 0, "_") + , (25957, 0, " ") + , (25958, 0, "i") + , (25959, 0, "n") + , (25960, 0, " ") + , (25956, 5, "e") + , (25957, 0, "n") + , (25958, 0, "t") + , (25959, 0, "r") + , (25960, 0, "y") + , (25956, 0, "&") + , (25957, 0, "m") + , (25958, 0, "u") + , (25959, 0, "t") + , (25960, 0, " ") + , (25966, 0, " ") + , (25967, 0, "i") + , (25968, 0, "n") + , (25969, 0, " ") + , (25970, 0, "c") + , (25971, 0, "u") + , (25972, 0, "r") + , (25973, 0, "s") + , (25974, 0, "o") + , (25975, 0, "r") + , (25976, 0, ".") + , (25977, 0, "entries") + , (25984, 0, " ") + , (25985, 0, "{") + , (25986, 0, "\n ") + , (26003, 0, "\n ") + , (25987, 16, "") + , (25988, 16, " }") + , (25984, 0, "[") + , (25985, 0, "0") + , (25986, 0, ".") + , (25987, 0, ".") + , (25988, 0, "s") + , (25989, 0, "e") + , (25990, 0, "l") + , (25991, 0, "f") + , (25992, 0, ".") + , (25993, 0, "h") + , (25994, 0, "e") + , (25994, 1, "") + , (25993, 1, "") + , (25993, 0, "h") + , (25994, 0, "e") + , (25995, 0, "a") + , (25996, 0, "d") + , (25997, 0, ".") + , (25998, 0, "h") + , (25999, 0, "e") + , (26000, 0, "i") + , (26001, 0, "g") + , (26002, 0, "h") + , (26003, 0, "t") + , (26004, 0, " ") + , (26005, 0, "a") + , (26006, 0, "s") + , (26007, 0, " ") + , (26008, 0, "u") + , (26009, 0, "s") + , (26010, 0, "i") + , (26011, 0, "z") + , (26012, 0, "e") + , (26013, 0, ")") + , (26013, 1, "") + , (26013, 0, "]") + , (26017, 0, " ") + , (26017, 16, "") + , (26014, 0, ".") + , (26015, 0, "i") + , (26016, 0, "t") + , (26017, 0, "e") + , (26018, 0, "r") + , (26019, 0, "(") + , (26020, 0, ")") + , (26019, 0, "_") + , (26020, 0, "m") + , (26021, 0, "u") + , (26022, 0, "t") + , (26028, 0, " ") + , (26044, 0, "e") + , (26045, 0, "n") + , (26046, 0, "t") + , (26047, 0, "r") + , (26048, 0, "y") + , (26049, 0, ".") + , (26050, 0, "s") + , (26051, 0, "k") + , (26052, 0, "i") + , (26053, 0, "p") + , (26054, 0, "_") + , (26055, 0, "u") + , (26050, 6, "skip_usersize") + , (26063, 0, " ") + , (26064, 0, "+") + , (26065, 0, "=") + , (26066, 0, " ") + , (26067, 0, "num_inserted_usercount") + , (26089, 0, ";") + , (25956, 5, "") + , (1150, 3, "1") + , (1449, 2, "1") + , (1150, 1, "") + , (1150, 0, "2") + , (20926, 0, ",") + , (20927, 0, " ") + , (20928, 0, "m") + , (20929, 0, "o") + , (20930, 0, "v") + , (20931, 0, "e") + , (20932, 0, "_") + , (20933, 0, "c") + , (20934, 0, "u") + , (20935, 0, "r") + , (20936, 0, "s") + , (20937, 0, "o") + , (20938, 0, "r") + , (20939, 0, ":") + , (20940, 0, " ") + , (20941, 0, "b") + , (20942, 0, "o") + , (20943, 0, "o") + , (20944, 0, "l") + , (20941, 4, "bool") + , (22884, 0, "\n ") + , (22897, 0, "f") + , (22897, 1, "") + , (22897, 0, "i") + , (22898, 0, "f") + , (22899, 0, " ") + , (22900, 0, "m") + , (22901, 0, "o") + , (22902, 0, "v") + , (22903, 0, "e") + , (22904, 0, "_") + , (22900, 5, "move_cursor") + , (22911, 0, " ") + , (22912, 0, "{") + , (23033, 12, " ") + , (22990, 16, " ") + , (22958, 16, " ") + , (22914, 12, " ") + , (23063, 0, "\n ") + , (23064, 16, " }") + , (23088, 0, "\n ") + , (23097, 0, "i") + , (23098, 0, "f") + , (23099, 0, " ") + , (23100, 0, "m") + , (23101, 0, "o") + , (23102, 0, "v") + , (23103, 0, "e") + , (23100, 4, "move_cursor") + , (23111, 0, " ") + , (23112, 0, "{") + , (23306, 8, " ") + , (23246, 12, " ") + , (23163, 12, " ") + , (23114, 8, " ") + , (23331, 0, "\n ") + , (23332, 12, " }") + , (23113, 53, "") + , (23089, 8, " ") + , (23089, 0, " for i in new_height_usize..head_height {\n") + , (23166, 87, "") + , (23138, 12, " ") + , ( 23138 + , 0 + , " (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n" + ) + , (23341, 0, "\n }") + , (23332, 8, " ") + , (23318, 14, "") + , (23221, 16, " ") + , (23328, 12, " ") + , (28502, 0, ",") + , (28503, 0, " ") + , (28504, 0, "t") + , (28505, 0, "r") + , (28506, 0, "u") + , (28507, 0, "e") + , (28503, 5, "") + , (28502, 1, "") + , (28502, 0, ",") + , (28503, 0, " true") + , (28792, 0, ",") + , (28793, 0, " ") + , (28794, 0, "f") + , (28795, 0, "a") + , (28796, 0, "l") + , (28797, 0, "s") + , (28798, 0, "e") + , (28674, 0, "\n ") + , (28687, 0, "/") + , (28688, 0, "/") + , (28689, 0, " ") + , (28675, 15, "") + , (28674, 1, "") + , (28723, 0, "\n ") + , (28740, 0, "/") + , (28741, 0, "/") + , (28742, 0, " ") + , (28743, 0, "P") + , (28744, 0, "a") + , (28745, 0, "s") + , (28746, 0, "s") + , (28747, 0, "i") + , (28748, 0, "n") + , (28749, 0, "g") + , (28750, 0, " ") + , (28751, 0, "f") + , (28752, 0, "a") + , (28753, 0, "l") + , (28754, 0, "s") + , (28755, 0, "e") + , (28756, 0, " ") + , (28757, 0, "t") + , (28758, 0, "o") + , (28759, 0, " ") + , (28760, 0, "i") + , (28761, 0, "n") + , (28762, 0, "d") + , (28763, 0, "i") + , (28764, 0, "c") + , (28765, 0, "a") + , (28766, 0, "t") + , (28767, 0, "e") + , (28768, 0, " ") + , (28769, 0, "w") + , (28770, 0, "e") + , (28771, 0, " ") + , (28772, 0, "d") + , (28773, 0, "o") + , (28774, 0, "n") + , (28775, 0, "'") + , (28776, 0, "t") + , (28777, 0, " ") + , (28778, 0, "w") + , (28779, 0, "a") + , (28780, 0, "n") + , (28781, 0, "t") + , (28782, 0, " ") + , (28783, 0, "t") + , (28784, 0, "o") + , (28785, 0, " ") + , (28783, 3, "t") + , (28784, 0, "h") + , (28785, 0, "e") + , (28786, 0, " ") + , (28787, 0, "c") + , (28788, 0, "u") + , (28789, 0, "r") + , (28790, 0, "s") + , (28791, 0, "o") + , (28792, 0, "r") + , (28793, 0, " ") + , (28794, 0, "u") + , (28795, 0, "p") + , (28796, 0, "d") + , (28797, 0, "a") + , (28798, 0, "t") + , (28799, 0, "e") + , (28800, 0, "d") + , (28801, 0, " ") + , (28802, 0, "a") + , (28803, 0, "f") + , (28804, 0, "t") + , (28805, 0, "e") + , (28806, 0, " ") + , (28807, 0, "t") + , (28807, 1, "") + , (28806, 1, "") + , (28806, 0, "r") + , (28807, 0, " ") + , (28808, 0, "t") + , (28809, 0, "h") + , (28810, 0, "i") + , (28811, 0, "s") + , (28812, 0, " ") + , (28813, 0, "-") + , (28814, 0, " ") + , (28815, 0, "i") + , (28816, 0, "t") + , (28817, 0, " ") + , (28818, 0, "s") + , (28819, 0, "h") + , (28820, 0, "o") + , (28821, 0, "u") + , (28822, 0, "l") + , (28823, 0, "d") + , (28824, 0, " ") + , (28825, 0, "r") + , (28826, 0, "e") + , (28827, 0, "m") + , (28828, 0, "a") + , (28829, 0, "i") + , (28830, 0, "n") + , (28831, 0, " ") + , (28832, 0, "a") + , (28833, 0, "t") + , (28834, 0, " ") + , (28835, 0, "t") + , (28836, 0, "h") + , (28837, 0, "e") + , (28838, 0, " ") + , (28839, 0, "e") + , (28840, 0, "n") + , (28841, 0, "d") + , (28842, 0, " ") + , (28843, 0, "o") + , (28844, 0, "f") + , (28845, 0, " ") + , (28846, 0, "t") + , (28847, 0, "h") + , (28848, 0, "e") + , (28849, 0, " ") + , (28850, 0, "n") + , (28851, 0, "e") + , (28852, 0, "w") + , (28853, 0, "l") + , (28854, 0, "y") + , (28855, 0, " ") + , (28856, 0, "i") + , (28857, 0, "n") + , (28858, 0, "s") + , (28859, 0, "e") + , (28860, 0, "r") + , (28861, 0, "t") + , (28862, 0, "e") + , (28863, 0, "d") + , (28864, 0, " ") + , (28865, 0, "c") + , (28866, 0, "o") + , (28867, 0, "n") + , (28868, 0, "t") + , (28869, 0, "e") + , (28870, 0, "n") + , (28871, 0, "t") + , (28872, 0, ",") + , (28873, 0, " ") + , (28874, 0, "w") + , (28875, 0, "h") + , (28876, 0, "i") + , (28877, 0, "c") + , (28878, 0, "h") + , (28879, 0, " ") + , (28880, 0, "i") + , (28881, 0, "s") + , (28882, 0, " ") + , (28883, 0, "b") + , (28884, 0, "e") + , (28885, 0, "f") + , (28886, 0, "o") + , (28887, 0, "r") + , (28888, 0, "e") + , (28883, 0, "*") + , (28890, 0, "*") + , (28891, 0, " ") + , (28892, 0, "t") + , (28893, 0, "h") + , (28894, 0, "i") + , (28895, 0, "s") + , (28896, 0, " ") + , (28897, 0, "a") + , (28898, 0, "e") + , (28898, 1, "") + , (28897, 1, "") + , (28897, 0, "e") + , (28898, 0, "n") + , (28899, 0, "d") + , (28900, 0, " ") + , (28901, 0, "b") + , (28902, 0, "i") + , (28903, 0, "t") + , (28904, 0, ".") + , ( 28724 + , 181 + , " // Passing false to indicate we don't want the cursor updated\n // after this - it should remain at the end of the newly\n // inserted content, which is *before* this end bit." + ) + , (23221, 0, " if move_cursor {\n") + , (23278, 64, "") + , (23250, 12, " ") + , ( 23250 + , 0 + , " cursor.entries[i].skip_usersize += new_userlen;\n" + ) + , (23346, 14, "") + , (23314, 16, " ") + , (23314, 0, " }\n") + , (23364, 10, "") + , (23328, 20, " ") + , (23328, 0, " }\n") + , (23378, 1, "") + , (23338, 24, " ") + , (23338, 0, " \n") + , (23371, 42, "") + , (23347, 8, " ") + , (23347, 0, " self.num_items += contents.len();\n") + , (23417, 43, "") + , (23389, 12, " ") + , (23389, 0, " self.num_usercount += new_userlen;\n") + , (23432, 16, " ") + , (23432, 12, " ") + , (23465, 0, " ") + , (23499, 0, "\n ") + , (23500, 12, " }") + , (12303, 0, "\n ") + , (12320, 0, " ") + , (12304, 4, "") + , (12317, 0, "f") + , (12318, 0, "i") + , (12319, 0, "e") + , (12320, 0, "l") + , (12321, 0, "d") + , (12347, 1, " ") + , (12348, 0, "-") + , (12350, 1, "") + , (12350, 0, "e") + , ( 12305 + , 162 + , " // This field isn't strictly necessary - earlier versions tacked this on to\n // the last item in entries... I'm still not sure the cleanest way to do\n // this." + ) + , (12468, 0, "/") + , (12391, 0, "/") + , (12311, 0, "/") + , (12304, 0, "\n ") + , (12309, 0, "/") + , (12310, 0, "/") + , (12311, 0, "/") + , (12312, 0, " ") + , (12313, 0, "T") + , (12314, 0, "h") + , (12315, 0, "e") + , (12316, 0, " ") + , (12317, 0, "g") + , (12318, 0, "l") + , (12319, 0, "o") + , (12320, 0, "a") + , (12320, 1, "") + , (12320, 0, "b") + , (12321, 0, "a") + , (12322, 0, "l") + , (12323, 0, " ") + , (12324, 0, "u") + , (12325, 0, "s") + , (12326, 0, "e") + , (12327, 0, "r") + , (12328, 0, " ") + , (12329, 0, "p") + , (12330, 0, "o") + , (12331, 0, "s") + , (12332, 0, "i") + , (12333, 0, "t") + , (12334, 0, "i") + , (12335, 0, "o") + , (12336, 0, "n") + , (12337, 0, " ") + , (12338, 0, "i") + , (12339, 0, "n") + , (12340, 0, " ") + , (12341, 0, "t") + , (12342, 0, "h") + , (12343, 0, "e") + , (12344, 0, " ") + , (12345, 0, "l") + , (12346, 0, "i") + , (12347, 0, "s") + , (12348, 0, "t") + , (12338, 0, "o") + , (12339, 0, "f") + , (12340, 0, " ") + , (12341, 0, "t") + , (12342, 0, "h") + , (12343, 0, "e") + , (12344, 0, " ") + , (12345, 0, "c") + , (12346, 0, "u") + , (12347, 0, "r") + , (12348, 0, "s") + , (12349, 0, "o") + , (12350, 0, " ") + , (12351, 0, "r") + , (12362, 1, "") + , (12361, 1, "") + , (12360, 1, "") + , (12359, 1, "") + , (12358, 1, "") + , (12357, 1, "") + , (12356, 1, "") + , (12355, 1, "") + , (12354, 1, "") + , (12353, 1, "") + , (12352, 1, "") + , (12351, 1, "") + , (12350, 1, "") + , (12350, 0, "r") + , (12351, 0, " ") + , (12352, 0, "i") + , (12353, 0, "n") + , (12354, 0, " ") + , (12355, 0, "t") + , (12356, 0, "h") + , (12357, 0, "e") + , (12358, 0, " ") + , (12359, 0, "e") + , (12360, 0, "n") + , (12361, 0, "t") + , (12362, 0, "i") + , (12363, 0, "r") + , (12364, 0, "e") + , (12365, 0, " ") + , (12366, 0, "l") + , (12367, 0, "i") + , (12368, 0, "s") + , (12369, 0, "t") + , (12370, 0, ".") + , (12371, 0, " ") + , (12372, 0, "T") + , (12373, 0, "i") + , (12374, 0, "s") + , (12375, 0, " ") + , (12375, 1, "") + , (12374, 1, "") + , (12373, 1, "") + , (12373, 0, "h") + , (12374, 0, "i") + , (12375, 0, "s") + , (12376, 0, " ") + , (12377, 0, "i") + , (12378, 0, "s") + , (12379, 0, " ") + , (12380, 0, "u") + , (12381, 0, "s") + , (12382, 0, "e") + , (12383, 0, "d") + , (12384, 0, " ") + , (12385, 0, "f") + , (12386, 0, "o") + , (12387, 0, "r") + , (12388, 0, " ") + , (12389, 0, "h") + , (12389, 1, "") + , (12389, 0, "w") + , (12390, 0, "h") + , (12391, 0, "e") + , (12392, 0, "n") + , (12393, 0, " ") + , (12394, 0, "t") + , (12395, 0, "h") + , (12396, 0, "e") + , (12397, 0, " ") + , (12398, 0, "h") + , (12399, 0, "e") + , (12400, 0, "i") + , (12401, 0, "g") + , (12402, 0, "h") + , (12403, 0, "t") + , (12404, 0, " ") + , (12398, 7, "m") + , (12399, 0, "a") + , (12400, 0, "x") + , (12401, 0, " ") + , (12402, 0, "s") + , (12403, 0, "e") + , (12404, 0, "e") + , (12405, 0, "n") + , (12406, 0, " ") + , (12407, 0, "h") + , (12408, 0, "e") + , (12409, 0, "i") + , (12410, 0, "g") + , (12411, 0, "h") + , (12412, 0, "t") + , (12413, 0, " ") + , (12414, 0, "i") + , (12415, 0, "n") + , (12416, 0, "c") + , (12417, 0, "r") + , (12418, 0, "e") + , (12419, 0, "a") + , (12420, 0, "s") + , (12421, 0, "e") + , (12422, 0, "s") + , (12423, 0, ",") + , (12424, 0, " ") + , (12425, 0, "s") + , (12426, 0, "o") + , (12427, 0, " ") + , (12428, 0, "w") + , (12429, 0, "e") + , (12430, 0, " ") + , (12431, 0, "c") + , (12432, 0, "a") + , (12433, 0, "n") + , (12434, 0, " ") + , (12435, 0, "p") + , (12436, 0, "o") + , (12437, 0, "p") + , (12438, 0, "u") + , (12439, 0, "l") + , (12440, 0, "a") + , (12441, 0, "t") + , (12442, 0, "e") + , (12443, 0, " ") + , (12444, 0, "f") + , (12445, 0, "i") + , (12446, 0, "e") + , (12447, 0, "l") + , (12448, 0, "d") + , (12449, 0, "s") + , (12450, 0, " ") + , (12451, 0, "i") + , (12452, 0, "n") + , (12453, 0, " ") + , (12454, 0, "t") + , (12455, 0, "h") + , (12456, 0, "e") + , (12457, 0, " ") + , (12458, 0, "c") + , (12459, 0, "u") + , (12460, 0, "r") + , (12461, 0, "s") + , (12462, 0, "o") + , (12463, 0, "r") + , (12464, 0, " ") + , (12465, 0, "a") + , (12466, 0, "n") + , (12467, 0, "d") + , (12468, 0, " ") + , (12469, 0, "i") + , (12470, 0, "n") + , (12471, 0, " ") + , (12444, 7, "p") + , (12445, 0, "r") + , (12446, 0, "e") + , (12447, 0, "v") + , (12448, 0, "i") + , (12449, 0, "u") + , (12450, 0, "s") + , (12451, 0, "l") + , (12451, 1, "") + , (12450, 1, "") + , (12449, 1, "") + , (12448, 1, "") + , (12448, 0, "i") + , (12449, 0, "o") + , (12450, 0, "u") + , (12451, 0, "s") + , (12452, 0, "l") + , (12453, 0, "y") + , (12454, 0, " ") + , (12455, 0, "u") + , (12456, 0, "n") + , (12457, 0, "u") + , (12458, 0, "s") + , (12459, 0, "e") + , (12460, 0, "d") + , (12461, 0, " ") + , (12462, 0, "e") + , (12463, 0, "n") + , (12464, 0, "t") + , (12465, 0, "r") + , (12466, 0, "i") + , (12467, 0, "e") + , (12468, 0, "s") + , (12469, 0, " ") + , (12484, 7, "a") + , (12485, 0, "n") + , (12486, 0, "d") + , (12487, 0, " ") + , (12488, 0, "i") + , (12489, 0, "n") + , (12490, 0, " ") + , (12491, 0, "t") + , (12492, 0, "h") + , (12493, 0, "e") + , (12494, 0, " ") + , (12495, 0, "h") + , (12496, 0, "e") + , (12497, 0, "a") + , (12498, 0, "d") + , (12499, 0, " ") + , (12500, 0, "n") + , (12501, 0, "o") + , (12502, 0, "d") + , (12503, 0, "e") + , (12504, 0, "'") + , (12505, 0, "s") + , (12506, 0, " ") + , (12507, 0, "h") + , (12508, 0, "e") + , (12509, 0, "i") + , (12510, 0, "g") + , (12511, 0, "h") + , (12512, 0, "t") + , (12504, 9, ".") + , (12505, 0, "assert_eq!") + , (12505, 10, "") + , (12505, 0, "\n /// ") + , ( 12305 + , 209 + , " /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///" + ) + , (12722, 0, "\n ") + , (12727, 0, "\n ") + , (12723, 4, "") + , (12728, 0, "l") + , (12729, 0, "o") + , (12730, 0, "c") + , (12731, 0, "a") + , (12732, 0, "l") + , (12733, 0, "_") + , (12734, 0, "i") + , (12735, 0, "n") + , (12736, 0, "d") + , (12737, 0, "e") + , (12738, 0, ":") + , (12738, 1, "") + , (12738, 0, "x") + , (12739, 0, ":") + , (12740, 0, " ") + , (12741, 0, "u") + , (12742, 0, "s") + , (12743, 0, "i") + , (12744, 0, "z") + , (12745, 0, "e") + , (12746, 0, ",") + , (12723, 0, "\n ") + , (12728, 0, "/") + , (12729, 0, "/") + , (12730, 0, "/") + , (12731, 0, " ") + , (12732, 0, "T") + , (12733, 0, "h") + , (12734, 0, "i") + , (12735, 0, "s") + , (12736, 0, " ") + , (12737, 0, "i") + , (12738, 0, "s") + , (12739, 0, " ") + , (12740, 0, "n") + , (12741, 0, "e") + , (12742, 0, "e") + , (12743, 0, "d") + , (12744, 0, "e") + , (12745, 0, "d") + , (12746, 0, " ") + , (12747, 0, "e") + , (12748, 0, "b") + , (12749, 0, "c") + , (12750, 0, "a") + , (12732, 19, "W") + , (12733, 0, "h") + , (12734, 0, "e") + , (12735, 0, "n") + , (12736, 0, " ") + , (12737, 0, "t") + , (12738, 0, "h") + , (12739, 0, "e") + , (12740, 0, " ") + , (12741, 0, "u") + , (12742, 0, "s") + , (12743, 0, "e") + , (12744, 0, "r") + , (12745, 0, "p") + , (12746, 0, "o") + , (12747, 0, "s") + , (12748, 0, " ") + , (12749, 0, "o") + , (12750, 0, "f") + , (12751, 0, " ") + , (12752, 0, "a") + , (12753, 0, "n") + , (12754, 0, " ") + , (12755, 0, "e") + , (12756, 0, "n") + , (12757, 0, "t") + , (12758, 0, "r") + , (12759, 0, "y") + , (12760, 0, " ") + , (12761, 0, "i") + , (12762, 0, "s") + , (12763, 0, " ") + , (12764, 0, "0") + , (12765, 0, " ") + , (12766, 0, "(") + , (12767, 0, "t") + , (12768, 0, "o") + , (12769, 0, "t") + , (12770, 0, "a") + , (12771, 0, "l") + , (12772, 0, "l") + , (12773, 0, "y") + , (12774, 0, " ") + , (12775, 0, "v") + , (12776, 0, "a") + , (12777, 0, "l") + , (12778, 0, "i") + , (12779, 0, "d") + , (12780, 0, " ") + , (12781, 0, "a") + , (12782, 0, "n") + , (12783, 0, "d") + , (12784, 0, " ") + , (12785, 0, "u") + , (12786, 0, "s") + , (12787, 0, "e") + , (12788, 0, "f") + , (12789, 0, "u") + , (12790, 0, "l") + , (12791, 0, ")") + , (12792, 0, ",") + , (12793, 0, " ") + , (12794, 0, "t") + , (12795, 0, "h") + , (12796, 0, "e") + , (12797, 0, " ") + , (12794, 4, "a") + , (12795, 0, " ") + , (12796, 0, "c") + , (12797, 0, "u") + , (12798, 0, "r") + , (12799, 0, "s") + , (12800, 0, "o") + , (12801, 0, "r") + , (12802, 0, " ") + , (12803, 0, "b") + , (12804, 0, "e") + , (12805, 0, "c") + , (12806, 0, "o") + , (12807, 0, "m") + , (12808, 0, "e") + , (12809, 0, "s") + , (12810, 0, " ") + , (12811, 0, "a") + , (12812, 0, "m") + , (12813, 0, "b") + , (12814, 0, "i") + , (12815, 0, "g") + , (12816, 0, "u") + , (12817, 0, "o") + , (12818, 0, "u") + , (12819, 0, "s") + , (12820, 0, " ") + , (12821, 0, "i") + , (12822, 0, "n") + , (12823, 0, " ") + , (12824, 0, "w") + , (12825, 0, "h") + , (12826, 0, "e") + , (12827, 0, "r") + , (12828, 0, "e") + , (12829, 0, " ") + , (12830, 0, "i") + , (12831, 0, "t") + , (12832, 0, "s") + , (12833, 0, " ") + , (12834, 0, "p") + , (12835, 0, "o") + , (12836, 0, "i") + , (12837, 0, "n") + , (12838, 0, "t") + , (12839, 0, "i") + , (12840, 0, "n") + , (12841, 0, "g") + , (12842, 0, ".") + , ( 12724 + , 119 + , " /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous in where its pointing." + ) + , (12829, 2, "a") + , (12830, 0, "b") + , (12831, 0, "o") + , (12832, 0, "u") + , (12833, 0, "t") + , (12854, 0, " ") + , (12855, 0, "T") + , (12856, 0, "h") + , (12857, 0, "i") + , (12858, 0, "s") + , (12859, 0, " ") + , (12860, 0, "i") + , (12861, 0, "s") + , (12862, 0, " ") + , (12863, 0, "u") + , (12864, 0, "s") + , (12865, 0, "e") + , (12866, 0, "d") + , (12829, 5, "w") + , (12830, 0, "i") + , (12831, 0, "t") + , (12832, 0, "h") + , (12833, 0, " ") + , (12834, 0, "r") + , (12835, 0, "e") + , (12836, 0, "g") + , (12837, 0, "a") + , (12838, 0, "r") + , (12839, 0, "d") + , (12840, 0, " ") + , (12841, 0, "t") + , (12842, 0, "o") + , (12849, 0, " ") + , (12850, 0, "e") + , (12851, 0, "x") + , (12852, 0, "a") + , (12853, 0, "c") + , (12854, 0, "t") + , (12855, 0, "l") + , (12856, 0, "y") + , (12870, 0, " ") + , (12871, 0, "i") + , (12872, 0, "n") + , (12873, 0, " ") + , (12874, 0, "t") + , (12875, 0, "h") + , (12876, 0, "e") + , (12877, 0, " ") + , (12878, 0, "c") + , (12879, 0, "u") + , (12880, 0, "r") + , (12881, 0, "r") + , (12882, 0, "e") + , (12883, 0, "n") + , (12884, 0, "t") + , (12885, 0, " ") + , (12886, 0, "e") + , (12887, 0, "n") + , (12888, 0, "t") + , (12889, 0, "r") + , (12890, 0, "y") + , ( 12803 + , 102 + , " /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used" + ) + , (12913, 0, "t") + , (12914, 0, " ") + , (12914, 1, "") + , (12913, 1, "") + , (12913, 0, " ") + , (12914, 0, "t") + , (12915, 0, "o") + , (12916, 0, " ") + , (12917, 0, "r") + , (12918, 0, "e") + , (12919, 0, "s") + , (12920, 0, "o") + , (12921, 0, "v") + , (12922, 0, "l") + , (12923, 0, "e") + , (12924, 0, " ") + , (12925, 0, "t") + , (12926, 0, "a") + , (12917, 10, "r") + , (12918, 0, "e") + , (12919, 0, "s") + , (12920, 0, "o") + , (12921, 0, "l") + , (12922, 0, "v") + , (12923, 0, "e") + , (12924, 0, " ") + , (12925, 0, "t") + , (12926, 0, "h") + , (12927, 0, "a") + , (12928, 0, "t") + , (12929, 0, " ") + , (12930, 0, "a") + , (12931, 0, "m") + , (12932, 0, "b") + , (12933, 0, "u") + , (12933, 1, "") + , (12933, 0, "i") + , (12934, 0, "g") + , (12935, 0, "u") + , (12936, 0, "i") + , (12937, 0, "t") + , (12938, 0, "y") + , (12939, 0, ".") + , (19299, 0, "(") + , (19309, 0, ",") + , (19310, 0, " ") + , (19311, 0, "u") + , (19312, 0, "s") + , (19313, 0, "i") + , (19314, 0, "z") + , (19315, 0, "e") + , (19316, 0, ")") + , (18943, 4, "c") + , (18944, 0, "o") + , (18945, 0, "n") + , (18946, 0, "t") + , (18947, 0, "a") + , (18948, 0, "i") + , (18949, 0, "n") + , (18950, 0, "s") + , ( 18905 + , 213 + , " /// skiplist. The returned cursor contains list of nodes which point past\n /// the specified position, as well as offsets of how far into their\n /// character lists the specified characters are.\n ///" + ) + , (19126, 70, "B") + , (19127, 0, "y") + , (19128, 0, " ") + , (19129, 0, "d") + , (19130, 0, "e") + , (19126, 5, "T") + , (19127, 0, "h") + , (19127, 1, "") + , (19126, 1, "") + , (19126, 0, "i") + , (19127, 0, "t") + , (19128, 0, "e") + , (19129, 0, "r") + , (19130, 0, "_") + , (19131, 0, "a") + , (19132, 0, "t") + , (19133, 0, "_") + , (19134, 0, "u") + , (19135, 0, "s") + , (19136, 0, "e") + , (19137, 0, "r") + , (19138, 0, "p") + , (19139, 0, "o") + , (19140, 0, "s") + , (19141, 0, " ") + , (19142, 0, "c") + , (19143, 0, "u") + , (19144, 0, "r") + , (19145, 0, "r") + , (19146, 0, "e") + , (19147, 0, "n") + , (19148, 0, "t") + , (19149, 0, "l") + , (19150, 0, "y") + , (19151, 0, " ") + , (19152, 0, "r") + , (19153, 0, "e") + , (19154, 0, "t") + , (19155, 0, "u") + , (19156, 0, "r") + , (19157, 0, "n") + , (19158, 0, "s") + , (19159, 0, " ") + , (19160, 0, "t") + , (19161, 0, "h") + , (19162, 0, "e") + , (19163, 0, " ") + , (19164, 0, "l") + , (19165, 0, "a") + , (19166, 0, "s") + , (19167, 0, "t") + , (19168, 0, " ") + , (19126, 43, "S") + , (19127, 0, "o") + , (19128, 0, "m") + , (19129, 0, "e") + , (19130, 0, "t") + , (19131, 0, "i") + , (19132, 0, "m") + , (19133, 0, "e") + , (19134, 0, "s") + , (19135, 0, " ") + , (19136, 0, "a") + , (19137, 0, " ") + , (19138, 0, "c") + , (19139, 0, "a") + , (19140, 0, "l") + , (19141, 0, "l") + , (19142, 0, " ") + , (19143, 0, "t") + , (19144, 0, "o") + , (19145, 0, " ") + , (19146, 0, "i") + , (19147, 0, "t") + , (19148, 0, "e") + , (19149, 0, "r") + , (19150, 0, "_") + , (19151, 0, "a") + , (19152, 0, "t") + , (19153, 0, "_") + , (19154, 0, "u") + , (19155, 0, "s") + , (19156, 0, "e") + , (19157, 0, "r") + , (19158, 0, "p") + , (19159, 0, "o") + , (19160, 0, "s") + , (19161, 0, " ") + , (19162, 0, "i") + , (19163, 0, "s") + , (19164, 0, " ") + , (19165, 0, "a") + , (19166, 0, "m") + , (19167, 0, "b") + , (19168, 0, "i") + , (19169, 0, "g") + , (19170, 0, "u") + , (19171, 0, "o") + , (19172, 0, "u") + , (19173, 0, "s") + , (19174, 0, ":") + , (19175, 0, "assert_eq!") + , (19185, 0, "\n /// ") + , (19194, 0, "-") + , (19185, 10, "") + , (19175, 10, "") + , (19175, 0, "\n /// ") + , (19184, 0, "\n /// ") + , (19193, 0, "-") + , (19194, 0, " ") + , (19195, 0, "T") + , (19196, 0, "h") + , (19197, 0, "e") + , (19198, 0, " ") + , (19199, 0, "u") + , (19200, 0, "s") + , (19201, 0, "e") + , (19202, 0, "r") + , (19199, 4, "") + , (19199, 0, "i") + , (19200, 0, "t") + , (19201, 0, "e") + , (19202, 0, "m") + , (19203, 0, " ") + , (19204, 0, "c") + , (19205, 0, "a") + , (19206, 0, "n") + , (19207, 0, " ") + , (19208, 0, "c") + , (19209, 0, "o") + , (19210, 0, "n") + , (19211, 0, "t") + , (19212, 0, "a") + , (19213, 0, "i") + , (19214, 0, "n") + , (19215, 0, " ") + , (19216, 0, "z") + , (19217, 0, "e") + , (19218, 0, "r") + , (19219, 0, "o") + , (19220, 0, "-") + , (19221, 0, "s") + , (19222, 0, "i") + , (19223, 0, "z") + , (19224, 0, "e") + , (19225, 0, "d") + , (19220, 6, "i") + , (19216, 5, "i") + , (19217, 0, "t") + , (19218, 0, "e") + , (19219, 0, "m") + , (19220, 0, "s") + , (19221, 0, " ") + , (19222, 0, "w") + , (19223, 0, "i") + , (19224, 0, "t") + , (19225, 0, "h") + , (19226, 0, " ") + , (19227, 0, "z") + , (19228, 0, "e") + , (19229, 0, "r") + , (19230, 0, "o") + , (19231, 0, " ") + , (19232, 0, "u") + , (19233, 0, "s") + , (19234, 0, "e") + , (19235, 0, "r") + , (19236, 0, "s") + , (19237, 0, "i") + , (19238, 0, "z") + , (19239, 0, "e") + , (19240, 0, ".") + , (19241, 0, " ") + , (19242, 0, "T") + , (19243, 0, "h") + , (19244, 0, "e") + , (19245, 0, " ") + , (19246, 0, "c") + , (19247, 0, "u") + , (19248, 0, "r") + , (19249, 0, "s") + , (19250, 0, "o") + , (19251, 0, "r") + , (19252, 0, " ") + , (19253, 0, "c") + , (19254, 0, "o") + , (19255, 0, "u") + , (19256, 0, "l") + , (19257, 0, "d") + , (19258, 0, " ") + , (19259, 0, "p") + , (19260, 0, "o") + , (19261, 0, "i") + , (19262, 0, "n") + , (19263, 0, "t") + , (19264, 0, " ") + , (19265, 0, "t") + , (19266, 0, "o") + , (19267, 0, " ") + , (19268, 0, "t") + , (19268, 1, "") + , (19268, 0, "a") + , (19269, 0, "n") + , (19270, 0, "y") + , (19271, 0, " ") + , (19272, 0, "o") + , (19273, 0, "f") + , (19274, 0, " ") + , (19275, 0, "t") + , (19276, 0, "h") + , (19277, 0, "e") + , (19278, 0, "m") + , (19279, 0, ".") + , (19280, 0, "assert_eq!") + , (19280, 10, "") + , (19280, 0, "\n /// ") + , (19289, 0, "/") + , (19289, 1, "") + , (19289, 0, "-") + , (19290, 0, " ") + , (19291, 0, "T") + , (19292, 0, "h") + , (19293, 0, "e") + , (19294, 0, " ") + , (19295, 0, "c") + , (19296, 0, "u") + , (19297, 0, "r") + , (19298, 0, "s") + , (19299, 0, "o") + , (19300, 0, "r") + , (19301, 0, " ") + , (19302, 0, "c") + , (19303, 0, "o") + , (19304, 0, "u") + , (19305, 0, "l") + , (19306, 0, "d") + , (19307, 0, " ") + , (19308, 0, "o") + , (19308, 1, "") + , (19280, 0, " ") + , (19281, 0, "F") + , (19282, 0, "o") + , (19283, 0, "r") + , (19284, 0, " ") + , (19285, 0, "n") + , (19286, 0, "o") + , (19287, 0, "w") + , (19288, 0, " ") + , (19289, 0, "w") + , (19289, 1, "") + , (19289, 0, "t") + , (19290, 0, "h") + , (19291, 0, "i") + , (19292, 0, "s") + , (19293, 0, " ") + , (19294, 0, "m") + , (19295, 0, "e") + , (19296, 0, "t") + , (19297, 0, "h") + , (19298, 0, "o") + , (19299, 0, "d") + , (19300, 0, " ") + , (19301, 0, "a") + , (19302, 0, "l") + , (19303, 0, "w") + , (19304, 0, "a") + , (19305, 0, "y") + , (19306, 0, "s") + , (19307, 0, " ") + , (19308, 0, "r") + , (19309, 0, "e") + , (19310, 0, "t") + , (19311, 0, "u") + , (19312, 0, "r") + , (19280, 33, "") + , (19295, 0, "r") + , (19296, 0, "e") + , (19297, 0, "t") + , (19298, 0, "u") + , (19299, 0, "r") + , (19300, 0, "n") + , (19301, 0, "e") + , (19302, 0, "d") + , (19303, 0, " ") + , (19317, 0, "b") + , (19318, 0, "e") + , (19319, 0, " ") + , (19320, 0, "e") + , (19321, 0, "i") + , (19322, 0, "t") + , (19323, 0, "h") + , (19324, 0, "e") + , (19325, 0, "r") + , (19326, 0, " ") + , (19327, 0, "a") + , (19328, 0, "t") + , (19329, 0, " ") + , (19330, 0, "t") + , (19331, 0, "h") + , (19332, 0, "e") + , (19333, 0, "e") + , (19333, 1, "") + , (19333, 0, " ") + , (19334, 0, "e") + , (19335, 0, "n") + , (19336, 0, "d") + , (19337, 0, " ") + , (19338, 0, "o") + , (19339, 0, "f") + , (19340, 0, " ") + , (19341, 0, "t") + , (19342, 0, "h") + , (19343, 0, "e") + , (19344, 0, " ") + , (19338, 0, "o") + , (19339, 0, "f") + , (19340, 0, " ") + , (19291, 57, "I") + , (19292, 0, "f") + , (19293, 0, " ") + , (19294, 0, "t") + , (19295, 0, "h") + , (19296, 0, "e") + , (19297, 0, " ") + , (19298, 0, "l") + , (19299, 0, "o") + , (19300, 0, "c") + , (19301, 0, "a") + , (19302, 0, "t") + , (19303, 0, "i") + , (19304, 0, "o") + , (19305, 0, "n") + , (19306, 0, " ") + , (19307, 0, "i") + , (19308, 0, "s") + , (19309, 0, " ") + , (19310, 0, "a") + , (19311, 0, "t") + , (19312, 0, " ") + , (19313, 0, "t") + , (19314, 0, "h") + , (19315, 0, "e") + , (19316, 0, " ") + , (19317, 0, "e") + , (19318, 0, "n") + , (19319, 0, "d") + , (19320, 0, " ") + , (19321, 0, "o") + , (19322, 0, "f") + , (19323, 0, " ") + , (19324, 0, "a") + , (19325, 0, " ") + , (19326, 0, "n") + , (19327, 0, "o") + , (19328, 0, "d") + , (19329, 0, "e") + , (19330, 0, ",") + , (19331, 0, " ") + , (19332, 0, "i") + , (19333, 0, "t") + , (19334, 0, " ") + , (19335, 0, "i") + , (19336, 0, "s") + , (19337, 0, " ") + , (19338, 0, "e") + , (19339, 0, "q") + , (19340, 0, "u") + , (19341, 0, "a") + , (19342, 0, "l") + , (19343, 0, "l") + , (19344, 0, "y") + , (19345, 0, " ") + , (19346, 0, "v") + , (19347, 0, "a") + , (19348, 0, "l") + , (19349, 0, "i") + , (19350, 0, "d") + , (19351, 0, " ") + , (19352, 0, "t") + , (19353, 0, "o") + , (19354, 0, " ") + , (19355, 0, "r") + , (19356, 0, "e") + , (19357, 0, "t") + , (19358, 0, "u") + , (19359, 0, "r") + , (19360, 0, "n") + , (19361, 0, " ") + , (19362, 0, "a") + , (19363, 0, " ") + , (19364, 0, "p") + , (19365, 0, "o") + , (19366, 0, "s") + , (19367, 0, "i") + , (19368, 0, "t") + , (19369, 0, "i") + , (19370, 0, "o") + , (19371, 0, "n") + , (19372, 0, " ") + , (19373, 0, "a") + , (19374, 0, "t") + , (19375, 0, " ") + , (19376, 0, "t") + , (19377, 0, "h") + , (19378, 0, "e") + , (19379, 0, " ") + , (19380, 0, "e") + , (19380, 1, "") + , (19380, 0, "s") + , (19381, 0, "t") + , (19382, 0, "a") + , (19383, 0, "r") + , (19384, 0, "t") + , (19385, 0, " ") + , (19386, 0, "o") + , (19387, 0, " ") + , (19387, 1, "") + , (19387, 0, "f") + , (19388, 0, " ") + , (19389, 0, "t") + , (19390, 0, " ") + , (19390, 1, "") + , (19390, 0, "h") + , (19391, 0, "e") + , (19392, 0, " ") + , (19393, 0, "n") + , (19394, 0, "e") + , (19395, 0, "x") + , (19396, 0, "t") + , (19397, 0, " ") + , (19398, 0, "n") + , (19399, 0, "o") + , (19400, 0, "d") + , (19401, 0, "e") + , (19402, 0, ".") + , ( 19176 + , 227 + , " ///\n /// - The item can contain items with zero usersize. The cursor could point\n /// to any of them.\n /// - If the location is at the end of a node, it is equally valid to return\n /// a position at the start of the next node." + ) + , (19422, 0, "\n /// ") + , (19431, 0, "\n /// ") + , (19440, 0, "B") + , (19441, 0, "e") + , (19442, 0, "c") + , (19443, 0, "a") + , (19444, 0, "u") + , (19445, 0, "s") + , (19446, 0, "e") + , (19447, 0, " ") + , (19448, 0, "i") + , (19449, 0, "t") + , (19450, 0, "s") + , (19451, 0, " ") + , (19452, 0, "i") + , (19453, 0, "m") + , (19454, 0, "p") + , (19455, 0, "o") + , (19456, 0, "s") + , (19457, 0, "s") + , (19458, 0, "i") + , (19459, 0, "b") + , (19460, 0, "l") + , (19461, 0, "e") + , (19462, 0, " ") + , (19463, 0, "m") + , (19464, 0, "t") + , (19464, 1, "") + , (19463, 1, "") + , (19463, 0, "t") + , (19464, 0, "o") + , (19465, 0, " ") + , (19466, 0, "m") + , (19467, 0, "v") + , (19468, 0, "o") + , (19468, 1, "") + , (19467, 1, "") + , (19467, 0, "o") + , (19468, 0, "v") + , (19469, 0, "e") + , (19470, 0, " ") + , (19471, 0, "b") + , (19472, 0, "a") + , (19473, 0, "c") + , (19474, 0, "k") + , (19475, 0, "w") + , (19476, 0, "a") + , (19477, 0, "r") + , (19478, 0, "d") + , (19479, 0, "s") + , (19480, 0, " ") + , (19481, 0, "i") + , (19482, 0, "n") + , (19483, 0, " ") + , (19484, 0, "t") + , (19485, 0, "h") + , (19486, 0, "e") + , (19487, 0, " ") + , (19488, 0, "l") + , (19489, 0, "i") + , (19490, 0, "s") + , (19491, 0, "t") + , (19492, 0, ",") + , (19493, 0, " ") + , (19494, 0, "w") + , (19495, 0, "e") + , (19496, 0, " ") + , (19497, 0, "r") + , (19498, 0, "e") + , (19499, 0, "t") + , (19500, 0, "u") + , (19501, 0, "r") + , (19502, 0, "n") + , (19503, 0, " ") + , (19504, 0, "t") + , (19505, 0, "h") + , (19506, 0, "e") + , (19507, 0, " ") + , (19508, 0, "f") + , (19509, 0, "i") + , (19510, 0, "r") + , (19511, 0, "s") + , (19512, 0, "t") + , (19513, 0, " ") + , (19514, 0, "v") + , (19515, 0, "a") + , (19516, 0, "l") + , (19517, 0, "i") + , (19518, 0, "d") + , (19519, 0, " ") + , (19520, 0, "l") + , (19521, 0, "o") + , (19522, 0, "c") + , (19523, 0, "a") + , (19524, 0, "t") + , (19525, 0, "i") + , (19526, 0, "o") + , (19527, 0, "n") + , (19494, 2, "i") + , (19495, 0, "t") + , (19496, 0, "e") + , (19497, 0, "r") + , (19498, 0, "_") + , (19499, 0, "a") + , (19500, 0, "t") + , (19501, 0, "_") + , (19502, 0, "u") + , (19503, 0, "s") + , (19504, 0, "e") + , (19505, 0, "r") + , (19506, 0, "p") + , (19507, 0, "o") + , (19508, 0, "s") + , (19516, 0, "s") + , (19528, 0, "*") + , (19534, 0, "*") + , (19534, 1, "") + , (19528, 1, "") + , (19528, 5, "a") + , (19528, 1, "") + , (19528, 0, "a") + , (19529, 0, "d") + , (19530, 0, "m") + , (19531, 0, "i") + , (19532, 0, "s") + , (19533, 0, "s") + , (19534, 0, "i") + , (19535, 0, "o") + , (19536, 0, "n") + , (19536, 1, "") + , (19535, 1, "") + , (19535, 0, "b") + , (19536, 0, "l") + , (19537, 0, "e") + , (19547, 0, " ") + , (19548, 0, "w") + , (19549, 0, "i") + , (19550, 0, "t") + , (19551, 0, "h") + , (19552, 0, " ") + , (19553, 0, "t") + , (19554, 0, "h") + , (19555, 0, "e") + , (19556, 0, " ") + , (19557, 0, "s") + , (19558, 0, "p") + , (19559, 0, "e") + , (19560, 0, "c") + , (19561, 0, "i") + , (19562, 0, "f") + , (19563, 0, "i") + , (19564, 0, "e") + , (19565, 0, "d") + , (19566, 0, " ") + , (19567, 0, "u") + , (19568, 0, "s") + , (19569, 0, "e") + , (19570, 0, "r") + , (19571, 0, "p") + , (19572, 0, "o") + , (19573, 0, "s") + , (19574, 0, ".") + , ( 19423 + , 152 + , " ///\n /// Because its impossible to move backwards in the list, iter_at_userpos\n /// returns the first admissible location with the specified userpos." + ) + , (19582, 0, "\n /// ") + , (19591, 0, "\n /// ") + , (19600, 0, "@") + , (19601, 0, "r") + , (19602, 0, "e") + , (19603, 0, "t") + , (19604, 0, "u") + , (19605, 0, "r") + , (19600, 6, "R") + , (19601, 0, "e") + , (19602, 0, "t") + , (19603, 0, "u") + , (19604, 0, "r") + , (19605, 0, "n") + , (19606, 0, "s") + , (19607, 0, " ") + , (19608, 0, "c") + , (19609, 0, "u") + , (19610, 0, "r") + , (19611, 0, "s") + , (19612, 0, "o") + , (19613, 0, "r") + , (19614, 0, ",") + , (19615, 0, " ") + , (19608, 0, "(") + , (19617, 0, "l") + , (19618, 0, "e") + , (19619, 0, "n") + , (19620, 0, "g") + , (19621, 0, "t") + , (19622, 0, "h") + , (19617, 6, "o") + , (19618, 0, "f") + , (19619, 0, "f") + , (19620, 0, "s") + , (19621, 0, "e") + , (19622, 0, "t") + , (19623, 0, " ") + , (19624, 0, "i") + , (19625, 0, "n") + , (19626, 0, "t") + , (19627, 0, "o") + , (19628, 0, " ") + , (19629, 0, "t") + , (19630, 0, "h") + , (19631, 0, "e") + , (19632, 0, " ") + , (19633, 0, "c") + , (19634, 0, "u") + , (19635, 0, "r") + , (19636, 0, "r") + , (19637, 0, "e") + , (19638, 0, "n") + , (19639, 0, "t") + , (19640, 0, " ") + , (19641, 0, "i") + , (19642, 0, "t") + , (19643, 0, "e") + , (19644, 0, "m") + , (19645, 0, ")") + , (19633, 7, "") + , (19632, 1, "") + , (19632, 0, " ") + , (19633, 0, "p") + , (19634, 0, "o") + , (19635, 0, "i") + , (19636, 0, "n") + , (19637, 0, "t") + , (19638, 0, "e") + , (19639, 0, "d") + , (19633, 7, "i") + , (19633, 1, "") + , (19632, 1, "") + , (19632, 0, " ") + , (19633, 0, "s") + , (19634, 0, "p") + , (19635, 0, "e") + , (19636, 0, "c") + , (19637, 0, "i") + , (19638, 0, "f") + , (19639, 0, "i") + , (19640, 0, "e") + , (19641, 0, "d") + , (19648, 0, ".") + , (21345, 0, "\n ") + , (21354, 0, "\n ") + , (21346, 8, "") + , (21355, 0, "/") + , (21356, 0, "/") + , (21357, 0, " ") + , (21358, 0, "W") + , (21359, 0, "e") + , (21360, 0, "'") + , (21361, 0, "v") + , (21362, 0, "e") + , (21363, 0, " ") + , (21364, 0, "f") + , (21365, 0, "o") + , (21366, 0, "u") + , (21367, 0, "n") + , (21368, 0, "d") + , (21369, 0, " ") + , (21370, 0, "t") + , (21371, 0, "h") + , (21372, 0, "e") + , (21373, 0, " ") + , (21374, 0, "n") + , (21375, 0, "o") + , (21376, 0, "d") + , (21377, 0, "e") + , (21378, 0, ".") + , (21379, 0, " ") + , (21380, 0, "N") + , (21381, 0, "o") + , (21382, 0, "w") + , (21383, 0, " ") + , (21384, 0, "w") + , (21385, 0, "e") + , (21386, 0, " ") + , (21387, 0, "n") + , (21388, 0, "e") + , (21389, 0, "e") + , (21390, 0, "d") + , (21391, 0, " ") + , (21392, 0, "t") + , (21393, 0, "o") + , (21394, 0, " ") + , (21395, 0, "f") + , (21396, 0, "i") + , (21397, 0, "n") + , (21398, 0, "d") + , (21399, 0, " ") + , (21400, 0, "t") + , (21401, 0, "h") + , (21402, 0, "e") + , (21403, 0, " ") + , (21404, 0, "l") + , (21405, 0, "o") + , (21406, 0, "c") + , (21407, 0, "a") + , (21408, 0, "t") + , (21409, 0, "i") + , (21410, 0, "o") + , (21411, 0, " ") + , (21412, 0, "n") + , (21413, 0, "w") + , (21414, 0, "i") + , (21415, 0, "t") + , (21416, 0, "h") + , (21417, 0, "i") + , (21418, 0, "n") + , (21384, 35, "l") + , (21385, 0, "o") + , (21386, 0, "o") + , (21387, 0, "k") + , (21388, 0, " ") + , (21389, 0, "f") + , (21390, 0, "o") + , (21391, 0, "r") + , (21392, 0, " ") + , (21393, 0, "t") + , (21394, 0, "h") + , (21395, 0, "e") + , (21396, 0, " ") + , (21397, 0, "i") + , (21398, 0, "n") + , (21399, 0, "d") + , (21400, 0, "e") + , (21401, 0, "x") + , (21402, 0, " ") + , (21403, 0, "w") + , (21404, 0, "i") + , (21405, 0, "t") + , (21406, 0, "h") + , (21407, 0, "i") + , (21408, 0, "n") + , (21409, 0, " ") + , (21410, 0, "t") + , (21411, 0, "h") + , (21412, 0, "e") + , (21413, 0, " ") + , (21414, 0, "n") + , (21415, 0, "o") + , (21416, 0, "d") + , (21417, 0, "e") + , (21418, 0, ".") + , (10048, 966, "") + , (10047, 1, "") + , (20452, 0, "\n ") + , ( 20461 + , 0 + , "\n /// I dunno where this logic should live, but we want to get the index of\n /// the item at the specified offset into the node (and the offset into the\n /// item).\n /// \n /// If the offset lands between items, we could return either the previous or next item.\n /// \n /// Returns (index, item_offset).\n fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {\n if usersize_offset == 0 { return (0, 0); }\n\n for (i, item) in self.content_slice().iter().enumerate() {\n let usersize = C::get_usersize(item);\n if usersize > usersize_offset {\n return (i, usersize_offset);\n } else if usersize == usersize_offset {\n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }\n } else {\n usersize_offset -= usersize;\n }\n }\n panic!(\"Could not find requested offset within the node\");\n }" + ) + , (20453, 8, "") + , (20453, 323, "") + , (20453, 92, "") + , (20999, 5, "") + , (20998, 1, "") + , (20932, 66, "") + , (20931, 1, "") + , (20931, 0, "\n ") + , (20931, 9, "") + , (20931, 0, "\n") + , ( 20932 + , 0 + , " panic!(\"Could not find requested offset within the node\");" + ) + , (20998, 0, "\n") + , (20999, 0, " }") + , ( 20453 + , 0 + , " fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {\n" + ) + , (20457, 0, "// ") + , (20453, 0, " ") + , (21098, 5, "") + , (21097, 1, "") + , (21039, 0, "// ") + , (20629, 4, "c") + , (20630, 0, "u") + , (20631, 0, "r") + , (20632, 0, "s") + , (20633, 0, "o") + , (20634, 0, "r") + , (20629, 6, "self") + , (20560, 0, "// ") + , (20560, 3, "") + , (20551, 0, "\n ") + , (20560, 4, "") + , (20560, 0, "l") + , (20561, 0, "e") + , (20562, 0, "t") + , (20563, 0, " ") + , (20564, 0, "e") + , (20565, 0, " ") + , (20566, 0, "=") + , (20567, 0, " ") + , (20560, 8, "") + , (20572, 15, "o") + , (20573, 0, "f") + , (20574, 0, "f") + , (20575, 0, "s") + , (20576, 0, "e") + , (20577, 0, "t") + , (20552, 8, "") + , (20551, 1, "") + , (20585, 1, "") + , (20585, 0, "c") + , (20586, 0, "r") + , (20586, 1, "") + , (20586, 0, "u") + , (20587, 0, "r") + , (20588, 0, "s") + , (20589, 0, "o") + , (20590, 0, "r") + , (19538, 0, "\n ") + , (19551, 0, "i") + , (19552, 0, "n") + , (19553, 0, "d") + , (19551, 3, "") + , (19551, 0, "l") + , (19552, 0, "o") + , (19553, 0, "c") + , (19554, 0, "a") + , (19555, 0, "l") + , (19556, 0, "_") + , (19557, 0, "i") + , (19558, 0, "n") + , (19559, 0, "d") + , (19560, 0, "e") + , (19561, 0, "x") + , (19562, 0, ":") + , (19563, 0, " ") + , (19564, 0, "0") + , (19565, 0, ",") + , (20653, 4, "") + , (20653, 0, "(") + , (20654, 0, "*") + , (20655, 0, "e") + , (20656, 0, ")") + , (20771, 15, "o") + , (20772, 0, "f") + , (20773, 0, "f") + , (20774, 0, "s") + , (20775, 0, "e") + , (20776, 0, "t") + , (20779, 0, "\n ") + , (20796, 0, "c") + , (20797, 0, "u") + , (20798, 0, "r") + , (20799, 0, "s") + , (20800, 0, "o") + , (20801, 0, "r") + , (20802, 0, ".") + , (20803, 0, "l") + , (20804, 0, "o") + , (20805, 0, "c") + , (20806, 0, "a") + , (20807, 0, "l") + , (20803, 5, "local_index") + , (20814, 0, " ") + , (20815, 0, " ") + , (20815, 1, "") + , (20815, 0, "=") + , (20816, 0, " ") + , (20817, 0, "i") + , (20818, 0, ";") + , (20836, 28, "b") + , (20836, 1, "return (i, usersize_offset);") + , (20977, 18, "") + , (20940, 13, "") + , (20770, 0, "=") + , (20866, 100, "") + , (20837, 28, "b") + , (20838, 0, "r") + , (20839, 0, "e") + , (20840, 0, "a") + , (20841, 0, "k") + , (20842, 0, ";") + , (20627, 0, "\n ") + , (20636, 0, "l") + , (20637, 0, "e") + , (20638, 0, "t") + , (20639, 0, " ") + , (20640, 0, "m") + , (20641, 0, "u") + , (20642, 0, "t") + , (20643, 0, " ") + , (20644, 0, "f") + , (20645, 0, "o") + , (20646, 0, "u") + , (20647, 0, "n") + , (20648, 0, "d") + , (20649, 0, " ") + , (20650, 0, "=") + , (20651, 0, " ") + , (20652, 0, "f") + , (20653, 0, "a") + , (20654, 0, "l") + , (20655, 0, "s") + , (20656, 0, "e") + , (20657, 0, ";") + , (20851, 0, "\n ") + , (20868, 0, "f") + , (20869, 0, "o") + , (20870, 0, "u") + , (20871, 0, "n") + , (20872, 0, "d") + , (20873, 0, " ") + , (20874, 0, "=") + , (20875, 0, " ") + , (20876, 0, "t") + , (20877, 0, "r") + , (20878, 0, "u") + , (20879, 0, "e") + , (20880, 0, ";") + , (20994, 0, "\n ") + , (21003, 0, "a") + , (21004, 0, "s") + , (21005, 0, "s") + , (21006, 0, "e") + , (21007, 0, "r") + , (21008, 0, "t") + , (21009, 0, "!") + , (21010, 0, "(") + , (21011, 0, "f") + , (21012, 0, "o") + , (21013, 0, "u") + , (21014, 0, "n") + , (21015, 0, "d") + , (21016, 0, ")") + , (21017, 0, ";") + , (20994, 0, "\n ") + , (21027, 0, "\n ") + , (20995, 8, "") + , (21020, 8, "") + , (20942, 15, "o") + , (20943, 0, "f") + , (20944, 0, "f") + , (20945, 0, "s") + , (20946, 0, "e") + , (20947, 0, "t") + , (21238, 0, "(") + , (21245, 0, ",") + , (21246, 0, " ") + , (21247, 0, "o") + , (21248, 0, "f") + , (21249, 0, "f") + , (21250, 0, "s") + , (21251, 0, "e") + , (21252, 0, "t") + , (21253, 0, ")") + , (37472, 0, "(") + , (37479, 0, ",") + , (37480, 0, " ") + , (37481, 0, "o") + , (37482, 0, "f") + , (37483, 0, "f") + , (37484, 0, "s") + , (37485, 0, "e") + , (37486, 0, "t") + , (37487, 0, ")") + , (37468, 4, "") + , (37469, 0, "m") + , (37470, 0, "u") + , (37471, 0, "t") + , (37472, 0, " ") + , (37522, 115, "") + , (37636, 7, "") + , (30233, 21, "") + , (30313, 0, "\n ") + , (30322, 0, ", mut item_idx: usize") + , (30322, 1, "l") + , (30323, 0, "e") + , (30324, 0, "t") + , (30338, 7, " ") + , (30339, 0, "=") + , (30340, 0, " ") + , (30341, 0, "c") + , (30342, 0, "u") + , (30343, 0, "r") + , (30344, 0, "s") + , (30345, 0, "o") + , (30346, 0, "r") + , (30347, 0, ".") + , (30348, 0, ".") + , (30349, 0, "l") + , (30349, 1, "") + , (30348, 1, "") + , (30348, 0, "l") + , (30349, 0, "o") + , (30350, 0, "c") + , (30351, 0, "a") + , (30352, 0, "l") + , (30348, 5, "local_index") + , (30359, 0, ";") + , (36635, 44, "(mut cursor, offset) = self.iter_at_userpos(userpos);") + , (36635, 0, " ") + , (36690, 115, "") + , (36806, 7, "") + , (24277, 19, "") + , (24276, 1, "") + , (24275, 1, "") + , (24383, 0, "\n ") + , (24392, 0, "l") + , (24393, 0, "e") + , (24394, 0, " ") + , (24394, 1, "") + , (24394, 0, "t") + , (24395, 0, " ") + , (24396, 0, "mut item_idx: usize") + , (24408, 7, " ") + , (24409, 0, "=") + , (24410, 0, " ") + , (24411, 0, "c") + , (24412, 0, "u") + , (24413, 0, "r") + , (24414, 0, "s") + , (24415, 0, "o") + , (24416, 0, "r") + , (24417, 0, ".") + , (24418, 0, "l") + , (24419, 0, "o") + , (24420, 0, "c") + , (24421, 0, "a") + , (24418, 4, "local_index") + , (24429, 0, ";") + , (24430, 0, "\n ") + , (24431, 8, "") + , (13610, 0, "\n ") + , (13623, 0, "s") + , (13624, 0, "e") + , (13625, 0, "l") + , (13626, 0, "f") + , (13627, 0, ".") + , (13628, 0, "l") + , (13629, 0, "o") + , (13630, 0, "c") + , (13631, 0, "a") + , (13632, 0, "l") + , (13628, 5, "local_index") + , (13639, 0, " ") + , (13640, 0, "=") + , (13641, 0, " ") + , (13642, 0, "0") + , (13643, 0, ";") + , (24426, 0, "// ") + , (24599, 8, "cursor.local_index") + , (25112, 8, "cursor.local_index") + , (25642, 33, "") + , (25641, 1, "") + , (25798, 0, "\n ") + , (25807, 0, "let mut item_idx = cursor.local_index;") + , (25810, 4, "") + , (24417, 50, "") + , (13898, 0, "\n ") + , (13907, 0, "/") + , (13908, 0, "/") + , (13909, 0, " ") + , (13910, 0, "N") + , (13911, 0, "o") + , (13912, 0, "t") + , (13913, 0, "e") + , (13899, 15, "") + , (13898, 1, "") + , (13857, 0, "\n ") + , (13862, 0, "/") + , (13863, 0, "/") + , (13864, 0, "/") + , (13865, 0, " ") + , (13866, 0, "W") + , (13867, 0, "a") + , (13868, 0, "r") + , (13869, 0, "n") + , (13870, 0, "i") + , (13871, 0, "n") + , (13872, 0, "g") + , (13873, 0, ":") + , (13874, 0, " ") + , (13875, 0, "T") + , (13876, 0, "h") + , (13877, 0, "i") + , (13878, 0, "s") + , (13879, 0, " ") + , (13880, 0, "r") + , (13881, 0, "e") + , (13882, 0, "t") + , (13883, 0, "u") + , (13884, 0, "r") + , (13885, 0, "n") + , (13886, 0, "s") + , (13887, 0, " ") + , (13888, 0, "f") + , (13889, 0, "a") + , (13890, 0, "l") + , (13891, 0, "s") + , (13892, 0, "e") + , (13893, 0, " ") + , (13894, 0, "i") + , (13895, 0, "f") + , (13896, 0, " ") + , (13897, 0, "o") + , (13898, 0, "n") + , (13899, 0, "e") + , (13900, 0, " ") + , (13901, 0, "c") + , (13902, 0, "u") + , (13903, 0, "r") + , (13904, 0, "s") + , (13905, 0, "o") + , (13906, 0, "r") + , (13907, 0, " ") + , (13908, 0, "i") + , (13909, 0, "s") + , (13910, 0, " ") + , (13911, 0, "a") + , (13912, 0, "t") + , (13913, 0, " ") + , (13914, 0, "t") + , (13915, 0, "h") + , (13916, 0, "e") + , (13917, 0, "e") + , (13918, 0, " ") + , (13918, 1, "") + , (13917, 1, "") + , (13917, 0, " ") + , (13918, 0, "e") + , (13919, 0, "n") + , (13920, 0, "d") + , (13921, 0, " ") + , (13922, 0, "f") + , (13922, 1, "") + , (13922, 0, "o") + , (13923, 0, "f") + , (13924, 0, " ") + , (13925, 0, "a") + , (13926, 0, " ") + , (13927, 0, "n") + , (13928, 0, "o") + , (13929, 0, "d") + , (13930, 0, "e") + , (13931, 0, ",") + , (13932, 0, " ") + , (13933, 0, "a") + , (13934, 0, "n") + , (13935, 0, "d") + , (13936, 0, " ") + , (13937, 0, "t") + , (13938, 0, "h") + , (13939, 0, "e") + , (13940, 0, " ") + , (13941, 0, "o") + , (13942, 0, "t") + , (13943, 0, "h") + , (13944, 0, "e") + , (13945, 0, "r") + , (13946, 0, " ") + , (13947, 0, "a") + , (13948, 0, "t") + , (13949, 0, " ") + , (13950, 0, "t") + , (13951, 0, "h") + , (13952, 0, "e") + , (13953, 0, " ") + , (13954, 0, "s") + , (13955, 0, "t") + , (13956, 0, "a") + , (13957, 0, "r") + , (13958, 0, "t") + , (13959, 0, " ") + , (13960, 0, "o") + , (13961, 0, "f") + , (13962, 0, " ") + , (13963, 0, "t") + , (13964, 0, "h") + , (13965, 0, "e") + , (13966, 0, " ") + , (13967, 0, "n") + , (13968, 0, "e") + , (13969, 0, "x") + , (13970, 0, "t") + , (13971, 0, " ") + , (13972, 0, "n") + , (13973, 0, "o") + , (13974, 0, "d") + , (13975, 0, "e") + , (13976, 0, ".") + , (13977, 0, " ") + , (13978, 0, "A") + , (13979, 0, "l") + , (13980, 0, "m") + , (13981, 0, "o") + , (13982, 0, "s") + , (13983, 0, "t") + , (13984, 0, " ") + , (13985, 0, "a") + , (13986, 0, "l") + , (13987, 0, "l") + , (13988, 0, " ") + , (13989, 0, "c") + , (13990, 0, "o") + , (13991, 0, "d") + , (13992, 0, "e") + , (13993, 0, " ") + , (13994, 0, "b") + , (13995, 0, "e") + , (13995, 1, "") + , (13995, 0, "i") + , (13995, 1, "") + , (13994, 1, "") + , (13994, 0, "i") + , (13995, 0, "n") + , (13996, 0, " ") + , (13997, 0, "t") + , (13998, 0, "h") + , (13999, 0, "i") + , (14000, 0, "s") + , (14001, 0, " ") + , (14002, 0, "l") + , (14003, 0, "i") + , (14004, 0, "b") + , (14005, 0, "r") + , (14006, 0, "a") + , (14007, 0, "r") + , (14008, 0, "y") + , (14009, 0, " ") + , (14010, 0, "l") + , (14011, 0, "e") + , (14012, 0, "a") + , (14013, 0, "v") + , (14014, 0, "e") + , (14015, 0, "s") + , (14016, 0, " ") + , (14017, 0, "c") + , (14018, 0, "u") + , (14019, 0, "r") + , (14020, 0, "s") + , (14021, 0, "o") + , (14022, 0, "r") + , (14023, 0, "s") + , (14024, 0, " ") + , (14025, 0, "a") + , (14026, 0, "t") + , (14027, 0, " ") + , (14028, 0, "t") + , (14029, 0, "h") + , (14030, 0, "e") + , (14031, 0, "e") + , (14032, 0, "n") + , (14032, 1, "") + , (14031, 1, "") + , (14031, 0, " ") + , (14032, 0, "e") + , (14033, 0, "n") + , (14034, 0, "d") + , (14035, 0, " ") + , (14036, 0, "o") + , (14037, 0, "f") + , (14038, 0, " ") + , (14039, 0, "n") + , (14040, 0, "o") + , (14041, 0, "d") + , (14042, 0, "e") + , (14043, 0, "s") + , (14044, 0, ",") + , (14045, 0, " ") + , (14046, 0, "s") + , (14047, 0, "o") + , (14048, 0, " ") + , (14049, 0, "t") + , (14050, 0, "h") + , (14051, 0, "i") + , (14052, 0, "s") + , (14053, 0, " ") + , (14054, 0, "s") + , (14055, 0, "h") + , (14056, 0, "o") + , (14057, 0, "u") + , (14058, 0, "l") + , (14059, 0, "d") + , (14060, 0, "n") + , (14061, 0, "'") + , (14062, 0, "t") + , (14063, 0, " ") + , (14064, 0, "m") + , (14065, 0, "a") + , (14066, 0, "t") + , (14067, 0, "t") + , (14068, 0, "e") + , (14069, 0, "r") + , (14070, 0, " ") + , (14071, 0, "o") + , (14071, 1, "") + , (14071, 0, "t") + , (14072, 0, "o") + , (14073, 0, "o") + , (14074, 0, " ") + , (14075, 0, "m") + , (14076, 0, "u") + , (14077, 0, "c") + , (14078, 0, "h") + , (14079, 0, " ") + , (14080, 0, "i") + , (14081, 0, "n") + , (14082, 0, " ") + , (14083, 0, "p") + , (14084, 0, "r") + , (14085, 0, "a") + , (14086, 0, "c") + , (14087, 0, "t") + , (14088, 0, "i") + , (14089, 0, "c") + , (14090, 0, "e") + , (14091, 0, " ") + , (14092, 0, "n") + , (14093, 0, "b") + , (14094, 0, "u") + , (14094, 1, "") + , (14093, 1, "") + , (14092, 1, "") + , (14091, 1, "") + , (14091, 0, ".") + , ( 13858 + , 234 + , " /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice." + ) + , (14158, 0, " if self.userpos != other.userpos { return false; }\n") + , (14158, 59, "") + , (14198, 0, " ") + , (14199, 0, "|") + , (14200, 0, "|") + , (14201, 0, " ") + , (14202, 0, "s") + , (14203, 0, "e") + , (14204, 0, "l") + , (14205, 0, "f") + , (14206, 0, ".") + , (14207, 0, "l") + , (14208, 0, "o") + , (14209, 0, "c") + , (14210, 0, "a") + , (14211, 0, "l") + , (14207, 5, "local_index") + , (14218, 0, " ") + , (14219, 0, "!") + , (14220, 0, "=") + , (14221, 0, " ") + , (14222, 0, "s") + , (14223, 0, "e") + , (14223, 1, "") + , (14222, 1, "") + , (14222, 0, "o") + , (14223, 0, "t") + , (14224, 0, "h") + , (14225, 0, "e") + , (14226, 0, "r") + , (14227, 0, ".") + , (14228, 0, "u") + , (14229, 0, "s") + , (14230, 0, "e") + , (14231, 0, "r") + , (14231, 1, "") + , (14230, 1, "") + , (14229, 1, "") + , (14228, 1, "") + , (14228, 0, "l") + , (14229, 0, "c") + , (14230, 0, "a") + , (14228, 3, "local_index") + , (14198, 1, "") + , (14198, 0, "\n ") + , (14207, 0, " ") + , (14253, 1, "") + , (14253, 0, "\n ") + , (14253, 17, "") + , (14268, 0, "\n ") + , (14269, 12, "") + , (14199, 12, " ") + , (14199, 8, " ") + , (33923, 0, "(") + , (33934, 0, ",") + , (33935, 0, " ") + , (33936, 0, "o") + , (33937, 0, "f") + , (33938, 0, "f") + , (33939, 0, "s") + , (33940, 0, "e") + , (33941, 0, "t") + , (33942, 0, ")") + , (33991, 0, "// ") + , (34508, 0, "c") + , (34509, 0, "u") + , (34510, 0, "r") + , (34511, 0, "s") + , (34512, 0, "o") + , (34513, 0, "r") + , (34514, 0, ".") + , (34515, 0, "l") + , (34516, 0, "o") + , (34517, 0, "c") + , (34518, 0, "a") + , (34515, 4, "local_index") + , (34526, 5, "") + , (34739, 30, "") + , (34738, 1, "") + , (34756, 0, "\n ") + , (34773, 0, "\n ") + , (34757, 16, "") + , (34774, 0, "l") + , (34775, 0, "e") + , (34776, 0, "t") + , (34777, 0, " ") + , (34778, 0, "i") + , (34779, 0, "n") + , (34780, 0, "d") + , (34781, 0, "e") + , (34782, 0, "x") + , (34783, 0, " ") + , (34784, 0, "=") + , (34785, 0, " ") + , (34786, 0, "c") + , (34787, 0, "u") + , (34788, 0, "r") + , (34789, 0, "s") + , (34790, 0, "o") + , (34791, 0, "r") + , (34792, 0, ".") + , (34793, 0, "l") + , (34793, 1, "local_index") + , (34804, 0, ";") + , (36404, 7, "") + , (36511, 7, "") + , (35851, 0, "c") + , (35852, 0, "r") + , (35852, 1, "") + , (35852, 0, "u") + , (35853, 0, "r") + , (35854, 0, "s") + , (35855, 0, "o") + , (35856, 0, "r") + , (35857, 0, ".") + , (35858, 0, "l") + , (35859, 0, "o") + , (35860, 0, "c") + , (35861, 0, "a") + , (35862, 0, "l") + , (35863, 0, "_") + , (37271, 0, "(") + , (37274, 0, ",") + , (37275, 0, " ") + , (37276, 0, "_") + , (37277, 0, ")") + , (21030, 1, "") + , (21030, 0, "u") + , (21031, 0, "n") + , (21032, 0, "s") + , (21033, 0, "a") + , (21034, 0, "f") + , (21035, 0, "e") + , (21036, 0, " ") + , (21037, 0, "{") + , (21040, 1, "") + , (21040, 0, "}") + , (21038, 0, "&") + , (21038, 0, " ") + , (21042, 0, " ") + , (27383, 0, "\n ") + , (27396, 0, "c") + , (27397, 0, "u") + , (27398, 0, "r") + , (27399, 0, "s") + , (27400, 0, "o") + , (27401, 0, "r") + , (27402, 0, ".") + , (27403, 0, "l") + , (27404, 0, "o") + , (27405, 0, "c") + , (27406, 0, "a") + , (27407, 0, "l") + , (27403, 5, "local_index") + , (27414, 0, " ") + , (27415, 0, "+") + , (27416, 0, "=") + , (27417, 0, " ") + , (27418, 0, "n") + , (27419, 0, "u") + , (27420, 0, "m") + , (27421, 0, "_") + , (27422, 0, "i") + , (27423, 0, "n") + , (27418, 6, "num_inserted_items") + , (27436, 0, ";") + , (24551, 0, "\n ") + , (24564, 0, "c") + , (24565, 0, "u") + , (24566, 0, "r") + , (24567, 0, "s") + , (24568, 0, "o") + , (24569, 0, "r") + , (24570, 0, ".") + , (24571, 0, "l") + , (24572, 0, "o") + , (24573, 0, "c") + , (24574, 0, "a") + , (24571, 4, "local_index") + , (24582, 0, " ") + , (24583, 0, "=") + , (24584, 0, " ") + , (24585, 0, " += contents.len();") + , (24588, 1, "") + , (24587, 1, "") + , (24586, 1, "") + , (24585, 1, "") + , (21157, 1, "") + , (21259, 0, "\n ") + , (21260, 16, " }") + , (21273, 0, " ") + , (21274, 0, "if usersize > offset {") + , (21274, 0, "e") + , (21275, 0, "l") + , (21276, 0, "s") + , (21277, 0, "e") + , (21278, 0, " ") + , (21291, 1, "") + , (21291, 0, "=") + , (21292, 0, "=") + , (21302, 0, "\n ") + , ( 21319 + , 0 + , " cursor.local_index = i;\n found = true;\n break;" + ) + , (21303, 32, " ") + , (21341, 0, "+") + , (21342, 0, "1") + , (21454, 0, "\n offset -= usersize;") + , (21454, 0, "\n } else {") + , (21398, 21, "") + , (21433, 0, "\n break;") + , (21375, 23, "") + , (21410, 0, "\n found = true;") + , (21345, 30, "") + , (21380, 0, "\n cursor.local_index = i+1;") + , (21303, 42, "") + , (21326, 1, "") + , (21328, 8, "0") + , (21369, 0, " ") + , (21371, 0, " ") + , ( 21005 + , 0 + , " for (i, item) in unsafe { &*e }.content_slice().iter().enumerate() {\n let usersize = C::get_usersize(item);\n if usersize > offset {\n cursor.local_index = i;\n found = true;\n break;\n } else if usersize == offset {\n offset = 0;\n cursor.local_index = i + 1;\n found = true;\n break;\n } else {\n offset -= usersize;\n }\n }\n" + ) + , (22011, 0, "// ") + , (21997, 0, "// ") + , (21961, 0, "// ") + , (21940, 0, "// ") + , (21917, 0, "// ") + , (21887, 0, "// ") + , (21843, 0, "// ") + , (21815, 0, "// ") + , (21772, 0, "// ") + , (21749, 0, "// ") + , (21719, 0, "// ") + , (21679, 0, "// ") + , (21644, 0, "// ") + , (21594, 0, "// ") + , (21517, 0, "// ") + , (20974, 30, "") + , (20973, 1, "") + , (20982, 66, "") + , (20982, 0, "w") + , (20983, 0, "h") + , (20984, 0, "i") + , (20985, 0, "l") + , (20986, 0, " ") + , (20986, 1, "") + , (20986, 0, "e") + , (20987, 0, " ") + , (20982, 6, "") + , (20982, 0, "l") + , (20983, 0, "e") + , (20984, 0, "t") + , (20984, 1, "") + , (20983, 1, "") + , (20982, 1, "") + , (20982, 0, "f") + , (20983, 0, "o") + , (20984, 0, "r") + , (20985, 0, " ") + , (20986, 0, "i") + , (20987, 0, "n") + , (20988, 0, "d") + , (20989, 0, "e") + , (20990, 0, "x") + , (20991, 0, " ") + , (20992, 0, "i") + , (20993, 0, "n") + , (20994, 0, " ") + , (20995, 0, "[") + , (20996, 0, "0") + , (20997, 0, ".") + , (20998, 0, ".") + , (20995, 1, "") + , (20998, 0, "=") + , (20973, 0, "\n ") + , (20982, 0, "l") + , (20983, 0, "e") + , (20984, 0, "t") + , (20985, 0, " ") + , (20986, 0, "e") + , (20987, 0, "n") + , (20988, 0, " ") + , (20989, 0, "=") + , (20990, 0, " ") + , (20991, 0, "unsafe { &*e }") + , (21005, 0, ";") + , (21032, 0, "e") + , (21033, 0, "n") + , (21034, 0, ".") + , (21035, 0, "n") + , (21036, 0, "u") + , (21037, 0, "m") + , (21035, 3, "num_items") + , (21044, 0, " ") + , (21045, 0, "a") + , (21046, 0, "s") + , (21047, 0, " ") + , (21048, 0, "u") + , (21049, 0, "s") + , (21050, 0, "i") + , (21051, 0, "z") + , (21052, 0, "e") + , (21055, 0, "\n for index in 0..=en.num_items as usize {") + , (21015, 0, "// ") + , (21067, 38, "w") + , (21068, 0, "h") + , (21069, 0, "i") + , (21070, 0, "l") + , (21071, 0, "e") + , (21072, 0, " ") + , (21073, 0, "o") + , (21074, 0, "f") + , (21075, 0, "f") + , (21076, 0, "s") + , (21077, 0, "e") + , (21078, 0, "t") + , (21079, 0, " ") + , (21080, 0, ">") + , (21081, 0, " ") + , (21082, 0, "0") + , (21058, 0, "\n ") + , (21071, 0, "l") + , (21072, 0, "e") + , (21073, 0, "t") + , (21073, 1, "") + , (21072, 1, "") + , (21071, 1, "") + , (21067, 4, "") + , (21067, 0, "l") + , (21068, 0, "e") + , (21069, 0, "t") + , (21070, 0, " ") + , (21071, 0, "m") + , (21072, 0, "u") + , (21073, 0, "t") + , (21074, 0, " ") + , (21075, 0, "i") + , (21076, 0, "n") + , (21077, 0, "d") + , (21078, 0, "e") + , (21079, 0, "x") + , (21080, 0, " ") + , (21081, 0, "=") + , (21082, 0, " ") + , (21083, 0, "0") + , (21084, 0, ";") + , (21156, 4, "e") + , (21157, 0, "n") + , (21158, 0, ".") + , (21159, 0, "i") + , (21160, 0, "t") + , (21161, 0, "e") + , (21162, 0, "m") + , (21163, 0, "s") + , (21164, 0, "[") + , (21165, 0, "i") + , (21166, 0, "n") + , (21167, 0, "d") + , (21168, 0, "e") + , (21169, 0, "x") + , (21170, 0, "]") + , (21156, 0, "&") + , (21190, 17, "o") + , (21191, 0, "f") + , (21192, 0, "f") + , (21193, 0, "s") + , (21194, 0, "e") + , (21195, 0, "t") + , (21196, 0, " ") + , (21197, 0, "<") + , (21198, 0, "=") + , (21199, 0, " ") + , (21200, 0, "u") + , (21201, 0, "s") + , (21202, 0, "e") + , (21203, 0, "r") + , (21204, 0, "s") + , (21205, 0, "i") + , (21200, 6, "usersize") + , (21198, 1, "") + , (21197, 1, "") + , (21197, 0, ">") + , (21197, 1, "") + , (21197, 0, "<=") + , (21200, 8, "usersi") + , (21199, 7, "") + , (21196, 3, "") + , (21190, 6, "usersize > offset") + , (21174, 0, "\n ") + , (21187, 0, "i") + , (21188, 0, "f") + , (21189, 0, " ") + , (21190, 0, "u") + , (21191, 0, "s") + , (21192, 0, "e") + , (21193, 0, "r") + , (21194, 0, "s") + , (21195, 0, "i") + , (21190, 6, "usersize") + , (21198, 0, " ") + , (21199, 0, "<") + , (21200, 0, "=") + , (21201, 0, " ") + , (21202, 0, "o") + , (21203, 0, "f") + , (21204, 0, "f") + , (21205, 0, "s") + , (21206, 0, "e") + , (21207, 0, "t") + , (21208, 0, " ") + , (21209, 0, "{") + , (21210, 0, "\n ") + , (21227, 0, "o") + , (21228, 0, "f") + , (21229, 0, "f") + , (21230, 0, "s") + , (21231, 0, "e") + , (21232, 0, "t") + , (21233, 0, " ") + , (21234, 0, "-") + , (21235, 0, "=") + , (21236, 0, " ") + , (21237, 0, "u") + , (21238, 0, "s") + , (21239, 0, "e") + , (21240, 0, "r") + , (21241, 0, "z") + , (21242, 0, "i") + , (21237, 6, "usersize") + , (21245, 0, ";") + , (21246, 0, "\n ") + , (21247, 16, " }") + , (21260, 0, " ") + , (21261, 0, "e") + , (21262, 0, "l") + , (21263, 0, "s") + , (21264, 0, "e") + , (21265, 0, " ") + , (21266, 0, "{") + , (21267, 0, "\n ") + , (21284, 0, "\n ") + , (21268, 16, "") + , (21269, 16, " }") + , (21268, 0, " ") + , (21284, 0, "/") + , (21285, 0, "/") + , (21286, 0, " ") + , (21287, 0, "T") + , (21288, 0, "o") + , (21289, 0, "o") + , (21290, 0, " ") + , (21291, 0, "b") + , (21292, 0, "i") + , (21293, 0, "g") + , (21294, 0, "!") + , (21295, 0, " ") + , (21296, 0, "W") + , (21297, 0, "e") + , (21298, 0, "'") + , (21299, 0, "r") + , (21300, 0, "e") + , (21284, 17, "") + , (21284, 0, "b") + , (21285, 0, "r") + , (21286, 0, "e") + , (21287, 0, "a") + , (21288, 0, "k") + , (21289, 0, ";") + , (21305, 366, "") + , (21304, 1, "") + , (21112, 0, "\n ") + , (21125, 0, "a") + , (21126, 0, "s") + , (21127, 0, "s") + , (21128, 0, "e") + , (21129, 0, "r") + , (21125, 5, "assert_eq!") + , (21134, 1, "") + , (21133, 1, "") + , (21132, 1, "") + , (21131, 1, "") + , (21131, 0, "!") + , (21132, 0, "(") + , (21133, 0, "i") + , (21134, 0, "n") + , (21135, 0, "d") + , (21136, 0, "e") + , (21137, 0, "x") + , (21138, 0, " ") + , (21139, 0, "<") + , (21140, 0, " ") + , (21141, 0, "e") + , (21142, 0, "n") + , (21143, 0, ".") + , (21144, 0, "i") + , (21145, 0, "t") + , (21146, 0, "e") + , (21147, 0, "m") + , (21148, 0, "s") + , (21149, 0, ".") + , (21144, 6, "n") + , (21145, 0, "u") + , (21146, 0, "m") + , (21147, 0, "_") + , (21148, 0, "i") + , (21149, 0, "t") + , (21144, 6, "num_items") + , (21153, 0, " ") + , (21154, 0, "a") + , (21155, 0, "s") + , (21156, 0, " ") + , (21157, 0, "u") + , (21158, 0, "s") + , (21159, 0, "i") + , (21160, 0, "z") + , (21161, 0, "e") + , (21162, 0, ")") + , (21163, 0, ";") + , (21164, 0, "\n ") + , (21165, 12, "") + , (21153, 9, "") + , (21156, 0, " ") + , (21153, 0, " as usize") + , (21007, 51, "") + , (21877, 1, "") + , (21886, 0, "// ") + , (21213, 2, ">") + , (21223, 0, " ") + , (21224, 0, "b") + , (21225, 0, "r") + , (21226, 0, "e") + , (21227, 0, "a") + , (21228, 0, "k") + , (21229, 0, ";") + , (21230, 0, " ") + , (21231, 0, "}") + , (21233, 16, " ") + , (21265, 58, "") + , (21264, 0, "\n ") + , (21277, 0, "i") + , (21278, 0, "n") + , (21279, 0, "d") + , (21280, 0, "e") + , (21281, 0, "x") + , (21282, 0, " ") + , (21283, 0, "+") + , (21284, 0, "=") + , (21285, 0, " ") + , (21286, 0, "1") + , (21287, 0, ";") + , (21232, 0, " ") + , (21232, 1, "") + , (21232, 0, " ") + , (21232, 1, "") + , (21232, 0, " ") + , (21233, 0, "/") + , (21234, 0, "/") + , (21235, 0, " ") + , (21236, 0, "F") + , (21236, 1, "") + , (21235, 1, "") + , (21234, 1, "") + , (21233, 1, "") + , (21232, 1, "") + , (21232, 0, " ") + , (21233, 0, "/") + , (21234, 0, "/") + , (21235, 0, " ") + , (21236, 0, "W") + , (21237, 0, "e") + , (21238, 0, "'") + , (21239, 0, "r") + , (21240, 0, "e") + , (21241, 0, " ") + , (21242, 0, "p") + , (21243, 0, "a") + , (21244, 0, "r") + , (21245, 0, "t") + , (21246, 0, "w") + , (21247, 0, "a") + , (21248, 0, "y") + , (21249, 0, " ") + , (21250, 0, "t") + , (21251, 0, "h") + , (21252, 0, "r") + , (21253, 0, "o") + , (21254, 0, "u") + , (21242, 13, "i") + , (21243, 0, "n") + , (21244, 0, " ") + , (21245, 0, "t") + , (21246, 0, "h") + , (21247, 0, "e") + , (21248, 0, " ") + , (21249, 0, "m") + , (21250, 0, "i") + , (21251, 0, "d") + , (21252, 0, "d") + , (21253, 0, "l") + , (21254, 0, "e") + , (21255, 0, " ") + , (21256, 0, "o") + , (21257, 0, "f") + , (21258, 0, " ") + , (21259, 0, "a") + , (21260, 0, "n") + , (21261, 0, " ") + , (21262, 0, "i") + , (21263, 0, "t") + , (21264, 0, "e") + , (21265, 0, "m") + , (21266, 0, ".") + , (21333, 0, "\n ") + , (21342, 0, "c") + , (21343, 0, "u") + , (21344, 0, "r") + , (21345, 0, "s") + , (21346, 0, "o") + , (21347, 0, "r") + , (21348, 0, ".") + , (21349, 0, "i") + , (21350, 0, "n") + , (21351, 0, "d") + , (21352, 0, "e") + , (21353, 0, "x") + , (21354, 0, " ") + , (21354, 1, "") + , (21349, 5, "l") + , (21350, 0, "o") + , (21351, 0, "c") + , (21352, 0, "a") + , (21353, 0, "l") + , (21349, 5, "local_index") + , (21360, 0, " ") + , (21361, 0, "=") + , (21362, 0, " ") + , (21363, 0, "i") + , (21364, 0, "n") + , (21365, 0, "d") + , (21366, 0, "e") + , (21367, 0, "x") + , (21368, 0, ";") + , (21370, 575, "") + , (21369, 1, "") + , (21371, 69, "") + , (21370, 1, "") + , (21369, 1, "") + , (21371, 147, "") + , ( 20753 + , 0 + , " // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n" + ) + , (20753, 8, "\n ") + , (20975, 99, "") + , (20975, 47, "") + , (20974, 1, "") + , (21007, 1, "") + , (21034, 0, "\n ") + , (21035, 8, "") + , (13678, 0, "\n ") + , (13683, 0, "\n ") + , (13679, 4, "") + , (13684, 0, "f") + , (13685, 0, "n") + , (13686, 0, " ") + , (13687, 0, "a") + , (13688, 0, "d") + , (13689, 0, "v") + , (13690, 0, "a") + , (13691, 0, "n") + , (13692, 0, "c") + , (13693, 0, "e") + , (13694, 0, "_") + , (13695, 0, "i") + , (13696, 0, "t") + , (13697, 0, "e") + , (13698, 0, "m") + , (13699, 0, "(") + , (13700, 0, "*") + , (13700, 1, "") + , (13700, 0, "&") + , (13701, 0, "m") + , (13702, 0, "u") + , (13703, 0, "t") + , (13704, 0, " ") + , (13705, 0, "s") + , (13706, 0, "e") + , (13707, 0, "l") + , (13708, 0, "f") + , (13709, 0, ")") + , (13710, 0, " ") + , (13711, 0, "{") + , (13712, 0, "\n ") + , (13721, 0, "\n ") + , (13713, 8, "") + , (13714, 8, " }") + , (13713, 0, " ") + , (13721, 0, "if cursor.local_index == (*e).num_items as usize {") + , (13721, 0, "// ") + , (13678, 0, "\n ") + , (13683, 0, "\n ") + , (13679, 4, "") + , (13684, 0, "f") + , (13685, 0, "n") + , (13686, 0, " ") + , (13687, 0, "i") + , (13688, 0, "s") + , (13689, 0, "_") + , (13690, 0, "a") + , (13691, 0, "t") + , (13692, 0, "_") + , (13693, 0, "n") + , (13694, 0, "o") + , (13695, 0, "d") + , (13696, 0, "e") + , (13697, 0, "_") + , (13698, 0, "e") + , (13699, 0, "n") + , (13700, 0, "d") + , (13701, 0, "(") + , (13702, 0, "&") + , (13703, 0, "s") + , (13704, 0, "e") + , (13705, 0, "l") + , (13706, 0, "f") + , (13707, 0, ")") + , (13708, 0, " ") + , (13709, 0, "-") + , (13710, 0, ">") + , (13711, 0, " ") + , (13712, 0, "b") + , (13713, 0, "o") + , (13714, 0, "o") + , (13715, 0, "l") + , (13716, 0, " ") + , (13717, 0, "{") + , (13718, 0, "\n ") + , (13727, 0, "\n ") + , (13719, 8, "") + , (13720, 8, " }") + , (13719, 0, "if cursor.local_index == (*e).num_items as usize {") + , (13719, 0, " ") + , (13727, 2, "") + , (13727, 1, "") + , (13727, 6, "s") + , (13728, 0, "e") + , (13729, 0, "l") + , (13730, 0, "f") + , (13749, 1, "") + , (13749, 0, "self.entries[0].node") + , (13790, 1, "") + , (13789, 1, "") + , (13747, 0, "n") + , (13747, 1, "") + , (13747, 0, "u") + , (13748, 0, "n") + , (13749, 0, "s") + , (13750, 0, "a") + , (13751, 0, "f") + , (13752, 0, "e") + , (13753, 0, " ") + , (13754, 0, "{") + , (13755, 0, " ") + , (13756, 1, "") + , (13756, 0, "(") + , (13789, 0, " ") + , (13790, 0, "}") + , (13840, 0, "\n ") + , (13849, 0, "i") + , (13850, 0, "f") + , (13851, 0, " ") + , (13852, 0, "s") + , (13853, 0, "e") + , (13854, 0, "l") + , (13855, 0, "f") + , (13856, 0, ".") + , (13857, 0, "i") + , (13858, 0, "s") + , (13859, 0, "_") + , (13857, 3, "is_at_node_end()") + , (13873, 0, " ") + , (13874, 0, "{") + , (13875, 0, " ") + , (13876, 0, "a") + , (13877, 0, "d") + , (13878, 0, "v") + , (13879, 0, "a") + , (13876, 4, "advance_by") + , (13885, 1, "") + , (13884, 1, "") + , (13883, 1, "") + , (13876, 7, "advance_node") + , (13888, 0, "(") + , (13889, 0, ")") + , (13890, 0, ";") + , (13891, 0, " ") + , (13892, 0, "}") + , (13893, 0, "\n ") + , (13894, 8, "") + , (13876, 0, "s") + , (13877, 0, "e") + , (13878, 0, "l") + , (13879, 0, "f") + , (13880, 0, ".") + , (13849, 2, "s") + , (13849, 1, "") + , (13849, 0, "w") + , (13850, 0, "h") + , (13851, 0, "i") + , (13852, 0, "l") + , (13853, 0, "e") + , (13902, 0, " ") + , ( 17086 + , 0 + , " assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n" + ) + , (13902, 8, "") + , (17179, 26, ">") + , (17180, 0, " ") + , (17181, 0, "0") + , (17184, 0, " ") + , (17185, 0, "/") + , (17186, 0, "/") + , (17187, 0, " ") + , (17188, 0, "e") + , (17189, 0, "m") + , (17190, 0, "p") + , (17191, 0, "t") + , (17192, 0, "y") + , (17193, 0, " ") + , (17194, 0, "n") + , (17195, 0, "o") + , (17196, 0, "d") + , (17197, 0, "d") + , (17198, 0, "e") + , (17199, 0, "s") + , (17184, 16, "") + , (17182, 0, ",") + , (17183, 0, " ") + , (17184, 0, "\"") + , (17185, 0, "E") + , (17186, 0, "m") + , (17187, 0, "p") + , (17188, 0, "t") + , (17189, 0, "y") + , (17190, 0, " ") + , (17191, 0, "n") + , (17192, 0, "o") + , (17193, 0, "t") + , (17193, 1, "") + , (17193, 0, "d") + , (17194, 0, "e") + , (17195, 0, "s") + , (17196, 0, " ") + , (17197, 0, "n") + , (17198, 0, "o") + , (17199, 0, "t") + , (17200, 0, " ") + , (17201, 0, "a") + , (17202, 0, "l") + , (17203, 0, "l") + , (17204, 0, "o") + , (17205, 0, "w") + , (17206, 0, "e") + , (17207, 0, "d") + , (17208, 0, "\"") + , (13849, 5, "i") + , (13850, 0, "f") + , (13898, 0, "\n ") + , (13907, 0, "/") + , (13908, 0, "/") + , (13909, 0, " ") + , (13910, 0, "T") + , (13911, 0, "e") + , (13912, 0, "h") + , (13913, 0, " ") + , (13914, 0, "n") + , (13915, 0, "o") + , (13916, 0, "d") + , (13917, 0, "e") + , (13910, 8, "") + , (13910, 0, "T") + , (13911, 0, "h") + , (13912, 0, "e") + , (13913, 0, " ") + , (13913, 1, "") + , (13907, 6, "") + , (13907, 0, "s") + , (13908, 0, "e") + , (13909, 0, "l") + , (13910, 0, "f") + , (13911, 0, ".") + , (13912, 0, "l") + , (13913, 0, "o") + , (13914, 0, "c") + , (13915, 0, "a") + , (13916, 0, "l") + , (13912, 5, "local_index") + , (13923, 0, " ") + , (13924, 0, "+") + , (13925, 0, "=") + , (13926, 0, " ") + , (13927, 0, "1") + , (13928, 0, ";") + , (13930, 63, "") + , (13935, 0, "\n ") + , (13940, 0, "\n ") + , (13936, 4, "") + , (13941, 0, "f") + , (13942, 0, "n") + , (13943, 0, " ") + , (13944, 0, "a") + , (13945, 0, "d") + , (13946, 0, "v") + , (13947, 0, "a") + , (13948, 0, "n") + , (13949, 0, "c") + , (13950, 0, "e") + , (13951, 0, "_") + , (13952, 0, "b") + , (13953, 0, "y") + , (13954, 0, "_") + , (13955, 0, "i") + , (13956, 0, "t") + , (13957, 0, "e") + , (13958, 0, "m") + , (13959, 0, "s") + , (13960, 0, "(") + , (13961, 0, "&") + , (13962, 0, "m") + , (13963, 0, "u") + , (13964, 0, "s") + , (13965, 0, "t") + , (13966, 0, " ") + , (13966, 1, "") + , (13965, 1, "") + , (13964, 1, "") + , (13964, 0, "t") + , (13965, 0, " ") + , (13966, 0, "s") + , (13967, 0, "e") + , (13968, 0, "l") + , (13969, 0, "f") + , (13970, 0, ")") + , (13971, 0, " ") + , (13972, 0, "{") + , (13973, 0, "\n ") + , (13982, 0, "\n ") + , (13974, 8, "") + , (13975, 8, " }") + , (13974, 0, " ") + , (13982, 0, "f") + , (13983, 0, "o") + , (13984, 0, "r") + , (13985, 0, " ") + , (13986, 0, "0") + , (13986, 1, "") + , (13986, 0, "_") + , (13987, 0, " ") + , (13987, 1, "") + , (13986, 1, "") + , (13986, 0, "0") + , (13987, 0, ".") + , (13988, 0, ".") + , (13970, 0, " ") + , (13970, 1, "") + , (13970, 0, ",") + , (13971, 0, " ") + , (13972, 0, "n") + , (13973, 0, "u") + , (13974, 0, "m") + , (13975, 0, ":") + , (13976, 0, " ") + , (13977, 0, "u") + , (13978, 0, "s") + , (13979, 0, "i") + , (13980, 0, "z") + , (13981, 0, "e") + , (14001, 0, "n") + , (14002, 0, "u") + , (14003, 0, "m") + , (14004, 0, " ") + , (14005, 0, "{") + , (14006, 0, " ") + , (14007, 0, "s") + , (14008, 0, "e") + , (14009, 0, "l") + , (14010, 0, "f") + , (14011, 0, ".") + , (14012, 0, "a") + , (14013, 0, "d") + , (14014, 0, "v") + , (14012, 3, "advance_item()") + , (14026, 0, ";") + , (14027, 0, " ") + , (14028, 0, "}") + , (13997, 0, " ") + , (13998, 0, "_") + , (13999, 0, " ") + , (14000, 0, "i") + , (14001, 0, "n") + , ( 37673 + , 0 + , "\n let (c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));" + ) + , (37597, 0, "// ") + , (37731, 32, "") + , (37733, 0, "\n ") + , (37746, 0, "c") + , (37747, 0, "2") + , (37748, 0, ".") + , (37749, 0, "a") + , (37750, 0, "d") + , (37751, 0, "v") + , (37749, 3, "advance_by_items(num: usize)") + , (37766, 10, "c") + , (37767, 0, "o") + , (37768, 0, "n") + , (37769, 0, "t") + , (37770, 0, "e") + , (37771, 0, "n") + , (37772, 0, "t") + , (37773, 0, "s") + , (37774, 0, ".") + , (37775, 0, "l") + , (37776, 0, "e") + , (37777, 0, "n") + , (37778, 0, "(") + , (37779, 1, ")") + , (37780, 0, ")") + , (37781, 0, ";") + , (37694, 0, "m") + , (37695, 0, "u") + , (37696, 0, "t") + , (37697, 0, " ") + , (16996, 0, "\n ") + , (17013, 0, "e") + , (17014, 0, "t") + , (17015, 0, " ") + , (17015, 1, "") + , (17014, 1, "") + , (17013, 1, "") + , (17013, 0, "l") + , (17014, 0, "e") + , (17015, 0, "t") + , (17016, 0, " ") + , (17017, 0, "i") + , (17018, 0, "s") + , (17019, 0, "_") + , (17020, 0, "h") + , (17021, 0, "e") + , (17022, 0, "a") + , (17023, 0, "d") + , (17024, 0, " ") + , (17025, 0, "=") + , (17026, 0, " ") + , (17052, 53, "") + , (17027, 0, "(n as *const Node == &self.head as *const Node)") + , (17079, 1, "") + , (17027, 1, "") + , (17071, 7, "_") + , (17039, 7, "_") + , (17066, 0, ";") + , (17092, 0, "i") + , (17093, 0, "s") + , (17094, 0, "_") + , (17095, 0, "h") + , (17096, 0, "e") + , (17097, 0, "a") + , (17098, 0, "d") + , (17238, 69, "") + , (17084, 0, "i") + , (17085, 0, "f") + , (17086, 0, " ") + , (17087, 0, "!") + , (17088, 0, "i") + , (17089, 0, "s") + , (17090, 0, "_") + , (17091, 0, "h") + , (17092, 0, "e") + , (17093, 0, "a") + , (17094, 0, "d") + , (17095, 0, " ") + , (17104, 11, "") + , (17121, 0, "}") + , (17096, 0, "{") + , (17097, 0, " ") + , (17123, 0, " ") + , (17125, 0, "\n ") + , (17126, 16, "") + , (17125, 1, "") + , (13898, 0, "\n ") + , (13907, 0, "l") + , (13908, 0, "e") + , (13909, 0, "t") + , (13910, 0, " ") + , (13911, 0, "s") + , (13912, 0, "i") + , (13913, 0, "z") + , (13914, 0, "e") + , (13915, 0, " ") + , (13916, 0, "=") + , (13917, 0, " ") + , (13907, 11, "") + , (13907, 0, "l") + , (13908, 0, "e") + , (13909, 0, "t") + , (13910, 0, " ") + , (13758, 20, "h") + , (13759, 0, "e") + , (13760, 0, "r") + , (13761, 0, "e") + , (13758, 4, "s") + , (13759, 0, "e") + , (13760, 0, "l") + , (13761, 0, "f") + , (13762, 0, ".") + , (13763, 0, "h") + , (13764, 0, "e") + , (13765, 0, "r") + , (13766, 0, "e") + , (13763, 4, "here_ptr()") + , (13832, 0, ",") + , (13833, 0, " ") + , (13834, 0, "h") + , (13835, 0, "e") + , (13836, 0, "i") + , (13837, 0, "g") + , (13838, 0, "h") + , (13839, 0, "t") + , (13840, 0, ":") + , (13841, 0, " ") + , (13842, 0, "s") + , (13843, 0, "z") + , (13843, 1, "") + , (13843, 0, "i") + , (13844, 0, "z") + , (13845, 0, "e") + , (13846, 0, "-") + , (13846, 1, "") + , (13842, 4, "u") + , (13843, 0, "s") + , (13844, 0, "i") + , (13845, 0, "z") + , (13846, 0, "e") + , (14005, 0, ",") + , (14006, 0, " ") + , (14007, 0, "h") + , (14008, 0, "e") + , (14009, 0, "i") + , (14010, 0, "g") + , (14011, 0, "h") + , (14012, 0, "t") + , (14013, 0, ":") + , (14014, 0, " ") + , (14015, 0, "u") + , (14016, 0, "s") + , (14017, 0, "i") + , (14018, 0, "z") + , (14019, 0, "e") + , (14068, 0, "h") + , (14069, 0, "e") + , (14070, 0, "i") + , (14071, 0, "g") + , (14072, 0, "h") + , (14073, 0, "t") + , (13921, 0, "u") + , (13922, 0, "s") + , (13923, 0, "e") + , (13924, 0, "r") + , (13925, 0, "s") + , (13926, 0, "i") + , (13927, 0, "z") + , (13928, 0, "e") + , (13929, 0, " ") + , (13930, 0, "=") + , (13931, 0, " ") + , (13932, 0, "s") + , (13933, 0, "e") + , (13934, 0, "l") + , (13935, 0, "f") + , (13936, 0, ".") + , (13937, 0, "h") + , (13938, 0, "e") + , (13939, 0, "r") + , (13940, 0, "e") + , (13937, 4, "here_ptr()") + , (13932, 0, "u") + , (13933, 0, "n") + , (13934, 0, "s") + , (13935, 0, "a") + , (13936, 0, "f") + , (13937, 0, "e") + , (13938, 0, " ") + , (13939, 0, "{") + , (13940, 0, " ") + , (13941, 0, "*") + , (13941, 0, "(") + , (13958, 0, ")") + , (13959, 0, ".") + , (13960, 0, "i") + , (13961, 0, "t") + , (13962, 0, "e") + , (13963, 0, "m") + , (13964, 0, "s") + , (13965, 0, "[") + , (13966, 0, "self.local_index") + , (13982, 0, "]") + , (13983, 0, " ") + , (13984, 0, "}") + , (13985, 0, ";") + , (13908, 0, "\n ") + , (13917, 0, "l") + , (13918, 0, "e") + , (13919, 0, "t") + , (13920, 0, " ") + , (13921, 0, "f") + , (13922, 0, "i") + , (13923, 0, "r") + , (13924, 0, "s") + , (13925, 0, "t") + , (13926, 0, "_") + , (13927, 0, "i") + , (13928, 0, "t") + , (13929, 0, "e") + , (13930, 0, "m") + , (13931, 0, " ") + , (13932, 0, "=") + , (13933, 0, " ") + , (13958, 54, "") + , (13934, 0, "unsafe { (*self.here_ptr()).items[self.local_index] };") + , (13921, 10, "c") + , (13922, 0, "u") + , (13923, 0, "r") + , (13924, 0, "r") + , (13925, 0, "e") + , (13926, 0, "n") + , (13927, 0, "t") + , (13928, 0, "_") + , (13929, 0, "i") + , (13930, 0, "t") + , (13931, 0, "e") + , (13932, 0, "m") + , (14177, 0, "\n ") + , (14182, 0, "\n ") + , (14178, 4, "") + , (14183, 0, "f") + , (14184, 0, "n") + , (14185, 0, " ") + , (14186, 0, "c") + , (14187, 0, "u") + , (14188, 0, "r") + , (14189, 0, "r") + , (14190, 0, "e") + , (14191, 0, "n") + , (14192, 0, "t") + , (14193, 0, "_") + , (14194, 0, "i") + , (14195, 0, "t") + , (14196, 0, "e") + , (14197, 0, "m") + , (14183, 0, "u") + , (14184, 0, "n") + , (14185, 0, "s") + , (14186, 0, "a") + , (14187, 0, "f") + , (14188, 0, "e") + , (14189, 0, " ") + , (14205, 0, "(") + , (14206, 0, "&") + , (14207, 0, "u") + , (14207, 1, "") + , (14207, 0, "m") + , (14208, 0, "u") + , (14209, 0, "t") + , (14210, 0, " ") + , (14211, 0, "s") + , (14212, 0, "e") + , (14213, 0, "l") + , (14214, 0, "f") + , (14215, 0, ")") + , (14216, 0, " ") + , (14217, 0, "{") + , (14218, 0, "\n ") + , (14227, 0, "\n ") + , (14219, 8, "") + , (14220, 8, " }") + , (14219, 0, "(*self.here_ptr()).items[self.local_index]") + , (14219, 0, " ") + , (14227, 1, "") + , (14243, 1, "") + , (14227, 0, "(") + , (14244, 0, ")") + , (14216, 0, " ") + , (14217, 0, "-") + , (14218, 0, ">") + , (14219, 0, " ") + , (14220, 0, "&") + , (14221, 0, "T") + , (14221, 1, "") + , (14221, 0, "C") + , (14222, 0, ":") + , (14223, 0, ":") + , (14224, 0, "I") + , (14225, 0, "t") + , (14226, 0, "e") + , (14227, 0, "m") + , (14239, 0, "&") + , (14014, 0, "u") + , (14015, 0, "n") + , (14016, 0, "s") + , (14017, 0, "a") + , (14018, 0, "f") + , (14019, 0, "e") + , (14020, 0, " ") + , (14021, 0, "{") + , (14022, 0, " ") + , (14023, 0, "s") + , (14024, 0, "e") + , (14025, 0, "l") + , (14026, 0, "f") + , (14027, 0, ".") + , (14028, 0, "c") + , (14029, 0, "u") + , (14030, 0, "r") + , (14031, 0, "r") + , (14028, 4, "Current") + , (14028, 7, "c") + , (14029, 0, "u") + , (14030, 0, "r") + , (14031, 0, "r") + , (14032, 0, "e") + , (14033, 0, "n") + , (14034, 0, "t") + , (14035, 0, "_") + , (14036, 0, "i") + , (14028, 9, "current_item") + , (14040, 0, "(") + , (14041, 0, ")") + , (14042, 0, " ") + , (14043, 0, "}") + , (14013, 0, " ") + , (14014, 0, "C") + , (14015, 0, ":") + , (14016, 0, ":") + , (14017, 0, "get_usersize(_item: &Self::Item)") + , (14030, 18, "") + , (14030, 1, "") + , (14030, 1, "") + , (14060, 0, ")") + , (14061, 0, ";") + , (13909, 81, "") + , (13908, 1, "") + , (13980, 0, "\n ") + , (13989, 0, "\n ") + , (13981, 8, "") + , (13990, 0, "f") + , (13991, 0, "o") + , (13992, 0, "r") + , (13993, 0, " ") + , (13994, 0, "_") + , (13995, 0, " ") + , (13996, 0, "i") + , (13997, 0, " ") + , (13997, 1, "") + , (13997, 0, "n") + , (13998, 0, " ") + , (13999, 0, "0") + , (14000, 0, ".") + , (14001, 0, ".") + , (14002, 0, "h") + , (14003, 0, "e") + , (14004, 0, "i") + , (14005, 0, "g") + , (14006, 0, "h") + , (14007, 0, "t") + , (14008, 0, " ") + , (14009, 0, "{") + , (14010, 0, "\n ") + , (14023, 0, "\n ") + , (14011, 12, "") + , (14012, 12, " }") + , (14011, 0, " ") + , (14023, 0, "e") + , (14024, 0, "s") + , (14025, 0, "l") + , (14026, 0, "f") + , (14026, 1, "") + , (14025, 1, "") + , (14024, 1, "") + , (14023, 1, "") + , (14023, 0, "s") + , (14024, 0, "e") + , (14025, 0, "l") + , (14026, 0, "f") + , (14027, 0, ".") + , (14028, 0, "e") + , (14029, 0, "n") + , (14030, 0, "t") + , (14028, 3, "entries") + , (14035, 0, "[") + , (14036, 0, "i") + , (14037, 0, "]") + , (14038, 0, ".") + , (14039, 0, "s") + , (14040, 0, "k") + , (14041, 0, "i") + , (14042, 0, "p") + , (14043, 0, "_") + , (14044, 0, "u") + , (14045, 0, "s") + , (14039, 7, "skip_usersize") + , (14052, 0, " ") + , (14053, 0, "+") + , (14054, 0, "=") + , (14055, 0, " ") + , (14056, 0, "u") + , (14057, 0, "s") + , (14058, 0, "e") + , (14059, 0, "r") + , (14060, 0, "s") + , (14061, 0, "i") + , (14062, 0, "z") + , (14063, 0, "e") + , (14064, 0, ";") + , (14075, 0, "\n ") + , (14084, 0, "s") + , (14085, 0, "e") + , (14086, 0, "l") + , (14087, 0, "f") + , (14088, 0, ".") + , (14089, 0, "g") + , (14090, 0, "l") + , (14091, 0, "o") + , (14089, 3, "u") + , (14090, 0, "s") + , (14091, 0, "e") + , (14092, 0, "r") + , (14089, 4, "userpos") + , (14096, 0, " ") + , (14097, 0, "+") + , (14098, 0, " ") + , (14098, 1, "") + , (14098, 0, "=") + , (14099, 0, " ") + , (14100, 0, "u") + , (14101, 0, "s") + , (14102, 0, "e") + , (14103, 0, "r") + , (14104, 0, "s") + , (14105, 0, "i") + , (14106, 0, "z") + , (14107, 0, "e") + , (14108, 0, ";") + , (13994, 1, "") + , (13994, 0, "e") + , (13995, 0, "n") + , (13996, 0, "t") + , (13997, 0, "r") + , (13998, 0, "y") + , (14003, 0, "s") + , (14004, 0, "e") + , (14005, 0, "l") + , (14006, 0, "f") + , (14007, 0, ".") + , (14008, 0, "e") + , (14009, 0, "n") + , (14010, 0, "t") + , (14011, 0, "r") + , (14012, 0, "i") + , (14013, 0, "e") + , (14014, 0, "s") + , (14015, 0, "[") + , (14025, 0, "]") + , (14041, 15, "e") + , (14042, 0, "n") + , (14043, 0, "t") + , (14044, 0, "r") + , (14045, 0, "y") + , (14026, 0, ".") + , (14027, 0, "i") + , (14028, 0, "t") + , (14029, 0, "e") + , (14030, 0, "r") + , (14031, 0, "9") + , (14031, 1, "") + , (14031, 0, "(") + , (14032, 0, ")") + , (14026, 7, "") + , (14003, 0, "&") + , (14004, 0, "m") + , (14005, 0, "u") + , (14006, 0, "t") + , (14007, 0, " ") + , (14004, 3, "") + , (14004, 1, "") + , (38097, 0, ",") + , (38098, 0, " ") + , (38099, 0, "s") + , (38100, 0, "e") + , (38101, 0, "l") + , (38102, 0, "f") + , (38103, 0, ".") + , (38104, 0, "h") + , (38105, 0, "e") + , (38106, 0, "i") + , (38107, 0, "\n ") + , (38108, 8, "") + , (38107, 1, "") + , (38106, 1, "") + , (38106, 0, "i") + , (38107, 0, "g") + , (38108, 0, "h") + , (38109, 0, "t") + , (38104, 0, "e") + , (38105, 0, "a") + , (38105, 1, "") + , (38104, 1, "") + , (38104, 0, "h") + , (38105, 0, "e") + , (38106, 0, "a") + , (38107, 0, "d") + , (38108, 0, ".") + , (38115, 0, " ") + , (38116, 0, "a") + , (38117, 0, "s") + , (38118, 0, " ") + , (38119, 0, "u") + , (38120, 0, "s") + , (38121, 0, "z") + , (38119, 3, "usize") + , (14212, 5, "u") + , (14213, 0, "8") + , (13842, 5, "u") + , (13843, 0, "8") + , (14023, 0, " ") + , (14024, 0, "a") + , (14025, 0, "s") + , (14026, 0, " ") + , (14027, 0, "u") + , (14028, 0, "s") + , (14029, 0, "i") + , (14030, 0, "z") + , (14031, 0, "e") + , (38118, 9, "") + , (14001, 0, "m") + , (14002, 0, "u") + , (14003, 0, "t") + , (14004, 0, " ") + , (38208, 76, "") + , (37905, 92, "") + , (38582, 63, "\n ") + , ( 38591 + , 0 + , " #[cfg(debug_assertions)] {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(contents.len(), self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after insert\"); }\n }\n" + ) + , (38583, 16, " ") + , (38828, 1, "") + , (38679, 67, "") + , (38740, 6, "d") + , (38741, 0, "e") + , (38742, 0, "l") + , (38743, 0, "e") + , (38744, 0, "t") + , (38745, 0, "e") + , (38635, 3, "") + , (38635, 1, "") + , (37480, 3, "") + , (37403, 3, "") + , (37332, 3, "") + , (37294, 3, "") + , (34406, 3, "") + , (34410, 23, "a") + , (34411, 0, "d") + , (34412, 0, "v") + , (34413, 0, "a") + , (34414, 0, "n") + , (34415, 0, "c") + , (34416, 0, "e") + , (34417, 0, "d") + , (34418, 0, "_") + , (34419, 0, "b") + , (34420, 0, "y") + , (34424, 16, "") + , (37357, 0, "\n ") + , (37370, 0, "c2.advance_by_items(contents.len(), self.head.height);") + , (37332, 23, "c2.advance_by_items(contents.len(), self.head.height);") + , (37332, 54, "expected_final_position") + , (37332, 23, "s") + , (37333, 0, "t") + , (37334, 0, "a") + , (37335, 0, "r") + , (37332, 4, "start_userpos") + , (37380, 14, "") + , (37380, 0, "a") + , (37381, 0, "d") + , (37382, 0, "v") + , (37383, 0, "a") + , (37380, 4, "advanced_by") + , (37306, 0, "m") + , (37307, 0, "u") + , (37308, 0, "t") + , (37309, 0, " ") + , (37306, 0, "(") + , (37313, 0, ",") + , (37314, 0, " ") + , (37315, 0, "_") + , (37316, 0, ")") + , (34446, 0, ";") + , (34447, 0, "/") + , (34448, 0, "/") + , (34447, 19, "") + , (1150, 1, "") + , (1150, 0, "1") + , (1150, 1, "") + , (1150, 0, "1") + , (1151, 0, "0") + , (1152, 0, "0") + , (1150, 3, "") + , (1150, 0, "1") + , (1449, 1, "") + , (1449, 0, "2") + , (1449, 1, "") + , (1449, 0, "1") + , (1450, 0, "0") + , (1119, 0, "\n") + , (1120, 0, "#[cfg(test)]") + , (1094, 0, "_") + , (1094, 1, "") + , (1082, 3, "") + , (1116, 13, "") + , (1082, 0, "#[cfg(test)]\n") + , (1129, 33, "") + , (1095, 0, "const NODE_NUM_ITEMS: usize = 1;\n") + , (1082, 0, "#[cfg(test)]\n") + , (1107, 33, "") + , (1095, 0, "const NODE_NUM_ITEMS: usize = 1;\n") + , (1134, 0, "!") + , (1134, 1, "") + , (1130, 0, "!") + , (1130, 1, "") + , (1133, 0, "!") + , (1133, 1, "") + , (1133, 0, ")") + , (1134, 0, "n") + , (1135, 0, "o") + , (1135, 1, "") + , (1134, 1, "") + , (1133, 1, "") + , (1133, 0, "(") + , (1134, 0, "n") + , (1135, 0, "o") + , (1136, 0, "t") + , (1143, 0, ")") + , ( 1451 + , 30 + , "#[cfg(test)]\nconst NODE_NUM_ITEMS: usize = 1;\n#[cfg(not(test))]\nconst NODE_NUM_ITEMS: usize = 100;\n" + ) + , (1451, 99, "const MAX_HEIGHT: usize = 10;\n") + , (1451, 0, "\n") + , ( 1451 + , 0 + , "#[cfg(test)]\nconst NODE_NUM_ITEMS: usize = 1;\n#[cfg(not(test))]\nconst NODE_NUM_ITEMS: usize = 100;\n" + ) + , (1580, 0, "\n") + , (1550, 1, "") + , (1579, 0, "\nconst NODE_NUM_ITEMS: usize = 100;") + , (1515, 35, "") + , (1545, 35, "") + , (1544, 0, "\nconst MAX_HEIGHT: usize = 10;") + , (1544, 0, "\n#[cfg(not(test))]") + , (1497, 18, "") + , (1526, 0, "\nconst NODE_NUM_ITEMS: usize = 1;") + , (1464, 33, "") + , (1493, 33, "") + , (1464, 0, "const NODE_NUM_ITEMS: usize = 1;\n") + , (1464, 33, "") + , (1491, 1, "") + , (1490, 1, "") + , (1490, 0, "2") + , (1490, 1, "") + , (1490, 0, "1") + , (1490, 1, "") + , (1490, 0, "1") + , (1491, 0, "0") + , (1493, 0, "\n") + , (1128, 0, "\n") + , (1126, 0, "0") + , (1127, 0, "0") + , (1127, 1, "") + , (1126, 1, "") + , (1125, 1, "") + , (1125, 0, "2") + , (1491, 2, "2") + , (34678, 122, "") + , (1505, 4, "d") + , (1458, 4, "d") + , (1139, 4, "d") + , (1088, 4, "d") + , (1497, 0, "e") + , (1453, 0, "e") + , (1137, 0, "e") + , (1089, 0, "e") + , (1501, 0, "b") + , (1456, 0, "b") + , (1139, 0, "b") + , (1090, 0, "b") + , (1505, 0, "u") + , (1459, 0, "u") + , (1141, 0, "u") + , (1091, 0, "u") + , (1509, 0, "g") + , (1462, 0, "g") + , (1143, 0, "g") + , (1092, 0, "g") + , (1513, 0, "_") + , (1465, 0, "_") + , (1145, 0, "_") + , (1093, 0, "_") + , (1517, 0, "a") + , (1468, 0, "a") + , (1147, 0, "a") + , (1094, 0, "a") + , (1521, 0, "s") + , (1471, 0, "s") + , (1149, 0, "s") + , (1095, 0, "s") + , (1525, 0, "s") + , (1474, 0, "s") + , (1151, 0, "s") + , (1096, 0, "s") + , (1529, 0, "e") + , (1477, 0, "e") + , (1153, 0, "e") + , (1097, 0, "e") + , (1533, 0, "r") + , (1480, 0, "r") + , (1155, 0, "r") + , (1098, 0, "r") + , (1537, 0, "t") + , (1483, 0, "t") + , (1157, 0, "t") + , (1099, 0, "t") + , (1541, 0, "i") + , (1486, 0, "i") + , (1159, 0, "i") + , (1100, 0, "i") + , (1545, 0, "o") + , (1489, 0, "o") + , (1161, 0, "o") + , (1101, 0, "o") + , (1549, 0, "n") + , (1492, 0, "n") + , (1163, 0, "n") + , (1102, 0, "n") + , (1553, 0, "s") + , (1495, 0, "s") + , (1165, 0, "s") + , (1103, 0, "s") + , (13279, 0, "d") + , (13280, 0, "b") + , (13281, 0, "g") + , (13282, 0, "!") + , (13283, 0, "(") + , (13302, 0, ")") + , (35841, 1, "") + , (35788, 0, " \n") + , (35858, 57, "") + , (35805, 0, " // And bookkeeping. Bookkeeping forever.\n") + , (35915, 67, "") + , ( 35862 + , 0 + , " let new_usersize = C::userlen_of_slice(new_items);\n" + ) + , (35982, 102, "") + , ( 35929 + , 0 + , " let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n" + ) + , (36084, 41, "") + , (36031, 16, " ") + , (36031, 0, " if usersize_delta != 0 {\n") + , (36129, 0, "\n if usersize_delta != 0 {") + , (36072, 20, " ") + , (36031, 41, "") + , (35787, 17, "") + , (35739, 0, " \n") + , (35804, 57, "") + , (35756, 0, " // And bookkeeping. Bookkeeping forever.\n") + , (35861, 67, "") + , ( 35813 + , 0 + , " let new_usersize = C::userlen_of_slice(new_items);\n" + ) + , (35928, 102, "") + , ( 35880 + , 0 + , " let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n" + ) + , (35981, 0, "\n ") + , (35982, 16, "") + , (35739, 16, "") + , (35738, 1, "") + , (35738, 58, "") + , (35738, 16, "\n ") + , (36011, 0, "\n ") + , (36012, 16, "") + , (35957, 0, " ") + , (35958, 0, "E") + , (35959, 0, "v") + , (35960, 0, "e") + , (35961, 0, "r") + , (35962, 0, "y") + , (35963, 0, "t") + , (35964, 0, "h") + , (35965, 0, "i") + , (35966, 0, "n") + , (35967, 0, "g") + , (35968, 0, " ") + , (35969, 0, "e") + , (35970, 0, "l") + , (35971, 0, "s") + , (35972, 0, "e") + , (35973, 0, " ") + , (35974, 0, "i") + , (35975, 0, "s") + , (35976, 0, " ") + , (35977, 0, "c") + , (35978, 0, "o") + , (35979, 0, "m") + , (35980, 0, "m") + , (35981, 0, "e") + , (35982, 0, "n") + , (35983, 0, "t") + , (35984, 0, "a") + , (35985, 0, "r") + , (35986, 0, "y") + , (35987, 0, ".") + , (36187, 0, "\n ") + , (36204, 0, "s") + , (36205, 0, "e") + , (36206, 0, "l") + , (36207, 0, "f") + , (36208, 0, ".") + , (36209, 0, "u") + , (36210, 0, "s") + , (36211, 0, "e") + , (36212, 0, "r") + , (36209, 4, "num_usercount") + , (36222, 0, " ") + , (36223, 0, "+") + , (36224, 0, "=") + , (36225, 0, " ") + , (36226, 0, "u") + , (36227, 0, "s") + , (36228, 0, "e") + , (36229, 0, "r") + , (36230, 0, "s") + , (36231, 0, "i") + , (36232, 0, "z") + , (36233, 0, "e") + , (36234, 0, "_") + , (36235, 0, "d") + , (36236, 0, "e") + , (36237, 0, "l") + , (36238, 0, "t") + , (36239, 0, "a") + , (36240, 0, ";") + , (36222, 0, " ") + , (36223, 0, "a") + , (36224, 0, "s") + , (36225, 0, " ") + , (36226, 0, "i") + , (36227, 0, "s") + , (36228, 0, "u") + , (36229, 0, "z") + , (36230, 0, "e") + , (36230, 1, "") + , (36229, 1, "") + , (36228, 1, "") + , (36228, 0, "i") + , (36229, 0, "z") + , (36230, 0, "e") + , (36204, 0, "(") + , (36232, 0, ")") + , (36232, 1, "") + , (36204, 1, "") + , (36228, 3, "") + , (36228, 0, "uze") + , (36225, 6, "") + , (36222, 3, "") + , (36222, 0, " ") + , (36223, 0, "=") + , (36224, 0, " ") + , (36225, 0, "s") + , (36226, 0, "e") + , (36227, 0, "l") + , (36228, 0, "f") + , (36229, 0, ".") + , (36230, 0, "u") + , (36231, 0, "s") + , (36232, 0, "e") + , (36233, 0, "r") + , (36230, 4, "num_usercount") + , (36243, 0, ".") + , (36244, 0, "w") + , (36245, 0, "r") + , (36246, 0, "a") + , (36247, 0, "p") + , (36244, 4, "wrapping_add") + , (36256, 0, "(") + , (36257, 1, "") + , (36257, 1, "") + , (36257, 1, "") + , (36257, 1, "") + , (36271, 0, " ") + , (36272, 0, "a") + , (36273, 0, "s") + , (36274, 0, " ") + , (36275, 0, "u") + , (36276, 0, "s") + , (36277, 0, "i") + , (36278, 0, "z") + , (36279, 0, "e") + , (36280, 0, ")") + , (36187, 0, "\n ") + , (36204, 0, "/") + , (36205, 0, "/") + , (36206, 0, " ") + , (36207, 0, "I") + , (36208, 0, " ") + , (36209, 0, "h") + , (36210, 0, "a") + , (36211, 0, "t") + , (36212, 0, "e") + , (36213, 0, " ") + , (36214, 0, "t") + , (36215, 0, "h") + , (36216, 0, "i") + , (36217, 0, "s") + , (36218, 0, ".") + , (37399, 0, "\n #[cfg(debug_assertions)] {") + , (37373, 0, "// ") + , (37411, 0, "i") + , (37412, 0, "f") + , (37413, 0, " ") + , (37414, 1, "") + , (37414, 1, "") + , (37417, 0, "!") + , (37438, 1, "") + , (37437, 1, "") + , (37436, 1, "") + , (37436, 0, " ") + , (37437, 0, "{") + , (37365, 37, "") + , (37364, 1, "") + , (38722, 26, "if cfg!(debug_assertions) {") + , (38009, 26, "if cfg!(debug_assertions) {") + , (13279, 5, "") + , (13297, 1, "") + , (37871, 0, "// ") + , (37862, 0, "\n ") + , (37871, 0, "\n ") + , (37863, 8, "") + , (37872, 0, "i") + , (37873, 0, "f") + , (37874, 0, " ") + , (37875, 0, "o") + , (37876, 0, "f") + , (37877, 0, "f") + , (37878, 0, "s") + , (37879, 0, "e") + , (37880, 0, "t") + , (37881, 0, " ") + , (37882, 0, "=") + , (37883, 0, "=") + , (37884, 0, " ") + , (37885, 0, "0") + , (37886, 0, " ") + , (37887, 0, "{") + , (37959, 0, "\n if offset == 0 {") + , (37864, 25, "") + , (37934, 0, "\n") + , (37863, 1, "") + , (37968, 0, " ") + , (38026, 0, "\n ") + , (38027, 12, " }") + , (38036, 0, " ") + , (38037, 0, "e") + , (38038, 0, "l") + , (38039, 0, "s") + , (38040, 0, "e") + , (38041, 0, " ") + , (38042, 0, "{") + , (38043, 0, "\n ") + , (38056, 0, "\n ") + , (38044, 12, "") + , (38045, 12, " }") + , (38044, 0, " ") + , (38056, 0, "l") + , (38057, 0, "e") + , (38058, 0, "t") + , (38059, 0, " ") + , (38060, 0, "c") + , (38061, 0, "u") + , (38062, 0, "r") + , (38063, 0, "r") + , (38064, 0, "e") + , (38065, 0, "n") + , (38066, 0, "t") + , (38067, 0, "_") + , (38068, 0, "i") + , (38069, 0, "t") + , (38070, 0, "e") + , (38071, 0, "m") + , (38072, 0, " ") + , (38073, 0, "=") + , (38074, 0, " ") + , (38075, 0, "c") + , (38076, 0, "u") + , (38077, 0, "r") + , (38078, 0, "s") + , (38079, 0, "o") + , (38080, 0, "r") + , (38081, 0, ".") + , (38082, 0, "g") + , (38083, 0, "e") + , (38084, 0, "t") + , (38085, 0, "_") + , (38086, 0, "c") + , (38087, 0, "u") + , (38088, 0, "r") + , (38089, 0, "r") + , (38082, 8, "") + , (38081, 1, "") + , (38081, 0, ".") + , (38082, 0, "current_item()") + , (38096, 0, ";") + , (38097, 0, "\n ") + , (38098, 12, "") + , (37972, 9, "") + , (38016, 1, "") + , (38015, 1, "") + , (37934, 0, "\n ") + , (37943, 0, "u") + , (37944, 0, "n") + , (37945, 0, "s") + , (37946, 0, "a") + , (37947, 0, "f") + , (37948, 0, "e") + , (37949, 0, " ") + , (37950, 0, "{") + , (38105, 8, " ") + , (38050, 12, " ") + , (38033, 8, " ") + , (37977, 12, " ") + , (37952, 8, " ") + , (38134, 0, "\n ") + , (38135, 12, " }") + , (38120, 0, " ") + , (38136, 0, "C") + , (38137, 0, ":") + , (38138, 0, ":") + , (38139, 0, "split_item(_item: Self::Item)") + , (38150, 17, "c") + , (38151, 0, "u") + , (38152, 0, "r") + , (38153, 0, "r") + , (38154, 0, "e") + , (38155, 0, "n") + , (38156, 0, "t") + , (38157, 0, "_") + , (38158, 0, "i") + , (38159, 0, "t") + , (38160, 0, "e") + , (38161, 0, "m") + , (38163, 0, ";") + , (2277, 0, "&") + , (38137, 0, "l") + , (38138, 0, "e") + , (38139, 0, "t") + , (38140, 0, " ") + , (38141, 0, "(") + , (38142, 0, "s") + , (38143, 0, "t") + , (38144, 0, "a") + , (38145, 0, "r") + , (38146, 0, "t") + , (38147, 0, ",") + , (38148, 0, " ") + , (38149, 0, "e") + , (38150, 0, "n") + , (38151, 0, "d") + , (38152, 0, ")") + , (38153, 0, " ") + , (38154, 0, "=") + , (38155, 0, " ") + , (38184, 0, "\n ") + , (38201, 0, "s") + , (38202, 0, "e") + , (38203, 0, "l") + , (38204, 0, "f") + , (38205, 0, ".") + , (38206, 0, "r") + , (38207, 0, "e") + , (38208, 0, "p") + , (38209, 0, "l") + , (38201, 9, "") + , ( 34397 + , 0 + , "\n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {" + ) + , (34397, 0, "\n ") + , (34406, 0, "\n ") + , (34398, 8, "") + , (34399, 8, " }") + , (34404, 0, "\n ") + , (34405, 4, "") + , (34310, 24, "") + , (34310, 0, "cursor: &mut Cursor, ") + , (34334, 1, "") + , (34334, 1, "") + , (34298, 0, "_") + , (34299, 0, "i") + , (34300, 0, "e") + , (34301, 0, "r") + , (34301, 1, "") + , (34300, 1, "") + , (34300, 0, "t") + , (34301, 0, "e") + , (34302, 0, "r") + , (34281, 0, "u") + , (34282, 0, "n") + , (34283, 0, "s") + , (34284, 0, "a") + , (34285, 0, "f") + , (34286, 0, "e") + , (34287, 0, " ") + , ( 34609 + , 0 + , "\n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {" + ) + , (34537, 8, " ") + , (34416, 121, "") + , (34484, 0, "\n") + , (34415, 1, "") + , (34483, 0, "\n }") + , (34415, 4, " ") + , (34409, 6, "") + , (34481, 0, "\n") + , (34408, 1, "") + , (34281, 6, "") + , (34281, 1, "") + , (34284, 0, " ") + , (34285, 0, "u") + , (34286, 0, "n") + , (34287, 0, "s") + , (34288, 0, "a") + , (34289, 0, "f") + , (34290, 0, "e") + , (34281, 4, "") + , (34281, 0, "p") + , (34282, 0, "u") + , (34283, 0, "b") + , (34284, 0, " ") + , (34284, 1, "") + , (34281, 3, "") + , (34281, 0, "pub ") + , (34281, 4, "") + , (34606, 2818, "") + , ( 34477 + , 0 + , "\n // For validation. This is where the cursor should end up.\n let advanced_by = inserted_content.len();\n\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n // Replace as many items from removed_items as we can with inserted_content.\n unsafe {\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n let mut e = cursor.here_ptr();\n if cursor.local_index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n }\n\n let index = cursor.local_index;\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let old_items = &mut (*e).items[index..index + replaced_items_here];\n let new_items = &inserted_content[0..replaced_items_here];\n\n let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n\n // Replace the items themselves. Everything else is commentary.\n old_items.copy_from_slice(new_items);\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n\n inserted_content = &inserted_content[replaced_items_here..];\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n cursor.local_index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(&mut cursor, inserted_content);\n } else if removed_items > 0 {\n self.del_at_iter(&mut cursor, removed_items);\n }\n }" + ) + , (34596, 205, "") + , (34596, 0, "\n ") + , (34605, 0, "\n ") + , (34597, 8, "") + , (34606, 0, "\n ") + , (34598, 8, "") + , ( 37230 + , 0 + , " start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n" + ) + , (34599, 8, "") + , (37426, 1, "") + , (34478, 117, "") + , (37515, 11, "i") + , (37516, 0, "n") + , (37517, 0, "s") + , (37518, 0, "e") + , (37519, 0, "r") + , (37515, 5, "inserted_content") + , (37531, 0, ".") + , (37532, 0, "l") + , (37533, 0, "e") + , (37534, 0, "n") + , (37535, 0, "(") + , (37536, 0, ")") + , (37069, 4, "") + , (37017, 4, "") + , (37017, 0, "mut ") + , (37043, 4, "") + , (37302, 0, "\n ") + , (37311, 0, "s") + , (37312, 0, "e") + , (37313, 0, "l") + , (37314, 0, "f") + , (37315, 0, ".") + , (37316, 0, "r") + , (37317, 0, "e") + , (37318, 0, "p") + , (37319, 0, "l") + , ( 37316 + , 4 + , "replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])" + ) + , (37332, 22, "&") + , (37333, 0, "m") + , (37334, 0, "u") + , (37335, 0, "t") + , (37336, 0, " ") + , (37337, 0, "c") + , (37338, 0, "u") + , (37339, 0, "r") + , (37340, 0, "s") + , (37341, 0, "o") + , (37342, 0, "r") + , (37345, 24, "r") + , (37346, 0, "e") + , (37347, 0, "m") + , (37348, 0, "o") + , (37349, 0, "v") + , (37350, 0, "e") + , (37351, 0, "d") + , (37352, 0, "_") + , (37353, 0, "i") + , (37354, 0, "t") + , (37355, 0, "e") + , (37356, 0, "m") + , (37357, 0, "s") + , (37360, 32, "i") + , (37361, 0, "n") + , (37362, 0, "s") + , (37363, 0, "e") + , (37364, 0, "r") + , (37365, 0, "t") + , (37366, 0, "e") + , (37367, 0, "d") + , (37368, 0, "_") + , (37369, 0, "c") + , (37370, 0, "o") + , (37371, 0, "n") + , (37372, 0, "t") + , (37373, 0, "e") + , (37374, 0, "n") + , (37375, 0, "t") + , (37377, 0, ";") + , (37378, 0, "\n ") + , (37388, 69, "") + , (37379, 8, "") + , (37311, 0, "u") + , (37312, 0, "n") + , (37313, 0, "s") + , (37314, 0, "a") + , (37315, 0, "f") + , (37316, 0, "e") + , (37317, 0, " ") + , (37318, 0, "{") + , (37319, 0, " ") + , (37387, 0, " ") + , (37388, 0, "}") + , (36924, 5, "") + , (36817, 5, "") + , (34481, 1, "") + , (34480, 1, "") + , (34479, 1, "") + , (34478, 1, "") + , (34477, 1, "") + , (34563, 16, "") + , (34562, 1, "") + , (36921, 12, " ") + , (36864, 16, " ") + , (36822, 12, " ") + , (36759, 16, " ") + , (36708, 16, " ") + , (36681, 16, " ") + , (36637, 12, " ") + , (36568, 12, " ") + , (36490, 12, " ") + , (36475, 12, " ") + , (36427, 16, " ") + , (36409, 16, " ") + , (36340, 20, " ") + , (36284, 16, " ") + , (36224, 16, " ") + , (36184, 16, " ") + , (36108, 16, " ") + , (36053, 16, " ") + , (35976, 16, " ") + , (35880, 16, " ") + , (35848, 16, " ") + , (35830, 16, " ") + , (35745, 20, " ") + , (35704, 16, " ") + , (35649, 16, " ") + , (35569, 16, " ") + , (35466, 16, " ") + , (35399, 16, " ") + , (35323, 16, " ") + , (35238, 16, " ") + , (35153, 16, " ") + , (35094, 16, " ") + , (35045, 16, " ") + , (35026, 16, " ") + , (34936, 20, " ") + , (34889, 20, " ") + , (34843, 20, " ") + , (34776, 16, " ") + , (34729, 16, " ") + , (34690, 12, " ") + , (34644, 12, " ") + , (34563, 12, " ") + , (36767, 9, "") + , (36766, 1, "") + , (37969, 0, "// ") + , (37911, 0, "// ") + , (37704, 3, "") + , (37969, 3, "") + , (37908, 3, "") + , (38030, 0, "s") + , (38031, 0, "e") + , (38032, 0, "l") + , (38033, 0, "f") + , (38034, 0, ".") + , (38035, 0, "r") + , (38036, 0, "e") + , ( 38035 + , 2 + , "replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])" + ) + , (38051, 22, "&") + , (38052, 0, "m") + , (38053, 0, "u") + , (38054, 0, "t") + , (38055, 0, " ") + , (38056, 0, "c") + , (38057, 0, "u") + , (38058, 0, "r") + , (38059, 0, "s") + , (38060, 0, "o") + , (38061, 0, "r") + , (38064, 24, "1") + , (38030, 0, "// ") + , (38013, 0, "\n ") + , (38030, 0, "p") + , (38031, 0, "a") + , (38032, 0, "n") + , (38033, 0, "i") + , (38030, 4, "panic!") + , (38036, 0, "(") + , (38037, 0, "'") + , (38038, 0, "n") + , (38039, 0, "o") + , (38040, 0, "t") + , (38041, 0, " ") + , (38042, 0, "i") + , (38043, 0, "m") + , (38044, 0, "p") + , (38045, 0, "l") + , (38046, 0, "e") + , (38047, 0, "m") + , (38030, 18, "u") + , (38031, 0, "n") + , (38032, 0, "i") + , (38033, 0, "m") + , (38034, 0, "p") + , (38035, 0, "l") + , (38030, 6, "unimplemented!") + , (38044, 0, "(") + , (38045, 0, ")") + , (38046, 0, ";") + , (38030, 17, "") + , (38030, 0, "s") + , (38031, 0, "e") + , (38032, 0, "l") + , (38033, 0, "f") + , (38034, 0, ":") + , (38035, 0, ":") + , (38035, 1, "") + , (38034, 1, "") + , (38034, 0, ".") + , (38035, 0, "r") + , (38036, 0, "e") + , (38037, 0, "p") + , (38038, 0, "l") + , (38039, 0, "a") + , ( 38035 + , 5 + , "replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])" + ) + , (38051, 22, "c") + , (38052, 0, "u") + , (38053, 0, "r") + , (38054, 0, "s") + , (38055, 0, "o") + , (38056, 0, "r") + , (38059, 24, "1") + , (38062, 32, "&") + , (38063, 0, "[") + , (38064, 0, "s") + , (38065, 0, "t") + , (38066, 0, "a") + , (38067, 0, "r") + , (38068, 0, "t") + , (38069, 0, "]") + , (38071, 0, ";") + , (38014, 0, " self.replace_at_iter(cursor, 1, &[start]);\n") + , (38014, 59, "") + , ( 37811 + , 0 + , " self.insert_at_iter(&mut cursor, contents);\n" + ) + , (37930, 21, "") + , (37871, 0, " } else {\n") + , (37951, 58, "") + , (37892, 0, " let current_item = cursor.current_item();\n") + , (38009, 64, "") + , ( 37950 + , 0 + , " let (start, end) = C::split_item(current_item);\n" + ) + , (38073, 59, "") + , (38014, 0, " self.replace_at_iter(cursor, 1, &[start]);\n") + , (38051, 0, "&") + , (38052, 0, "m") + , (38053, 0, "u") + , (38054, 0, "t") + , (38055, 0, " ") + , ( 38078 + , 0 + , " self.insert_at_iter(&mut cursor, contents);\n" + ) + , (38187, 8, "&") + , (38188, 0, "[") + , (38189, 0, "e") + , (38190, 0, "n") + , (38191, 0, "d") + , (38192, 0, "]") + , (38013, 0, "\n ") + , (38030, 0, "/") + , (38031, 0, "/") + , (38032, 0, " ") + , (38033, 0, "T") + , (38034, 0, "h") + , (38035, 0, "s") + , (38036, 0, " ") + , (38037, 0, "i") + , (38037, 1, "") + , (38036, 1, "") + , (38035, 1, "") + , (38035, 0, "i") + , (38036, 0, "s") + , (38037, 0, " ") + , (38038, 0, "i") + , (38039, 0, "s") + , (38040, 0, " ") + , (38041, 0, "p") + , (38042, 0, "r") + , (38043, 0, "e") + , (38044, 0, "t") + , (38038, 7, "f") + , (38039, 0, "e") + , (38040, 0, "e") + , (38041, 0, "l") + , (38042, 0, "s") + , (38043, 0, " ") + , (38044, 0, "p") + , (38045, 0, "r") + , (38046, 0, "e") + , (38047, 0, "t") + , (38048, 0, "t") + , (38049, 0, "y") + , (38050, 0, " ") + , (38051, 0, "i") + , (38052, 0, "n") + , (38053, 0, "e") + , (38054, 0, "f") + , (38055, 0, "f") + , (38056, 0, "i") + , (38057, 0, "c") + , (38058, 0, "i") + , (38059, 0, "e") + , (38060, 0, "n") + , (38061, 0, "t") + , (38062, 0, ".") + , (38063, 0, " ") + , (38064, 0, "I") + , (38065, 0, "'") + , (38066, 0, "m") + , (38067, 0, " ") + , (38067, 1, "") + , (38066, 1, "") + , (38065, 1, "") + , (38064, 1, "") + , (38063, 1, "") + , (38062, 1, "") + , (38062, 0, ";") + , (38063, 0, " ") + , (38064, 0, "b") + , (38065, 0, "u") + , (38066, 0, "t") + , (38067, 0, " ") + , (38068, 0, "I") + , (38069, 0, "'") + , (38069, 1, "") + , (38068, 1, "") + , (38067, 1, "") + , (38066, 1, "") + , (38066, 0, "t") + , (38067, 0, " ") + , (38068, 0, "i") + , (38069, 0, "t") + , (38070, 0, "s") + , (38071, 0, " ") + , (38072, 0, "p") + , (38073, 0, "r") + , (38074, 0, "o") + , (38075, 0, "b") + , (38076, 0, "a") + , (38077, 0, "b") + , (38078, 0, "l") + , (38079, 0, "y") + , (38080, 0, " ") + , (38081, 0, "f") + , (38082, 0, "i") + , (38083, 0, "n") + , (38084, 0, "e") + , (38085, 0, ".") + , (38269, 90, "") + , (37695, 68, "") + , (2288, 0, ",") + , (2289, 0, " ") + , (2290, 0, "p") + , (2291, 0, "o") + , (2292, 0, "s") + , (2293, 0, ":") + , (2294, 0, " ") + , (2295, 0, "u") + , (2296, 0, "s") + , (2297, 0, "i") + , (2298, 0, "z") + , (2299, 0, "e") + , (2290, 3, "a") + , (2291, 0, "t") + , (2290, 0, "_") + , (37955, 0, ",") + , (37956, 0, " ") + , (37957, 0, "o") + , (37958, 0, "f") + , (37959, 0, "f") + , (37960, 0, "s") + , (37961, 0, "e") + , (37962, 0, "t") + , (38038, 0, "\n ") + , (38055, 0, "/") + , (38056, 0, "/") + , (38057, 0, " ") + , (38058, 0, "W") + , (38059, 0, "e") + , (38060, 0, " ") + , (38061, 0, "n") + , (38062, 0, "e") + , (38063, 0, "e") + , (38064, 0, "d") + , (38065, 0, " ") + , (38066, 0, "t") + , (38067, 0, "o") + , (38068, 0, " ") + , (38055, 14, "") + , (38055, 0, "c") + , (38056, 0, "j") + , (38057, 0, "r") + , (38058, 0, "s") + , (38058, 1, "") + , (38057, 1, "") + , (38056, 1, "") + , (38056, 0, "u") + , (38057, 0, "r") + , (38058, 0, "s") + , (38059, 0, "o") + , (38060, 0, "r") + , (38061, 0, ".") + , (38062, 0, "u") + , (38063, 0, "s") + , (38064, 0, "e") + , (38065, 0, "r") + , (38062, 4, "userpos") + , (38069, 0, " ") + , (38070, 0, "-") + , (38071, 0, "=") + , (38072, 0, " ") + , (38073, 0, "o") + , (38074, 0, "f") + , (38075, 0, "f") + , (38076, 0, "s") + , (38077, 0, "e") + , (38078, 0, "t") + , (38079, 0, ";") + , (38080, 0, " ") + , (38081, 0, "/") + , (38082, 0, "/") + , (38083, 0, " ") + , (38084, 0, "M") + , (38085, 0, "o") + , (38086, 0, "v") + , (38087, 0, "e") + , (38088, 0, " ") + , (38089, 0, "t") + , (38090, 0, "h") + , (38091, 0, "e") + , (38092, 0, " ") + , (38093, 0, "c") + , (38094, 0, "u") + , (38095, 0, "r") + , (38096, 0, "s") + , (38097, 0, "o") + , (38098, 0, "r") + , (38099, 0, " ") + , (38100, 0, "b") + , (38101, 0, "a") + , (38102, 0, "c") + , (38103, 0, "k") + , (38104, 0, " ") + , (38105, 0, "t") + , (38106, 0, "o") + , (38107, 0, " ") + , (38108, 0, "t") + , (38109, 0, "h") + , (38110, 0, "e") + , (38111, 0, " ") + , (38112, 0, "s") + , (38113, 0, "t") + , (38114, 0, "a") + , (38115, 0, "r") + , (38116, 0, "t") + , (38117, 0, " ") + , (38118, 0, "o") + , (38119, 0, "f") + , (38120, 0, " ") + , (38121, 0, "t") + , (38122, 0, "h") + , (38123, 0, "e") + , (38124, 0, " ") + , (38125, 0, "i") + , (38126, 0, "t") + , (38127, 0, "e") + , (38128, 0, "m") + , (38129, 0, " ") + , (38130, 0, "w") + , (38131, 0, "e") + , (38132, 0, "r") + , (38132, 1, "") + , (38132, 0, "'") + , (38133, 0, "r") + , (38134, 0, "e") + , (38135, 0, " ") + , (38136, 0, "s") + , (38137, 0, "p") + , (38138, 0, "l") + , (38139, 0, "i") + , (38140, 0, "t") + , (38141, 0, "t") + , (38142, 0, "i") + , (38143, 0, "n") + , (38144, 0, "g") + , (38145, 0, ".") + , (38080, 1, "") + , (38080, 0, "\n ") + , (38080, 82, "") + , ( 38039 + , 0 + , " // Move the cursor back to the start of the item we're splitting.\n" + ) + , (38038, 82, "") + , ( 37966 + , 0 + , " // Move the cursor back to the start of the item we're splitting.\n" + ) + , (38120, 42, "") + , (38048, 0, " cursor.userpos -= offset;\n") + , ( 37966 + , 81 + , " // Move the cursor back to the start of the item we're\n // splitting." + ) + , (14441, 0, "\n ") + , (14446, 0, "\n ") + , (14442, 4, "") + , (14447, 0, "f") + , (14448, 0, "n") + , (14449, 0, " ") + , (14450, 0, "m") + , (14451, 0, "o") + , (14452, 0, "v") + , (14453, 0, "e") + , (14454, 0, "_") + , (14455, 0, "t") + , (14456, 0, "o") + , (14457, 0, "_") + , (14458, 0, "n") + , (14459, 0, "o") + , (14460, 0, "d") + , (14461, 0, "e") + , (14461, 1, "") + , (14460, 1, "") + , (14459, 1, "") + , (14458, 1, "") + , (14458, 0, "i") + , (14459, 0, "t") + , (14460, 0, "e") + , (14461, 0, "m") + , (14462, 0, "_") + , (14463, 0, "s") + , (14464, 0, "t") + , (14465, 0, "a") + , (14466, 0, "r") + , (14467, 0, "t") + , (14468, 0, "(") + , (14469, 0, "&") + , (14470, 0, "m") + , (14471, 0, "u") + , (14472, 0, "t") + , (14473, 0, " ") + , (14474, 0, "s") + , (14475, 0, "e") + , (14476, 0, "l") + , (14477, 0, "f") + , (14478, 0, ")") + , (14478, 0, ",") + , (14479, 0, " ") + , (14480, 0, "o") + , (14481, 0, "f") + , (14482, 0, "f") + , (14483, 0, "s") + , (14484, 0, "e") + , (14485, 0, "t") + , (14486, 0, ":") + , (14487, 0, " ") + , (14488, 0, "u") + , (14489, 0, "s") + , (14490, 0, "i") + , (14491, 0, "z") + , (14492, 0, "e") + , (14494, 0, " ") + , (14495, 0, "{") + , (14496, 0, "\n ") + , (14505, 0, "\n ") + , (14497, 8, "") + , (14498, 8, " }") + , (14497, 0, " ") + , (14505, 0, "s") + , (14506, 0, "e") + , (14507, 0, "l") + , (14508, 0, "f") + , (14509, 0, ".") + , (14510, 0, "u") + , (14511, 0, "s") + , (14512, 0, "e") + , (14513, 0, "r") + , (14510, 4, "userpos") + , (14517, 0, " ") + , (14518, 0, "-") + , (14519, 0, "=") + , (14520, 0, " ") + , (14521, 0, "o") + , (14522, 0, "f") + , (14523, 0, "s") + , (14523, 1, "") + , (14523, 0, "f") + , (14524, 0, "s") + , (14525, 0, "e") + , (14526, 0, "t") + , (14527, 0, ";") + , (14528, 0, "\n ") + , ( 14537 + , 0 + , " for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }" + ) + , (14529, 16, " ") + , (14528, 61, "") + , (14497, 8, " ") + , ( 14497 + , 0 + , " for entry in &mut self.entries[0..height as usize] {\n" + ) + , (14593, 45, "") + , (14558, 0, " entry.skip_usersize += usersize;\n") + , (14638, 10, "") + , (14603, 12, " ") + , (14603, 0, " }\n") + , (14590, 1, "") + , (14590, 0, "-") + , (14479, 0, " ") + , (14480, 0, "h") + , (14481, 0, "e") + , (14482, 0, "i") + , (14483, 0, "g") + , (14484, 0, "h") + , (14485, 0, "t") + , (14486, 0, ":") + , (14487, 0, " ") + , (14488, 0, "8") + , (14488, 1, "") + , (14488, 0, "u") + , (14489, 0, "8") + , (14490, 0, ",") + , (14613, 0, " ") + , (14614, 0, "a") + , (14615, 0, "s") + , (14616, 0, " ") + , (14617, 0, "u") + , (14618, 0, "9") + , (14618, 1, "") + , (14618, 0, "8") + , (14605, 8, "o") + , (14606, 0, "f") + , (14607, 0, "f") + , (14608, 0, "s") + , (14609, 0, "e") + , (14610, 0, "t") + , (14611, 6, "") + , (38308, 0, ".") + , (38309, 0, "m") + , (38310, 0, "o") + , (38311, 0, "v") + , (38312, 0, "e") + , (38309, 4, "move_to_item_start(height: u8, offset: usize)") + , (38328, 10, "s") + , (38329, 0, "e") + , (38330, 0, "l") + , (38331, 0, "f") + , (38332, 0, ".") + , (38333, 0, "h") + , (38334, 0, "e") + , (38335, 0, "i") + , (38336, 0, "g") + , (38336, 1, "") + , (38335, 1, "") + , (38334, 1, "") + , (38333, 1, "") + , (38333, 0, "n") + , (38334, 0, "o") + , (38335, 0, "d") + , (38336, 0, "e") + , (38337, 0, ".") + , (38333, 5, "h") + , (38334, 0, "e") + , (38335, 0, "a") + , (38336, 0, "d") + , (38337, 0, ".") + , (38338, 0, "h") + , (38339, 0, "e") + , (38340, 0, "i") + , (38338, 3, "height") + , (38346, 33, "o") + , (38347, 0, "f") + , (38348, 0, "f") + , (38349, 0, "s") + , (38350, 0, "e") + , (38351, 0, "t") + , (38352, 0, ")") + , (38353, 0, ";") + , (38811, 0, "// ") + , (38841, 0, "w") + , (38841, 1, "") + , (38744, 0, "// ") + , (38814, 3, "") + , (38731, 0, "\n ") + , (38732, 12, "") + , ( 38731 + , 0 + , "\n let (mut c2, _) = self.iter_at_userpos(userpos);" + ) + , (38683, 0, "// ") + , (38793, 0, " ") + , (38794, 0, " ") + , (38795, 0, "+") + , (38795, 1, "") + , (38794, 1, "") + , (38794, 0, "+") + , (38795, 0, " ") + , (38796, 0, "C") + , (38797, 0, ":") + , (38798, 0, ":") + , (38799, 0, "userlen_of_slice(items: &[Self::Item])") + , (38816, 20, "c") + , (38817, 0, "o") + , (38818, 0, "n") + , (38819, 0, "t") + , (38820, 0, "e") + , (38821, 0, "n") + , (38822, 0, "t") + , (38823, 0, "s") + , (38551, 0, "\n ") + , (38568, 0, "/") + , (38569, 0, "/") + , (38570, 0, "/") + , (38571, 0, " ") + , (38571, 1, "") + , (38571, 0, " ") + , (38571, 1, "") + , (38570, 1, "") + , (38570, 0, " ") + , (38571, 0, "T") + , (38572, 0, "h") + , (38573, 0, "i") + , (38574, 0, "s") + , (38575, 0, " ") + , (38576, 0, "n") + , (38577, 0, "e") + , (38578, 0, "e") + , (38579, 0, "d") + , (38580, 0, "s") + , (38581, 0, " ") + , (38582, 0, "t") + , (38583, 0, "o") + , (38584, 0, " ") + , (38585, 0, "h") + , (38586, 0, "o") + , (38587, 0, "l") + , (38588, 0, "d") + , (38589, 0, " ") + , (38590, 0, "t") + , (38591, 0, "h") + , (38592, 0, "e") + , (38593, 0, " ") + , (38594, 0, "c") + , (38595, 0, "u") + , (38596, 0, "r") + , (38597, 0, "s") + , (38598, 0, "o") + , (38599, 0, "r") + , (38600, 0, " ") + , (38601, 0, "s") + , (38602, 0, "t") + , (38603, 0, "e") + , (38604, 0, "a") + , (38605, 0, "d") + , (38606, 0, "y") + , (38607, 0, ".") + , (38692, 347, "") + , (38033, 0, "\n ") + , ( 38050 + , 0 + , " if cfg!(debug_assertions) {\n // let (mut c2, _) = self.iter_at_userpos(userpos);\n let (mut c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));\n\n // c2.advance_by_items(contents.len(), self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after insert\"); }\n }\n" + ) + , (38397, 0, " ") + , (38387, 8, " ") + , (38314, 12, " ") + , (38244, 12, " ") + , (38243, 0, " ") + , (38150, 12, " ") + , (38086, 12, " ") + , (38034, 24, " ") + , (38436, 1, "") + , (38251, 8, "") + , (38250, 1, "") + , (38251, 77, "") + , (38250, 1, "") + , (38175, 4, "") + , (38033, 0, "\n ") + , (38362, 8, "") + , (38034, 16, "") + , (38034, 312, "") + , (37003, 0, "\n ") + , (37008, 0, "\n ") + , (37004, 4, "") + , (37009, 0, "f") + , (37010, 0, "n") + , (37011, 0, " ") + , (37012, 0, "d") + , (37013, 0, "b") + , (37014, 0, "g") + , (37015, 0, "_") + , (37016, 0, "c") + , (37017, 0, "h") + , (37018, 0, "e") + , (37019, 0, "c") + , (37020, 0, "k") + , (37021, 0, "_") + , (37022, 0, "c") + , (37023, 0, "u") + , (37024, 0, "r") + , (37025, 0, "s") + , (37026, 0, "o") + , (37027, 0, "r") + , (37028, 0, "_") + , (37029, 0, "a") + , (37030, 0, "t") + , (37031, 0, "(") + , (37032, 0, "&") + , (37033, 0, "s") + , (37034, 0, "e") + , (37035, 0, "l") + , (37036, 0, "f") + , (37037, 0, ",") + , (37038, 0, " ") + , (37039, 0, "m") + , (37039, 1, "") + , (37039, 0, "&") + , (37040, 0, "m") + , (37041, 0, "u") + , (37042, 0, "t") + , (37043, 0, " ") + , (37044, 0, "c") + , (37045, 0, "u") + , (37046, 0, "r") + , (37047, 0, "s") + , (37048, 0, "o") + , (37049, 0, "r") + , (37050, 0, ":") + , (37051, 0, " ") + , (37052, 0, "C") + , (37052, 1, "") + , (37051, 1, "") + , (37039, 5, "") + , (37046, 0, " ") + , (37047, 0, "&") + , (37048, 0, "c") + , (37049, 0, "u") + , (37050, 0, "r") + , (37050, 1, "") + , (37049, 1, "") + , (37048, 1, "") + , (37048, 0, "C") + , (37049, 0, "u") + , (37050, 0, "r") + , (37051, 0, "s") + , (37052, 0, "o") + , (37053, 0, "r") + , (37054, 0, "<") + , (37054, 1, "") + , (37054, 0, ")") + , (37055, 0, " ") + , (37056, 0, "{") + , (37057, 0, "\n ") + , (37066, 0, "\n ") + , (37058, 8, "") + , (37059, 8, " }") + , (37054, 0, ",") + , (37055, 0, " ") + , (37056, 0, "u") + , (37057, 0, "s") + , (37058, 0, "e") + , (37059, 0, "r") + , (37060, 0, "p") + , (37061, 0, "o") + , (37054, 0, "<") + , (37055, 0, "C") + , (37056, 0, ">") + , (37065, 0, "s") + , (37066, 0, "L") + , (37067, 0, " ") + , (37067, 1, "") + , (37066, 1, "") + , (37065, 1, "") + , (37065, 0, ":") + , (37066, 0, " ") + , (37066, 1, "") + , (37065, 1, "") + , (37064, 1, "") + , (37064, 0, "s") + , (37065, 0, ":") + , (37065, 1, "") + , (37064, 1, "") + , (37064, 0, "o") + , (37065, 0, "s") + , (37066, 0, ":") + , (37067, 0, " ") + , (37068, 0, "u") + , (37069, 0, "s") + , (37070, 0, "i") + , (37071, 0, "z") + , (37072, 0, "e") + , ( 37077 + , 0 + , "\n if cfg!(debug_assertions) {\n // let (mut c2, _) = self.iter_at_userpos(userpos);\n let (c2, _) = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));\n if &cursor != &c2 { panic!(\"Invalid cursor after insert\"); }\n }" + ) + , (37372, 16, " ") + , (37291, 20, " ") + , (37194, 20, " ") + , (37122, 20, " ") + , (37078, 16, " ") + , (37076, 1, "") + , (37231, 32, "") + , (37288, 13, "") + , (37246, 0, " ") + , (37246, 0, "a") + , (37247, 0, "s") + , (37248, 0, "s") + , (37249, 0, "e") + , (37250, 0, "r") + , (37246, 5, "assert_eq!") + , (37256, 0, "(") + , (37257, 1, "") + , (37257, 1, "") + , (37257, 1, "") + , (37257, 1, "") + , (37271, 30, "") + , (37271, 0, ")") + , (37272, 0, ";") + , (37271, 2, "") + , (37271, 0, " { panic!(\"Invalid cursor\"); }") + , (37257, 0, " if ") + , (37256, 1, "") + , (37246, 10, "asser") + , (37246, 5, "") + , (37246, 0, "asser") + , (37246, 5, "assert_eq!") + , (37256, 0, "(") + , (37257, 4, "") + , (37271, 30, "") + , (37271, 0, ");") + , (37257, 1, "") + , (37267, 1, "") + , (37267, 0, "&") + , (37257, 0, "&") + , (37264, 3, "") + , (37264, 0, ",") + , (37257, 1, "") + , (38317, 0, " ") + , (38333, 0, "d") + , (38334, 0, "b") + , (38333, 2, "s") + , (38334, 0, "e") + , (38335, 0, "l") + , (38336, 0, "f") + , (38337, 0, ".") + , (38338, 0, "d") + , (38339, 0, "b") + , (38340, 0, "g") + , (38338, 3, "dbg_check_cursor_at(cursor: &Cursor, userpos: usize)") + , (38358, 18, "&") + , (38359, 0, "c") + , (38360, 0, "u") + , (38361, 0, "r") + , (38362, 0, "s") + , (38363, 0, "o") + , (38364, 0, "r") + , (38367, 14, "userpos + C::userlen_of_slice(contents)") + , (38407, 0, ";") + , (38316, 0, "\n ") + , (38960, 40, "") + , (38317, 16, "") + , ( 38944 + , 0 + , "self.dbg_check_cursor_at(&cursor, userpos + C::userlen_of_slice(contents));" + ) + , (39019, 0, "\n ") + , (39019, 17, "") + , (39019, 0, "\n ") + , (39019, 17, "") + , (38927, 0, "\n ") + , (39036, 0, "\n ") + , (38928, 16, "") + , (39037, 0, "\n ") + , (39021, 16, "") + , (39038, 0, "/") + , (39039, 0, "/") + , (39040, 0, " ") + , (39022, 19, "") + , (39021, 1, "") + , (39020, 1, "") + , (38928, 0, "\n ") + , (38945, 0, "/") + , (38946, 0, "/") + , (38947, 0, " ") + , (38948, 0, "T") + , (38949, 0, "h") + , (38950, 0, "e") + , (38951, 0, "r") + , (38952, 0, "e") + , (38953, 0, "'") + , (38954, 0, "s") + , (38955, 0, " ") + , (38956, 0, "n") + , (38957, 0, "o") + , (38958, 0, " ") + , (38959, 0, "w") + , (38960, 0, "a") + , (38961, 0, "y") + , (38962, 0, " ") + , (38963, 0, "t") + , (38964, 0, "o") + , (38965, 0, " ") + , (38966, 0, "k") + , (38967, 0, "e") + , (38968, 0, "e") + , (38969, 0, "p") + , (38970, 0, " ") + , (38971, 0, "t") + , (38972, 0, "h") + , (38973, 0, "e") + , (38974, 0, " ") + , (38975, 0, "c") + , (38976, 0, "u") + , (38977, 0, "r") + , (38978, 0, "s") + , (38979, 0, "o") + , (38980, 0, "r") + , (38981, 0, " ") + , (38982, 0, "s") + , (38983, 0, "t") + , (38984, 0, "e") + , (38985, 0, "a") + , (38986, 0, "d") + , (38987, 0, "y") + , (38988, 0, " ") + , (38989, 0, "f") + , (38990, 0, "o") + , (38991, 0, "r") + , (38992, 0, " ") + , (38993, 0, "t") + , (38994, 0, "h") + , (38995, 0, " ") + , (38996, 0, "e") + , (38997, 0, "f") + , (38998, 0, "i") + , (38998, 1, "") + , (38997, 1, "") + , (38996, 1, "") + , (38995, 1, "") + , (38995, 0, "e") + , (38996, 0, " ") + , (38997, 0, "f") + , (38998, 0, "i") + , (38999, 0, "n") + , (39000, 0, "a") + , (39001, 0, "l") + , (39002, 0, " ") + , (39003, 0, "i") + , (39004, 0, "n") + , (39005, 0, "s") + , (39006, 0, "e") + , (39007, 0, "r") + , (39008, 0, "t") + , (38959, 0, " ") + , (38960, 0, "c") + , (38961, 0, "e") + , (38962, 0, "a") + , (38962, 1, "") + , (38961, 1, "") + , (38960, 1, "") + , (38959, 1, "") + , (38959, 0, "c") + , (38960, 0, "o") + , (38961, 0, "l") + , (38962, 0, "e") + , (38963, 0, "a") + , (38964, 0, "n") + , (38965, 0, " ") + , (38959, 7, "c") + , (38960, 0, "l") + , (38961, 0, "e") + , (38962, 0, "a") + , (38963, 0, "n") + , (38964, 0, " ") + , (39015, 0, ".") + , (39016, 0, " ") + , (39017, 0, "W") + , (39018, 0, "e") + , (39019, 0, "'") + , (39020, 0, "l") + , (39021, 0, "l") + , (39022, 0, " ") + , (39023, 0, "j") + , (39024, 0, "u") + , (39025, 0, "s") + , (39026, 0, "t") + , (39027, 0, " ") + , (39028, 0, "m") + , (39029, 0, "a") + , (39030, 0, "k") + , (39031, 0, "e") + , (39032, 0, " ") + , (39033, 0, "s") + , (39034, 0, "u") + , (39035, 0, "r") + , (39036, 0, "e") + , (39037, 0, " ") + , (39038, 0, "t") + , (39039, 0, "h") + , (39040, 0, "e") + , (39041, 0, " ") + , (39042, 0, "c") + , (39043, 0, "u") + , (39044, 0, "r") + , (39045, 0, "s") + , (39046, 0, "o") + , (39047, 0, "r") + , (39048, 0, " ") + , (39049, 0, "i") + , (39050, 0, "s") + , (39051, 0, " ") + , (39052, 0, "i") + , (39053, 0, "n") + , (39054, 0, " ") + , (39055, 0, "t") + , (39056, 0, "h") + , (39057, 0, "e") + , (39058, 0, " ") + , (39059, 0, "r") + , (39060, 0, "i") + , (39061, 0, "g") + , (39062, 0, "h") + , (39063, 0, "t") + , (39064, 0, " ") + , (39065, 0, "p") + , (39066, 0, "o") + , (39067, 0, "s") + , (39068, 0, "i") + , (39069, 0, "t") + , (39070, 0, "i") + , (39071, 0, "o") + , (39072, 0, "n") + , (39073, 0, " ") + , (39074, 0, "b") + , (39075, 0, "e") + , (39076, 0, "f") + , (39077, 0, "o") + , (39078, 0, "r") + , (39079, 0, "e") + , (39080, 0, " ") + , (39081, 0, "t") + , (39082, 0, "h") + , (39083, 0, "a") + , (39084, 0, "t") + , (39085, 0, " ") + , (39086, 0, "c") + , (39087, 0, "a") + , (39088, 0, "l") + , (39089, 0, "l") + , (39090, 0, " ") + , (39091, 0, "f") + , (39092, 0, "o") + , (39093, 0, "r") + , (39094, 0, " ") + , (39095, 0, "n") + , (39096, 0, "o") + , (39097, 0, "w") + , (39098, 0, ".") + , ( 38929 + , 170 + , " // There's no clean way to keep the cursor steady for the final\n // insert. We'll just make sure the cursor is in the right\n // position before that call for now." + ) + , (39229, 0, "\n ") + , (39230, 16, "") + , (37268, 0, ",") + , (37269, 0, " ") + , (37270, 0, "\"") + , (37271, 0, "A") + , (37272, 0, "S") + , (37273, 0, "d") + , (37274, 0, "f") + , (37275, 0, "\"") + , (15631, 0, "\n") + , (15632, 0, "\n") + , (15633, 0, "i") + , (15634, 0, "m") + , (15635, 0, "p") + , (15636, 0, "l") + , (15637, 0, "<") + , (15638, 0, "C") + , (15639, 0, ":") + , (15640, 0, " ") + , (15641, 0, "L") + , (15642, 0, "i") + , (15643, 0, "s") + , (15641, 3, "ListConfig") + , (15651, 0, ">") + , (15652, 0, " ") + , (15653, 0, "f") + , (15654, 0, "m") + , (15655, 0, "t") + , (15656, 0, ":") + , (15657, 0, ":") + , (15658, 0, "D") + , (15659, 0, "e") + , (15660, 0, "b") + , (15661, 0, "u") + , (15662, 0, "g") + , (15663, 0, " ") + , (15664, 0, "f") + , (15665, 0, "o") + , (15666, 0, "r") + , (15667, 0, " ") + , (15668, 0, "C") + , (15669, 0, "u") + , (15670, 0, "r") + , (15671, 0, "s") + , (15672, 0, "o") + , (15673, 0, "r") + , (15674, 0, "<") + , (15675, 0, "C") + , (15676, 0, ">") + , (15677, 0, " ") + , (15678, 0, "{") + , (15679, 0, "\n ") + , (15680, 4, "}") + , (15679, 0, "\n ") + , (15680, 4, "") + , (843, 0, "\n") + , (844, 0, "\n") + , (845, 0, "u") + , (846, 0, "s") + , (847, 0, "e") + , (848, 0, " ") + , (849, 0, "s") + , (850, 0, "t") + , (851, 0, "d") + , (852, 0, ":") + , (853, 0, ":") + , (854, 0, "f") + , (855, 0, "m") + , (856, 0, "t") + , (857, 0, ";") + , (11383, 7, "") + , (15688, 0, " ") + , (15692, 0, "f") + , (15693, 0, "n") + , (15694, 0, " ") + , (15695, 0, "f") + , (15696, 0, "m") + , (15697, 0, "t") + , (15698, 0, "(") + , (15699, 0, "&") + , (15700, 0, "s") + , (15701, 0, "e") + , (15702, 0, "l") + , (15703, 0, "f") + , (15704, 0, ",") + , (15705, 0, " ") + , (15706, 0, "f: &mut fmt::Formatter<'_>") + , (15732, 0, ")") + , (15733, 0, " ") + , (15734, 0, "-") + , (15735, 0, ">") + , (15736, 0, " ") + , (15737, 0, "f") + , (15738, 0, "m") + , (15739, 0, "t") + , (15740, 0, ":") + , (15741, 0, ":") + , (15742, 0, "R") + , (15743, 0, "e") + , (15744, 0, "s") + , (15745, 0, "u") + , (15742, 4, "Result") + , (15748, 0, " ") + , (15749, 0, "{") + , (15750, 0, "\n ") + , (15759, 0, "\n ") + , (15751, 8, "") + , (15752, 8, " }") + , (15751, 0, " ") + , (15759, 0, "f") + , (15760, 0, ".") + , (15761, 0, "d") + , (15762, 0, "e") + , (15763, 0, "b") + , (15764, 0, "u") + , (15761, 4, "debug_struct(name: &str)") + , (15784, 0, "\"") + , (15774, 0, "\"") + , (15775, 10, "C") + , (15776, 0, "u") + , (15777, 0, "r") + , (15778, 0, "s") + , (15779, 0, "o") + , (15780, 0, "r") + , (15783, 0, "\n ") + , (15792, 0, " ") + , (15796, 0, ".") + , (15797, 0, "f") + , (15798, 0, "i") + , (15799, 0, "e") + , (15800, 0, "l") + , (15801, 0, "d") + , (15802, 0, "(") + , (15803, 0, "\"") + , (15804, 0, "u") + , (15805, 0, "s") + , (15806, 0, "e") + , (15807, 0, "r") + , (15808, 0, "p") + , (15809, 0, "o") + , (15810, 0, "s") + , (15811, 0, "\"") + , (15812, 0, ",") + , (15813, 0, " ") + , (15814, 0, "&") + , (15815, 0, "s") + , (15816, 0, "e") + , (15817, 0, "l") + , (15818, 0, "f") + , (15819, 0, ".") + , (15820, 0, "u") + , (15821, 0, "s") + , (15822, 0, "e") + , (15823, 0, "r") + , (15824, 0, "p") + , (15825, 0, "o") + , (15826, 0, "s") + , (15827, 0, ")") + , (15828, 0, "\n ") + , (15841, 0, ".") + , (15842, 0, "f") + , (15843, 0, "i") + , (15844, 0, "n") + , (15845, 0, "i") + , (15846, 0, "s") + , (15847, 0, "h") + , (15848, 0, "(") + , (15849, 0, ")") + , (15848, 0, "_") + , (15849, 0, "n") + , (15850, 0, "o") + , (15842, 9, "finish_non_exhaustive()") + , (15865, 1, "") + , (15865, 1, "") + , (15848, 15, "") + , (15784, 0, " .field(\"userpos\", &self.userpos)\n") + , (15849, 7, "i") + , (15850, 0, "n") + , (15851, 0, "d") + , (15852, 0, "e") + , (15853, 0, "x") + , (15870, 0, "_") + , (15863, 8, "l") + , (15864, 0, "o") + , (15865, 0, "c") + , (15866, 0, "a") + , (15867, 0, "l") + , (15863, 5, "local_index") + , (15849, 5, "l") + , (15850, 0, "o") + , (15851, 0, "c") + , (15852, 0, "a") + , (15853, 0, "l") + , (15854, 0, "_") + , (15855, 0, "i") + , (15856, 0, "n") + , (15857, 0, "d") + , (15858, 0, "e") + , (15859, 0, "x") + , (15881, 0, "\n ") + , (15894, 0, "/") + , (15895, 0, "/") + , (15896, 0, " ") + , (15882, 15, "") + , (15881, 1, "") + , (37548, 8, "") + , (37353, 0, ",") + , (37354, 0, " ") + , (37355, 0, "p") + , (37356, 0, "l") + , (37357, 0, "u") + , (37358, 0, "s") + , (37359, 0, "_") + , (37360, 0, "i") + , (37361, 0, "n") + , (37362, 0, "d") + , (37362, 1, "") + , (37361, 1, "") + , (37360, 1, "") + , (37360, 0, "i") + , (37361, 0, "t") + , (37362, 0, "e") + , (37363, 0, "m") + , (37364, 0, "s") + , (37365, 0, ":") + , (37366, 0, " ") + , (37367, 0, "u") + , (37368, 0, "s") + , (37369, 0, "i") + , (37370, 0, "e") + , (37370, 1, "") + , (37370, 0, "z") + , (37371, 0, "e") + , (37532, 0, "\n ") + , (37545, 0, "i") + , (37546, 0, "f") + , (37547, 0, " ") + , (37548, 0, "(") + , (37549, 0, "p") + , (37550, 0, "l") + , (37551, 0, "u") + , (37552, 0, "s") + , (37548, 5, "p") + , (37549, 0, "l") + , (37550, 0, "u") + , (37548, 3, "plus_items") + , (37558, 0, " ") + , (37559, 0, ">") + , (37560, 0, " ") + , (37561, 0, "0") + , (37562, 0, " ") + , (37563, 0, "{") + , (37564, 0, "\n ") + , (37565, 16, "") + , (37493, 0, "m") + , (37494, 0, "u") + , (37495, 0, "t") + , (37496, 0, " ") + , (37569, 0, " ") + , (37585, 0, "c") + , (37586, 0, "2") + , (37587, 0, ".") + , (37588, 0, "advance_by_items(num: usize, height: u8)") + , (37605, 10, "p") + , (37606, 0, "l") + , (37607, 0, "u") + , (37608, 0, "s") + , (37609, 0, "_") + , (37610, 0, "i") + , (37611, 0, "t") + , (37612, 0, "e") + , (37613, 0, "m") + , (37614, 0, "s") + , (37617, 10, "s") + , (37618, 0, "e") + , (37619, 0, "l") + , (37620, 0, "f") + , (37621, 0, ".") + , (37622, 0, "h") + , (37623, 0, "e") + , (37624, 0, "i") + , (37625, 0, "g") + , (37622, 4, "h") + , (37623, 0, "e") + , (37624, 0, "a") + , (37625, 0, "d") + , (37626, 0, ".") + , (37627, 0, "h") + , (37628, 0, "e") + , (37629, 0, "i") + , (37627, 3, "height") + , (37634, 0, ";") + , (37537, 31, "") + , (37536, 1, "") + , (37537, 16, " ") + , (38741, 32, "") + , (38741, 0, ",") + , (38742, 0, " ") + , (38743, 0, "c") + , (38744, 0, "o") + , (38745, 0, "n") + , (38746, 0, "t") + , (38747, 0, "e") + , (38748, 0, "n") + , (38749, 0, "t") + , (38750, 0, "s") + , (38751, 0, ".") + , (38752, 0, "l") + , (38753, 0, "e") + , (38754, 0, "n") + , (38755, 0, "(") + , (38756, 0, ")") + , (39504, 75, "self.dbg_check_cursor_at(&cursor, userpos, contents.len());") + , (7411, 0, "O") + , (7412, 0, "p") + , (7413, 0, "t") + , (7414, 0, "i") + , (7415, 0, "o") + , (7416, 0, "n") + , (7417, 0, "<") + , (7426, 0, ">") + , (16409, 0, "\n ") + , (16414, 0, "\n ") + , (16410, 4, "") + , (16415, 0, "p") + , (16416, 0, "u") + , (16417, 0, "b") + , (16418, 0, " ") + , (16419, 0, "f") + , (16420, 0, "n") + , (16421, 0, " ") + , (16422, 0, "I") + , (16422, 1, "") + , (16422, 0, "i") + , (16423, 0, "n") + , (16424, 0, "i") + , (16425, 0, "t") + , (16426, 0, "_") + , (16427, 0, "r") + , (16428, 0, "a") + , (16429, 0, "n") + , (16430, 0, "d") + , (16431, 0, "_") + , (16432, 0, "f") + , (16433, 0, "r") + , (16433, 1, "") + , (16432, 1, "") + , (16431, 1, "") + , (16430, 1, "") + , (16429, 1, "") + , (16428, 1, "") + , (16428, 0, "n") + , (16429, 0, "g") + , (16430, 0, "_") + , (16431, 0, "f") + , (16432, 0, "r") + , (16433, 0, "o") + , (16434, 0, "m") + , (16435, 0, "_") + , (16436, 0, "s") + , (16437, 0, "e") + , (16438, 0, "e") + , (16439, 0, "d") + , (16440, 0, "(") + , (16441, 0, "s") + , (16442, 0, "e") + , (16443, 0, "e") + , (16444, 0, "d") + , (16445, 0, ":") + , (16446, 0, " ") + , (16447, 0, "u") + , (16448, 0, "6") + , (16449, 0, "4") + , (16450, 0, ")") + , (16451, 0, " ") + , (16452, 0, "-") + , (16452, 1, "") + , (16452, 0, "{") + , (16453, 0, "\n ") + , (16462, 0, "\n ") + , (16454, 8, "") + , (16455, 8, " }") + , (16079, 28, "") + , (16079, 0, "N") + , (16080, 0, "o") + , (16081, 0, "n") + , (16082, 0, "e") + , (16417, 0, "&") + , (16418, 0, "m") + , (16419, 0, "u") + , (16420, 0, "t") + , (16421, 0, " ") + , (16422, 0, "s") + , (16423, 0, "e") + , (16424, 0, "l") + , (16425, 0, "f") + , (16426, 0, ",") + , (16427, 0, " ") + , (16441, 0, "SmallRng::seed_from_u64(123)") + , (16441, 0, " ") + , (16449, 0, "s") + , (16450, 0, "e") + , (16451, 0, "l") + , (16452, 0, "f") + , (16453, 0, ".") + , (16454, 0, "r") + , (16455, 0, "n") + , (16456, 0, "g") + , (16457, 0, " ") + , (16458, 0, "=") + , (16459, 0, " ") + , (16460, 0, "S") + , (16461, 0, "o") + , (16462, 0, "m") + , (16463, 0, "e") + , (16464, 0, "(") + , (16493, 0, ")") + , (16492, 0, "=") + , (16493, 0, "=") + , (16494, 0, "=") + , (16495, 0, "=") + , (16495, 1, "") + , (16494, 1, "") + , (16493, 1, "") + , (16492, 1, "") + , (16491, 1, "") + , (16490, 1, "") + , (16489, 1, "") + , (16489, 0, "s") + , (16490, 0, "e") + , (16491, 0, "e") + , (16492, 0, "d") + , (16495, 0, "\n ") + , (16504, 0, "S") + , (16505, 0, "m") + , (16506, 0, "a") + , (16507, 0, "l") + , (16508, 0, "l") + , (16504, 5, "SmallRng") + , (16512, 0, ":") + , (16513, 0, ":") + , (16514, 0, "f") + , (16515, 0, "r") + , (16516, 0, "o") + , (16517, 0, "m") + , (16518, 0, "_") + , (16519, 0, "e") + , (16520, 0, "n") + , (16521, 0, "t") + , (16522, 0, "r") + , (16523, 0, "o") + , (16524, 0, "p") + , (16525, 0, "y") + , (16526, 0, "(") + , (16527, 0, ")") + , (16528, 0, ";") + , (16495, 0, ";") + , (23527, 0, "\n ") + , (23536, 0, "i") + , (23537, 0, "f") + , (23538, 0, " ") + , (23539, 0, "s") + , (23540, 0, "e") + , (23541, 0, "l") + , (23542, 0, "f") + , (23543, 0, ".") + , (23544, 0, "r") + , (23545, 0, "n") + , (23546, 0, "g") + , (23547, 0, " ") + , (23547, 1, "") + , (23547, 0, ".") + , (23548, 0, "i") + , (23549, 0, "s") + , (23550, 0, "_") + , (23548, 3, "is_none()") + , (23557, 0, "n") + , (23557, 1, "") + , (23557, 0, " ") + , (23558, 0, "{") + , (23559, 0, "\n ") + , (23572, 0, "s") + , (23573, 0, "e") + , (23574, 0, "l") + , (23575, 0, "f") + , (23576, 0, ".") + , (23577, 0, "r") + , (23578, 0, "n") + , (23579, 0, "g") + , (23580, 0, " ") + , (23581, 0, "=") + , (23582, 0, " ") + , (23583, 0, "S") + , (23584, 0, "o") + , (23585, 0, "n") + , (23586, 0, "e") + , (23587, 0, "(") + , (16497, 33, "") + , (16496, 1, "") + , (23551, 1, "") + , (23551, 0, "m") + , (23554, 0, " SmallRng::from_entropy();") + , (23561, 1, "") + , (23560, 1, "") + , (23559, 1, "") + , (23558, 1, "") + , (23557, 1, "") + , (23556, 1, "") + , (23555, 1, "") + , (23554, 1, "") + , (23578, 1, "") + , (23578, 0, ")") + , (23579, 0, ";") + , (23580, 0, "\n ") + , (23581, 12, " }") + , (23590, 0, "\n ") + , (23648, 0, ".") + , (23591, 8, "") + , (23641, 0, "u") + , (23642, 0, "n") + , (23643, 0, "w") + , (23644, 0, "r") + , (23641, 4, "unwrap()") + , (23648, 1, "") + , (23647, 1, "") + , (23646, 1, "") + , (23645, 1, "") + , (23644, 1, "") + , (23643, 1, "") + , (23642, 1, "") + , (23641, 1, "") + , (23640, 1, "") + , (23640, 0, ".") + , (23641, 0, "a") + , (23642, 0, "s") + , (23641, 2, "as_deref_mut()") + , (23655, 0, ".") + , (23656, 0, "u") + , (23657, 0, "n") + , (23658, 0, "w") + , (23659, 0, "r") + , (23660, 0, "a") + , (23656, 5, "unwrap()") + , (23649, 1, "") + , (23648, 1, "") + , (23647, 1, "") + , (23646, 1, "") + , (23645, 1, "") + , (23644, 1, "") + , (23591, 0, "\n ") + , (23600, 0, "/") + , (23601, 0, "/") + , (23602, 0, " ") + , (23603, 0, "r") + , (23604, 0, "n") + , (23605, 0, "g") + , (23606, 0, " ") + , (23607, 0, "c") + , (23608, 0, "o") + , (23609, 0, "d") + , (23610, 0, "e") + , (23611, 0, " ") + , (23612, 0, "h") + , (23613, 0, "e") + , (23614, 0, "r") + , (23615, 0, "e") + , (23616, 0, " ") + , (23617, 0, "i") + , (23618, 0, "s") + , (23619, 0, " ") + , (23620, 0, "a") + , (23621, 0, " ") + , (23622, 0, "b") + , (23623, 0, "i") + , (23624, 0, "t") + , (23625, 0, " ") + , (23626, 0, "u") + , (23627, 0, "g") + , (23628, 0, "l") + , (23629, 0, "y") + , (23630, 0, ".") + , (23631, 0, " ") + , (22906, 0, "\n ") + , (22911, 0, "\n ") + , (22907, 4, "") + , (22912, 0, "f") + , (22913, 0, "n") + , (22914, 0, " ") + , (22915, 0, "g") + , (22916, 0, "e") + , (22917, 0, "t") + , (22918, 0, "_") + , (22919, 0, "r") + , (22920, 0, "n") + , (22921, 0, "g") + , (22922, 0, "(") + , (22923, 0, "&") + , (22924, 0, "m") + , (22925, 0, "u") + , (22926, 0, "t") + , (22927, 0, " ") + , (22928, 0, "s") + , (22929, 0, "e") + , (22930, 0, "l") + , (22931, 0, "f") + , (22932, 0, ")") + , (22933, 0, " ") + , (22934, 0, "-") + , (22935, 0, ">") + , (22936, 0, " ") + , (22937, 0, "&") + , (22938, 0, "m") + , (22939, 0, "u") + , (22940, 0, "t") + , (22941, 0, " ") + , (22942, 0, "S") + , (22943, 0, "m") + , (22944, 0, "a") + , (22942, 3, "SmallRng") + , (22950, 0, " ") + , (22951, 0, "{") + , (22952, 0, "\n ") + , (22961, 0, "\n ") + , (22953, 8, "") + , (22954, 8, " }") + , ( 22953 + , 0 + , " if self.rng.is_none() {\n self.rng = Some(SmallRng::from_entropy());\n }\n\n // rng code here is a bit ugly. \n let new_node = Node::alloc(&mut self.rng.as_mut().unwrap());\n" + ) + , (23160, 1, "") + , (23159, 1, "") + , (23158, 1, "") + , (23100, 32, "") + , (23720, 139, "") + , (23785, 1, "") + , (23784, 1, "") + , (23783, 1, "") + , (23782, 1, "") + , (23781, 1, "") + , (23780, 1, "") + , (23779, 1, "") + , (23778, 1, "") + , (23777, 1, "") + , (23776, 1, "") + , (23775, 1, "") + , (23774, 1, "") + , (23773, 1, "") + , (23772, 1, "") + , (23771, 1, "") + , (23770, 1, "") + , (23769, 1, "") + , (23768, 1, "") + , (23767, 1, "") + , (23766, 1, "") + , (23765, 1, "") + , (23764, 1, "") + , (23763, 1, "") + , (23762, 1, "") + , (23761, 1, "") + , (23760, 1, "") + , (23759, 1, "") + , (23758, 1, "") + , (23757, 1, "") + , (23756, 1, "") + , (23755, 1, "") + , (23755, 0, "s") + , (23756, 0, "e") + , (23757, 0, "l") + , (23758, 0, "f") + , (23759, 0, ".") + , (23760, 0, "g") + , (23761, 0, "e") + , (23762, 0, "t") + , (23763, 0, "_") + , (23764, 0, "r") + , (23765, 0, "n") + , (23766, 0, "g") + , (23760, 7, "get_rng()") + , (22952, 0, "\n ") + , (22961, 0, "/") + , (22962, 0, "/") + , (22963, 0, " ") + , (22964, 0, "I") + , (22965, 0, "'") + , (22966, 0, "m") + , (22967, 0, " ") + , (22968, 0, "s") + , (22969, 0, "u") + , (22970, 0, "r") + , (22971, 0, "e") + , (22972, 0, " ") + , (22973, 0, "t") + , (22974, 0, "h") + , (22975, 0, "e") + , (22976, 0, "r") + , (22977, 0, "e") + , (22978, 0, "'") + , (22979, 0, "s") + , (22980, 0, " ") + , (22981, 0, " ") + , (22981, 1, "") + , (22981, 0, "a") + , (22982, 0, " ") + , (22983, 0, "n") + , (22984, 0, "i") + , (22985, 0, "c") + , (22986, 0, "e") + , (22987, 0, "r") + , (22988, 0, " ") + , (22989, 0, "w") + , (22990, 0, "a") + , (22991, 0, "y") + , (22992, 0, " ") + , (22993, 0, "t") + , (22994, 0, "o") + , (22995, 0, " ") + , (22996, 0, "i") + , (22997, 0, "m") + , (22998, 0, "p") + , (22999, 0, "l") + , (23000, 0, "e") + , (23001, 0, "m") + , (23002, 0, "e") + , (23003, 0, "n") + , (23004, 0, "t") + , (23005, 0, " ") + , (23006, 0, "t") + , (23007, 0, "h") + , (23008, 0, "i") + , (23009, 0, "s") + , (23010, 0, ".") + , (23109, 42, "") + , (22907, 243, "") + , ( 16503 + , 0 + , "\n fn get_rng(&mut self) -> &mut SmallRng {\n // I'm sure there's a nicer way to implement this.\n if self.rng.is_none() {\n self.rng = Some(SmallRng::from_entropy());\n }\n self.rng.as_mut().unwrap()\n }\n" + ) + , (1667, 0, "\n") + , (1668, 0, "\n") + , (1669, 0, "t") + , (1670, 0, "y") + , (1671, 0, "p") + , (1672, 0, "e") + , (1673, 0, "d") + , (1674, 0, "e") + , (1675, 0, "f") + , (1676, 0, " ") + , (1669, 8, "s") + , (1670, 0, "t") + , (1671, 0, "r") + , (1672, 0, "u") + , (1673, 0, "c") + , (1674, 0, "t") + , (1675, 0, " ") + , (1676, 0, "I") + , (1677, 0, "t") + , (1678, 0, "e") + , (1679, 0, "m") + , (1680, 0, "M") + , (1681, 0, "a") + , (1682, 0, "r") + , (1683, 0, "k") + , (1684, 0, "e") + , (1685, 0, "r") + , (1686, 0, " ") + , (1687, 0, "{") + , (1688, 0, "\n ") + , (1693, 0, "\n ") + , (1689, 4, "") + , (1690, 4, "}") + , (1689, 0, " ") + , (1693, 0, "p") + , (1694, 0, "t") + , (1695, 0, "r") + , (1696, 0, ":") + , (1697, 0, " ") + , (1669, 0, "p") + , (1670, 0, "u") + , (1671, 0, "b") + , (1672, 0, " ") + , (1702, 0, "*") + , (1703, 0, "m") + , (1704, 0, "u") + , (1705, 0, "t") + , (1706, 0, " ") + , (1707, 0, "N") + , (1708, 0, "o") + , (1709, 0, "d") + , (1710, 0, "e") + , (1690, 0, "<") + , (1691, 0, "C") + , (1692, 0, ":") + , (1693, 0, " ") + , (1694, 0, "L") + , (1695, 0, "i") + , (1696, 0, "s") + , (1697, 0, "t") + , (1698, 0, "C") + , (1699, 0, "o") + , (1700, 0, "n") + , (1694, 7, "ListConfig") + , (1704, 0, ">") + , (1726, 0, "<") + , (1727, 0, "C") + , (1728, 0, ">") + , (1729, 0, ",") + , (1730, 0, "\n ") + , (1735, 0, "_") + , (1736, 0, "p") + , (1737, 0, "h") + , (1738, 0, "a") + , (1739, 0, "n") + , (1740, 0, "t") + , (1741, 0, "o") + , (1742, 0, "n") + , (1743, 0, ":") + , (1744, 0, " ") + , (1745, 0, "P") + , (1746, 0, "h") + , (1747, 0, "a") + , (1748, 0, "n") + , (1749, 0, "t") + , (1750, 0, "o") + , (1751, 0, "m") + , (1752, 0, "D") + , (1753, 0, "a") + , (1754, 0, "t") + , (1755, 0, "a") + , (1691, 0, "'") + , (1692, 0, "a") + , (1693, 0, ",") + , (1694, 0, " ") + , (1760, 0, "<") + , (1761, 0, "'") + , (1762, 0, "a") + , (1763, 0, ">") + , (843, 0, "\n") + , (844, 0, "u") + , (845, 0, "s") + , (846, 0, "e") + , (847, 0, " ") + , (848, 0, "s") + , (849, 0, "t") + , (850, 0, "d") + , (851, 0, ":") + , (852, 0, ":") + , (853, 0, "m") + , (854, 0, "a") + , (855, 0, "r") + , (856, 0, "k") + , (857, 0, "e") + , (858, 0, "r") + , (859, 0, ":") + , (860, 0, ":") + , (861, 0, "P") + , (862, 0, "h") + , (863, 0, "a") + , (864, 0, "n") + , (861, 4, "PhantomData") + , (872, 0, ";") + , (1791, 0, "&") + , (1794, 0, " ") + , (1795, 0, "S") + , (1796, 0, "k") + , (1797, 0, "i") + , (1798, 0, "p") + , (1795, 4, "SkipList") + , (1803, 0, "<") + , (1804, 0, "C") + , (1805, 0, ">") + , (2598, 0, "\n ") + , (2603, 0, "\n ") + , (2599, 4, "") + , (2600, 4, "") + , (2599, 0, "\n ") + , (2600, 4, "") + , (2599, 1, "") + , (2598, 1, "") + , (2598, 0, "\n ") + , (2603, 0, "f") + , (2604, 0, "n") + , (2605, 0, " ") + , (2606, 0, "n") + , (2607, 0, "o") + , (2608, 0, "t") + , (2609, 0, "i") + , (2610, 0, "f") + , (2611, 0, "y") + , (2612, 0, "(") + , (2613, 0, "&") + , (2614, 0, "m") + , (2615, 0, "u") + , (2616, 0, "t") + , (2617, 0, " ") + , (2618, 0, "S") + , (2618, 1, "") + , (2618, 0, "s") + , (2619, 0, "e") + , (2620, 0, "l") + , (2621, 0, "f") + , (2622, 0, ",") + , (2623, 0, " ") + , (2624, 0, "i") + , (2625, 0, "t") + , (2626, 0, "e") + , (2627, 0, "m") + , (2628, 0, ":") + , (2629, 0, " ") + , (2630, 0, "&") + , (2631, 0, "S") + , (2632, 0, "e") + , (2633, 0, "l") + , (2634, 0, "f") + , (2635, 0, ":") + , (2636, 0, ":") + , (2637, 0, "I") + , (2638, 0, "t") + , (2639, 0, "e") + , (2640, 0, "m") + , (2641, 0, ",") + , (2642, 0, " ") + , (2643, 0, "m") + , (2644, 0, "a") + , (2645, 0, "r") + , (2646, 0, "k") + , (2647, 0, "e") + , (2648, 0, "r") + , (2649, 0, ":") + , (2650, 0, " ") + , (2643, 0, "a") + , (2644, 0, "t") + , (2645, 0, "_") + , (2654, 0, "I") + , (2655, 0, "t") + , (2656, 0, "e") + , (2657, 0, "m") + , (2658, 0, "M") + , (2654, 5, "ItemMarker") + , (2664, 0, ")") + , (2665, 0, "{") + , (2665, 1, "") + , (2665, 0, " ") + , (2666, 0, "{") + , (2667, 0, "\n ") + , (2668, 8, " }") + , (2664, 0, "<") + , (2665, 0, "C") + , (2666, 0, ">") + , (2665, 1, "") + , (2665, 0, "S") + , (2666, 0, "e") + , (2667, 0, "l") + , (2668, 0, "f") + , (1937, 0, " ") + , (1938, 0, "+") + , (1939, 0, " ") + , (1940, 0, "S") + , (1941, 0, "i") + , (1942, 0, "z") + , (1943, 0, "e") + , (1944, 0, "d") + , (1769, 0, "// ") + , (1724, 1, "") + , (1723, 1, "") + , (1722, 1, "") + , (1721, 1, "") + , (1721, 0, "'a, ") + , (1769, 3, "") + , (1738, 0, " ") + , (1739, 0, "+") + , (1740, 0, " ") + , (1741, 0, "S") + , (1742, 0, "i") + , (1743, 0, "z") + , (1744, 0, "e") + , (1745, 0, "d") + , (2687, 0, " ") + , (2688, 0, "w") + , (2689, 0, "h") + , (2690, 0, "e") + , (2691, 0, "r") + , (2692, 0, "e") + , (2693, 0, " ") + , (2694, 0, "S") + , (2695, 0, "e") + , (2696, 0, "l") + , (2697, 0, "f") + , (2698, 0, ":") + , (2699, 0, " ") + , (2700, 0, "S") + , (2701, 0, "i") + , (2702, 0, "z") + , (2703, 0, "e") + , (2704, 0, "d") + , (2640, 0, "_") + , (2660, 0, "_") + , (1738, 8, "") + , (1937, 8, "") + , (5518, 0, "\n ") + , (5523, 0, "\n ") + , (5519, 4, "") + , (5524, 0, "/") + , (5525, 0, "/") + , (5526, 0, " ") + , (5527, 0, "T") + , (5528, 0, "h") + , (5529, 0, "e") + , (5530, 0, "r") + , (5531, 0, "e") + , (5532, 0, "'") + , (5533, 0, "s") + , (5534, 0, " ") + , (5535, 0, "a") + , (5536, 0, " ") + , (5537, 0, "l") + , (5538, 0, "o") + , (5539, 0, "t") + , (5540, 0, " ") + , (5541, 0, "o") + , (5542, 0, "f") + , (5543, 0, " ") + , (5544, 0, "w") + , (5545, 0, "a") + , (5546, 0, "y") + , (5547, 0, " ") + , (5547, 1, "") + , (5547, 0, "s") + , (5548, 0, " ") + , (5549, 0, "I") + , (5550, 0, " ") + , (5551, 0, "c") + , (5552, 0, "o") + , (5553, 0, "u") + , (5554, 0, "l") + , (5555, 0, "d") + , (5556, 0, " ") + , (5557, 0, "s") + , (5558, 0, "o") + , (5559, 0, "l") + , (5560, 0, "v") + , (5561, 0, "e") + , (5562, 0, " ") + , (5527, 36, "W") + , (5528, 0, "i") + , (5529, 0, "t") + , (5530, 0, "h") + , (5531, 0, " ") + , (5532, 0, "t") + , (5533, 0, "h") + , (5534, 0, "e") + , (5535, 0, " ") + , (5532, 4, "e") + , (5533, 0, "v") + , (5534, 0, "e") + , (5535, 0, "r") + , (5536, 0, "y") + , (5537, 0, "t") + , (5538, 0, "h") + , (5539, 0, "i") + , (5540, 0, "n") + , (5541, 0, "g") + , (5542, 0, " ") + , (5543, 0, "e") + , (5544, 0, "l") + , (5545, 0, "s") + , (5546, 0, "e") + , (5547, 0, ",") + , (5548, 0, " ") + , (5549, 0, "w") + , (5550, 0, "e") + , (5551, 0, " ") + , (5552, 0, "h") + , (5553, 0, "a") + , (5554, 0, "v") + , (5555, 0, "e") + , (5556, 0, " ") + , (5557, 0, "n") + , (5558, 0, "o") + , (5559, 0, " ") + , (5560, 0, "w") + , (5561, 0, "a") + , (5562, 0, "y") + , (5563, 0, " ") + , (5564, 0, "t") + , (5565, 0, "o") + , (5566, 0, " ") + , (5567, 0, "g") + , (5568, 0, "o") + , (5569, 0, " ") + , (5570, 0, "f") + , (5571, 0, "r") + , (5572, 0, "o") + , (5573, 0, "m") + , (5574, 0, " ") + , (5575, 0, "a") + , (5576, 0, " ") + , (5577, 0, "m") + , (5578, 0, "a") + , (5579, 0, "r") + , (5580, 0, "k") + , (5581, 0, "e") + , (5582, 0, "r") + , (5583, 0, " ") + , (5584, 0, "(") + , (5585, 0, "n") + , (5586, 0, "o") + , (5587, 0, "d") + , (5588, 0, "e") + , (5589, 0, " ") + , (5590, 0, "+") + , (5591, 0, " ") + , (1937, 0, " ") + , (1938, 0, "+") + , (1939, 0, " ") + , (1940, 0, "P") + , (1941, 0, "a") + , (1942, 0, "r") + , (1943, 0, "t") + , (1944, 0, "i") + , (1945, 0, "a") + , (1946, 0, "l") + , (1940, 7, "PartialEq") + , (5539, 23, "W") + , (5539, 0, "A") + , (5540, 0, "l") + , (5541, 0, "o") + , (5542, 0, "n") + , (5543, 0, "e") + , (5544, 0, ",") + , (5545, 0, " ") + , (5539, 7, "") + , (5539, 43, "W") + , (5540, 0, "i") + , (5541, 0, "t") + , (5542, 0, "h") + , (5543, 0, "t") + , (5544, 0, " ") + , (5545, 0, "h") + , (5546, 0, "e") + , (5546, 1, "") + , (5545, 1, "") + , (5544, 1, "") + , (5543, 1, "") + , (5543, 0, " ") + , (5544, 0, "t") + , (5545, 0, "h") + , (5546, 0, "e") + , (5547, 0, " ") + , (5548, 0, "h") + , (5549, 0, "e") + , (5550, 0, "a") + , (5551, 0, "d") + , (5552, 0, "s") + , (5553, 0, " ") + , (5554, 0, "a") + , (5555, 0, "r") + , (5556, 0, "r") + , (5557, 0, "a") + , (5558, 0, "y") + , (5559, 0, "s") + , (5560, 0, " ") + , (5560, 1, "") + , (5559, 1, "") + , (5559, 0, " ") + , (5560, 0, "a") + , (5561, 0, "s") + , (5562, 0, " ") + , (5563, 0, "i") + , (5564, 0, "s") + , (5565, 0, ",") + , (5566, 0, " ") + , (5567, 0, "w") + , (5568, 0, "e") + , (5569, 0, " ") + , (5570, 0, "h") + , (5571, 0, "a") + , (5572, 0, "v") + , (5573, 0, "e") + , (5574, 0, " ") + , (5575, 0, "n") + , (5576, 0, "o") + , (5577, 0, " ") + , (5578, 0, "i") + , (5578, 1, "") + , (5578, 0, "w") + , (5579, 0, "a") + , (5580, 0, "y") + , (5581, 0, " ") + , (5582, 0, "t") + , (5583, 0, "o") + , (5584, 0, " ") + , (5585, 0, "f") + , (5586, 0, "r") + , (5587, 0, "o") + , (5588, 0, "m") + , (5589, 0, " ") + , (5589, 1, "") + , (5588, 1, "") + , (5587, 1, "") + , (5586, 1, "") + , (5585, 1, "") + , (5585, 0, "g") + , (5586, 0, "o") + , (5587, 0, " ") + , (5588, 0, "f") + , (5589, 0, "r") + , (5590, 0, "o") + , (5591, 0, "m") + , (5592, 0, " ") + , (5593, 0, "a") + , (5594, 0, " ") + , (5595, 0, "m") + , (5596, 0, "a") + , (5597, 0, "r") + , (5598, 0, "k") + , (5599, 0, "e") + , (5600, 0, "r") + , (5601, 0, " ") + , (5602, 0, "b") + , (5603, 0, "a") + , (5604, 0, "c") + , (5605, 0, "k") + , (5606, 0, " ") + , (5607, 0, "t") + , (5608, 0, " ") + , (5609, 0, "a") + , (5609, 1, "") + , (5608, 1, "") + , (5608, 0, "o") + , (5609, 0, " ") + , (5610, 0, "a") + , (5611, 0, " ") + , (5612, 0, "c") + , (5613, 0, "u") + , (5614, 0, "r") + , (5615, 0, "s") + , (5616, 0, "o") + , (5617, 0, "r") + , (5618, 0, " ") + , (5619, 0, "(") + , (5620, 0, "w") + , (5621, 0, "h") + , (5622, 0, "i") + , (5623, 0, "c") + , (5624, 0, "h") + , (5625, 0, " ") + , (5626, 0, "i") + , (5627, 0, "s") + , (5628, 0, " ") + , (5629, 0, "r") + , (5630, 0, "e") + , (5631, 0, "q") + , (5632, 0, "u") + , (5633, 0, "i") + , (5634, 0, "r") + , (5635, 0, "e") + , (5636, 0, "d") + , (5637, 0, " ") + , (5638, 0, "t") + , (5639, 0, "o") + , (5640, 0, " ") + , (5641, 0, "i") + , (5642, 0, "n") + , (5643, 0, "s") + , (5644, 0, "e") + , (5645, 0, "r") + , (5646, 0, "t") + , (5647, 0, " ") + , (5648, 0, "a") + , (5649, 0, "t") + , (5650, 0, " ") + , (5651, 0, "t") + , (5652, 0, "h") + , (5653, 0, "a") + , (5654, 0, "t") + , (5655, 0, " ") + , (5656, 0, "l") + , (5657, 0, "o") + , (5658, 0, "c") + , (5659, 0, "a") + , (5660, 0, "t") + , (5661, 0, "i") + , (5662, 0, "o") + , (5663, 0, " ") + , (5664, 0, "i") + , (5665, 0, "n") + , (5665, 1, "") + , (5664, 1, "") + , (5663, 1, "") + , (5663, 0, "n") + , (5664, 0, " ") + , (5665, 0, "i") + , (5666, 0, "n") + , (5667, 0, " ") + , (5668, 0, "t") + , (5669, 0, "h") + , (5670, 0, "e") + , (5671, 0, " ") + , (5672, 0, "l") + , (5673, 0, "i") + , (5674, 0, "s") + , (5675, 0, "t") + , (5676, 0, ")") + , (5677, 0, ".") + , ( 5532 + , 146 + , " // With the heads array as is, we have no way to go from a marker back to a\n // cursor (which is required to insert at that location in the list)." + ) + , (5685, 0, " ") + , (5686, 0, "F") + , (5687, 0, "o") + , (5688, 0, "r") + , (5689, 0, " ") + , (5690, 0, "t") + , (5691, 0, "h") + , (5692, 0, "a") + , (5693, 0, "t") + , (5694, 0, " ") + , (5695, 0, "w") + , (5696, 0, "e") + , (5697, 0, " ") + , (5698, 0, "n") + , (5699, 0, "e") + , (5700, 0, "e") + , (5701, 0, "d") + , (5702, 0, " ") + , (5537, 0, "/") + , (5619, 0, "/") + , (5705, 0, "t") + , (5706, 0, "o") + , (5707, 0, " ") + , (5708, 0, "b") + , (5709, 0, "e") + , (5710, 0, " ") + , (5711, 0, "a") + , (5712, 0, "b") + , (5713, 0, "l") + , (5714, 0, "e") + , (5715, 0, " ") + , (5716, 0, "t") + , (5717, 0, "o") + , (5718, 0, " ") + , (5719, 0, "f") + , (5720, 0, "i") + , (5721, 0, "g") + , (5722, 0, "u") + , (5723, 0, "r") + , (5724, 0, "e") + , (5725, 0, " ") + , (5726, 0, "o") + , (5727, 0, "u") + , (5728, 0, "t") + , (5729, 0, " ") + , (5730, 0, "a") + , (5731, 0, "t") + , (5732, 0, " ") + , (5733, 0, "e") + , (5734, 0, "a") + , (5735, 0, "c") + , (5736, 0, "h") + , (5737, 0, " ") + , (5738, 0, "l") + , (5739, 0, "e") + , (5740, 0, "v") + , (5741, 0, "e") + , (5742, 0, "l") + , (5743, 0, " ") + , (5744, 0, "o") + , (5745, 0, "f") + , (5746, 0, " ") + , (5747, 0, "t") + , (5748, 0, "h") + , (5749, 0, "e") + , (5750, 0, " ") + , (5751, 0, "n") + , (5752, 0, "e") + , (5753, 0, "x") + , (5754, 0, "t") + , (5755, 0, "s") + , (5756, 0, " ") + , (5757, 0, "p") + , (5758, 0, "o") + , (5759, 0, "i") + , (5760, 0, "n") + , (5761, 0, "t") + , (5762, 0, "e") + , (5763, 0, "r") + , (5764, 0, "s") + , (5765, 0, " ") + , (5766, 0, "w") + , (5767, 0, "h") + , (5768, 0, "i") + , (5769, 0, "c") + , (5770, 0, "h") + , (5771, 0, " ") + , (5772, 0, "o") + , (5773, 0, "b") + , (5774, 0, "j") + , (5775, 0, "e") + , (5776, 0, "c") + , (5777, 0, "t") + , (5778, 0, "s") + , (5772, 7, "o") + , (5773, 0, "b") + , (5774, 0, "j") + , (5775, 0, "e") + , (5776, 0, "c") + , (5777, 0, "t") + , (5778, 0, " ") + , (5779, 0, "p") + , (5780, 0, "o") + , (5781, 0, "i") + , (5782, 0, "n") + , (5783, 0, "t") + , (5784, 0, "s") + , (5785, 0, " ") + , (5786, 0, "t") + , (5787, 0, "o") + , (5788, 0, " ") + , (5789, 0, "u") + , (5790, 0, "s") + , (5791, 0, ",") + , (5792, 0, " ") + , (5793, 0, "a") + , (5794, 0, "n") + , (5795, 0, "d") + , (5796, 0, " ") + , (5797, 0, "h") + , (5798, 0, "o") + , (5799, 0, "w") + , (5800, 0, " ") + , (5801, 0, "f") + , (5802, 0, "a") + , (5803, 0, "r") + , (5804, 0, " ") + , (5805, 0, "i") + , (5806, 0, "n") + , (5807, 0, "t") + , (5808, 0, "o") + , (5809, 0, " ") + , (5810, 0, "t") + , (5811, 0, "h") + , (5812, 0, "e") + , ( 5613 + , 200 + , " /// cursor (which is required to insert at that location in the list). For\n /// that we need to be able to figure out at each level of the nexts\n /// pointers which object points to us, and how far into the" + ) + , (5813, 16, "t") + , (5814, 0, "h") + , (5815, 0, "e") + , (5816, 0, " ") + , (5817, 0, "o") + , (5818, 0, "f") + , (5819, 0, "f") + , (5820, 0, "s") + , (5821, 0, "e") + , (5822, 0, "t") + , (5823, 0, " ") + , (5824, 0, "f") + , (5825, 0, "r") + , (5826, 0, "o") + , (5827, 0, "m") + , (5828, 0, " ") + , (5829, 0, "t") + , (5830, 0, "h") + , (5831, 0, "a") + , (5832, 0, "t") + , (5833, 0, " ") + , (5834, 0, "e") + , (5835, 0, "l") + , (5836, 0, "e") + , (5837, 0, "m") + , (5838, 0, "e") + , (5839, 0, "n") + , (5840, 0, "t") + , (5841, 0, " ") + , (5842, 0, "t") + , (5843, 0, "o") + , (5844, 0, " ") + , (5845, 0, "t") + , (5846, 0, "h") + , (5847, 0, "e") + , (5848, 0, " ") + , (5849, 0, "c") + , (5850, 0, "u") + , (5851, 0, "r") + , (5852, 0, "r") + , (5853, 0, "e") + , (5854, 0, "n") + , (5855, 0, "t") + , (5856, 0, " ") + , (5857, 0, "e") + , (5858, 0, "l") + , (5859, 0, "e") + , (5860, 0, "m") + , (5861, 0, "e") + , (5862, 0, "n") + , (5863, 0, "t") + , (5864, 0, ".") + , ( 5765 + , 100 + , " /// pointers which object points to us, and the offset from that element to\n /// the current element." + ) + , (5873, 0, " ") + , (5874, 0, "A") + , (5875, 0, "n") + , (5876, 0, "y") + , (5877, 0, "w") + , (5878, 0, "a") + , (5879, 0, "y") + , (5880, 0, ",") + , (5881, 0, " ") + , (5882, 0, "w") + , (5883, 0, "e") + , (5884, 0, " ") + , (5885, 0, "n") + , (5886, 0, "e") + , (5887, 0, "e") + , (5882, 6, "f") + , (5883, 0, "o") + , (5884, 0, "r") + , (5885, 0, "m") + , (5885, 1, "") + , (5885, 0, " ") + , (5886, 0, "m") + , (5887, 0, "a") + , (5888, 0, "r") + , (5889, 0, "k") + , (5890, 0, "e") + , (5891, 0, "r") + , (5892, 0, "s") + , (5893, 0, " ") + , (5894, 0, "t") + , (5895, 0, "o") + , (5896, 0, " ") + , (5897, 0, "w") + , (5898, 0, "o") + , (5899, 0, "r") + , (5900, 0, "k") + , (5901, 0, " ") + , (5902, 0, "w") + , (5903, 0, "e") + , (5904, 0, " ") + , (5905, 0, "n") + , (5906, 0, "e") + , (5907, 0, "e") + , (5908, 0, "d") + , (5909, 0, " ") + , (5910, 0, "t") + , (5911, 0, "h") + , (5912, 0, "i") + , (5913, 0, "s") + , (5914, 0, ".") + , (5915, 0, "\n /// ") + , (5923, 1, "") + , (5922, 1, "") + , (5921, 1, "") + , (5920, 1, "") + , (5920, 0, "p") + , (5921, 0, "a") + , (5922, 0, "r") + , (5923, 0, "e") + , (5924, 0, "n") + , (5925, 0, "t") + , (5926, 0, ":") + , (5927, 0, " ") + , (5928, 0, "*") + , (5929, 0, "m") + , (5930, 0, "u") + , (5931, 0, "t") + , (5932, 0, " ") + , (5933, 0, "N") + , (5934, 0, "o") + , (5935, 0, "d") + , (5936, 0, "e") + , (5937, 0, " ") + , (5937, 1, "") + , (5937, 0, ";") + , (5937, 0, "<") + , (5938, 0, "C") + , (5939, 0, ">") + , (5940, 1, "") + , (5940, 0, ",") + , (9876, 0, "\n ") + , (9893, 0, "p") + , (9894, 0, "a") + , (9895, 0, "r") + , (9896, 0, "e") + , (9897, 0, "n") + , (9893, 5, "parent") + , (9899, 0, ":") + , (9900, 0, " ") + , (9901, 0, "p") + , (9902, 0, "t") + , (9903, 0, "r") + , (9904, 0, ":") + , (9905, 0, ":") + , (9906, 0, "n") + , (9907, 0, "u") + , (9908, 0, "l") + , (9909, 0, "l") + , (9906, 4, "null_mut()") + , (9916, 0, ",") + , (16970, 0, "\n ") + , (16987, 0, "p") + , (16988, 0, "a") + , (16989, 0, "r") + , (16990, 0, "e") + , (16991, 0, "n") + , (16987, 5, "parent") + , (16993, 0, ":") + , (16994, 0, " ") + , (16995, 0, "p") + , (16996, 0, "t") + , (16997, 0, "r") + , (16998, 0, ":") + , (16999, 0, ":") + , (17000, 0, "n") + , (17001, 0, "u") + , (17002, 0, "l") + , (17003, 0, "l") + , (17000, 4, "null()") + , (17004, 0, "_") + , (17005, 0, "m") + , (17006, 0, "u") + , (17007, 0, "t") + , (17010, 0, ",") + , (19797, 7, "_") + , (19776, 7, "_") + , (18635, 7, "_") + , (18645, 7, "_") + , (18615, 0, "m") + , (18616, 0, "u") + , (18617, 0, "t") + , (18618, 0, " ") + , (18628, 12, "") + , (18628, 0, " as *const _") + , (18618, 1, "") + , (18615, 3, "") + , (19568, 57, "") + , (19551, 0, "\n ") + , (19568, 0, "a") + , (19569, 0, "s") + , (19570, 0, "s") + , (19552, 19, "") + , (19551, 1, "") + , (19551, 0, "\n ") + , (19568, 0, "a") + , (19569, 0, "s") + , (19570, 0, "s") + , (19571, 0, "e") + , (19572, 0, "r") + , (19568, 5, "assert_eq!") + , (19578, 0, "(") + , (19579, 0, "e") + , (19580, 0, "n") + , (19581, 0, "t") + , (19582, 0, "r") + , (19583, 0, "y") + , (19584, 0, ".") + , (19568, 0, "// ") + , (19568, 3, "") + , (19577, 8, "n") + , (19577, 1, "!(entry.") + , (19579, 6, "n") + , (19580, 0, ".") + , (19581, 0, "i") + , (19582, 0, "n") + , (19583, 0, "t") + , (19584, 0, "o") + , (19581, 4, "") + , (19580, 1, "") + , (19580, 0, ".") + , (19581, 0, "p") + , (19582, 0, "a") + , (19583, 0, "r") + , (19584, 0, "e") + , (19585, 0, "n") + , (19586, 0, "t") + , (19587, 0, ",") + , (19588, 0, " ") + , (19589, 0, "i") + , (19590, 0, "t") + , (19591, 0, "e") + , (19592, 0, "r") + , (19593, 0, "[") + , (19594, 0, "n") + , (19595, 0, ".") + , (19596, 0, "h") + , (19597, 0, "e") + , (19598, 0, "i") + , (19599, 0, "g") + , (19600, 0, "h") + , (19601, 0, "t") + , (19602, 0, " ") + , (19603, 0, "a") + , (19604, 0, "s") + , (19605, 0, " ") + , (19606, 0, "u") + , (19607, 0, "s") + , (19608, 0, "i") + , (19609, 0, "z") + , (19610, 0, "e") + , (19611, 0, "]") + , (19612, 0, ")") + , (19613, 0, ";") + , (19612, 0, ".") + , (19613, 0, "n") + , (19614, 0, "o") + , (19615, 0, "d") + , (19616, 0, "e") + , (19551, 0, "\n ") + , (19568, 0, "l") + , (19569, 0, "e") + , (19570, 0, "t") + , (19571, 0, " ") + , (19572, 0, "e") + , (19573, 0, "x") + , (19574, 0, "p") + , (19575, 0, "e") + , (19576, 0, "c") + , (19577, 0, "t") + , (19578, 0, "_") + , (19579, 0, "p") + , (19580, 0, "a") + , (19581, 0, "r") + , (19582, 0, "e") + , (19583, 0, "n") + , (19584, 0, "t") + , (19585, 0, " ") + , (19586, 0, "=") + , (19587, 0, " ") + , (19588, 0, "i") + , (19589, 0, "f") + , (19590, 0, " ") + , (19591, 0, "n") + , (19592, 0, ".") + , (19593, 0, "h") + , (19594, 0, "e") + , (19595, 0, "i") + , (19596, 0, "g") + , (19597, 0, "h") + , (19598, 0, "t") + , (19599, 0, " ") + , (19600, 0, "=") + , (19601, 0, "=") + , (19602, 0, " ") + , (19603, 0, "N") + , (19604, 0, "O") + , (19605, 0, "D") + , (19606, 0, "E") + , (19607, 0, "_") + , (19608, 0, "M") + , (19609, 0, "A") + , (19609, 1, "") + , (19608, 1, "") + , (19603, 5, "H") + , (19604, 0, "E") + , (19605, 0, "I") + , (19606, 0, "G") + , (19607, 0, "H") + , (19608, 0, "T") + , (19603, 6, "MAX_HEIGHT_U8") + , (19616, 0, " ") + , (19617, 0, "{") + , (19618, 0, " ") + , (19619, 0, "&") + , (19620, 0, "s") + , (19621, 0, "e") + , (19622, 0, "l") + , (19623, 0, "f") + , (19624, 0, ".") + , (19625, 0, "h") + , (19626, 0, "e") + , (19627, 0, "a") + , (19628, 0, "d") + , (19629, 0, " ") + , (19630, 0, "}") + , (19631, 0, " ") + , (19632, 0, "e") + , (19633, 0, "l") + , (19634, 0, "s") + , (19635, 0, "e") + , (19636, 0, " ") + , (19637, 0, "iter[n.height as usize].node") + , (19665, 0, " ") + , (19666, 0, "}") + , (19637, 0, "{") + , (19638, 0, " ") + , (19629, 0, ".") + , (19630, 0, "a") + , (19631, 0, "s") + , (19632, 0, "_") + , (19630, 3, "as_mut_ptr") + , (19640, 0, "(") + , (19641, 0, ")") + , (19619, 0, "(") + , (19630, 0, ")") + , (19630, 14, "") + , (19619, 1, "") + , (19629, 0, "&self.head as *const _;") + , (19629, 11, "") + , (19629, 0, " ") + , (19641, 0, " ") + , (19642, 0, "a") + , (19643, 0, "s") + , (19644, 0, " ") + , (19645, 0, "*") + , (19646, 0, "m") + , (19647, 0, "u") + , (19648, 0, "t") + , (19649, 0, " ") + , (19650, 0, "_") + , (19618, 1, "") + , (19618, 0, "\n ") + , (19672, 1, "") + , (19671, 1, "") + , (19671, 0, "\n ") + , (19696, 1, "") + , (19696, 0, "\n ") + , (19745, 1, "") + , (19745, 0, "\n ") + , (19763, 0, ";") + , (19764, 0, "\n ") + , (19819, 28, "e") + , (19765, 16, "") + , (19804, 0, "x") + , (19805, 0, "p") + , (19806, 0, "e") + , (19803, 4, "expect_parent") + , (19588, 0, "\n ") + , (19589, 16, " }") + , (19602, 0, " ") + , (19603, 0, "e") + , (19604, 0, "l") + , (19605, 0, "s") + , (19606, 0, "e") + , (19607, 0, " ") + , (19601, 0, " ") + , (19588, 0, "i") + , (19589, 0, "f") + , (19590, 0, " ") + , (19591, 0, "i") + , (19592, 0, "s") + , (19593, 0, "_") + , (19594, 0, "h") + , (19595, 0, "e") + , (19596, 0, "a") + , (19597, 0, "d") + , (19598, 0, " ") + , (19599, 0, "{") + , (19600, 0, " ") + , (19600, 1, "") + , (19600, 0, "\n ") + , (19621, 0, "p") + , (19622, 0, "t") + , (19623, 0, "r") + , (19624, 0, ":") + , (19625, 0, ":") + , (19626, 0, "n") + , (19627, 0, "u") + , (19628, 0, "l") + , (19629, 0, "l") + , (19626, 4, "null_mut()") + , (19633, 1, "") + , (19632, 1, "") + , (19631, 1, "") + , (19630, 1, "") + , (19729, 10, "") + , (19632, 0, " ") + , (19633, 0, "/") + , (19634, 0, "/") + , (19635, 0, " ") + , (19636, 0, "T") + , (19637, 0, "h") + , (19638, 0, "e") + , (19639, 0, " ") + , (19640, 0, "h") + , (19641, 0, "e") + , (19642, 0, "a") + , (19643, 0, "d") + , (19644, 0, "'") + , (19645, 0, "s") + , (19646, 0, " ") + , (19647, 0, "p") + , (19648, 0, "a") + , (19649, 0, "r") + , (19650, 0, "e") + , (19651, 0, "n") + , (19652, 0, "t") + , (19653, 0, " ") + , (19654, 0, "i") + , (19655, 0, "s") + , (19656, 0, " ") + , (19657, 0, "n") + , (19658, 0, "u") + , (19659, 0, "l") + , (19660, 0, "l") + , (19758, 0, " ") + , (19759, 0, "/") + , (19760, 0, "/") + , (19761, 0, " ") + , (19762, 0, "D") + , (19763, 0, "o") + , (19764, 0, "n") + , (19765, 0, "'") + , (19766, 0, "t") + , (19767, 0, " ") + , (19762, 6, "M") + , (19763, 0, "a") + , (19764, 0, "x") + , (19765, 0, " ") + , (19766, 0, "h") + , (19767, 0, "e") + , (19768, 0, "i") + , (19769, 0, "g") + , (19770, 0, "h") + , (19771, 0, "t") + , (19772, 0, " ") + , (19773, 0, "n") + , (19774, 0, "o") + , (19775, 0, "d") + , (19776, 0, "e") + , (19777, 0, "s") + , (19778, 0, " ") + , (19779, 0, "p") + , (19780, 0, "o") + , (19781, 0, "i") + , (19782, 0, "n") + , (19783, 0, "t") + , (19784, 0, " ") + , (19785, 0, "b") + , (19786, 0, "a") + , (19787, 0, "c") + , (19788, 0, "k") + , (19789, 0, " ") + , (19790, 0, "t") + , (19791, 0, "o") + , (19792, 0, " ") + , (19793, 0, "h") + , (19794, 0, "e") + , (19795, 0, "a") + , (19796, 0, "d") + , (19927, 0, " ") + , (19928, 0, "a") + , (19929, 0, "s") + , (19930, 0, " ") + , (19931, 0, "*") + , (19932, 0, "c") + , (19933, 0, "o") + , (19934, 0, "n") + , (19935, 0, "s") + , (19936, 0, "t") + , (19937, 0, " ") + , (19938, 0, "_") + , (19954, 0, ",") + , (19955, 0, " ") + , (19956, 0, "\"") + , (19957, 0, "i") + , (19958, 0, "n") + , (19959, 0, "v") + , (19960, 0, "a") + , (19961, 0, "l") + , (19962, 0, "i") + , (19963, 0, "d") + , (19964, 0, " ") + , (19965, 0, "a") + , (19965, 1, "") + , (19965, 0, "p") + , (19966, 0, "a") + , (19967, 0, "r") + , (19968, 0, "e") + , (19969, 0, "n") + , (19970, 0, "t") + , (19971, 0, "\"") + , (1808, 0, "// ") + , (1765, 0, "// ") + , (1742, 0, "// ") + , (1699, 0, "// ") + , (1817, 3, "") + , (1771, 3, "") + , (1745, 3, "") + , (1699, 3, "") + , (25858, 0, "\n ") + , (25867, 0, "\n ") + , (25859, 8, "") + , (25868, 0, "(") + , (25869, 0, "*") + , (25870, 0, "n") + , (25871, 0, "e") + , (25872, 0, "w") + , (25873, 0, "_") + , (25874, 0, "n") + , (25875, 0, "o") + , (25876, 0, "d") + , (25877, 0, "e") + , (25878, 0, ")") + , (25879, 0, ".") + , (25880, 0, "p") + , (25881, 0, "a") + , (25882, 0, "r") + , (25883, 0, "e") + , (25884, 0, "n") + , (25885, 0, "t") + , (25886, 0, " ") + , (25887, 0, "=") + , (25888, 0, " ") + , (25868, 0, "// ") + , (24879, 0, "\n ") + , (24888, 0, "l") + , (24889, 0, "e") + , (24890, 0, "t") + , (24891, 0, " ") + , (24892, 0, "n") + , (24893, 0, "e") + , (24894, 0, "w") + , (24895, 0, "_") + , (24896, 0, "n") + , (24897, 0, "o") + , (24898, 0, "d") + , (24899, 0, "e") + , (24900, 0, " ") + , (24901, 0, "=") + , (24902, 0, " ") + , (24900, 0, "_") + , (24901, 0, "R") + , (24902, 0, "e") + , (24903, 0, "f") + , (24901, 1, "") + , (24901, 0, "r") + , (24907, 0, "&") + , (24907, 1, "") + , (24907, 0, "&") + , (24908, 0, "*") + , (24908, 1, "") + , (24908, 0, "m") + , (24909, 0, "u") + , (24910, 0, "t") + , (24911, 0, " ") + , (24912, 0, "*") + , (24913, 0, "n") + , (24914, 0, "e") + , (24915, 0, "w") + , (24916, 0, "_") + , (24917, 0, "n") + , (24918, 0, "o") + , (24919, 0, "d") + , (24920, 0, "e") + , (24921, 0, ";") + , (26079, 11, "n") + , (25914, 11, "n") + , (25073, 11, "n") + , (24985, 11, "n") + , (24931, 11, "n") + , (26040, 0, "e") + , (25885, 0, "e") + , (25054, 0, "e") + , (24976, 0, "e") + , (24932, 0, "e") + , (26045, 0, "w") + , (25889, 0, "w") + , (25057, 0, "w") + , (24978, 0, "w") + , (24933, 0, "w") + , (26050, 0, "_") + , (25893, 0, "_") + , (25060, 0, "_") + , (24980, 0, "_") + , (24934, 0, "_") + , (26055, 0, "n") + , (25897, 0, "n") + , (25063, 0, "n") + , (24982, 0, "n") + , (24935, 0, "n") + , (26060, 0, "o") + , (25901, 0, "o") + , (25066, 0, "o") + , (24984, 0, "o") + , (24936, 0, "o") + , (26065, 0, "d") + , (25905, 0, "d") + , (25069, 0, "d") + , (24986, 0, "d") + , (24937, 0, "d") + , (26063, 7, "new_node_ref") + , (25902, 7, "new_node_ref") + , (25065, 7, "new_node_ref") + , (24981, 7, "new_node_ref") + , (24931, 7, "new_node_ref") + , (26083, 12, "new_nod") + , (25917, 12, "new_nod") + , (25075, 12, "new_nod") + , (24986, 12, "new_nod") + , (24931, 12, "new_nod") + , (26063, 7, "new_node_ref") + , (25902, 7, "new_node_ref") + , (25065, 7, "new_node_ref") + , (24981, 7, "new_node_ref") + , (24931, 7, "new_node_ref") + , (26755, 0, "_ptr") + , (26491, 0, "_ptr") + , (24921, 0, "_ptr") + , (24848, 0, "_ptr") + , (26099, 4, "") + , (25091, 4, "") + , (25002, 4, "") + , (24947, 4, "") + , (24904, 4, "") + , (25906, 3, "") + , (25917, 1, "") + , (25916, 1, "") + , (25915, 1, "") + , (25914, 1, "") + , (25924, 0, "c") + , (25925, 0, "u") + , (25925, 1, "") + , (25924, 1, "") + , (25924, 0, "c") + , (25925, 0, "u") + , (25926, 0, "r") + , (25927, 0, "s") + , (25928, 0, "o") + , (25929, 0, "r") + , (25930, 0, ".") + , (25931, 0, "e") + , (25932, 0, "n") + , (25931, 2, "entries") + , (25938, 0, "[") + , (25939, 0, "n") + , (25940, 0, "e") + , (25941, 0, "w") + , (25942, 0, "_") + , (25943, 0, "h") + , (25944, 0, "e") + , (25945, 0, "i") + , (25939, 7, "new_height_usize") + , (25197, 0, "\n let mut head_height = self.head.height as usize;") + , (25089, 57, "") + , (25140, 0, "\n") + , (25088, 1, "") + , (25045, 0, "\n ") + , (25964, 0, "]") + , (25046, 8, "") + , (25957, 0, ".") + , (25958, 0, "n") + , (25959, 0, "o") + , (25960, 0, "d") + , (25961, 0, "e") + , (25962, 0, ";") + , (25898, 0, "\n ") + , (25907, 0, "i") + , (25908, 0, "f") + , (25909, 0, " ") + , (25910, 0, "n") + , (25911, 0, "e") + , (25912, 0, "w") + , (25913, 0, "_") + , (25914, 0, "h") + , (25910, 5, "new_height_usize") + , (25926, 0, " ") + , (25927, 0, ">") + , (25928, 0, " ") + , (25928, 1, "") + , (25927, 1, "") + , (25927, 0, "=") + , (25928, 0, "=") + , (25929, 0, " ") + , (25930, 0, "M") + , (25931, 0, "A") + , (25932, 0, "X") + , (25933, 0, "_") + , (25930, 4, "MAX_HEIGHT") + , (25949, 18, "") + , (25907, 0, "new_node.parent = ") + , (25958, 0, " ") + , (25959, 0, "{") + , (25960, 0, "\n ") + , (25973, 0, "s") + , (25974, 0, "e") + , (25975, 0, "l") + , (25976, 0, "f") + , (25977, 0, ".") + , (25978, 0, "h") + , (25979, 0, "e") + , (25980, 0, "a") + , (25981, 0, "d") + , (25982, 0, "\n ") + , (25983, 12, " }") + , (25992, 0, " ") + , (25993, 0, "e") + , (25994, 0, "l") + , (25995, 0, "s") + , (25996, 0, "e") + , (25997, 0, " ") + , (25998, 0, "{") + , (25983, 63, " } else { cursor.entries[new_height_usize].node;") + , (26037, 1, "") + , (26037, 0, " ") + , (26038, 0, "}") + , (26039, 0, ";") + , (25973, 0, "&") + , (25983, 0, " ") + , (25983, 1, "") + , (25983, 0, " ") + , (25984, 0, "a") + , (25985, 0, "s") + , (25986, 0, " ") + , (25987, 0, "*") + , (25988, 0, "c") + , (25989, 0, "o") + , (25990, 0, "n") + , (25991, 0, "s") + , (25992, 0, "t") + , (25993, 0, " ") + , (25994, 0, "_") + , (25995, 0, " ") + , (25996, 0, "a") + , (25997, 0, "s") + , (25998, 0, " ") + , (25999, 0, "*") + , (26000, 0, "m") + , (26001, 0, "u") + , (26002, 0, "t") + , (26003, 0, " ") + , (26004, 0, "_") + , (27224, 0, "\n ") + , (27233, 0, "\n ") + , (27225, 8, "") + , (27234, 0, "/") + , (27235, 0, "/") + , (27236, 0, " ") + , (27237, 0, "U") + , (27238, 0, "p") + , (27239, 0, "d") + , (27240, 0, "a") + , (27241, 0, "t") + , (27242, 0, "e") + , (27243, 0, " ") + , (27244, 0, "p") + , (27245, 0, "a") + , (27246, 0, "r") + , (27247, 0, "e") + , (27248, 0, "n") + , (27249, 0, "t") + , (27250, 0, "s") + , (27251, 0, " ") + , (27252, 0, "o") + , (27253, 0, "f") + , (27254, 0, " ") + , (27255, 0, "t") + , (27256, 0, "h") + , (27257, 0, "i") + , (27258, 0, "s") + , (27259, 0, " ") + , (27260, 0, "n") + , (27261, 0, "o") + , (27262, 0, "d") + , (27263, 0, "e") + , (27264, 0, "'") + , (27265, 0, "s") + , (27266, 0, " ") + , (27267, 0, "n") + , (27268, 0, "e") + , (27269, 0, "w") + , (27270, 0, " ") + , (27271, 0, "c") + , (27272, 0, "h") + , (27273, 0, "i") + , (27274, 0, "l") + , (27275, 0, "d") + , (27276, 0, "r") + , (27277, 0, "e") + , (27278, 0, "n") + , (27279, 0, ".") + , (27280, 0, "\n ") + , (27289, 0, "f") + , (27290, 0, "o") + , (27291, 0, "r") + , (27292, 0, " ") + , (27289, 4, "") + , (27289, 0, "l") + , (27290, 0, "e") + , (27291, 0, "t") + , (27292, 0, " ") + , (27293, 0, "m") + , (27294, 0, "u") + , (27295, 0, "t") + , (27296, 0, " ") + , (27297, 0, "n") + , (27298, 0, " ") + , (27299, 0, "=") + , (27300, 0, " ") + , (27301, 0, "n") + , (27302, 0, "e") + , (27303, 0, "w") + , (27304, 0, "_") + , (27301, 4, "new_node") + , (27309, 0, ".") + , (27310, 0, "n") + , (27310, 1, "") + , (27309, 1, "") + , (27309, 0, ".") + , (27310, 0, "n") + , (27311, 0, "e") + , (27312, 0, "x") + , (27313, 0, "t") + , (27314, 0, "s") + , (27315, 0, "_") + , (27310, 6, "nexts_mut") + , (27319, 0, "(") + , (27320, 0, ")") + , (27321, 0, ".") + , (27321, 1, "") + , (27321, 0, "[") + , (27322, 0, "n") + , (27323, 0, "e") + , (27324, 0, "w") + , (27325, 0, "_") + , (27322, 4, "new_height_usize") + , (27338, 0, " ") + , (27339, 0, "-") + , (27340, 0, " ") + , (27341, 0, "1") + , (27342, 0, "]") + , (27343, 0, ";") + , (27344, 0, "\n ") + , (27353, 0, "w") + , (27354, 0, "h") + , (27355, 0, "i") + , (27356, 0, "l") + , (27357, 0, "e") + , (27358, 0, " ") + , (27359, 0, "!") + , (27360, 0, "n") + , (27361, 0, ".") + , (27362, 0, "i") + , (27363, 0, "s") + , (27364, 0, "_") + , (27365, 0, "n") + , (27366, 0, "u") + , (27367, 0, "l") + , (27368, 0, "l") + , (27362, 7, "is_null") + , (27369, 0, "(") + , (27370, 0, ")") + , (27371, 0, " ") + , (27372, 0, "{") + , (27373, 0, "\n ") + , (27386, 0, "\n ") + , (27374, 12, "") + , (27375, 12, " }") + , (27343, 0, ".") + , (27344, 0, "n") + , (27345, 0, "o") + , (27346, 0, "d") + , (27347, 0, "e") + , (27309, 0, "_") + , (27310, 0, "p") + , (27311, 0, "t") + , (27312, 0, "r") + , (27313, 40, "") + , (27313, 0, ";") + , (27343, 0, "\n ") + , (27356, 0, "n") + , (27357, 0, " ") + , (27358, 0, "=") + , (27359, 0, " ") + , (27360, 0, ".nexts_mut()[new_height_usize - 1].node;") + , (27360, 0, "n") + , (27360, 0, "(") + , (27361, 0, "*") + , (27363, 0, ")") + , (27323, 18, "") + , (27323, 0, "l") + , (27324, 0, "o") + , (27325, 0, "o") + , (27326, 0, "p") + , (27390, 0, "\n ") + , (27403, 0, "i") + , (27404, 0, "f") + , (27405, 0, " ") + , (27406, 0, "while !n.is_null()") + , (27406, 7, "") + , (27417, 0, " ") + , (27418, 0, "{") + , (27419, 0, " ") + , (27420, 0, "b") + , (27421, 0, "r") + , (27422, 0, "e") + , (27423, 0, "a") + , (27424, 0, "k") + , (27425, 0, ";") + , (27426, 0, " ") + , (27427, 0, "}") + , (27429, 0, "\n ") + , (27430, 12, "") + , (27280, 0, " ") + , (27281, 0, "T") + , (27282, 0, "h") + , (27283, 0, "i") + , (27284, 0, "s") + , (27285, 0, " ") + , (27286, 0, "i") + , (27287, 0, "s") + , (27288, 0, ",") + , (27289, 0, " ") + , (27290, 0, "a") + , (27291, 0, "l") + , (27292, 0, "l") + , (27293, 0, " ") + , (27294, 0, "c") + , (27295, 0, "h") + , (27296, 0, "i") + , (27297, 0, "l") + , (27298, 0, "d") + , (27299, 0, "r") + , (27300, 0, "e") + , (27301, 0, "n") + , (27302, 0, " ") + , (27303, 0, "a") + , (27304, 0, "t") + , (27305, 0, " ") + , (27306, 0, "t") + , (27307, 0, "h") + , (27308, 0, "e") + , (27309, 0, " ") + , (27293, 17, " ") + , (27294, 0, "n") + , (27295, 0, "o") + , (27296, 0, "d") + , (27297, 0, "e") + , (27298, 0, "s") + , (27299, 0, " ") + , (27300, 0, "a") + , (27301, 0, "t") + , (27302, 0, " ") + , (27303, 0, "t") + , (27304, 0, "h") + , (27305, 0, "e") + , (27306, 0, " ") + , (27307, 0, "e") + , (27308, 0, "x") + , (27309, 0, "p") + , (27310, 0, "e") + , (27311, 0, "c") + , (27312, 0, "t") + , (27313, 0, "e") + , (27314, 0, "d") + , (27315, 0, " ") + , (27316, 0, "h") + , (27317, 0, "e") + , (27318, 0, "i") + , (27319, 0, "g") + , (27320, 0, "h") + , (27321, 0, "t") + , (27237, 85, "P") + , (27238, 0, "o") + , (27239, 0, "i") + , (27240, 0, "n") + , (27241, 0, "t") + , (27242, 0, " ") + , (27243, 0, "a") + , (27244, 0, "l") + , (27245, 0, "l") + , (27246, 0, " ") + , (27247, 0, "n") + , (27248, 0, "o") + , (27249, 0, "d") + , (27250, 0, "e") + , (27251, 0, "s") + , (27252, 0, " ") + , (27253, 0, "a") + , (27254, 0, "t") + , (27255, 0, " ") + , (27256, 0, "h") + , (27257, 0, "e") + , (27258, 0, "i") + , (27259, 0, "g") + , (27260, 0, "h") + , (27261, 0, "t") + , (27262, 0, "-") + , (27263, 0, "1") + , (27401, 0, " ") + , (27402, 0, "|") + , (27403, 0, "|") + , (27404, 0, " ") + , (27405, 0, "(") + , (27406, 0, "*") + , (27407, 0, "n") + , (27408, 0, ")") + , (27409, 0, ".") + , (27410, 0, "n") + , (27410, 1, "") + , (27410, 0, "h") + , (27411, 0, "e") + , (27412, 0, "i") + , (27413, 0, "g") + , (27414, 0, "h") + , (27415, 0, "t") + , (27416, 0, " ") + , (27417, 0, ">") + , (27418, 0, " ") + , (27419, 0, "n") + , (27420, 0, "e") + , (27421, 0, "w") + , (27422, 0, "_") + , (27419, 4, "new_height") + , (27418, 0, "=") + , (27237, 27, "U") + , (27238, 0, "p") + , (27239, 0, "d") + , (27240, 0, "a") + , (27241, 0, "t") + , (27242, 0, "e") + , (27243, 0, " ") + , (27244, 0, "p") + , (27245, 0, "a") + , (27246, 0, "r") + , (27247, 0, "e") + , (27248, 0, "n") + , (27249, 0, "t") + , (27250, 0, "s") + , (27251, 0, ".") + , (27431, 0, " ") + , (27443, 0, "n") + , (27444, 0, ".") + , (27445, 0, "p") + , (27445, 1, "") + , (27444, 1, "") + , (27443, 1, "") + , (27443, 0, "(") + , (27444, 0, "*") + , (27445, 0, "n") + , (27446, 0, ")") + , (27447, 0, ".") + , (27448, 0, "p") + , (27449, 0, "a") + , (27450, 0, "r") + , (27451, 0, "e") + , (27452, 0, "n") + , (27453, 0, "t") + , (27454, 0, " ") + , (27455, 0, "=") + , (27456, 0, " ") + , (27443, 0, "// ") + , (27318, 0, "&") + , (27319, 0, "m") + , (27320, 0, "u") + , (27321, 0, "t") + , (27322, 0, " ") + , (27323, 0, "*") + , (27400, 1, "") + , (27399, 1, "") + , (27398, 1, "") + , (27398, 0, " ") + , (27400, 1, "") + , (27446, 3, "") + , (27446, 0, "// ") + , (27367, 0, ")") + , (27324, 0, "(") + , (27368, 1, "") + , (27324, 1, "") + , (27446, 3, "") + , (27446, 0, "// ") + , (27400, 0, ")") + , (27398, 1, "") + , (27398, 0, " (*") + , (27322, 2, "") + , (27318, 4, "") + , (27443, 3, "") + , (27457, 0, "n") + , (27458, 0, "e") + , (27459, 0, "w") + , (27460, 0, "_") + , (27461, 0, "n") + , (27462, 0, "o") + , (27463, 0, "d") + , (27457, 7, "new_node_ptr") + , (27469, 0, ";") + , (16787, 4, "i") + , (16788, 0, "f") + , (16789, 0, " ") + , (16789, 1, "") + , (16787, 2, "None") + , (16787, 0, "if cfg!(debug_assertions)") + , (16812, 4, "") + , (16812, 0, " ") + , (16813, 0, "{") + , (16814, 0, " ") + , (16815, 0, "Some(SmallRng::seed_from_u64(seed))") + , (16850, 0, " ") + , (16851, 0, "}") + , (16852, 0, " ") + , (16787, 66, "") + , (16787, 0, "N") + , (16788, 0, "o") + , (16789, 0, "n") + , (16790, 0, "e") + , (17388, 0, "\n ") + , (17401, 0, "/") + , (17402, 0, "/") + , (17403, 0, " ") + , (17404, 0, "W") + , (17404, 1, "") + , (17404, 0, "I") + , (17405, 0, "f") + , (17406, 0, " ") + , (17407, 0, "w") + , (17408, 0, "e") + , (17409, 0, "'") + , (17410, 0, "r") + , (17411, 0, "e") + , (17412, 0, " ") + , (17413, 0, "i") + , (17414, 0, "n") + , (17415, 0, " ") + , (17416, 0, "d") + , (17417, 0, "e") + , (17418, 0, "b") + , (17419, 0, "u") + , (17420, 0, "g") + , (17421, 0, " ") + , (17422, 0, "m") + , (17423, 0, "o") + , (17424, 0, "d") + , (17425, 0, "e") + , (17426, 0, ",") + , (17427, 0, " ") + , (17404, 24, "W") + , (17405, 0, "e") + , (17406, 0, "'") + , (17407, 0, "l") + , (17408, 0, "l") + , (17409, 0, " ") + , (17410, 0, "u") + , (17411, 0, "s") + , (17412, 0, "e") + , (17413, 0, " ") + , (17414, 0, "a") + , (17415, 0, " ") + , (17416, 0, "s") + , (17417, 0, "t") + , (17418, 0, "a") + , (17419, 0, "b") + , (17420, 0, "l") + , (17421, 0, "e") + , (17422, 0, " ") + , (17423, 0, "N") + , (17424, 0, "R") + , (17424, 1, "") + , (17423, 1, "") + , (17423, 0, "R") + , (17424, 0, "N") + , (17425, 0, "G") + , (17426, 0, " ") + , (17427, 0, "i") + , (17428, 0, "n") + , (17429, 0, " ") + , (17430, 0, "d") + , (17431, 0, "e") + , (17432, 0, "b") + , (17433, 0, "u") + , (17434, 0, "g") + , (17435, 0, " ") + , (17436, 0, "m") + , (17437, 0, "o") + , (17438, 0, "d") + , (17439, 0, "e") + , (17440, 0, " ") + , (17441, 0, "s") + , (17442, 0, "o") + , (17443, 0, " ") + , (17444, 0, "t") + , (17445, 0, "h") + , (17446, 0, "e") + , (17447, 0, " ") + , (17448, 0, "t") + , (17449, 0, "e") + , (17450, 0, "s") + , (17451, 0, "t") + , (17452, 0, "s") + , (17453, 0, " ") + , (17454, 0, "a") + , (17455, 0, "r") + , (17456, 0, "e") + , (17457, 0, " ") + , (17458, 0, "s") + , (17459, 0, "t") + , (17460, 0, "a") + , (17461, 0, "b") + , (17462, 0, "l") + , (17463, 0, "e") + , (17464, 0, ".") + , (17465, 0, "\n ") + , ( 17478 + , 0 + , "if cfg!(debug_assertions) { Some(SmallRng::seed_from_u64(seed)) } " + ) + , (17503, 41, "") + , (17503, 0, " ") + , (17504, 0, "{") + , (17505, 0, "\n ") + , (17522, 0, "s") + , (17523, 0, "e") + , (17524, 0, "l") + , (17525, 0, "f") + , (17526, 0, ".") + , (17527, 0, "i") + , (17528, 0, "n") + , (17529, 0, "i") + , (17530, 0, "t") + , (17527, 4, "init_rng_from_seed(seed: u64)") + , (17546, 9, "3") + , (17547, 0, "2") + , (17548, 0, "1") + , (17550, 0, ";") + , (17551, 0, "\n ") + , (17552, 16, " }") + , (17565, 0, " ") + , (17566, 0, "e") + , (17567, 0, "l") + , (17568, 0, "s") + , (17569, 0, "e") + , (17570, 0, " ") + , (17571, 0, "{") + , (17585, 0, " ") + , (17631, 0, "\n ") + , (17632, 16, " }") + , (17546, 3, "1") + , (17547, 0, "2") + , (17548, 0, "3") + , (17549, 0, "\n ") + , (17549, 17, "") + , (18728, 0, "\n ") + , (18741, 0, "l") + , (18742, 0, "e") + , (18743, 0, "t") + , (18744, 0, " ") + , (18745, 0, "m") + , (18746, 0, "u") + , (18747, 0, "t") + , (18748, 0, " ") + , (18749, 0, "p") + , (18750, 0, "r") + , (18751, 0, "e") + , (18752, 0, "v") + , (18753, 0, " ") + , (18753, 1, "") + , (18753, 0, ":") + , (18754, 0, " ") + , (18755, 0, "*mut Node") + , (18755, 0, "[") + , (18768, 0, ";") + , (18769, 0, " ") + , (18770, 0, "M") + , (18771, 0, "A") + , (18772, 0, "X") + , (18770, 3, "MAX_HEIGHT") + , (18780, 0, "]") + , (18781, 0, " ") + , (18782, 0, "=") + , (18783, 0, " ") + , (18784, 0, "[") + , (18570, 0, "\n ") + , (18583, 0, "l") + , (18584, 0, "e") + , (18585, 0, "t") + , (18586, 0, " ") + , (18587, 0, "h") + , (18588, 0, "e") + , (18589, 0, "a") + , (18590, 0, "d") + , (18591, 0, "_") + , (18592, 0, "p") + , (18593, 0, "t") + , (18594, 0, "r") + , (18595, 0, " ") + , (18596, 0, "=") + , (18597, 0, " ") + , (18598, 0, "&self.head as *const _ as *mut _") + , (18630, 0, ";") + , (18934, 32, "h") + , (18935, 0, "e") + , (18936, 0, "a") + , (18937, 0, "d") + , (18938, 0, "_") + , (18934, 5, "head_ptr") + , (18846, 0, "n") + , (18847, 0, "u") + , (18848, 0, "l") + , (18849, 0, "l") + , (18850, 0, "_") + , (18846, 5, "p") + , (18847, 0, "t") + , (18848, 0, "r") + , (18849, 0, ":") + , (18850, 0, ":") + , (18851, 0, "n") + , (18852, 0, "u") + , (18853, 0, "l") + , (18851, 3, "null_mut()") + , (18861, 0, ";") + , (18862, 0, " ") + , (18863, 0, "_") + , (18864, 0, ")") + , (18864, 1, "") + , (18864, 0, "]") + , (18865, 0, ";") + , (18866, 0, "\n ") + , (18867, 12, "") + , (18863, 1, "") + , (18863, 0, "M") + , (18864, 0, "A") + , (18865, 0, "X") + , (18863, 3, "MAX_HEIGHT") + , (20636, 0, "\n ") + , (20657, 0, "p") + , (20658, 0, "r") + , (20659, 0, "e") + , (20660, 0, "v") + , (20661, 0, "[") + , (20662, 0, "i") + , (20663, 0, "]") + , (20664, 0, " ") + , (20665, 0, "=") + , (20666, 0, " ") + , (20667, 0, "n") + , (20668, 0, ";") + , (20657, 0, "// ") + , (18818, 3, "c") + , (18819, 0, "o") + , (18820, 0, "n") + , (18821, 0, "s") + , (18822, 0, "t") + , (18860, 1, "") + , (18859, 1, "") + , (18858, 1, "") + , (18857, 1, "") + , (20655, 3, "") + , (20167, 4, "p") + , (20168, 0, "r") + , (20169, 0, "e") + , (20170, 0, "v") + , (20194, 1, "") + , (20193, 1, "") + , (20192, 1, "") + , (20191, 1, "") + , (20190, 1, "") + , (27706, 1, "") + , (27706, 0, "2") + , (27604, 0, "\n ") + , (27613, 0, "i") + , (27614, 0, "f") + , (27615, 0, " ") + , (27616, 0, "n") + , (27617, 0, "e") + , (27618, 0, "w") + , (27619, 0, "_") + , (27620, 0, "h") + , (27616, 5, "new_height_usize") + , (27632, 0, " ") + , (27633, 0, ">") + , (27634, 0, " ") + , (27635, 0, "1") + , (27636, 0, " ") + , (27637, 0, "{") + , (27857, 8, " ") + , (27817, 12, " ") + , (27749, 12, " ") + , (27688, 12, " ") + , (27673, 8, " ") + , (27639, 8, " ") + , (27890, 0, "\n ") + , (27891, 12, " }") + , (36777, 0, "\n ") + , (36794, 0, "\n ") + , (36778, 16, "") + , ( 36795 + , 0 + , "\n // Update parents.\n if new_height_usize > 1 {\n let mut n = new_node_ptr;\n loop {\n n = (*n).nexts_mut()[new_height_usize - 2].node;\n if n.is_null() || (*n).height >= new_height { break; }\n\n (*n).parent = new_node_ptr;\n }\n }" + ) + , (36779, 16, "") + , (37093, 8, " ") + , (37079, 12, " ") + , (37035, 16, " ") + , (36963, 16, " ") + , (36898, 16, " ") + , (36879, 12, " ") + , (36841, 12, " ") + , (36807, 8, " ") + , (36780, 8, " ") + , (37125, 12, " ") + , (37107, 16, " ") + , (37059, 20, " ") + , (36983, 20, " ") + , (36914, 20, " ") + , (36891, 16, " ") + , (36849, 16, " ") + , (36811, 12, " ") + , (36780, 12, " ") + , (36778, 1, "") + , (36833, 16, "h") + , (36834, 0, "e") + , (36835, 0, "i") + , (36836, 0, "g") + , (36837, 0, "h") + , (36838, 0, "t") + , (36878, 12, "e") + , (36953, 16, "h") + , (36954, 0, "e") + , (36955, 0, "i") + , (36956, 0, "g") + , (36957, 0, "h") + , (36958, 0, "t") + , (37028, 10, "h") + , (37029, 0, "e") + , (37030, 0, "i") + , (37031, 0, "g") + , (37032, 0, "h") + , (37033, 0, "t") + , (37034, 0, " ") + , (37035, 0, "a") + , (37036, 0, "s") + , (37037, 0, " ") + , (37038, 0, "u") + , (37039, 0, "8") + , (36845, 0, "\n ") + , (36846, 20, "") + , (36845, 1, "") + , (36880, 0, "\n ") + , (36901, 0, "l") + , (36902, 0, "e") + , (36903, 0, "t") + , (36904, 0, " ") + , (36905, 0, "n") + , (36906, 0, "e") + , (36907, 0, "w") + , (36908, 0, "_") + , (36909, 0, "p") + , (36910, 0, "a") + , (36911, 0, "r") + , (36912, 0, "e") + , (36913, 0, "n") + , (36914, 0, "t") + , (36915, 0, " ") + , (36916, 0, "=") + , (36917, 0, " ") + , (36918, 0, "c") + , (36919, 0, "u") + , (36920, 0, "r") + , (36921, 0, "s") + , (36922, 0, "o") + , (36923, 0, "r") + , (36924, 0, ".") + , (36925, 0, "e") + , (36926, 0, "n") + , (36927, 0, "t") + , (36928, 0, "r") + , (36929, 0, "i") + , (36930, 0, "e") + , (36931, 0, "s") + , (36932, 0, "[") + , (36933, 0, "h") + , (36934, 0, "e") + , (36935, 0, "i") + , (36936, 0, "g") + , (36937, 0, "h") + , (36938, 0, "t") + , (36939, 0, " ") + , (36940, 0, "-") + , (36941, 0, " ") + , (36942, 0, "1") + , (36943, 0, "]") + , (36944, 0, ".") + , (36945, 0, "n") + , (36946, 0, "o") + , (36947, 0, "d") + , (36948, 0, "e") + , (36949, 0, ";") + , (37161, 12, "n") + , (37162, 0, "e") + , (37163, 0, "w") + , (37164, 0, "_") + , (37165, 0, "p") + , (37166, 0, "a") + , (37161, 6, "new_parent") + , (2641, 0, "s") + , (2645, 0, "[") + , (2656, 0, "]") + , (2661, 1, "") + , (2660, 1, "") + , (2660, 0, "t") + , (2661, 0, "o") + , (2661, 1, "") + , (2660, 1, "") + , (2660, 0, "a") + , (2661, 0, "t") + , (2688, 18, "") + , (2688, 0, " where Self: Sized") + , (2699, 0, ":") + , (2700, 0, ":") + , (2701, 0, "I") + , (2702, 0, "t") + , (2701, 2, "Item") + , (2701, 4, "It") + , (2699, 4, "") + , (1809, 0, "\n") + , (1810, 0, "i") + , (1811, 0, "m") + , (1812, 0, "p") + , (1813, 0, "l") + , (1814, 0, " ") + , (1815, 0, "S") + , (1816, 0, "i") + , (1817, 0, "z") + , (1818, 0, "e") + , (1819, 0, "d") + , (1820, 0, " ") + , (1821, 0, "f") + , (1822, 0, "o") + , (1823, 0, "r") + , (1824, 0, " ") + , (1825, 0, "I") + , (1826, 0, "t") + , (1827, 0, "e") + , (1828, 0, "m") + , (1825, 4, "ItemMarker") + , (1835, 0, " ") + , (1836, 0, "{") + , (1837, 0, "}") + , (1814, 0, "<") + , (1815, 0, "C") + , (1816, 0, ":") + , (1817, 0, " ") + , (1818, 0, "L") + , (1819, 0, "i") + , (1820, 0, "s") + , (1821, 0, "t") + , (1818, 4, "ListConfig") + , (1828, 0, ">") + , (1850, 0, "<") + , (1851, 0, "C") + , (1852, 0, ">") + , (1809, 47, "") + , (1738, 0, " ") + , (1739, 0, "+") + , (1740, 0, " ") + , (1741, 0, "S") + , (1742, 0, "i") + , (1743, 0, "z") + , (1744, 0, "e") + , (1745, 0, "d") + , (2696, 19, " ") + , (2696, 1, " where Self: Sized ") + , (1738, 8, "") + , (2715, 267, "") + , (2713, 0, "// ") + , (2615, 0, "// ") + , (24334, 0, "\n ") + , (24339, 0, "\n ") + , (24335, 4, "") + , (24340, 0, "p") + , (24341, 0, "u") + , (24342, 0, "b") + , (24343, 0, " ") + , (24344, 0, "f") + , (24345, 0, "n") + , (24346, 0, " ") + , (24347, 0, "i") + , (24348, 0, "t") + , (24349, 0, "e") + , (24350, 0, "r") + , (24351, 0, "_") + , (24352, 0, "a") + , (24353, 0, "t") + , (24354, 0, "_") + , (24355, 0, "m") + , (24356, 0, "a") + , (24357, 0, "r") + , (24358, 0, "k") + , (24359, 0, "e") + , (24360, 0, "r") + , (24361, 0, "(") + , (24362, 0, "&") + , (24363, 0, "m") + , (24364, 0, "u") + , (24365, 0, "t") + , (24366, 0, " ") + , (24367, 0, "s") + , (24368, 0, "e") + , (24369, 0, "l") + , (24370, 0, "f") + , (24371, 0, ",") + , (24372, 0, " ") + , (24373, 0, "m") + , (24374, 0, "a") + , (24375, 0, "r") + , (24376, 0, "k") + , (24377, 0, "e") + , (24378, 0, "r") + , (24379, 0, ":") + , (24380, 0, " ") + , (24381, 0, "M") + , (24382, 0, "a") + , (24383, 0, "r") + , (24384, 0, "k") + , (24381, 4, "I") + , (24382, 0, "t") + , (24383, 0, "e") + , (24384, 0, "m") + , (24385, 0, "m") + , (24381, 5, "ItemMarker") + , (24391, 0, ")") + , (24392, 0, " ") + , (24393, 0, "-") + , (24394, 0, ">") + , (24395, 0, " ") + , (24396, 0, "C") + , (24397, 0, "u") + , (24398, 0, "r") + , (24399, 0, "s") + , (24400, 0, "o") + , (24401, 0, "r") + , (24402, 0, " ") + , (24403, 0, "{") + , (24404, 0, "\n ") + , (24413, 0, "\n ") + , (24405, 8, "") + , (24406, 8, " }") + , (24405, 0, " ") + , (24405, 8, "") + , (24391, 0, "<") + , (24392, 0, "C") + , (24393, 0, ">") + , (24405, 0, "<") + , (24406, 0, "C") + , (24407, 0, ">") + , (24411, 0, " ") + , (24419, 0, "/") + , (24420, 0, "/") + , (24421, 0, " ") + , (24422, 0, "T") + , (24423, 0, "h") + , (24424, 0, "e") + , (24425, 0, " ") + , (24426, 0, "m") + , (24427, 0, "a") + , (24428, 0, "r") + , (24429, 0, "k") + , (24430, 0, "e") + , (24431, 0, "r") + , (24432, 0, " ") + , (24433, 0, "g") + , (24434, 0, "i") + , (24435, 0, "v") + , (24436, 0, "e") + , (24437, 0, "s") + , (24438, 0, " ") + , (24439, 0, "u") + , (24440, 0, "s") + , (24441, 0, " ") + , (24442, 0, "a") + , (24443, 0, " ") + , (24444, 0, "p") + , (24445, 0, "o") + , (24446, 0, "i") + , (24447, 0, "n") + , (24448, 0, "t") + , (24449, 0, "e") + , (24450, 0, "r") + , (24451, 0, " ") + , (24452, 0, "i") + , (24453, 0, "n") + , (24454, 0, "t") + , (24455, 0, "o") + , (24456, 0, " ") + , (24457, 0, "a") + , (24458, 0, " ") + , (24459, 0, "n") + , (24460, 0, "o") + , (24461, 0, "d") + , (24462, 0, "e") + , (3554, 0, "\n") + , (3555, 0, "\n") + , (3556, 0, "\n") + , (3557, 0, "s") + , (3558, 0, "t") + , (3559, 0, "r") + , (3560, 0, "u") + , (3561, 0, "c") + , (3562, 0, "t") + , (3563, 0, " ") + , (3564, 0, "F") + , (3565, 0, "o") + , (3566, 0, "o") + , (3567, 0, " ") + , (3567, 1, "") + , (3567, 0, "(") + , (3568, 0, ")") + , (3569, 0, "\n") + , (3570, 0, "\n") + , (3570, 1, "") + , (3569, 1, "") + , (3569, 0, ";") + , (3570, 0, "\n") + , (3571, 0, "\n") + , (3572, 0, "i") + , (3573, 0, "m") + , (3574, 0, "p") + , (3575, 0, "l") + , (3576, 0, " ") + , (3567, 0, "<") + , (3568, 0, "T") + , (3569, 0, ">") + , (3571, 0, "&") + , (3571, 1, "") + , (3571, 0, "T") + , (3581, 0, "F") + , (3582, 0, "o") + , (3583, 0, "o") + , (3584, 0, " ") + , (3585, 0, "{") + , (3586, 0, "\n ") + , (3591, 0, "\n ") + , (3587, 4, "") + , (3588, 4, "}") + , (3580, 0, "<") + , (3581, 0, "T") + , (3582, 0, ">") + , (3587, 0, "<") + , (3588, 0, "T") + , (3589, 0, ">") + , (3593, 0, " ") + , (3597, 0, "f") + , (3598, 0, "n") + , (3599, 0, " ") + , (3600, 0, "b") + , (3601, 0, "l") + , (3602, 0, "a") + , (3603, 0, "h") + , (3604, 0, "(") + , (3605, 0, ")") + , (3606, 0, " ") + , (3607, 0, "{") + , (3608, 0, "\n ") + , (3617, 0, "\n ") + , (3609, 8, "") + , (3610, 8, " }") + , (3606, 0, " ") + , (3607, 0, "w") + , (3608, 0, "h") + , (3609, 0, "e") + , (3610, 0, "r") + , (3611, 0, "e") + , (3612, 0, " ") + , (3613, 0, "T") + , (3614, 0, ":") + , (3615, 0, " ") + , (3616, 0, "D") + , (3617, 0, "e") + , (3618, 0, "b") + , (3619, 0, "u") + , (3620, 0, "g") + , (3616, 5, "C") + , (3617, 0, "o") + , (3618, 0, "p") + , (3619, 0, "y") + , (3631, 0, "\n") + , (3632, 0, "\n") + , (3633, 0, "f") + , (3634, 0, "n") + , (3635, 0, " ") + , (3636, 0, "x") + , (3637, 0, "(") + , (3638, 0, ")") + , (3639, 0, " ") + , (3640, 0, "{") + , (3641, 0, "\n ") + , (3646, 0, "\n ") + , (3642, 4, "") + , (3643, 4, "}") + , (3642, 0, " ") + , (3646, 0, "F") + , (3647, 0, "o") + , (3648, 0, "o") + , (3649, 0, "(") + , (3650, 0, "3") + , (3651, 0, ")") + , (3646, 0, "l") + , (3647, 0, "e") + , (3648, 0, "t") + , (3649, 0, " ") + , (3650, 0, "x") + , (3651, 0, " ") + , (3652, 0, "=") + , (3653, 0, " ") + , (3660, 0, ";") + , (3661, 0, "\n ") + , (3666, 0, "x") + , (3667, 0, ".") + , (3668, 0, "b") + , (3669, 0, "l") + , (3670, 0, "a") + , (3671, 0, "h") + , (3672, 0, "(") + , (3673, 0, ")") + , (3674, 0, ";") + , (3605, 0, "&") + , (3606, 0, "s") + , (3607, 0, "e") + , (3608, 0, "l") + , (3609, 0, "f") + , (3663, 1, "") + , (3663, 0, "F") + , (3664, 0, "o") + , (3665, 0, "o") + , (3666, 0, "(") + , (3667, 0, "3") + , (3668, 0, ")") + , (3556, 131, "") + , (3555, 1, "") + , (2721, 0, " ") + , (2725, 4, "") + , (1937, 12, "") + , (2713, 0, "\n ") + , (2718, 0, "f") + , (2719, 0, "n") + , (2720, 0, " ") + , (2721, 0, "c") + , (2722, 0, "o") + , (2723, 0, "n") + , (2724, 0, "t") + , (2725, 0, "a") + , (2726, 0, "i") + , (2727, 0, "n") + , (2728, 0, "s") + , (2729, 0, "_") + , (2730, 0, "i") + , (2731, 0, "t") + , (2732, 0, "e") + , (2733, 0, "m") + , (2734, 0, "(") + , (2735, 0, "&") + , (2735, 1, "") + , (2735, 0, "*") + , (2736, 0, "i") + , (2737, 0, "t") + , (2738, 0, "e") + , (2739, 0, "m") + , (2740, 0, ":") + , (2741, 0, " ") + , (2742, 0, "&") + , (2743, 0, "S") + , (2744, 0, "e") + , (2745, 0, "l") + , (2746, 0, "f") + , (2747, 0, ":") + , (2748, 0, ":") + , (2749, 0, "I") + , (2750, 0, "t") + , (2751, 0, "e") + , (2752, 0, "m") + , (2753, 0, ",") + , (2754, 0, " ") + , (2735, 1, "") + , (2754, 0, "q") + , (2755, 0, "u") + , (2756, 0, "e") + , (2757, 0, "r") + , (2758, 0, "y") + , (2759, 0, ":") + , (2760, 0, " ") + , (2761, 0, "&") + , (2762, 0, "S") + , (2763, 0, "e") + , (2764, 0, "l") + , (2765, 0, "f") + , (2766, 0, ":") + , (2767, 0, ":") + , (2768, 0, "I") + , (2769, 0, "t") + , (2770, 0, "e") + , (2771, 0, "m") + , (2772, 0, ")") + , (2773, 0, " ") + , (2774, 0, "-") + , (2775, 0, ">") + , (2776, 0, " ") + , (2777, 0, "B") + , (2777, 1, "") + , (2777, 0, "b") + , (2778, 0, "o") + , (2779, 0, "o") + , (2780, 0, "l") + , (2781, 0, " ") + , (2782, 0, "{") + , (2783, 0, " ") + , (2784, 0, "f") + , (2785, 0, "a") + , (2786, 0, "l") + , (2787, 0, "s") + , (2788, 0, "e") + , (2789, 0, " ") + , (2790, 0, "}") + , (2784, 5, "") + , (2784, 1, "") + , (2783, 1, "") + , (2783, 0, "\n \n ") + , (2792, 0, "u") + , (2793, 0, "n") + , (2794, 0, "i") + , (2795, 0, "m") + , (2796, 0, "p") + , (2797, 0, "l") + , (2792, 6, "unimplemented!") + , (2806, 0, "(") + , (2807, 0, ")") + , (2808, 0, ";") + , (2807, 0, "\"") + , (2808, 0, "I") + , (2809, 0, "m") + , (2810, 0, "p") + , (2811, 0, "l") + , (2812, 0, "e") + , (2813, 0, "m") + , (2814, 0, "e") + , (2815, 0, "n") + , (2816, 0, "t") + , (2817, 0, "s") + , (2817, 1, "") + , (2817, 0, " ") + , (2818, 0, "c") + , (2819, 0, "o") + , (2820, 0, "n") + , (2821, 0, "t") + , (2822, 0, "a") + , (2823, 0, "i") + , (2824, 0, "n") + , (2825, 0, "s") + , (2826, 0, "_") + , (2827, 0, "i") + , (2828, 0, "t") + , (2829, 0, "e") + , (2830, 0, "m") + , (2831, 0, " ") + , (2832, 0, "f") + , (2833, 0, "o") + , (2834, 0, "r") + , (2835, 0, " ") + , (2808, 28, "c") + , (2809, 0, "o") + , (2810, 0, "n") + , (2811, 0, "t") + , (2812, 0, "a") + , (2808, 5, "m") + , (2809, 0, "i") + , (2810, 0, "s") + , (2811, 0, "s") + , (2812, 0, "i") + , (2813, 0, "n") + , (2814, 0, "g") + , (2815, 0, " ") + , (2816, 0, "c") + , (2817, 0, "o") + , (2818, 0, "n") + , (2819, 0, "t") + , (2820, 0, "a") + , (2821, 0, "i") + , (2822, 0, "n") + , (2823, 0, "s") + , (2824, 0, "_") + , (2825, 0, "i") + , (2826, 0, "t") + , (2827, 0, "e") + , (2828, 0, "m") + , (2829, 0, " ") + , (2830, 0, "i") + , (2831, 0, "m") + , (2832, 0, "p") + , (2833, 0, "l") + , (2834, 0, " ") + , (2835, 0, "f") + , (2836, 0, "o") + , (2837, 0, "r") + , (2838, 0, " ") + , (2784, 57, "") + , (2783, 1, "") + , (2713, 76, "") + , (2715, 0, "\n") + , (2716, 0, "\n") + , (2717, 0, "p") + , (2718, 0, "u") + , (2719, 0, "b") + , (2720, 0, " ") + , (2721, 0, "t") + , (2722, 0, "r") + , (2723, 0, "a") + , (2724, 0, "i") + , (2725, 0, "t") + , (2726, 0, " ") + , (2727, 0, "C") + , (2728, 0, "o") + , (2729, 0, "n") + , (2730, 0, "t") + , (2731, 0, "a") + , (2732, 0, "i") + , (2733, 0, "n") + , (2734, 0, "s") + , (2735, 0, " ") + , (2736, 0, "{") + , (2737, 0, "\n ") + , (2742, 0, "\n ") + , (2738, 4, "") + , (2739, 4, "}") + , ( 2738 + , 0 + , "\n fn contains_item(item: &Self::Item, query: &Self::Item) -> bool {\n }" + ) + , (2737, 1, "") + , (2790, 6, "") + , (2770, 6, "") + , (2793, 8, "") + , (2793, 0, ";") + , (24482, 0, " ") + , (24483, 0, "w") + , (24484, 0, "h") + , (24485, 0, "e") + , (24486, 0, "r") + , (24487, 0, "e") + , (24488, 0, " ") + , (24489, 0, "C") + , (24490, 0, ":") + , (24491, 0, ":") + , (24492, 0, "I") + , (24493, 0, "t") + , (24494, 0, "e") + , (24495, 0, "m") + , (24496, 0, " ") + , (24497, 0, ":") + , (24497, 1, "") + , (24496, 1, "") + , (24496, 0, ":") + , (24497, 0, " ") + , (24498, 0, "C") + , (24499, 0, "o") + , (24500, 0, "n") + , (24501, 0, "t") + , (24502, 0, "a") + , (24503, 0, "i") + , (24504, 0, "n") + , (24505, 0, "s") + , (24561, 0, "\n ") + , (24570, 0, "u") + , (24571, 0, "n") + , (24570, 2, "unimplemented!") + , (24584, 0, "(") + , (24585, 0, ")") + , (24586, 0, ";") + , (11918, 0, "p") + , (11919, 0, "u") + , (11920, 0, "b") + , (11921, 0, " ") + , (24574, 17, "") + , (24472, 0, ",") + , (24473, 0, " ") + , (24474, 0, "q") + , (24475, 0, "u") + , (24476, 0, "e") + , (24477, 0, "r") + , (24478, 0, "y") + , (24479, 0, ":") + , (24480, 0, " ") + , (24481, 0, "&") + , (24482, 0, "I") + , (24482, 1, "") + , (24482, 0, "C") + , (24483, 0, ":") + , (24484, 0, ":") + , (24485, 0, "I") + , (24486, 0, "t") + , (24487, 0, "e") + , (24485, 3, "Item") + , (24582, 0, ".") + , (24583, 0, " ") + , (24584, 0, "W") + , (24585, 0, "e") + , (24585, 1, "") + , (24584, 1, "") + , (24583, 1, "") + , (24583, 0, " ") + , (24584, 0, "F") + , (24585, 0, "i") + , (24586, 0, "n") + , (24587, 0, "d") + , (24588, 0, " ") + , (24589, 0, "t") + , (24590, 0, "h") + , (24591, 0, "e") + , (24592, 0, " ") + , (24593, 0, "i") + , (24594, 0, "t") + , (24595, 0, "e") + , (24596, 0, "m") + , (2789, 0, "O") + , (2790, 0, "p") + , (2791, 0, "t") + , (2792, 0, "i") + , (2793, 0, "o") + , (2794, 0, "n") + , (2795, 0, "<") + , (2796, 4, "u") + , (2797, 0, "s") + , (2798, 0, "i") + , (2799, 0, "z") + , (2800, 0, "e") + , (2801, 0, ">") + , (2737, 0, "\n ") + , (2742, 0, "/") + , (2743, 0, "/") + , (2744, 0, " ") + , (2745, 0, "T") + , (2745, 1, "") + , (2745, 0, "R") + , (2746, 0, "e") + , (2747, 0, "t") + , (2748, 0, "u") + , (2749, 0, "r") + , (2750, 0, "n") + , (2751, 0, "s") + , (2752, 0, " ") + , (2753, 0, "C") + , (2754, 0, "o") + , (2755, 0, "m") + , (2756, 0, "e") + , (2757, 0, "(") + , (2757, 1, "") + , (2756, 1, "") + , (2755, 1, "") + , (2754, 1, "") + , (2753, 1, "") + , (2753, 0, "S") + , (2754, 0, "o") + , (2755, 0, "m") + , (2756, 0, "e") + , (2757, 0, "(") + , (2758, 0, "o") + , (2759, 0, "f") + , (2760, 0, "f") + , (2761, 0, "s") + , (2762, 0, "e") + , (2763, 0, "t") + , (2764, 0, ")") + , (2765, 0, " ") + , (2766, 0, "i") + , (2767, 0, "n") + , (2768, 0, "t") + , (2769, 0, "o") + , (2770, 0, " ") + , (2771, 0, "t") + , (2772, 0, "h") + , (2773, 0, "e") + , (2774, 0, " ") + , (2775, 0, "i") + , (2776, 0, "t") + , (2777, 0, "e") + , (2778, 0, "m") + , (2779, 0, " ") + , (2780, 0, "i") + , (2781, 0, "f") + , (2782, 0, " ") + , (2783, 0, "i") + , (2784, 0, "t") + , (2785, 0, "s") + , (2786, 0, " ") + , (2787, 0, "c") + , (2788, 0, "o") + , (2789, 0, "n") + , (2790, 0, "t") + , (2791, 0, "a") + , (2792, 0, "i") + , (2793, 0, "n") + , (2794, 0, "e") + , (2795, 0, "d") + , (2796, 0, ".") + , (2797, 0, " ") + , (2798, 0, "O") + , (2799, 0, "t") + , (2800, 0, "h") + , (2801, 0, "e") + , (2802, 0, "r") + , (2803, 0, "w") + , (2804, 0, "i") + , (2805, 0, "s") + , (2806, 0, "e") + , (2807, 0, " ") + , (2808, 0, "N") + , (2809, 0, "o") + , (2810, 0, "n") + , (2811, 0, "e") + , (2812, 0, ".") + , (24682, 0, ".") + , (24683, 0, "\n ") + , (24692, 0, "l") + , (24693, 0, "e") + , (24694, 0, "t") + , (24695, 0, " ") + , (24696, 0, "&") + , (24697, 0, "m") + , (24698, 0, "u") + , (24699, 0, "t") + , (24700, 0, " ") + , (24503, 0, "u") + , (24504, 0, "n") + , (24505, 0, "s") + , (24506, 0, "a") + , (24507, 0, "f") + , (24508, 0, "e") + , (24509, 0, " ") + , (24503, 7, "") + , (24506, 0, " ") + , (24507, 0, "p") + , (24508, 0, "u") + , (24508, 1, "") + , (24507, 1, "") + , (24507, 0, "u") + , (24508, 0, "n") + , (24509, 0, "s") + , (24510, 0, "a") + , (24511, 0, "f") + , (24512, 0, "e") + , (24708, 0, "n") + , (24709, 0, "o") + , (24710, 0, "d") + , (24711, 0, "e") + , (24712, 0, " ") + , (24713, 0, "=") + , (24714, 0, " ") + , (24715, 0, "m") + , (24716, 0, "a") + , (24717, 0, "r") + , (24718, 0, "k") + , (24719, 0, "e") + , (24720, 0, "r") + , (24721, 0, ".") + , (24506, 7, "") + , (24683, 0, "\n ") + , (24692, 0, "u") + , (24693, 0, "n") + , (24694, 0, "s") + , (24695, 0, "a") + , (24696, 0, "f") + , (24697, 0, "e") + , (24698, 0, " ") + , (24699, 0, "{") + , (24709, 0, " ") + , (24735, 1, "") + , (24735, 0, ".") + , (24736, 0, "ptr") + , (24739, 0, ";") + , (24729, 0, "*") + , (24729, 1, "") + , (24729, 0, "&") + , (24730, 0, "*") + , (24730, 0, "m") + , (24731, 0, "u") + , (24732, 0, "t") + , (24733, 0, " ") + , (24747, 8, " }") + , (24746, 0, "\n ") + , (24759, 0, "\n ") + , (24747, 12, "") + , (24760, 0, "f") + , (24761, 0, "o") + , (24762, 0, "r") + , (24763, 0, " ") + , (24764, 0, "i") + , (24765, 0, "t") + , (24766, 0, "e") + , (24767, 0, "m") + , (24768, 0, " ") + , (24769, 0, "i") + , (24770, 0, "n") + , (24771, 0, " ") + , (24772, 0, "n") + , (24773, 0, "o") + , (24774, 0, "d") + , (24775, 0, "e") + , (24776, 0, ".") + , (24777, 0, "c") + , (24778, 0, "o") + , (24779, 0, "n") + , (24780, 0, "t") + , (24781, 0, "e") + , (24782, 0, "n") + , (24783, 0, "t") + , (24784, 0, "_") + , (24777, 8, "content_slice") + , (24790, 0, "(") + , (24791, 0, ")") + , (24792, 0, " ") + , (24793, 0, "{") + , (24794, 0, "\n ") + , (24811, 0, "\n ") + , (24795, 16, "") + , (24796, 16, " }") + , (24795, 0, " ") + , (24825, 0, "\n ") + , (24795, 16, "") + , (24822, 0, "\n ") + , (24810, 12, "") + , (24823, 0, "u") + , (24824, 0, "n") + , (24825, 0, "i") + , (24826, 0, "m") + , (24823, 4, "unimplemented!") + , (24837, 0, "(") + , (24838, 0, ")") + , (24839, 0, ";") + , (24795, 0, " ") + , (24795, 16, "") + , (24733, 1, "") + , (24732, 1, "") + , (24731, 1, "") + , (24730, 1, "") + , (24718, 3, "") + , (24718, 1, "") + , (24726, 1, "") + , (24725, 1, "") + , (24717, 5, "n") + , (24762, 0, ")") + , (24758, 0, "(") + , (24759, 4, "*") + , (24760, 0, "n") + , (24781, 0, " ") + , (24797, 0, "i") + , (24798, 0, "t") + , (24799, 0, "e") + , (24800, 0, "m") + , (24801, 0, ".") + , (24802, 0, "c") + , (24803, 0, "o") + , (24804, 0, "n") + , (24805, 0, "t") + , (24806, 0, "a") + , (24807, 0, "i") + , (24808, 0, "n") + , (24809, 0, "s") + , (24802, 8, "contains") + , (24810, 0, "(") + , (24810, 1, "") + , (24810, 0, "_") + , (24811, 0, "i") + , (24812, 0, "t") + , (24813, 0, "e") + , (24802, 12, "contains_item") + , (24815, 0, "(") + , (24816, 0, "q") + , (24817, 0, "u") + , (24818, 0, "e") + , (24819, 0, "r") + , (24820, 0, "y") + , (24821, 0, ")") + , (2835, 6, "") + , (2836, 4, "s") + , (2837, 0, "e") + , (2838, 0, "l") + , (2839, 0, "f") + , (24791, 0, "i") + , (24792, 0, "f") + , (24793, 0, " ") + , (24794, 0, "l") + , (24795, 0, "e") + , (24796, 0, "t") + , (24797, 0, " ") + , (24798, 0, "S") + , (24799, 0, "o") + , (24800, 0, "m") + , (24801, 0, "e") + , (24802, 0, "(") + , (24803, 0, "o") + , (24804, 0, "f") + , (24805, 0, "f") + , (24806, 0, "s") + , (24807, 0, "e") + , (24808, 0, "t") + , (24809, 0, ")") + , (24810, 0, " ") + , (24811, 0, "=") + , (24812, 0, " ") + , (24838, 0, " ") + , (24839, 0, "{") + , (24840, 0, "\n ") + , (24861, 0, "\n ") + , (24841, 20, "") + , (24842, 20, " }") + , (24841, 0, " ") + , (24841, 20, "") + , (24727, 0, "\n ") + , (24740, 0, "l") + , (24741, 0, "e") + , (24742, 0, "t") + , (24743, 0, " ") + , (24744, 0, "o") + , (24745, 0, "f") + , (24746, 0, "f") + , (24747, 0, "s") + , (24748, 0, "e") + , (24749, 0, "t") + , (24749, 0, "m") + , (24750, 0, "u") + , (24750, 1, "") + , (24749, 1, "") + , (24744, 0, "m") + , (24745, 0, "u") + , (24746, 0, "t") + , (24747, 0, " ") + , (24754, 0, ":") + , (24755, 0, " ") + , (24756, 0, "i") + , (24757, 0, "s") + , (24757, 1, "") + , (24756, 1, "") + , (24756, 0, "s") + , (24757, 0, "i") + , (24757, 1, "") + , (24756, 1, "") + , (24756, 0, "u") + , (24757, 0, "s") + , (24758, 0, "i") + , (24759, 0, "z") + , (24760, 0, "e") + , (24761, 0, " ") + , (24762, 0, "=") + , (24763, 0, " ") + , (24764, 0, "0") + , (24765, 0, ";") + , (24898, 0, " ") + , (24899, 0, "e") + , (24900, 0, "l") + , (24901, 0, "s") + , (24902, 0, "e") + , (24903, 0, " ") + , (24904, 0, "{") + , (24905, 0, "\n ") + , (24906, 20, " }") + , (24842, 0, "i") + , (24843, 0, "t") + , (24844, 0, "e") + , (24845, 0, "m") + , (24846, 0, "_") + , (24910, 0, "\n ") + , (24931, 0, "o") + , (24932, 0, "f") + , (24933, 0, "f") + , (24934, 0, "s") + , (24935, 0, "e") + , (24936, 0, "t") + , (24937, 0, " ") + , (24938, 0, "+") + , (24939, 0, "=") + , (24940, 0, " ") + , (24941, 0, "C") + , (24942, 0, ":") + , (24943, 0, ":") + , (24944, 0, "get_usersize(_item: &Self::Item)") + , (24957, 18, "i") + , (24958, 0, "t") + , (24959, 0, "e") + , (24960, 0, "m") + , (24962, 0, ";") + , (24885, 0, " ") + , (24905, 0, "o") + , (24906, 0, "f") + , (24907, 0, "f") + , (24908, 0, "s") + , (24909, 0, "e") + , (24910, 0, "t") + , (24911, 0, " ") + , (24912, 0, "+") + , (24913, 0, "=") + , (24914, 0, " ") + , (24915, 0, "i") + , (24916, 0, "t") + , (24917, 0, "e") + , (24918, 0, "m") + , (24915, 4, "item_offset") + , (24926, 0, ";") + , (24927, 0, "\n ") + , (24948, 0, "b") + , (24949, 0, "r") + , (24950, 0, "e") + , (24951, 0, "a") + , (24952, 0, "k") + , (24953, 0, ";") + , (25064, 0, "\n ") + , (25077, 0, "/") + , (25078, 0, "/") + , (25079, 0, " ") + , (25080, 0, "t") + , (25081, 0, "O") + , (25082, 0, "D") + , (25082, 1, "") + , (25081, 1, "") + , (25080, 1, "") + , (25080, 0, "T") + , (25081, 0, "O") + , (25082, 0, "D") + , (25083, 0, "O") + , (25084, 0, ":") + , (25085, 0, " ") + , (25086, 0, "T") + , (25087, 0, "h") + , (25088, 0, "r") + , (25089, 0, "o") + , (25086, 4, "P") + , (25087, 0, "a") + , (25088, 0, "n") + , (25089, 0, "i") + , (25090, 0, "c") + , (25091, 0, " ") + , (25092, 0, "i") + , (25093, 0, "f") + , (25094, 0, " ") + , (25095, 0, "t") + , (25096, 0, "h") + , (25097, 0, "e") + , (25098, 0, " ") + , (25099, 0, "i") + , (25100, 0, "t") + , (25101, 0, "e") + , (25102, 0, "m") + , (25103, 0, " ") + , (25104, 0, "i") + , (25105, 0, "s") + , (25106, 0, "n") + , (25107, 0, "'") + , (25108, 0, "t") + , (25109, 0, " ") + , (25110, 0, "f") + , (25111, 0, "o") + , (25112, 0, "u") + , (25113, 0, "n") + , (25114, 0, "d") + , (25115, 0, ".") + , (25116, 0, " ") + , (25117, 0, "T") + , (25117, 1, "") + , (25117, 0, "C") + , (25118, 0, "u") + , (25119, 0, "r") + , (25120, 0, "r") + , (25121, 0, "e") + , (25122, 0, "n") + , (25123, 0, "t") + , (24766, 0, "\n ") + , (24779, 0, "l") + , (24780, 0, "e") + , (24781, 0, "t") + , (24782, 0, " ") + , (24783, 0, "m") + , (24784, 0, "u") + , (24785, 0, "t") + , (24786, 0, " ") + , (24787, 0, "f") + , (24788, 0, "o") + , (24789, 0, "u") + , (24790, 0, "n") + , (24791, 0, "d") + , (24792, 0, " ") + , (24793, 0, "=") + , (24794, 0, " ") + , (24795, 0, "f") + , (24796, 0, "a") + , (24797, 0, "l") + , (24798, 0, "s") + , (24799, 0, "e") + , (24800, 0, ";") + , (24962, 0, "\n ") + , (24983, 0, "f") + , (24984, 0, "o") + , (24985, 0, "u") + , (24986, 0, "n") + , (24987, 0, "d") + , (24988, 0, " ") + , (24989, 0, "=") + , (24990, 0, " ") + , (24991, 0, "t") + , (24992, 0, "r") + , (24993, 0, "u") + , (24994, 0, "e") + , (24995, 0, ";") + , (25146, 47, "") + , (25146, 0, "a") + , (25147, 0, "s") + , (25148, 0, "s") + , (25149, 0, "e") + , (25150, 0, "r") + , (25151, 0, "t") + , (25152, 0, "(") + , (25152, 1, "") + , (25152, 0, "!") + , (25153, 0, "(") + , (25154, 0, "f") + , (25155, 0, "o") + , (25156, 0, "u") + , (25157, 0, "n") + , (25158, 0, "d") + , (25159, 0, ")") + , (25160, 0, ";") + , (25159, 0, ",") + , (25160, 0, " ") + , (25161, 0, "\"") + , (25162, 0, "M") + , (25162, 1, "") + , (25162, 0, "I") + , (25163, 0, "n") + , (25164, 0, "v") + , (25165, 0, "a") + , (25166, 0, "l") + , (25167, 0, "i") + , (25168, 0, "d") + , (25169, 0, " ") + , (25170, 0, "m") + , (25171, 0, "a") + , (25172, 0, "r") + , (25173, 0, "k") + , (25174, 0, " ") + , (25175, 0, "e") + , (25175, 1, "") + , (25174, 1, "") + , (25174, 0, "e") + , (25175, 0, "r") + , (25176, 0, " ") + , (25177, 0, "-") + , (25178, 0, " ") + , (25179, 0, "i") + , (25180, 0, "t") + , (25181, 0, "e") + , (25182, 0, "m") + , (25183, 0, " ") + , (25184, 0, "n") + , (25185, 0, "o") + , (25186, 0, "t") + , (25187, 0, " ") + , (25188, 0, "f") + , (25189, 0, "o") + , (25190, 0, "u") + , (25191, 0, "n") + , (25192, 0, "d") + , (25193, 0, " ") + , (25194, 0, "i") + , (25195, 0, "n") + , (25196, 0, " ") + , (25197, 0, "n") + , (25198, 0, "o") + , (25199, 0, "d") + , (25200, 0, "e") + , (25201, 0, "\"") + , (25204, 0, "\n ") + , (25217, 0, "\n ") + , (25205, 12, "") + , (25218, 0, "/") + , (25219, 0, "/") + , (25220, 0, " ") + , (25221, 0, "N") + , (25222, 0, "o") + , (25223, 0, "w") + , (25224, 0, " ") + , (25225, 0, "w") + , (25226, 0, "e") + , (25227, 0, " ") + , (25228, 0, "n") + , (25229, 0, "e") + , (25230, 0, "e") + , (25231, 0, "d") + , (25232, 0, " ") + , (25233, 0, "t") + , (25234, 0, "o") + , (25235, 0, " ") + , (25236, 0, "m") + , (25237, 0, "a") + , (25238, 0, "k") + , (25239, 0, "e") + , (25240, 0, " ") + , (25241, 0, "a") + , (25242, 0, " ") + , (25243, 0, "c") + , (25244, 0, "u") + , (25245, 0, "r") + , (25246, 0, "s") + , (25247, 0, "o") + , (25248, 0, "r") + , (25249, 0, " ") + , (25250, 0, "a") + , (25251, 0, "t") + , (25252, 0, " ") + , (25253, 0, "t") + , (25254, 0, "h") + , (25255, 0, "e") + , (25256, 0, " ") + , (25257, 0, "u") + , (25258, 0, "s") + , (25259, 0, "e") + , (25260, 0, "r") + , (25261, 0, "p") + , (25262, 0, "o") + , (25263, 0, "s") + , (25264, 0, ".") + , (25256, 0, " ") + , (25257, 0, "n") + , (25258, 0, "o") + , (25259, 0, "d") + , (25260, 0, "e") + , (25261, 0, "/") + , (25262, 1, "") + , (25269, 0, " ") + , (25270, 0, "p") + , (25271, 0, "a") + , (25272, 0, "i") + , (25273, 0, "r") + , (25270, 0, "l") + , (25271, 0, "o") + , (25272, 0, "c") + , (25273, 0, "a") + , (25274, 0, "t") + , (25275, 0, "i") + , (25276, 0, "o") + , (25277, 0, "n") + , (25278, 0, " ") + , (25284, 0, "\n ") + , (25297, 0, "l") + , (25298, 0, "e") + , (25299, 0, "t") + , (25300, 0, " ") + , (25301, 0, "c") + , (25302, 0, "u") + , (25303, 0, "r") + , (25304, 0, "s") + , (25305, 0, "o") + , (25305, 1, "") + , (25301, 4, "cursor") + , (25307, 0, " ") + , (25308, 0, "=") + , (25309, 0, " ") + , (25310, 0, "C") + , (25311, 0, "u") + , (25312, 0, "r") + , (25313, 0, "s") + , (25314, 0, "o") + , (25315, 0, "r") + , (25316, 0, " ") + , (25317, 0, "{") + , (25318, 0, "\n ") + , (25335, 0, "\n ") + , (25319, 16, "") + , (25320, 16, " }") + , (25333, 0, ";") + , (25319, 0, " ") + , (25335, 0, "e") + , (25336, 0, "n") + , (25337, 0, "t") + , (25335, 3, "eprint!") + , (25335, 7, "ent") + , (25338, 0, "e") + , (25335, 4, "") + , (25335, 0, "e") + , (25336, 0, "n") + , (25337, 0, "t") + , (25338, 0, "r") + , (25339, 0, "i") + , (25340, 0, "e") + , (25341, 0, "s") + , (25342, 0, ":") + , (25343, 0, " ") + , (25344, 0, "[") + , (25345, 0, "]") + , (25316, 0, "<") + , (25317, 0, "C") + , (25318, 0, ">") + , (25318, 1, "") + , (25317, 1, "") + , (25316, 1, "") + , (25318, 0, "\n ") + , (25335, 0, "u") + , (25336, 0, "s") + , (25337, 0, "e") + , (25338, 0, "r") + , (25339, 0, "p") + , (25340, 0, "o") + , (25341, 0, "s") + , (25342, 0, ":") + , (25343, 0, " ") + , (25344, 0, "0") + , (25345, 0, ",") + , (25346, 0, "\n ") + , (25363, 0, "l") + , (25364, 0, "o") + , (25365, 0, "c") + , (25366, 0, "a") + , (25367, 0, "l") + , (25368, 0, "_") + , (25369, 0, "i") + , (25370, 0, "n") + , (25371, 0, "d") + , (25363, 9, "local_index") + , (25374, 0, ":") + , (25375, 0, " ") + , (25376, 0, "0") + , (25377, 0, ",") + , (24787, 14, "") + , (24787, 0, "l") + , (24788, 0, "o") + , (24789, 0, "c") + , (24790, 0, "a") + , (24791, 0, "l") + , (24792, 0, "_") + , (24793, 0, "i") + , (24794, 0, "n") + , (24795, 0, "d") + , (24796, 0, "e") + , (24797, 0, "x") + , (24798, 0, " ") + , (24799, 0, "=") + , (24800, 0, " ") + , (24801, 0, "N") + , (24802, 0, "o") + , (24803, 0, "n") + , (24804, 0, "e") + , (24805, 0, ";") + , (24988, 13, "") + , (24988, 0, "l") + , (24989, 0, "o") + , (24990, 0, "c") + , (24991, 0, "a") + , (24992, 0, "l") + , (24993, 0, "_") + , (24988, 6, "local_index") + , (24999, 0, " ") + , (25000, 0, "=") + , (25001, 0, " ") + , (25002, 0, "S") + , (25003, 0, "o") + , (25004, 0, "m") + , (25005, 0, "e") + , (25006, 0, "(") + , (24851, 0, ".") + , (24852, 0, "e") + , (24853, 0, "n") + , (24854, 0, "u") + , (24855, 0, "m") + , (24852, 4, "enumerate") + , (24861, 0, "(") + , (24862, 0, ")") + , (24823, 0, "(") + , (24824, 0, "i") + , (24825, 0, ")") + , (24825, 1, "") + , (24825, 0, ",") + , (24826, 0, " ") + , (24831, 0, ")") + , (24856, 0, ".") + , (24857, 0, "i") + , (24858, 0, "t") + , (24859, 0, "e") + , (24860, 0, "r") + , (24861, 0, "(") + , (24862, 0, ")") + , (25031, 0, "i") + , (25032, 0, ")") + , (25033, 0, ";") + , (25184, 14, "") + , (25184, 0, "l") + , (25185, 0, "e") + , (25186, 0, "t") + , (25187, 0, " ") + , (25188, 0, "l") + , (25189, 0, "o") + , (25190, 0, "c") + , (25191, 0, "a") + , (25192, 0, "l") + , (25193, 0, "_") + , (25194, 0, "i") + , (25195, 0, "n") + , (25196, 0, "d") + , (25197, 0, "e") + , (25198, 0, "x") + , (25199, 0, " ") + , (25200, 0, "=") + , (25201, 0, " ") + , (25202, 0, "u") + , (25202, 1, "") + , (25202, 0, "l") + , (25203, 0, "o") + , (25204, 0, "c") + , (25205, 0, "a") + , (25206, 0, "l") + , (25202, 5, "local_index") + , (25213, 0, ".") + , (25214, 0, "u") + , (25215, 0, "n") + , (25214, 2, "") + , (25213, 1, "") + , (25213, 0, ".") + , (25214, 0, "e") + , (25215, 0, "x") + , (25216, 0, "p") + , (25217, 0, "e") + , (25214, 4, "expect(msg: &str)") + , (25221, 9, "") + , (25221, 1, "") + , (25221, 1, "") + , (25202, 61, "") + , (25172, 31, "") + , (25171, 1, "") + , (25343, 1, "") + , ( 25343 + , 0 + , "local_index.expect(\"Invalid marker - item not found in node\")" + ) + , (25311, 1, "") + , (25311, 0, "o") + , (25312, 0, "f") + , (25313, 0, "f") + , (25314, 0, "s") + , (25315, 0, "e") + , (25316, 0, "t") + , (25311, 6, "") + , (25311, 0, "0") + , ( 25432 + , 0 + , "\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX" + ) + , (25489, 16, " ") + , (25433, 16, " ") + , (25538, 0, "\n ") + , (25539, 20, " ") + , ( 25431 + , 125 + , "[SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT]," + ) + , (25542, 12, " ") + , (25500, 16, " ") + , (25444, 16, " ") + , (25610, 17, "r") + , (25611, 0, "e") + , (25612, 0, "t") + , (25613, 0, "u") + , (25614, 0, "r") + , (25615, 0, "n") + , (25616, 0, " ") + , (25617, 0, "c") + , (25618, 0, "r") + , (25618, 1, "") + , (25610, 8, "") + , (25610, 0, "c") + , (25611, 0, "u") + , (25612, 0, "r") + , (25613, 0, "s") + , (25614, 0, "o") + , (25615, 0, "r") + , (25596, 0, "\n ") + , (25609, 0, "\n ") + , (25597, 12, "") + , (25610, 0, "f") + , (25611, 0, "o") + , (25612, 0, "r") + , (25613, 0, " ") + , (25614, 0, "i") + , (25615, 0, " ") + , (25616, 0, "i") + , (25617, 0, "n") + , (25618, 0, " ") + , (25619, 0, "0") + , (25619, 1, "") + , (25619, 0, "0") + , (25620, 0, ".") + , (25621, 0, ".") + , (25622, 0, "s") + , (25623, 0, "e") + , (25624, 0, "l") + , (25625, 0, "f") + , (25626, 0, ".") + , (25627, 0, "h") + , (25628, 0, "e") + , (25629, 0, "i") + , (25629, 1, "") + , (25628, 1, "") + , (25627, 1, "") + , (25627, 0, "h") + , (25628, 0, "e") + , (25629, 0, "a") + , (25630, 0, "d") + , (25631, 0, ".") + , (25632, 0, "h") + , (25633, 0, "e") + , (25634, 0, "i") + , (25632, 3, "height") + , (25638, 0, " ") + , (25639, 0, "a") + , (25640, 0, "s") + , (25641, 0, " ") + , (25642, 0, "u") + , (25643, 0, "s") + , (25644, 0, "i") + , (25645, 0, "z") + , (25646, 0, "e") + , (25647, 0, " ") + , (25648, 0, "{") + , (25649, 0, "\n ") + , (25666, 0, "\n ") + , (25650, 16, "") + , (25651, 16, " }") + , (25650, 0, " ") + , (25650, 16, "") + , (25596, 0, "\n ") + , (25609, 0, "\n ") + , (25597, 12, "") + , (25610, 0, "c") + , (25611, 0, "u") + , (25612, 0, "r") + , (25613, 0, "s") + , (25614, 0, "o") + , (25615, 0, "r") + , (25616, 0, ".") + , (25617, 0, "e") + , (25618, 0, "n") + , (25619, 0, "t") + , (25620, 0, "r") + , (25621, 0, "i") + , (25622, 0, "e") + , (25623, 0, "s") + , (25624, 0, "[") + , (25625, 0, "0") + , (25626, 0, "]") + , (25627, 0, " ") + , (25628, 0, "=") + , (25629, 0, " ") + , (25630, 0, "S") + , (25631, 0, "k") + , (25632, 0, "i") + , (25633, 0, "p") + , (25630, 4, "SkipEntry") + , (25639, 0, " ") + , (25640, 0, "{") + , (25641, 0, "\n ") + , (25658, 0, "\n ") + , (25642, 16, "") + , (25643, 16, " }") + , (25656, 0, ";") + , (25642, 0, " ") + , (25658, 0, "n") + , (25659, 0, "o") + , (25660, 0, "d") + , (25661, 0, "e") + , (25662, 0, ":") + , (25663, 0, " ") + , (25664, 0, "n") + , (25665, 0, ",") + , (25666, 0, "\n ") + , (25683, 0, "s") + , (25684, 0, "k") + , (25685, 0, "i") + , (25686, 0, "p") + , (25687, 0, "_") + , (25688, 0, "u") + , (25689, 0, "s") + , (25690, 0, "e") + , (25691, 0, "r") + , (25692, 0, "s") + , (25693, 0, "i") + , (25683, 11, "skip_usersize") + , (25696, 0, ":") + , (25697, 0, " ") + , (25698, 0, "o") + , (25699, 0, "f") + , (25700, 0, "f") + , (25701, 0, "s") + , (25702, 0, "e") + , (25703, 0, "t") + , (25268, 0, "m") + , (25269, 0, "u") + , (25270, 0, "t") + , (25271, 0, " ") + , (25777, 0, " ") + , (25777, 16, "") + , (25746, 1, "") + , (25746, 0, "1") + , (25777, 0, " ") + , (25777, 16, "") + , (24710, 0, " ") + , (24711, 0, "m") + , (24712, 0, "u") + , (24713, 0, "t") + , (25781, 0, " ") + , (25797, 0, "n") + , (25798, 0, " ") + , (25799, 0, "=") + , (25800, 0, " ") + , (25801, 0, "n") + , (25802, 0, ".") + , (25802, 1, "") + , (25801, 1, "") + , (25801, 0, "(") + , (25802, 0, "*") + , (25803, 0, "n") + , (25804, 0, ")") + , (25805, 0, ".") + , (25806, 0, "p") + , (25807, 0, "a") + , (25808, 0, "r") + , (25809, 0, "e") + , (25810, 0, "n") + , (25811, 0, "t") + , (25812, 0, "r") + , (25812, 1, "") + , (25812, 0, ";") + , (25813, 0, "\n ") + , (25830, 0, "/") + , (25831, 0, "/") + , (25832, 0, " ") + , (25833, 0, "A") + , (25834, 0, "n") + , (25835, 0, "d") + , (25836, 0, " ") + , (25837, 0, "f") + , (25838, 0, "i") + , (25839, 0, "n") + , (25840, 0, "d") + , (25841, 0, " ") + , (25842, 0, "t") + , (25843, 0, "h") + , (25844, 0, "e") + , (25845, 0, " ") + , (25846, 0, "o") + , (25847, 0, "f") + , (25848, 0, "f") + , (25849, 0, "s") + , (25850, 0, "e") + , (25851, 0, "t") + , (25846, 6, "l") + , (25847, 0, "o") + , (25848, 0, "c") + , (25849, 0, "a") + , (25850, 0, "l") + , (25851, 0, " ") + , (25852, 0, "o") + , (25853, 0, "f") + , (25854, 0, "f") + , (25855, 0, "s") + , (25856, 0, "e") + , (25857, 0, "t") + , (25858, 0, ".") + , (25859, 0, " ") + , (25860, 0, "N") + , (25861, 0, "o") + , (25862, 0, "t") + , (25863, 0, "e") + , (25878, 0, "\n ") + , (25891, 0, "a") + , (25892, 0, "s") + , (25893, 0, "d") + , (25894, 0, "f") + , (25895, 0, "j") + , (25896, 0, "h") + , (25897, 0, "a") + , (25898, 0, "s") + , (25899, 0, "k") + , (25900, 0, "d") + , (25901, 0, "f") + , (25902, 0, "j") + , (25903, 0, "h") + , (25891, 13, "u") + , (25892, 0, "n") + , (25891, 2, "unimplemented!") + , (25905, 0, "(") + , (25906, 0, ")") + , (25907, 0, ";") + , (2727, 8, "I") + , (2728, 0, "t") + , (2729, 0, "e") + , (2730, 0, "m") + , (2731, 0, "Q") + , (2732, 0, "u") + , (2733, 0, "e") + , (2734, 0, "r") + , (2735, 0, "y") + , (2738, 0, "\n ") + , (2743, 0, "t") + , (2744, 0, "y") + , (2745, 0, "p") + , (2746, 0, "e") + , (2747, 0, " ") + , (2748, 0, "Q") + , (2749, 0, "u") + , (2750, 0, "e") + , (2751, 0, "r") + , (2752, 0, "y") + , (2753, 0, ":") + , (2754, 0, " ") + , (2754, 1, "") + , (2753, 1, "") + , (2753, 0, ";") + , (2754, 0, "\n ") + , (2872, 4, "Q") + , (2755, 4, "") + , (2869, 0, "u") + , (2870, 0, "e") + , (2871, 0, "r") + , (2872, 0, "y") + , (2868, 0, "S") + , (2869, 0, "e") + , (2870, 0, "l") + , (2871, 0, "f") + , (2872, 0, ":") + , (2873, 0, ":") + , (2743, 0, "// ") + , (2763, 3, "") + , (2763, 0, "// ") + , (2743, 3, "") + , (2727, 9, "Q") + , (2728, 0, "u") + , (2729, 0, "e") + , (2730, 0, "r") + , (2731, 0, "y") + , (2732, 0, "a") + , (2733, 0, "b") + , (2734, 0, "l") + , (2735, 0, "e") + , (24543, 0, "<") + , (24544, 0, "Q") + , (24545, 0, ":") + , (24546, 0, " ") + , (24547, 0, "Q") + , (24548, 0, "u") + , (24549, 0, "e") + , (24550, 0, "r") + , (24547, 4, "Queryable") + , (24556, 0, ">") + , (24600, 7, "") + , (24600, 0, "Q") + , (24601, 0, ":") + , (24602, 0, ":") + , (24603, 0, "Q") + , (24604, 0, "u") + , (24605, 0, "e") + , (24606, 0, "r") + , (24607, 0, "y") + , (24543, 14, "") + , (24543, 0, "") + , (24545, 11, "") + , (24627, 8, "Q") + , (24628, 0, "u") + , (24629, 0, "e") + , (24630, 0, "r") + , (24627, 4, "Queryable") + , (24545, 1, "") + , (24544, 1, "") + , (24543, 1, "") + , (24586, 1, "") + , (24586, 0, "(") + , (24587, 0, "C") + , (24588, 0, ":") + , (24589, 0, ":") + , (24590, 0, "I") + , (24591, 0, "t") + , (24592, 0, "e") + , (24593, 0, "m") + , (24594, 0, " ") + , (24595, 0, "a") + , (24596, 0, "s") + , (24597, 0, " ") + , (24597, 1, "") + , (24596, 1, "") + , (24595, 1, "") + , (24594, 1, "") + , (24594, 0, " ") + , (24595, 0, "a") + , (24596, 0, "s") + , (24597, 0, " ") + , (24598, 0, "Q") + , (24599, 0, "u") + , (24600, 0, "e") + , (24601, 0, "r") + , (24602, 0, "y") + , (24598, 5, "Queryable") + , (24607, 0, ">") + , (24607, 1, "") + , (24607, 0, ">") + , (24586, 1, "") + , (24586, 0, "<") + , (24586, 1, "") + , (24586, 0, "(") + , (24607, 1, "") + , (24607, 0, ")") + , (24594, 14, "") + , (24586, 1, "") + , (24586, 0, "<") + , (24594, 0, " ") + , (24595, 0, "a") + , (24596, 0, "s") + , (24597, 0, " ") + , (24598, 0, "Q") + , (24599, 0, "u") + , (24600, 0, "e") + , (24601, 0, "r") + , (24602, 0, "y") + , (24603, 0, "a") + , (24604, 0, "b") + , (24605, 0, "l") + , (24606, 0, "e") + , (24607, 0, ">") + , (24615, 1, "") + , (24615, 0, ")") + , (24516, 0, "\n ") + , (24521, 0, "\n ") + , (24517, 4, "") + , (24522, 0, "p") + , (24523, 0, "u") + , (24524, 0, "b") + , (24525, 0, " ") + , (24526, 0, "f") + , (24527, 0, "n") + , (24528, 0, " ") + , (24529, 0, "i") + , (24530, 0, "t") + , (24531, 0, "e") + , (24532, 0, "r") + , (24533, 0, "_") + , (24534, 0, "a") + , (24535, 0, "t") + , (24536, 0, "_") + , (24537, 0, "n") + , (24538, 0, "o") + , (24539, 0, "d") + , (24540, 0, "e") + , (24541, 0, "(") + , (24542, 0, "&") + , (24543, 0, "m") + , (24544, 0, "u") + , (24545, 0, "t") + , (24546, 0, " ") + , (24547, 0, "s") + , (24548, 0, "e") + , (24549, 0, "l") + , (24550, 0, "f") + , (24551, 0, ",") + , (24552, 0, " ") + , (24553, 0, "n") + , (24554, 0, "o") + , (24555, 0, "d") + , (24556, 0, "e") + , (24557, 0, ":") + , (24558, 0, " ") + , (24559, 0, "&") + , (24559, 1, "") + , (24559, 0, "*") + , (24560, 0, "m") + , (24561, 0, "u") + , (24562, 0, "t") + , (24563, 0, " ") + , (24564, 0, "N") + , (24565, 0, "o") + , (24566, 0, "d") + , (24567, 0, "e") + , (24568, 0, ")") + , (24569, 0, " ") + , (24570, 0, "{") + , (24571, 0, "\n ") + , (24580, 0, "\n ") + , (24572, 8, "") + , (24573, 8, " }") + , (24568, 0, "<") + , (24569, 0, "C") + , (24570, 0, ">") + , (24522, 4, "") + , (24568, 0, " ") + , (24569, 0, "-") + , (24570, 0, ">") + , (24571, 0, " ") + , (24572, 0, "C") + , (24573, 0, "u") + , (24574, 0, "r") + , (24575, 0, "s") + , (24576, 0, "o") + , (24572, 5, "Cursor") + , (24578, 0, "<") + , (24579, 0, "C") + , (24580, 0, ">") + , (24522, 0, "u") + , (24523, 0, "n") + , (24524, 0, "s") + , (24525, 0, "a") + , (24526, 0, "f") + , (24527, 0, "e") + , (24528, 0, " ") + , ( 24591 + , 0 + , "\n // Now we need to make a cursor at the node/userpos location pair.\n let mut cursor = Cursor {\n userpos: 0,\n local_index: local_index.expect(\"Invalid marker - item not found in node\"),\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };" + ) + , (24591, 0, " ") + , (24599, 0, "l") + , (24600, 0, "e") + , (24601, 0, "t") + , (24602, 0, " ") + , (24603, 0, "m") + , (24604, 0, "u") + , (24605, 0, "t") + , (24606, 0, " ") + , (24607, 0, "o") + , (24608, 0, "f") + , (24609, 0, "f") + , (24610, 0, "s") + , (24611, 0, "e") + , (24612, 0, "t") + , (24613, 0, " ") + , (24614, 0, "=") + , (24615, 0, " ") + , (24616, 0, "0") + , (24617, 0, ";") + , (24574, 0, ",") + , (24575, 0, " ") + , (24576, 0, "s") + , (24577, 0, "i") + , (24577, 1, "") + , (24576, 1, "") + , (24576, 0, "o") + , (24577, 0, "f") + , (24578, 0, "f") + , (24579, 0, "s") + , (24580, 0, "e") + , (24581, 0, "t") + , (24582, 0, ":") + , (24583, 0, " ") + , (24584, 0, "s") + , (24585, 0, "i") + , (24586, 0, "z") + , (24587, 0, "e") + , (24588, 0, "_") + , (24588, 1, "") + , (24587, 1, "") + , (24586, 1, "") + , (24585, 1, "") + , (24584, 1, "") + , (24584, 0, "u") + , (24585, 0, "s") + , (24586, 0, "i") + , (24587, 0, "z") + , (24588, 0, "e") + , (24606, 27, "") + , (24605, 1, "") + , (24576, 0, "m") + , (24577, 0, "u") + , (24578, 0, "t") + , (24579, 0, " ") + , (25023, 12, " ") + , (24991, 16, " ") + , (24945, 20, " ") + , (24885, 20, " ") + , (24847, 16, " ") + , (24755, 16, " ") + , (24727, 16, " ") + , (24689, 12, " ") + , (24610, 12, " ") + , (24610, 74, "") + , (24609, 1, "") + , (24667, 0, " ") + , (24668, 0, "/") + , (24669, 0, "/") + , (24670, 0, " ") + , (24671, 0, "W") + , (24672, 0, "e") + , (24673, 0, "'") + , (24674, 0, "l") + , (24675, 0, "l") + , (24676, 0, " ") + , (24677, 0, "s") + , (24678, 0, "e") + , (24679, 0, "t") + , (24680, 0, " ") + , (24681, 0, "t") + , (24682, 0, "h") + , (24683, 0, "i") + , (24684, 0, "s") + , (24685, 0, " ") + , (24686, 0, "l") + , (24687, 0, "a") + , (24688, 0, "t") + , (24689, 0, "e") + , (24690, 0, "r") + , (24691, 0, ".") + , (24718, 61, "") + , (24718, 0, "u") + , (24719, 0, "s") + , (24720, 0, "i") + , (24721, 0, "z") + , (24722, 0, "e") + , (24723, 0, ":") + , (24724, 0, ":") + , (24725, 0, "M") + , (24726, 0, "A") + , (24727, 0, "X") + , (24729, 0, " ") + , (24730, 0, "/") + , (24731, 0, "/") + , (24732, 0, " ") + , (24733, 0, "s") + , (24734, 0, "e") + , (24735, 0, "t") + , (24733, 3, "m") + , (24734, 0, "u") + , (24735, 0, "s") + , (24736, 0, "t") + , (24737, 0, " ") + , (24738, 0, "b") + , (24739, 0, "e") + , (24740, 0, " ") + , (24741, 0, "s") + , (24742, 0, "e") + , (24743, 0, "t") + , (24744, 0, " ") + , (24745, 0, "b") + , (24746, 0, "y") + , (24747, 0, " ") + , (24748, 0, "c") + , (24749, 0, "a") + , (24750, 0, "l") + , (24751, 0, "l") + , (24752, 0, "e") + , (24753, 0, "r") + , (24754, 0, ".") + , (24755, 0, " ") + , (24756, 0, "(") + , (24757, 0, "M") + , (24758, 0, "a") + , (24759, 0, "y") + , (24760, 0, "b") + , (24761, 0, "e") + , (24762, 0, " ") + , (24763, 0, "t") + , (24764, 0, "h") + , (24765, 0, "i") + , (24766, 0, "s") + , (24767, 0, " ") + , (24762, 6, " ") + , (24763, 0, "s") + , (24764, 0, "h") + , (24765, 0, "o") + , (24766, 0, "u") + , (24767, 0, "l") + , (24768, 0, "d") + , (24769, 0, " ") + , (24770, 0, "j") + , (24771, 0, "u") + , (24772, 0, "s") + , (24773, 0, "t") + , (24774, 0, " ") + , (24775, 0, "b") + , (24776, 0, "e") + , (24777, 0, " ") + , (24778, 0, "p") + , (24779, 0, "a") + , (24780, 0, "s") + , (24781, 0, "e") + , (24781, 1, "") + , (24781, 0, "s") + , (24782, 0, "e") + , (24783, 0, "d") + , (24784, 0, " ") + , (24785, 0, "i") + , (24786, 0, "n") + , (24787, 0, ")") + , (24718, 70, "l") + , (24719, 0, "o") + , (24720, 0, "c") + , (24721, 0, "a") + , (24722, 0, "l") + , (24723, 0, "_") + , (24724, 0, "i") + , (24725, 0, "n") + , (24726, 0, "d") + , (24727, 0, "e") + , (24728, 0, "x") + , (24729, 0, ",") + , (24593, 0, ",") + , (24594, 0, " ") + , (24595, 0, "l") + , (24596, 0, "o") + , (24597, 0, "c") + , (24598, 0, "a") + , (24599, 0, "l") + , (24600, 0, "_") + , (24601, 0, "i") + , (24602, 0, "n") + , (24603, 0, "d") + , (24604, 0, "e") + , (24605, 0, "x") + , (24606, 0, ":") + , (24607, 0, " ") + , (24608, 0, "u") + , (24609, 0, "s") + , (24610, 0, "i") + , (24611, 0, "z") + , (24612, 0, "e") + , (24921, 0, "\n ") + , (24930, 0, "\n ") + , (24922, 8, "") + , (24931, 0, "\n ") + , (24923, 8, "") + , (24932, 0, "c") + , (24933, 0, "u") + , (24934, 0, "r") + , (24935, 0, "s") + , (24936, 0, "o") + , (24937, 0, "r") + , (24921, 0, "\n ") + , (24930, 0, "\n ") + , (24922, 8, "") + , (24923, 8, "") + , ( 24922 + , 0 + , "\n for i in 1..self.head.height as usize {\n n = (*n).parent;\n // And find the local offset. Note\n }" + ) + , (25059, 12, " ") + , (25008, 16, " ") + , (24975, 16, " ") + , (24923, 12, " ") + , (25057, 1, "") + , (25056, 1, "") + , (26215, 122, "") + , ( 24922 + , 0 + , "\n cursor.entries[0] = SkipEntry {\n node: n,\n skip_usersize: offset\n };" + ) + , (25030, 12, " ") + , (24992, 16, " ") + , (24967, 16, " ") + , (24923, 12, " ") + , (25028, 0, "\n ") + , (25029, 8, "") + , (24556, 4, "n") + , (25026, 0, "\n ") + , (25035, 0, "/") + , (25036, 0, "/") + , (25037, 0, " ") + , (24556, 0, "m") + , (24557, 0, "u") + , (24558, 0, "t") + , (24559, 0, " ") + , (25042, 0, "N") + , (25043, 0, "o") + , (25044, 0, "w") + , (25045, 0, " ") + , (25046, 0, "w") + , (25047, 0, "e") + , (25048, 0, " ") + , (25049, 0, "n") + , (25050, 0, "e") + , (25051, 0, "e") + , (25052, 0, "d") + , (25053, 0, " ") + , (25054, 0, "t") + , (25055, 0, "o") + , (25056, 0, " ") + , (25057, 0, "w") + , (25058, 0, "a") + , (25059, 0, "l") + , (25060, 0, "k") + , (25061, 0, " ") + , (25062, 0, "u") + , (25063, 0, "p") + , (25064, 0, " ") + , (25065, 0, "t") + , (25066, 0, "h") + , (25067, 0, "e") + , (25068, 0, " ") + , (25069, 0, "p") + , (25070, 0, "a") + , (25071, 0, "r") + , (25072, 0, "e") + , (25073, 0, "n") + , (25074, 0, "t") + , (25075, 0, "s") + , (25076, 0, "'") + , (25077, 0, " ") + , (25078, 0, "t") + , (25079, 0, "r") + , (25080, 0, "e") + , (25081, 0, "e") + , (24923, 0, "\n ") + , (24932, 0, "l") + , (24933, 0, "e") + , (24934, 0, "t") + , (24935, 0, " ") + , (24936, 0, "m") + , (24937, 0, "u") + , (24938, 0, "t") + , (24939, 0, " ") + , (24940, 0, "h") + , (24941, 0, "e") + , (24942, 0, "i") + , (24943, 0, "g") + , (24944, 0, "h") + , (24945, 0, "t") + , (24946, 0, " ") + , (24947, 0, "=") + , (24948, 0, " ") + , (24949, 0, "0") + , (24950, 0, ";") + , (24951, 0, "\n ") + , (24960, 0, "\n ") + , (24952, 8, "") + , (24961, 0, "f") + , (24962, 0, "o") + , (24963, 0, "r") + , (24964, 0, " ") + , (24932, 0, "// ") + , (24968, 0, "h") + , (24969, 0, " ") + , (24970, 0, "i") + , (24971, 0, "n") + , (24972, 0, " ") + , (24973, 0, "0") + , (24974, 0, ".") + , (24975, 0, ".") + , (24976, 0, "(") + , (24977, 0, "*") + , (24978, 0, "n") + , (24979, 0, ")") + , (24980, 0, ".") + , (24981, 0, "h") + , (24982, 0, "e") + , (24983, 0, "i") + , (24984, 0, "g") + , (24985, 0, "h") + , (24986, 0, "t") + , (24987, 0, " ") + , (24987, 0, " ") + , (24988, 0, "a") + , (24989, 0, "s") + , (24990, 0, " ") + , (24991, 0, "u") + , (24992, 0, "s") + , (24993, 0, "i") + , (24994, 0, "z") + , (24995, 0, "e") + , (24996, 0, " ") + , (24997, 0, "{") + , (25095, 8, " ") + , (25061, 12, " ") + , (25040, 12, " ") + , (25000, 8, " ") + , (25121, 0, "\n ") + , (25122, 12, " }") + , (25027, 1, "") + , (25027, 0, "h") + , (24998, 1, "") + , (25183, 0, "\n ") + , (25192, 0, "for h in 0..(*n).height as usize { ") + , (24955, 0, "\n ") + , (24964, 0, "/") + , (24965, 0, "/") + , (24966, 0, " ") + , (24967, 0, "C") + , (24968, 0, "o") + , (24969, 0, "u") + , (24970, 0, "l") + , (24971, 0, "d") + , (24972, 0, " ") + , (24973, 0, "e") + , (24974, 0, "v") + , (24975, 0, "e") + , (24976, 0, "n") + , (24977, 0, " ") + , (24978, 0, "j") + , (24979, 0, "u") + , (24980, 0, "s") + , (24981, 0, "t") + , (24982, 0, " ") + , (24964, 19, "") + , (24960, 4, "") + , (24956, 4, "") + , (24955, 1, "") + , (25146, 11, "") + , (24955, 0, "\n ") + , (24964, 0, "\n ") + , (24956, 8, "") + , (24957, 8, "") + , (24956, 0, "\n ") + , (24965, 0, "l") + , (24966, 0, "e") + , (24967, 0, "t") + , (24968, 0, " ") + , (24969, 0, "h") + , (24970, 0, " ") + , (24971, 0, "=") + , (24972, 0, " ") + , (24969, 3, "m") + , (24970, 0, "m") + , (24970, 1, "") + , (24970, 0, "u") + , (24971, 0, "t") + , (24972, 0, " ") + , (24973, 0, "h") + , (24974, 0, " ") + , (24975, 0, "=") + , (24976, 0, " ") + , (24977, 0, "0") + , (24978, 0, ";") + , (24979, 0, "\n ") + , (24988, 0, "w") + , (24989, 0, "h") + , (24990, 0, "i") + , (24991, 0, "l") + , (24988, 4, "") + , (24988, 0, "l") + , (24989, 0, "o") + , (24990, 0, "o") + , (24991, 0, "p") + , (24992, 0, " ") + , (24993, 0, "{") + , (24994, 0, "\n ") + , (25007, 1, "\n ") + , (25008, 12, " }") + , (25007, 0, "w") + , (25008, 0, "h") + , (25009, 0, "i") + , (25010, 0, "l") + , (25011, 0, "e") + , (25012, 0, " ") + , (25013, 0, "h") + , (25014, 0, " ") + , (25015, 0, "<") + , (25016, 0, " ") + , (25017, 0, "(*n).height") + , (25028, 0, " ") + , (25029, 0, "a") + , (25030, 0, "s") + , (25031, 0, " ") + , (25032, 0, "u") + , (25033, 0, "s") + , (25034, 0, "i") + , (25035, 0, "z") + , (25036, 0, "e") + , (25037, 0, " ") + , (25038, 0, "{") + , (25039, 0, "\n ") + , (25056, 0, "\n ") + , (25040, 16, "") + , (25041, 16, " }") + , (25109, 122, "") + , ( 25040 + , 0 + , " cursor.entries[h] = SkipEntry {\n node: n,\n skip_usersize: offset\n };\n" + ) + , (25162, 0, " ") + , (25147, 12, " ") + , (25109, 16, " ") + , (25084, 16, " ") + , (25040, 12, " ") + , (25177, 1, "") + , (25258, 0, "// ") + , (25215, 0, "// ") + , (25195, 0, "\n ") + , (25208, 0, "\n ") + , (25196, 12, "") + , (25498, 0, "// ") + , (25451, 0, "// ") + , (25422, 0, "// ") + , (25374, 0, "// ") + , (25330, 0, "// ") + , (25197, 12, "") + , (25197, 0, " n = (*n).parent;") + , (25197, 4, " ") + , (25225, 0, "\n ") + , (25238, 0, "i") + , (25239, 0, "f") + , (25240, 0, " ") + , (25241, 0, "n") + , (25242, 0, " ") + , (25243, 0, "=") + , (25244, 0, "=") + , (25245, 0, " ") + , (25246, 0, "s") + , (25247, 0, "e") + , (25248, 0, "l") + , (25249, 0, "f") + , (25250, 0, ".") + , (25251, 0, "h") + , (25252, 0, "e") + , (25253, 0, "a") + , (25254, 0, "d") + , (25246, 0, "&") + , (25256, 0, " ") + , (25257, 0, "{") + , (25258, 0, " ") + , (25259, 0, "b") + , (25260, 0, "r") + , (25261, 0, "e") + , (25262, 0, "a") + , (25263, 0, "k") + , (25264, 0, ";") + , (25265, 0, " ") + , (25266, 0, "}") + , (25267, 0, "\n ") + , (25268, 12, "") + , (25242, 0, "a") + , (25243, 0, "s") + , (25244, 0, " ") + , (25244, 1, "") + , (25243, 1, "") + , (25242, 1, "") + , (25242, 0, " ") + , (25243, 0, "a") + , (25244, 0, "s") + , (25245, 0, " ") + , (25246, 0, "*") + , (25247, 0, "c") + , (25248, 0, "o") + , (25249, 0, "n") + , (25250, 0, "s") + , (25251, 0, "t") + , (25252, 0, " ") + , (25253, 0, "_") + , (25268, 0, " ") + , (25269, 0, "a") + , (25270, 0, "s") + , (25271, 0, " ") + , (25272, 0, "*") + , (25273, 0, "c") + , (25274, 0, "o") + , (25275, 0, "n") + , (25276, 0, "s") + , (25277, 0, "t") + , (25278, 0, " ") + , (25279, 0, "_") + , (25269, 12, "") + , (25280, 0, " ") + , (25280, 12, "") + , (25279, 1, "") + , (25225, 0, "\n ") + , (25238, 0, "\n ") + , (25226, 12, "") + , (25227, 12, "") + , (25226, 0, "\n ") + , (25227, 12, "") + , (25181, 0, "\n ") + , (25182, 16, "") + , (25181, 1, "") + , (25180, 1, "") + , (25179, 1, "") + , (25178, 1, "") + , (25177, 1, "") + , (25177, 0, "\n ") + , (25194, 0, "h") + , (25195, 0, " ") + , (25196, 0, "+") + , (25197, 0, "=") + , (25198, 0, " ") + , (25199, 0, "1") + , (25200, 0, ";") + , (25177, 0, "\n ") + , (25263, 0, " ") + , (25178, 16, "") + , (25259, 0, "d") + , (25260, 0, "e") + , (25261, 0, "b") + , (25262, 0, "u") + , (25263, 0, "g") + , (25259, 5, "debug_assert!") + , (25272, 0, "(") + , (25273, 0, "(") + , (25274, 0, "*") + , (25275, 0, "n") + , (25276, 0, ")") + , (25277, 0, ".") + , (25278, 0, "h") + , (25279, 0, "e") + , (25280, 0, "i") + , (25281, 0, "g") + , (25282, 0, "h") + , (25283, 0, "t") + , (25284, 0, " ") + , (25285, 0, ">") + , (25286, 0, " ") + , (25287, 0, "h") + , (25288, 0, ")") + , (25289, 0, ";") + , (25288, 0, " ") + , (25289, 0, "a") + , (25290, 0, "s") + , (25291, 0, " ") + , (25288, 4, "") + , (25284, 0, " ") + , (25285, 0, "a") + , (25286, 0, "s") + , (25287, 0, " ") + , (25288, 0, "u") + , (25289, 0, "s") + , (25290, 0, "i") + , (25291, 0, "z") + , (25292, 0, "e") + , (25355, 0, "\n") + , (25301, 1, "") + , (25354, 0, "\n") + , (25300, 1, "") + , (25353, 0, "\n debug_assert!((*n).height as usize > h);") + , (25247, 53, "") + , (25300, 0, "\n n = (*n).parent;") + , (25218, 29, "") + , (25271, 0, "\n") + , (25217, 1, "") + , (25216, 0, "\n ") + , (25229, 0, "\n ") + , (25217, 12, "") + , (25230, 0, "/") + , (25231, 0, "/") + , (25232, 0, " ") + , (25233, 0, "?") + , (25234, 0, "?") + , (25235, 0, " ") + , (25236, 0, "C") + , (25237, 0, "o") + , (25238, 0, "u") + , (25239, 0, "l") + , (25240, 0, "d") + , (25241, 0, " ") + , (25242, 0, "i") + , (25243, 0, "n") + , (25244, 0, "s") + , (25245, 0, "t") + , (25246, 0, "e") + , (25247, 0, "a") + , (25248, 0, "d") + , (25249, 0, " ") + , (25250, 0, "c") + , (25251, 0, "h") + , (25252, 0, "e") + , (25253, 0, "c") + , (25254, 0, "k") + , (25255, 0, " ") + , (25256, 0, "i") + , (25257, 0, "f") + , (25258, 0, " ") + , (25259, 0, "n") + , (25260, 0, " ") + , (25261, 0, "i") + , (25262, 0, "s") + , (25263, 0, " ") + , (25264, 0, "n") + , (25265, 0, "u") + , (25266, 0, "l") + , (25267, 0, "l") + , (25268, 0, ".") + , (25408, 0, " ") + , (25408, 12, "") + , (25233, 2, "S") + , (25234, 0, "h") + , (25235, 0, "o") + , (25236, 0, "u") + , (25237, 0, "l") + , (25238, 0, "d") + , (25239, 6, "") + , (25247, 0, " ") + , (25248, 0, "b") + , (25249, 0, "e") + , (25250, 0, " ") + , (25251, 0, "a") + , (25252, 0, "b") + , (25253, 0, "l") + , (25254, 0, "e") + , (25255, 0, " ") + , (25256, 0, "t") + , (25257, 0, "o") + , (25417, 0, " ") + , (25429, 0, "/") + , (25430, 0, "/") + , (25431, 0, " ") + , (25432, 0, "A") + , (25433, 0, "n") + , (25434, 0, "d") + , (25435, 0, " ") + , (25436, 0, "u") + , (25437, 0, "p") + , (25437, 1, "") + , (25436, 1, "") + , (25436, 0, "f") + , (25437, 0, "i") + , (25438, 0, "g") + , (25439, 0, "u") + , (25440, 0, "r") + , (25441, 0, "e") + , (25442, 0, " ") + , (25443, 0, "o") + , (25444, 0, "u") + , (25445, 0, "t") + , (25446, 0, " ") + , (25447, 0, "t") + , (25448, 0, "h") + , (25449, 0, "e") + , (25450, 0, " ") + , (25451, 0, "o") + , (25452, 0, "f") + , (25453, 0, "f") + , (25454, 0, "s") + , (25455, 0, "e") + , (25456, 0, "t") + , (25457, 0, ".") + , (25346, 0, "l") + , (25347, 0, "e") + , (25348, 0, "t") + , (25349, 0, " ") + , (25350, 1, "p") + , (25351, 0, "a") + , (25352, 0, "r") + , (25353, 0, "e") + , (25354, 0, "n") + , (25355, 0, "t") + , (25467, 0, "\n ") + , (25480, 0, "\n ") + , (25468, 12, "") + , (25481, 0, "n") + , (25482, 0, " ") + , (25483, 0, "=") + , (25484, 0, " ") + , (25485, 0, "p") + , (25486, 0, "a") + , (25487, 0, "r") + , (25488, 0, "e") + , (25489, 0, "n") + , (25490, 0, "t") + , (25491, 0, ";") + , (25466, 1, "") + , (25466, 0, " ") + , (25467, 0, "f") + , (25468, 0, "r") + , (25469, 0, "o") + , (25470, 0, "m") + , (25471, 0, " ") + , (25472, 0, "p") + , (25473, 0, "a") + , (25474, 0, "r") + , (25475, 0, "e") + , (25476, 0, "n") + , (25477, 0, "t") + , (25478, 0, " ") + , (25479, 0, "t") + , (25480, 0, "o") + , (25481, 0, " ") + , (25482, 0, "n") + , (25483, 0, ".") + , (25484, 0, "\n ") + , ( 25497 + , 0 + , " let mut n = new_node_ptr;\n loop {\n n = (*n).nexts_mut()[new_height_usize - 2].node;\n if n.is_null() || (*n).height >= new_height { break; }\n\n (*n).parent = new_node_ptr;\n }" + ) + , (25485, 24, " ") + , (25485, 38, "") + , (25485, 214, "") + , (25484, 1, "") + , (25484, 0, "\n ") + , (25497, 0, "\n ") + , (25485, 12, "") + , (25486, 12, "") + , (25441, 3, "W") + , (25442, 0, "a") + , (25443, 0, "l") + , (25444, 0, "k") + , (25445, 0, " ") + , (25446, 0, "f") + , (25447, 0, "r") + , (25448, 0, "o") + , (25449, 0, "m") + , (25450, 0, " ") + , (25451, 0, "b") + , (25452, 0, "p") + , (25452, 1, "") + , (25451, 1, "") + , (25451, 0, "p") + , (25452, 0, "a") + , (25453, 0, "r") + , (25454, 0, "e") + , (25455, 0, "n") + , (25456, 0, "t") + , (25457, 0, " ") + , (25458, 0, "b") + , (25459, 0, "a") + , (25460, 0, "c") + , (25461, 0, "k") + , (25462, 0, " ") + , (25463, 0, "t") + , (25464, 0, "o") + , (25465, 0, " ") + , (25466, 0, "n") + , (25467, 0, ",") + , (25468, 0, " ") + , (25468, 1, "") + , (25474, 1, "") + , (25474, 0, "i") + , (25475, 0, "n") + , (25476, 0, "g") + , (25492, 18, ".") + , (25493, 0, "\n ") + , (25506, 0, "l") + , (25507, 0, "e") + , (25508, 0, "t") + , (25509, 0, " ") + , (25510, 0, "i") + , (25510, 1, "") + , (25510, 0, "c") + , (25511, 0, "u") + , (25511, 1, "") + , (25511, 0, " ") + , (25512, 0, "=") + , (25513, 0, " ") + , (25514, 0, "p") + , (25515, 0, "a") + , (25516, 0, "r") + , (25517, 0, "e") + , (25518, 0, "n") + , (25519, 0, "t") + , (25520, 0, ";") + , (25521, 0, "\n ") + , (25534, 0, "w") + , (25535, 0, "h") + , (25536, 0, "i") + , (25537, 0, "l") + , (25538, 0, "e") + , (25539, 0, " ") + , (25540, 0, "c") + , (25541, 0, " ") + , (25542, 0, "!") + , (25543, 0, "=") + , (25544, 0, " ") + , (25545, 0, "n") + , (25546, 0, " ") + , (25547, 0, "{") + , (25548, 0, "\n ") + , (25565, 0, "\n ") + , (25549, 16, "") + , (25550, 16, " }") + , (25549, 0, " ") + , (25565, 0, "c") + , (25566, 0, " ") + , (25567, 0, "=") + , (25568, 0, " ") + , (25569, 0, "(") + , (25570, 0, "*") + , (25571, 0, "c") + , (25572, 0, ")") + , (25573, 0, ".") + , (25574, 0, "n") + , (25575, 0, "e") + , (25576, 0, "x") + , (25577, 0, "s") + , (25577, 1, "") + , (25577, 0, "t") + , (25578, 0, "s") + , (25579, 0, "[") + , (25580, 0, "(") + , (25581, 0, "*") + , (25582, 0, "c") + , (25583, 0, ")") + , (25584, 0, ".") + , (25585, 0, "h") + , (25586, 0, "e") + , (25587, 0, "i") + , (25588, 0, "g") + , (25589, 0, "h") + , (25590, 0, "t") + , (25591, 0, " ") + , (25592, 0, "-") + , (25593, 0, " ") + , (25594, 0, "1") + , (25594, 1, "") + , (25594, 0, "2") + , (25400, 1, "") + , (25400, 0, "p") + , (25401, 0, "a") + , (25402, 0, "r") + , (25403, 0, "e") + , (25404, 0, "n") + , (25405, 0, "t") + , (25371, 0, "\n ") + , (25372, 12, "") + , (25371, 1, "") + , (25429, 0, "\n ") + , (25442, 0, "\n ") + , (25430, 12, "") + , (25443, 0, "l") + , (25444, 0, "e") + , (25445, 0, "t") + , (25446, 0, " ") + , (25447, 0, "p") + , (25448, 0, "_") + , (25449, 0, "h") + , (25450, 0, "e") + , (25451, 0, "i") + , (25452, 0, "g") + , (25453, 0, "h") + , (25454, 0, "t") + , (25455, 0, " ") + , (25456, 0, "=") + , (25457, 0, " ") + , (25458, 0, "(") + , (25459, 0, "*") + , (25460, 0, "p") + , (25461, 0, "a") + , (25462, 0, "r") + , (25463, 0, "e") + , (25464, 0, "n") + , (25465, 0, "t") + , (25466, 0, ")") + , (25467, 0, ".") + , (25468, 0, "h") + , (25469, 0, "e") + , (25470, 0, "i") + , (25471, 0, "g") + , (25472, 0, "h") + , (25473, 0, "t") + , (25474, 0, ";") + , (25475, 0, "\n") + , (25430, 1, "") + , (25474, 0, "\n debug_assert!((*parent).height as usize > h);") + , (25372, 58, "") + , (25443, 16, "p") + , (25444, 0, "_") + , (25445, 0, "h") + , (25446, 0, "e") + , (25447, 0, "i") + , (25448, 0, "g") + , (25449, 0, "h") + , (25450, 0, "t") + , (25451, 9, "") + , (25415, 0, " ") + , (25416, 0, "a") + , (25417, 0, "s") + , (25418, 0, " ") + , (25419, 0, "s") + , (25420, 0, "u") + , (25420, 1, "") + , (25419, 1, "") + , (25419, 0, "u") + , (25420, 0, "s") + , (25421, 0, "i") + , (25422, 0, "z") + , (25423, 0, "e") + , (25467, 1, "") + , (25424, 0, " ") + , (25425, 0, "-") + , (25426, 0, " ") + , (25427, 0, "1") + , (25426, 2, "") + , (25424, 2, "") + , (25467, 0, "\n") + , (25419, 5, "") + , (25419, 0, "su") + , (25418, 3, "") + , (25415, 3, "") + , (25451, 0, " as usize") + , (25443, 8, "(*parent).height") + , (25416, 58, "") + , (25372, 0, " debug_assert!((*parent).height as usize > h);\n") + , (25474, 1, "") + , (25430, 0, "\n") + , (25443, 32, "let p_height = (*parent).height as usize - 1;") + , (25447, 8, "w") + , (25448, 0, "a") + , (25449, 0, "l") + , (25450, 0, "k") + , (25451, 0, "_") + , (25452, 0, "h") + , (25453, 0, "e") + , (25454, 0, "i") + , (25455, 0, "g") + , (25456, 0, "h") + , (25457, 0, "t") + , (25491, 1, "") + , (25431, 0, " \n") + , (25504, 68, "") + , ( 25444 + , 0 + , " // Walk from parent back to n, figuring out the offset.\n" + ) + , (25572, 28, "") + , (25512, 0, " let c = parent;\n") + , (25439, 4, "") + , (25435, 4, "") + , (25431, 4, "") + , (25430, 1, "") + , (25646, 15, "") + , (25646, 0, "w") + , (25647, 0, "a") + , (25648, 0, "l") + , (25649, 0, "k") + , (25650, 0, "_") + , (25651, 0, "h") + , (25652, 0, "e") + , (25653, 0, "i") + , (25646, 8, "walk_height") + , (25657, 0, "]") + , (25585, 1, "") + , (25585, 0, "2") + , (25585, 1, "") + , (25585, 0, "1") + , (25585, 1, "") + , (25585, 0, "2") + , (25631, 0, "l") + , (25632, 0, "e") + , (25633, 0, "t") + , (25634, 0, " ") + , (25635, 0, "e") + , (25636, 0, "l") + , (25637, 0, "e") + , (25638, 0, "m") + , (25639, 0, " ") + , (25640, 0, "=") + , (25641, 1, "") + , (25641, 1, "") + , (25641, 1, "") + , (25641, 1, "") + , (25641, 0, " ") + , (25665, 0, ";") + , (25666, 0, "\n ") + , (25683, 0, "c") + , (25684, 0, " ") + , (25685, 0, "=") + , (25686, 0, " ") + , (25687, 0, "e") + , (25688, 0, "l") + , (25689, 0, "e") + , (25690, 0, "m") + , (25691, 0, "e") + , (25692, 0, ".") + , (25692, 1, "") + , (25691, 1, "") + , (25691, 0, ".") + , (25692, 0, "n") + , (25693, 0, "o") + , (25694, 0, "d") + , (25695, 0, "e") + , (25696, 0, ";") + , (25666, 0, "\n ") + , (25683, 0, "o") + , (25684, 0, "f") + , (25685, 0, "f") + , (25686, 0, "s") + , (25687, 0, "e") + , (25688, 0, "t") + , (25689, 0, " ") + , (25690, 0, "+") + , (25691, 0, "=") + , (25692, 0, " ") + , (25693, 0, "e") + , (25694, 0, "l") + , (25695, 0, "e") + , (25696, 0, "m") + , (25697, 0, ".") + , (25698, 0, "s") + , (25699, 0, "k") + , (25700, 0, "i") + , (25701, 0, "p") + , (25702, 0, "_") + , (25703, 0, "u") + , (25698, 6, "skip_usersize") + , (25711, 0, ";") + , (25515, 0, "m") + , (25516, 0, "u") + , (25517, 0, "t") + , (25518, 0, " ") + , (25762, 1, "") + , (25797, 295, "") + , (25218, 115, "") + , (25217, 1, "") + , (25216, 1, "") + , (25216, 0, "\n ") + , (25325, 0, "\n ") + , (25217, 12, "") + , (25326, 0, "\n ") + , (25314, 12, "") + , (25327, 0, "i") + , (25328, 0, "f") + , (25329, 0, " ") + , (25330, 0, "p") + , (25331, 0, "a") + , (25332, 0, "r") + , (25333, 0, "e") + , (25334, 0, "n") + , (25335, 0, "t") + , (25336, 0, ".") + , (25337, 0, "i") + , (25338, 0, "s") + , (25339, 0, "_") + , (25340, 0, "n") + , (25341, 0, "u") + , (25342, 0, "l") + , (25343, 0, "l") + , (25344, 0, "(") + , (25345, 0, ")") + , (25346, 0, " ") + , (25347, 0, "{") + , (25348, 0, " ") + , (25349, 0, "b") + , (25350, 0, "r") + , (25351, 0, "e") + , (25352, 0, "a") + , (25353, 0, "k") + , (25354, 0, ";") + , (25355, 0, " ") + , (25356, 0, "}") + , (25314, 0, "\n ") + , (25327, 0, "/") + , (25328, 0, "/") + , (25329, 0, " ") + , (25330, 0, "R") + , (25331, 0, "e") + , (25332, 0, "a") + , (25333, 0, "c") + , (25334, 0, "h") + , (25335, 0, "e") + , (25336, 0, "d") + , (25337, 0, " ") + , (25338, 0, "t") + , (25339, 0, "h") + , (25340, 0, "e") + , (25341, 0, " ") + , (25342, 0, "h") + , (25343, 0, "e") + , (25344, 0, "a") + , (25345, 0, "d") + , (25346, 0, ".") + , (24955, 1, "") + , (24924, 31, "") + , (24923, 1, "") + , (25725, 0, "\n ") + , (25734, 0, "c") + , (25735, 0, "u") + , (25736, 0, "r") + , (25737, 0, "s") + , (25738, 0, "o") + , (25739, 0, "r") + , (25740, 0, ".") + , (25741, 0, "u") + , (25742, 0, "s") + , (25743, 0, "e") + , (25744, 0, "r") + , (25745, 0, "p") + , (25746, 0, "o") + , (25747, 0, "s") + , (25748, 0, " ") + , (25749, 0, "=") + , (25750, 0, " ") + , (25751, 0, "o") + , (25752, 0, "f") + , (25753, 0, "f") + , (25754, 0, "s") + , (25755, 0, "e") + , (25756, 0, "t") + , (25757, 0, ";") + , (26487, 610, "") + , (26487, 0, "\n ") + , (26500, 0, "s") + , (26501, 0, "e") + , (26502, 0, "l") + , (26503, 0, "f") + , (26504, 0, ".") + , (26505, 0, "i") + , (26506, 0, "t") + , (26507, 0, "e") + , (26508, 0, "r") + , (26509, 0, "_") + , ( 26505 + , 5 + , "iter_at_node(mut n: *mut Node, mut offset: usize, local_index: usize)" + ) + , (26518, 19, "n") + , (26521, 17, "o") + , (26522, 0, "f") + , (26523, 0, "f") + , (26524, 0, "s") + , (26525, 0, "e") + , (26526, 0, "t") + , (26529, 18, "l") + , (26530, 0, "o") + , (26531, 0, "c") + , (26532, 0, "a") + , (26533, 0, "l") + , (26534, 0, "_") + , (26535, 0, "i") + , (26536, 0, "n") + , (26537, 0, "d") + , (26538, 0, "e") + , (26539, 0, "x") + , (26541, 20, "") + , (26541, 0, "\n\n cursor") + , (26529, 11, "local_index: usize") + , (26521, 6, "mut offset: usize") + , (26518, 1, "mut n: *mut Node") + , (26505, 72, "iter_") + , (26487, 23, "") + , ( 26487 + , 0 + , "\n // Now we need to make a cursor at the node/userpos location pair.\n let mut cursor = Cursor {\n userpos: 0,\n local_index: local_index.expect(\"Invalid marker - item not found in node\"),\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };\n\n\n for i in 1..self.head.height as usize {\n n = (*n).parent;\n // And find the local offset. Note\n }\n unimplemented!();" + ) + , (25750, 8, "") + , (25750, 0, " offset;") + , (26487, 0, "self.iter_at_node(n, offset, local_index)") + , (26487, 0, " ") + , (26540, 0, "\n ") + , (26728, 61, "") + , (26541, 12, "") + , ( 26528 + , 11 + , "local_index.expect(\"Invalid marker - item not found in node\")" + ) + , (26590, 550, "") + , (26590, 20, "") + , (26486, 0, "\n ") + , (26499, 0, "\n ") + , (26487, 12, "") + , (26500, 0, "l") + , (26501, 0, "e") + , (26502, 0, "t") + , (26503, 0, " ") + , (26504, 0, "l") + , (26505, 0, "o") + , (26506, 0, "c") + , (26507, 0, "a") + , (26508, 0, "l") + , (26509, 0, "_") + , (26510, 0, "i") + , (26511, 0, "n") + , (26504, 8, "local_index") + , (26515, 0, " ") + , (26516, 0, "=") + , (26517, 0, " ") + , (26560, 61, "") + , ( 26518 + , 0 + , "local_index.expect(\"Invalid marker - item not found in node\")" + ) + , (26579, 0, ";") + , (26622, 0, "o") + , (26623, 0, "=") + , (26623, 1, "") + , (26623, 0, "l") + , (26624, 0, "o") + , (26624, 1, "") + , (26623, 1, "") + , (26622, 1, "") + , (26622, 0, "l") + , (26623, 0, "o") + , (26624, 0, "c") + , (26625, 0, "a") + , (26626, 0, "l") + , (26622, 5, "local_index") + , (26022, 3, "") + , (26021, 1, "") + , (20829, 0, "\n ") + , (20846, 0, "\n ") + , (20830, 16, "") + , (20847, 0, "/") + , (20848, 0, "/") + , (20849, 0, " ") + , (20850, 0, "C") + , (20851, 0, "h") + , (20852, 0, "e") + , (20853, 0, "c") + , (20854, 0, "k") + , (20855, 0, " ") + , (20856, 0, "t") + , (20857, 0, "h") + , (20858, 0, "e") + , (20859, 0, " ") + , (20860, 0, "v") + , (20861, 0, "a") + , (20862, 0, "l") + , (20863, 0, "u") + , (20864, 0, "e") + , (20865, 0, " ") + , (20866, 0, "r") + , (20867, 0, "e") + , (20868, 0, "t") + , (20869, 0, "u") + , (20870, 0, "r") + , (20871, 0, "n") + , (20872, 0, "e") + , (20873, 0, "d") + , (20874, 0, " ") + , (20875, 0, "b") + , (20876, 0, "y") + , (20877, 0, " ") + , (20878, 0, "t") + , (20879, 0, "h") + , (20880, 0, "e") + , (20881, 0, " ") + , (20882, 0, "i") + , (20883, 0, "t") + , (20884, 0, "e") + , (20885, 0, "r") + , (20886, 0, "a") + , (20887, 0, "t") + , (20888, 0, "o") + , (20889, 0, "r") + , (20890, 0, " ") + , (20891, 0, "f") + , (20892, 0, "u") + , (20893, 0, "n") + , (20894, 0, "c") + , (20895, 0, "t") + , (20896, 0, "i") + , (20897, 0, "o") + , (20898, 0, "n") + , (20899, 0, "s") + , (20900, 0, " ") + , (20901, 0, "m") + , (20902, 0, "a") + , (20903, 0, "t") + , (20904, 0, "c") + , (20905, 0, "h") + , (20906, 0, "e") + , (20907, 0, "s") + , (20908, 0, ".") + , (20909, 0, "\n ") + , (20926, 0, "s") + , (20927, 0, "e") + , (20928, 0, "l") + , (20929, 0, "f") + , (20930, 0, ".") + , (20931, 0, "i") + , (20932, 0, "t") + , (20933, 0, "e") + , (20934, 0, "r") + , ( 20931 + , 4 + , "iter_at_node(mut n: *mut Node, mut offset: usize, local_index: usize)" + ) + , (20944, 19, "n") + , (20947, 17, "n") + , (20948, 0, ".") + , (20949, 0, "g") + , (20950, 0, "e") + , (20951, 0, "t") + , (20952, 0, "_") + , (20953, 0, "l") + , (20954, 0, "o") + , (20954, 1, "") + , (20953, 1, "") + , (20953, 0, "u") + , (20954, 0, "s") + , (20955, 0, "e") + , (20956, 0, "r") + , (20957, 0, "l") + , (20958, 0, "e") + , (20959, 0, "n") + , (20960, 0, "(") + , (20961, 0, ")") + , (20964, 18, "n") + , (20965, 0, ".") + , (20966, 0, "n") + , (20967, 0, "u") + , (20968, 0, "m") + , (20969, 0, "_") + , (20970, 0, "i") + , (20971, 0, "t") + , (20966, 6, "num_items") + , (20976, 0, ";") + , (20926, 0, "l") + , (20927, 0, "e") + , (20928, 0, "t") + , (20929, 0, " ") + , (20930, 0, "n") + , (20931, 0, "o") + , (20932, 0, "d") + , (20933, 0, "e") + , (20934, 0, "_") + , (20935, 0, "i") + , (20936, 0, "t") + , (20937, 0, "e") + , (20938, 0, "r") + , (20939, 0, " ") + , (20940, 0, "=") + , (20941, 0, " ") + , (24728, 3, "c") + , (24729, 0, "o") + , (24730, 0, "n") + , (24731, 0, "s") + , (24732, 0, "t") + , (24796, 0, "\n ") + , (24805, 0, "l") + , (24806, 0, "e") + , (24807, 0, "t") + , (24808, 0, " ") + , (24809, 0, "n") + , (24810, 0, " ") + , (24811, 0, "=") + , (24812, 0, " ") + , (24809, 0, "m") + , (24810, 0, "u") + , (24811, 0, "t") + , (24812, 0, " ") + , (24817, 0, "n") + , (24818, 0, " ") + , (24819, 0, "a") + , (24820, 0, "s") + , (24821, 0, " ") + , (24822, 0, "*") + , (24823, 0, "m") + , (24824, 0, "u") + , (24825, 0, "t") + , (24826, 0, " ") + , (24827, 0, "_") + , (24828, 0, ";") + , (24720, 4, "") + , (24825, 0, "\n ") + , (24826, 8, "") + , (24825, 0, " ") + , (24826, 0, "/") + , (24827, 0, "/") + , (24828, 0, " ") + , (24829, 0, "W") + , (24830, 0, "e") + , (24831, 0, " ") + , (24832, 0, "d") + , (24833, 0, "o") + , (24834, 0, "n") + , (24835, 0, "'") + , (24836, 0, "t") + , (24837, 0, " ") + , (24838, 0, "m") + , (24839, 0, "u") + , (24840, 0, "t") + , (24841, 0, "a") + , (24842, 0, "t") + , (24843, 0, "e") + , (24844, 0, ",") + , (24845, 0, " ") + , (24846, 0, "b") + , (24847, 0, "u") + , (24848, 0, "t") + , (24849, 0, " ") + , (24823, 1, "N") + , (24824, 0, "o") + , (24825, 0, "d") + , (24826, 0, "e") + , (24827, 0, "<") + , (24828, 0, "C") + , (24829, 0, ">") + , (24856, 0, "w") + , (24857, 0, "e") + , (24858, 0, " ") + , (24859, 0, "n") + , (24860, 0, "e") + , (24861, 0, "e") + , (24862, 0, "d") + , (24863, 0, " ") + , (24864, 0, "a") + , (24865, 0, " ") + , (24866, 0, "m") + , (24867, 0, "u") + , (24868, 0, "t") + , (24869, 0, " ") + , (24870, 0, "p") + , (24871, 0, "t") + , (24872, 0, "r") + , (24873, 0, ".") + , (24709, 11, "") + , (24709, 0, "&mut self, ") + , (24710, 4, "") + , (20991, 0, " ") + , (20992, 0, "a") + , (20993, 0, "s") + , (20994, 0, " ") + , (20995, 0, "u") + , (20996, 0, "s") + , (20997, 0, "i") + , (20998, 0, "z") + , (20999, 0, "e") + , (20942, 0, "u") + , (20943, 0, "n") + , (20944, 0, "s") + , (20945, 0, "a") + , (20946, 0, "f") + , (20947, 0, "e") + , (20948, 0, " ") + , (20949, 0, "{") + , (20950, 0, " ") + , (21010, 0, " ") + , (21011, 0, "}") + , (21013, 0, "\n ") + , (21030, 0, "l") + , (21031, 0, "e") + , (21032, 0, "t") + , (21033, 0, " ") + , (21034, 0, "n") + , (21035, 0, "o") + , (21036, 0, "r") + , (21037, 0, "m") + , (21038, 0, "a") + , (21039, 0, "l") + , (21040, 0, "_") + , (21041, 0, "i") + , (21042, 0, "t") + , (21043, 0, "e") + , (21044, 0, "r") + , (21045, 0, " ") + , (21046, 0, "=") + , (21047, 0, " ") + , (21048, 0, "s") + , (21049, 0, "e") + , (21050, 0, "l") + , (21051, 0, "f") + , (21052, 0, ".") + , (21053, 0, "iter_at_userpos(target_userpos: usize)") + , (21069, 21, "n") + , (21070, 0, "u") + , (21071, 0, "m") + , (21072, 0, "u") + , (21073, 0, "s") + , (21074, 0, "e") + , (21075, 0, "r") + , (21075, 1, "") + , (21074, 1, "") + , (21073, 1, "") + , (21072, 1, "") + , (21072, 0, "_") + , (21073, 0, "u") + , (21074, 0, "s") + , (21075, 0, "e") + , (21076, 0, "r") + , (21077, 0, "c") + , (21078, 0, "o") + , (21079, 0, "u") + , (21080, 0, "n") + , (21081, 0, "t") + , (21083, 0, ";") + , ( 21084 + , 0 + , "\n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };" + ) + , (20910, 104, "") + , (21084, 0, "\n ") + , (21101, 0, "a") + , (21102, 0, "s") + , (21103, 0, "s") + , (21101, 3, "assert_eq!") + , (21111, 0, "(") + , (21112, 0, "n") + , (21113, 0, "o") + , (21114, 0, "r") + , (21115, 0, "m") + , (21116, 0, "a") + , (21117, 0, "l") + , (21118, 0, "_") + , (21119, 0, "i") + , (21120, 0, "t") + , (21121, 0, "e") + , (21122, 0, "r") + , (21123, 0, ",") + , (21124, 0, " ") + , (21125, 0, "n") + , (21126, 0, "o") + , (21127, 0, "d") + , (21128, 0, "e") + , (21129, 0, "_") + , (21130, 0, "i") + , (21131, 0, "t") + , (21132, 0, "e") + , (21133, 0, "r") + , (21134, 0, ")") + , (21135, 0, ";") + , (20930, 0, "(") + , (20942, 0, ",") + , (20943, 0, " ") + , (20944, 0, "_") + , (20945, 0, ")") + , (20944, 1, "") + , (20944, 0, "l") + , (20945, 0, "o") + , (20946, 0, "c") + , (20947, 0, "a") + , (20948, 0, "l") + , (20949, 0, "_") + , (20950, 0, "o") + , (20951, 0, "f") + , (20952, 0, "f") + , (20953, 0, "s") + , (20954, 0, "e") + , (20955, 0, "t") + , (20996, 0, "\n ") + , (21013, 0, "a") + , (21014, 0, "s") + , (21013, 2, "assert_eq!") + , (21023, 0, "(") + , (21024, 0, "l") + , (21025, 0, "o") + , (21026, 0, "c") + , (21027, 0, "a") + , (21028, 0, "l") + , (21029, 0, "_") + , (21030, 0, "o") + , (21031, 0, "f") + , (21032, 0, "f") + , (21033, 0, "s") + , (21034, 0, "e") + , (21035, 0, "t") + , (21036, 0, ",") + , (21037, 0, " ") + , (21038, 0, "n") + , (21039, 0, ".") + , (21040, 0, "g") + , (21041, 0, "e") + , (21042, 0, "t") + , (21043, 0, ")") + , (21044, 0, "u") + , (21044, 1, "") + , (21043, 1, "") + , (21043, 0, "_") + , (21044, 0, "u") + , (21045, 0, "s") + , (21046, 0, "e") + , (21047, 0, "r") + , (21048, 0, "l") + , (21049, 0, "e") + , (21040, 10, "get_userlen") + , (21051, 0, "(") + , (21052, 0, ")") + , (21053, 0, ")") + , (21054, 0, ";") + , (25816, 0, "\n // Reached the head.") + , (25741, 33, "") + , (25783, 0, "\n") + , (25740, 1, "") + , (25782, 0, "\n debug_assert!((*parent).height as usize > h);") + , (25682, 58, "") + , (25816, 0, "\n") + , (25783, 1, "") + , (25815, 0, "\n debug_assert!((*parent).height as usize > h);") + , (25725, 58, "") + , (25757, 0, "\n if parent.is_null() { break; }") + , (25682, 43, "") + , (25757, 0, "\n ") + , (25828, 1, "") + , (25758, 12, "") + , (25815, 1, "") + , (25815, 0, ";") + , (21038, 15, "0") + , (26024, 5, "") + , (26023, 1, "") + , (26023, 0, ".") + , (26024, 0, "n") + , (26025, 0, "e") + , (26026, 0, "x") + , (26027, 0, "t") + , (26028, 0, "s") + , (26029, 0, "_") + , (26030, 0, "m") + , (26031, 0, "u") + , (26032, 0, "t") + , (26033, 0, "(") + , (26034, 0, ")") + , (26029, 4, "") + , (18167, 0, "\n ") + , (18172, 0, "\n ") + , (18168, 4, "") + , (18173, 0, "f") + , (18174, 0, "n") + , (18175, 0, " ") + , (18176, 0, "i") + , (18177, 0, "s") + , (18178, 0, "_") + , (18179, 0, "h") + , (18180, 0, "e") + , (18181, 0, "a") + , (18182, 0, "d") + , (18183, 0, "(") + , (18184, 0, "*") + , (18184, 1, "") + , (18184, 0, "&") + , (18185, 0, "s") + , (18186, 0, "e") + , (18187, 0, "l") + , (18188, 0, "f") + , (18189, 0, ",") + , (18190, 0, " ") + , (18191, 0, "&") + , (18191, 1, "") + , (18191, 0, "*") + , (18192, 0, "m") + , (18192, 1, "") + , (18192, 0, "m") + , (18193, 0, "u") + , (18194, 0, "t") + , (18195, 0, " ") + , (18196, 0, "N") + , (18197, 0, "o") + , (18198, 0, "d") + , (18199, 0, "e") + , (18200, 0, "<") + , (18201, 0, "C") + , (18202, 0, ">") + , (18203, 0, ")") + , (18191, 0, "n") + , (18192, 0, "o") + , (18193, 0, "d") + , (18194, 0, "e") + , (18195, 0, ":") + , (18196, 0, " ") + , (18210, 0, " ") + , (18211, 0, "{") + , (18212, 0, "\n ") + , (18221, 0, "\n ") + , (18213, 8, "") + , (18214, 8, " }") + , (18213, 0, "is_head = n as *const _ == &self.head as *const _") + , (18213, 0, " ") + , (18221, 10, "") + , (18221, 1, "n") + , (18222, 0, "o") + , (18223, 0, "d") + , (18224, 0, "e") + , (18210, 0, " ") + , (18211, 0, "-") + , (18212, 0, ">") + , (18213, 0, " ") + , (18214, 0, "b") + , (18215, 0, "o") + , (18216, 0, "o") + , (18217, 0, "l") + , (19538, 0, "s") + , (19539, 0, "e") + , (19540, 0, "l") + , (19541, 0, "f") + , (19542, 0, ".") + , (19550, 0, "(") + , (19551, 0, "n") + , (19552, 0, ")") + , (19550, 3, "") + , (19538, 5, "") + , (18213, 5, "") + , (18213, 0, " bool") + , (19538, 0, "self.") + , (19538, 5, "") + , (19447, 71, "") + , (19467, 0, "s") + , (19468, 0, "e") + , (19469, 0, "l") + , (19470, 0, "f") + , (19471, 0, ".") + , (19479, 0, "(") + , (19480, 0, "n") + , (19481, 0, ")") + , (18198, 3, "c") + , (18199, 0, "o") + , (18200, 0, "n") + , (18201, 0, "s") + , (18202, 0, "t") + , (19888, 0, "s") + , (19889, 0, "e") + , (19890, 0, "l") + , (19891, 0, "f") + , (19892, 0, ".") + , (19900, 0, "(") + , (19901, 0, "n") + , (19902, 0, ")") + , (25828, 0, " ") + , (25828, 0, "p") + , (25828, 1, "") + , (25828, 0, "s") + , (25829, 0, "e") + , (25830, 0, "l") + , (25831, 0, "f") + , (25832, 0, ".") + , (25833, 0, "i") + , (25834, 0, "s") + , (25835, 0, "_") + , (25836, 0, "h") + , (25833, 4, "is_head(node: *const Node)") + , (25861, 0, ")") + , (25841, 0, "(") + , (25842, 20, "p") + , (25843, 0, "a") + , (25844, 0, "r") + , (25845, 0, "e") + , (25846, 0, "n") + , (25847, 0, "t") + , (25847, 1, "") + , (25847, 1, "") + , (25846, 1, "") + , (25841, 5, "p") + , (25842, 0, "a") + , (25843, 0, "r") + , (25844, 0, "e") + , (25845, 0, "n") + , (25846, 0, "t") + , (25848, 0, " ") + , (25849, 0, "|") + , (25850, 0, "|") + , (25801, 0, "\n ") + , (25814, 0, "/") + , (25815, 0, "/") + , (25816, 0, " ") + , (25817, 0, "I") + , (25818, 0, "f") + , (25819, 0, " ") + , (25820, 0, "w") + , (25821, 0, "e") + , (25822, 0, "'") + , (25823, 0, "r") + , (25824, 0, "e") + , (25825, 0, " ") + , (25826, 0, "t") + , (25827, 0, "h") + , (25828, 0, "e") + , (25829, 0, " ") + , (25830, 0, "s") + , (25831, 0, "a") + , (25832, 0, "m") + , (25833, 0, "e") + , (25834, 0, " ") + , (25835, 0, "h") + , (25836, 0, "i") + , (25837, 0, "e") + , (25837, 1, "") + , (25836, 1, "") + , (25835, 1, "") + , (25835, 0, "h") + , (25836, 0, "e") + , (25837, 0, "i") + , (25838, 0, "g") + , (25839, 0, "h") + , (25840, 0, "t") + , (25868, 24, "") + , (25897, 0, "\n ") + , (25906, 0, "|") + , (25907, 0, "|") + , (25908, 0, " ") + , (25906, 0, " ") + , (25910, 0, " ") + , (25917, 0, "self.is_head(parent) || ") + , (25940, 1, "") + , (25939, 1, "") + , (25938, 1, "") + , (25917, 0, "(") + , (25940, 0, ")") + , (25939, 0, "&") + , (25940, 0, "&") + , (25941, 0, " ") + , (25942, 0, "(*parent).height as usize > h") + , (25968, 1, "") + , (25968, 0, "=") + , (25969, 0, "=") + , (25841, 0, " ") + , (25842, 0, "a") + , (25843, 0, "s") + , (25844, 0, " ") + , (25845, 0, "t") + , (25846, 0, "h") + , (25847, 0, "e") + , (25848, 0, " ") + , (25849, 0, "p") + , (25850, 0, "a") + , (25851, 0, "r") + , (25852, 0, "e") + , (25853, 0, "n") + , (25854, 0, "t") + , (25855, 0, ",") + , (25856, 0, " ") + , (25817, 4, "W") + , (25822, 0, " ") + , (25823, 0, "e") + , (25824, 0, "i") + , (25825, 0, "t") + , (25826, 0, "h") + , (25827, 0, "e") + , (25828, 0, "r") + , (25817, 44, "I") + , (25818, 0, "f") + , (25819, 0, " ") + , (25820, 0, "w") + , (25821, 0, "e") + , (25822, 0, "'") + , (25823, 0, "r") + , (25824, 0, "e") + , (25825, 0, " ") + , (25826, 0, "t") + , (25827, 0, "h") + , (25828, 0, "e") + , (25829, 0, " ") + , (25830, 0, "s") + , (25831, 0, "a") + , (25832, 0, "m") + , (25833, 0, "e") + , (25834, 0, " ") + , (25835, 0, "h") + , (25836, 0, "e") + , (25837, 0, "i") + , (25838, 0, "g") + , (25839, 0, "h") + , (25840, 0, "t") + , (25841, 0, " ") + , (25842, 0, "a") + , (25843, 0, "s") + , (25844, 0, " ") + , (25845, 0, "t") + , (25846, 0, "h") + , (25847, 0, "e") + , (25848, 0, " ") + , (25849, 0, "p") + , (25850, 0, "a") + , (25851, 0, "r") + , (25852, 0, "e") + , (25853, 0, "n") + , (25854, 0, "t") + , (25855, 0, " ") + , (25856, 0, "i") + , (25857, 0, "t") + , (25858, 0, " ") + , (25859, 0, "s") + , (25859, 1, "") + , (25858, 1, "") + , (25858, 0, "s") + , (25859, 0, " ") + , (25860, 0, "i") + , (25861, 0, "f") + , (25862, 0, "n") + , (25863, 0, "e") + , (25864, 0, ".") + , (25859, 6, " ") + , (25860, 0, "f") + , (25861, 0, "i") + , (25862, 0, "n") + , (25863, 0, "e") + , (25864, 0, ".") + , (21098, 0, "\n ") + , (21115, 0, "/") + , (21116, 0, "/") + , (21117, 0, " ") + , (21118, 0, "D") + , (21119, 0, "i") + , (21120, 0, "r") + , (21121, 0, "e") + , (21122, 0, "t") + , (21122, 1, "") + , (21121, 1, "") + , (21121, 0, "t") + , (21122, 0, "y") + , (21123, 0, " ") + , (21124, 0, "h") + , (21125, 0, "a") + , (21126, 0, "c") + , (21127, 0, "k") + , (21128, 0, ".") + , (21129, 0, " ") + , (21130, 0, "I") + , (21131, 0, "f") + , (21132, 0, " ") + , (21133, 0, "a") + , (21134, 0, " ") + , (21135, 0, "n") + , (21136, 0, "o") + , (21130, 7, "T") + , (21131, 0, "h") + , (21132, 0, "e") + , (21133, 0, " ") + , (21133, 1, "") + , (21132, 1, "") + , (21131, 1, "") + , (21130, 1, "") + , (21130, 0, "I") + , (21131, 0, "f") + , (21132, 0, " ") + , (21133, 0, "n") + , (21134, 0, " ") + , (21135, 0, "h") + , (21136, 0, "a") + , (21137, 0, "s") + , (21138, 0, " ") + , (21139, 0, "0") + , (21140, 0, "-") + , (21141, 0, "s") + , (21142, 0, "i") + , (21143, 0, "z") + , (21144, 0, "e") + , (21145, 0, "d") + , (21146, 0, " ") + , (21147, 0, "e") + , (21148, 0, "l") + , (21149, 0, "e") + , (21150, 0, "m") + , (21151, 0, "e") + , (21152, 0, "n") + , (21153, 0, "t") + , (21154, 0, "s") + , (21155, 0, " ") + , (21156, 0, "a") + , (21157, 0, "t") + , (21158, 0, " ") + , (21159, 0, "t") + , (21160, 0, "h") + , (21161, 0, "e") + , (21162, 0, " ") + , (21163, 0, "e") + , (21164, 0, "n") + , (21165, 0, "d") + , (21166, 0, ",") + , (21167, 0, " ") + , (21168, 0, "t") + , (21169, 0, "h") + , (21170, 0, "e") + , (21171, 0, " ") + , (21172, 0, "c") + , (21173, 0, "u") + , (21174, 0, "r") + , (21175, 0, "s") + , (21176, 0, "o") + , (21177, 0, "r") + , (21172, 6, "n") + , (21173, 0, "o") + , (21174, 0, "r") + , (21175, 0, "m") + , (21176, 0, "a") + , (21177, 0, "l") + , (21178, 0, " ") + , (21179, 0, "c") + , (21180, 0, "u") + , (21181, 0, "r") + , (21182, 0, "s") + , (21183, 0, "o") + , (21184, 0, " ") + , (21184, 1, "") + , (21184, 0, "r") + , (21185, 0, " ") + , (21186, 0, "w") + , (21187, 0, "o") + , (21188, 0, "n") + , (21189, 0, "'") + , (21190, 0, "t") + , (21191, 0, " ") + , (21192, 0, "b") + , (21193, 0, "e") + , (21194, 0, " ") + , (21195, 0, "a") + , (21196, 0, "t") + , (21197, 0, " ") + , (21198, 0, "t") + , (21199, 0, "h") + , (21200, 0, "e") + , (21201, 0, " ") + , (21202, 0, "e") + , (21203, 0, "n") + , (21204, 0, "d") + , (21205, 0, ".") + , (21206, 0, ".") + , (21207, 0, ".") + , ( 21099 + , 109 + , " // Dirty hack. If n has 0-sized elements at the end, the normal\n // cursor won't be at the end..." + ) + , (21227, 0, "\n ") + , (21244, 0, "n") + , (21245, 0, "o") + , (21246, 0, "r") + , (21247, 0, "m") + , (21244, 4, "normal_iter") + , (21255, 0, ".") + , (21256, 0, "l") + , (21257, 0, "o") + , (21258, 0, "c") + , (21259, 0, "a") + , (21256, 4, "local_index") + , (21267, 0, " ") + , (21268, 0, "=") + , (21269, 0, " ") + , (21270, 0, "n") + , (21271, 0, "o") + , (21272, 0, "r") + , (21273, 0, "m") + , (21274, 0, "a") + , (21270, 5, "normal_iter") + , (21270, 11, "") + , (21270, 0, "n") + , (21271, 0, ".") + , (21272, 0, "n") + , (21273, 0, "u") + , (21274, 0, "m") + , (21275, 0, "_") + , (21272, 4, "num_items") + , (21281, 0, " ") + , (21281, 1, "") + , (21281, 0, " ") + , (21282, 0, "a") + , (21283, 0, "s") + , (21284, 0, " ") + , (21285, 0, "u") + , (21286, 0, "s") + , (21287, 0, "i") + , (21288, 0, "z") + , (21289, 0, "e") + , (21290, 0, ";") + , (20988, 0, "m") + , (20989, 0, "u") + , (20990, 0, "t") + , (20991, 0, " ") + , (21295, 0, "\n ") + , (21312, 0, "w") + , (21313, 0, "h") + , (21314, 0, "i") + , (21315, 0, "l") + , (21316, 0, "e") + , (21317, 0, " ") + , (21318, 0, "(") + , (21318, 1, "") + , (21318, 0, "n") + , (21319, 0, "o") + , (21320, 0, "r") + , (21321, 0, "m") + , (21322, 0, "a") + , (21318, 5, "normal_iter") + , (21329, 0, ".") + , (21330, 0, "here_ptr()") + , (21340, 0, ".") + , (21341, 0, "g") + , (21342, 0, "e") + , (21343, 0, "t") + , (21344, 0, "_") + , (21345, 0, "u") + , (21341, 5, "get_userlen") + , (21352, 0, "(") + , (21353, 0, ")") + , (21354, 0, " ") + , (21340, 15, "") + , (21340, 0, " ") + , (21341, 0, "!") + , (21342, 0, "=") + , (21343, 0, " ") + , (21344, 0, "n") + , (21345, 0, " ") + , (21346, 0, "{") + , (21347, 0, "\n ") + , (21368, 0, "n") + , (21369, 0, "o") + , (21370, 0, "r") + , (21371, 0, "m") + , (21372, 0, "a") + , (21373, 0, "l") + , (21368, 6, "normal_iter") + , (21379, 0, ".") + , (21380, 0, "a") + , (21381, 0, "d") + , (21382, 0, "v") + , (21383, 0, "a") + , (21384, 0, "n") + , (21380, 5, "advance_node") + , (21392, 0, "(") + , (21393, 0, ")") + , (21394, 0, ";") + , (21395, 0, "\n ") + , (21396, 20, " }") + , (21295, 52, "") + , (21232, 16, " ") + , (21232, 0, " while normal_iter.here_ptr() != n {\n") + , (21351, 48, "") + , (21284, 0, " normal_iter.advance_node();\n") + , (21399, 18, "") + , (21332, 20, " ") + , (21332, 0, " }\n") + , (21281, 0, " ") + , (21282, 0, "a") + , (21283, 0, "s") + , (21284, 0, " ") + , (21285, 0, "*") + , (21286, 0, "c") + , (21287, 0, "o") + , (21288, 0, "n") + , (21289, 0, "s") + , (21290, 0, "t") + , (21291, 0, " ") + , (21292, 0, "_") + , (21293, 0, " ") + , (21294, 0, "a") + , (21295, 0, "s") + , (21296, 0, " ") + , (21297, 0, "*") + , (21298, 0, "m") + , (21299, 0, "u") + , (21300, 0, "t") + , (21301, 0, " ") + , (21302, 0, "_") + , (21102, 0, "\n ") + , ( 31268 + , 0 + , "\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {" + ) + , (21103, 16, "") + , (31169, 0, "// ") + , (31284, 0, "F") + , (31285, 0, ">") + , (31285, 1, "") + , (31284, 1, "") + , (31284, 0, "<") + , (31285, 0, "F") + , (31286, 0, ">") + , (31285, 1, "") + , (31285, 0, "N") + , (31286, 0, "o") + , (31286, 1, "") + , (31286, 0, "o") + , (31287, 0, "t") + , (31288, 0, "i") + , (31289, 0, "f") + , (31290, 0, "y") + , (31348, 0, ",") + , (31349, 0, " ") + , (31350, 0, "n") + , (31351, 0, "o") + , (31352, 0, "t") + , (31353, 0, "i") + , (31354, 0, "f") + , (31355, 0, "y") + , (31356, 0, ":") + , (31357, 0, " ") + , (31358, 0, "N") + , (31359, 0, "o") + , (31360, 0, "t") + , (31361, 0, "i") + , (31362, 0, "f") + , (31363, 0, "y") + , (31365, 0, "\n ") + , (31370, 1, "") + , (31370, 0, " ") + , (31374, 0, "w") + , (31375, 0, "h") + , (31376, 0, "e") + , (31377, 0, "r") + , (31378, 0, "e") + , (31379, 0, " ") + , (31380, 0, "n") + , (31381, 0, "o") + , (31382, 0, "t") + , (31383, 0, "i") + , (31384, 0, "f") + , (31385, 0, "y") + , (31386, 0, ":") + , (31387, 0, " ") + , (31379, 9, " ") + , (31380, 0, "N") + , (31381, 0, "o") + , (31382, 0, "t") + , (31383, 0, "i") + , (31384, 0, "f") + , (31385, 0, "y") + , (31386, 0, ":") + , (31387, 0, " ") + , (31388, 0, "F") + , (31389, 0, "n") + , (31390, 0, "M") + , (31391, 0, "u") + , (31392, 0, "t") + , (31393, 0, "(") + , (31394, 0, ")") + , (31395, 0, " ") + , (31164, 0, "\n ") + , (31169, 0, "/") + , (31170, 0, "/") + , ( 31171 + , 0 + , "fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker)" + ) + , (31474, 0, "i") + , (31475, 0, "t") + , (31476, 0, "e") + , (31477, 0, "m") + , (31478, 0, "s") + , (31479, 0, ":") + , (31480, 0, " ") + , (31481, 0, "&") + , (31482, 0, "[") + , (31483, 0, "S") + , (31484, 0, "e") + , (31485, 0, "l") + , (31486, 0, "f") + , (31487, 0, ":") + , (31488, 0, ":") + , (31489, 0, "I") + , (31490, 0, "t") + , (31491, 0, "e") + , (31492, 0, "m") + , (31493, 0, "]") + , (31474, 7, "") + , (31476, 0, "c") + , (31477, 0, ":") + , (31478, 0, ":") + , (31478, 1, "") + , (31477, 1, "") + , (31476, 1, "") + , (31476, 4, "C") + , (31454, 0, " ") + , (31488, 0, ",") + , (31489, 0, " ") + , (31490, 0, "ItemMarker") + , (31501, 4, "C") + , (31163, 0, "\n ") + , (31168, 0, "\n ") + , (31164, 4, "") + , (31169, 0, "f") + , (31170, 0, "n") + , (31171, 0, " ") + , (31172, 0, "n") + , (31173, 0, "o") + , (31174, 0, "_") + , (31175, 0, "n") + , (31176, 0, "o") + , (31177, 0, "t") + , (31178, 0, "i") + , (31179, 0, "f") + , (31180, 0, "y") + , (31181, 0, "(") + , (31181, 1, "") + , (31181, 0, "(&[C::Item], ItemMarker)") + , (31208, 0, " ") + , (31209, 0, "{") + , (31210, 0, "}") + , (31182, 0, "_") + , (31183, 0, "i") + , (31184, 0, "t") + , (31185, 0, "e") + , (31186, 0, "m") + , (31187, 0, "s") + , (31188, 0, ",") + , (31189, 0, " ") + , (31188, 1, "") + , (31188, 0, ":") + , (31202, 0, "m") + , (31203, 0, "a") + , (31204, 0, "r") + , (31205, 0, "k") + , (31206, 0, "e") + , (31207, 0, "r") + , (31208, 0, ":") + , (31209, 0, " ") + , (31202, 0, "_") + , (37128, 0, "\n ") + , (37133, 0, "\n ") + , (37129, 4, "") + , ( 37134 + , 0 + , "unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], notify: Notify)" + ) + , (37222, 16, "") + , (37158, 8, "") + , (31415, 0, "n") + , (31416, 0, "o") + , (31417, 0, "t") + , (31418, 0, "i") + , (31415, 4, "") + , (31429, 0, "_") + , (31430, 0, "a") + , (31431, 0, "n") + , (31432, 0, "d") + , (31433, 0, "_") + , (31434, 0, "n") + , (31435, 0, "o") + , (31436, 0, "t") + , (31437, 0, "i") + , (31438, 0, "f") + , (31439, 0, "y") + , (37226, 0, " ") + , (37227, 0, "{") + , (37228, 0, "\n ") + , (37237, 0, "\n ") + , (37229, 8, "") + , (37230, 8, " }") + , (37229, 0, " ") + , (37237, 0, "i") + , (37238, 0, "n") + , (37239, 0, "s") + , (37240, 0, "e") + , (37241, 0, "r") + , (37242, 0, "t") + , (37243, 0, "_") + , (37244, 0, "a") + , (37237, 8, "insert_at_iter_and_notify") + , (37262, 0, "(") + , (37263, 0, "s") + , (37264, 0, "e") + , (37265, 0, "l") + , (37266, 0, "f") + , (37267, 0, ",") + , (37268, 0, " ") + , (37269, 0, "c") + , (37270, 0, "u") + , (37271, 0, "r") + , (37272, 0, "s") + , (37273, 0, "o") + , (37274, 0, "r") + , (37275, 0, ",") + , (37276, 0, " ") + , (37277, 0, "c") + , (37278, 0, "o") + , (37279, 0, "n") + , (37280, 0, "t") + , (37281, 0, "e") + , (37282, 0, "n") + , (37283, 0, "t") + , (37284, 0, "s") + , (37285, 0, ",") + , (37286, 0, " ") + , (37287, 0, "n") + , (37288, 0, "o") + , (37287, 2, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (37297, 18, ")") + , (37297, 26, "") + , (37296, 1, "") + , (37296, 0, ")") + , (37297, 0, ";") + , (37297, 1, "") + , (37237, 0, "S") + , (37238, 0, "e") + , (37239, 0, "F") + , (37239, 1, "") + , (37239, 0, "l") + , (37240, 0, "f") + , (37241, 0, ":") + , (37242, 0, ":") + , (37237, 6, "") + , (37237, 25, "") + , (37237, 1, "") + , (37241, 0, ".") + , (37242, 0, "insert_at_iter_and_notify") + , (37267, 0, "(") + , (37268, 1, "") + , (37268, 1, "") + , (37296, 0, ";") + , (37296, 1, "") + , (37286, 0, "s") + , (37287, 0, "e") + , (37288, 0, "l") + , (37289, 0, "f") + , (37290, 0, ":") + , (37291, 0, ":") + , (37286, 1, "") + , (37286, 0, "S") + , (37190, 4, "") + , (37190, 0, "mut ") + , (34363, 0, "\n ") + , (34376, 0, "\n ") + , (34364, 12, "") + , (34377, 0, "/") + , (34378, 0, "/") + , (34379, 0, " ") + , (34380, 0, "N") + , (34381, 0, "o") + , (34382, 0, "t") + , (34383, 0, "i") + , (34384, 0, "f") + , (34385, 0, "y") + , (34386, 0, "\n ") + , (34399, 0, "n") + , (34400, 0, "o") + , (34401, 0, "t") + , (34402, 0, "i") + , (34403, 0, "f") + , (34399, 5, "notify") + , (34405, 0, "(") + , (34405, 1, "") + , (34399, 0, "// ") + , (34399, 3, "") + , (34405, 0, "(") + , (34406, 0, "c") + , (34407, 0, "o") + , (34408, 0, "n") + , (34409, 0, "t") + , (34410, 0, "e") + , (34411, 0, "n") + , (34412, 0, "t") + , (34413, 0, "s") + , (34414, 0, ",") + , (34415, 0, " ") + , (34416, 0, "M") + , (34417, 0, "a") + , (34418, 0, "r") + , (34416, 3, "") + , (34416, 0, "I") + , (34417, 0, "t") + , (34418, 0, "e") + , (34419, 0, "m") + , (34416, 4, "ItemMarker") + , (34426, 0, " ") + , (34427, 0, "{") + , (34428, 0, "\n ") + , (34445, 0, "\n ") + , (34429, 16, "") + , (34430, 16, " }") + , (34443, 0, ")") + , (34429, 0, " ") + , (34445, 0, "p") + , (34446, 0, "t") + , (34447, 0, "r") + , (34448, 0, ":") + , (34449, 0, " ") + , (34450, 0, "e") + , (34451, 0, ",") + , (34452, 0, "\n ") + , (34469, 0, "P") + , (34470, 0, "h") + , (34471, 0, "a") + , (34469, 3, "PhantomData") + , (34469, 11, "") + , (34469, 0, "_") + , (34469, 1, "_phanton") + , (34477, 0, ":") + , (34478, 0, " ") + , (34479, 0, "PhantomData") + , (34476, 1, "m") + , (1776, 1, "m") + , (34505, 0, ";") + , (31506, 0, "m") + , (31507, 0, "u") + , (31508, 0, "t") + , (31509, 0, " ") + , (34369, 21, "") + , (34368, 1, "") + , (31163, 0, "\n ") + , (31168, 0, "\n ") + , (31164, 4, "") + , ( 31169 + , 0 + , "unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {" + ) + , (31192, 1, "") + , (31191, 1, "") + , (31191, 0, "_") + , (31191, 1, "") + , (31191, 0, "a") + , (31192, 0, "n") + , (31193, 0, "d") + , (31194, 0, "_") + , (31195, 0, "n") + , (31196, 0, "o") + , (31197, 0, "t") + , (31198, 0, "i") + , (31199, 0, "f") + , (31200, 0, "y") + , (31201, 0, "<") + , (31202, 0, "N") + , (31203, 0, "o") + , (31204, 0, "t") + , (31205, 0, "i") + , (31206, 0, "f") + , (31207, 0, "y") + , (31208, 0, ">") + , (31305, 0, ",") + , (31306, 0, " ") + , (31307, 0, ", mut notify: Notify") + , (31308, 1, "") + , (31307, 1, "") + , (31327, 0, "\n ") + , (31336, 0, "\n ") + , (31328, 8, "") + , (31329, 8, " }") + , (31326, 1, "") + , (31325, 1, "") + , (31325, 0, ")") + , (31304, 1, "") + , (31325, 0, "\n ") + , (31330, 0, "where Notify: FnMut(&[C::Item], ItemMarker) {") + , (31330, 0, " ") + , (31383, 0, "\n ") + , (31392, 4, "") + , (31392, 0, "s") + , (31393, 0, "e") + , (31394, 0, "l") + , (31395, 0, "f") + , (31396, 0, ".") + , (31397, 0, "i") + , (31398, 0, "n") + , (31399, 0, "s") + , (31400, 0, "e") + , (31401, 0, "r") + , (31402, 0, "t") + , ( 31397 + , 6 + , "insert_node_at(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool)" + ) + , (31412, 22, "c") + , (31413, 0, "u") + , (31414, 0, "r") + , (31415, 0, "s") + , (31416, 0, "o") + , (31417, 0, "r") + , (31420, 20, "c") + , (31421, 0, "o") + , (31422, 0, "n") + , (31423, 0, "t") + , (31424, 0, "e") + , (31425, 0, "n") + , (31426, 0, "t") + , (31427, 0, "s") + , (31430, 18, "n") + , (31431, 0, "e") + , (31432, 0, "w") + , (31433, 0, "_") + , (31434, 0, "u") + , (31435, 0, "s") + , (31436, 0, "e") + , (31437, 0, "r") + , (31438, 0, "l") + , (31439, 0, "e") + , (31440, 0, "n") + , (31443, 17, "m") + , (31444, 0, "o") + , (31445, 0, "v") + , (31446, 0, "e") + , (31447, 0, "_") + , (31448, 0, "c") + , (31449, 0, "u") + , (31450, 0, "r") + , (31451, 0, "s") + , (31452, 0, "o") + , (31453, 0, "r") + , (31455, 0, ";") + , (31383, 80, "") + , (31165, 218, "") + , (31164, 1, "") + , ( 27886 + , 0 + , " unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n" + ) + , (27890, 0, "// ") + , ( 28016 + , 126 + , " unsafe fn insert_node_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {\n" + ) + , (28016, 4, " ") + , (28016, 8, " ") + , (28177, 0, " ") + , (31383, 0, "\n ") + , (31392, 0, "\n ") + , (31384, 8, "") + , (31393, 0, "n") + , (31394, 0, "o") + , (31395, 0, "t") + , (31396, 0, "i") + , (31397, 0, "f") + , (31398, 0, "y") + , (31399, 0, "(") + , (31400, 0, "c") + , (31401, 0, "o") + , (31402, 0, "n") + , (31403, 0, "t") + , (31404, 0, "e") + , (31405, 0, "n") + , (31406, 0, "t") + , (31407, 0, "s") + , (31408, 0, ",") + , (31409, 0, " ") + , (31410, 0, "M") + , (31410, 1, "") + , (31410, 0, "I") + , (31411, 0, "t") + , (31412, 0, "e") + , (31413, 0, "m") + , (31410, 4, "ItemMarker") + , (31420, 0, " ") + , (31421, 0, "{") + , (31422, 0, "\n ") + , (31435, 0, "\n ") + , (31423, 12, "") + , (31424, 12, " }") + , (31433, 0, ")") + , (31423, 0, " ") + , (31435, 0, "p") + , (31436, 0, "t") + , (31437, 0, "r") + , (31438, 0, ":") + , (31439, 0, " ") + , (31440, 0, "n") + , (31441, 0, "e") + , (31442, 0, "w") + , (31443, 0, "_") + , (31444, 0, "n") + , (31445, 0, "o") + , (31440, 6, "new_node") + , (31448, 0, "_") + , (31449, 0, "p") + , (31450, 0, "t") + , (31451, 0, "r") + , (31452, 0, ",") + , (31453, 0, "\n ") + , (31466, 0, "_") + , (31467, 0, "p") + , (31468, 0, "h") + , (31466, 3, "_phantom") + , (31474, 0, ":") + , (31475, 0, " ") + , (31476, 0, "P") + , (31477, 0, "h") + , (31476, 2, "PhantomData") + , (31498, 0, ";") + , (31505, 65, "") + , (36968, 1, "") + , (36967, 1, "") + , ( 36955 + , 12 + , "insert_node_and_notify(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)" + ) + , (36977, 105, "") + , (37006, 0, ",") + , (37007, 0, " ") + , (37008, 0, "n") + , (37009, 0, "o") + , (37010, 0, "t") + , (37011, 0, "i") + , (37012, 0, "f") + , (37013, 0, "y") + , (37525, 0, ",") + , (37526, 0, " ") + , (37527, 0, "n") + , (37528, 0, "o") + , (37529, 0, "t") + , (37530, 0, "i") + , (37531, 0, "f") + , (37532, 0, "y") + , (37484, 1, "") + , (37483, 1, "") + , (37483, 0, "a") + , (37484, 0, "n") + , (37485, 0, "d") + , (37486, 0, "_") + , (37487, 0, "n") + , (37488, 0, "o") + , (37489, 0, "t") + , (37490, 0, "i") + , (37491, 0, "f") + , (37492, 0, "y") + , (37736, 0, ";") + , (37736, 1, "") + , (37483, 10, "") + , (37483, 0, "at") + , (37526, 7, "") + , (37525, 1, "") + , (37007, 7, "") + , (37006, 1, "") + , ( 36977 + , 0 + , "(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)" + ) + , (36955, 127, "insert_node_") + , (36967, 0, "at") + , ( 31505 + , 0 + , "\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}" + ) + , (31498, 1, "") + , (31476, 11, "Ph") + , (31476, 2, "PhantomData") + , (31498, 0, ";") + , (31505, 65, "") + , (36967, 2, "") + , ( 36955 + , 12 + , "insert_node_and_notify(cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)" + ) + , (36977, 105, "") + , (37006, 0, ",") + , (37007, 0, " notify") + , (37525, 0, ",") + , (37526, 0, " notify") + , (37483, 2, "") + , (37483, 0, "and_notify") + , (37736, 0, ";") + , (37574, 0, "\n ") + , ( 37579 + , 0 + , "\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}" + ) + , (37575, 4, "") + , (37575, 1, "") + , (37574, 1, "") + , (37806, 0, "// ") + , (37731, 0, "// ") + , (37643, 0, "// ") + , (37490, 3, "") + , (37484, 5, "") + , (36974, 3, "") + , (36968, 5, "") + , (28049, 3, "") + , (28043, 5, "") + , (2704, 3, "") + , (2603, 3, "") + , (31702, 1, "") + , (31701, 1, "") + , (31700, 1, "") + , (31699, 1, "") + , (31698, 1, "") + , (31697, 1, "") + , (31696, 1, "") + , (31695, 1, "") + , (31694, 1, "") + , (31693, 1, "") + , (31692, 1, "") + , (31778, 59, "") + , (31777, 1, "") + , (31777, 0, "\n") + , (31778, 0, " where Notify: FnMut(&[C::Item], ItemMarker) ") + , (31692, 0, "_and_notify") + , (31703, 125, "_") + , ( 31703 + , 1 + , "(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)\n where Notify: FnMut(&[C::It" + ) + , (31793, 0, "// ") + , (31668, 0, "// ") + , (31577, 3, "") + , (31660, 128, "") + , (31573, 4, " ") + , ( 31573 + , 0 + , " // unsafe fn insert_at_iter_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)\n" + ) + , (31792, 64, "") + , (31701, 8, " ") + , ( 31701 + , 0 + , " // where Notify: FnMut(&[C::Item], ItemMarker) {\n" + ) + , (31765, 12, " ") + , (31765, 8, " ") + , (28014, 0, "// ") + , (27884, 3, "") + , (28006, 156, "") + , (27880, 4, " ") + , ( 27880 + , 0 + , " // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)\n" + ) + , (28036, 8, " ") + , (28175, 0, "// ") + , ( 28226 + , 0 + , "\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {" + ) + , (28163, 12, " ") + , (28036, 127, "") + , (31374, 0, "c") + , (31375, 0, ":") + , (31375, 1, "") + , (31374, 1, "") + , (31374, 0, "C") + , (31375, 0, ":") + , (31376, 0, ":") + , (31384, 0, "s") + , (31385, 0, "e") + , (31386, 0, ".") + , (31387, 0, "f") + , (31387, 1, "") + , (31386, 1, "") + , (31386, 0, "l") + , (31387, 0, "f") + , (31388, 0, ".") + , (31389, 0, "c") + , (31390, 0, "o") + , (31391, 0, "n") + , (31392, 0, "f") + , (31393, 0, "i") + , (31394, 0, "g") + , (31395, 0, ",") + , (31396, 0, " ") + , (31384, 0, "&") + , (31385, 0, "m") + , (31386, 0, "u") + , (31387, 0, "t") + , (31388, 0, " ") + , (31388, 1, "") + , (31384, 4, "") + , (31396, 1, "") + , (31386, 10, "") + , (31386, 0, ".f") + , (31384, 4, "") + , (31374, 3, "") + , (31374, 0, "c:") + , (31374, 2, "") + , (28091, 127, "") + , (28036, 4, " ") + , ( 28036 + , 0 + , " unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n" + ) + , (28175, 3, "") + , (28036, 4, " ") + , ( 28166 + , 0 + , "\n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut notify: Notify)" + ) + , (28036, 8, " ") + , (27880, 156, "") + , (27884, 0, "// ") + , (28014, 3, "") + , (31765, 4, " ") + , (31765, 8, " ") + , ( 31860 + , 0 + , "\n // where Notify: FnMut(&[C::Item], ItemMarker) {" + ) + , (31765, 12, " ") + , (31701, 64, "") + , ( 31792 + , 0 + , "\n // unsafe fn insert_at_iter_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)" + ) + , (31701, 8, " ") + , (31573, 128, "") + , (31577, 0, "// ") + , (31796, 3, "") + , (31668, 3, "") + , (2701, 0, "// ") + , (2603, 0, "// ") + , (2704, 3, "") + , (2603, 3, "") + , (2701, 0, "// ") + , (2603, 0, "// ") + , (37469, 0, "ify") + , (37468, 0, "nd_no") + , (36961, 0, "ify") + , (36960, 0, "nd_no") + , (28044, 0, "ify") + , (28043, 0, "nd_no") + , (37490, 3, "") + , (37484, 5, "") + , (36974, 3, "") + , (36968, 5, "") + , (28049, 3, "") + , (28043, 5, "") + , (31698, 11, "") + , (37539, 64, "") + , (44354, 0, "\n ") + , ( 44359 + , 0 + , "\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}" + ) + , (44355, 4, "") + , (44419, 0, "\n ") + , (44420, 4, "") + , (44354, 1, "") + , (41488, 0, "\n ") + , ( 41493 + , 0 + , " unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {\n" + ) + , (41607, 12, " ") + , (41489, 8, " ") + , (41607, 0, "// ") + , (41493, 0, "// ") + , (41692, 0, "<") + , (41693, 0, "N") + , (41694, 0, "o") + , (41695, 0, "t") + , (41696, 0, "i") + , (41697, 0, "f") + , (41698, 0, "y") + , (41699, 0, ">") + , (41794, 0, ",") + , (41795, 0, " ") + , (41796, 0, "m") + , (41797, 0, "u") + , (41798, 0, "t") + , (41799, 0, " ") + , (41800, 0, "n") + , (41801, 0, "o") + , (41802, 0, "t") + , (41803, 0, "i") + , (41804, 0, "f") + , (41805, 0, "y") + , (41806, 0, ":") + , (41807, 0, " ") + , (41808, 0, "N") + , (41809, 0, "o") + , (41810, 0, "t") + , (41811, 0, "i") + , (41812, 0, "f") + , (41813, 0, "y") + , (41815, 1, "") + , (41815, 0, "\n ") + , (41820, 0, " ") + , (41824, 0, " ") + , (41828, 0, "w") + , (41829, 0, "h") + , (41830, 0, "e") + , (41831, 0, "r") + , (41832, 0, "e") + , (41833, 0, " ") + , (41834, 1, "") + , (41834, 0, "Notify: FnMut(&[C::Item], ItemMarker) {") + , (44136, 0, ",") + , (44137, 0, " ") + , (44138, 0, "n") + , (44139, 0, "o") + , (44140, 0, "t") + , (44141, 0, "i") + , (44142, 0, "f") + , (44143, 0, "y") + , (43103, 0, "\n ") + , (43116, 0, "\n ") + , (43104, 12, "") + , (43117, 0, "n") + , (43118, 0, "o") + , (43119, 0, "t") + , (43120, 0, "i") + , (43121, 0, "f") + , (43122, 0, "y") + , (43123, 0, "(") + , (43124, 0, "n") + , (43125, 0, "e") + , (43126, 0, "w") + , (43127, 0, "_") + , (43128, 0, "i") + , (43129, 0, "t") + , (43130, 0, "e") + , (43131, 0, "m") + , (43132, 0, "s") + , (43133, 0, ",") + , (43134, 0, " ") + , (43135, 0, "I") + , (43136, 0, "t") + , (43137, 0, "e") + , (43138, 0, "m") + , (43135, 4, "ItemMarker") + , (43145, 0, " ") + , (43146, 0, "{") + , (43147, 0, "\n ") + , (43164, 0, "\n ") + , (43148, 16, "") + , (43149, 16, " }") + , (43162, 0, ")") + , (43148, 0, " ") + , (43164, 0, "_") + , (43164, 1, "_phantom") + , (43172, 0, ":") + , (43173, 0, " ") + , (43174, 0, "P") + , (43175, 0, "a") + , (43176, 0, "h") + , (43174, 3, "PhantomData") + , (43147, 0, "\n ") + , (43202, 0, ",") + , (43148, 16, "") + , (43148, 0, " ") + , (43164, 0, "p") + , (43165, 0, "t") + , (43166, 0, "r") + , (43167, 0, ":") + , (43168, 0, " ") + , (43169, 0, "e") + , (43170, 0, ",") + , (43225, 0, ";") + , (43104, 122, "") + , (43103, 1, "") + , (43819, 0, "\n ") + , ( 43832 + , 0 + , "\n notify(new_items, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });" + ) + , (43820, 12, "") + , (45213, 0, ",") + , (45214, 0, " ") + , (45215, 0, "n") + , (45216, 0, "o") + , (45215, 2, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (45215, 53, "no") + , (45217, 0, "n") + , (45217, 1, "") + , (45217, 0, "_") + , (45218, 0, "n") + , (45219, 0, "o") + , (45220, 0, "f") + , (45220, 1, "") + , (45220, 0, "t") + , (45221, 0, "i") + , (45222, 0, "f") + , (45223, 0, "y") + , (45215, 0, "S") + , (45216, 0, "e") + , (45217, 0, "l") + , (45218, 0, "f") + , (45219, 0, ":") + , (45220, 0, ":") + , (45855, 0, "Self::no_notify") + , (45855, 15, "") + , (45855, 0, ",") + , (45856, 0, " ") + , (45857, 0, "Self::no_notify") + , (46407, 0, ",") + , (46408, 0, " ") + , (46409, 0, "Self::no_notify") + , (46484, 0, ",") + , (46485, 0, " ") + , (46486, 0, "Self::no_notify") + , (46846, 0, ",") + , (46847, 0, " ") + , (46848, 0, "Self::no_notify") + , (31776, 0, "&") + , (28161, 0, "&") + , (44263, 0, "&") + , (46851, 0, "&") + , (46489, 0, "&") + , (46412, 0, "&") + , (45860, 0, "&") + , (31765, 3, "") + , (31765, 1, "") + , (31774, 0, "m") + , (31775, 0, "u") + , (31776, 0, "t") + , (31777, 0, " ") + , (46855, 0, "m") + , (46492, 0, "m") + , (46414, 0, "m") + , (45861, 0, "m") + , (46859, 0, "u") + , (46495, 0, "u") + , (46416, 0, "u") + , (45862, 0, "u") + , (46863, 0, "t") + , (46498, 0, "t") + , (46418, 0, "t") + , (45863, 0, "t") + , (46867, 0, " ") + , (46501, 0, " ") + , (46420, 0, " ") + , (45864, 0, " ") + , (44264, 0, "m") + , (44265, 0, "u") + , (44266, 0, "t") + , (44267, 0, " ") + , (28149, 4, "") + , (28158, 0, "m") + , (28159, 0, "u") + , (28160, 0, "t") + , (28161, 0, " ") + , (31500, 79, "") + , (31499, 1, "") + , (1182, 1, "") + , (1182, 0, "1") + , (1183, 0, "9") + , (1184, 0, "9") + , (1184, 1, "") + , (1183, 1, "") + , (1183, 0, "0") + , (1184, 0, "0") + , (1182, 3, "2") + , (1572, 1, "") + , (1572, 0, "1") + , (1573, 0, "0") + , ( 26440 + , 0 + , " let walk_height = (*parent).height as usize - 2;\n" + ) + , (26452, 0, "// ") + , (26534, 29, "") + , (26534, 0, "(") + , (26535, 0, "*") + , (26536, 0, "n") + , (26537, 0, ")") + , (26538, 0, ".") + , (26539, 0, "h") + , (26540, 0, "e") + , (26541, 0, "i") + , (26542, 0, "g") + , (26543, 0, "h") + , (26544, 0, "t") + , (26545, 0, " ") + , (26546, 0, "-") + , (26547, 0, " ") + , (26548, 0, "1") + , (26549, 0, " ") + , (26550, 0, "a") + , (26551, 0, "s") + , (26552, 0, " ") + , (26553, 0, "u") + , (26554, 0, "s") + , (26555, 0, "i") + , (26556, 0, "z") + , (26557, 0, "e") + , (26549, 9, "") + , (26545, 0, " as usize") + , (20003, 1, "") + , (20003, 0, ">") + , (20003, 1, "") + , (20003, 0, "-") + , (20003, 1, "") + , (20003, 0, "=") + , (20006, 13, "") + , (20006, 0, "s") + , (20007, 0, "e") + , (20008, 0, ".") + , (20008, 1, "") + , (20008, 0, "l") + , (20009, 0, "f") + , (20010, 0, ".") + , (20011, 0, "h") + , (20012, 0, "e") + , (20013, 0, "a") + , (20014, 0, "d") + , (20015, 0, " ") + , (20016, 0, "a") + , (20017, 0, "s") + , (20018, 0, " ") + , (20019, 0, "u") + , (20019, 1, "") + , (20018, 1, "") + , (20017, 1, "") + , (20016, 1, "") + , (20015, 1, "") + , (20015, 0, " ") + , (20016, 0, "a") + , (20017, 0, "s") + , (20018, 0, " ") + , (20019, 0, "u") + , (20020, 0, "s") + , (20021, 0, "i") + , (20022, 0, "z") + , (20023, 0, "e") + , (20015, 9, "") + , (20011, 4, "") + , (20011, 0, "h") + , (20012, 0, "e") + , (20013, 0, "i") + , (20014, 0, "g") + , (20015, 0, "h") + , (20016, 0, "t") + , (20011, 0, "n") + , (20012, 0, "o") + , (20013, 0, "d") + , (20014, 0, "e") + , (20015, 0, ".") + , (20011, 4, "h") + , (20012, 0, "e") + , (20013, 0, "a") + , (20014, 0, "d") + , (20195, 0, "\n ") + , (20212, 0, "d") + , (20213, 0, "b") + , (20214, 0, "g") + , (20215, 0, "!") + , (20216, 0, "(") + , (20217, 0, "n") + , (20218, 0, ".") + , (20219, 0, "p") + , (20220, 0, "a") + , (20221, 0, "r") + , (20222, 0, "e") + , (20223, 0, "n") + , (20224, 0, "t") + , (20225, 0, ")") + , (20226, 0, ";") + , (20227, 0, "\n ") + , (20228, 16, "") + , (20196, 0, " dbg!(n.parent);\n") + , (20249, 8, "s") + , (20250, 0, "e") + , (20251, 0, "l") + , (20252, 0, "f") + , (20253, 0, ".") + , (20254, 0, "h") + , (20255, 0, "e") + , (20256, 0, "a") + , (20257, 0, "d") + , (20249, 0, "&") + , (20259, 0, " ") + , (20260, 0, "a") + , (20261, 0, "s") + , (20262, 0, " ") + , (20263, 0, "&") + , (20264, 0, "*") + , (20264, 1, "") + , (20263, 1, "") + , (20263, 0, "*") + , (20264, 0, "c") + , (20265, 0, "o") + , (20266, 0, "n") + , (20267, 0, "s") + , (20268, 0, "t") + , (20269, 0, " ") + , (20270, 0, "_") + , (1183, 0, "0") + , (20274, 0, "\n dbg!(&self.head as *const _);") + , (20274, 0, "\n dbg!(n.parent);") + , (20197, 32, "") + , (20218, 10, "n") + , (40996, 0, "\n ") + , (41017, 0, "\n ") + , (40997, 20, "") + , (41018, 0, "\n ") + , (40998, 20, "") + , (41019, 0, "\n ") + , (40999, 20, "") + , (41000, 20, "") + , (40999, 0, " ") + , (41019, 0, "l") + , (41020, 0, "e") + , (41021, 0, "t") + , (41022, 0, " ") + , (41023, 0, "m") + , (41024, 0, "u") + , (41025, 0, "t") + , (41026, 0, " ") + , (41027, 0, "s") + , (41028, 0, "k") + , (41029, 0, "i") + , (41030, 0, "p") + , (41031, 0, "_") + , (41032, 0, "h") + , (41033, 0, "e") + , (41034, 0, "i") + , (41035, 0, "g") + , (41036, 0, "h") + , (41037, 0, "t") + , (41038, 0, " ") + , (41039, 0, "=") + , (41040, 0, " ") + , (41041, 0, "1") + , (41042, 0, ";") + , (41042, 1, "") + , (41041, 1, "") + , (41041, 0, "-") + , (41041, 1, "") + , (41041, 0, "0") + , (41042, 0, ";") + , (40998, 0, " ") + , (41018, 0, "/") + , (41019, 0, "/") + , (41020, 0, " ") + , (41021, 0, "W") + , (41022, 0, "e") + , (41023, 0, " ") + , (41024, 0, "n") + , (41025, 0, "e") + , (41026, 0, "e") + , (41027, 0, "d") + , (41028, 0, " ") + , (41029, 0, "t") + , (41030, 0, "o") + , (41031, 0, " ") + , (41032, 0, "u") + , (41033, 0, "p") + , (41034, 0, "d") + , (41035, 0, "a") + , (41036, 0, "t") + , (41037, 0, "e") + , (41038, 0, " ") + , (41039, 0, "a") + , (41040, 0, "l") + , (41041, 0, "l") + , (41042, 0, " ") + , (41043, 0, "t") + , (41044, 0, "h") + , (41045, 0, "e") + , (41046, 0, " ") + , (41047, 0, "n") + , (41048, 0, "o") + , (41049, 0, "d") + , (41050, 0, "e") + , (41051, 0, "s") + , (41052, 0, " ") + , (41053, 0, "t") + , (41054, 0, "h") + , (41055, 0, "a") + , (41056, 0, "t") + , (41057, 0, " ") + , (41021, 37, "I") + , (41022, 0, "f") + , (41023, 0, " ") + , (41024, 0, "y") + , (41025, 0, "o") + , (41026, 0, "u") + , (41027, 0, " ") + , (41028, 0, "i") + , (41029, 0, "m") + , (41030, 0, "a") + , (41031, 0, "g") + , (41032, 0, "i") + , (41033, 0, "n") + , (41034, 0, "e") + , (41035, 0, " ") + , (41036, 0, "t") + , (41037, 0, "h") + , (41038, 0, "i") + , (41039, 0, "s") + , (41040, 0, " ") + , (41041, 0, "n") + , (41042, 0, "o") + , (41043, 0, "d") + , (41044, 0, "e") + , (41045, 0, " ") + , (41046, 0, "a") + , (41047, 0, "s") + , (41048, 0, " ") + , (41049, 0, "b") + , (41050, 0, "e") + , (41050, 1, "") + , (41049, 1, "") + , (41049, 0, "a") + , (41050, 0, " ") + , (41051, 0, "b") + , (41052, 0, "i") + , (41053, 0, "g") + , (41054, 0, " ") + , (41055, 0, "b") + , (41056, 0, "u") + , (41057, 0, "i") + , (41058, 0, "l") + , (41059, 0, "d") + , (41060, 0, "i") + , (41061, 0, "n") + , (41062, 0, "g") + , (41063, 0, ",") + , (41064, 0, " ") + , (41065, 0, "w") + , (41066, 0, "e") + , (41067, 0, " ") + , (41068, 0, "n") + , (41069, 0, "e") + , (41070, 0, "e") + , (41071, 0, "d") + , (41072, 0, " ") + , (41073, 0, "t") + , (41074, 0, "o") + , (41075, 0, " ") + , (41076, 0, "u") + , (41077, 0, "p") + , (41078, 0, "d") + , (41079, 0, "a") + , (41080, 0, "t") + , (41081, 0, "e") + , (41082, 0, " ") + , (41083, 0, "a") + , (41084, 0, "l") + , (41085, 0, "l") + , (41086, 0, " ") + , (41087, 0, "t") + , (41088, 0, "h") + , (41089, 0, "e") + , (41090, 0, " ") + , (41091, 0, "n") + , (41092, 0, "o") + , (41093, 0, "d") + , (41094, 0, "e") + , (41095, 0, "s") + , (41083, 13, "t") + , (41084, 0, "h") + , (41085, 0, "e") + , (41086, 0, " ") + , (41087, 0, "p") + , (41088, 0, "a") + , (41089, 0, "r") + , (41090, 0, "e") + , (41091, 0, "n") + , (41092, 0, "t") + , (41093, 0, " ") + , (41094, 0, "o") + , (41095, 0, "f") + , (41096, 0, " ") + , (41097, 0, "a") + , (41098, 0, "l") + , (41099, 0, "l") + , (41100, 0, " ") + , (41101, 0, "t") + , (41102, 0, "h") + , (41103, 0, "e") + , (41104, 0, " ") + , (41105, 0, "n") + , (41106, 0, "o") + , (41107, 0, "d") + , (41108, 0, "e") + , (41109, 0, "s") + , (41110, 0, " ") + , (41111, 0, "w") + , (41112, 0, "e") + , (41113, 0, " ") + , (41114, 0, "c") + , (41115, 0, "a") + , (41116, 0, "n") + , (41116, 1, "") + , (41116, 0, "s") + , (41117, 0, "t") + , (41118, 0, " ") + , (41119, 0, "a") + , (41120, 0, " ") + , (41121, 0, "s") + , (41121, 1, "") + , (41121, 0, "s") + , (41122, 0, "h") + , (41123, 0, "a") + , (41124, 0, "d") + , (41125, 0, "o") + , (41126, 0, "w") + , (41127, 0, " ") + , (41128, 0, "o") + , (41129, 0, "v") + , (41130, 0, "e") + , (41131, 0, "r") + , (41132, 0, ".") + , (41133, 0, " ") + , (41134, 0, "S") + , (41135, 0, "o") + , (41136, 0, ",") + , (41137, 0, " ") + , (41138, 0, "t") + , (41139, 0, "h") + , (41140, 0, "e") + , (41141, 0, " ") + , (41142, 0, "n") + , (41143, 0, "e") + , (41138, 6, "i") + , (41139, 0, "f") + , (41140, 0, " ") + , (41141, 0, "w") + , (41141, 1, "") + , (41141, 0, "o") + , (41142, 0, "u") + , (41143, 0, "r") + , (41144, 0, " ") + , (41145, 0, "h") + , (41146, 0, "e") + , (41147, 0, "i") + , (41148, 0, "g") + , (41149, 0, "h") + , (41150, 0, "t") + , (41151, 0, " ") + , (41152, 0, "i") + , (41153, 0, "s") + , (41154, 0, " ") + , (41155, 0, "2") + , (41156, 0, ",") + , (41157, 0, " ") + , (41157, 1, "") + , (41156, 1, "") + , (41155, 1, "") + , (41155, 0, "3") + , (41156, 0, " ") + , (41157, 0, "a") + , (41158, 0, "n") + , (41159, 0, "d") + , (41160, 0, " ") + , (41161, 0, "t") + , (41162, 0, "h") + , (41163, 0, "e") + , (41164, 0, " ") + , (41165, 0, "n") + , (41166, 0, "e") + , (41167, 0, "x") + , (41168, 0, "t") + , (41169, 0, " ") + , (41170, 0, "n") + , (41171, 0, "o") + , (41172, 0, "d") + , (41173, 0, "e") + , (41174, 0, "s") + , (41175, 0, " ") + , (41176, 0, "h") + , (41177, 0, "a") + , (41178, 0, "v") + , (41179, 0, "e") + , (41180, 0, " ") + , (41181, 0, "h") + , (41182, 0, "e") + , (41183, 0, "i") + , (41184, 0, "g") + , (41185, 0, "h") + , (41186, 0, "t") + , (41187, 0, "s") + , (41188, 0, " ") + , (41189, 0, "1") + , (41190, 0, " ") + , (41191, 0, "a") + , (41192, 0, "n") + , (41193, 0, "d") + , (41194, 0, " ") + , (41195, 0, "2") + , (41196, 0, ",") + , (41197, 0, " ") + , (41198, 0, "t") + , (41199, 0, "h") + , (41200, 0, "e") + , (41201, 0, "y") + , (41202, 0, " ") + , (41203, 0, "b") + , (41204, 0, "o") + , (41205, 0, "t") + , (41206, 0, "h") + , (41207, 0, " ") + , (41208, 0, "n") + , (41209, 0, "e") + , (41210, 0, "e") + , (41211, 0, "d") + , (41212, 0, " ") + , (41213, 0, "n") + , (41214, 0, "e") + , (41215, 0, "w") + , (41216, 0, " ") + , (41217, 0, "p") + , (41218, 0, "a") + , (41219, 0, "r") + , (41220, 0, "e") + , (41221, 0, "n") + , (41222, 0, "t") + , (41223, 0, "s") + , (41224, 0, ".") + , (41225, 0, " ") + , (41226, 0, "T") + , (41227, 0, "h") + , (41228, 0, "e") + , (41229, 0, " ") + , (41229, 1, "") + , (41228, 1, "") + , (41227, 1, "") + , (41226, 1, "") + , (41225, 1, "") + , ( 40998 + , 227 + , " // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents." + ) + , (41511, 0, "\n ") + , (41536, 0, "s") + , (41537, 0, "k") + , (41538, 0, "i") + , (41539, 0, "p") + , (41540, 0, "_") + , (41536, 5, "skip_height") + , (41547, 0, " ") + , (41548, 0, "=") + , (41549, 0, " ") + , (41550, 0, "u") + , (41551, 0, "s") + , (41552, 0, "i") + , (41553, 0, "z") + , (41554, 0, "e") + , (41555, 0, ":") + , (41556, 0, ":") + , (41557, 0, "m") + , (41558, 0, "a") + , (41559, 0, "x") + , (41550, 10, "s") + , (41551, 0, "k") + , (41552, 0, "i") + , (41553, 0, "p") + , (41554, 0, "_") + , (41550, 5, "skip_height") + , (41561, 0, ".") + , (41562, 0, "m") + , (41563, 0, "a") + , (41564, 0, "p") + , (41564, 1, "") + , (41564, 0, "x") + , (41565, 0, "(") + , (41566, 0, "(") + , (41567, 0, "*") + , (41568, 0, "n") + , (41569, 0, ")") + , (41570, 0, ".") + , (41571, 0, "h") + , (41572, 0, "e") + , (41573, 0, "i") + , (41574, 0, "g") + , (41575, 0, "h") + , (41576, 0, "t") + , (41577, 0, ")") + , (41578, 0, ";") + , (41577, 0, " ") + , (41578, 0, "a") + , (41579, 0, "s") + , (41580, 0, " ") + , (41581, 0, "s") + , (41582, 0, "u") + , (41582, 1, "") + , (41581, 1, "") + , (41580, 1, "") + , (41579, 1, "") + , (41578, 1, "") + , (41577, 1, "") + , (41577, 0, " ") + , (41578, 0, "a") + , (41579, 0, "s") + , (41580, 0, " ") + , (41581, 0, "u") + , (41582, 0, "s") + , (41583, 0, "i") + , (41584, 0, "z") + , (41585, 0, "e") + , (41413, 10, "s") + , (41414, 0, "k") + , (41415, 0, "i") + , (41416, 0, "p") + , (41413, 4, "skip_height") + , (41589, 1, "") + , (41513, 0, " \n") + , (41614, 50, "") + , (41538, 0, " (*n).parent = new_parent;\n") + , (40947, 0, "// ") + , (41579, 10, "cursor.entries[height - 1].node") + , (41594, 10, "s") + , (41595, 0, "k") + , (41596, 0, "i") + , (41597, 0, "p") + , (41594, 4, "skip_height") + , (41605, 0, " ") + , (41606, 0, "+") + , (41607, 0, " ") + , (41608, 0, "1") + , (41594, 11, "(*n).height as usize") + , (41664, 11, "") + , (41664, 0, "u") + , (41665, 0, "s") + , (41666, 0, "i") + , (41667, 0, "z") + , (41668, 0, "e") + , (41669, 0, ":") + , (41670, 0, ":") + , (41671, 0, "m") + , (41672, 1, "") + , (41672, 1, "") + , (41675, 0, "skip_height") + , (41686, 0, ",") + , (41687, 0, " ") + , (41370, 0, "\n ") + , (41395, 0, "d") + , (41396, 0, "b") + , (41397, 0, "g") + , (41395, 3, "dbg!") + , (41399, 0, "(") + , (41400, 0, "\"") + , (41401, 0, "s") + , (41402, 0, "k") + , (41402, 1, "") + , (41401, 1, "") + , (41400, 1, "") + , (41400, 0, "s") + , (41401, 0, "k") + , (41402, 0, "i") + , (41403, 0, "p") + , (41404, 0, "_") + , (41400, 5, "skip_height") + , (41411, 0, ")") + , (41412, 0, ";") + , (41413, 0, "\n ") + , (41438, 0, "d") + , (41439, 0, "b") + , (41440, 0, "g") + , (41441, 0, "!") + , (41442, 0, "(") + , (41443, 0, "(*n).height as usize") + , (41463, 0, ")") + , (41464, 0, ";") + , (41465, 0, "\n ") + , (41828, 0, " ") + , (41466, 24, "") + , (41805, 0, "-") + , (41806, 0, " ") + , (41807, 0, "1") + , (41438, 0, "// ") + , (41395, 0, "// ") + , (41642, 0, "\n ") + , (41667, 0, "/") + , (41668, 0, "/") + , (41669, 0, " ") + , (41670, 0, "T") + , (41671, 0, "O") + , (41672, 0, "D") + , (41673, 0, "O") + , (41674, 0, ":") + , (41675, 0, " ") + , (41676, 0, "W") + , (41677, 0, "e") + , (41678, 0, " ") + , (41679, 0, "c") + , (41680, 0, "a") + , (41681, 0, "n") + , (41682, 0, " ") + , (41683, 0, "c") + , (41684, 0, "a") + , (41685, 0, "c") + , (41686, 0, "h") + , (41687, 0, "e") + , (41688, 0, " ") + , (41689, 0, "t") + , (41690, 0, "h") + , (41691, 0, "i") + , (41692, 0, "s") + , (41693, 0, " ") + , (41694, 0, "e") + , (41695, 0, "a") + , (41696, 0, "c") + , (41697, 0, "h") + , (41698, 0, " ") + , (41699, 0, "t") + , (41700, 0, "i") + , (41701, 0, "m") + , (41702, 0, "e") + , (41703, 0, " ") + , (41704, 0, "t") + , (41705, 0, "h") + , (41706, 0, "e") + , (41707, 0, " ") + , (41708, 0, "c") + , (41709, 0, "u") + , (41710, 0, "r") + , (41708, 3, "h") + , (41709, 0, "e") + , (41710, 0, "i") + , (41710, 1, "") + , (41710, 0, "i") + , (41711, 0, "g") + , (41712, 0, "h") + , (41713, 0, "t") + , (41714, 0, " ") + , (41715, 0, "g") + , (41716, 0, "o") + , (41717, 0, "e") + , (41718, 0, "s") + , (41719, 0, " ") + , (41720, 0, "u") + , (41721, 0, "p") + , (41722, 0, "?") + , (41679, 3, "c") + , (41680, 0, "p") + , (41681, 0, "u") + , (41681, 1, "") + , (41680, 1, "") + , (41680, 0, "o") + , (41681, 0, "u") + , (41682, 0, "l") + , (41683, 0, "d") + , (20218, 0, "(") + , (20232, 0, ",") + , (20233, 0, " ") + , (20234, 0, "*") + , (20235, 0, "(") + , (20235, 1, "") + , (20234, 1, "") + , (20234, 0, "(") + , (20235, 0, "*") + , (20236, 0, "n") + , (20237, 0, ")") + , (20238, 0, ".") + , (20239, 0, "h") + , (20240, 0, "e") + , (20241, 0, "i") + , (20242, 0, "g") + , (20243, 0, "h") + , (20244, 0, "t") + , (20245, 0, ")") + , (31088, 0, "\n ") + , (31101, 0, "\n ") + , (31089, 12, "") + , (31102, 0, "\n ") + , (31090, 12, "") + , (31103, 0, "\n ") + , (31091, 12, "") + , (31104, 0, "\n ") + , (31092, 12, "") + , (31093, 12, "") + , ( 31090 + , 0 + , " if height > 1 {\n let mut n = e;\n // let new_parent = cursor.entries[height - 1].node;\n\n // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents.\n let mut skip_height = 0;\n\n loop {\n // dbg!(skip_height);\n // dbg!((*n).height as usize);\n\n n = (*n).nexts_mut()[skip_height].node;\n if n.is_null() || (*n).height >= height as u8 { break; }\n \n // TODO: We could cache this each time the height goes up?\n (*n).parent = cursor.entries[(*n).height as usize + 1].node;\n skip_height = usize::max(skip_height, (*n).height as usize - 1);\n }\n }" + ) + , (32152, 16, " ") + , (32130, 20, " ") + , (32041, 24, " ") + , (31956, 24, " ") + , (31873, 24, " ") + , (31848, 24, " ") + , (31767, 24, " ") + , (31703, 24, " ") + , (31647, 24, " ") + , (31601, 24, " ") + , (31574, 20, " ") + , (31528, 20, " ") + , (31470, 20, " ") + , (31390, 20, " ") + , (31309, 20, " ") + , (31231, 20, " ") + , (31157, 20, " ") + , (31122, 20, " ") + , (31090, 16, " ") + , (31089, 28, "\\") + , (32053, 13, "") + , (32052, 1, "") + , (32035, 16, " ") + , (31950, 20, " ") + , (31869, 20, " ") + , (31790, 20, " ") + , (31769, 20, " ") + , (31692, 20, " ") + , (31632, 20, " ") + , (31580, 20, " ") + , (31538, 20, " ") + , (31515, 16, " ") + , (31473, 16, " ") + , (31419, 16, " ") + , (31343, 16, " ") + , (31266, 16, " ") + , (31192, 16, " ") + , (31122, 16, " ") + , (31091, 16, " ") + , (31983, 0, "// ") + , (31902, 0, "// ") + , (31825, 0, "// ") + , (31750, 0, "// ") + , (31660, 0, "// ") + , (31604, 0, "// ") + , (31556, 0, "// ") + , (31518, 0, "// ") + , (31499, 0, "// ") + , (31461, 0, "// ") + , (31411, 0, "// ") + , (31339, 0, "// ") + , (31266, 0, "// ") + , (31196, 0, "// ") + , (31130, 0, "// ") + , (31103, 0, "// ") + , (32028, 3, "") + , (31944, 3, "") + , (31864, 3, "") + , (31786, 3, "") + , (31693, 3, "") + , (31634, 3, "") + , (31583, 3, "") + , (31542, 3, "") + , (31520, 3, "") + , (31479, 3, "") + , (31426, 3, "") + , (31351, 3, "") + , (31275, 3, "") + , (31202, 3, "") + , (31133, 3, "") + , (31103, 3, "") + , (31115, 1, "") + , (31115, 0, "n") + , (31116, 0, "e") + , (31117, 0, "w") + , (31118, 0, "_") + , (31119, 0, "n") + , (31120, 0, "o") + , (31115, 6, "new_node") + , (31123, 0, "_") + , (31124, 0, "p") + , (31125, 0, "t") + , (31126, 0, "r") + , (32249, 0, "// ") + , (32205, 0, "// ") + , (32133, 0, "// ") + , (32068, 0, "// ") + , (32049, 0, "// ") + , (32011, 0, "// ") + , (31854, 46, "") + , (31854, 0, "n") + , (31855, 0, "e") + , (31856, 0, "w") + , (31857, 0, "_") + , (31858, 0, "n") + , (31859, 0, "o") + , (31854, 6, "new_node_ptr") + , (31749, 74, "") + , (31748, 1, "") + , (31791, 0, ";") + , (31128, 331, "") + , (31089, 1, "") + , (31376, 0, "n") + , (31377, 0, "e") + , (31378, 0, "w") + , (31379, 0, "_") + , (31391, 1, "") + , (31390, 1, "") + , (31389, 1, "") + , (31388, 1, "") + , (31387, 1, "") + , (31386, 1, "") + , (31555, 2, "") + , (42035, 0, "\n ") + , (42060, 0, "d") + , (42061, 0, "b") + , (42062, 0, "g") + , (42063, 0, "!") + , (42064, 0, "(") + , (42065, 0, "n") + , (42066, 0, ".") + , (42067, 0, "c") + , (42068, 0, "o") + , (42069, 0, "n") + , (42070, 0, "t") + , (42071, 0, "e") + , (42072, 0, "n") + , (42073, 0, "t") + , (42074, 0, "_") + , (42067, 8, "content_slice") + , (42080, 0, "(") + , (42081, 0, ")") + , (42082, 0, ")") + , (42083, 0, ";") + , (1939, 0, " ") + , (1940, 0, "+") + , (1941, 0, " ") + , (1942, 0, "D") + , (1943, 0, "e") + , (1944, 0, "b") + , (1945, 0, "u") + , (1946, 0, "g") + , (1942, 0, "f") + , (1943, 0, "m") + , (1944, 0, "t") + , (1945, 0, ":") + , (1946, 0, ":") + , (1942, 0, "s") + , (1943, 0, "t") + , (1944, 0, "d") + , (1945, 0, ":") + , (1946, 0, ":") + , (42083, 0, "(") + , (42084, 0, "*") + , (42086, 0, ")") + , (42054, 0, " dbg!((*n).content_slice());\n") + , (42140, 15, "") + , (42140, 0, "h") + , (42141, 0, "e") + , (42142, 0, "i") + , (42143, 0, "g") + , (42144, 0, "h") + , (42145, 0, "t") + , (42148, 0, "\n ") + , (42173, 0, "s") + , (42174, 0, "e") + , (42175, 0, "l") + , (42176, 0, "f") + , (42177, 0, ".") + , (42178, 0, "i") + , (42179, 0, "s") + , (42180, 0, "_") + , (42178, 3, "is_head(node: *const Node)") + , (42186, 20, "n") + , (42187, 0, ".") + , (42188, 0, "p") + , (42189, 0, "a") + , (42190, 0, "r") + , (42191, 0, "e") + , (42192, 0, "n") + , (42193, 0, "t") + , (42195, 0, ";") + , (42173, 23, "") + , (42149, 24, "") + , (42148, 1, "") + , (42148, 0, "\n ") + , (42362, 0, "\n ") + , (42149, 24, "") + , (42363, 0, "a") + , (42364, 0, "s") + , (42365, 0, "s") + , (42363, 3, "assert_eq!") + , (42373, 0, "(") + , (42374, 0, "(") + , (42375, 0, "*") + , (42376, 0, "n") + , (42377, 0, ")") + , (42378, 0, ".") + , (42379, 0, "p") + , (42380, 0, "a") + , (42381, 0, "r") + , (42382, 0, "e") + , (42383, 0, "n") + , (42384, 0, "t") + , (42385, 0, ",") + , (42386, 0, " ") + , (42387, 0, "e") + , (42388, 0, ")") + , (42389, 0, ";") + , (42387, 1, "") + , (42387, 0, "n") + , (40967, 11, "g") + , (40968, 0, "h") + , (40968, 1, "") + , (40967, 1, "") + , (40967, 0, "e") + , (40967, 1, "") + , (40967, 0, "h") + , (40968, 0, "e") + , (40969, 0, "i") + , (40969, 1, "") + , (40967, 2, "height") + , (40973, 9, "") + , (38979, 0, "\n ") + , (38992, 0, "s") + , (38993, 0, "e") + , (38994, 0, "l") + , (38995, 0, "f") + , (38996, 0, ".") + , (38997, 0, "c") + , (38998, 0, "h") + , (38999, 0, "e") + , (39000, 0, "c") + , (38997, 4, "check()") + , (39004, 0, ";") + , (38992, 0, " ") + , (38992, 0, "i") + , (38993, 0, "f") + , (38994, 0, " ") + , (38995, 0, "e") + , (38996, 0, "n") + , (38997, 0, "v") + , (38992, 6, "") + , (38992, 0, "if cfg!(debug_assertions) {") + , (39033, 0, " ") + , (39034, 0, "}") + , (42961, 0, "\n ") + , (42974, 0, "\n ") + , (42962, 12, "") + , (42975, 0, "if cfg!(debug_assertions) { self.check(); }") + , (1182, 2, "2") + , (38978, 0, "\n ") + , (38991, 0, "s") + , (38992, 0, "e") + , (38993, 0, "l") + , (38994, 0, "f") + , (38995, 0, ".") + , (38996, 0, "p") + , (38997, 0, "r") + , (38998, 0, "i") + , (38996, 3, "print()") + , (39003, 0, ";") + , (50957, 0, "\n ") + , (50966, 0, "l") + , (50967, 0, "e") + , (50968, 0, "t") + , (50969, 0, " ") + , (50970, 0, "p") + , (50971, 0, "t") + , (50972, 0, "r") + , (50973, 0, "T") + , (50973, 1, "") + , (50973, 0, "_") + , (50974, 0, "t") + , (50975, 0, "o") + , (50976, 0, "_") + , (50977, 0, "i") + , (50978, 0, "d") + , (50979, 0, " ") + , (50980, 0, "=") + , (50981, 0, " ") + , (50982, 0, "s") + , (50983, 0, "t") + , (50984, 0, "d") + , (50957, 0, "\n ") + , (50966, 0, "u") + , (50967, 0, "s") + , (50968, 0, "e") + , (50969, 0, " ") + , (50970, 0, "s") + , (50971, 0, "t") + , (50972, 0, "d") + , (50973, 0, ":") + , (50974, 0, ":") + , (50975, 0, "c") + , (50976, 0, "o") + , (50977, 0, "l") + , (50978, 0, "l") + , (50975, 4, "collections") + , (50986, 0, ":") + , (50987, 0, ":") + , (50988, 0, "H") + , (50989, 0, "a") + , (50990, 0, "s") + , (50991, 0, "h") + , (50988, 4, "HashMap") + , (50995, 0, ";") + , (51021, 3, "H") + , (51022, 0, "a") + , (51023, 0, "s") + , (51024, 0, "h") + , (51025, 0, "M") + , (51026, 0, "a") + , (51027, 0, "p") + , (51021, 7, "HashMap") + , (51028, 0, ":") + , (51029, 0, ":") + , (51030, 0, "n") + , (51031, 0, "e") + , (51032, 0, "w") + , (51030, 3, "new()") + , (51035, 0, "(") + , (51036, 0, ")") + , (51036, 1, "") + , (51035, 1, "") + , (51035, 0, ";") + , (51117, 0, "\n ") + , (51130, 0, "p") + , (51131, 0, "t") + , (51132, 0, "r") + , (51130, 3, "ptr_to_id") + , (51139, 0, ".") + , (51140, 0, "s") + , (51141, 0, "e") + , (51141, 1, "") + , (51140, 1, "") + , (51139, 1, "") + , (51139, 0, ".") + , (51140, 0, "i") + , (51141, 0, "n") + , (51142, 0, "s") + , (51143, 0, "e") + , (51144, 0, "r") + , (51140, 5, "insert(k: K, v: V)") + , (51147, 4, "n") + , (51148, 0, "o") + , (51149, 0, "d") + , (51150, 0, "e") + , (51151, 0, " ") + , (51152, 0, "a") + , (51153, 0, "s") + , (51154, 0, " ") + , (51155, 0, "*") + , (51156, 0, "c") + , (51157, 0, "o") + , (51158, 0, "n") + , (51159, 0, "s") + , (51160, 0, "t") + , (51161, 0, " ") + , (51162, 0, "_") + , (51165, 4, "i") + , (51167, 0, ";") + , (51008, 0, " ") + , (51009, 0, "m") + , (51010, 0, "i") + , (51011, 0, "u") + , (51011, 1, "") + , (51010, 1, "") + , (51010, 0, "u") + , (51011, 0, "t") + , (51272, 0, "\n ") + , (51285, 0, "p") + , (51286, 0, "r") + , (51287, 0, "i") + , (51288, 0, "n") + , (51289, 0, "t") + , (51290, 0, " ") + , (51290, 1, "") + , (51290, 0, "!") + , (51291, 0, "(") + , (51292, 0, "\"") + , (51293, 0, "(") + , (51294, 0, "p") + , (51295, 0, "a") + , (51296, 0, "r") + , (51297, 0, "e") + , (51298, 0, "n") + , (51299, 0, "t") + , (51300, 0, ":") + , (51301, 0, " ") + , (51302, 0, "{") + , (51303, 0, "}") + , (51304, 0, "}") + , (51304, 1, "") + , (51304, 0, ")") + , (51305, 0, "\"") + , (51306, 0, ";") + , (51306, 1, "") + , (51306, 0, ",") + , (51307, 0, " ") + , (51272, 0, "\n ") + , (51285, 0, "i") + , (51286, 0, "f") + , (51287, 0, " ") + , (51288, 0, "l") + , (51289, 0, "e") + , (51290, 0, "t") + , (51291, 0, " ") + , (51292, 0, "p") + , (51293, 0, "t") + , (51294, 0, "r") + , (51285, 0, "// ") + , (51040, 0, "\n ") + , (51049, 0, "p") + , (51050, 0, "t") + , (51051, 0, "r") + , (51049, 3, "ptr") + , (51052, 0, ".") + , (51052, 1, "") + , (51052, 0, "_") + , (51053, 0, "t") + , (51054, 0, "o") + , (51049, 6, "ptr_to_id") + , (51058, 0, ".") + , (51059, 0, "i") + , (51060, 0, "n") + , (51061, 0, "s") + , (51062, 0, "e") + , (51063, 0, "r") + , (51064, 0, "t") + , (51065, 0, "(") + , (51066, 0, "p") + , (51067, 0, "t") + , (51068, 0, "r") + , (51069, 0, ":") + , (51069, 1, "") + , (51068, 1, "") + , (51066, 2, "s") + , (51067, 0, "t") + , (51068, 0, "d") + , (51069, 0, ":") + , (51070, 0, ":") + , (51071, 0, "p") + , (51072, 0, "t") + , (51073, 0, "r") + , (51074, 0, ":") + , (51075, 0, ":") + , (51076, 0, "n") + , (51077, 0, "u") + , (51078, 0, "l") + , (51079, 0, "l") + , (51076, 4, "null()") + , (51082, 0, ",") + , (51083, 0, " ") + , (51084, 0, "-") + , (51085, 0, "1") + , (51086, 0, ")") + , (51087, 0, ";") + , (51085, 1, "") + , (51084, 1, "") + , (51084, 0, "u") + , (51085, 0, "s") + , (51086, 0, "i") + , (51087, 0, "z") + , (51088, 0, "e") + , (51089, 0, ":") + , (51090, 0, ":") + , (51091, 0, "M") + , (51092, 0, "A") + , (51093, 0, "X") + , (51341, 13, "") + , (51341, 0, "p") + , (51342, 0, "t") + , (51343, 0, "r") + , (51341, 3, "ptr_to_id") + , (51350, 0, ".") + , (51351, 0, "g") + , (51352, 0, "e") + , (51351, 2, "get(k: &Q)") + , (51355, 5, "n") + , (51356, 0, "o") + , (51357, 0, "d") + , (51358, 0, "e") + , (51359, 0, ".") + , (51360, 0, "p") + , (51361, 0, "o") + , (51361, 1, "") + , (51361, 0, "a") + , (51362, 0, "r") + , (51363, 0, "e") + , (51364, 0, "n") + , (51365, 0, "t") + , (51367, 0, ";") + , (51366, 0, " ") + , (51367, 0, "a") + , (51368, 0, "s") + , (51369, 0, " ") + , (51370, 0, "*") + , (51371, 0, "c") + , (51372, 0, "o") + , (51373, 0, "n") + , (51374, 0, "s") + , (51375, 0, "t") + , (51376, 0, " ") + , (51377, 0, "_") + , (51366, 12, "") + , (51355, 0, "&") + , (51367, 0, " ") + , (51368, 0, "a") + , (51369, 0, "s") + , (51370, 0, " ") + , (51371, 0, "*") + , (51372, 0, "c") + , (51373, 0, "o") + , (51374, 0, "n") + , (51375, 0, "s") + , (51376, 0, "t") + , (51377, 0, " ") + , (51378, 0, "_") + , (51356, 0, "(") + , (51380, 0, ")") + , (51341, 0, "i") + , (51342, 0, "f") + , (51343, 0, " ") + , (51344, 0, "l") + , (51345, 0, "e") + , (51346, 0, "t") + , (51347, 0, " ") + , (51348, 0, "S") + , (51349, 0, "o") + , (51350, 0, "m") + , (51351, 0, "e") + , (51352, 0, "(") + , (51353, 0, "i") + , (51354, 0, "d") + , (51355, 0, ")") + , (51356, 0, " ") + , (51357, 0, "=") + , (51358, 0, " ") + , (51400, 1, "") + , (51400, 0, " ") + , (51401, 0, "{") + , (51415, 0, " ") + , (51442, 0, "i") + , (51443, 0, "d") + , (51444, 0, ")") + , (51445, 0, ";") + , (51446, 0, "\n ") + , (51447, 16, " }") + , (51520, 0, "\n }") + , (51461, 12, " ") + , (51447, 14, "") + , (51510, 0, "\n print!(\"(parent: {})\", id);") + , (51403, 44, "") + , ( 51466 + , 0 + , "\n if let Some(id) = ptr_to_id.get(&(node.parent as *const _)) {" + ) + , (51403, 16, " ") + , (51329, 74, "") + , (51347, 1, "") + , (51346, 1, "") + , (51518, 0, "\n ") + , (51531, 0, "p") + , (51532, 0, "r") + , (51533, 0, "i") + , (51534, 0, "n") + , (51531, 4, "println!") + , (51539, 0, "(") + , (51540, 0, ")") + , (51541, 0, ";") + , (51518, 0, "\n ") + , (51519, 12, "") + , (51485, 0, " ") + , (51460, 0, "\n ") + , (51477, 0, "i") + , (51478, 0, "f") + , (51477, 2, "") + , (51477, 0, "i") + , (51478, 0, "f") + , (51479, 0, " ") + , (51480, 0, "i") + , (51481, 0, "d") + , (51482, 0, " ") + , (51483, 0, "=") + , (51484, 0, "=") + , (51485, 0, " ") + , (51486, 0, "u") + , (51487, 0, "s") + , (51488, 0, "i") + , (51489, 0, "z") + , (51490, 0, "e") + , (51491, 0, ":") + , (51492, 0, ":") + , (51493, 0, "M") + , (51494, 0, "A") + , (51495, 0, "X") + , (51496, 0, " ") + , (51497, 0, "{") + , (51498, 0, " ") + , (51461, 38, "") + , (51460, 1, "") + , (51049, 0, "// ") + , (51464, 0, " print!(\" (parent: {})\", id);\n") + , (51553, 14, "") + , (51509, 16, " ") + , (51509, 0, " }\n") + , (51545, 6, "p") + , (51546, 0, "o") + , (51547, 0, "i") + , (51548, 0, "n") + , (51549, 0, "t") + , (51550, 0, "e") + , (51551, 0, "r") + , (51560, 2, "") + , (51555, 0, ":") + , (51556, 0, "?") + , (51562, 0, "n") + , (51563, 0, "o") + , (51564, 0, "d") + , (51565, 0, "e") + , (51566, 0, " ") + , (51567, 0, "a") + , (51568, 0, "s") + , (51569, 0, " ") + , (51570, 0, "*") + , (51571, 0, "c") + , (51572, 0, "o") + , (51573, 0, "n") + , (51574, 0, "s") + , (51575, 0, "t") + , (51576, 0, " ") + , (51577, 0, "_") + , (42454, 1, "") + , (42454, 0, "e") + , (42297, 0, "\n") + , (42216, 1, "") + , (42296, 0, "\n dbg!((*n).height);") + , (42173, 43, "") + , (42253, 0, "\n dbg!((*n).content_slice());") + , (42121, 52, "") + , ( 42201 + , 0 + , "\n n = (*n).nexts_mut()[skip_height].node;" + ) + , (42057, 64, "") + , (42137, 0, "\n") + , (42056, 1, "") + , (42201, 0, "\n") + , (42137, 1, "") + , ( 42200 + , 0 + , "\n if n.is_null() || (*n).height >= height as u8 { break; }" + ) + , (42056, 81, "") + , (42055, 0, "\n ") + , (42321, 1, "") + , (42056, 24, "") + , (42279, 0, "// ") + , (42227, 0, "// ") + , (20314, 0, "// ") + , (20282, 0, "// ") + , (20230, 0, "// ") + , (20320, 3, "") + , (20285, 3, "") + , (20230, 3, "") + , (20314, 0, "// ") + , (20282, 0, "// ") + , (20230, 0, "// ") + , (20230, 3, "") + , (20214, 0, " dbg!((n as *const _, (*n).height));\n") + , (20235, 1, "") + , (20248, 14, "") + , (20267, 0, "// ") + , (19391, 0, "(") + , (19392, 0, "i") + , (19393, 0, ",") + , (19394, 0, " ") + , (19396, 0, ")") + , (19412, 0, ".") + , (19413, 0, "e") + , (19414, 0, "n") + , (19415, 0, "u") + , (19416, 0, "m") + , (19413, 4, "enumerate()") + , (20247, 0, "// ") + , (20230, 0, "\n ") + , (20247, 0, "p") + , (20248, 0, "r") + , (20249, 0, "i") + , (20250, 0, "n") + , (20247, 4, "println!") + , (20255, 0, "(") + , (20256, 0, "\"") + , (20257, 0, "v") + , (20258, 0, "i") + , (20259, 0, "s") + , (20260, 0, "i") + , (20261, 0, "t") + , (20262, 0, "i") + , (20263, 0, "n") + , (20264, 0, "g") + , (20265, 0, " ") + , (20266, 0, "{") + , (20267, 0, "}") + , (20268, 0, "\"") + , (20269, 0, ",") + , (20270, 0, " ") + , (20271, 0, "i") + , (20272, 0, ")") + , (20273, 0, ";") + , (20291, 3, "") + , (20291, 0, "// ") + , (20268, 0, " ") + , (20269, 0, "{") + , (20270, 0, ":") + , (20271, 0, "?") + , (20272, 0, "}") + , (20277, 0, ",") + , (20278, 0, " ") + , (20279, 0, "n as *const _") + , (18524, 0, "\n ") + , (18537, 0, "s") + , (18538, 0, "e") + , (18539, 0, "l") + , (18540, 0, "f") + , (18541, 0, ".") + , (18542, 0, "p") + , (18543, 0, "r") + , (18544, 0, "i") + , (18542, 3, "print()") + , (18549, 0, ";") + , (41062, 0, "\n ") + , (41079, 0, "\n ") + , (41063, 16, "") + , (41080, 0, "p") + , (41081, 0, "r") + , (41082, 0, "i") + , (41083, 0, "n") + , (41080, 4, "println!") + , (41088, 0, "(") + , (41089, 0, "\"") + , (41090, 0, "r") + , (41091, 0, "e") + , (41092, 0, "m") + , (41093, 0, "o") + , (41094, 0, "v") + , (41095, 0, "i") + , (41096, 0, "n") + , (41097, 0, "g") + , (41098, 0, "\"") + , (41099, 0, ",") + , (41100, 0, " ") + , (41098, 0, " ") + , (41099, 0, "{") + , (41100, 0, "}") + , (41104, 0, "e") + , (41105, 0, ")") + , (41106, 0, ";") + , (41105, 0, ",") + , (41106, 0, " ") + , (41107, 0, "\"") + , (41108, 0, "c") + , (41109, 0, "o") + , (41110, 0, "n") + , (41111, 0, "t") + , (41112, 0, "e") + , (41113, 0, "n") + , (41114, 0, "t") + , (41115, 0, "s") + , (41116, 0, "\"") + , (41117, 0, " ") + , (41117, 1, "") + , (41101, 0, " ") + , (41102, 0, "c") + , (41103, 0, "o") + , (41104, 0, "n") + , (41105, 0, "t") + , (41106, 0, "e") + , (41107, 0, "n") + , (41108, 0, "t") + , (41109, 0, "s") + , (41110, 0, " ") + , (41111, 0, "{") + , (41112, 0, "}") + , (41113, 0, " ") + , (41114, 0, "e") + , (41115, 0, "h") + , (41115, 1, "") + , (41114, 1, "") + , (41114, 0, "h") + , (41115, 0, "e") + , (41116, 0, "i") + , (41117, 0, "g") + , (41118, 0, "h") + , (41119, 0, "t") + , (41120, 0, " ") + , (41121, 0, "{") + , (41122, 0, "}") + , (41129, 10, "") + , (41064, 68, "") + , (41063, 1, "") + , (41175, 0, "\n ") + , (41176, 16, "") + , (41175, 0, "\n ") + , ( 41192 + , 0 + , " println!(\"removing {} contents {} height {}\", e, );\n" + ) + , (41176, 32, " ") + , (41243, 1, "") + , (41241, 0, "(") + , (41242, 0, "*") + , (41243, 0, "e") + , (41244, 0, ")") + , (41245, 0, ".") + , (41246, 0, "c") + , (41247, 0, "o") + , (41248, 0, "n") + , (41246, 3, "content_slice") + , (41259, 0, "(") + , (41260, 0, ")") + , (41261, 0, ",") + , (41262, 0, " ") + , (41263, 0, "h") + , (41264, 0, "e") + , (41265, 0, "i") + , (41266, 0, "g") + , (41267, 0, "h") + , (41268, 0, "t") + , (41212, 0, ":") + , (41213, 0, "?") + , (41226, 0, ":") + , (41227, 0, "?") + , ( 42720 + , 0 + , "\n // TODO: We could cache this each time the height goes up?" + ) + , (42586, 83, "") + , (42805, 0, "\n ") + , (42806, 24, "") + , (42671, 10, "C") + , (42710, 1, "") + , (42749, 0, "\n ") + , (42774, 0, " ") + , (42824, 0, "\n ") + , (42825, 28, " }") + , (42825, 21, "") + , (42824, 1, "") + , (42749, 0, "i") + , (42750, 0, "f") + , (42751, 0, " ") + , (42183, 0, "\n ") + , (42204, 0, "l") + , (42205, 0, "e") + , (42206, 0, "t") + , (42207, 0, " ") + , (42208, 0, "c") + , (42209, 0, "u") + , (42210, 0, "r") + , (42211, 0, "s") + , (42212, 0, "o") + , (42213, 0, "r") + , (42214, 0, "_") + , (42215, 0, "n") + , (42216, 0, "o") + , (42217, 0, "d") + , (42218, 0, "e") + , (42219, 0, " ") + , (42220, 0, "=") + , (42221, 0, " ") + , (42222, 0, "c") + , (42223, 0, "u") + , (42224, 0, "r") + , (42225, 0, "s") + , (42226, 0, "o") + , (42227, 0, "r") + , (42228, 0, ".") + , (42229, 0, "h") + , (42230, 0, "e") + , (42231, 0, "r") + , (42232, 0, "e") + , (42229, 4, "here_ptr()") + , (42239, 0, ";") + , (42240, 0, "\n ") + , (42261, 0, "l") + , (42262, 0, "e") + , (42263, 0, "t") + , (42264, 0, " ") + , (42265, 0, "c") + , (42266, 0, "u") + , (42267, 0, "r") + , (42268, 0, "s") + , (42269, 0, "o") + , (42270, 0, "r") + , (42271, 0, "_") + , (42272, 0, "n") + , (42273, 0, "o") + , (42274, 0, "d") + , (42275, 0, "e") + , (42276, 0, "_") + , (42277, 0, "h") + , (42278, 0, "e") + , (42279, 0, "i") + , (42280, 0, "g") + , (42281, 0, "h") + , (42282, 0, "t") + , (42283, 0, " ") + , (42284, 0, "=") + , (42285, 0, " ") + , (42286, 0, "*") + , (42286, 1, "") + , (42286, 0, "(") + , (42287, 0, "*") + , (42288, 0, "c") + , (42289, 0, "u") + , (42290, 0, "r") + , (42291, 0, "s") + , (42292, 0, "o") + , (42288, 5, "cursor_node") + , (42299, 0, ")") + , (42300, 0, ".") + , (42301, 0, "h") + , (42302, 0, "e") + , (42303, 0, "i") + , (42301, 3, "height") + , (42307, 0, " ") + , (42308, 0, "a") + , (42309, 0, "s") + , (42310, 0, " ") + , (42311, 0, "u") + , (42312, 0, "s") + , (42313, 0, "i") + , (42314, 0, "z") + , (42315, 0, "e") + , (42316, 0, ";") + , (42886, 0, "c") + , (42887, 0, "u") + , (42888, 0, "r") + , (42889, 0, "o") + , (42890, 0, "s") + , (42891, 0, "r") + , (42886, 6, "cursor_node_height") + , (42904, 0, " ") + , (42905, 0, ">") + , (42906, 0, "=") + , (42907, 0, " ") + , (42908, 0, "(") + , (42909, 0, "*") + , (42910, 0, "n") + , (42911, 0, ")") + , (42912, 0, ".") + , (42913, 0, "h") + , (42914, 0, "e") + , (42915, 0, "i") + , (42916, 0, "g") + , (42917, 0, "h") + , (42918, 0, "t") + , (42919, 0, " ") + , (42920, 0, "{") + , (42921, 0, "\n ") + , (42922, 28, " }") + , (42947, 0, " ") + , (42948, 0, "e") + , (42949, 0, "l") + , (42950, 0, "s") + , (42951, 0, "e") + , (42952, 0, " ") + , (42953, 0, "{") + , (43028, 1, "") + , (43028, 0, "\n ") + , (43029, 28, " }") + , (42921, 0, "\n ") + , (42950, 0, "c") + , (42951, 0, "u") + , (42952, 0, "r") + , (42953, 0, "s") + , (42954, 0, "o") + , (42955, 0, "r") + , (42950, 6, "cursor_node") + , (43094, 0, ";") + , (42307, 9, "") + , (42897, 1, "") + , ( 43058 + , 0 + , "\n cursor.entries[(*n).height as usize + 1].node" + ) + , (43058, 0, "\n } else {") + , (42952, 33, "") + , (42940, 0, "// ") + , (42940, 3, "") + , (43025, 33, "") + , (42952, 0, " } else {\n") + , (43058, 74, "") + , (43051, 1, "") + , (43050, 1, "") + , (43049, 1, "") + , (43048, 1, "") + , (43047, 1, "") + , (43047, 0, "e") + , (43540, 0, "// ") + , (41192, 0, "// ") + , (39147, 0, "// ") + , (39176, 0, "// ") + , (20273, 0, "// ") + , (18537, 0, "// ") + , (19421, 0, "_") + , (52080, 0, "// ") + , (52035, 0, "// ") + , (51961, 0, "// ") + , (51564, 0, "// ") + , (51755, 0, "// ") + , (51525, 0, "// ") + , (51525, 3, "") + , (51755, 3, "") + , (51564, 3, "") + , (52086, 3, "") + , (52038, 3, "") + , (51961, 3, "") + , (1572, 2, "5") + , (1182, 1, "") + , (1182, 0, "1") + , (1183, 0, "0") + , (42851, 76, "") + , (42779, 24, " ") + , ( 42779 + , 0 + , " (*n).parent = if cursor_node_height > (*n).height {\n" + ) + , (42931, 40, "") + , (42855, 0, " cursor_node\n") + , (42971, 33, "") + , (42895, 0, " } else {\n") + , (42965, 0, "W") + , (42966, 0, "e") + , (42967, 0, " ") + , (42968, 0, "s") + , (42969, 0, "h") + , (42970, 0, "o") + , (42971, 0, "u") + , (42972, 0, "l") + , (42973, 0, "d") + , (42974, 0, " ") + , (42975, 0, "b") + , (42976, 0, "e") + , (42977, 0, " ") + , (42978, 0, "a") + , (42979, 0, "b") + , (42980, 0, "l") + , (42981, 0, "e") + , (42982, 0, " ") + , (42983, 0, "t") + , (42984, 0, "o") + , (42985, 0, " ") + , (42986, 1, "") + , (42986, 0, "c") + , ( 42928 + , 97 + , " // TODO: We should be able to cache this each time\n // the height goes up" + ) + , (43056, 0, ".") + , (42518, 0, "\n ") + , (42543, 0, "l") + , (42544, 0, "e") + , (42545, 0, "t") + , (42546, 0, " ") + , (42547, 0, "n") + , (42548, 0, "-") + , (42548, 1, "") + , (42548, 0, "_") + , (42549, 0, "h") + , (42550, 0, "e") + , (42551, 0, "i") + , (42552, 0, "g") + , (42553, 0, "h") + , (42554, 0, "t") + , (42555, 0, " ") + , (42556, 0, "=") + , (42557, 0, " ") + , (42558, 0, "(") + , (42559, 0, "*") + , (42560, 0, "n") + , (42561, 0, ")") + , (42562, 0, ".") + , (42563, 0, "h") + , (42564, 0, "e") + , (42565, 0, "i") + , (42566, 0, "g") + , (42567, 0, "h") + , (42568, 0, "t") + , (42569, 0, ";") + , (42519, 51, "") + , (42518, 1, "") + , (42599, 0, "\n ") + , (42624, 0, " let n_height = (*n).height;") + , (42600, 48, " ") + , (43270, 11, "n") + , (43153, 11, "n") + , (42893, 11, "n") + , (43251, 0, "_") + , (43144, 0, "_") + , (42894, 0, "_") + , (43254, 0, "h") + , (43146, 0, "h") + , (42895, 0, "h") + , (43257, 0, "e") + , (43148, 0, "e") + , (42896, 0, "e") + , (43260, 0, "i") + , (43150, 0, "i") + , (42897, 0, "i") + , (43263, 0, "g") + , (43152, 0, "g") + , (42898, 0, "g") + , (43266, 0, "h") + , (43154, 0, "h") + , (42899, 0, "h") + , (43269, 0, "t") + , (43156, 0, "t") + , (42900, 0, "t") + , ( 43287 + , 0 + , "\n \n assert_eq!((*n).parent, e);\n (*n).parent = if cursor_node_height > n_height {\n cursor_node\n } else {\n // TODO: We should be able to cache this each time\n // the height goes up.\n cursor.entries[n_height as usize].node\n };\n\n skip_height = usize::max(skip_height, n_height as usize - 1);" + ) + , (43226, 0, "// ") + , (43198, 0, "// ") + , (43131, 0, "// ") + , (43080, 0, "// ") + , (43001, 0, "// ") + , (42968, 0, "// ") + , (42928, 0, "// ") + , (42855, 0, "// ") + , (42803, 0, "// ") + , (43391, 0, "\n ") + , (43416, 0, "\n ") + , (43392, 24, "") + , (43364, 53, "") + , (42803, 3, "") + , (42830, 0, "\n ") + , (43361, 0, "\n ") + , (42831, 24, "") + , (43362, 0, "i") + , (43363, 0, "f") + , (43364, 0, " ") + , (43365, 0, "n") + , (43366, 0, "_") + , (43367, 0, "h") + , (43368, 0, "e") + , (43369, 0, "i") + , (43370, 0, "g") + , (43371, 0, "h") + , (43372, 0, "t") + , (43373, 0, " ") + , (43374, 0, ">") + , (43375, 0, " ") + , (43376, 0, "s") + , (43377, 0, "k") + , (43378, 0, "i") + , (43379, 0, "p") + , (43380, 0, "_") + , (43381, 0, "h") + , (43382, 0, "e") + , (43383, 0, "i") + , (43376, 8, "skip_height") + , (43373, 0, " ") + , (43374, 0, "a") + , (43375, 0, "s") + , (43376, 0, " ") + , (43377, 0, "u") + , (43378, 0, "s") + , (43379, 0, "i") + , (43380, 0, "z") + , (43381, 0, "e") + , (43396, 0, " ") + , (43397, 0, "{") + , (43398, 0, "\n ") + , (43427, 0, "\n ") + , (43399, 28, "") + , (43400, 28, " }") + , (43399, 0, " ") + , (43427, 0, "s") + , (43428, 0, "k") + , (43429, 0, "i") + , (43430, 0, "p") + , (43431, 0, "_") + , (43427, 5, "skip_height") + , (43438, 0, " ") + , (43439, 0, "=") + , (43440, 0, " ") + , (43441, 0, "n") + , (43442, 0, "_") + , (43443, 0, "e") + , (43444, 0, "i") + , (43444, 1, "") + , (43443, 1, "") + , (43443, 0, "h") + , (43444, 0, "e") + , (43445, 0, "i") + , (43446, 0, "g") + , (43447, 0, "h") + , (43448, 0, "t") + , (43449, 0, " ") + , (43450, 0, "=") + , (43450, 1, "") + , (43450, 0, "a") + , (43451, 0, "s") + , (43452, 0, " ") + , (43453, 0, "u") + , (43454, 0, "s") + , (43455, 0, "i") + , (43456, 0, "z") + , (43457, 0, "e") + , (43458, 0, ";") + , (43459, 0, "\n ") + , (43935, 0, "// ") + , (43460, 28, "") + , (42324, 0, "\n ") + , (42345, 0, "l") + , (42346, 0, "e") + , (42347, 0, "t") + , (42348, 0, " ") + , (42349, 0, "m") + , (42350, 0, "u") + , (42351, 0, "t") + , (42352, 0, " ") + , (42353, 0, "n") + , (42354, 0, "e") + , (42355, 0, "w") + , (42356, 0, "_") + , (42357, 0, "p") + , (42358, 0, "a") + , (42359, 0, "r") + , (42360, 0, "e") + , (42361, 0, "n") + , (42362, 0, "t") + , (42363, 0, " ") + , (42364, 0, "=") + , (42365, 0, " ") + , (42366, 0, "c") + , (42367, 0, "u") + , (42368, 0, "r") + , (42369, 0, "s") + , (42370, 0, "o") + , (42371, 0, "r") + , (42372, 0, "_") + , (42373, 0, "n") + , (42374, 0, "o") + , (42375, 0, "d") + , (42376, 0, "e") + , (42377, 0, ";") + , (43514, 0, " ") + , (43542, 0, "if cursor_node_height > n_height") + , (43564, 1, "") + , (43564, 0, "<") + , (43565, 0, "=") + , (43575, 0, " ") + , (43576, 0, "{") + , (43577, 0, "\n ") + , (43610, 0, "\n ") + , (43578, 32, "") + , (43579, 32, " }") + , (43567, 8, "") + , (43566, 1, "") + , (43565, 1, "") + , (43564, 1, "") + , (43563, 1, "") + , (43545, 0, ">") + , (43546, 0, "=") + , (43547, 0, " ") + , (43545, 0, "n_height") + , (43553, 0, " ") + , (43578, 0, " ") + , (43610, 0, "n") + , (43611, 0, "e") + , (43612, 0, "w") + , (43613, 0, "_") + , (43614, 0, "p") + , (43615, 0, "a") + , (43616, 0, "r") + , (43617, 0, "e") + , (43618, 0, "n") + , (43619, 0, "t") + , (43620, 0, " ") + , (43621, 0, "=") + , (43622, 0, " ") + , (43623, 0, "cursor.entries[n_height as usize].node") + , (43638, 17, "s") + , (43639, 0, "k") + , (43640, 0, "i") + , (43641, 0, "p") + , (43642, 0, "_") + , (43643, 0, "h") + , (43638, 6, "skip_height") + , (43775, 331, "") + , (43775, 0, "n") + , (43776, 0, "e") + , (43777, 0, "w") + , (43778, 0, "_") + , (43779, 0, "p") + , (43780, 0, "a") + , (43775, 6, "new_parent") + , (43785, 0, ";") + , (43787, 90, "") + , (43761, 0, "// ") + , (43710, 0, "// ") + , (43680, 0, "// ") + , (43602, 0, "// ") + , (43538, 0, "// ") + , (43477, 0, "// ") + , (43416, 0, "// ") + , (43302, 3, "") + , (43271, 3, "") + , (43201, 3, "") + , (43147, 3, "") + , (43065, 3, "") + , (43029, 3, "") + , (42986, 3, "") + , (42910, 3, "") + , (42884, 0, "\n ") + , (42909, 0, "a") + , (42910, 0, "s") + , (42911, 0, "s") + , (42912, 0, "e") + , (42913, 0, "r") + , (42914, 0, "t") + , (42915, 0, "!") + , (42916, 0, "(") + , (42917, 0, "s") + , (42918, 0, "k") + , (42919, 0, "i") + , (42920, 0, "p") + , (42917, 4, "skip_height") + , (42917, 0, "n") + , (42918, 0, "_") + , (42919, 0, "h") + , (42920, 0, "e") + , (42921, 0, "i") + , (42922, 0, "g") + , (42923, 0, "h") + , (42924, 0, "t") + , (42925, 0, " ") + , (42926, 0, ">") + , (42927, 0, "=") + , (42928, 0, " ") + , (42940, 0, ")") + , (42941, 0, ";") + , (42925, 0, " ") + , (42926, 0, "a") + , (42927, 0, "s") + , (42928, 0, " ") + , (42929, 0, "u") + , (42930, 0, "s") + , (42931, 0, "i") + , (42932, 0, "z") + , (42933, 0, "e") + , (42704, 0, " ") + , (42705, 0, "a") + , (42706, 0, "s") + , (42707, 0, " ") + , (42708, 0, "u") + , (42709, 0, "s") + , (42710, 0, "i") + , (42711, 0, "z") + , (42712, 0, "e") + , (42935, 8, "") + , (42934, 1, "") + , (42323, 0, " ") + , (42324, 0, "a") + , (42325, 0, "s") + , (42326, 0, " ") + , (42327, 0, "u") + , (42328, 0, "s") + , (42329, 0, "i") + , (42330, 0, "z") + , (42331, 0, "e") + , (43357, 0, "// ") + , (43471, 3, "") + , (43532, 3, "") + , (43774, 3, "") + , (43482, 9, "") + , (43549, 9, "") + , (43482, 0, " ") + , (43483, 0, "-") + , (43484, 0, " ") + , (43485, 0, "1") + , (43357, 3, "") + , (43524, 0, "// ") + , (43468, 0, "// ") + , (43763, 0, "// ") + , (43468, 3, "") + , (43524, 3, "") + , (43757, 3, "") + , (43550, 0, " ") + , (43551, 0, "-") + , (43552, 0, " ") + , (43553, 0, "1") + , (43357, 0, "// ") + , (43329, 0, "// ") + , (43262, 0, "// ") + , (43211, 0, "// ") + , (43132, 0, "// ") + , (43099, 0, "// ") + , (43059, 0, "// ") + , (42986, 0, "// ") + , (43752, 3, "") + , (43671, 3, "") + , (43604, 3, "") + , (43715, 0, " ") + , (43716, 0, "-") + , (43717, 0, " ") + , (43717, 1, "") + , (43716, 1, "") + , (43716, 0, "+") + , (43717, 0, " ") + , (43718, 0, "1") + , (43831, 3, "") + , (43621, 1, "") + , (43621, 0, "=") + , (42197, 1, "") + , (42197, 0, "1") + , (42574, 0, " ") + , (42575, 0, "-") + , (42576, 0, " ") + , (42577, 0, "1") + , (42962, 0, " ") + , (42963, 0, "-") + , (42964, 0, " ") + , (42965, 0, "1") + , (43514, 1, "") + , (43513, 1, "") + , (43512, 1, "") + , (43511, 1, "") + , (43581, 1, "") + , (43580, 1, "") + , (43579, 1, "") + , (43578, 1, "") + , (43718, 1, "") + , (43717, 1, "") + , (43716, 1, "") + , (43715, 1, "") + , (43715, 0, " + 1") + , (43578, 0, " - 1") + , (43511, 0, " - 1") + , (42964, 2, "") + , (42962, 2, "") + , (42576, 2, "") + , (42574, 2, "") + , (42197, 1, "") + , (42197, 0, "0") + , (43755, 26, "") + , (43726, 28, " ") + , (43644, 32, " ") + , (43580, 28, " ") + , (43580, 0, " }\n") + , (43760, 32, " ") + , (43674, 36, " ") + , (43606, 32, " ") + , (43752, 28, " ") + , (43670, 32, " ") + , (43606, 28, " ") + , (43769, 0, "\n skip_height = n_height - 1;") + , (43524, 56, "") + , (43713, 56, "") + , (43524, 0, " skip_height = n_height - 1;\n") + , (43744, 24, " ") + , (43666, 28, " ") + , (43606, 24, " ") + , (43752, 28, " ") + , (43670, 32, " ") + , (43606, 28, " ") + , (43793, 0, "\n }") + , (43760, 32, " ") + , (43674, 36, " ") + , (43606, 32, " ") + , (43580, 26, "") + , ( 42388 + , 0 + , " if n_height >= cursor_node_height {\n new_parent = cursor.entries[skip_height + 1].node\n }" + ) + , (42534, 28, " ") + , (42452, 32, " ") + , (42388, 28, " ") + , (42411, 8, "(*n).height as usize") + , (42411, 20, "g") + , (42412, 0, "e") + , (42413, 0, "u") + , (42414, 0, "g") + , (42414, 1, "") + , (42413, 1, "") + , (42412, 1, "") + , (42411, 1, "") + , (42411, 0, "h") + , (42412, 0, "e") + , (42413, 0, "i") + , (42414, 0, "g") + , (42415, 0, "h") + , (42416, 0, "t") + , (42408, 33, "") + , (42375, 0, "if height >= cursor_node_height {") + , (42408, 0, "\n ") + , (42444, 1, "") + , (42445, 20, " }") + , (42466, 0, " ") + , (42467, 0, "e") + , (42468, 0, "l") + , (42469, 0, "s") + , (42470, 0, "e") + , (42471, 0, " ") + , (42472, 0, "{") + , (42498, 13, "") + , (42556, 0, "\n ") + , (42557, 20, "") + , (42556, 0, ";") + , (42558, 0, " ") + , (42556, 1, "") + , (42556, 21, "") + , (42498, 0, "new_parent = ") + , (42471, 2, "") + , (42466, 5, "") + , (42445, 21, " ") + , (42444, 0, ";") + , (42408, 25, "") + , (42375, 33, "") + , (42408, 0, "if height >= cursor_node_height {") + , (42411, 6, "") + , (42411, 0, "geug") + , (42411, 4, "(*n).height as usize") + , (42411, 20, "geug") + , (42411, 4, "") + , (42411, 0, "height") + , (42408, 33, "") + , (42375, 0, "if height >= cursor_node_height {") + , (42408, 0, "\n ") + , (42444, 1, "") + , (42445, 20, " }") + , (42466, 0, " else") + , (42471, 0, " {") + , (42498, 13, "") + , (42556, 0, "\n ") + , (42557, 20, "") + , (42556, 0, ";") + , (42534, 0, "\n } else {") + , (42445, 29, "") + , (42505, 0, "\n cursor_node") + , (42409, 36, "") + , (42505, 29, "") + , (42470, 0, " } else {\n") + , (43131, 506, "") + , (43372, 0, "arent") + , (43368, 3, "") + , (43220, 0, "arent") + , (43216, 3, "") + , (43178, 0, "arent") + , (43174, 3, "") + , (43121, 0, "arent") + , (43117, 3, "") + , (42737, 0, "arent") + , (42733, 3, "") + , (42452, 0, "arent") + , (42448, 3, "") + , (42187, 0, "arent") + , (42183, 3, "") + , (42199, 1, "") + , (42199, 0, "1") + , (42466, 1, "") + , (42465, 1, "") + , (42464, 1, "") + , (42463, 1, "") + , (42746, 0, " ") + , (42747, 0, "-") + , (42748, 0, " ") + , (42749, 0, "1") + , (43136, 0, " ") + , (43137, 0, "-") + , (43138, 0, " ") + , (43139, 0, "1") + , (43199, 0, " ") + , (43200, 0, "-") + , (43201, 0, " ") + , (43202, 0, "1") + , (43182, 1, "") + , (43181, 1, "") + , (43180, 1, "") + , (43179, 1, "") + , (43198, 1, "") + , (43197, 1, "") + , (43196, 1, "") + , (43195, 1, "") + , (43253, 1, "") + , (43252, 1, "") + , (43251, 1, "") + , (43250, 1, "") + , (43392, 1, "") + , (43391, 1, "") + , (43390, 1, "") + , (43389, 1, "") + , (1939, 0, "/") + , (1940, 0, "/") + , (1938, 0, ";") + , (31737, 271, "") + , (31368, 86, "") + , (1934, 4, "C") + , (1935, 0, "l") + , (1936, 0, "o") + , (1937, 0, "n") + , (1938, 0, "e") + , (29029, 0, ".") + , (29030, 0, "c") + , (29031, 0, "l") + , (29032, 0, "o") + , (29033, 0, "n") + , (29034, 0, "e") + , (29035, 0, "(") + , (29036, 0, ")") + , (29029, 8, "") + , (29008, 1, "") + , (29007, 1, "") + , (29006, 1, "") + , (29005, 1, "") + , (29005, 0, "c") + , (29006, 0, "l") + , (29007, 0, "o") + , (29008, 0, "n") + , (29009, 0, "e") + , (29005, 5, "") + , (29005, 0, "copy") + , (29029, 0, ".clone()") + , (29029, 8, "") + , (1934, 5, "Copy") + , (1934, 4, "Clone") + , (1934, 5, "Copy") + , (1934, 4, "U") + , (1935, 0, "n") + , (1936, 0, "p") + , (1937, 0, "i") + , (1938, 0, "n") + , (1933, 0, " ") + , (1934, 0, "s") + , (1935, 0, "t") + , (1936, 0, "d") + , (1937, 0, ":") + , (1938, 0, ":") + , (1939, 0, "p") + , (1940, 0, "i") + , (1939, 2, "pin") + , (1942, 0, ":") + , (1943, 0, ":") + , (1944, 1, "") + , (1944, 5, "") + , (1944, 0, "I") + , (1944, 1, "") + , (1944, 0, "U") + , (1945, 0, "n") + , (1946, 0, "p") + , (1947, 0, "i") + , (1931, 17, "") + , (28422, 0, ",") + , (28423, 0, " ") + , (28424, 0, "I") + , (28602, 0, ",") + , (28603, 0, "\n ") + , (28603, 13, "") + , (28603, 0, " ") + , (28604, 0, "I") + , (28605, 0, ":") + , (28606, 0, " ") + , (28607, 0, "E") + , (28608, 0, "x") + , (28609, 0, "a") + , (28607, 3, "ExactSizeIterator") + , (28624, 0, "<") + , (28625, 0, "I") + , (28626, 0, "t") + , (28627, 0, "e") + , (28628, 0, "m") + , (28629, 0, "=") + , (28630, 0, "C") + , (28631, 0, ":") + , (28632, 0, ":") + , (28633, 0, "I") + , (28634, 0, "t") + , (28635, 0, "e") + , (28636, 0, "m") + , (28637, 0, ">") + , (28472, 10, "") + , (28472, 0, "I") + , (28964, 0, "/") + , (28965, 0, "/") + , (28963, 0, " ") + , (28964, 0, "i") + , (28965, 0, "t") + , (28965, 1, "") + , (28964, 1, "") + , (28964, 0, "c") + , (28965, 0, "o") + , (28966, 0, "n") + , (28967, 0, "t") + , (28968, 0, "e") + , (28969, 0, "n") + , (28970, 0, "t") + , (28971, 0, "s") + , (28972, 0, ".") + , (28973, 0, "s") + , (28974, 0, "i") + , (28975, 0, "z") + , (28973, 3, "size_hint()") + , (28984, 0, ";") + , (28984, 19, "") + , (28984, 0, " ") + , (28973, 9, "l") + , (28974, 0, "e") + , (28975, 0, "n") + , (28973, 3, "size_hint") + , (28984, 1, "") + , (28984, 0, "; //contents.len() ") + , (28984, 1, "") + , (28973, 11, "siz") + , (28964, 12, "") + , (28964, 0, "it") + , (28963, 3, "") + , (28964, 2, "") + , (28994, 0, "// ") + , (28985, 0, "\n ") + , (28994, 0, "\n ") + , (28986, 8, "") + , (28987, 8, "") + , (28986, 0, "\n ") + , (28995, 0, "f") + , (28996, 0, "o") + , (28997, 0, "r") + , (28995, 3, "") + , (28995, 0, "f") + , (28996, 0, "o") + , (28997, 0, "r") + , (28998, 0, " ") + , (28999, 0, "i") + , (29000, 0, "t") + , (29001, 0, "e") + , (29002, 0, "m") + , (29003, 0, " ") + , (29004, 0, "i") + , (29005, 0, "n") + , (29006, 0, " ") + , (29007, 0, "c") + , (29008, 0, "o") + , (29009, 0, "n") + , (29010, 0, "t") + , (29011, 0, "e") + , (29012, 0, "n") + , (29013, 0, "t") + , (29014, 0, "s") + , (29015, 0, " ") + , (29016, 0, "{") + , (29017, 0, "\n ") + , (29030, 0, "\n ") + , (29018, 12, "") + , (29019, 12, " }") + , (29018, 0, " ") + , (29030, 0, "new_node.items[..contents.len()]") + , (29045, 16, "") + , (29045, 0, "0") + , (29047, 0, " ") + , (29048, 0, "=") + , (29049, 0, " ") + , (29050, 0, "i") + , (29051, 0, "t") + , (29052, 0, "e") + , (29053, 0, "m") + , (29054, 0, ";") + , (28934, 0, "\n ") + , (28943, 0, "l") + , (28944, 0, "e") + , (28945, 0, "t") + , (28946, 0, " ") + , (28947, 0, "l") + , (28948, 0, "e") + , (28949, 0, "n") + , (28950, 0, " ") + , (28951, 0, "=") + , (28952, 0, " ") + , (28983, 14, "") + , (28953, 0, "contents.len()") + , (28967, 0, ";") + , (28998, 0, "l") + , (28999, 0, "e") + , (29000, 0, "n") + , (29000, 1, "ms") + , (28998, 1, "num_it") + , (28949, 1, "ms") + , (28947, 1, "num_it") + , (29034, 16, "") + , (29034, 0, "i") + , (29035, 0, " ") + , (29036, 0, "i") + , (29037, 0, "n") + , (29038, 0, " ") + , (29039, 0, "0") + , (29040, 0, ".") + , (29041, 0, ".") + , (29042, 0, "n") + , (29043, 0, "u") + , (29044, 0, "m") + , (29045, 0, "_") + , (29046, 0, "i") + , (29042, 5, "num_items") + , (29081, 1, "") + , (29081, 0, "i") + , (29086, 4, "c") + , (29087, 0, "o") + , (29088, 0, "n") + , (29089, 0, "t") + , (29090, 0, "e") + , (29091, 0, "n") + , (29092, 0, "t") + , (29093, 0, "s") + , (29094, 0, ".") + , (29095, 0, "n") + , (29096, 0, "e") + , (29095, 2, "next()") + , (29101, 0, ".") + , (29102, 0, "u") + , (29103, 0, "n") + , (29104, 0, "w") + , (29105, 0, "r") + , (29102, 4, "unwrap") + , (29108, 0, "(") + , (29109, 0, ")") + , (28472, 0, "7") + , (28472, 1, "") + , (28472, 0, "&") + , (28473, 0, "m") + , (28474, 0, "i") + , (28475, 0, "u") + , (28476, 0, "t") + , (28477, 0, " ") + , (28477, 1, "") + , (28476, 1, "") + , (28475, 1, "") + , (28474, 1, "") + , (28474, 0, "u") + , (28475, 0, "t") + , (28476, 0, " ") + , (28603, 17, "I") + , (28604, 0, "t") + , (28605, 0, "e") + , (28606, 0, "r") + , (28607, 0, "a") + , (28608, 0, "t") + , (28609, 0, "o") + , (28610, 0, "r") + , (28479, 0, " ") + , (28480, 0, "n") + , (28481, 0, "u") + , (28482, 0, "m") + , (28483, 0, "_") + , (28484, 0, "i") + , (28485, 0, "t") + , (28486, 0, "e") + , (28487, 0, "m") + , (28488, 0, "s") + , (28489, 0, ":") + , (28490, 0, " ") + , (28491, 0, "u") + , (28492, 0, "s") + , (28493, 0, "i") + , (28494, 0, "z") + , (28495, 0, "e") + , (28496, 0, ",") + , (28736, 0, "// ") + , (28809, 0, "// ") + , (28809, 3, "") + , (28817, 14, "n") + , (28818, 0, "u") + , (28819, 0, "m") + , (28820, 0, "_") + , (28821, 0, "i") + , (28822, 0, "t") + , (28823, 0, "e") + , (28824, 0, "m") + , (28825, 0, "s") + , (28955, 0, "// ") + , (29049, 17, "") + , (29049, 0, "(") + , (29050, 0, "s") + , (29051, 0, "l") + , (29052, 0, "o") + , (29053, 0, "t") + , (29054, 0, ",") + , (29055, 0, " ") + , (29056, 0, "i") + , (29057, 0, "t") + , (29058, 0, "e") + , (29059, 0, "m") + , (29060, 0, ")") + , (29061, 0, " ") + , (29062, 0, "i") + , (29063, 0, "n") + , (29064, 0, " ") + , (29064, 1, "") + , (29061, 3, "") + , (29055, 6, "") + , (29055, 0, " item)") + , (29061, 0, " in") + , (29064, 0, " ") + , (29065, 0, "n") + , (29066, 0, "e") + , (29067, 0, "w") + , (29068, 0, "_") + , (29065, 4, "new_node") + , (29073, 0, ".") + , (29074, 0, "i") + , (29075, 0, "t") + , (29076, 0, "e") + , (29077, 0, "m") + , (29078, 0, "s") + , (29079, 0, "[") + , (29080, 0, ".") + , (29081, 0, ".") + , (29082, 0, "n") + , (29083, 0, "u") + , (29084, 0, "m") + , (29085, 0, "_") + , (29086, 0, "i") + , (29087, 0, "t") + , (29088, 0, "e") + , (29089, 0, "m") + , (29090, 0, "s") + , (29091, 0, "]") + , (29092, 0, ".") + , (29093, 0, "z") + , (29094, 0, "i") + , (29095, 0, "p") + , (29096, 0, "(") + , (29097, 0, "c") + , (29098, 0, "u") + , (29099, 0, "r") + , (29097, 3, "") + , (29097, 0, "c") + , (29098, 0, "o") + , (29099, 0, "n") + , (29100, 0, "t") + , (29101, 0, "e") + , (29102, 0, "n") + , (29103, 0, "t") + , (29104, 0, "s") + , (29105, 0, ")") + , (29121, 0, "// ") + , (29169, 0, "\n ") + , (29182, 0, "(") + , (29182, 1, "") + , (29182, 0, "*") + , (29183, 0, "s") + , (29184, 0, "l") + , (29185, 0, "o") + , (29186, 0, "t") + , (29187, 0, " ") + , (29188, 0, "=") + , (29189, 0, " ") + , (29190, 0, "i") + , (29191, 0, "t") + , (29192, 0, "e") + , (29193, 0, "m") + , (29194, 0, ";") + , (29092, 0, ".") + , (29093, 0, "i") + , (29094, 0, "t") + , (29095, 0, "e") + , (29096, 0, "r") + , (29097, 0, "(") + , (29098, 0, ")") + , (29097, 0, "_") + , (29098, 0, "m") + , (29099, 0, "u") + , (29100, 0, "t") + , (29216, 0, "\n ") + , (29225, 0, "\n ") + , (29217, 8, "") + , (29226, 0, "/") + , (29227, 0, "/") + , (29228, 0, " ") + , (29229, 0, "D") + , (29229, 1, "") + , (29229, 0, "T") + , (29230, 0, "O") + , (29231, 0, "D") + , (29232, 0, "O") + , (29233, 0, "O") + , (29234, 0, ":") + , (29235, 0, " ") + , (29235, 1, "") + , (29234, 1, "") + , (29233, 1, "") + , (29233, 0, ":") + , (29234, 0, " ") + , (29235, 0, "M") + , (29236, 0, "a") + , (29237, 0, "k") + , (29238, 0, "e") + , (29239, 0, " ") + , (29240, 0, "s") + , (29241, 0, "u") + , (29242, 0, "r") + , (29243, 0, "e") + , (29244, 0, " ") + , (29245, 0, "t") + , (29246, 0, "h") + , (29247, 0, "e") + , (29248, 0, " ") + , (29249, 0, "i") + , (29250, 0, "t") + , (29251, 0, "e") + , (29252, 0, "r") + , (29253, 0, "a") + , (29254, 0, "t") + , (29255, 0, "o") + , (29256, 0, "r") + , (29257, 0, " ") + , (29258, 0, "w") + , (29259, 0, "r") + , (29260, 0, "o") + , (29261, 0, "t") + , (29262, 0, "e") + , (29263, 0, " ") + , (29264, 0, "n") + , (29265, 0, "u") + , (29266, 0, "m") + , (29267, 0, "_") + , (29268, 0, "i") + , (29269, 0, "t") + , (29270, 0, "e") + , (29271, 0, "m") + , (29272, 0, "s") + , (29264, 0, "a") + , (29265, 0, "t") + , (29266, 0, " ") + , (29267, 0, "l") + , (29268, 0, "e") + , (29269, 0, "a") + , (29270, 0, "s") + , (29271, 0, "t") + , (29272, 0, " ") + , (29282, 0, ".") + , (29283, 0, " ") + , (29284, 0, "I") + , (29285, 0, "f") + , (29286, 0, " ") + , (29287, 0, "n") + , (29288, 0, "o") + , (29289, 0, "t") + , (29290, 0, ",") + , (29291, 0, " ") + , (29292, 0, "w") + , (29293, 0, "e") + , (29294, 0, "'") + , (29295, 0, "r") + , (29296, 0, "e") + , (29297, 0, " ") + , (29298, 0, "i") + , (29299, 0, "n") + , (29300, 0, " ") + , (29301, 0, "a") + , (29302, 0, "n") + , (29303, 0, " ") + , (29304, 0, "i") + , (29305, 0, "n") + , (29306, 0, "v") + , (29307, 0, "a") + , (29308, 0, "l") + , (29309, 0, "i") + , (29310, 0, "d") + , (29311, 0, " ") + , (29312, 0, "s") + , (29313, 0, "t") + , (29314, 0, "a") + , (29315, 0, "t") + , (29316, 0, "e") + , (29317, 0, "!") + , (29318, 0, "\n ") + , (29399, 0, "\n") + , (29328, 1, "") + , (29319, 8, "") + , (29390, 0, "\n") + , (29319, 1, "") + , ( 29389 + , 0 + , "\n // TODO: Make sure the iterator wrote at least num_items. If not, we're in an invalid state!" + ) + , (29218, 101, "") + , (29288, 0, "\n") + , (29217, 1, "") + , ( 29390 + , 0 + , " // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n" + ) + , (29398, 3, "") + , (29459, 1, "") + , (29389, 0, "\n ") + , (29457, 8, "n") + , (29390, 8, "") + , (29450, 0, "e") + , (29451, 0, "w") + , (29449, 3, "new_node") + , (29457, 0, ".") + , (29458, 0, "i") + , (29458, 1, "") + , (29457, 1, "") + , (29457, 0, ".") + , (29458, 0, "i") + , (29459, 0, "t") + , (29460, 0, "e") + , (29461, 0, "m") + , (29462, 0, "s") + , (29463, 0, "(") + , (29464, 0, ")") + , (29458, 5, "c") + , (29459, 0, "o") + , (29460, 0, "n") + , (29461, 0, "t") + , (29462, 0, "e") + , (29463, 0, "n") + , (29464, 0, "t") + , (29465, 0, "_") + , (29466, 0, "s") + , (29467, 0, "l") + , (29468, 0, "i") + , (29469, 0, "c") + , (29470, 0, "e") + , (28621, 8, "E") + , (28622, 0, "x") + , (28623, 0, "a") + , (28624, 0, "c") + , (28621, 4, "ExactSizeIterator") + , (28855, 0, "\n ") + , (28864, 0, "d") + , (28865, 0, "e") + , (28866, 0, "b") + , (28867, 0, "u") + , (28868, 0, "g") + , (28864, 5, "debug_assert!") + , (28877, 0, "(") + , (28878, 0, "c") + , (28879, 0, "o") + , (28880, 0, "n") + , (28881, 0, "t") + , (28882, 0, "e") + , (28883, 0, "n") + , (28884, 0, "t") + , (28885, 0, "s") + , (28886, 0, ".") + , (28887, 0, "l") + , (28888, 0, "e") + , (28889, 0, "n") + , (28890, 0, "(") + , (28891, 0, ")") + , (28892, 0, " ") + , (28893, 0, ">") + , (28894, 0, " ") + , (28894, 1, "") + , (28894, 0, "=") + , (28895, 0, " ") + , (28896, 0, "n") + , (28897, 0, "u") + , (28898, 0, "m") + , (28899, 0, "_") + , (28900, 0, "i") + , (28901, 0, "t") + , (28902, 0, "e") + , (28896, 7, "num_items") + , (28905, 0, ")") + , (28906, 0, ";") + , (29537, 1, "") + , (29349, 102, "") + , (32303, 8, "new_node.content_slice()") + , (32600, 9, "m") + , (32601, 0, "u") + , (32602, 0, "t") + , (32603, 0, " ") + , (32604, 0, "I") + , (32552, 0, ",") + , (32553, 0, " ") + , (32554, 0, "I") + , (32689, 0, ",") + , (32690, 0, " ") + , (32691, 0, ", I: ExactSizeIterator") + , (32692, 1, "") + , (32691, 1, "") + , (32690, 1, "") + , (32690, 0, " ") + , (33161, 0, "// ") + , ( 34474 + , 0 + , " c[..].copy_within(item_idx..e_num_items,\n item_idx + num_inserted_items);\n" + ) + , (34656, 0, "// ") + , (34599, 0, "// ") + , (34473, 0, "\n ") + , (34490, 0, "/") + , (34491, 0, "/") + , (34492, 0, " ") + , (34493, 0, "C") + , (34494, 0, "a") + , (34495, 0, "n") + , (34496, 0, "'") + , (34497, 0, "t") + , (34498, 0, " ") + , (34499, 0, "u") + , (34500, 0, "s") + , (34501, 0, "e") + , (34502, 0, " ") + , (34503, 0, "c") + , (34504, 0, "o") + , (34505, 0, "p") + , (34506, 0, "y") + , (34507, 0, "_") + , (34508, 0, "w") + , (34509, 0, "i") + , (34510, 0, "t") + , (34511, 0, "h") + , (34512, 0, "i") + , (34513, 0, "n") + , (34514, 0, " ") + , (34515, 0, "b") + , (34516, 0, "e") + , (34517, 0, "c") + , (34518, 0, "a") + , (34519, 0, "u") + , (34520, 0, "s") + , (34521, 0, "e") + , (34522, 0, " ") + , (34523, 0, "w") + , (34524, 0, "e") + , (34525, 0, " ") + , (34526, 0, "a") + , (34527, 0, "r") + , (34528, 0, "e") + , (34529, 0, "n") + , (34530, 0, "'") + , (34531, 0, "t") + , (34532, 0, " ") + , (34533, 0, "s") + , (34534, 0, "u") + , (34535, 0, "r") + , (34536, 0, "e") + , (34537, 0, " ") + , (34538, 0, "i") + , (34539, 0, "f") + , (34540, 0, " ") + , (34541, 0, "i") + , (34541, 1, "") + , (34541, 0, "t") + , (34542, 0, "h") + , (34543, 0, "e") + , (34544, 0, " ") + , (34545, 0, "t") + , (34546, 0, "y") + , (34547, 0, "p") + , (34548, 0, "e") + , (34549, 0, " ") + , (34550, 0, "i") + , (34551, 0, "m") + , (34552, 0, "p") + , (34553, 0, "l") + , (34554, 0, "e") + , (34555, 0, "m") + , (34556, 0, "e") + , (34557, 0, "n") + , (34558, 0, "t") + , (34559, 0, "s") + , (34560, 0, " ") + , (34561, 0, "C") + , (34562, 0, "o") + , (34563, 0, "p") + , (34564, 0, "y") + , (34565, 0, ".") + , (34566, 0, " ") + , (34567, 0, "M") + , (34567, 1, "") + , (34567, 0, "M") + , (34568, 0, "e") + , (34569, 0, "m") + , (34570, 0, "m") + , (34571, 0, "o") + , (34572, 0, "v") + , (34573, 0, "e") + , (34574, 0, " ") + , (34575, 0, "i") + , (34576, 0, "n") + , (34577, 0, "s") + , (34578, 0, "t") + , (34579, 0, "e") + , (34580, 0, "a") + , (34581, 0, "d") + , (34582, 0, ".") + , (34600, 92, "") + , ( 34600 + , 0 + , " ptr::copy(\n &c[leading_bytes + removed_bytes],\n &mut c[leading_bytes],\n trailing_bytes);" + ) + , (34737, 24, " ") + , (34690, 24, " ") + , (34631, 24, " ") + , (34584, 36, " ") + , (34574, 9, " ") + , (34575, 0, "t") + , (34576, 0, "h") + , (34577, 0, "e") + , (34578, 0, " ") + , (34579, 0, "e") + , (34580, 0, "x") + , (34581, 0, "i") + , (34582, 0, "s") + , (34583, 0, "t") + , (34584, 0, "i") + , (34585, 0, "n") + , (34586, 0, "g") + , (34587, 0, " ") + , (34588, 0, "i") + , (34589, 0, "t") + , (34590, 0, "e") + , (34591, 0, "s") + , (34592, 0, "m") + , (34592, 1, "") + , (34591, 1, "") + , (34591, 0, "m") + , (34592, 0, "s") + , (34593, 0, ".") + , ( 34595 + , 161 + , " ptr::copy(\n &c[offset_bytes],\n &mut c[offset_bytes + num_inserted_bytes],\n (*e).num_bytes as usize - offset_bytes);" + ) + , (34645, 12, "item_idx") + , (34683, 33, "item_idx + num_inserted_items") + , (34740, 9, "") + , (34739, 1, "") + , (34739, 0, ".") + , (34740, 0, "n") + , (34741, 0, "u") + , (34742, 0, "m") + , (34743, 0, "_") + , (34744, 0, "i") + , (34745, 0, "t") + , (34746, 0, "e") + , (34747, 0, "m") + , (34748, 0, "s") + , (34761, 12, "i") + , (34762, 0, "t") + , (34763, 0, "e") + , (34764, 0, "m") + , (34765, 0, "_") + , (34766, 0, "i") + , (34767, 0, "d") + , (34768, 0, "x") + , (34956, 0, "// ") + , (34943, 0, "\n ") + , ( 34956 + , 0 + , "\n for (cell, item) in into.iter_mut().zip(iter) {\n *cell = item;\n }" + ) + , (34944, 12, "") + , (35019, 4, " ") + , (34997, 8, " ") + , (34945, 4, " ") + , (35027, 8, " ") + , (35001, 12, " ") + , (34945, 8, " ") + , (34943, 1, "") + , (34943, 0, ".") + , (34944, 0, " ") + , (34945, 0, "C") + , (34946, 0, "a") + , (34947, 0, "n") + , (34948, 0, "'") + , (34949, 0, "t") + , (34950, 0, " ") + , (34951, 0, "m") + , (34952, 0, "e") + , (34953, 0, "m") + , (34954, 0, "c") + , (34955, 0, "p") + , (34956, 0, "y") + , (34957, 0, " ") + , (34958, 0, "f") + , (34959, 0, "r") + , (34960, 0, "o") + , (34961, 0, "m") + , (34962, 0, " ") + , (34963, 0, "a") + , (34964, 0, "n") + , (34965, 0, " ") + , (34966, 0, "i") + , (34967, 0, "t") + , (34968, 0, "e") + , (34969, 0, "r") + , (34970, 0, "a") + , (34971, 0, "t") + , (34972, 0, "o") + , (34973, 0, "r") + , (34974, 0, ",") + , (34975, 0, " ") + , (34976, 0, "b") + , (34977, 0, "u") + , (34978, 0, "t") + , (34979, 0, " ") + , (34980, 0, "h") + , (34981, 0, "o") + , (34982, 0, "p") + , (34983, 0, "e") + , (34980, 4, "t") + , (34981, 0, "h") + , (34982, 0, "e") + , (34983, 0, " ") + , (34984, 0, "r") + , (34985, 0, "u") + , (34986, 0, "s") + , (34987, 0, "t") + , (34984, 4, "o") + , (34985, 0, "p") + , (34986, 0, "t") + , (34987, 0, "i") + , (34988, 0, "m") + , (34989, 0, "i") + , (34990, 0, "z") + , (34991, 0, "e") + , (34992, 0, "r") + , (34993, 0, " ") + , (34994, 0, "s") + , (34995, 0, "h") + , (34996, 0, "o") + , (34997, 0, "u") + , (34998, 0, "l") + , (34999, 0, "d") + , (35000, 0, " ") + , (35001, 0, "m") + , (35002, 0, "a") + , (35003, 0, "k") + , (35004, 0, "e") + , (35005, 0, " ") + , (35006, 0, "t") + , (35007, 0, "h") + , (35008, 0, "i") + , (35009, 0, "s") + , (35010, 0, " ") + , (35011, 0, "f") + , (35012, 0, "a") + , (35013, 0, "s") + , (35014, 0, "t") + , (35015, 0, ".") + , ( 34902 + , 114 + , " // Then copy in the new items. Can't memcpy from an iterator, but\n // the optimizer should make this fast." + ) + , ( 34474 + , 120 + , " // Can't use copy_within because we aren't sure if the type\n // implements Copy. Memmove the existing items." + ) + , (35083, 4, "") + , (35083, 0, "c") + , (35084, 0, "[") + , (35085, 0, "i") + , (35086, 0, "t") + , (35087, 0, "e") + , (35088, 0, "m") + , (35085, 4, "item_idx") + , (35093, 0, "]") + , (35093, 0, ".") + , (35094, 0, ".") + , (35095, 0, "i") + , (35096, 0, "t") + , (35097, 0, "e") + , (35098, 0, "m") + , (35095, 4, "item_idx") + , (35103, 0, " ") + , (35104, 0, "+") + , (35105, 0, " ") + , (35106, 0, "n") + , (35107, 0, "u") + , (35108, 0, "m") + , (35106, 3, "num_inserted_items") + , (35141, 4, "c") + , (35142, 0, "o") + , (35143, 0, "n") + , (35144, 0, "t") + , (35141, 4, "contents") + , (35388, 0, "\n ") + , (35401, 0, "l") + , (35402, 0, "e") + , (35403, 0, "t") + , (35404, 0, " ") + , (35405, 0, "n") + , (35406, 0, "u") + , (35407, 0, "m") + , (35408, 0, "_") + , (35409, 0, "i") + , (35410, 0, "n") + , (35411, 0, "s") + , (35412, 0, "e") + , (35413, 0, "r") + , (35414, 0, "t") + , (35415, 0, "e") + , (35416, 0, "d") + , (35417, 0, "_") + , (35418, 0, "u") + , (35419, 0, "s") + , (35420, 0, "e") + , (35421, 0, "r") + , (35422, 0, "c") + , (35423, 0, "o") + , (35424, 0, "u") + , (35425, 0, "n") + , (35426, 0, "t") + , (35427, 0, " ") + , (35428, 0, "=") + , (35429, 0, " ") + , (35430, 0, "C::userlen_of_slice(contents);") + , (35450, 8, "") + , (35450, 0, "c") + , (35451, 0, "[") + , (35452, 0, "item_idx..item_idx + num_inserted_items]") + , (35450, 0, "&") + , (35050, 0, "\n ") + , (35063, 0, "l") + , (35064, 0, "e") + , (35065, 0, "t") + , (35066, 0, " ") + , (35067, 0, "n") + , (35068, 0, "e") + , (35069, 0, "w") + , (35067, 3, "n") + , (35067, 1, "") + , (35067, 0, "m") + , (35068, 0, "u") + , (35069, 0, "t") + , (35070, 0, " ") + , (35071, 0, "n") + , (35072, 0, "e") + , (35073, 0, "w") + , (35074, 0, "_") + , (35071, 4, "d") + , (35072, 0, "e") + , (35073, 0, "s") + , (35074, 0, "t") + , (35075, 0, "_") + , (35076, 0, "c") + , (35077, 0, "o") + , (35078, 0, "n") + , (35079, 0, "t") + , (35080, 0, "e") + , (35081, 0, "n") + , (35082, 0, "t") + , (35083, 0, "_") + , (35084, 0, "s") + , (35085, 0, "l") + , (35086, 0, "i") + , (35087, 0, "c") + , (35088, 0, "e") + , (35089, 0, " ") + , (35090, 0, "=") + , (35091, 0, " ") + , (35092, 0, "item_idx..item_idx + num_inserted_items]") + , (35092, 0, "&") + , (35093, 0, "m") + , (35094, 0, "u") + , (35095, 0, "t") + , (35096, 0, " ") + , (35097, 0, "c") + , (35098, 0, "[") + , (35139, 0, ";") + , (35173, 42, "d") + , (35174, 0, "e") + , (35175, 0, "s") + , (35176, 0, "t") + , (35173, 4, "dest_content_slice") + , (35516, 43, "d") + , (35517, 0, "e") + , (35518, 0, "s") + , (35519, 0, "t") + , (35516, 4, "dest_content_slice") + , (36240, 8, "d") + , (36241, 0, "e") + , (36242, 0, "s") + , (36243, 0, "t") + , (36240, 4, "dest_content_slice") + , (38436, 6, "t") + , (38437, 0, "a") + , (38438, 0, "k") + , (38439, 0, "e") + , (38475, 0, "// ") + , (38571, 9, "") + , (28498, 20, "") + , (29329, 0, "\n ") + , (29338, 0, "l") + , (29339, 0, "e") + , (29340, 0, "t") + , (29341, 0, " ") + , (29368, 11, "") + , (29342, 0, "new_userlen") + , (29353, 0, " ") + , (29354, 0, "=") + , (29355, 0, " ") + , (29384, 45, "") + , (29356, 0, "C::userlen_of_slice(new_node.content_slice())") + , (29400, 1, "") + , (29400, 0, ")") + , (29401, 0, ";") + , (29411, 0, "// ") + , (29403, 32, "") + , (29402, 1, "") + , (28480, 18, "") + , (28826, 0, "// ") + , (28780, 0, "// ") + , (28875, 0, "\n ") + , (28884, 0, "a") + , (28885, 0, "s") + , (28886, 0, "s") + , (28887, 0, "e") + , (28888, 0, "r") + , (28889, 0, "t") + , (28890, 0, "!") + , (28891, 0, "(") + , (28875, 0, "\n ") + , (28884, 0, "l") + , (28885, 0, "e") + , (28886, 0, "t") + , (28887, 0, " ") + , (28888, 0, "n") + , (28889, 0, "u") + , (28890, 0, "m") + , (28891, 0, "_") + , (28892, 0, "i") + , (28893, 0, "t") + , (28894, 0, "e") + , (28895, 0, "m") + , (28896, 0, "s") + , (28897, 0, " ") + , (28898, 0, "=") + , (28899, 0, " ") + , (28900, 0, "c") + , (28901, 0, "o") + , (28902, 0, "n") + , (28903, 0, "t") + , (28904, 0, "e") + , (28905, 0, "n") + , (28906, 0, "t") + , (28907, 0, "s") + , (28908, 0, ".") + , (28909, 0, "l") + , (28910, 0, "e") + , (28911, 0, "n") + , (28912, 0, "(") + , (28913, 0, ")") + , (28914, 0, ";") + , (28932, 0, "n") + , (28933, 0, "u") + , (28934, 0, "m") + , (28932, 3, "num_items") + , (28941, 0, " ") + , (28942, 0, "<") + , (28943, 0, "=") + , (28944, 0, " ") + , (28945, 0, "N") + , (28946, 0, "O") + , (28947, 0, "D") + , (28948, 0, "E") + , (28949, 0, "_") + , (28945, 5, "NODE_NUM_ITEMS") + , (28959, 0, ")") + , (28960, 0, ";") + , (28472, 5, "") + , (28472, 0, "&mut ") + , (28472, 5, "") + , (28472, 0, "&mut ") + , (28959, 2, "") + , (28959, 0, ");") + , (28959, 2, "") + , (28945, 14, "NODE_") + , (28944, 6, "") + , (28941, 3, "") + , (28932, 9, "num") + , (28932, 3, "") + , (28899, 16, "") + , (28897, 2, "") + , (28887, 10, "") + , (28875, 12, "") + , (28875, 17, "") + , (28829, 3, "") + , (28780, 3, "") + , (28480, 0, "num_items: usize, ") + , (29402, 0, "\n") + , (29402, 1, "") + , (29402, 0, "\n") + , (29403, 0, " // debug_assert_eq!(, );") + , (29411, 3, "") + , (29400, 2, "") + , (29400, 0, ");") + , (29411, 0, "// ") + , (29403, 32, "") + , (29402, 1, "") + , (28480, 18, "") + , (28480, 0, "num_items: usize, ") + , (28601, 17, "I") + , (28602, 0, "t") + , (28603, 0, "e") + , (28604, 0, "r") + , (28605, 0, "a") + , (28606, 0, "t") + , (28607, 0, "o") + , (28608, 0, "r") + , (28858, 5, "") + , (28858, 0, "s") + , (28859, 0, "i") + , (28860, 0, "z") + , (28861, 0, "e") + , (28858, 4, "size_hint()") + , (28869, 0, ".") + , (28870, 0, "0") + , (32227, 14, "n") + , (32067, 14, "n") + , (32215, 0, "u") + , (32068, 0, "u") + , (32217, 0, "m") + , (32069, 0, "m") + , (32219, 0, "_") + , (32070, 0, "_") + , (32221, 0, "i") + , (32071, 0, "i") + , (32218, 5, "num_items") + , (32067, 5, "num_items") + , (38357, 0, "l") + , (38358, 0, "e") + , (38359, 0, "t") + , (38360, 0, " ") + , (38361, 0, "m") + , (38362, 0, "u") + , (38363, 0, "t") + , (38364, 0, " ") + , (38365, 0, "n") + , (38366, 0, "u") + , (38367, 0, "m") + , (38368, 0, "_") + , (38365, 4, "num_inserted_items") + , (38383, 0, " ") + , (38384, 0, "=") + , (38385, 0, " ") + , (38386, 0, "n") + , (38387, 0, "u") + , (38388, 0, "m") + , (38389, 0, "_") + , (38386, 4, "num_inserted_items") + , (38404, 0, ";") + , (38405, 0, "\n ") + , (38418, 0, "w") + , (38419, 0, "h") + , (38420, 0, "i") + , (38421, 0, "l") + , (38422, 0, "e") + , (38423, 0, " ") + , (38424, 0, "n") + , (38425, 0, "u") + , (38426, 0, "m") + , (38427, 0, "_") + , (38424, 4, "num_inserted_items") + , (38442, 0, " ") + , (38443, 0, ">") + , (38444, 0, " ") + , (38445, 0, "0") + , (38446, 0, " ") + , (38447, 0, "{") + , (38448, 0, "\n ") + , (38465, 0, "\n ") + , (38449, 16, "") + , (38450, 16, " }") + , (38660, 0, "// ") + , (38594, 0, "// ") + , (38533, 0, "// ") + , (38476, 0, "// ") + , ( 38656 + , 0 + , "\n // self.insert_node_at(cursor, chunk, true, notify);" + ) + , ( 38656 + , 0 + , "\n // // let userlen = C::userlen_of_slice(chunk);" + ) + , (38588, 12, " ") + , (38524, 64, "") + , ( 38596 + , 0 + , "\n // for chunk in contents.take(NODE_NUM_ITEMS) {" + ) + , (38524, 16, " ") + , (38464, 60, "") + , (38532, 0, "\n }") + , (38464, 12, " ") + , (38450, 14, "") + , (38522, 0, "\n") + , (38449, 1, "") + , (38449, 16, " ") + , (38461, 3, "") + , (38514, 1, "") + , (38493, 5, "c") + , (38494, 0, "o") + , (38495, 0, "n") + , (38496, 0, "t") + , (38497, 0, "e") + , (38498, 0, "n") + , (38499, 0, "t") + , (38493, 7, "contents") + , (38501, 0, ",") + , (38502, 0, " ") + , (38448, 0, "\n ") + , (38465, 0, "l") + , (38466, 0, "e") + , (38467, 0, "t") + , (38468, 0, " ") + , (38469, 0, "i") + , (38470, 0, "n") + , (38471, 0, "s") + , (38472, 0, "e") + , (38473, 0, "r") + , (38474, 0, "t") + , (38475, 0, "+") + , (38475, 1, "") + , (38475, 0, "_") + , (38476, 0, "h") + , (38477, 0, "e") + , (38478, 0, "r") + , (38479, 0, "e") + , (38480, 0, " ") + , (38481, 0, "=") + , (38482, 0, " ") + , (38483, 0, "u") + , (38484, 0, "s") + , (38485, 0, "i") + , (38486, 0, "z") + , (38487, 0, "e") + , (38488, 0, ":") + , (38489, 0, ":") + , (38490, 0, "M") + , (38490, 1, "") + , (38490, 0, "m") + , (38491, 0, "a") + , (38492, 0, "x") + , (38493, 0, "(") + , (38494, 0, "n") + , (38495, 0, "u") + , (38494, 2, "num_inserted_items") + , (38512, 0, ",") + , (38513, 0, " ") + , (38514, 0, "M") + , (38515, 0, "A") + , (38516, 0, "X") + , (38516, 1, "") + , (38515, 1, "") + , (38514, 1, "") + , (38514, 0, "N") + , (38515, 0, "U") + , (38516, 0, "M") + , (38514, 3, "NODE_NUM_ITEMS") + , (38528, 0, ")") + , (38529, 0, ";") + , (38490, 3, "m") + , (38491, 0, "i") + , (38492, 0, "n") + , (38585, 0, "i") + , (38586, 0, "n") + , (38587, 0, "s") + , (38588, 0, "e") + , (38589, 0, "r") + , (38585, 5, "insert_here") + , (38612, 0, "\n ") + , (38629, 0, "n") + , (38630, 0, "u") + , (38631, 0, "m") + , (38629, 3, "num_inserted_items") + , (38647, 0, " ") + , (38648, 0, "-") + , (38649, 0, "=") + , (38650, 0, " ") + , (38651, 0, "i") + , (38652, 0, "n") + , (38653, 0, "s") + , (38654, 0, "e") + , (38655, 0, "r") + , (38651, 5, "insert_here") + , (38662, 0, ";") + , (38646, 1, "aining") + , (38642, 2, "r") + , (38640, 1, "ms") + , (38634, 4, "") + , (38629, 4, "") + , (38511, 1, "aining") + , (38507, 2, "r") + , (38505, 1, "ms") + , (38499, 4, "") + , (38494, 4, "") + , (38441, 1, "aining") + , (38437, 2, "r") + , (38435, 1, "ms") + , (38429, 4, "") + , (38424, 4, "") + , (38382, 1, "aining") + , (38378, 2, "r") + , (38376, 1, "ms") + , (38370, 4, "") + , (38365, 4, "") + , (38291, 53, "") + , (38291, 0, ",") + , (38292, 0, " ") + , (38293, 0, "b") + , (38294, 0, "u") + , (38295, 0, "t") + , (38296, 0, " ") + , (38297, 0, "w") + , (38298, 0, "e") + , (38291, 8, ".") + , (39296, 0, ".") + , (39297, 0, "t") + , (39297, 1, "") + , (39297, 0, "i") + , (39298, 0, "t") + , (39299, 0, "e") + , (39300, 0, "r") + , (39301, 0, "(") + , (39302, 0, ")") + , (16566, 0, "\n") + , (16567, 0, "\n") + , (16568, 0, "\n") + , (16568, 0, "s") + , (16569, 0, "t") + , (16570, 0, "r") + , (16571, 0, "u") + , (16572, 0, "c") + , (16573, 0, "t") + , (16574, 0, " ") + , (16575, 0, "I") + , (16576, 0, "n") + , (16577, 0, "i") + , (16578, 0, "t") + , (16579, 0, "i") + , (16579, 1, "") + , (16575, 4, "U") + , (16576, 0, "n") + , (16577, 0, "i") + , (16578, 0, "n") + , (16579, 0, "i") + , (16580, 0, "t") + , (16581, 0, "I") + , (16582, 0, "t") + , (16583, 0, "e") + , (16584, 0, "r") + , (16581, 0, "O") + , (16582, 0, "w") + , (16583, 0, "n") + , (16584, 0, "e") + , (16585, 0, "d") + , (16590, 0, " ") + , (16591, 0, "{") + , (16592, 0, "\n ") + , (16593, 4, "") + , (16592, 1, "") + , (16591, 1, "") + , (16591, 0, "{") + , (16592, 0, "\n ") + , (16597, 0, "\n ") + , (16593, 4, "") + , (16594, 4, "}") + , (16593, 0, " ") + , (16597, 0, "p") + , (16598, 0, "t") + , (16599, 0, "r") + , (16600, 0, ":") + , (16601, 0, " ") + , (16602, 0, "N") + , (16603, 0, "o") + , (16604, 0, "n") + , (16605, 0, "N") + , (16606, 0, "u") + , (16607, 0, "l") + , (16608, 0, "l") + , (16609, 0, "<") + , (16590, 0, "<") + , (16591, 0, "'") + , (16592, 0, "a") + , (16593, 0, ",") + , (16594, 0, " ") + , (16595, 0, "T") + , (16596, 0, ":") + , (16597, 0, " ") + , (16598, 0, "'") + , (16599, 0, "a") + , (16600, 0, ">") + , (16621, 0, "T") + , (16622, 0, ">") + , (16623, 0, ",") + , (16624, 0, "\n ") + , (16629, 0, "e") + , (16630, 0, "n") + , (16631, 0, "d") + , (16632, 0, ":") + , (16633, 0, " ") + , (16634, 0, "*") + , (16635, 0, "c") + , (16636, 0, "o") + , (16637, 0, "n") + , (16638, 0, "s") + , (16639, 0, "t") + , (16640, 0, " ") + , (16641, 0, "T") + , (16642, 0, ",") + , (16643, 0, "\n ") + , (16648, 0, "_") + , (16649, 0, "m") + , (16650, 0, "a") + , (16651, 0, "r") + , (16652, 0, "k") + , (16653, 0, "e") + , (16654, 0, "r") + , (16655, 0, ":") + , (16656, 0, " ") + , (16657, 0, "m") + , (16657, 1, "") + , (16657, 0, "p") + , (16658, 0, "h") + , (16659, 0, "a") + , (16660, 0, "n") + , (16657, 4, "PhantomData") + , (16668, 0, "<") + , (16669, 0, "*") + , (16669, 1, "") + , (16669, 0, "&") + , (16670, 0, "'") + , (16671, 0, "a") + , (16672, 0, " ") + , (16673, 0, "T") + , (16674, 0, ">") + , (16648, 0, "// ") + , (782, 0, "\n") + , (783, 0, "u") + , (784, 0, "s") + , (785, 0, "e") + , (786, 0, " ") + , (787, 0, "s") + , (788, 0, "t") + , (789, 0, "d") + , (790, 0, ":") + , (791, 0, ":") + , (792, 0, "p") + , (793, 0, "t") + , (794, 0, "r") + , (795, 0, ":") + , (796, 0, ":") + , (797, 0, "N") + , (798, 0, "o") + , (799, 0, "n") + , (797, 3, "NonNull") + , (804, 0, ";") + , (16671, 3, "") + , (16696, 1, "") + , (16696, 0, "S") + , (16697, 0, "k") + , (16698, 0, "i") + , (16699, 0, "p") + , (16696, 4, "SkipList") + , (16704, 0, "<") + , (16705, 0, "T") + , (16706, 0, ">") + , (16706, 1, "") + , (16705, 1, "") + , (16704, 1, "") + , (16617, 7, ", C: ListConfig>") + , (16617, 16, " T: 'a>") + , (16614, 4, "") + , (16615, 4, "") + , (16663, 0, "// ") + , (16658, 0, "\n ") + , (16663, 0, "/") + , (16664, 0, "/") + , (16665, 0, " ") + , (16666, 0, "T") + , (16667, 0, "O") + , (16668, 0, "D") + , (16669, 0, "O") + , (16670, 0, ":") + , (16671, 0, " ") + , (16672, 0, "A") + , (16673, 0, "d") + , (16674, 0, "d") + , (16675, 0, " ") + , (16676, 0, "a") + , (16677, 0, " ") + , (16678, 0, "p") + , (16679, 0, "h") + , (16680, 0, "a") + , (16681, 0, "n") + , (16682, 0, "t") + , (16683, 0, "o") + , (16684, 0, "m") + , (16685, 0, "d") + , (16686, 0, "a") + , (16687, 0, "t") + , (16688, 0, "a") + , (16689, 0, " ") + , (16690, 0, "t") + , (16691, 0, "o") + , (16692, 0, " ") + , (16693, 0, "t") + , (16694, 0, "h") + , (16695, 0, "i") + , (16696, 0, "s") + , (16697, 0, ".") + , (16590, 0, "\n") + , (16591, 0, "/") + , (16592, 0, "/") + , (16593, 0, " ") + , (16594, 0, "T") + , (16595, 0, "h") + , (16596, 0, "i") + , (16596, 1, "") + , (16595, 1, "") + , (16594, 1, "") + , (16594, 0, "N") + , (16595, 0, "o") + , (16596, 0, "n") + , (16597, 0, "e") + , (16598, 0, " ") + , (16599, 0, "o") + , (16600, 0, "f") + , (16601, 0, " ") + , (16602, 0, "t") + , (16603, 0, "h") + , (16604, 0, "e") + , (16605, 0, " ") + , (16606, 0, "b") + , (16607, 0, "u") + , (16608, 0, "i") + , (16609, 0, "l") + , (16610, 0, "t") + , (16611, 0, "i") + , (16612, 0, "n") + , (16613, 0, "s") + , (16606, 0, "r") + , (16607, 0, "u") + , (16608, 0, "s") + , (16609, 0, "t") + , (16610, 0, " ") + , (16619, 0, " ") + , (16620, 0, "g") + , (16621, 0, "i") + , (16622, 0, "v") + , (16623, 0, "e") + , (16624, 0, " ") + , (16625, 0, "m") + , (16626, 0, "e") + , (16627, 0, " ") + , (16628, 0, "w") + , (16629, 0, "h") + , (16630, 0, "a") + , (16631, 0, "t") + , (16632, 0, " ") + , (16633, 0, "I") + , (16634, 0, " ") + , (16635, 0, "w") + , (16636, 0, "a") + , (16637, 0, "n") + , (16638, 0, "t") + , (16639, 0, ":") + , (16640, 0, "\n") + , (16641, 0, "-") + , (16642, 0, " ") + , (16642, 1, "") + , (16641, 1, "") + , (16641, 0, "/") + , (16642, 0, "/") + , (16643, 0, " ") + , (16644, 0, "-") + , (16645, 0, " ") + , (16646, 0, "W") + , (16647, 0, "O") + , (16647, 1, "") + , (16646, 1, "") + , (16646, 0, "O") + , (16647, 0, "w") + , (16648, 0, "n") + , (16649, 0, "e") + , (16650, 0, "d") + , (16646, 5, "I") + , (16647, 0, "t") + , (16648, 0, "e") + , (16649, 0, "r") + , (16650, 0, " ") + , (16651, 0, "t") + , (16652, 0, "o") + , (16653, 0, " ") + , (16654, 0, "o") + , (16655, 0, "w") + , (16656, 0, "n") + , (16657, 0, "e") + , (16658, 0, "d") + , (16659, 0, " ") + , (16660, 0, "i") + , (16661, 0, "t") + , (16662, 0, "e") + , (16663, 0, "m") + , (16664, 0, "s") + , (16665, 0, "\n") + , (16666, 0, "/") + , (16667, 0, "/") + , (16668, 0, " ") + , (16669, 0, "-") + , (16670, 0, " ") + , (16671, 0, "W") + , (16672, 0, "h") + , (16673, 0, "e") + , (16674, 0, "r") + , (16675, 0, "e") + , (16676, 0, " ") + , (16677, 0, "i") + , (16678, 0, "t") + , (16679, 0, " ") + , (16680, 0, "d") + , (16681, 0, "o") + , (16682, 0, "e") + , (16683, 0, "s") + , (16684, 0, "n") + , (16685, 0, "'") + , (16686, 0, "t") + , (16666, 21, "") + , (16665, 1, "") + , (16639, 1, "") + , (16639, 0, ",") + , (16640, 0, " ") + , (16641, 0, "w") + , (16642, 0, "h") + , (16643, 0, "i") + , (16644, 0, "c") + , (16645, 0, "h") + , (16646, 0, " ") + , (16647, 0, "i") + , (16648, 0, "s") + , (16649, 0, " ") + , (16650, 0, "a") + , (16651, 0, " ") + , (16652, 0, "z") + , (16653, 0, "e") + , (16654, 0, "r") + , (16655, 0, "o") + , (16656, 0, "-") + , (16657, 0, "c") + , (16658, 0, "o") + , (16659, 0, "p") + , (16660, 0, "y") + , (16661, 0, " ") + , (16662, 0, "i") + , (16663, 0, "t") + , (16664, 0, "e") + , (16665, 0, "r") + , (16666, 0, "a") + , (16667, 0, "t") + , (16668, 0, "o") + , (16669, 0, "r") + , (16670, 0, " ") + , (16671, 0, "t") + , (16672, 0, "o") + , (16673, 0, " ") + , (16674, 0, "o") + , (16675, 0, "w") + , (16676, 0, "n") + , (16677, 0, "e") + , (16678, 0, "d") + , (16652, 5, "") + , (16656, 0, "-") + , (16657, 0, "f") + , (16658, 0, "r") + , (16659, 0, "e") + , (16660, 0, "e") + , (16679, 0, " ") + , (16680, 0, "i") + , (16681, 0, "t") + , (16682, 0, "e") + , (16683, 0, "m") + , (16684, 0, "s") + , (16685, 0, " ") + , (16686, 0, "t") + , (16687, 0, "h") + , (16688, 0, "a") + , (16689, 0, "t") + , (16690, 0, " ") + , (16691, 0, "d") + , (16692, 0, "o") + , (16693, 0, "e") + , (16694, 0, "s") + , (16695, 0, "n") + , (16696, 0, "'") + , (16697, 0, "t") + , (16698, 0, " ") + , (16686, 13, "i") + , (16687, 0, "n") + , (16688, 0, " ") + , (16689, 0, "a") + , (16690, 0, "n") + , (16691, 0, " ") + , (16691, 1, "") + , (16690, 1, "") + , (16690, 0, " ") + , (16691, 0, "M") + , (16692, 0, "a") + , (16693, 0, "y") + , (16694, 0, "b") + , (16695, 0, "e") + , (16696, 0, "U") + , (16697, 0, "n") + , (16698, 0, "i") + , (16699, 0, "n") + , (16700, 0, "i") + , (16701, 0, "t") + , (16702, 0, " ") + , (16703, 0, "a") + , (16704, 0, "r") + , (16705, 0, "r") + , (16706, 0, "a") + , (16707, 0, "y") + , (16708, 0, ".") + , (16709, 25, "") + , ( 16591 + , 118 + , "// None of the rust builtins give me what I want, which is a copy-free iterator\n// to owned items in a MaybeUninit array." + ) + , (16712, 0, " ") + , (16713, 0, "E") + , (16714, 0, "h") + , (16715, 0, ".") + , (16715, 1, "") + , (16715, 0, ";") + , (16716, 0, " ") + , (16717, 0, "i") + , (16718, 0, "t") + , (16719, 0, "s") + , (16720, 0, " ") + , (16721, 0, "e") + , (16722, 0, "a") + , (16723, 0, "s") + , (16724, 0, "y") + , (16725, 0, " ") + , (16726, 0, "e") + , (16727, 0, "n") + , (16728, 0, "o") + , (16729, 0, "u") + , (16730, 0, "g") + , (16731, 0, "h") + , (16732, 0, " ") + , (16733, 0, "t") + , (16734, 0, "o") + , (16735, 0, " ") + , (16736, 0, "m") + , (16737, 0, "k") + , (16737, 1, "") + , (16737, 0, "a") + , (16738, 0, "k") + , (16739, 0, "e") + , (16740, 0, " ") + , (16741, 0, "m") + , (16742, 0, "y") + , (16743, 0, " ") + , (16744, 0, "o") + , (16745, 0, "w") + , (16746, 0, "n") + , (16747, 0, ".") + , (16900, 0, "\n") + , (16901, 0, "\n") + , (16902, 0, "i") + , (16903, 0, "m") + , (16904, 0, "p") + , (16905, 0, "l") + , (16906, 0, " ") + , (16907, 0, "I") + , (16908, 0, "t") + , (16909, 0, "e") + , (16910, 0, "r") + , (16911, 0, "a") + , (16907, 5, "Iterator") + , (16902, 0, "// ") + , (32733, 0, "\n ") + , (32738, 0, "\n ") + , (32734, 4, "") + , (32739, 0, "u") + , (32740, 0, "n") + , (32741, 0, "s") + , (32742, 0, "a") + , (32743, 0, "f") + , (32744, 0, "e") + , (32745, 0, " ") + , (32746, 0, "f") + , (32747, 0, "n") + , (32748, 0, " ") + , (32749, 0, "O") + , (32749, 1, "") + , (32749, 0, "o") + , (32750, 0, "w") + , (32751, 0, "n") + , (32752, 0, "e") + , (32753, 0, "d") + , (32754, 0, "_") + , (32755, 0, "i") + , (32756, 0, "t") + , (32757, 0, "e") + , (32758, 0, "r") + , (32759, 0, "_") + , (32760, 0, "f") + , (32761, 0, "r") + , (32762, 0, "o") + , (32763, 0, "m") + , (32764, 0, "_") + , (32765, 0, "s") + , (32766, 0, "l") + , (32767, 0, "i") + , (32768, 0, "c") + , (32769, 0, "e") + , (32770, 0, "(") + , (32770, 1, "") + , (32770, 0, "<") + , (32771, 0, "T") + , (32772, 0, ">") + , (32735, 38, "") + , (32734, 1, "") + , (32733, 1, "") + , (16901, 0, "\n") + , (16902, 0, " unsafe fn owned_iter_from_slice") + , (16902, 4, "") + , (16901, 0, "\n") + , (16913, 11, "") + , (16902, 0, "i") + , (16903, 0, "m") + , (16904, 0, "p") + , (16905, 0, "l") + , (16906, 0, " ") + , (16907, 0, "U") + , (16907, 1, "UninitOwnedIter") + , (16906, 0, "<") + , (16907, 0, "T") + , (16908, 0, ">") + , (16925, 0, " ") + , (16926, 0, "{") + , (16928, 0, " ") + , (16956, 16, "") + , (16955, 1, "") + , (16955, 0, " ") + , (16956, 0, "-") + , (16957, 0, ">") + , (16958, 0, " ") + , (16958, 1, "") + , (16957, 1, "") + , (16956, 1, "") + , (16955, 1, "") + , (16954, 1, "") + , (16953, 1, "") + , (16952, 1, "") + , (16952, 0, "(") + , (16953, 0, "&") + , (16954, 0, "[") + , (16955, 0, "M") + , (16956, 0, "a") + , (16957, 0, "y") + , (16958, 0, "b") + , (16955, 4, "MaybeUninit") + , (16966, 0, "<") + , (16967, 0, "T") + , (16968, 0, ">") + , (16969, 0, "]") + , (16970, 0, ")") + , (16971, 0, " ") + , (16972, 0, "-") + , (16973, 0, ".") + , (16973, 1, "") + , (16973, 0, " ") + , (16973, 1, "") + , (16973, 0, ">") + , (16974, 0, " ") + , (16975, 0, "U") + , (16976, 0, "n") + , (16977, 0, "i") + , (16978, 0, "n") + , (16979, 0, "i") + , (16975, 5, "UninitOwnedIter") + , (16990, 0, " ") + , (16991, 0, "{") + , (16992, 0, "\n ") + , (17001, 0, "\n ") + , (16993, 8, "") + , (16994, 8, " }") + , (16953, 0, "s") + , (16954, 0, "l") + , (16955, 0, "i") + , (16956, 0, "c") + , (16957, 0, "e") + , (16958, 0, ":") + , (16959, 0, " ") + , ( 16999 + , 0 + , "\n unsafe fn from_slice(slice: &[MaybeUninit]) -> UninitOwnedIter {" + ) + , (16932, 0, "// ") + , (17037, 12, "") + , (17038, 1, "") + , ( 17062 + , 0 + , " unsafe {\n let ptr = self.as_ptr();\n assume(!ptr.is_null());\n\n let end = if mem::size_of::() == 0 {\n (ptr as *const u8).wrapping_add(self.len()) as *const T\n } else {\n ptr.add(self.len())\n };\n\n Iter { ptr: NonNull::new_unchecked(ptr as *mut T), end, _marker: marker::PhantomData }\n }" + ) + , (17062, 6, " ") + , (17101, 4, "s") + , (17102, 0, "l") + , (17103, 0, "i") + , (17104, 0, "c") + , (17105, 0, "e") + , (17117, 35, "") + , (17116, 1, "") + , (17116, 0, "\n") + , (17117, 0, " assume(!ptr.is_null());") + , (17117, 35, "") + , (17116, 1, "") + , (16908, 0, ":") + , (16909, 0, " ") + , (16910, 0, "S") + , (16911, 0, "i") + , (16912, 0, "z") + , (16913, 0, "e") + , (16914, 0, "d") + , (17125, 145, "") + , (17125, 16, " ") + , (17125, 12, " ") + , ( 17125 + , 0 + , " let end = if mem::size_of::() == 0 {\n (ptr as *const u8).wrapping_add(self.len()) as *const T\n } else {\n" + ) + , (17147, 139, "") + , (17167, 14, "") + , (17166, 1, "") + , (17166, 0, ";") + , (17155, 4, "s") + , (17156, 0, "l") + , (17157, 0, "i") + , (17158, 0, "c") + , (17159, 0, "e") + , (17123, 1, "") + , (17181, 4, "U") + , (17181, 1, "UninitOwnedIter") + , (17246, 30, "") + , (17198, 1, "") + , (17198, 0, "\n ") + , (17258, 1, "") + , (17258, 0, "\n ") + , (17278, 1, "") + , (17278, 0, "\n ") + , (17066, 0, "<") + , (17067, 0, "T") + , (17068, 0, ">") + , (17311, 0, "\n ") + , (17312, 4, "}") + , (16932, 0, "<") + , (16933, 0, "T") + , (16934, 0, ">") + , (17054, 15, "S") + , (17055, 0, "e") + , (17056, 0, "l") + , (17057, 0, "f") + , (17058, 3, "") + , ( 17013 + , 0 + , " unsafe fn from_slice(slice: &[T]) -> Self {\n unsafe {\n let ptr = slice.as_ptr();\n let end = ptr.add(slice.len());\n\n UninitOwnedIter {\n ptr: NonNull::new_unchecked(ptr as *mut T),\n end\n }\n }\n }\n" + ) + , (17587, 0, "// ") + , (17577, 0, "// ") + , (17563, 0, "// ") + , (17543, 0, "// ") + , (17483, 0, "// ") + , (17453, 0, "// ") + , (17408, 0, "// ") + , (17370, 0, "// ") + , (17353, 0, "// ") + , (17305, 0, "// ") + , (782, 0, "\n") + , (783, 0, "s") + , (784, 0, "e") + , (784, 1, "") + , (783, 1, "") + , (783, 0, "u") + , (784, 0, "s") + , (785, 0, "e") + , (786, 0, " ") + , (787, 0, "s") + , (788, 0, "t") + , (789, 0, "d") + , (790, 0, ":") + , (791, 0, ":") + , (792, 0, "m") + , (793, 0, "e") + , (794, 0, "m") + , (795, 0, ":") + , (796, 0, ":") + , (797, 0, "M") + , (798, 0, "a") + , (799, 0, "y") + , (797, 3, "MaybeUninit") + , (808, 0, ";") + , (797, 12, "") + , (797, 0, "m") + , (798, 0, "a") + , (799, 0, "t") + , (799, 1, "") + , (799, 0, "t") + , (797, 3, "") + , (797, 0, "MaybeUninit;") + , (17074, 0, "M") + , (17075, 0, "a") + , (17076, 0, "y") + , (17077, 0, "b") + , (17078, 0, "e") + , (17079, 0, "U") + , (17080, 0, "n") + , (17081, 0, "i") + , (17082, 0, "n") + , (17083, 0, "i") + , (17084, 0, "t") + , (17085, 0, "<") + , (17087, 0, ">") + , (17154, 0, ".") + , (17155, 0, "a") + , (17156, 0, "s") + , (17157, 0, "_") + , (17158, 0, "p") + , (17159, 0, "t") + , (17160, 0, "r") + , (17161, 0, "(") + , (17162, 0, ")") + , (17040, 310, "") + , (16965, 75, "") + , (17278, 3, "") + , (17265, 3, "") + , (17248, 3, "") + , (17225, 3, "") + , (17162, 3, "") + , (17129, 3, "") + , (17081, 3, "") + , (17040, 3, "") + , (17020, 3, "") + , (16969, 3, "") + , (17255, 0, "\n") + , (17255, 0, "\n") + , (17256, 0, "i") + , (17257, 0, "m") + , (17258, 0, "p") + , (17259, 0, "l") + , (17260, 0, " ") + , (17261, 0, "I") + , (17262, 0, "t") + , (17263, 0, "e") + , (17264, 0, "r") + , (17265, 0, "a") + , (17266, 0, "t") + , (17267, 0, "o") + , (17268, 0, "r") + , (17269, 0, " ") + , (17270, 0, "f") + , (17271, 0, "o") + , (17272, 0, "r") + , (17273, 0, " ") + , (17274, 0, "U") + , (17275, 0, "n") + , (17276, 0, "i") + , (17277, 0, "n") + , (17274, 4, "UninitOwnedIter") + , (17289, 0, " ") + , (17290, 0, "{") + , (17291, 0, "\n ") + , (17296, 0, "\n ") + , (17292, 4, "") + , (17293, 4, "}") + , (17260, 0, "<") + , (17261, 0, "T") + , (17262, 0, ">") + , (17292, 0, "<") + , (17293, 0, "T") + , (17294, 0, ">") + , (17298, 0, " ") + , (17302, 0, "t") + , (17303, 0, "y") + , (17304, 0, "p") + , (17305, 0, "e") + , (17306, 0, " ") + , (17307, 0, "I") + , (17308, 0, "t") + , (17309, 0, "e") + , (17310, 0, "m") + , (17311, 0, " ") + , (17312, 0, "=") + , (17313, 0, " ") + , (17314, 0, "T") + , (17315, 0, ";") + , (17316, 0, "\n ") + , (17321, 0, "\n ") + , (17317, 4, "") + , (17322, 0, "f") + , (17323, 0, "n") + , (17324, 0, " ") + , (17325, 0, "n") + , (17326, 0, "e") + , (17327, 0, "x") + , (17328, 0, "t") + , (17329, 0, "(") + , (17330, 0, "&") + , (17331, 0, "m") + , (17332, 0, "u") + , (17333, 0, "t") + , (17334, 0, " ") + , (17335, 0, "s") + , (17336, 0, "e") + , (17337, 0, "l") + , (17338, 0, "f") + , (17339, 0, ")") + , (17340, 0, " ") + , (17341, 0, "-") + , (17342, 0, ">") + , (17343, 0, " ") + , (17344, 0, "O") + , (17345, 0, "p") + , (17346, 0, "t") + , (17347, 0, "i") + , (17348, 0, "o") + , (17349, 0, "n") + , (17350, 0, "<") + , (17351, 0, "S") + , (17352, 0, "e") + , (17353, 0, "l") + , (17354, 0, "f") + , (17355, 0, ":") + , (17356, 0, ":") + , (17357, 0, "I") + , (17358, 0, "t") + , (17359, 0, "e") + , (17360, 0, "m") + , (17361, 0, ">") + , (17362, 0, " ") + , (17363, 0, "{") + , (17364, 0, "\n ") + , (17373, 0, "\n ") + , (17365, 8, "") + , (17366, 8, " }") + , (17365, 0, " ") + , (17373, 0, "N") + , (17374, 0, "o") + , (17375, 0, "n") + , (17376, 0, "e") + , (16835, 5, "m") + , (16836, 0, "n") + , (16837, 0, "u") + , (16838, 0, "t") + , (16838, 1, "") + , (16837, 1, "") + , (16836, 1, "") + , (16836, 0, "u") + , (16837, 0, "t") + , (16803, 0, "\n ") + , (16808, 0, "/") + , (16809, 0, "/") + , (16810, 0, " ") + , (16811, 0, "B") + , (16812, 0, "a") + , (16813, 0, "s") + , (16814, 0, "e") + , (16815, 0, "d") + , (16816, 0, " ") + , (16817, 0, "o") + , (16818, 0, "n") + , (16819, 0, " ") + , (16820, 0, "s") + , (16821, 0, "l") + , (16822, 0, "i") + , (16823, 0, "c") + , (16824, 0, "e") + , (16825, 0, ".") + , (16825, 1, "") + , (16820, 0, "c") + , (16821, 0, "o") + , (16822, 0, "r") + , (16823, 0, "e") + , (16824, 0, " ") + , (16830, 0, " ") + , (16831, 0, "i") + , (16832, 0, "t") + , (16833, 0, "e") + , (16834, 0, "r") + , (16831, 4, "I") + , (16832, 0, "t") + , (16833, 0, "e") + , (16834, 0, "R") + , (16835, 0, "M") + , (16836, 0, "u") + , (16837, 0, "t") + , (16820, 0, "t") + , (16821, 0, "h") + , (16822, 0, "e") + , (16823, 0, " ") + , (16835, 7, "I") + , (16836, 0, "t") + , (16837, 0, "e") + , (16838, 0, "r") + , (16839, 0, "M") + , (16840, 0, "u") + , (16841, 0, "t") + , (16842, 0, " ") + , (16843, 0, "i") + , (16844, 0, "m") + , (16845, 0, "e") + , (16846, 0, "p") + , (16847, 0, "l") + , (16848, 0, "m") + , (16849, 0, "e") + , (16843, 7, "i") + , (16844, 0, "m") + , (16845, 0, "p") + , (16846, 0, "l") + , (16847, 0, "e") + , (16848, 0, "m") + , (16849, 0, "e") + , (16850, 0, "n") + , (16851, 0, "t") + , (16852, 0, "a") + , (16853, 0, "t") + , (16854, 0, "i") + , (16855, 0, "o") + , (16856, 0, "n") + , (16857, 0, ".") + , (17163, 0, " ") + , (17164, 0, "a") + , (17165, 0, "s") + , (17166, 0, " ") + , (17167, 0, "*") + , (17168, 0, "m") + , (17169, 0, "u") + , (17170, 0, "t") + , (17171, 0, " ") + , (17172, 0, "_") + , (17163, 10, "") + , (17114, 0, "m") + , (17115, 0, "u") + , (17116, 0, "t") + , (17117, 0, ")") + , (17117, 1, "") + , (17117, 0, ")") + , (17117, 1, "") + , (17117, 0, "_") + , (17247, 10, "") + , (17420, 4, "") + , (17420, 0, "i") + , (17421, 0, "f") + , (17422, 0, " ") + , (17423, 0, "s") + , (17424, 0, "e") + , (17425, 0, "l") + , (17426, 0, "f") + , (17427, 0, ".") + , (17428, 0, "p") + , (17429, 0, "t") + , (17430, 0, "r") + , (17431, 0, " ") + , (17432, 0, "=") + , (17433, 0, "=") + , (17434, 0, " ") + , (17435, 0, "e") + , (17436, 0, "n") + , (17437, 0, "d") + , (17438, 0, " ") + , (17439, 0, "{") + , (17440, 0, " ") + , (17441, 0, "N") + , (17442, 0, "o") + , (17443, 0, "n") + , (17444, 0, "e") + , (17445, 0, " ") + , (17446, 0, "}") + , (17447, 0, " ") + , (17440, 1, "") + , (17440, 0, "\n ") + , (17458, 1, "") + , (17457, 1, "") + , (17457, 0, "\n ") + , (17458, 12, " }") + , (17467, 0, " ") + , (17468, 0, "e") + , (17469, 0, "l") + , (17470, 0, "s") + , (17471, 0, "e") + , (17472, 0, " ") + , (17473, 0, "{") + , (17474, 0, "\n ") + , (17487, 1, "\n ") + , (17488, 12, " }") + , (17487, 0, " ") + , (17487, 4, "") + , (17487, 0, "S") + , (17488, 0, "o") + , (17489, 0, "m") + , (17490, 0, "e") + , (17491, 0, "(") + , (17492, 0, "p") + , (17493, 0, "t") + , (17494, 0, "r") + , (17495, 0, ".") + , (17435, 0, "s") + , (17436, 0, "e") + , (17437, 0, "l") + , (17438, 0, "f") + , (17439, 0, ".") + , (17492, 0, "// ") + , (17504, 0, "\n ") + , (17505, 16, " ") + , (17517, 0, "N") + , (17518, 0, "o") + , (17519, 0, "n") + , (17520, 0, "e") + , (17431, 0, ".") + , (17432, 0, "a") + , (17433, 0, "s") + , (17434, 0, "_") + , (17432, 3, "as_ptr()") + , (17514, 16, "") + , (17513, 1, "") + , (17501, 3, "") + , (17506, 0, "s") + , (17507, 0, "e") + , (17508, 0, "l") + , (17509, 0, "f") + , (17510, 0, ".") + , (17515, 0, "r") + , (17516, 0, "e") + , (17517, 0, "a") + , (17518, 0, "d") + , (17519, 0, "(") + , (17520, 0, ")") + , (17521, 0, ")") + , (17515, 0, "a") + , (17516, 0, "s") + , (17517, 0, "_") + , (17518, 0, "p") + , (17519, 0, "r") + , (17519, 1, "") + , (17519, 0, "t") + , (17520, 0, "r") + , (17521, 0, "(") + , (17522, 0, ")") + , (17523, 0, ",") + , (17524, 0, ".") + , (17524, 1, "") + , (17523, 1, "") + , (17523, 0, ".") + , (17369, 0, "u") + , (17370, 0, "n") + , (17371, 0, "s") + , (17372, 0, "a") + , (17373, 0, "f") + , (17374, 0, "e") + , (17375, 0, " ") + , (17375, 1, "") + , (17369, 6, "") + , (17369, 0, "unsafe") + , (17375, 0, " ") + , (17375, 1, "") + , (17369, 6, "") + , (16799, 0, "'") + , (16800, 0, "a") + , (16801, 0, ",") + , (16802, 0, " ") + , (16803, 1, "") + , (16803, 0, "C") + , (16804, 0, ":") + , (16805, 0, ":") + , (16805, 1, "") + , (16805, 0, " ") + , (16806, 0, "C") + , (16807, 0, "o") + , (16808, 0, "n") + , (16808, 1, "") + , (16807, 1, "") + , (16806, 1, "") + , (16806, 0, "L") + , (16807, 0, "i") + , (16808, 0, "s") + , (16809, 0, "t") + , (16810, 0, "C") + , (16806, 5, "ListConfig") + , (16892, 1, "") + , (16892, 0, "C") + , (16893, 0, ":") + , (16894, 0, ":") + , (16895, 0, "I") + , (16896, 0, "t") + , (16897, 0, "e") + , (16898, 0, "m") + , (16916, 1, "") + , (16916, 0, "C::Item") + , (16969, 3, "") + , (17002, 0, "<") + , (17003, 0, "C") + , (17004, 0, ">") + , (17297, 0, ",") + , (17298, 0, "\n ") + , (17315, 0, "_") + , (17316, 0, "m") + , (17317, 0, "a") + , (17318, 0, "r") + , (17319, 0, "k") + , (17315, 5, "_marker") + , (17322, 0, ":") + , (17323, 0, " ") + , (17324, 0, "P") + , (17325, 0, "h") + , (17326, 0, "a") + , (17324, 3, "PhantomData") + , (17015, 0, "'") + , (17016, 0, "a") + , (17017, 0, ",") + , (17018, 0, " ") + , (17019, 8, "C: ListConfig") + , (17050, 1, "") + , (17050, 0, "C") + , (17089, 1, "") + , (17089, 0, "C") + , (17090, 0, ":") + , (17091, 0, ":") + , (17092, 0, "I") + , (17093, 0, "t") + , (17094, 0, "e") + , (17095, 0, "m") + , (17050, 0, "'") + , (17051, 0, "a") + , (17052, 0, ",") + , (17053, 0, " ") + , (17388, 8, "impl<'a, C: ListConfig> ") + , (17441, 0, "'") + , (17442, 0, "a") + , (17443, 0, ",") + , (17444, 0, " ") + , (17445, 0, "C") + , (17446, 1, "") + , (17466, 1, "") + , (17466, 0, "C") + , (17467, 0, ":") + , (17468, 0, ":") + , (17469, 0, "I") + , (17470, 0, "t") + , (17471, 0, "e") + , (17472, 0, "m") + , (16929, 35, "") + , (16925, 4, "") + , (16924, 1, "") + , (40352, 6, "") + , (40351, 1, "") + , (40350, 1, "") + , (40350, 0, "s") + , (40341, 0, " ") + , (40342, 0, "U") + , (40343, 0, "n") + , (40344, 0, "i") + , (40345, 0, "n") + , (40346, 0, "i") + , (40342, 5, "UninitOwnedIter") + , (40357, 0, "<") + , (40358, 0, "C") + , (40359, 0, ">") + , (40359, 1, "") + , (40358, 1, "") + , (40357, 1, "") + , (40356, 1, "") + , (40356, 0, ".") + , (40357, 0, "f") + , (40358, 0, "r") + , (40359, 0, "o") + , (40360, 0, "m") + , (40361, 0, "_") + , (40362, 0, "s") + , (40363, 0, "l") + , (40364, 0, "i") + , (40365, 0, "c") + , (40366, 0, "e") + , (40367, 0, "(") + , (40368, 1, "") + , (40377, 0, ")") + , (40342, 14, "UninitOwnedIter") + , (40357, 1, "") + , (40357, 0, ":") + , (40358, 0, ":") + , (30288, 1, "") + , (30288, 0, "(") + , (30293, 0, " ") + , (30294, 0, "a") + , (30295, 0, "s") + , (30296, 0, " ") + , (30297, 0, "*") + , (30298, 0, "m") + , (30299, 0, "u") + , (30300, 0, "t") + , (30301, 0, " ") + , (30302, 0, "_") + , (30303, 0, "(") + , (30303, 1, "") + , (30303, 0, ")") + , (30304, 0, ".") + , (30305, 0, "w") + , (30306, 0, "r") + , (30307, 0, "i") + , (30308, 0, "t") + , (30309, 0, "e") + , (30310, 0, "(") + , (30311, 1, "") + , (30311, 1, "") + , (30311, 1, "") + , (30315, 0, ")") + , (30317, 0, " ") + , (30318, 0, "/") + , (30319, 0, "/") + , (30320, 0, " ") + , (30321, 0, "N") + , (30321, 1, "") + , (30321, 0, "D") + , (30322, 0, "o") + , (30323, 0, " ") + , (30324, 0, "n") + , (30325, 0, "o") + , (30326, 0, "t") + , (30327, 0, " ") + , (30328, 0, "c") + , (30329, 0, "a") + , (30330, 0, "l") + , (30331, 0, "l") + , (30332, 0, " ") + , (30333, 0, "d") + , (30334, 0, "r") + , (30335, 0, "a") + , (30335, 1, "") + , (30335, 0, "o") + , (30336, 0, "p") + , (30337, 0, "(") + , (30338, 0, ")") + , (30339, 0, " ") + , (30340, 0, "o") + , (30341, 0, "n") + , (30342, 0, " ") + , (30343, 0, "c") + , (30344, 0, "o") + , (30345, 0, "n") + , (30346, 0, "t") + , (30343, 4, "j") + , (30344, 0, "u") + , (30345, 0, "n") + , (30346, 0, "k") + , (30347, 0, ".") + , (30302, 1, "") + , (30302, 0, "C") + , (30303, 0, ":") + , (30304, 0, ":") + , (30305, 0, "I") + , (30306, 0, "t") + , (30307, 0, "e") + , (30308, 0, "m") + , (30293, 17, "") + , (30288, 1, "") + , (30288, 0, "(") + , (30293, 0, " as *mut C::Item)") + , ( 30276 + , 0 + , " (slot as *mut C::Item).write(item); // Do not call drop() on junk.\n" + ) + , (30367, 0, "// ") + , (30288, 22, "") + , (30288, 0, "*") + , (30289, 13, "") + , (30289, 0, "s") + , (30290, 0, "l") + , (30291, 0, "o") + , (30292, 0, "t") + , (30293, 0, " ") + , (30294, 0, "=") + , (30295, 0, " ") + , (30296, 0, "i") + , (30297, 0, "t") + , (30298, 0, "e") + , (30299, 0, "m") + , (30300, 0, ";") + , (30301, 31, "") + , (30215, 60, "") + , (30214, 1, "") + , (30321, 1, "") + , (30321, 0, "?") + , (40363, 0, "&") + , (40364, 0, "m") + , (40365, 0, "u") + , (40366, 0, "t") + , (40367, 0, " ") + , (40383, 0, "<") + , (40384, 0, "C") + , (40385, 0, ">") + , (40383, 0, ":") + , (40384, 0, ":") + , (42652, 0, "// ") + , (42631, 0, "\n ") + , ( 42652 + , 0 + , " ptr::copy(\n &c[item_idx],\n &mut c[item_idx + num_inserted_items],\n (*e).num_items as usize - item_idx);" + ) + , (42772, 20, " ") + , (42713, 20, " ") + , (42679, 20, " ") + , (42632, 36, " ") + , ( 42632 + , 192 + , " ptr::copy(\n &c[leading_bytes + removed_bytes],\n &mut c[leading_bytes],\n trailing_bytes);" + ) + , (42690, 29, "item_idx + removed_here") + , (42690, 23, "leading_bytes + removed_bytes") + , (42690, 29, "item_idx + removed_here") + , (42747, 13, "i") + , (42748, 0, "t") + , (42749, 0, "e") + , (42750, 0, "m") + , (42751, 0, "_") + , (42752, 0, "i") + , (42747, 6, "item_idx") + , (42661, 0, "_") + , (42661, 1, "") + , (42782, 14, "t") + , (42783, 0, "r") + , (42784, 0, "a") + , (42785, 0, "i") + , (42786, 0, "l") + , (42787, 0, "i") + , (42788, 0, "n") + , (42782, 7, "trailing_items") + , (46554, 34, ", I: ExactSizeIterator") + , (46554, 36, ", mut inserted_content: &[C::Item]") + , (46668, 0, ",") + , (46669, 0, " ") + , (46670, 0, ", I: ExactSizeIterator") + , (46670, 36, "") + , (46669, 1, "") + , (46668, 1, "") + , (46668, 0, ", I: ExactSizeIterator") + , (46493, 0, ",") + , (46494, 0, " ") + , (46495, 0, "I") + , (46581, 10, "") + , (46581, 0, "&") + , (46582, 0, "M") + , (46582, 1, "") + , (46582, 0, "m") + , (46583, 0, "u") + , (46584, 0, "t") + , (46585, 0, " ") + , (46586, 0, "I") + , (47895, 0, "// ") + , (47882, 0, "\n ") + , ( 47895 + , 0 + , " for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {\n *slot = item;\n // (slot as *mut C::Item).write(item); // Do not call drop() on junk?\n }\n" + ) + , (48096, 0, " ") + , (48086, 8, " ") + , (48004, 12, " ") + , (47978, 12, " ") + , (47883, 20, " ") + , (47958, 8, "i") + , (47959, 0, "n") + , (47960, 0, "s") + , (47961, 0, "e") + , (47962, 0, "r") + , (47963, 0, "t") + , (47964, 0, "e") + , (47965, 0, "d") + , (47966, 0, "_") + , (47967, 0, "c") + , (47968, 0, "o") + , (47969, 0, "n") + , (47970, 0, "t") + , (47971, 0, "e") + , (47972, 0, "n") + , (47973, 0, "t") + , (47915, 27, "") + , (47915, 0, "o") + , (47916, 0, "l") + , (47917, 0, "d") + , (47918, 0, "_") + , (47919, 0, "i") + , (47920, 0, "t") + , (47921, 0, "e") + , (47922, 0, "m") + , (47923, 0, "s") + , (47990, 85, "") + , (47989, 1, "") + , (47989, 0, "/") + , (47990, 0, " ") + , (47990, 1, "") + , (47989, 1, "") + , (47989, 0, " ") + , (47990, 0, "/") + , (47991, 0, "/") + , (47992, 0, " ") + , (47993, 0, "I") + , (47994, 0, "n") + , (47994, 1, "") + , (47993, 1, "") + , (47992, 1, "") + , (47991, 1, "") + , (47991, 0, "/") + , (47992, 0, " ") + , (47993, 0, "T") + , (47994, 0, "i") + , (47995, 0, "s") + , (47995, 1, "") + , (47994, 1, "") + , (47994, 0, "h") + , (47995, 0, "i") + , (47996, 0, "s") + , (47997, 0, " ") + , (47998, 0, "d") + , (47999, 0, "r") + , (48000, 0, "o") + , (48001, 0, "p") + , (48002, 0, "s") + , (48003, 0, " ") + , (48004, 0, "t") + , (48005, 0, "h") + , (48006, 0, "e") + , (48007, 0, " ") + , (48008, 0, "o") + , (48009, 0, "l") + , (48010, 0, "d") + , (48011, 0, " ") + , (48008, 4, "r") + , (48009, 0, "e") + , (48010, 0, "m") + , (48011, 0, "o") + , (48012, 0, "v") + , (48013, 0, "e") + , (48014, 0, "d") + , (48015, 0, " ") + , (48016, 0, "c") + , (48017, 0, "o") + , (48018, 0, "n") + , (48019, 0, "t") + , (48020, 0, "e") + , (48021, 0, "n") + , (48022, 0, "t") + , (48023, 0, ".") + , (47645, 162, "") + , (47877, 4, "\n ") + , ( 47890 + , 0 + , " let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n\n" + ) + , (47878, 24, " ") + , (47573, 71, "") + , ( 47807 + , 0 + , " let new_items = &inserted_content[0..replaced_items_here];\n" + ) + , (47836, 16, "") + , (47836, 0, "inserted_content") + , (47836, 16, "") + , (47836, 0, "(") + , (47837, 0, "*") + , (47837, 1, "") + , (47836, 1, "") + , (47836, 0, "(") + , (47837, 0, "*") + , (47838, 0, "e") + , (47839, 0, ")") + , (47840, 0, ".") + , (47841, 0, "i") + , (47842, 0, "t") + , (47843, 0, "e") + , (47844, 0, "m") + , (47845, 0, "s") + , (47835, 36, "o") + , (47836, 0, "d") + , (47835, 2, "old_items") + , (47844, 0, ";") + , (47844, 1, "") + , (47835, 9, "od") + , (47835, 2, "&(*e).items[0..replaced_items_here];") + , (47836, 10, "") + , (47836, 0, "(*") + , (47836, 2, "") + , (47836, 0, "inserted_content") + , (47807, 71, "") + , ( 47573 + , 0 + , " let new_items = &inserted_content[0..replaced_items_here];\n" + ) + , (47878, 12, " ") + , (47890, 162, "") + , (47877, 13, " ") + , ( 47645 + , 0 + , " let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n\n" + ) + , (47645, 162, "") + , (47877, 4, "\n ") + , ( 47890 + , 0 + , " let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n\n" + ) + , (47878, 24, " ") + , (47573, 71, "") + , ( 47807 + , 0 + , " let new_items = &inserted_content[0..replaced_items_here];\n" + ) + , (47836, 16, "") + , (47836, 0, "(*") + , (47836, 2, "") + , (47836, 0, "(*e).items") + , (47835, 36, "od") + , (47835, 2, "old_items") + , (47844, 0, ";") + , (47572, 0, "\n ") + , (47585, 0, "l") + , (47586, 0, "e") + , (47587, 0, "t") + , (47588, 0, " ") + , (47589, 0, "o") + , (47590, 0, "l") + , (47591, 0, "d") + , (47592, 0, "_") + , (47593, 0, "s") + , (47594, 0, "i") + , (47594, 1, "") + , (47593, 1, "") + , (47592, 1, "") + , (47592, 0, "_") + , (47593, 0, "u") + , (47594, 0, "s") + , (47595, 0, "e") + , (47596, 0, "r") + , (47597, 0, "s") + , (47598, 0, "i") + , (47599, 0, "z") + , (47600, 0, "e") + , (47601, 0, " ") + , (47602, 0, "=") + , (47603, 0, " ") + , (47604, 0, "C::userlen_of_slice(old_items)") + , (47634, 0, ";") + , (48029, 30, "o") + , (48030, 0, "l") + , (48031, 0, "d") + , (48032, 0, "_") + , (48033, 0, "u") + , (48029, 5, "old_usersize") + , (48051, 1, "") + , (47907, 0, "t") + , (47905, 1, "") + , (47901, 3, "") + , (47898, 2, "") + , (47754, 0, "t") + , (47752, 1, "") + , (47748, 3, "") + , (47745, 2, "") + , (47633, 0, "t") + , (47631, 1, "") + , (47627, 3, "") + , (47624, 2, "") + , (47517, 0, "t") + , (47515, 1, "") + , (47511, 3, "") + , (47508, 2, "") + , (48828, 3, "") + , (48824, 3, "s") + , (48822, 1, "d") + , (47946, 3, "") + , (47942, 3, "s") + , (47940, 1, "d") + , (47877, 3, "") + , (47873, 3, "s") + , (47871, 1, "d") + , (47855, 28, "") + , (47854, 1, "") + , (48312, 0, "// ") + , (47018, 0, "\n ") + , (47031, 0, "d") + , (47032, 0, "e") + , (47033, 0, "b") + , (47034, 0, "u") + , (47031, 4, "debug_assert!") + , (47044, 0, "(") + , (47045, 0, "i") + , (47046, 0, "n") + , (47047, 0, "s") + , (47048, 0, "e") + , (47049, 0, "r") + , (47050, 0, "t") + , (47051, 0, "e") + , (47052, 0, "d") + , (47053, 0, "_") + , (47054, 0, "c") + , (47055, 0, "o") + , (47056, 0, "n") + , (47045, 12, "inserted_content") + , (47061, 0, ".") + , (47062, 0, "l") + , (47063, 0, "e") + , (47064, 0, "n") + , (47065, 0, "(") + , (47066, 0, ")") + , (47067, 0, " ") + , (47068, 0, ">") + , (47069, 0, "=") + , (47070, 0, " ") + , (47071, 0, "r") + , (47072, 0, "e") + , (47073, 0, "p") + , (47074, 0, "l") + , (47075, 0, "a") + , (47076, 0, "c") + , (47071, 6, "replaced_items") + , (47085, 0, ")") + , (47086, 0, ";") + , (49937, 0, " ") + , (49938, 0, "w") + , (49939, 0, "h") + , (49940, 0, "e") + , (49941, 0, "r") + , (49942, 0, "e") + , (49943, 0, " ") + , (49944, 0, "C") + , (49945, 0, ":") + , (49946, 0, ":") + , (49947, 0, "I") + , (49948, 0, "t") + , (49949, 0, "e") + , (49950, 0, "m") + , (49951, 0, ":") + , (49952, 0, " ") + , (49953, 0, "C") + , (49954, 0, "l") + , (49955, 0, "o") + , (49956, 0, "n") + , (49957, 0, "e") + , (49953, 5, "C") + , (49954, 0, "o") + , (49955, 0, "p") + , (49956, 0, "y") + , (50248, 0, ".") + , (50249, 0, "i") + , (50250, 0, "n") + , (50251, 0, "t") + , (50252, 0, "o") + , (50249, 4, "") + , (50248, 1, "") + , (50248, 0, ".") + , (50249, 0, "i") + , (50250, 0, "t") + , (50251, 0, "e") + , (50252, 0, "r") + , (50253, 0, "(") + , (50254, 0, ")") + , (50255, 0, ".") + , (50256, 0, "c") + , (50257, 0, "l") + , (50258, 0, "o") + , (50259, 0, "n") + , (50260, 0, "e") + , (50261, 0, "d") + , (50262, 0, "(") + , (50263, 0, ")") + , (50256, 6, "c") + , (50257, 0, "o") + , (50258, 0, "p") + , (50259, 0, "i") + , (50260, 0, "e") + , (50261, 0, "d") + , (50232, 0, "&") + , (50233, 0, "m") + , (50234, 0, "u") + , (50235, 0, "t") + , (50236, 0, " ") + , (50634, 0, " ") + , (50635, 0, "w") + , (50636, 0, "h") + , (50637, 0, "e") + , (50638, 0, "r") + , (50639, 0, "e") + , (50640, 0, " ") + , (50641, 0, "C") + , (50642, 0, ":") + , (50643, 0, ":") + , (50644, 0, " ") + , (50644, 1, "") + , (50644, 0, "I") + , (50645, 0, "t") + , (50646, 0, "e") + , (50647, 0, "m") + , (50648, 0, ":") + , (50649, 0, " ") + , (50650, 0, "C") + , (50651, 0, "o") + , (50652, 0, "p") + , (50653, 0, "y") + , (50923, 8, "&mut inserted_content.iter().copied()") + , (50928, 16, "c") + , (50929, 0, "o") + , (50930, 0, "n") + , (50931, 0, "t") + , (50932, 0, "e") + , (50933, 0, "n") + , (50934, 0, "t") + , (50935, 0, "s") + , (51502, 1, "") + , (51501, 1, "") + , (51501, 0, "o") + , (51502, 0, "n") + , (51503, 0, "c") + , (51504, 0, "e") + , (51505, 0, "(") + , (51511, 1, "") + , (51511, 0, ")") + , (51501, 0, "s") + , (51502, 0, "t") + , (51503, 0, "d") + , (51504, 0, ":") + , (51505, 0, ":") + , (51506, 0, "i") + , (51507, 0, "t") + , (51508, 0, "e") + , (51509, 0, "r") + , (51510, 0, ":") + , (51511, 0, ":") + , (51501, 0, "&") + , (51502, 0, "m") + , (51503, 0, "u") + , (51504, 0, "t") + , (51505, 0, " ") + , (51506, 11, "") + , (51506, 0, "i") + , (51507, 0, "t") + , (51508, 0, "e") + , (51509, 0, "r") + , (51510, 0, ":") + , (51511, 0, ":") + , (923, 0, "\n") + , (924, 0, "u") + , (925, 0, "s") + , (926, 0, "e") + , (927, 0, " ") + , (928, 0, "s") + , (929, 0, "t") + , (930, 0, "d") + , (931, 0, ":") + , (932, 0, ":") + , (933, 0, "i") + , (934, 0, "t") + , (935, 0, "e") + , (936, 0, "r") + , (937, 0, ";") + , (18755, 0, " ") + , (18756, 0, "w") + , (18757, 0, "h") + , (18758, 0, "e") + , (18759, 0, "r") + , (18760, 0, "e") + , (18761, 0, " ") + , (18762, 0, "C") + , (18763, 0, ":") + , (18764, 0, ":") + , (18765, 0, "I") + , (18766, 0, "t") + , (18767, 0, "e") + , (18768, 0, "m") + , (18769, 0, ":") + , (18770, 0, " ") + , (18771, 0, "C") + , (18772, 0, "o") + , (18773, 0, "p") + , (18774, 0, "y") + , (51632, 8, "&mut contents.iter().copied()") + , (52022, 6, "&mut iter::once(start)") + , (52038, 5, "e") + , (52039, 0, "n") + , (52040, 0, "d") + , (53652, 0, " ") + , (53653, 0, "w") + , (53654, 0, "h") + , (53655, 0, "e") + , (53656, 0, "r") + , (53657, 0, "e") + , (53658, 0, " ") + , (53659, 0, "C") + , (53660, 0, ":") + , (53661, 0, ":") + , (53662, 0, "I") + , (53663, 0, "t") + , (53664, 0, "e") + , (53665, 0, "m") + , (53666, 0, ":") + , (53667, 0, " ") + , (53668, 0, "C") + , (53669, 0, "o") + , (53670, 0, "p") + , (53671, 0, "y") + , (53818, 0, " where C::Item: Copy") + , (53763, 0, "\n") + , (53764, 0, "/") + , (53765, 0, "/") + , (53766, 0, " ") + , (53767, 0, "T") + , (53768, 0, "O") + , (53769, 0, "D") + , (53770, 0, "O") + , (53771, 0, ":") + , (53772, 0, " ") + , (53773, 0, "R") + , (53774, 0, "e") + , (53775, 0, "m") + , (53776, 0, "o") + , (53777, 0, "v") + , (53778, 0, "e") + , (53779, 0, " ") + , (53780, 0, "I") + , (53781, 0, "t") + , (53782, 0, "e") + , (53783, 0, "m") + , (53784, 0, ":") + , (53785, 0, " ") + , (53786, 0, "C") + , (53787, 0, "o") + , (53788, 0, "p") + , (53789, 0, "y") + , (53790, 0, " ") + , (53791, 0, "c") + , (53792, 0, "o") + , (53793, 0, "n") + , (53794, 0, "s") + , (53795, 0, "t") + , (53796, 0, "r") + , (53797, 0, "a") + , (53798, 0, "i") + , (53799, 0, "n") + , (53800, 0, "t") + , (53801, 0, " ") + , (53802, 0, "h") + , (53803, 0, "e") + , (53804, 0, "r") + , (53805, 0, "e") + , (53806, 0, ".") + , (54104, 0, ":") + , (54105, 0, " ") + , (54106, 0, "V") + , (54107, 0, "e") + , (54108, 0, "c") + , (54109, 0, "<") + , (54110, 0, "<") + , (54110, 1, "") + , (54110, 0, "C") + , (54111, 0, ":") + , (54112, 0, ":") + , (54113, 0, "I") + , (54114, 0, "t") + , (54115, 0, "e") + , (54116, 0, "m") + , (54117, 0, ">") + , (54110, 8, "") + , (54110, 0, "<") + , (54105, 6, "") + , (54104, 1, "") + , (54042, 0, " ") + , (54043, 0, "w") + , (54044, 0, "h") + , (54045, 0, "e") + , (54046, 0, "r") + , (54047, 0, "e") + , (54048, 0, " ") + , (54049, 0, "C") + , (54050, 0, ":") + , (54051, 0, ":") + , (54052, 0, "I") + , (54053, 0, "t") + , (54054, 0, "e") + , (54055, 0, "m") + , (54056, 0, ":") + , (54057, 0, " ") + , (54058, 0, "C") + , (54059, 0, "o") + , (54060, 0, "p") + , (54061, 0, "y") + , (54124, 0, ":") + , (54125, 0, " ") + , (54126, 0, "V") + , (54127, 0, "e") + , (54128, 0, "c") + , (54129, 0, "<") + , (54130, 0, "<") + , (54130, 1, "") + , (54130, 0, "C") + , (54131, 0, ":") + , (54132, 0, ":") + , (54133, 0, "I") + , (54134, 0, "t") + , (54135, 0, "e") + , (54136, 0, "m") + , (54137, 0, ">") + , (5385, 0, "M") + , (5386, 0, "a") + , (5387, 0, "y") + , (5388, 0, "b") + , (5389, 0, "e") + , (5390, 0, "U") + , (5391, 0, "n") + , (5392, 0, "i") + , (5393, 0, "n") + , (5394, 0, "i") + , (5395, 0, "t") + , (5396, 0, "<") + , (5404, 0, ">") + , (9791, 18, "") + , (9791, 0, "M") + , (9792, 0, "a") + , (9793, 0, "y") + , (9794, 0, "b") + , (9795, 0, "e") + , (9791, 5, "MaybeUninit") + , (9802, 0, ":") + , (9803, 0, ":") + , (9804, 0, "u") + , (9805, 0, "n") + , (9806, 0, "i") + , (9806, 1, "") + , (9806, 0, "i") + , (9807, 0, "n") + , (9808, 0, "i") + , (9809, 0, "t") + , (9810, 0, "(") + , (9811, 0, ")") + , (10392, 0, "\n ") + , (10401, 0, "\n ") + , (10393, 8, "") + , (10394, 8, "") + , (10393, 1, "") + , (10393, 0, " ") + , (10401, 0, "/") + , (10402, 0, "/") + , (10403, 0, " ") + , (10404, 0, "T") + , (10405, 0, "O") + , (10406, 0, "D") + , (10407, 0, "O") + , (10408, 0, ":") + , (10409, 0, " ") + , (10410, 0, "U") + , (10411, 0, "s") + , (10412, 0, "e") + , (10413, 0, " ") + , (10414, 0, "U") + , (10415, 0, "n") + , (10416, 0, "i") + , (10417, 0, "n") + , (10418, 0, "i") + , (10419, 0, "t") + , (10414, 6, "M") + , (10415, 0, "a") + , (10416, 0, "y") + , (10417, 0, "b") + , (10418, 0, "e") + , (10419, 0, "U") + , (10420, 0, "n") + , (10421, 0, "i") + , (10422, 0, "n") + , (10423, 0, "i") + , (10424, 0, "t") + , (10425, 0, ":") + , (10426, 0, ":") + , (10427, 0, "slice_get_ref") + , (10440, 0, " ") + , (10441, 0, "w") + , (10442, 0, "h") + , (10443, 0, "e") + , (10444, 0, "n") + , (10445, 0, " ") + , (10446, 0, "i") + , (10447, 0, "t") + , (10448, 0, "s") + , (10449, 0, " ") + , (10449, 1, "") + , (10448, 1, "") + , (10448, 0, " ") + , (10449, 0, "l") + , (10450, 0, "a") + , (10451, 0, "n") + , (10452, 0, "d") + , (10453, 0, "s") + , (10454, 0, ".") + , (10455, 0, "\n ") + , (10464, 0, "\n ") + , (10456, 8, "") + , ( 10465 + , 0 + , " // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n unsafe { &*(slice as *const [Self] as *const [T]) }" + ) + , (10457, 16, " ") + , (10457, 12, " ") + , (10455, 0, " ") + , (10456, 0, "T") + , (10457, 0, "h") + , (10458, 0, "i") + , (10459, 0, "s") + , (10460, 0, " ") + , (10461, 0, "c") + , (10462, 0, "o") + , (10463, 0, "d") + , (10464, 0, "e") + , (10465, 0, " ") + , (10466, 0, "i") + , (10467, 0, "s") + , (10468, 0, " ") + , (10469, 0, "s") + , (10470, 0, "t") + , (10471, 0, "i") + , (10472, 0, "l") + , (10472, 1, "") + , (10471, 1, "") + , (10471, 0, "o") + , (10472, 0, "l") + , (10473, 0, "e") + , (10474, 0, "d") + , (10475, 0, " ") + , (10475, 1, "") + , (10474, 1, "") + , (10474, 0, "n") + , (10475, 0, " ") + , (10476, 0, "f") + , (10477, 0, "r") + , (10478, 0, "o") + , (10479, 0, "m") + , (10480, 0, " ") + , (10481, 0, "t") + , (10482, 0, "h") + , (10483, 0, "a") + , (10484, 0, "t") + , (10485, 0, " ") + , (10486, 0, "i") + , (10487, 0, "m") + , (10488, 0, "p") + , (10489, 0, "l") + , (10490, 0, "e") + , (10491, 0, "m") + , (10492, 0, "e") + , (10493, 0, "n") + , (10494, 0, "t") + , (10495, 0, "a") + , (10496, 0, "t") + , (10497, 0, "i") + , (10498, 0, "o") + , (10499, 0, "n") + , (10500, 0, ".") + , (10920, 38, "") + , (10860, 0, "\n ") + , (10860, 0, "l") + , (10861, 0, "e") + , (10862, 0, "t") + , (10863, 0, " ") + , (10864, 0, "s") + , (10865, 0, "l") + , (10866, 0, "i") + , (10867, 0, "c") + , (10868, 0, "e") + , (10869, 0, " ") + , (10870, 0, "=") + , (10871, 0, " ") + , (10872, 0, "&self.items[..self.num_items as usize]") + , (10910, 0, ";") + , (10976, 4, "") + , (10972, 4, "") + , (10971, 1, "") + , (10949, 4, "C::Item") + , (10949, 7, "Self") + , (10966, 1, "C::Item") + , (10949, 4, "") + , (10949, 0, "M") + , (10950, 0, "a") + , (10951, 0, "y") + , (10949, 3, "MaybeUninit") + , (10960, 0, "<") + , (10961, 0, "C::Item") + , (10968, 0, ">") + , (16021, 0, "*") + , (16022, 0, "(") + , (16065, 0, ".") + , (16066, 0, "a") + , (16067, 0, "s") + , (16068, 0, "_") + , (16069, 0, "m") + , (16070, 0, "u") + , (16071, 0, "t") + , (16072, 0, "_") + , (16072, 1, "") + , (16071, 1, "") + , (16070, 1, "") + , (16069, 1, "") + , (16068, 1, "") + , (16068, 0, "_") + , (16069, 0, "p") + , (16070, 0, "t") + , (16071, 0, "r") + , (16072, 0, "(") + , (16073, 0, ")") + , (16074, 0, ")") + , (16011, 0, "\n ") + , (16020, 0, "/") + , (16021, 0, "/") + , (16022, 0, " ") + , (16023, 0, "T") + , (16024, 0, "h") + , (16025, 0, "i") + , (16026, 0, "s") + , (16027, 0, " ") + , (16028, 0, "i") + , (16029, 0, "s") + , (16030, 0, " ") + , (16031, 0, "s") + , (16032, 0, "o") + , (16033, 0, " ") + , (16034, 0, "g") + , (16035, 0, "r") + , (16036, 0, "o") + , (16037, 0, "s") + , (16038, 0, "s") + , (16039, 0, ".") + , (16023, 17, "S") + , (16024, 0, "o") + , (16025, 0, " ") + , (16026, 0, "g") + , (16027, 0, "o") + , (16028, 0, "r") + , (16028, 1, "") + , (16027, 1, "") + , (16027, 0, "r") + , (16028, 0, "o") + , (16029, 0, "s") + , (16030, 0, "s") + , (16031, 0, ".") + , (16044, 18, "") + , (16044, 0, "n") + , (16045, 0, "o") + , (16046, 0, "d") + , (16047, 0, "e") + , (16032, 0, "\n ") + , (16041, 0, "l") + , (16042, 0, "e") + , (16043, 0, "t") + , (16044, 0, " ") + , (16045, 0, "n") + , (16046, 0, "o") + , (16047, 0, "d") + , (16048, 0, "e") + , (16049, 0, " ") + , (16050, 0, "=") + , (16051, 0, " ") + , (16052, 0, "(*self.here_ptr())") + , (16070, 0, ";") + , (16052, 0, "&") + , (16053, 1, "") + , (16069, 1, "") + , (16070, 0, "\n ") + , (16079, 0, "d") + , (16080, 0, "e") + , (16081, 0, "b") + , (16082, 0, "u") + , (16083, 0, "g") + , (16079, 5, "debug_assert!") + , (16092, 0, "(") + , (16093, 0, "n") + , (16094, 0, "o") + , (16095, 0, "d") + , (16096, 0, "e") + , (16097, 0, ".") + , (16098, 0, "n") + , (16099, 0, "u") + , (16100, 0, "m") + , (16101, 0, "_") + , (16102, 0, "i") + , (16103, 0, "t") + , (16098, 6, "num_items") + , (16107, 0, " ") + , (16108, 0, ">") + , (16109, 0, "=") + , (16110, 0, " ") + , (16111, 0, "s") + , (16112, 0, "e") + , (16113, 0, "l") + , (16114, 0, "f") + , (16115, 0, ".") + , (16116, 0, "l") + , (16117, 0, "o") + , (16118, 0, "c") + , (16119, 0, "a") + , (16120, 0, "l") + , (16116, 5, "local_index") + , (16127, 0, ")") + , (16128, 0, ";") + , (16127, 0, " ") + , (16128, 0, "a") + , (16129, 0, "s") + , (16130, 0, " ") + , (16131, 0, "u") + , (16132, 0, "s") + , (16133, 0, "i") + , (16134, 0, "z") + , (16135, 0, "e") + , (16127, 9, "") + , (16107, 0, " as usize") + , (16070, 0, "\n ") + , (16071, 8, "") + , (16070, 1, "") + , (16012, 20, "") + , (16011, 1, "") + , (16049, 0, "\n ") + , (16058, 0, "/") + , (16059, 0, "/") + , (16060, 0, " ") + , (16061, 0, "T") + , (16062, 0, "O") + , (16063, 0, "D") + , (16064, 0, "O") + , (16065, 0, ":") + , (16066, 0, " ") + , (16067, 0, "I") + , (16068, 0, "t") + , (16069, 0, " ") + , (16070, 0, "m") + , (16071, 0, "i") + , (16072, 0, "g") + , (16073, 0, "h") + , (16074, 0, "t") + , (16075, 0, " ") + , (16076, 0, "b") + , (16077, 0, "e") + , (16078, 0, " ") + , (16079, 0, "m") + , (16080, 0, "o") + , (16081, 0, "r") + , (16082, 0, "e") + , (16083, 0, " ") + , (16084, 0, "r") + , (16085, 0, "u") + , (16086, 0, "s") + , (16087, 0, "t") + , (16088, 0, "y") + , (16089, 0, " ") + , (16090, 0, "t") + , (16091, 0, "o") + , (16092, 0, " ") + , (16050, 43, "") + , (16049, 1, "") + , (18524, 36, "[MaybeUninit::uninit(); NODE_NUM_ITEMS]") + , (18310, 0, "\n") + , (18311, 0, "f") + , (18312, 0, "n") + , (18313, 0, " ") + , (18314, 0, "f") + , (18315, 0, "o") + , (18316, 0, "o") + , ( 18317 + , 0 + , "pub fn uninit_array() -> [Self; LEN] {\n unsafe { MaybeUninit::<[MaybeUninit; LEN]>::uninit().assume_init() }\n }" + ) + , (18454, 4, "") + , (18374, 8, " ") + , (18311, 10, "") + , (18326, 18, "") + , (18390, 3, "M") + , (18339, 3, "M") + , (18389, 0, "A") + , (18340, 0, "A") + , (18391, 0, "X") + , (18341, 0, "X") + , (18390, 3, "N") + , (18339, 3, "N") + , (18389, 0, "U") + , (18340, 0, "U") + , (18391, 0, "M") + , (18341, 0, "M") + , (18390, 3, "NODE_NUM_ITEMS") + , (18339, 3, "NODE_NUM_ITEMS") + , (18326, 0, "<") + , (18327, 0, "T") + , (18328, 0, ">") + , (18336, 4, "M") + , (18337, 0, "a") + , (18338, 0, "y") + , (18339, 0, "b") + , (18340, 0, "e") + , (18336, 5, "MaybeUninit") + , (18347, 0, "<") + , (18348, 0, "T") + , (18349, 0, ">") + , (18321, 0, "i") + , (18322, 0, "t") + , (18323, 0, "e") + , (18324, 0, "m") + , (18325, 0, "s") + , (18326, 0, "_") + , (18678, 39, "") + , (18678, 0, "u") + , (18679, 0, "n") + , (18680, 0, "i") + , (18681, 0, "n") + , (18678, 4, "uninit_items_array") + , (18696, 0, "(") + , (18697, 0, ")") + , (18310, 0, "\n") + , (18311, 0, "/") + , (18312, 0, "/") + , (18313, 0, " ") + , (18314, 0, "T") + , (18315, 0, "O") + , (18316, 0, "D") + , (18317, 0, "O") + , (18318, 0, ":") + , (18319, 0, " ") + , (18320, 0, "S") + , (18321, 0, "t") + , (18322, 0, "o") + , (18323, 0, "l") + , (18324, 0, "e") + , (18325, 0, "n") + , (18326, 0, " ") + , (18327, 0, "f") + , (18328, 0, "r") + , (18329, 0, "o") + , (18330, 0, "m") + , (18331, 0, " ") + , (18332, 0, "uninit_array") + , (18331, 0, " ") + , (18332, 0, "M") + , (18333, 0, "a") + , (18334, 0, "y") + , (18335, 0, "b") + , (18336, 0, "e") + , (18337, 0, "U") + , (18338, 0, "n") + , (18339, 0, "i") + , (18340, 0, "n") + , (18341, 0, "i") + , (18342, 0, "t") + , (18343, 0, ":") + , (18344, 0, ":") + , (18345, 1, "") + , (18357, 0, ".") + , (18358, 0, " ") + , (18359, 0, "R") + , (18359, 1, "") + , (18359, 0, "C") + , (18360, 0, "a") + , (18361, 0, "l") + , (18362, 0, "l") + , (18363, 0, " ") + , (18364, 0, "t") + , (18365, 0, "h") + , (18366, 0, "a") + , (18367, 0, "t") + , (18368, 0, " ") + , (18369, 0, "w") + , (18370, 0, "h") + , (18371, 0, "e") + , (18372, 0, "n") + , (18373, 0, " ") + , (18374, 0, "t") + , (18375, 0, "h") + , (18376, 0, "i") + , (18377, 0, "s") + , (18359, 19, "R") + , (18360, 0, "e") + , (18361, 0, "p") + , (18362, 0, "l") + , (18363, 0, "a") + , (18364, 0, "c") + , (18365, 0, "e") + , (18366, 0, " ") + , (18367, 0, "w") + , (18368, 0, "i") + , (18369, 0, "t") + , (18370, 0, "h") + , (18371, 0, " ") + , (18372, 0, "MaybeUninit::uninit_array") + , (18397, 0, " ") + , (18398, 0, "w") + , (18399, 0, "h") + , (18400, 0, "e") + , (18401, 0, "n") + , (18402, 0, " ") + , (18372, 13, "") + , (18372, 0, "t") + , (18373, 0, "h") + , (18374, 0, "e") + , (18375, 0, " ") + , (18376, 0, "r") + , (18377, 0, "e") + , (18378, 0, "a") + , (18379, 0, "l") + , (18380, 0, " ") + , (18399, 0, "s") + , (18400, 0, "t") + , (18401, 0, "a") + , (18402, 0, "b") + , (18403, 0, "l") + , (18404, 0, "e") + , (18405, 0, ".") + , (9790, 39, "uninit_items_array") + , (9808, 0, "(") + , (9809, 0, ")") + , (21795, 1, "") + , (21797, 30, "") + , (21796, 1, "") + , (21796, 0, ".") + , (21797, 0, "c") + , (21798, 0, "o") + , (21799, 0, "n") + , (21800, 0, "t") + , (21801, 0, "e") + , (21802, 0, "n") + , (21803, 0, "t") + , (21797, 7, "content_slice") + , (21810, 0, "(") + , (21811, 0, ")") + , (27339, 0, ".") + , (27339, 1, "") + , (27324, 0, "*") + , (27323, 0, "u") + , (27324, 0, "n") + , (27325, 0, "s") + , (27326, 0, "a") + , (27327, 0, "f") + , (27328, 0, "e") + , (27329, 0, " ") + , (27330, 0, "{") + , (27331, 0, " ") + , (27349, 0, ".") + , (27350, 0, "a") + , (27350, 1, "") + , (27350, 0, "a") + , (27351, 0, "s") + , (27352, 0, "_") + , (27350, 3, "as_ptr") + , (27356, 0, "(") + , (27357, 0, ")") + , (27358, 0, " ") + , (27359, 0, "}") + , (31156, 1, "") + , (31160, 0, ".") + , (31161, 0, "w") + , (31162, 0, "r") + , (31163, 0, "i") + , (31164, 0, "t") + , (31165, 0, "e") + , (31166, 0, "(") + , (31167, 1, "") + , (31167, 1, "") + , (31167, 1, "") + , (31171, 0, ")") + , (31160, 0, ".") + , (31161, 0, "a") + , (31162, 0, "s") + , (31163, 0, "_") + , (31164, 0, "m") + , (31165, 0, "u") + , (31166, 0, "t") + , (31167, 0, "_") + , (31161, 7, "as_mut_ptr") + , (31171, 0, "(") + , (31172, 0, ")") + , (31179, 0, "<") + , (31180, 0, "C") + , (31181, 0, ":") + , (31182, 0, ":") + , (31183, 0, "I") + , (31184, 0, "t") + , (31185, 0, "e") + , (31186, 0, "m") + , (31187, 0, ">") + , (31179, 0, ":") + , (31180, 0, ":") + , (31179, 11, "") + , (31084, 0, ":") + , (31085, 0, " ") + , (31086, 0, "C") + , (31087, 0, ":") + , (31088, 0, ":") + , (31089, 0, "I") + , (31090, 0, "t") + , (31091, 0, "e") + , (31092, 0, "m") + , (31084, 9, "") + , (31085, 0, ":") + , (31086, 0, " ") + , (31087, 0, "_") + , (31087, 1, "") + , (31087, 0, "(") + , (31088, 0, "_") + , (31089, 0, ",") + , (31090, 0, " ") + , (31091, 0, "T") + , (31092, 0, ":") + , (31093, 0, ":") + , (31093, 1, "") + , (31092, 1, "") + , (31091, 1, "") + , (31091, 0, "C") + , (31092, 0, ":") + , (31093, 0, ":") + , (31094, 0, "I") + , (31095, 0, "t") + , (31096, 0, "e") + , (31097, 0, "m") + , (31098, 0, ">") + , (31098, 1, "") + , (31098, 0, ")") + , (31085, 14, "") + , (31156, 0, "(") + , (31174, 0, " ") + , (31175, 0, "a") + , (31176, 0, "s") + , (31177, 0, " ") + , (31178, 0, "*") + , (31179, 0, "m") + , (31180, 0, "u") + , (31181, 0, "t") + , (31182, 0, " ") + , (31183, 0, "C") + , (31184, 0, ":") + , (31185, 0, ":") + , (31186, 0, "I") + , (31187, 0, "t") + , (31188, 0, "e") + , (31189, 0, "m") + , (31190, 0, ")") + , (31205, 82, "") + , (31204, 0, " ") + , (31205, 0, "/") + , (31206, 0, "/") + , (31207, 0, " ") + , (31208, 0, "M") + , (31209, 0, "a") + , (31210, 0, "k") + , (31211, 0, "e") + , (31212, 0, " ") + , (31213, 0, "s") + , (31214, 0, "u") + , (31215, 0, "r") + , (31216, 0, "e") + , (31217, 0, " ") + , (31218, 0, "w") + , (31219, 0, "e") + , (31220, 0, " ") + , (31221, 0, "d") + , (31222, 0, "o") + , (31223, 0, "n") + , (31224, 0, "'") + , (31225, 0, "t") + , (31226, 0, " ") + , (31208, 19, "W") + , (31209, 0, "r") + , (31210, 0, "i") + , (31211, 0, "t") + , (31212, 0, "e") + , (31213, 0, " ") + , (31214, 0, "m") + , (31215, 0, "a") + , (31216, 0, "k") + , (31217, 0, "e") + , (31218, 0, "s") + , (31219, 0, " ") + , (31220, 0, "s") + , (31221, 0, "u") + , (31222, 0, "e") + , (31223, 0, " ") + , (31224, 0, "w") + , (31224, 1, "") + , (31223, 1, "") + , (31222, 1, "") + , (31222, 0, "r") + , (31223, 0, "e") + , (31224, 0, " ") + , (31225, 0, "w") + , (31226, 0, "e") + , (31227, 0, "o") + , (31228, 0, "n") + , (31229, 0, "'") + , (31230, 0, "t") + , (31231, 0, " ") + , (31225, 7, "w") + , (31226, 0, "e") + , (31227, 0, " ") + , (31228, 0, "d") + , (31229, 0, "o") + , (31230, 0, "n") + , (31231, 0, "'") + , (31232, 0, "t") + , (31233, 0, " ") + , (31234, 0, "d") + , (31235, 0, "r") + , (31236, 0, "o") + , (31237, 0, "p") + , (31238, 0, " ") + , (31239, 0, "t") + , (31240, 0, "h") + , (31241, 0, "e") + , (31242, 0, " ") + , (31243, 0, "o") + , (31244, 0, "l") + , (31245, 0, "d") + , (31246, 0, " ") + , (31247, 0, "v") + , (31248, 0, "a") + , (31249, 0, "l") + , (31250, 0, "u") + , (31251, 0, "e") + , (31252, 0, ".") + , (1987, 9, "") + , (31147, 0, "// ") + , (31134, 0, "\n ") + , (31147, 0, "s") + , (31148, 0, "l") + , (31149, 0, "o") + , (31150, 0, "t") + , (31151, 0, ".") + , (31152, 0, "v") + , (31153, 0, "a") + , (31154, 0, "l") + , (31155, 0, "u") + , (31156, 0, "e") + , (31157, 0, " ") + , (31158, 0, "=") + , (31159, 0, " ") + , (31160, 0, "M") + , (31161, 0, "a") + , (31162, 0, "n") + , (31163, 0, "u") + , (31164, 0, "a") + , (31165, 0, "l") + , (31166, 0, "l") + , (31160, 0, "s") + , (31161, 0, "t") + , (31162, 0, "d") + , (31163, 0, ":") + , (31164, 0, ":") + , (31165, 0, "m") + , (31166, 0, "e") + , (31167, 0, "m") + , (31168, 0, "o") + , (31168, 1, "") + , (31168, 0, ":") + , (31169, 0, ":") + , (31170, 7, "ManuallyDrop") + , (31182, 0, ":") + , (31183, 0, ":") + , (31184, 0, "n") + , (31185, 0, "e") + , (31186, 0, "w") + , (31187, 0, "(") + , (31188, 0, "i") + , (31189, 0, "t") + , (31190, 0, "e") + , (31191, 0, "m") + , (31192, 0, ")") + , (31193, 0, ";") + , (31135, 59, "") + , (31134, 1, "") + , (31147, 3, "") + , (37172, 0, "\n ") + , (37189, 0, "/") + , (37190, 0, "/") + , (37191, 0, " ") + , (37192, 0, "W") + , (37193, 0, "e") + , (37194, 0, " ") + , (37195, 0, "d") + , (37196, 0, "o") + , (37197, 0, " ") + , (37198, 0, "w") + , (37199, 0, "a") + , (37200, 0, "n") + , (37201, 0, "t") + , (37202, 0, " ") + , (37203, 0, "t") + , (37204, 0, "o") + , (37205, 0, " ") + , (37206, 0, "d") + , (37207, 0, "r") + , (37208, 0, "o") + , (37209, 0, "p") + , (37210, 0, " ") + , (37211, 0, "t") + , (37212, 0, "h") + , (37213, 0, "e") + , (37214, 0, " ") + , (37215, 0, "o") + , (37216, 0, "l") + , (37217, 0, "d") + , (37218, 0, " ") + , (37219, 0, "i") + , (37220, 0, "t") + , (37221, 0, "e") + , (37222, 0, "m") + , (37223, 0, ".") + , (37192, 32, "D") + , (37193, 0, "o") + , (37194, 0, " ") + , (37195, 0, "n") + , (37196, 0, "o") + , (37197, 0, "t") + , (37198, 0, " ") + , (37199, 0, "d") + , (37200, 0, "r") + , (37201, 0, "o") + , (37202, 0, "p") + , (37203, 0, " ") + , (37204, 0, "t") + , (37205, 0, "h") + , (37206, 0, "e") + , (37207, 0, " ") + , (37208, 0, "o") + , (37209, 0, "l") + , (37210, 0, "d") + , (37211, 0, " ") + , (37212, 0, "i") + , (37213, 0, "t") + , (37214, 0, "e") + , (37215, 0, "m") + , (37216, 0, "s") + , (37217, 0, ".") + , (37235, 13, "(slot.as_mut_ptr() as *mut C::Item).write(item);") + , (37112, 4, "s") + , (37113, 0, "l") + , (37114, 0, "o") + , (37115, 0, "t") + , (37217, 1, "") + , (37217, 0, " ") + , (37218, 0, "-") + , (37219, 0, " ") + , (37220, 0, "t") + , (37221, 0, "h") + , (37222, 0, "e") + , (37223, 0, "y") + , (37224, 0, " ") + , (37225, 0, "w") + , (37226, 0, "e") + , (37227, 0, "r") + , (37228, 0, "e") + , (37229, 0, " ") + , (37230, 0, "o") + , (37231, 0, "n") + , (37232, 0, "l") + , (37233, 0, "y") + , (37234, 0, " ") + , (37235, 0, "m") + , (37236, 0, "o") + , (37237, 0, "v") + , (37238, 0, "e") + , (37239, 0, "d") + , (37240, 0, ".") + , ( 37242 + , 0 + , " (slot.as_mut_ptr() as *mut C::Item).write(item);\n" + ) + , (37323, 0, "// ") + , (37276, 17, "") + , (37258, 1, "") + , (37289, 68, "") + , (37302, 0, "\n ") + , (37315, 0, "l") + , (37316, 0, "e") + , (37317, 0, "t") + , (37318, 0, " ") + , (37319, 0, "d") + , (37320, 0, "e") + , (37321, 0, "s") + , (37322, 0, "t") + , (37319, 4, "dest_content_slice") + , (37337, 0, " ") + , (37338, 0, "=") + , (37339, 0, " ") + , (8805, 0, "\n") + , (8806, 0, "\n") + , (8807, 0, "f") + , (8808, 0, "n") + , (8809, 0, " ") + , (8810, 0, "s") + , (8811, 0, "l") + , (8812, 0, "i") + , (8813, 0, "c") + , (8814, 0, "e") + , (8815, 0, "_") + , (8810, 0, "u") + , (8811, 0, "n") + , (8812, 0, "i") + , (8813, 0, "n") + , (8814, 0, "i") + , (8815, 0, "t") + , (8816, 0, "_") + , (8810, 0, "m") + , (8811, 0, "a") + , (8812, 0, "y") + , (8813, 0, "b") + , (8814, 0, "e") + , (8815, 13, "m") + , (8815, 1, "") + , (8815, 0, "i") + , (8816, 0, "n") + , (8817, 0, "i") + , (8818, 0, "t") + , (8819, 0, "_") + , (8820, 0, "s") + , (8821, 0, "l") + , (8822, 0, "i") + , (8823, 0, "c") + , (8824, 0, "e") + , (8825, 0, "_") + , (8826, 0, "g") + , (8827, 0, "e") + , (8828, 0, "t") + , (8829, 0, "_") + , (8830, 0, "r") + , (8831, 0, "e") + , (8832, 0, "f") + , (8833, 0, "(") + , (8834, 0, "\n ") + , (8839, 0, "\n ") + , (8835, 4, "") + , ( 8840 + , 0 + , " pub unsafe fn slice_get_ref(slice: &[Self]) -> &[T] {\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n unsafe { &*(slice as *const [Self] as *const [T]) }\n }" + ) + , (8836, 8, " ") + , (8806, 0, "\n") + , (8807, 0, "/") + , (8808, 0, "/") + , (8809, 0, " ") + , (8810, 0, "S") + , (8811, 0, "t") + , (8812, 0, "o") + , (8813, 0, "l") + , (8814, 0, "e") + , (8815, 0, "d") + , (8816, 0, " ") + , (8816, 1, "") + , (8815, 1, "") + , (8815, 0, "n") + , (8816, 0, " ") + , (8817, 0, "f") + , (8818, 0, "r") + , (8819, 0, "o") + , (8820, 0, "m") + , (8821, 0, " ") + , (8822, 0, "s") + , (8823, 0, "t") + , (8823, 1, "") + , (8822, 1, "") + , (8822, 0, "s") + , (8823, 0, "t") + , (8824, 0, "d") + , (8825, 0, ":") + , (8826, 0, ":") + , (8822, 5, "c") + , (8823, 0, "o") + , (8824, 0, "r") + , (8825, 0, "e") + , (8826, 0, ":") + , (8827, 0, ":") + , (8828, 0, "m") + , (8829, 0, "e") + , (8830, 0, "m") + , (8831, 0, ":") + , (8832, 0, ":") + , (8833, 0, "m") + , (8834, 0, "a") + , (8835, 0, "y") + , (8836, 0, "b") + , (8837, 0, "e") + , (8838, 0, "u") + , (8833, 6, "MaybeUninit") + , (8844, 0, ".") + , (8845, 0, " ") + , (8846, 0, "I") + , (8847, 0, "t") + , (8848, 0, "s") + , (8849, 0, " ") + , (8850, 0, "j") + , (8851, 0, "u") + , (8852, 0, "s") + , (8853, 0, "t") + , (8854, 0, " ") + , (8855, 0, "n") + , (8856, 0, "o") + , (8857, 0, "t") + , (8858, 0, " ") + , (8859, 0, "s") + , (8860, 0, "t") + , (8861, 0, "a") + , (8862, 0, "n") + , (8863, 0, "d") + , (8864, 0, "a") + , (8865, 0, "r") + , (8866, 0, "d") + , (8867, 0, "l") + , (8868, 0, "i") + , (8868, 1, "") + , (8867, 1, "") + , (8866, 1, "") + , (8865, 1, "") + , (8865, 0, "r") + , (8866, 0, "d") + , (8867, 0, "i") + , (8868, 0, "z") + , (8869, 0, "e") + , (8870, 0, "d") + , (8871, 0, " ") + , (8872, 0, "y") + , (8873, 0, "e") + , (8874, 0, "t") + , (8875, 0, ".") + , (8904, 34, "") + , (8903, 0, "<") + , (8904, 0, "T") + , (8905, 0, ">") + , (8916, 4, "M") + , (8917, 0, "a") + , (8918, 0, "y") + , (8919, 0, "b") + , (8920, 0, "e") + , (8916, 5, "MaybeUninit") + , (8927, 0, "<") + , (8928, 0, "T") + , (8929, 0, ">") + , (8877, 0, "u") + , (8878, 0, "n") + , (8879, 0, "s") + , (8880, 0, "a") + , (8881, 0, "f") + , (8882, 0, "e") + , (8883, 0, " ") + , (9359, 4, "") + , (9299, 8, " ") + , (9235, 8, " ") + , (9140, 8, " ") + , (9042, 8, " ") + , (8950, 8, " ") + , (9316, 4, "") + , (9316, 0, "M") + , (9317, 0, "a") + , (9318, 0, "y") + , (9319, 0, "b") + , (9320, 0, "e") + , (9316, 5, "MaybeUninit") + , (9327, 0, "<") + , (9328, 0, "T") + , (9329, 0, ">") + , (8806, 545, "") + , (8805, 1, "") + , (8804, 1, "") + , (18530, 0, "\n") + , (18531, 0, "\n") + , ( 18532 + , 0 + , "\n// Stolen from core::mem::MaybeUninit. Its just not standardized yet.\nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n unsafe { &*(slice as *const [MaybeUninit] as *const [T]) }\n}\n" + ) + , (18531, 1, "") + , (8804, 0, "\n") + , (10882, 0, "\n ") + , (10891, 0, "m") + , (10892, 0, "a") + , (10893, 0, "y") + , (10891, 3, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (10915, 24, "s") + , (10916, 0, "l") + , (10917, 0, "i") + , (10918, 0, "c") + , (10919, 0, "e") + , (10930, 0, "// ") + , (10922, 84, "") + , (10921, 1, "") + , (18334, 0, "\n") + , (18335, 0, "#[inline(always)]") + , (18335, 17, "") + , (18334, 1, "") + , (18559, 0, "\n") + , (18560, 0, "#[inline(always)]") + , (18334, 0, "\n") + , (18335, 0, "#[inline(always)]") + , (37878, 0, "m") + , (37879, 0, "a") + , (37880, 0, "y") + , (37881, 0, "b") + , (37882, 0, "e") + , (37878, 5, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (37902, 24, "d") + , (37903, 0, "e") + , (37904, 0, "s") + , (37905, 0, "t") + , (37906, 0, "_") + , (37907, 0, "c") + , (37908, 0, "o") + , (37909, 0, "n") + , (37910, 0, "t") + , (37911, 0, "e") + , (37912, 0, "n") + , (37913, 0, "t") + , (37914, 0, "_") + , (37915, 0, "s") + , (37916, 0, "l") + , (37917, 0, "i") + , (37918, 0, "c") + , (37919, 0, "e") + , (37921, 0, ";") + , ( 17636 + , 0 + , " unsafe fn from_slice(slice: &[C::Item]) -> Self {\n unsafe {\n let ptr = slice.as_mut_ptr();\n let end = ptr.add(slice.len());\n\n UninitOwnedIter {\n ptr: NonNull::new_unchecked(ptr),\n end,\n _marker: PhantomData\n }\n }\n }\n" + ) + , (18286, 0, "// ") + , (18276, 0, "// ") + , (18262, 0, "// ") + , (18225, 0, "// ") + , (18204, 0, "// ") + , (18154, 0, "// ") + , (18124, 0, "// ") + , (18079, 0, "// ") + , (18037, 0, "// ") + , (18020, 0, "// ") + , (17966, 0, "// ") + , (17655, 0, "m") + , (17656, 0, "a") + , (17657, 0, "y") + , (17658, 0, "b") + , (17659, 0, "e") + , (17655, 5, "") + , (17670, 0, "M") + , (17671, 0, "a") + , (17672, 0, "y") + , (17673, 0, "b") + , (17674, 0, "e") + , (17675, 0, "I") + , (17676, 0, "n") + , (17677, 0, "i") + , (17678, 0, "n") + , (17679, 0, "t") + , (17679, 1, "") + , (17678, 1, "") + , (17677, 1, "") + , (17677, 0, "i") + , (17678, 0, "t") + , (17679, 0, "<") + , (17680, 0, "<") + , (17680, 1, "") + , (17687, 0, ">") + , (17675, 0, "U") + , (17676, 0, "n") + , (17677, 1, "") + , (17677, 0, "i") + , (17747, 0, "[") + , (17748, 0, "0") + , (17749, 0, "]") + , (17749, 1, "") + , (17748, 1, "") + , (17747, 1, "") + , (17747, 0, "[0]") + , (17747, 3, "") + , (17760, 0, " ") + , (17761, 0, "a") + , (17762, 0, "s") + , (17763, 0, " ") + , (17764, 0, "*") + , (17765, 0, "m") + , (17766, 0, "u") + , (17767, 0, "t") + , (17768, 0, " ") + , (17769, 0, "C") + , (17770, 0, ":") + , (17771, 0, ":") + , (17772, 0, "I") + , (17773, 0, "t") + , (17774, 0, "e") + , (17775, 0, "m") + , (17777, 0, " ") + , (17778, 0, "/") + , (17779, 0, "/") + , (17780, 0, " ") + , (17781, 0, "s") + , (17781, 1, "") + , (17781, 0, "S") + , (17782, 0, "a") + , (17783, 0, "f") + , (17784, 0, "e") + , (17785, 0, ".") + , (17635, 0, "\n ") + , (17640, 0, "/") + , (17641, 0, "/") + , (17642, 0, "/") + , (17643, 0, " ") + , (17643, 1, "") + , (17642, 1, "") + , (17642, 0, " ") + , (17643, 0, "M") + , (17644, 0, "a") + , (17645, 0, "k") + , (17646, 0, "e") + , (17647, 0, " ") + , (17648, 0, "a") + , (17649, 0, " ") + , (17650, 0, "l") + , (17651, 0, "c") + , (17652, 0, "i") + , (17652, 1, "") + , (17651, 1, "") + , (17650, 1, "") + , (17640, 0, "/") + , (17651, 0, "s") + , (17652, 0, "l") + , (17653, 0, "i") + , (17654, 0, "c") + , (17655, 0, "e") + , (17656, 0, " ") + , (17657, 0, "w") + , (17658, 0, "e") + , (17659, 0, " ") + , (17660, 0, "c") + , (17661, 0, "a") + , (17662, 0, "n") + , (17663, 0, " ") + , (17664, 0, "i") + , (17665, 0, "t") + , (17666, 0, "e") + , (17667, 0, "r") + , (17668, 0, "a") + , (17669, 0, "t") + , (17670, 0, "e") + , (17671, 0, " ") + , (17672, 0, "f") + , (17673, 0, "r") + , (17674, 0, "o") + , (17675, 0, "m") + , (17676, 0, " ") + , (17677, 0, "a") + , (17678, 0, "n") + , (17679, 0, "d") + , (17680, 0, " ") + , (17681, 0, "s") + , (17682, 0, "t") + , (17683, 0, "e") + , (17684, 0, "a") + , (17685, 0, "l") + , (17686, 0, " ") + , (17687, 0, "f") + , (17688, 0, "r") + , (17689, 0, "o") + , (17690, 0, "m") + , (17691, 0, ".") + , (17692, 0, " ") + , (17693, 0, "A") + , (17694, 0, "f") + , (17695, 0, "t") + , (17696, 0, "e") + , (17697, 0, "r") + , (17698, 0, " ") + , (17699, 0, "t") + , (17700, 0, "h") + , (17701, 0, "e") + , (17702, 0, " ") + , (17703, 0, "i") + , (17704, 0, "t") + , (17705, 0, "e") + , (17706, 0, "r") + , (17707, 0, "a") + , (17708, 0, "t") + , (17709, 0, "o") + , (17710, 0, "r") + , (17711, 0, " ") + , (17712, 0, "h") + , (17713, 0, "a") + , (17714, 0, "s") + , (17715, 0, " ") + , (17716, 0, "r") + , (17717, 0, "u") + , (17718, 0, "n") + , (17719, 0, ",") + , (17720, 0, " ") + , (17721, 0, "t") + , (17722, 0, "h") + , (17723, 0, "e") + , (17724, 0, " ") + , (17725, 0, "i") + , (17726, 0, "t") + , (17727, 0, "e") + , (17728, 0, "m") + , (17729, 0, "s") + , (17692, 0, " ") + , (17693, 0, "T") + , (17694, 0, "h") + , (17695, 0, "i") + , (17696, 0, "s") + , (17697, 0, " ") + , (17698, 0, "s") + , (17699, 0, "i") + , (17699, 1, "") + , (17698, 1, "") + , (17698, 0, "i") + , (17699, 0, "s") + , (17700, 0, " ") + , (17701, 0, "a") + , (17693, 9, "") + , (17692, 1, "") + , (17730, 0, " ") + , (17731, 0, "i") + , (17732, 0, "n") + , (17733, 0, "s") + , (17734, 0, "i") + , (17735, 0, "d") + , (17736, 0, "e") + , (17737, 0, " ") + , (17738, 0, "*") + , (17739, 0, "m") + , (17740, 0, "u") + , (17741, 0, "s") + , (17742, 0, "t") + , (17743, 0, "*") + , (17744, 0, " ") + , (17745, 0, "b") + , (17746, 0, "e") + , (17747, 0, " ") + , (17693, 55, "T") + , (17694, 0, "h") + , (17695, 0, "e") + , (17696, 0, " ") + , (17697, 0, "i") + , (17698, 0, "t") + , (17699, 0, "e") + , (17700, 0, "r") + , (17701, 0, "a") + , (17702, 0, "t") + , (17703, 0, "o") + , (17704, 0, "r") + , (17705, 0, " ") + , (17693, 13, "I") + , (17694, 0, "t") + , (17695, 0, "s") + , (17696, 0, " ") + , (17697, 0, "u") + , (17698, 0, "n") + , (17699, 0, "s") + , (17700, 0, "a") + , (17701, 0, "f") + , (17702, 0, "e") + , (17703, 0, " ") + , (17704, 0, "t") + , (17704, 1, "") + , (17704, 0, "i") + , (17705, 0, "f") + , (17706, 0, " ") + , (17707, 0, "t") + , (17708, 0, "h") + , (17709, 0, "e") + , (17710, 0, " ") + , (17711, 0, "i") + , (17712, 0, "t") + , (17713, 0, "e") + , (17714, 0, "r") + , (17715, 0, "a") + , (17716, 0, "t") + , (17717, 0, "o") + , (17718, 0, "r") + , (17719, 0, " ") + , (17720, 0, "i") + , (17721, 0, "s") + , (17722, 0, "n") + , (17723, 0, "'") + , (17724, 0, "t") + , (17725, 0, " ") + , (17726, 0, "d") + , (17727, 0, "r") + , (17728, 0, "a") + , (17729, 0, "i") + , (17730, 0, "n") + , (17731, 0, "e") + , (17732, 0, "d") + , (17706, 1, "") + , (17706, 0, "\n /// ") + , (17706, 0, ":") + , (17716, 0, "\n /// ") + , (17725, 0, "-") + , (17726, 0, " ") + , (17727, 1, "") + , (17727, 0, "T") + , (17753, 0, "\n /// ") + , (17762, 0, "-") + , (17763, 0, " ") + , (17746, 0, "f") + , (17747, 0, "u") + , (17748, 0, "l") + , (17749, 0, "l") + , (17750, 0, "y") + , (17751, 0, " ") + , (17759, 0, " ") + , (17760, 0, "(") + , (17761, 0, "t") + , (17762, 0, "h") + , (17763, 0, "e") + , (17764, 0, "n") + , (17765, 0, " ") + , (17766, 0, "w") + , (17767, 0, "e") + , (17768, 0, " ") + , (17769, 0, "m") + , (17770, 0, "i") + , (17771, 0, "g") + , (17772, 0, "h") + , (17773, 0, "t") + , (17774, 0, " ") + , (17775, 0, "n") + , (17776, 0, "t") + , (17777, 0, "o") + , (17777, 1, "") + , (17776, 1, "") + , (17776, 0, "o") + , (17777, 0, "t") + , (17778, 0, " ") + , (17779, 0, "d") + , (17780, 0, "r") + , (17781, 0, "o") + , (17782, 0, "p") + , (17783, 0, " ") + , (17784, 0, "c") + , (17785, 0, "o") + , (17786, 0, "n") + , (17787, 0, "t") + , (17788, 0, "e") + , (17789, 0, "n") + , (17790, 0, "t") + , (17791, 0, "s") + , (17792, 0, ")") + , (17804, 0, "T") + , (17805, 0, "h") + , (17806, 0, "e") + , (17807, 0, " ") + , (17808, 0, "c") + , (17809, 0, "o") + , (17810, 0, "n") + , (17811, 0, "t") + , (17812, 0, "e") + , (17813, 0, "n") + , (17814, 0, "t") + , (17815, 0, "s") + , (17816, 0, " ") + , (17817, 0, "w") + , (17818, 0, "e") + , (17819, 0, " ") + , (17820, 0, "i") + , (17821, 0, "t") + , (17822, 0, "e") + , (17823, 0, "r") + , (17824, 0, "a") + , (17825, 0, "t") + , (17826, 0, " ") + , (17827, 0, "o") + , (17827, 1, "") + , (17827, 0, "e") + , (17828, 0, " ") + , (17828, 1, "") + , (17827, 1, "") + , (17827, 0, " ") + , (17827, 1, "") + , (17826, 1, "") + , (17826, 0, "e") + , (17827, 0, " ") + , (17828, 0, "o") + , (17829, 0, "v") + , (17830, 0, "e") + , (17831, 0, "r") + , (17832, 0, " ") + , (17833, 0, "a") + , (17834, 0, "r") + , (17835, 0, "e") + , (17836, 0, "n") + , (17837, 0, "'") + , (17838, 0, "t") + , (17839, 0, " ") + , (17840, 0, "i") + , (17841, 0, "n") + , (17842, 0, "i") + , (17843, 0, "t") + , (17844, 0, "i") + , (17845, 0, "a") + , (17846, 0, "l") + , (17847, 0, "i") + , (17848, 0, "e") + , (17848, 1, "") + , (17848, 0, "z") + , (17849, 0, "e") + , (17850, 0, "d") + , (17851, 0, ".") + , (17851, 1, "") + , (17851, 0, "\n /// ") + , (17860, 0, "\n /// ") + , (17869, 0, "A") + , (17870, 0, "f") + , (17871, 0, "t") + , (17872, 0, "e") + , (17873, 0, "r") + , (17874, 0, " ") + , (17875, 0, "i") + , (17876, 0, "t") + , (17877, 0, "e") + , (17878, 0, "r") + , (17879, 0, "a") + , (17880, 0, "t") + , (17881, 0, "i") + , (17882, 0, "n") + , (17883, 0, "g") + , (17884, 0, ",") + , (17885, 0, " ") + , (17886, 0, "t") + , (17887, 0, "h") + , (17888, 0, "e") + , (17889, 0, " ") + , (17890, 0, "c") + , (17891, 0, "o") + , (17892, 0, "n") + , (17893, 0, "t") + , (17894, 0, "e") + , (17895, 0, "n") + , (17896, 0, "t") + , (17897, 0, "s") + , (17898, 0, " ") + , (17899, 0, "a") + , (17900, 0, "r") + , (17901, 0, "e") + , (17902, 0, " ") + , (17902, 1, "") + , (17902, 0, "n") + , (17903, 0, "'") + , (17904, 0, "t") + , (17905, 0, " ") + , (17906, 0, "m") + , (17907, 0, "o") + , (17908, 0, "d") + , (17899, 10, "a") + , (17900, 0, "r") + , (17901, 0, "e") + , (17902, 0, " ") + , (17903, 0, "u") + , (17904, 0, "n") + , (17905, 0, "i") + , (17906, 0, "n") + , (17907, 0, "i") + , (17908, 0, "t") + , (17909, 0, " ") + , (17910, 0, "m") + , (17911, 0, "e") + , (17912, 0, "m") + , (17913, 0, "o") + , (17914, 0, "r") + , (17915, 0, "y") + , (17916, 0, ".") + , (44859, 0, " ") + , (44859, 0, "m") + , (44860, 0, "a") + , (44861, 0, "y") + , (44859, 3, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (44883, 24, "") + , (44883, 1, "") + , (44883, 1, "") + , (44921, 0, ")") + , (50020, 0, " ") + , (50020, 0, "m") + , (50021, 0, "a") + , (50022, 0, "y") + , (50023, 0, "b") + , (50020, 4, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (50044, 24, "") + , (50044, 1, "") + , (50044, 1, "") + , (50048, 0, ")") + , (50332, 0, "m") + , (50333, 0, "a") + , (50334, 0, "y") + , (50335, 0, "b") + , (50336, 0, " ") + , (50332, 4, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (50356, 24, "") + , (50356, 1, "") + , (50356, 1, "") + , (50360, 0, ")") + , (50217, 1, "") + , (50221, 0, ".") + , (50222, 0, "g") + , (50223, 0, "e") + , (50224, 0, "t") + , (50225, 0, "_") + , (50226, 0, "m") + , (50227, 0, "u") + , (50228, 0, "t") + , (50229, 0, "(") + , (50230, 0, ")") + , (50217, 0, "*") + , (50223, 7, "a") + , (50224, 0, "s") + , (50225, 0, "_") + , (50226, 0, "m") + , (50227, 0, "u") + , (50228, 0, "t") + , (50229, 0, "_") + , (50230, 0, "p") + , (50223, 8, "as_mut_ptr") + , (50218, 0, "(") + , (50218, 1, "") + , (50262, 7, "r") + , (50263, 0, "e") + , (50264, 0, "p") + , (50265, 0, "l") + , (50266, 0, "a") + , (50267, 0, "c") + , (50268, 0, "e") + , (50269, 0, "d") + , (50247, 5, "") + , (50247, 1, "") + , (50247, 0, "D") + , (50251, 1, "") + , (51245, 4, "maybeinit_slice_get_ref(dest)") + , (50340, 29, "") + , (50340, 0, "maybeinit_slice_get_ref(dest)") + , (51245, 29, "d") + , (50340, 29, "d") + , (51218, 0, "e") + , (50341, 0, "e") + , (51220, 0, "s") + , (50342, 0, "s") + , (51222, 0, "t") + , (50343, 0, "t") + , (51200, 0, "\n ") + , (50288, 0, "\n ") + , (51214, 12, "") + , (50301, 0, "l") + , (50302, 0, "e") + , (50303, 0, "t") + , (50304, 0, " ") + , (50305, 0, "d") + , (50306, 0, "e") + , (50307, 0, "s") + , (50308, 0, "t") + , (50309, 0, " ") + , (50310, 0, "=") + , (50311, 0, " ") + , (50312, 0, "maybeinit_slice_get_ref(dest)") + , (50341, 0, ";") + , (51254, 1, "") + , (10891, 0, "u") + , (10892, 0, "n") + , (10893, 0, "s") + , (10894, 0, "a") + , (10895, 0, "f") + , (10896, 0, "e") + , (10897, 0, " ") + , (10898, 0, "{") + , (10899, 0, " ") + , (10930, 0, " ") + , (10931, 0, "}") + , (18044, 4, "") + , (17996, 16, "") + , (17995, 1, "") + , (18242, 12, " ") + , (18205, 16, " ") + , (18184, 16, " ") + , (18134, 16, " ") + , (18104, 12, " ") + , (18059, 12, " ") + , (17996, 12, " ") + , (18228, 9, "") + , (18227, 1, "") + , (18825, 0, "u") + , (18826, 0, "n") + , (18827, 0, "s") + , (18828, 0, "a") + , (18829, 0, "f") + , (18830, 0, "e") + , (18831, 0, " ") + , (18832, 0, "{") + , (18833, 0, " ") + , (18858, 0, " ") + , (18859, 0, "}") + , (50144, 0, "&") + , (50144, 1, "") + , (50249, 0, "// ") + , (50176, 0, "// ") + , (50104, 0, "// ") + , (50091, 0, "\n ") + , (50104, 0, "/") + , (50105, 0, "/") + , (50106, 0, " ") + , (50107, 0, "W") + , (50108, 0, "o") + , (50109, 0, "u") + , (50110, 0, "l") + , (50111, 0, "d") + , (50112, 0, " ") + , (50113, 0, "p") + , (50114, 0, "r") + , (50115, 0, "e") + , (50116, 0, "f") + , (50117, 0, "e") + , (50118, 0, "r") + , (50119, 0, " ") + , (50120, 0, "t") + , (50121, 0, "o") + , (50122, 0, " ") + , (50123, 0, "u") + , (50124, 0, "s") + , (50125, 0, "e") + , (50126, 0, " ") + , (50127, 0, "z") + , (50128, 0, "i") + , (50129, 0, "p") + , (50130, 0, "(") + , (50131, 0, ")") + , (50132, 0, " ") + , (50133, 0, "b") + , (50134, 0, "u") + , (50135, 0, "t") + , (50136, 0, " ") + , (50137, 0, "i") + , (50138, 0, "t") + , (50139, 0, " ") + , (50140, 0, "g") + , (50141, 0, "i") + , (50142, 0, "v") + , (50143, 0, "e") + , (50144, 0, "s") + , (50140, 5, "t") + , (50141, 0, "a") + , (50142, 0, "k") + , (50143, 0, "e") + , (50144, 0, "s") + , (50145, 0, " ") + , (50146, 0, "o") + , (50147, 0, "w") + , (50148, 0, "n") + , (50149, 0, "e") + , (50150, 0, "r") + , (50151, 0, "s") + , (50152, 0, "h") + , (50153, 0, "i") + , (50154, 0, "p") + , (50155, 0, " ") + , (50156, 0, "o") + , (50157, 0, "f") + , (50158, 0, " ") + , (50159, 0, "i") + , (50160, 0, "n") + , (50161, 0, "s") + , (50162, 0, "e") + , (50163, 0, "r") + , (50164, 0, "t") + , (50165, 0, "e") + , (50166, 0, "d") + , (50167, 0, "_") + , (50168, 0, "c") + , (50169, 0, "o") + , (50170, 0, "n") + , (50171, 0, "t") + , (50172, 0, "e") + , (50173, 0, "n") + , (50174, 0, "t") + , (50175, 0, " ") + , (50176, 0, ":") + , (50177, 0, "/") + , (50178, 0, "\n ") + , (50191, 0, "index..index + replaced_items_here") + , (50139, 6, " ") + , (50140, 0, "w") + , (50141, 0, "a") + , (50142, 0, "n") + , (50143, 0, "t") + , (50144, 0, "s") + , (50191, 0, "f") + , (50192, 0, "o") + , (50193, 0, "r") + , (50194, 0, " ") + , (50195, 0, "i") + , (50196, 0, " ") + , (50197, 0, "i") + , (50198, 0, "n") + , (50199, 0, " ") + , (50234, 0, " ") + , (50235, 0, "{") + , (50236, 0, "\n ") + , (50253, 0, "\n ") + , (50237, 16, "") + , (50238, 16, " }") + , (50237, 0, " ") + , (50237, 16, "") + , (50195, 39, "") + , (50195, 0, "&") + , (50196, 0, "m") + , (50197, 0, "u") + , (50198, 0, "t") + , (50199, 0, " ") + , (50200, 0, "s") + , (50201, 0, "l") + , (50202, 0, "o") + , (50203, 0, "t") + , (50204, 0, " ") + , (50205, 0, "=") + , (50206, 0, " ") + , (50206, 1, "") + , (50205, 1, "") + , (50205, 0, "i") + , (50206, 0, "n") + , (50207, 0, " ") + , (50208, 0, "d") + , (50209, 0, "e") + , (50210, 0, "s") + , (50211, 0, "t") + , (50215, 0, " ") + , (50215, 16, "") + , (50194, 10, "") + , (50194, 0, " ") + , (50195, 0, "s") + , (50196, 0, "l") + , (50197, 0, "o") + , (50198, 0, "t") + , (50210, 0, " ") + , (50226, 0, "*slot.as_mut_ptr() = item;") + , (50247, 5, "") + , (50247, 0, "i") + , (50248, 0, "n") + , (50249, 0, "s") + , (50250, 0, "e") + , (50251, 0, "r") + , (50252, 0, "t") + , (50247, 6, "inserted_content") + , (50263, 0, ".") + , (50264, 0, "n") + , (50265, 0, "e") + , (50266, 0, "x") + , (50264, 3, "next()") + , (50270, 0, "(") + , (50270, 1, "") + , (50270, 0, ".") + , (50271, 0, "u") + , (50272, 0, "n") + , (50273, 0, "w") + , (50274, 0, "r") + , (50275, 0, "a") + , (50276, 0, "p") + , (50277, 0, "(") + , (50278, 0, ")") + , (50279, 0, "/") + , (50280, 0, ";") + , (50280, 1, "") + , (50279, 1, "") + , (50279, 0, ";") + , (50293, 0, "// ") + , (50222, 0, "// ") + , (50191, 0, "// ") + , (50299, 3, "") + , (50225, 3, "") + , (50191, 3, "") + , (50207, 0, ".") + , (50208, 0, "i") + , (50209, 0, "t") + , (50210, 0, "e") + , (50211, 0, "r") + , (50212, 0, "(") + , (50213, 0, ")") + , (50212, 0, "_") + , (50213, 0, "m") + , (50214, 0, "u") + , (50215, 0, "t") + , (38227, 3, "") + , (38227, 1, "") + , (38227, 0, "mut ") + , (38200, 4, "") + , (19648, 9, "") + , (19699, 1, "") + , (19698, 1, "") + , (19698, 0, " }") + , (19698, 2, "") + , (48839, 3, "") + , (48839, 1, "") + , ( 783 + , 55945 + , "use std::alloc::{alloc, dealloc, Layout};\nuse std::cmp::min;\nuse std::marker::PhantomData;\n\nuse std::fmt;\n\nuse rand::{RngCore, Rng, SeedableRng};\nuse rand::rngs::SmallRng;\n\n/// The likelyhood a node will have height (n+1) instead of n\nconst BIAS: u8 = 100; // out of 256.\n\n/// The number of items in each node. Must fit in a u8 thanks to Node.\n#[cfg(debug_assertions)]\nconst NODE_NUM_ITEMS: usize = 10;\n\n#[cfg(not(debug_assertions))]\nconst NODE_NUM_ITEMS: usize = 100;\n\n/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^\n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flip\n/// side, cursors grow linearly with this number; so smaller is marginally\n/// better when the contents are smaller.\n#[cfg(debug_assertions)]\nconst MAX_HEIGHT: usize = 5;\n\n#[cfg(not(debug_assertions))]\nconst MAX_HEIGHT: usize = 10;\n\n\nconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.\n\npub struct ItemMarker<'a, C: ListConfig> {\n ptr: *mut Node,\n _phantom: PhantomData<&'a SkipList>\n}\n\n/// The whole list is configured through a single generic trait parameter\npub trait ListConfig {\n type Item: Default + Copy; //+ std::fmt::Debug;\n\n /// Applications which have custom sizes (or do their own\n /// run-length-encoding) can define their own size function for items. When\n /// items are inserted or replaced, the position is specified using the\n /// custom size defined here.\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n\n fn userlen_of_slice(items: &[Self::Item]) -> usize {\n items.iter().fold(0, |acc, item| {\n acc + Self::get_usersize(item)\n })\n }\n\n fn split_item(_item: &Self::Item, _at: usize) -> (Self::Item, Self::Item) {\n unimplemented!(\"Cannot insert in the middle of an item - split_item is not defined in trait\");\n }\n\n // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {\n // }\n \n}\n\npub trait Queryable {\n type Query;\n\n // Returns Some(offset) into the item if its contained. Otherwise None.\n fn contains_item(&self, query: &Self::Query) -> Option;\n}\n\n/// This represents a single entry in either the nexts pointers list or in an\n/// iterator.\n#[derive(Debug, PartialEq, Eq)]\nstruct SkipEntry {\n /// The node being pointed to.\n node: *mut Node,\n\n /// The number of *items* between the start of the current node and the\n /// start of the next node. That means nexts entry 0 contains the length of\n /// the current node.\n skip_usersize: usize,\n}\n\n// We can't use #[derive()] here for Copy and Clone due to a bug in the rust\n// compiler: https://github.com/rust-lang/rust/issues/26925\nimpl Copy for SkipEntry {}\nimpl Clone for SkipEntry {\n fn clone(&self) -> Self { *self }\n}\n\nimpl SkipEntry {\n fn new_null() -> Self {\n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }\n }\n}\n\n\n\n/// The node structure is designed in a very fancy way which would be more at\n/// home in C or something like that. The basic idea is that the node structure\n/// is fixed size in memory, but the proportion of that space taken up by\n/// characters and by the height differ depending on a node's height. This\n/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but I\n/// could be wrong here. You probably wouldn't lose much performance in practice\n/// by replacing the inline structure with a smallvec - but that would waste\n/// memory in small nodes, and require extra pointer indirection on large nodes.\n/// It also wouldn't remove all the unsafe here.\n///\n/// A different representation (which might be better or worse - I can't tell)\n/// would be to have the nodes all be the same size in memory and change the\n/// *proportion* of the node's memory that is used by the string field vs the\n/// next pointers. That might be lighter weight for the allocator because the\n/// struct itself would be a fixed size; but I'm not sure if it would be better.\n#[repr(C)] // Prevent parameter reordering.\nstruct Node {\n /// We start with the items themselves. Only the first `num_items` of this\n /// list is in use. The user specified length of the items in the node is\n /// stored in nexts[0].skip_items. This is initialized with\n /// Default::default() for the type, but when MaybeUninit completely lands,\n /// it will be possible to make this a tiny bit faster by leaving the list\n /// initially uninitialized.\n items: [C::Item; NODE_NUM_ITEMS],\n\n /// Number of items in `items` in use / filled.\n num_items: u8,\n\n /// Height of nexts array.\n height: u8,\n\n /// With the heads array as is, we have no way to go from a marker back to a\n /// cursor (which is required to insert at that location in the list). For\n /// that we need to be able to figure out at each level of the nexts\n /// pointers which object points to us, and the offset from that element to\n /// the current element. Anyway, for markers to work we need this.\n parent: *mut Node,\n\n // #[repr(align(std::align_of::()))]\n \n /// In reality this array has the size of height, allocated using more or\n /// less direct calls to malloc() at runtime based on the randomly generated\n /// size. The size is always at least 1.\n nexts: [SkipEntry; 0],\n}\n\n// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)\n// This test will fail if this ever stops being true.\n#[test]\nfn test_align() {\n struct TestConfig;\n impl ListConfig for TestConfig {\n type Item = u8;\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n }\n #[repr(C)] struct Check([SkipEntry; 0]);\n assert!(mem::align_of::() >= mem::align_of::>());\n // TODO: It'd be good to also check the alignment of the nexts field in Node.\n}\n\nfn random_height(rng: &mut R) -> u8 {\n let mut h: u8 = 1;\n // Should I use a csrng here? Does it matter?\n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }\n h\n}\n\n#[repr(C)]\npub struct SkipList {\n // TODO: Consider putting the head item on the heap. For the use case here\n // its almost certainly fine either way. The code feels a bit cleaner if its\n // on the heap (and then iterators will be able to outlast a move of the\n // skiplist parent). But its also very nice having the code run fast for\n // small lists. Most lists are small, and it makes sense to optimize for\n // that.\n\n // TODO: For safety, pointers in to this structure should be Pin<> if we\n // ever want to hold on to iterators.\n\n /// The total number of items in the skip list. This is not used internally -\n /// just here for bookkeeping.\n num_items: usize,\n /// Size of the list in user specified units.\n num_usercount: usize,\n\n /// The RNG we use to generate node heights. Specifying it explicitly allows\n /// unit tests and randomizer runs to be predictable, which is very helpful\n /// during debugging. I'm still not sure how the type of this should be\n /// specified. Should it be a generic parameter? Box?\n /// ??\n rng: Option,\n\n /// The first node is inline. The height is 1 more than the max height we've\n /// ever used. The highest next entry points to {null, total usersize}.\n head: Node,\n\n /// This is so dirty. The first node is embedded in SkipList; but we need to\n /// allocate enough room for height to get arbitrarily large. I could insist\n /// on SkipList always getting allocated on the heap, but for small lists its\n /// much better to be on the stack.\n ///\n /// So this struct is repr(C) and I'm just padding out the struct directly.\n /// All accesses should go through head because otherwise I think we violate\n /// aliasing rules.\n _nexts_padding: [SkipEntry; MAX_HEIGHT],\n}\n\n\n\nimpl Node {\n // Do I need to be explicit about the lifetime of the references being tied\n // to the lifetime of the node?\n fn nexts(&self) -> &[SkipEntry] {\n unsafe {\n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)\n }\n }\n\n fn nexts_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)\n }\n }\n\n fn layout_with_height(height: u8) -> Layout {\n Layout::from_size_align(\n mem::size_of::>() + mem::size_of::>() * (height as usize),\n mem::align_of::>()).unwrap()\n }\n\n fn alloc_with_height(height: u8) -> *mut Node {\n assert!(height >= 1 && height <= MAX_HEIGHT_U8);\n\n unsafe {\n let node = alloc(Self::layout_with_height(height)) as *mut Node;\n (*node) = Node {\n items: [C::Item::default(); NODE_NUM_ITEMS],\n num_items: 0,\n height: height,\n parent: ptr::null_mut(),\n nexts: [],\n };\n\n for next in (*node).nexts_mut() {\n *next = SkipEntry::new_null();\n }\n\n node\n }\n }\n\n fn alloc(rng: &mut R) -> *mut Node {\n Self::alloc_with_height(random_height(rng))\n }\n\n unsafe fn free(p: *mut Node) {\n dealloc(p as *mut u8, Self::layout_with_height((*p).height));\n }\n\n fn content_slice(&self) -> &[C::Item] {\n &self.items[..self.num_items as usize]\n }\n\n // The height is at least 1, so this is always valid.\n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {\n unsafe { &*self.nexts.as_ptr() }\n }\n\n fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {\n unsafe { &mut *self.nexts.as_mut_ptr() }\n }\n\n // TODO: Rename to len() ?\n fn get_userlen(&self) -> usize {\n self.first_skip_entry().skip_usersize\n }\n \n fn get_next_ptr(&self) -> *mut Node {\n self.first_skip_entry().node\n }\n}\n\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone)]\npub struct Cursor {\n // TODO: Add a phantom lifetime reference to the skip list root for safety.\n\n\n /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///\n /// This field isn't strictly necessary - earlier versions tacked this on to\n /// the last item in entries... I'm still not sure the cleanest way to do\n /// this.\n userpos: usize,\n\n /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used to resolve that ambiguity.\n local_index: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n}\n\nimpl Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n self.local_index = 0;\n\n next\n }\n }\n\n fn is_at_node_end(&self) -> bool {\n self.local_index == unsafe { (*self.here_ptr()).num_items } as usize\n }\n\n fn advance_item(&mut self, height: u8) {\n if self.is_at_node_end() { self.advance_node(); }\n let usersize = C::get_usersize(unsafe { self.current_item() });\n\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }\n self.userpos += usersize;\n self.local_index += 1;\n }\n\n fn advance_by_items(&mut self, num: usize, height: u8) {\n for _ in 0..num { self.advance_item(height); }\n }\n\n fn move_to_item_start(&mut self, height: u8, offset: usize) {\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize -= offset;\n }\n self.userpos -= offset;\n }\n\n unsafe fn current_item(&mut self) -> &C::Item {\n &(*self.here_ptr()).items[self.local_index]\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice.\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos\n || self.local_index != other.local_index {return false; }\n\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl fmt::Debug for Cursor {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_struct(\"Cursor\")\n .field(\"userpos\", &self.userpos)\n .field(\"local_index\", &self.local_index)\n .finish()\n }\n}\n\nimpl SkipList {\n pub fn new() -> Self {\n SkipList:: {\n num_items: 0,\n num_usercount: 0,\n rng: None,\n head: Node {\n items: [C::Item::default(); NODE_NUM_ITEMS],\n num_items: 0,\n height: 1, // Stores max height of list nodes\n parent: ptr::null_mut(),\n nexts: [],\n },\n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],\n }\n }\n\n pub fn init_rng_from_seed(&mut self, seed: u64) {\n self.rng = Some(SmallRng::seed_from_u64(seed));\n }\n\n fn get_rng(&mut self) -> &mut SmallRng {\n // I'm sure there's a nicer way to implement this.\n if self.rng.is_none() {\n // We'll use a stable RNG in debug mode so the tests are stable.\n if cfg!(debug_assertions) {\n self.init_rng_from_seed(123);\n } else {\n self.rng = Some(SmallRng::from_entropy());\n }\n }\n self.rng.as_mut().unwrap()\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, s);\n rope\n }\n\n pub fn get_userlen(&self) -> usize {\n self.num_usercount\n }\n\n fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn len_items(&self) -> usize {\n self.num_items as usize\n }\n\n fn heads_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())\n }\n }\n\n fn is_head(&self, node: *const Node) -> bool {\n node as *const _ == &self.head as *const _\n }\n\n /// Walk the list and validate internal constraints. This is used for\n /// testing the structure itself, and should generally not be called by\n /// users.\n pub fn check(&self) {\n // #[cfg(test)]\n {\n // self.print();\n assert!(self.head.height >= 1);\n assert!(self.head.height <= MAX_HEIGHT_U8);\n\n let head_ptr = &self.head as *const _ as *mut _;\n // let skip_over = self.get_top_entry();\n // println!(\"Skip over skip chars {}, num bytes {}\", skip_over.skip_items, self.num_bytes);\n\n let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];\n\n let mut iter = [SkipEntry {\n // Bleh.\n node: head_ptr,\n // The skips will store the total distance travelled since the\n // start of this traversal at each height. All the entries above\n // head.height are ignored though.\n skip_usersize: 0\n }; MAX_HEIGHT];\n\n let mut num_items = 0;\n let mut num_usercount = 0;\n\n for (_i, n) in self.iter().enumerate() {\n // println!(\"visiting {:?}\", n.as_str());\n if !self.is_head(n) { assert!(n.num_items > 0); }\n assert!(n.height <= MAX_HEIGHT_U8);\n assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n\n // Make sure the number of items matches the count\n let local_count = C::userlen_of_slice(&n.items[0..n.num_items as usize]);\n assert_eq!(local_count, n.get_userlen());\n\n let expect_parent = if self.is_head(n) {\n ptr::null() // The head's parent is null\n } else if n.height == self.head.height {\n &self.head as *const _ // Max height nodes point back to head\n } else {\n prev[n.height as usize]\n };\n\n // println!(\"visiting {} {:?}\", i, n as *const _);\n // dbg!(n as *const _);\n // dbg!((n as *const _, (*n).height));\n // dbg!(n.parent);\n // dbg!(&self.head as *const _);\n\n assert_eq!(n.parent as *const _, expect_parent, \"invalid parent\");\n \n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {\n assert_eq!(entry.node as *const _, n as *const _);\n assert_eq!(entry.skip_usersize, num_usercount);\n\n // println!(\"replacing entry {:?} with {:?}\", entry, n.nexts()[i].node);\n prev[i] = n;\n entry.node = n.nexts()[i].node;\n entry.skip_usersize += n.nexts()[i].skip_usersize;\n }\n\n num_items += n.num_items as usize;\n num_usercount += n.get_userlen();\n\n // Check the value returned by the iterator functions matches.\n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);\n assert_eq!(local_offset, 0);\n\n // Dirty hack. If n has 0-sized elements at the end, the normal\n // cursor won't be at the end...\n while normal_iter.here_ptr() != n as *const _ as *mut _ {\n normal_iter.advance_node();\n }\n normal_iter.local_index = n.num_items as usize;\n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };\n assert_eq!(normal_iter, node_iter);\n }\n\n for entry in iter[0..self.head.height as usize].iter() {\n // println!(\"{:?}\", entry);\n assert!(entry.node.is_null());\n assert_eq!(entry.skip_usersize, num_usercount);\n }\n \n // println!(\"self bytes: {}, count bytes {}\", self.num_bytes, num_bytes);\n assert_eq!(self.num_items, num_items);\n assert_eq!(self.get_userlen(), num_usercount);\n }\n }\n \n \n /// Internal function for creating a cursor at a particular location in the\n /// skiplist. The returned cursor contains list of nodes which point past\n /// the specified position, as well as offsets of how far into their\n /// character lists the specified characters are.\n ///\n /// Sometimes a call to iter_at_userpos is ambiguous:\n ///\n /// - The item can contain items with zero usersize. The cursor could point\n /// to any of them.\n /// - If the location is at the end of a node, it is equally valid to return\n /// a position at the start of the next node.\n ///\n /// Because its impossible to move backwards in the list, iter_at_userpos\n /// returns the first admissible location with the specified userpos.\n /// \n /// Returns (cursor, offset into the specified item).\n ///\n /// TODO: This should be Pin<&self>.\n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {\n assert!(target_userpos <= self.get_userlen());\n\n let mut e: *const Node = &self.head;\n let mut height = self.head.height as usize - 1;\n \n let mut offset = target_userpos; // How many more items to skip\n\n // We're populating the head node pointer to simplify the case when the\n // iterator grows. We could put offset into the skip_usersize but it\n // would only be *mostly* correct, not always correct. (Since cursor\n // entries above height are not updated by insert.)\n let mut cursor = Cursor {\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n local_index: 0,\n userpos: target_userpos,\n };\n\n loop { // while height >= 0\n let en = unsafe { &*e };\n let next = en.nexts()[height];\n let skip = next.skip_usersize;\n if offset > skip {\n // Go right.\n debug_assert!(e == &self.head || en.num_items > 0);\n offset -= skip;\n e = next.node;\n assert!(!e.is_null(), \"Internal constraint violation: Reached rope end prematurely\");\n } else {\n // Record this and go down.\n cursor.entries[height] = SkipEntry {\n skip_usersize: offset,\n node: e as *mut Node, // This is pretty gross\n };\n\n if height == 0 { break; } else { height -= 1; }\n }\n };\n\n // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n\n // We've found the node. Now look for the index within the node.\n let en = unsafe { &*e };\n let mut index = 0;\n\n while offset > 0 {\n assert!(index < en.num_items as usize);\n \n let usersize = C::get_usersize(&en.items[index]);\n if usersize > offset { break; } // We're in the middle of an item.\n offset -= usersize;\n index += 1;\n }\n cursor.local_index = index;\n\n (cursor, offset)\n }\n\n unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {\n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.\n\n let mut cursor = Cursor {\n userpos: 0, // We'll set this later.\n local_index: local_index,\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };\n\n let mut h = 0;\n loop {\n while h < (*n).height as usize {\n cursor.entries[h] = SkipEntry {\n node: n,\n skip_usersize: offset\n };\n\n h += 1;\n }\n\n let parent = (*n).parent;\n // Reached the head.\n if parent.is_null() { break; }\n\n // If we're the same height as the parent its fine.\n debug_assert!((*parent).height as usize > h\n || (self.is_head(parent) && (*parent).height as usize == h));\n\n // Walk from parent back to n, figuring out the offset.\n let mut c = parent;\n // let walk_height = (*parent).height as usize - 2;\n let walk_height = (*n).height as usize - 1;\n while c != n {\n let elem = (*c).nexts()[walk_height];\n offset += elem.skip_usersize;\n c = elem.node;\n }\n\n n = parent;\n }\n\n cursor.userpos = offset;\n cursor\n }\n\n pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n // The marker gives us a pointer into a node. Find the item.\n unsafe {\n let n = marker.ptr;\n\n let mut offset: usize = 0;\n let mut local_index = None;\n for (i, item) in (*n).content_slice().iter().enumerate() {\n if let Some(item_offset) = item.contains_item(query) {\n offset += item_offset;\n local_index = Some(i);\n break;\n } else {\n offset += C::get_usersize(item);\n }\n }\n\n let local_index = local_index.expect(\"Invalid marker - item not found in node\");\n self.iter_at_node(n, offset, local_index)\n }\n }\n\n // Internal fn to create a new node at the specified iterator filled with\n // the specified content. The passed cursor should point at the end of the\n // previous node. It will be updated to point to the end of the newly\n // inserted content.\n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {\n\n // println!(\"Insert_node_at {} len {}\", contents.len(), self.num_bytes);\n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n assert!(contents.len() <= NODE_NUM_ITEMS);\n\n let new_node_ptr = Node::alloc(self.get_rng());\n let new_node = &mut *new_node_ptr;\n new_node.num_items = contents.len() as u8;\n new_node.items[..contents.len()].copy_from_slice(contents);\n\n let new_height = new_node.height;\n let new_height_usize = new_height as usize;\n\n let mut head_height = self.head.height as usize;\n while head_height < new_height_usize {\n // This seems weird given we're about to overwrite these values\n // below. What we're doing is retroactively setting up the cursor\n // and head pointers *as if* the height had been this high all\n // along. This way we only have to populate the higher head values\n // lazily.\n let total_userlen = self.num_usercount;\n let nexts = self.heads_mut();\n nexts[head_height].skip_usersize = total_userlen;\n cursor.entries[head_height].skip_usersize = cursor.userpos;\n\n head_height += 1; // This is ugly.\n self.head.height += 1;\n }\n\n new_node.parent = if new_height_usize == MAX_HEIGHT {\n &self.head as *const _ as *mut _\n } else { cursor.entries[new_height_usize].node };\n\n for i in 0..new_height_usize {\n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];\n let new_nexts = new_node.nexts_mut();\n\n // The new node points to the successor (or null)\n new_nexts[i] = SkipEntry {\n node: prev_skip.node,\n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersize\n };\n\n // The previous node points to the new node\n *prev_skip = SkipEntry {\n node: new_node_ptr,\n skip_usersize: cursor.entries[i].skip_usersize\n };\n\n // Move the iterator to the end of the newly inserted node.\n if move_cursor {\n cursor.entries[i] = SkipEntry {\n node: new_node_ptr,\n skip_usersize: new_userlen\n };\n }\n }\n\n for i in new_height_usize..head_height {\n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n if move_cursor {\n cursor.entries[i].skip_usersize += new_userlen;\n }\n }\n\n // Update parents.\n if new_height_usize > 1 {\n\n let mut n = new_node_ptr;\n let mut skip_height = 0;\n\n loop {\n n = (*n).nexts_mut()[skip_height].node;\n if n.is_null() || (*n).height >= new_height { break; }\n \n (*n).parent = new_node_ptr;\n skip_height = usize::max(skip_height, (*n).height as usize - 1);\n }\n }\n \n self.num_items += contents.len();\n self.num_usercount += new_userlen;\n if move_cursor {\n cursor.userpos += new_userlen;\n cursor.local_index = contents.len();\n }\n\n notify(contents, ItemMarker {\n ptr: new_node_ptr,\n _phantom: PhantomData\n });\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {\n // iter specifies where to insert.\n\n let mut e = cursor.here_ptr();\n\n // The insertion offset into the destination node.\n assert!(cursor.userpos <= self.num_usercount);\n assert!(cursor.local_index <= (*e).num_items as usize);\n\n // We might be able to insert the new data into the current node, depending on\n // how big it is.\n let num_inserted_items = contents.len();\n let num_inserted_usercount = C::userlen_of_slice(contents);\n\n // Can we insert into the current node?\n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;\n\n // Can we insert into the start of the successor node?\n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {\n // We can insert into the subsequent node if:\n // - We can't insert into the current node\n // - There _is_ a next node to insert into\n // - The insert would be at the start of the next node\n // - There's room in the next node\n if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {\n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {\n cursor.advance_node();\n e = next;\n\n insert_here = true;\n }\n }\n }\n\n let item_idx = cursor.local_index;\n let e_num_items = (*e).num_items as usize; // convenience.\n\n if insert_here {\n // println!(\"insert_here {}\", contents);\n // First push the current items later in the array\n let c = &mut (*e).items;\n if item_idx < e_num_items {\n c[..].copy_within(item_idx..e_num_items,\n item_idx + num_inserted_items);\n }\n\n // Then copy in the new items\n c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);\n\n (*e).num_items += num_inserted_items as u8;\n self.num_items += num_inserted_items;\n self.num_usercount += num_inserted_usercount;\n\n // .... aaaand update all the offset amounts.\n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);\n\n // Usually the cursor will be discarded after one change, but for\n // consistency of compound edits we'll update the cursor to point to\n // the end of the new content.\n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {\n entry.skip_usersize += num_inserted_usercount;\n }\n cursor.userpos += num_inserted_usercount;\n cursor.local_index += num_inserted_items;\n\n notify(contents, ItemMarker {\n ptr: e,\n _phantom: PhantomData\n });\n } else {\n // There isn't room. We'll need to add at least one new node to the\n // list. We could be a bit more careful here and copy as much as\n // possible into the current node - that would decrease the number\n // of new nodes in some cases, but I don't think the performance\n // difference will be large enough to justify the complexity.\n\n // If we're not at the end of the current node, we'll need to remove\n // the end of the current node's data and reinsert it later.\n let num_end_items = e_num_items - item_idx;\n\n let (end_items, end_usercount) = if num_end_items > 0 {\n // We'll mark the items as deleted from the node, while leaving\n // the data itself there for now to avoid a copy.\n\n // Note that if we wanted to, it would also be correct (and\n // slightly more space efficient) to pack some of the new\n // string's characters into this node after trimming it.\n let end_items = &(*e).items[item_idx..e_num_items];\n (*e).num_items = item_idx as u8;\n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;\n\n cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));\n\n // We need to trim the size off because we'll add the characters\n // back with insert_node_at.\n self.num_usercount -= end_usercount;\n self.num_items -= num_end_items;\n\n (Some(end_items), end_usercount)\n } else {\n (None, 0)\n };\n\n // Now we insert new nodes containing the new character data. The\n // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.\n // As further optimization, we could try and fit the last piece into\n // the start of the subsequent node. That optimization hasn't been\n // added.\n \n for chunk in contents.chunks(NODE_NUM_ITEMS) {\n let userlen = C::userlen_of_slice(chunk);\n self.insert_node_at(cursor, chunk, userlen, true, notify);\n }\n\n // TODO: Consider recursively calling insert_at_iter() here instead\n // of making a whole new node for the remaining content.\n if let Some(end_items) = end_items {\n // Passing false to indicate we don't want the cursor updated\n // after this - it should remain at the end of the newly\n // inserted content, which is *before* this end bit.\n self.insert_node_at(cursor, end_items, end_usercount, false, notify);\n }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);\n // }\n\n /// Interestingly unlike the original, here we only care about specifying\n /// the number of removed items by counting them. We do not use usersize in\n /// the deleted item count.\n ///\n /// If the deleted content occurs at the start of a node, the cursor passed\n /// here must point to the end of the previous node, not the start of the\n /// current node.\n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {\n if num_deleted_items == 0 { return; }\n\n let mut item_idx = cursor.local_index;\n let mut e = cursor.here_ptr();\n while num_deleted_items > 0 {\n // self.print();\n // if cfg!(debug_assertions) { self.check(); }\n if item_idx == (*e).num_items as usize {\n let entry = (*e).first_skip_entry();\n // End of current node. Skip to the start of the next one. We're\n // intentionally not updating the iterator because if we delete\n // a whole node we need the iterator to point to the previous\n // element. And if we only delete here, the iterator doesn't\n // need to be moved.\n e = entry.node;\n if e.is_null() { panic!(\"Cannot delete past the end of the list\"); }\n item_idx = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let removed_here = min(num_deleted_items, e_num_items - item_idx);\n \n let height = (*e).height as usize;\n let removed_userlen;\n\n if removed_here < e_num_items || e as *const _ == &self.head as *const _ {\n // Just trim the node down.\n let trailing_items = e_num_items - item_idx - removed_here;\n \n let c = &mut (*e).items;\n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);\n if trailing_items > 0 {\n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);\n }\n\n (*e).num_items -= removed_here as u8;\n self.num_items -= removed_here;\n self.num_usercount -= removed_userlen;\n\n for s in (*e).nexts_mut() {\n s.skip_usersize -= removed_userlen;\n }\n } else {\n // Remove the node from the skip list entirely. e should be the\n // next node after the position of the iterator.\n assert_ne!(cursor.here_ptr(), e);\n\n removed_userlen = (*e).get_userlen();\n let next = (*e).first_skip_entry().node;\n\n // println!(\"removing {:?} contents {:?} height {}\", e, (*e).content_slice(), height);\n\n for i in 0..height {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.node = (*e).nexts_mut()[i].node;\n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;\n }\n\n self.num_items -= (*e).num_items as usize;\n self.num_usercount -= removed_userlen;\n\n // Update parents.\n if height > 1 {\n let mut n = e;\n // let new_parent = cursor.entries[height - 1].node;\n\n // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents.\n let mut parent_height = 1;\n let cursor_node = cursor.here_ptr();\n let cursor_node_height = (*cursor_node).height as usize;\n let mut new_parent = if height >= cursor_node_height {\n cursor.entries[parent_height].node\n } else {\n cursor_node\n };\n\n loop {\n // dbg!(skip_height);\n // dbg!((*n).height as usize);\n\n n = (*n).nexts_mut()[parent_height - 1].node;\n if n.is_null() || (*n).height >= height as u8 { break; }\n let n_height = (*n).height as usize;\n\n // dbg!((*n).content_slice());\n // dbg!((*n).height);\n \n assert_eq!((*n).parent, e);\n assert!(n_height >= parent_height - 1);\n\n if n_height > parent_height {\n parent_height = n_height;\n if n_height >= cursor_node_height {\n new_parent = cursor.entries[parent_height].node\n }\n }\n \n (*n).parent = new_parent;\n }\n }\n\n Node::free(e);\n e = next;\n }\n\n for i in height..self.head.height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.skip_usersize -= removed_userlen;\n }\n\n num_deleted_items -= removed_here;\n\n // if cfg!(debug_assertions) { self.check(); }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)\n // where Notify: FnMut(&[C::Item], ItemMarker) {\n\n unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item], mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {\n if removed_items == 0 && inserted_content.len() == 0 { return; }\n\n // Replace as many items from removed_items as we can with inserted_content.\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n let mut e = cursor.here_ptr();\n if cursor.local_index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n }\n\n let index = cursor.local_index;\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let old_items = &mut (*e).items[index..index + replaced_items_here];\n let new_items = &inserted_content[0..replaced_items_here];\n\n let new_usersize = C::userlen_of_slice(new_items);\n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;\n\n // Replace the items themselves. Everything else is commentary.\n old_items.copy_from_slice(new_items);\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n\n inserted_content = &inserted_content[replaced_items_here..];\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n cursor.local_index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n\n notify(new_items, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(cursor, inserted_content, &mut notify);\n } else if removed_items > 0 {\n self.del_at_iter(cursor, removed_items);\n }\n }\n\n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n // let (mut c2, _) = self.iter_at_userpos(userpos);\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n }\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}\n\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.replace_at_iter(&mut cursor, removed_items, inserted_content, Self::no_notify); }\n\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(start_userpos);\n c2.advance_by_items(inserted_content.len(), self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after replace\"); }\n }\n }\n\n pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {\n if contents.len() == 0 { return; }\n \n userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n unsafe {\n if offset == 0 {\n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n } else {\n let current_item = cursor.current_item();\n let (start, end) = C::split_item(current_item, offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n cursor.move_to_item_start(self.head.height, offset);\n // This feels pretty inefficient; but its probably fine.\n self.replace_at_iter(&mut cursor, 1, &[start], &mut Self::no_notify);\n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);\n\n // There's no clean way to keep the cursor steady for the final\n // insert. We'll just make sure the cursor is in the right\n // position before that call for now.\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n\n self.insert_at_iter(&mut cursor, &[end], &mut Self::no_notify);\n }\n }\n\n }\n\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.iter_at_userpos(userpos);\n if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n}\n\n\nimpl SkipList where C::Item: PartialEq {\n pub fn eq_list(&self, other: &[C::Item]) -> bool {\n let mut pos = 0;\n let other_len = other.len();\n\n for node in self.iter() {\n let my_data = node.content_slice();\n let my_len = my_data.len();\n\n if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {\n return false\n }\n pos += my_data.len();\n }\n\n return pos == other_len;\n }\n}\n\nimpl Drop for SkipList {\n fn drop(&mut self) {\n let mut node = self.head.first_skip_entry().node;\n unsafe {\n while !node.is_null() {\n let next = (*node).first_skip_entry().node;\n Node::free(node);\n node = next;\n }\n }\n }\n}\n\n\nimpl From<&[C::Item]> for SkipList {\n fn from(s: &[C::Item]) -> SkipList {\n SkipList::new_from_slice(s)\n }\n}\n\nimpl From> for SkipList {\n fn from(s: Vec) -> SkipList {\n SkipList::new_from_slice(s.as_slice())\n }\n}\n\nimpl Into> for &SkipList {\n fn into(self) -> Vec {\n let mut content = Vec::with_capacity(self.num_items);\n" + ) + , ( 783 + , 50216 + , "use std::mem::MaybeUninit;\nuse std::ptr::NonNull;\nuse std::alloc::{alloc, dealloc, Layout};\nuse std::cmp::min;\nuse std::marker::PhantomData;\nuse std::iter;\n\nuse std::fmt;\n\nuse rand::{RngCore, Rng, SeedableRng};\nuse rand::rngs::SmallRng;\n\n/// The likelyhood a node will have height (n+1) instead of n\nconst BIAS: u8 = 100; // out of 256.\n\n/// The number of items in each node. Must fit in a u8 thanks to Node.\n#[cfg(debug_assertions)]\nconst NODE_NUM_ITEMS: usize = 10;\n\n#[cfg(not(debug_assertions))]\nconst NODE_NUM_ITEMS: usize = 100;\n\n/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^\n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flip\n/// side, cursors grow linearly with this number; so smaller is marginally\n/// better when the contents are smaller.\n#[cfg(debug_assertions)]\nconst MAX_HEIGHT: usize = 5;\n\n#[cfg(not(debug_assertions))]\nconst MAX_HEIGHT: usize = 10;\n\n\nconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.\n\npub struct ItemMarker<'a, C: ListConfig> {\n ptr: *mut Node,\n _phantom: PhantomData<&'a SkipList>\n}\n\n/// The whole list is configured through a single generic trait parameter\npub trait ListConfig {\n type Item; //+ std::fmt::Debug;\n\n /// Applications which have custom sizes (or do their own\n /// run-length-encoding) can define their own size function for items. When\n /// items are inserted or replaced, the position is specified using the\n /// custom size defined here.\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n\n fn userlen_of_slice(items: &[Self::Item]) -> usize {\n items.iter().fold(0, |acc, item| {\n acc + Self::get_usersize(item)\n })\n }\n\n fn split_item(_item: &Self::Item, _at: usize) -> (Self::Item, Self::Item) {\n unimplemented!(\"Cannot insert in the middle of an item - split_item is not defined in trait\");\n }\n\n // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {\n // }\n \n}\n\npub trait Queryable {\n type Query;\n\n // Returns Some(offset) into the item if its contained. Otherwise None.\n fn contains_item(&self, query: &Self::Query) -> Option;\n}\n\n/// This represents a single entry in either the nexts pointers list or in an\n/// iterator.\n#[derive(Debug, PartialEq, Eq)]\nstruct SkipEntry {\n /// The node being pointed to.\n node: *mut Node,\n\n /// The number of *items* between the start of the current node and the\n /// start of the next node. That means nexts entry 0 contains the length of\n /// the current node.\n skip_usersize: usize,\n}\n\n// We can't use #[derive()] here for Copy and Clone due to a bug in the rust\n// compiler: https://github.com/rust-lang/rust/issues/26925\nimpl Copy for SkipEntry {}\nimpl Clone for SkipEntry {\n fn clone(&self) -> Self { *self }\n}\n\nimpl SkipEntry {\n fn new_null() -> Self {\n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }\n }\n}\n\n\n\n/// The node structure is designed in a very fancy way which would be more at\n/// home in C or something like that. The basic idea is that the node structure\n/// is fixed size in memory, but the proportion of that space taken up by\n/// characters and by the height differ depending on a node's height. This\n/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but I\n/// could be wrong here. You probably wouldn't lose much performance in practice\n/// by replacing the inline structure with a smallvec - but that would waste\n/// memory in small nodes, and require extra pointer indirection on large nodes.\n/// It also wouldn't remove all the unsafe here.\n///\n/// A different representation (which might be better or worse - I can't tell)\n/// would be to have the nodes all be the same size in memory and change the\n/// *proportion* of the node's memory that is used by the string field vs the\n/// next pointers. That might be lighter weight for the allocator because the\n/// struct itself would be a fixed size; but I'm not sure if it would be better.\n#[repr(C)] // Prevent parameter reordering.\nstruct Node {\n /// We start with the items themselves. Only the first `num_items` of this\n /// list is in use. The user specified length of the items in the node is\n /// stored in nexts[0].skip_items. This is initialized with\n /// Default::default() for the type, but when MaybeUninit completely lands,\n /// it will be possible to make this a tiny bit faster by leaving the list\n /// initially uninitialized.\n items: [MaybeUninit; NODE_NUM_ITEMS],\n\n /// Number of items in `items` in use / filled.\n num_items: u8,\n\n /// Height of nexts array.\n height: u8,\n\n /// With the heads array as is, we have no way to go from a marker back to a\n /// cursor (which is required to insert at that location in the list). For\n /// that we need to be able to figure out at each level of the nexts\n /// pointers which object points to us, and the offset from that element to\n /// the current element. Anyway, for markers to work we need this.\n parent: *mut Node,\n\n // #[repr(align(std::align_of::()))]\n \n /// In reality this array has the size of height, allocated using more or\n /// less direct calls to malloc() at runtime based on the randomly generated\n /// size. The size is always at least 1.\n nexts: [SkipEntry; 0],\n}\n\n// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)\n// This test will fail if this ever stops being true.\n#[test]\nfn test_align() {\n struct TestConfig;\n impl ListConfig for TestConfig {\n type Item = u8;\n fn get_usersize(_item: &Self::Item) -> usize { 1 }\n }\n #[repr(C)] struct Check([SkipEntry; 0]);\n assert!(mem::align_of::() >= mem::align_of::>());\n // TODO: It'd be good to also check the alignment of the nexts field in Node.\n}\n\nfn random_height(rng: &mut R) -> u8 {\n let mut h: u8 = 1;\n // Should I use a csrng here? Does it matter?\n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }\n h\n}\n\n#[repr(C)]\npub struct SkipList {\n // TODO: Consider putting the head item on the heap. For the use case here\n // its almost certainly fine either way. The code feels a bit cleaner if its\n // on the heap (and then iterators will be able to outlast a move of the\n // skiplist parent). But its also very nice having the code run fast for\n // small lists. Most lists are small, and it makes sense to optimize for\n // that.\n\n // TODO: For safety, pointers in to this structure should be Pin<> if we\n // ever want to hold on to iterators.\n\n /// The total number of items in the skip list. This is not used internally -\n /// just here for bookkeeping.\n num_items: usize,\n /// Size of the list in user specified units.\n num_usercount: usize,\n\n /// The RNG we use to generate node heights. Specifying it explicitly allows\n /// unit tests and randomizer runs to be predictable, which is very helpful\n /// during debugging. I'm still not sure how the type of this should be\n /// specified. Should it be a generic parameter? Box?\n /// ??\n rng: Option,\n\n /// The first node is inline. The height is 1 more than the max height we've\n /// ever used. The highest next entry points to {null, total usersize}.\n head: Node,\n\n /// This is so dirty. The first node is embedded in SkipList; but we need to\n /// allocate enough room for height to get arbitrarily large. I could insist\n /// on SkipList always getting allocated on the heap, but for small lists its\n /// much better to be on the stack.\n ///\n /// So this struct is repr(C) and I'm just padding out the struct directly.\n /// All accesses should go through head because otherwise I think we violate\n /// aliasing rules.\n _nexts_padding: [SkipEntry; MAX_HEIGHT],\n}\n\n\nimpl Node {\n // Do I need to be explicit about the lifetime of the references being tied\n // to the lifetime of the node?\n fn nexts(&self) -> &[SkipEntry] {\n unsafe {\n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)\n }\n }\n\n fn nexts_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)\n }\n }\n\n fn layout_with_height(height: u8) -> Layout {\n Layout::from_size_align(\n mem::size_of::>() + mem::size_of::>() * (height as usize),\n mem::align_of::>()).unwrap()\n }\n\n fn alloc_with_height(height: u8) -> *mut Node {\n assert!(height >= 1 && height <= MAX_HEIGHT_U8);\n\n unsafe {\n let node = alloc(Self::layout_with_height(height)) as *mut Node;\n (*node) = Node {\n items: uninit_items_array(),\n num_items: 0,\n height: height,\n parent: ptr::null_mut(),\n nexts: [],\n };\n\n for next in (*node).nexts_mut() {\n *next = SkipEntry::new_null();\n }\n\n node\n }\n }\n\n fn alloc(rng: &mut R) -> *mut Node {\n Self::alloc_with_height(random_height(rng))\n }\n\n unsafe fn free(p: *mut Node) {\n dealloc(p as *mut u8, Self::layout_with_height((*p).height));\n }\n\n fn content_slice(&self) -> &[C::Item] {\n // TODO: Use MaybeUninit::slice_get_ref when it lands. This code is stolen from that implementation.\n\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n let slice = &self.items[..self.num_items as usize];\n unsafe { maybeinit_slice_get_ref(slice) }\n }\n\n // The height is at least 1, so this is always valid.\n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {\n unsafe { &*self.nexts.as_ptr() }\n }\n\n fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {\n unsafe { &mut *self.nexts.as_mut_ptr() }\n }\n\n // TODO: Rename to len() ?\n fn get_userlen(&self) -> usize {\n self.first_skip_entry().skip_usersize\n }\n \n fn get_next_ptr(&self) -> *mut Node {\n self.first_skip_entry().node\n }\n}\n\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone)]\npub struct Cursor {\n // TODO: Add a phantom lifetime reference to the skip list root for safety.\n\n\n /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///\n /// This field isn't strictly necessary - earlier versions tacked this on to\n /// the last item in entries... I'm still not sure the cleanest way to do\n /// this.\n userpos: usize,\n\n /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used to resolve that ambiguity.\n local_index: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n}\n\nimpl Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n self.local_index = 0;\n\n next\n }\n }\n\n fn is_at_node_end(&self) -> bool {\n self.local_index == unsafe { (*self.here_ptr()).num_items } as usize\n }\n\n fn advance_item(&mut self, height: u8) {\n if self.is_at_node_end() { self.advance_node(); }\n let usersize = C::get_usersize(unsafe { self.current_item() });\n\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }\n self.userpos += usersize;\n self.local_index += 1;\n }\n\n fn advance_by_items(&mut self, num: usize, height: u8) {\n for _ in 0..num { self.advance_item(height); }\n }\n\n fn move_to_item_start(&mut self, height: u8, offset: usize) {\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize -= offset;\n }\n self.userpos -= offset;\n }\n\n unsafe fn current_item(&mut self) -> &C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &*(node.items[self.local_index].as_ptr())\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice.\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos\n || self.local_index != other.local_index {return false; }\n\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl fmt::Debug for Cursor {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_struct(\"Cursor\")\n .field(\"userpos\", &self.userpos)\n .field(\"local_index\", &self.local_index)\n .finish()\n }\n}\n\n// None of the rust builtins give me what I want, which is a copy-free iterator\n// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.\nstruct UninitOwnedIter<'a, C: ListConfig> {\n // Based on the core slice IterMut implementation.\n ptr: NonNull,\n end: *mut C::Item,\n _marker: PhantomData<&'a SkipList>\n}\n\nimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {\n /// Make a slice we can iterate from and steal from. Its unsafe if:\n /// \n /// - The iterator isn't fully drained (then we might not drop contents)\n /// - The contents we iterate over aren't initialized\n /// \n /// After iterating, the contents are uninit memory.\n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {\n let ptr = slice.as_ptr() as *mut C::Item; // Safe.\n let end = ptr.add(slice.len());\n\n UninitOwnedIter {\n ptr: NonNull::new_unchecked(ptr),\n end,\n _marker: PhantomData\n }\n }\n // unsafe fn from_slice(slice: &[C::Item]) -> Self {\n // unsafe {\n // let ptr = slice.as_mut_ptr();\n // let end = ptr.add(slice.len());\n\n // UninitOwnedIter {\n // ptr: NonNull::new_unchecked(ptr),\n // end,\n // _marker: PhantomData\n // }\n // }\n // }\n}\n\nimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {\n type Item = C::Item;\n\n fn next(&mut self) -> Option {\n if self.ptr.as_ptr() == self.end {\n None\n } else {\n Some(unsafe { self.ptr.as_ptr().read() })\n }\n }\n}\n\n// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.\n#[inline(always)]\nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {\n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }\n}\n\n// Stolen from core::mem::MaybeUninit. Its just not standardized yet.\n#[inline(always)]\nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n &*(slice as *const [MaybeUninit] as *const [T])\n}\n\n\nimpl SkipList {\n pub fn new() -> Self {\n SkipList:: {\n num_items: 0,\n num_usercount: 0,\n rng: None,\n head: Node {\n items: uninit_items_array(),\n num_items: 0,\n height: 1, // Stores max height of list nodes\n parent: ptr::null_mut(),\n nexts: [],\n },\n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],\n }\n }\n\n pub fn init_rng_from_seed(&mut self, seed: u64) {\n self.rng = Some(SmallRng::seed_from_u64(seed));\n }\n\n fn get_rng(&mut self) -> &mut SmallRng {\n // I'm sure there's a nicer way to implement this.\n if self.rng.is_none() {\n // We'll use a stable RNG in debug mode so the tests are stable.\n if cfg!(debug_assertions) {\n self.init_rng_from_seed(123);\n } else {\n self.rng = Some(SmallRng::from_entropy());\n }\n }\n self.rng.as_mut().unwrap()\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n let mut rope = Self::new();\n rope.insert_at(0, s);\n rope\n }\n\n pub fn get_userlen(&self) -> usize {\n self.num_usercount\n }\n\n fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn len_items(&self) -> usize {\n self.num_items as usize\n }\n\n fn heads_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())\n }\n }\n\n fn is_head(&self, node: *const Node) -> bool {\n node as *const _ == &self.head as *const _\n }\n\n /// Walk the list and validate internal constraints. This is used for\n /// testing the structure itself, and should generally not be called by\n /// users.\n pub fn check(&self) {\n // #[cfg(test)]\n {\n // self.print();\n assert!(self.head.height >= 1);\n assert!(self.head.height <= MAX_HEIGHT_U8);\n\n let head_ptr = &self.head as *const _ as *mut _;\n // let skip_over = self.get_top_entry();\n // println!(\"Skip over skip chars {}, num bytes {}\", skip_over.skip_items, self.num_bytes);\n\n let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];\n\n let mut iter = [SkipEntry {\n // Bleh.\n node: head_ptr,\n // The skips will store the total distance travelled since the\n // start of this traversal at each height. All the entries above\n // head.height are ignored though.\n skip_usersize: 0\n }; MAX_HEIGHT];\n\n let mut num_items = 0;\n let mut num_usercount = 0;\n\n for (_i, n) in self.iter().enumerate() {\n // println!(\"visiting {:?}\", n.as_str());\n if !self.is_head(n) { assert!(n.num_items > 0); }\n assert!(n.height <= MAX_HEIGHT_U8);\n assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n\n // Make sure the number of items matches the count\n let local_count = C::userlen_of_slice(n.content_slice());\n assert_eq!(local_count, n.get_userlen());\n\n let expect_parent = if self.is_head(n) {\n ptr::null() // The head's parent is null\n } else if n.height == self.head.height {\n &self.head as *const _ // Max height nodes point back to head\n } else {\n prev[n.height as usize]\n };\n\n // println!(\"visiting {} {:?}\", i, n as *const _);\n // dbg!(n as *const _);\n // dbg!((n as *const _, (*n).height));\n // dbg!(n.parent);\n // dbg!(&self.head as *const _);\n\n assert_eq!(n.parent as *const _, expect_parent, \"invalid parent\");\n \n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {\n assert_eq!(entry.node as *const _, n as *const _);\n assert_eq!(entry.skip_usersize, num_usercount);\n\n // println!(\"replacing entry {:?} with {:?}\", entry, n.nexts()[i].node);\n prev[i] = n;\n entry.node = n.nexts()[i].node;\n entry.skip_usersize += n.nexts()[i].skip_usersize;\n }\n\n num_items += n.num_items as usize;\n num_usercount += n.get_userlen();\n\n // Check the value returned by the iterator functions matches.\n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);\n assert_eq!(local_offset, 0);\n\n // Dirty hack. If n has 0-sized elements at the end, the normal\n // cursor won't be at the end...\n while normal_iter.here_ptr() != n as *const _ as *mut _ {\n normal_iter.advance_node();\n }\n normal_iter.local_index = n.num_items as usize;\n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };\n assert_eq!(normal_iter, node_iter);\n }\n\n for entry in iter[0..self.head.height as usize].iter() {\n // println!(\"{:?}\", entry);\n assert!(entry.node.is_null());\n assert_eq!(entry.skip_usersize, num_usercount);\n }\n \n // println!(\"self bytes: {}, count bytes {}\", self.num_bytes, num_bytes);\n assert_eq!(self.num_items, num_items);\n assert_eq!(self.get_userlen(), num_usercount);\n }\n }\n \n \n /// Internal function for creating a cursor at a particular location in the\n /// skiplist. The returned cursor contains list of nodes which point past\n /// the specified position, as well as offsets of how far into their\n /// character lists the specified characters are.\n ///\n /// Sometimes a call to iter_at_userpos is ambiguous:\n ///\n /// - The item can contain items with zero usersize. The cursor could point\n /// to any of them.\n /// - If the location is at the end of a node, it is equally valid to return\n /// a position at the start of the next node.\n ///\n /// Because its impossible to move backwards in the list, iter_at_userpos\n /// returns the first admissible location with the specified userpos.\n /// \n /// Returns (cursor, offset into the specified item).\n ///\n /// TODO: This should be Pin<&self>.\n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {\n assert!(target_userpos <= self.get_userlen());\n\n let mut e: *const Node = &self.head;\n let mut height = self.head.height as usize - 1;\n \n let mut offset = target_userpos; // How many more items to skip\n\n // We're populating the head node pointer to simplify the case when the\n // iterator grows. We could put offset into the skip_usersize but it\n // would only be *mostly* correct, not always correct. (Since cursor\n // entries above height are not updated by insert.)\n let mut cursor = Cursor {\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n local_index: 0,\n userpos: target_userpos,\n };\n\n loop { // while height >= 0\n let en = unsafe { &*e };\n let next = en.nexts()[height];\n let skip = next.skip_usersize;\n if offset > skip {\n // Go right.\n debug_assert!(e == &self.head || en.num_items > 0);\n offset -= skip;\n e = next.node;\n assert!(!e.is_null(), \"Internal constraint violation: Reached rope end prematurely\");\n } else {\n // Record this and go down.\n cursor.entries[height] = SkipEntry {\n skip_usersize: offset,\n node: e as *mut Node, // This is pretty gross\n };\n\n if height == 0 { break; } else { height -= 1; }\n }\n };\n\n // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n\n // We've found the node. Now look for the index within the node.\n let en = unsafe { &*e };\n let mut index = 0;\n\n while offset > 0 {\n assert!(index < en.num_items as usize);\n \n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });\n if usersize > offset { break; } // We're in the middle of an item.\n offset -= usersize;\n index += 1;\n }\n cursor.local_index = index;\n\n (cursor, offset)\n }\n\n unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {\n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.\n\n let mut cursor = Cursor {\n userpos: 0, // We'll set this later.\n local_index: local_index,\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };\n\n let mut h = 0;\n loop {\n while h < (*n).height as usize {\n cursor.entries[h] = SkipEntry {\n node: n,\n skip_usersize: offset\n };\n\n h += 1;\n }\n\n let parent = (*n).parent;\n // Reached the head.\n if parent.is_null() { break; }\n\n // If we're the same height as the parent its fine.\n debug_assert!((*parent).height as usize > h\n || (self.is_head(parent) && (*parent).height as usize == h));\n\n // Walk from parent back to n, figuring out the offset.\n let mut c = parent;\n // let walk_height = (*parent).height as usize - 2;\n let walk_height = (*n).height as usize - 1;\n while c != n {\n let elem = (*c).nexts()[walk_height];\n offset += elem.skip_usersize;\n c = elem.node;\n }\n\n n = parent;\n }\n\n cursor.userpos = offset;\n cursor\n }\n\n pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n // The marker gives us a pointer into a node. Find the item.\n unsafe {\n let n = marker.ptr;\n\n let mut offset: usize = 0;\n let mut local_index = None;\n for (i, item) in (*n).content_slice().iter().enumerate() {\n if let Some(item_offset) = item.contains_item(query) {\n offset += item_offset;\n local_index = Some(i);\n break;\n } else {\n offset += C::get_usersize(item);\n }\n }\n\n let local_index = local_index.expect(\"Invalid marker - item not found in node\");\n self.iter_at_node(n, offset, local_index)\n }\n }\n\n // Internal fn to create a new node at the specified iterator filled with\n // the specified content. The passed cursor should point at the end of the\n // previous node. It will be updated to point to the end of the newly\n // inserted content.\n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {\n\n // println!(\"Insert_node_at {} len {}\", contents.len(), self.num_bytes);\n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n assert!(num_items <= NODE_NUM_ITEMS);\n debug_assert!(contents.size_hint().0 >= num_items);\n\n let new_node_ptr = Node::alloc(self.get_rng());\n let new_node = &mut *new_node_ptr;\n // let num_items = contents.len();\n new_node.num_items = num_items as u8;\n\n for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {\n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.\n }\n // new_node.items[..contents.len()].copy_from_slice(contents);\n\n let new_userlen = C::userlen_of_slice(new_node.content_slice());\n\n let new_height = new_node.height;\n let new_height_usize = new_height as usize;\n\n let mut head_height = self.head.height as usize;\n while head_height < new_height_usize {\n // This seems weird given we're about to overwrite these values\n // below. What we're doing is retroactively setting up the cursor\n // and head pointers *as if* the height had been this high all\n // along. This way we only have to populate the higher head values\n // lazily.\n let total_userlen = self.num_usercount;\n let nexts = self.heads_mut();\n nexts[head_height].skip_usersize = total_userlen;\n cursor.entries[head_height].skip_usersize = cursor.userpos;\n\n head_height += 1; // This is ugly.\n self.head.height += 1;\n }\n\n new_node.parent = if new_height_usize == MAX_HEIGHT {\n &self.head as *const _ as *mut _\n } else { cursor.entries[new_height_usize].node };\n\n for i in 0..new_height_usize {\n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];\n let new_nexts = new_node.nexts_mut();\n\n // The new node points to the successor (or null)\n new_nexts[i] = SkipEntry {\n node: prev_skip.node,\n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersize\n };\n\n // The previous node points to the new node\n *prev_skip = SkipEntry {\n node: new_node_ptr,\n skip_usersize: cursor.entries[i].skip_usersize\n };\n\n // Move the iterator to the end of the newly inserted node.\n if move_cursor {\n cursor.entries[i] = SkipEntry {\n node: new_node_ptr,\n skip_usersize: new_userlen\n };\n }\n }\n\n for i in new_height_usize..head_height {\n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n if move_cursor {\n cursor.entries[i].skip_usersize += new_userlen;\n }\n }\n\n // Update parents.\n if new_height_usize > 1 {\n\n let mut n = new_node_ptr;\n let mut skip_height = 0;\n\n loop {\n n = (*n).nexts_mut()[skip_height].node;\n if n.is_null() || (*n).height >= new_height { break; }\n \n (*n).parent = new_node_ptr;\n skip_height = usize::max(skip_height, (*n).height as usize - 1);\n }\n }\n \n self.num_items += num_items;\n self.num_usercount += new_userlen;\n if move_cursor {\n cursor.userpos += new_userlen;\n cursor.local_index = num_items;\n }\n\n notify(new_node.content_slice(), ItemMarker {\n ptr: new_node_ptr,\n _phantom: PhantomData\n });\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n // iter specifies where to insert.\n\n let mut e = cursor.here_ptr();\n\n // The insertion offset into the destination node.\n assert!(cursor.userpos <= self.num_usercount);\n assert!(cursor.local_index <= (*e).num_items as usize);\n\n // We might be able to insert the new data into the current node, depending on\n // how big it is.\n let num_inserted_items = contents.len();\n // let num_inserted_usercount = C::userlen_of_slice(contents);\n\n // Can we insert into the current node?\n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;\n\n // Can we insert into the start of the successor node?\n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {\n // We can insert into the subsequent node if:\n // - We can't insert into the current node\n // - There _is_ a next node to insert into\n // - The insert would be at the start of the next node\n // - There's room in the next node\n if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {\n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {\n cursor.advance_node();\n e = next;\n\n insert_here = true;\n }\n }\n }\n\n let item_idx = cursor.local_index;\n let e_num_items = (*e).num_items as usize; // convenience.\n\n if insert_here {\n // println!(\"insert_here {}\", contents);\n // First push the current items later in the array\n let c = &mut (*e).items;\n if item_idx < e_num_items {\n // Can't use copy_within because we aren't sure if the type\n // implements Copy. Memmove the existing items.\n ptr::copy(\n &c[item_idx],\n &mut c[item_idx + num_inserted_items],\n (*e).num_items as usize - item_idx);\n // c[..].copy_within(item_idx..e_num_items,\n // item_idx + num_inserted_items);\n }\n\n // Then copy in the new items. Can't memcpy from an iterator, but\n // the optimizer should make this fast.\n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];\n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {\n // Do not drop the old items - they were only moved.\n slot.as_mut_ptr().write(item);\n }\n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);\n // c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);\n\n (*e).num_items += num_inserted_items as u8;\n self.num_items += num_inserted_items;\n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);\n self.num_usercount += num_inserted_usercount;\n\n // .... aaaand update all the offset amounts.\n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);\n\n // Usually the cursor will be discarded after one change, but for\n // consistency of compound edits we'll update the cursor to point to\n // the end of the new content.\n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {\n entry.skip_usersize += num_inserted_usercount;\n }\n cursor.userpos += num_inserted_usercount;\n cursor.local_index += num_inserted_items;\n\n notify(dest_content_slice, ItemMarker {\n ptr: e,\n _phantom: PhantomData\n });\n } else {\n // There isn't room. We'll need to add at least one new node to the\n // list. We could be a bit more careful here and copy as much as\n // possible into the current node - that would decrease the number\n // of new nodes in some cases, but I don't think the performance\n // difference will be large enough to justify the complexity.\n\n // If we're not at the end of the current node, we'll need to remove\n // the end of the current node's data and reinsert it later.\n let num_end_items = e_num_items - item_idx;\n\n let (end_items, end_usercount) = if num_end_items > 0 {\n // We'll mark the items as deleted from the node, while leaving\n // the data itself there for now to avoid a copy.\n\n // Note that if we wanted to, it would also be correct (and\n // slightly more space efficient) to pack some of the new\n // string's characters into this node after trimming it.\n let end_items = &(*e).items[item_idx..e_num_items];\n (*e).num_items = item_idx as u8;\n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;\n\n cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));\n\n // We need to trim the size off because we'll add the characters\n // back with insert_node_at.\n self.num_usercount -= end_usercount;\n self.num_items -= num_end_items;\n\n (Some(end_items), end_usercount)\n } else {\n (None, 0)\n };\n\n // Now we insert new nodes containing the new character data. The\n // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.\n // As further optimization, we could try and fit the last piece into\n // the start of the subsequent node.\n let mut items_remaining = num_inserted_items;\n while items_remaining > 0 {\n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);\n self.insert_node_at(cursor, contents, insert_here, true, notify);\n items_remaining -= insert_here;\n }\n // for chunk in contents.take(NODE_NUM_ITEMS) {\n // // let userlen = C::userlen_of_slice(chunk);\n // self.insert_node_at(cursor, chunk, true, notify);\n // }\n\n // TODO: Consider recursively calling insert_at_iter() here instead\n // of making a whole new node for the remaining content.\n if let Some(end_items) = end_items {\n // Passing false to indicate we don't want the cursor updated\n // after this - it should remain at the end of the newly\n // inserted content, which is *before* this end bit.\n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_usercount, false, notify);\n }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);\n // }\n\n /// Interestingly unlike the original, here we only care about specifying\n /// the number of removed items by counting them. We do not use usersize in\n /// the deleted item count.\n ///\n /// If the deleted content occurs at the start of a node, the cursor passed\n /// here must point to the end of the previous node, not the start of the\n /// current node.\n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {\n if num_deleted_items == 0 { return; }\n\n let mut item_idx = cursor.local_index;\n let mut e = cursor.here_ptr();\n while num_deleted_items > 0 {\n // self.print();\n // if cfg!(debug_assertions) { self.check(); }\n if item_idx == (*e).num_items as usize {\n let entry = (*e).first_skip_entry();\n // End of current node. Skip to the start of the next one. We're\n // intentionally not updating the iterator because if we delete\n // a whole node we need the iterator to point to the previous\n // element. And if we only delete here, the iterator doesn't\n // need to be moved.\n e = entry.node;\n if e.is_null() { panic!(\"Cannot delete past the end of the list\"); }\n item_idx = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let removed_here = min(num_deleted_items, e_num_items - item_idx);\n \n let height = (*e).height as usize;\n let removed_userlen;\n\n if removed_here < e_num_items || e as *const _ == &self.head as *const _ {\n // Just trim the node down.\n let trailing_items = e_num_items - item_idx - removed_here;\n \n let c = &mut (*e).items;\n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));\n if trailing_items > 0 {\n ptr::copy(\n &c[item_idx + removed_here],\n &mut c[item_idx],\n trailing_items);\n // c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);\n }\n\n (*e).num_items -= removed_here as u8;\n self.num_items -= removed_here;\n self.num_usercount -= removed_userlen;\n\n for s in (*e).nexts_mut() {\n s.skip_usersize -= removed_userlen;\n }\n } else {\n // Remove the node from the skip list entirely. e should be the\n // next node after the position of the iterator.\n assert_ne!(cursor.here_ptr(), e);\n\n removed_userlen = (*e).get_userlen();\n let next = (*e).first_skip_entry().node;\n\n // println!(\"removing {:?} contents {:?} height {}\", e, (*e).content_slice(), height);\n\n for i in 0..height {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.node = (*e).nexts_mut()[i].node;\n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;\n }\n\n self.num_items -= (*e).num_items as usize;\n self.num_usercount -= removed_userlen;\n\n // Update parents.\n if height > 1 {\n let mut n = e;\n // let new_parent = cursor.entries[height - 1].node;\n\n // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents.\n let mut parent_height = 1;\n let cursor_node = cursor.here_ptr();\n let cursor_node_height = (*cursor_node).height as usize;\n let mut new_parent = if height >= cursor_node_height {\n cursor.entries[parent_height].node\n } else {\n cursor_node\n };\n\n loop {\n // dbg!(skip_height);\n // dbg!((*n).height as usize);\n\n n = (*n).nexts_mut()[parent_height - 1].node;\n if n.is_null() || (*n).height >= height as u8 { break; }\n let n_height = (*n).height as usize;\n\n // dbg!((*n).content_slice());\n // dbg!((*n).height);\n \n assert_eq!((*n).parent, e);\n assert!(n_height >= parent_height - 1);\n\n if n_height > parent_height {\n parent_height = n_height;\n if n_height >= cursor_node_height {\n new_parent = cursor.entries[parent_height].node\n }\n }\n \n (*n).parent = new_parent;\n }\n }\n\n Node::free(e);\n e = next;\n }\n\n for i in height..self.head.height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.skip_usersize -= removed_userlen;\n }\n\n num_deleted_items -= removed_here;\n\n // if cfg!(debug_assertions) { self.check(); }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)\n // where Notify: FnMut(&[C::Item], ItemMarker) {\n\n unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n if removed_items == 0 && inserted_content.len() == 0 { return; }\n\n // Replace as many items from removed_items as we can with inserted_content.\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n debug_assert!(inserted_content.len() >= replaced_items);\n let mut e = cursor.here_ptr();\n if cursor.local_index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n }\n\n let index = cursor.local_index;\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let dest = &mut (*e).items[index..index + replaced_items_here];\n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));\n\n // Replace the items themselves. Everything else is commentary.\n // Would prefer to use zip() but it wants ownership of inserted_content :/\n for slot in dest.iter_mut() {\n *slot.as_mut_ptr() = inserted_content.next().unwrap();\n }\n // for (slot, item) in dest.iter_mut().zip(inserted_content) {\n // *slot.as_mut_ptr() = item; // Drop the replaced content.\n // }\n\n let dest = maybeinit_slice_get_ref(dest);\n let new_usersize = C::userlen_of_slice(dest);\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n // old_items.copy_from_slice(new_items);\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n\n // inserted_content = &inserted_content[replaced_items_here..];\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n cursor.local_index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n\n notify(dest, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(cursor, inserted_content, &mut notify);\n } else if removed_items > 0 {\n self.del_at_iter(cursor, removed_items);\n }\n }\n\n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n // let (mut c2, _) = self.iter_at_userpos(userpos);\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n }\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}\n\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }\n\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(start_userpos);\n c2.advance_by_items(inserted_content.len(), self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after replace\"); }\n }\n }\n\n pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {\n if contents.len() == 0 { return; }\n \n userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n unsafe {\n if offset == 0 {\n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n } else {\n let current_item = cursor.current_item();\n let (start, end) = C::split_item(current_item, offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n cursor.move_to_item_start(self.head.height, offset);\n // This feels pretty inefficient; but its probably fine.\n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);\n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);\n\n // There's no clean way to keep the cursor steady for the final\n // insert. We'll just make sure the cursor is in the right\n // position before that call for now.\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n\n self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);\n }\n }\n\n }\n\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.iter_at_userpos(userpos);\n if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n}\n\n\nimpl SkipList where C::Item: PartialEq {\n pub fn eq_list(&self, other: &[C::Item]) -> bool {\n let mut pos = 0;\n let other_len = other.len();\n\n for node in self.iter() {\n let my_data = node.content_slice();\n let my_len = my_data.len();\n\n if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {\n return false\n }\n pos += my_data.len();\n }\n\n return pos == other_len;\n }\n}\n\nimpl Drop for SkipList {\n fn drop(&mut self) {\n let mut node = self.head.first_skip_entry().node;\n unsafe {\n while !node.is_null() {\n let next = (*node).first_skip_entry().node;\n Node::free(node);\n node = next;\n }\n }\n }\n}\n\n\nimpl From<&[C::Item]> for SkipList where C::Item: Copy {\n fn from(s: &[C::Item]) -> SkipList {\n SkipList::new_from_slice(s)\n }\n}\n\n// TODO: Remove Item: Copy constraint here.\nimpl From> for SkipList where C::Item: Copy {\n fn from(s: Vec) -> SkipList {\n SkipList::new_from_slice(s.as_slice())\n }\n}\n\nimpl Into> for &SkipList where C::Item: Copy {\n fn into(self) -> Vec {\n let mut content: Vec = Vec::with_capacity(self.num_items);\n" + ) + , (18233, 0, "\n ") + , (18238, 0, "\n ") + , (18234, 4, "") + , (18239, 0, "f") + , (18240, 0, "n") + , (18241, 0, " ") + , (18239, 3, "") + , (18235, 4, "") + , (18234, 1, "") + , (18878, 0, "\n ") + , (18883, 0, "\n ") + , (18879, 4, "") + , (18884, 0, "f") + , (18885, 0, "n") + , (18886, 0, " ") + , (18887, 0, "i") + , (18888, 0, "z") + , (18888, 1, "") + , (18887, 1, "") + , (18887, 0, "s") + , (18888, 0, "i") + , (18889, 0, "z") + , (18890, 0, "e") + , (18891, 0, "_") + , (18892, 0, "h") + , (18893, 0, "i") + , (18894, 0, "n") + , (18895, 0, "t") + , (18896, 0, "(") + , (18897, 0, "&") + , (18898, 0, "s") + , (18899, 0, "e") + , (18900, 0, "l") + , (18901, 0, "f") + , (18902, 0, ")") + , (18903, 0, " ") + , (18904, 0, "-") + , (18905, 0, ">") + , (18906, 0, " ") + , (18907, 0, "(") + , (18908, 0, "u") + , (18909, 0, "s") + , (18910, 0, "e") + , (18911, 0, "i") + , (18911, 1, "") + , (18910, 1, "") + , (18910, 0, "i") + , (18911, 0, "z") + , (18912, 0, "e") + , (18913, 0, ",") + , (18914, 0, " ") + , (18915, 0, "O") + , (18916, 0, "p") + , (18917, 0, "t") + , (18918, 0, "i") + , (18919, 0, "o") + , (18920, 0, "n") + , (18921, 0, "<") + , (18922, 0, "u") + , (18923, 0, "s") + , (18924, 0, "i") + , (18925, 0, "z") + , (18926, 0, "e") + , (18927, 0, ">") + , (18928, 0, ")") + , (18929, 0, " ") + , (18930, 0, "{") + , (18931, 0, " ") + , (18932, 0, "\n ") + , (18941, 0, "\n ") + , (18933, 8, "") + , (18934, 8, " }") + , (18931, 1, "") + , (18932, 0, " ") + , (18940, 0, "l") + , (18941, 0, "e") + , (18942, 0, "t") + , (18943, 0, " ") + , (18944, 0, "s") + , (18945, 0, "i") + , (18946, 0, "e") + , (18946, 1, "") + , (18946, 0, "z") + , (18947, 0, "e") + , (18948, 0, " ") + , (18949, 0, "=") + , (18950, 0, " ") + , (18951, 0, "s") + , (18952, 0, "e") + , (18953, 0, "l") + , (18954, 0, "f") + , (18955, 0, ".") + , (18956, 0, "e") + , (18957, 0, "n") + , (18958, 0, "d") + , (18959, 0, " ") + , (18960, 0, "-") + , (18961, 0, " ") + , (18962, 0, "s") + , (18963, 0, "e") + , (18964, 0, "l") + , (18965, 0, "f") + , (18966, 0, ".") + , (18967, 0, "p") + , (18968, 0, "t") + , (18969, 0, "r") + , (18970, 0, ";") + , (18970, 0, ".") + , (18971, 0, "a") + , (18972, 0, "s") + , (18971, 2, "as_ptr()") + , (18960, 1, "") + , (18959, 1, "") + , (18959, 0, ".") + , (18960, 0, "s") + , (18961, 0, "u") + , (18962, 0, "b") + , (18963, 0, "(") + , (18964, 1, "") + , (18981, 0, ")") + , (18951, 32, "") + , (18951, 0, "s") + , (18952, 0, "e") + , (18953, 0, "l") + , (18954, 0, "f") + , (18955, 0, ".") + , (18956, 0, "e") + , (18957, 0, "n") + , (18958, 0, "d") + , (18959, 0, " ") + , (18960, 0, "a") + , (18961, 0, "s") + , (18962, 0, " ") + , (18963, 0, "u") + , (18964, 0, "s") + , (18965, 0, "i") + , (18966, 0, "z") + , (18967, 0, "e") + , (18968, 0, " ") + , (18969, 0, "-") + , (18970, 0, " ") + , (18971, 0, "s") + , (18972, 0, "e") + , (18973, 0, "l") + , (18974, 0, "f") + , (18975, 0, ".") + , (18976, 0, "p") + , (18977, 0, "t") + , (18978, 0, "r") + , (18979, 0, " ") + , (18980, 0, "a") + , (18981, 0, "s") + , (18982, 0, " ") + , (18983, 0, "u") + , (18984, 0, "s") + , (18985, 0, "i") + , (18986, 0, "z") + , (18987, 0, "e") + , (18951, 0, "(") + , (18989, 0, ")") + , (18990, 0, ".") + , (18990, 1, "") + , (18990, 0, " ") + , (18991, 0, "/") + , (18992, 0, " ") + , (18993, 0, "s") + , (18994, 0, "i") + , (18995, 0, "z") + , (18996, 0, "e") + , (18997, 0, "_") + , (18998, 0, "o") + , (18999, 0, "f") + , (19000, 0, ":") + , (19001, 0, ":") + , (19002, 0, "<") + , (19003, 0, "C") + , (19004, 0, ":") + , (19005, 0, ":") + , (19006, 0, "I") + , (19007, 0, "t") + , (19008, 0, "e") + , (19009, 0, "m") + , (19010, 0, ">") + , (19011, 0, "(") + , (19012, 0, ")") + , (19013, 0, ";") + , (19014, 0, "\n ") + , (19023, 0, "(") + , (19024, 0, "s") + , (19025, 0, "i") + , (19026, 0, "z") + , (19027, 0, "e") + , (19028, 0, ",") + , (19029, 0, " ") + , (19030, 0, "S") + , (19031, 0, "o") + , (19032, 0, "m") + , (19033, 0, "e") + , (19034, 0, "(") + , (19035, 0, "s") + , (19036, 0, "i") + , (19037, 0, "z") + , (19038, 0, "e") + , (19039, 0, ")") + , (19040, 0, ")") + , (19011, 0, ":") + , (19012, 0, ":") + , (19011, 2, "") + , (18980, 0, ".") + , (18981, 0, "a") + , (18982, 0, "s") + , (18983, 0, "_") + , (18984, 0, "p") + , (18985, 0, "t") + , (18986, 0, "r") + , (18987, 0, "(") + , (18988, 0, ")") + , (19002, 0, "m") + , (19003, 0, "e") + , (19004, 0, "m") + , (19005, 0, ":") + , (19006, 0, ":") + , (1247, 2, "2") + , (32176, 0, "d") + , (32177, 0, "b") + , (32178, 0, "g") + , (32179, 0, "!") + , (32180, 0, "(") + , (32203, 0, ")") + , (32205, 1, "") + , (32205, 0, "<") + , (32203, 1, "") + , (32180, 1, "") + , (32179, 1, "") + , (32178, 1, "") + , (32177, 1, "") + , (32176, 1, "") + , (32175, 1, "") + , (32175, 0, "(") + , (32162, 0, "// ") + , (1973, 0, " type Item; //+ std::fmt::Debug;\n") + , (1987, 21, "") + , (1977, 0, "// ") + , (2007, 1, "") + , (2006, 1, "") + , (2005, 1, "") + , (2004, 1, "") + , (2004, 0, ":") + , (2005, 1, "") + , (54333, 0, "\n ") + , (54350, 0, "s") + , (54351, 0, "e") + , (54352, 0, "l") + , (54353, 0, "f") + , (54354, 0, ".") + , (54355, 0, "p") + , (54356, 0, "r") + , (54357, 0, "i") + , (54355, 3, "print()") + , (54362, 0, "(") + , (54363, 0, ")") + , (54363, 1, "") + , (54362, 1, "") + , (54362, 0, ";") + , (54466, 0, "\n ") + , (54483, 0, "self.print();") + , (54877, 0, "\n ") + , (54894, 0, "self.print();") + , (42868, 13, "e") + , (42869, 0, "n") + , (42870, 0, "d") + , (42871, 0, "_") + , (42872, 0, "i") + , (42873, 0, "t") + , (42874, 0, "e") + , (42875, 0, "m") + , (42876, 0, "s") + , (32216, 1, "") + , (32216, 0, ">") + , (32176, 3, "") + , (42874, 0, ".") + , (42875, 0, "l") + , (42876, 0, "e") + , (42877, 0, "n") + , (42878, 0, "(") + , (42879, 0, ")") + , (1247, 1, "") + , (1247, 0, "1") + , (1247, 1, "") + , (1247, 0, "1") + , (1248, 0, "0") + , (18822, 0, "\n ") + , (18835, 0, "l") + , (18836, 0, "e") + , (18837, 0, "t") + , (18838, 0, " ") + , (18839, 0, "p") + , (18840, 0, "t") + , (18841, 0, "r") + , (18842, 0, " ") + , (18843, 0, "=") + , (18844, 0, " ") + , (18845, 0, "s") + , (18846, 0, "e") + , (18847, 0, "l") + , (18848, 0, "f") + , (18849, 0, ".") + , (18850, 0, "p") + , (18851, 0, "t") + , (18852, 0, "r") + , (18853, 0, ";") + , (18881, 5, "") + , (18854, 0, "\n ") + , (18867, 0, "s") + , (18868, 0, "e") + , (18869, 0, "l") + , (18870, 0, "f") + , (18871, 0, ".") + , (18872, 0, "p") + , (18873, 0, "t") + , (18874, 0, "r") + , (18875, 0, " ") + , (18876, 0, "+") + , (18877, 0, "=") + , (18878, 0, " ") + , (18879, 0, "1") + , (18880, 0, ";") + , (18876, 1, "") + , (18878, 0, "s") + , (18879, 0, "e") + , (18880, 0, "l") + , (18881, 0, "f") + , (18882, 0, ".") + , (18883, 0, "p") + , (18884, 0, "t") + , (18885, 0, "r") + , (18886, 0, ".") + , (18887, 0, "o") + , (18888, 0, "f") + , (18889, 0, "f") + , (18890, 0, "s") + , (18891, 0, "e") + , (18892, 0, "t") + , (18893, 0, "(") + , (18895, 0, ")") + , (18886, 0, ".") + , (18887, 0, "a") + , (18888, 0, "s") + , (18889, 0, "_") + , (18890, 0, "p") + , (18891, 0, "t") + , (18892, 0, "r") + , (18893, 0, "(") + , (18894, 0, ")") + , (18877, 0, " ") + , (18878, 0, "N") + , (18879, 0, "o") + , (18880, 0, "n") + , (18881, 0, "N") + , (18882, 0, "u") + , (18883, 0, "l") + , (18878, 6, "NonNull") + , (18885, 0, ":") + , (18886, 0, ":") + , (18887, 0, "new_unchecked(ptr: *mut T)") + , (18901, 11, "") + , (18901, 1, "") + , (18901, 1, "") + , (18928, 0, ")") + , (18877, 0, " ") + , (18878, 0, "u") + , (18879, 0, "n") + , (18880, 0, "s") + , (18881, 0, "a") + , (18882, 0, "f") + , (18883, 0, "e") + , (18884, 0, " ") + , (18885, 0, "{") + , (18938, 0, " ") + , (18939, 0, "}") + , (10488, 349, "") + , (10487, 1, "") + , (10378, 109, "") + , (17789, 359, "") + , (17788, 1, "") + , (17257, 0, " ") + , (17258, 0, "w") + , (17259, 0, "i") + , (17260, 0, "t") + , (17261, 0, "h") + , (17262, 0, "o") + , (17263, 0, "u") + , (17264, 0, "t") + , (17265, 0, " ") + , (17266, 0, "d") + , (17267, 0, "r") + , (17268, 0, "o") + , (17269, 0, "p") + , (17270, 0, "p") + , (17271, 0, "i") + , (17272, 0, "n") + , (17273, 0, "g") + , (17274, 0, " ") + , (17275, 0, "c") + , (17276, 0, "o") + , (17277, 0, "n") + , (17278, 0, "t") + , (17279, 0, "e") + , (17280, 0, "n") + , (17281, 0, "t") + , ( 17202 + , 249 + , " /// Make a slice we can iterate from and steal from without dropping\n /// content. Its unsafe if:\n ///\n /// - The iterator isn't fully drained (then we might not drop contents)\n /// - The contents we iterate over aren't initialized\n ///" + ) + , (17253, 0, "d") + , (17254, 0, "a") + , (17255, 0, "t") + , (17256, 0, "a") + , (17257, 0, " ") + , (17297, 14, "T") + , (17298, 0, "h") + , (17299, 0, "i") + , (17300, 0, "s") + , (17301, 0, " ") + , (17302, 0, "i") + , (17303, 0, "s") + , (17304, 0, " ") + , (17305, 0, "v") + , (17306, 0, "e") + , (17307, 0, "r") + , (17308, 0, "y") + , (17309, 0, " ") + , (17310, 0, "u") + , (17311, 0, "n") + , (17312, 0, "s") + , (17313, 0, "a") + , (17314, 0, "f") + , (17315, 0, "e") + , (17316, 0, ":") + , (17305, 5, "") + , (17331, 4, "I") + , (17332, 0, "f") + , (17333, 0, " ") + , (17334, 0, "t") + , (17335, 0, "h") + , (17336, 0, "e") + , (17337, 0, " ") + , (17366, 34, " ") + , (17367, 0, "t") + , (17368, 0, "h") + , (17369, 0, "e") + , (17370, 0, "n") + , (17371, 0, " ") + , (17372, 0, "t") + , (17373, 0, "h") + , (17374, 0, "e") + , (17375, 0, " ") + , (17372, 4, "r") + , (17373, 0, "e") + , (17374, 0, "a") + , (17375, 0, "m") + , (17375, 1, "") + , (17374, 1, "") + , (17374, 0, "m") + , (17375, 0, "a") + , (17376, 0, "i") + , (17377, 0, "n") + , (17378, 0, "i") + , (17379, 0, "n") + , (17380, 0, "g") + , (17381, 0, " ") + , (17382, 0, "i") + , (17383, 0, "t") + , (17384, 0, "e") + , (17385, 0, "m") + , (17386, 0, "s") + , (17387, 0, " ") + , (17388, 0, "a") + , (17389, 0, "r") + , (17390, 0, "e") + , (17391, 0, " ") + , (17392, 0, "f") + , (17393, 0, "o") + , (17394, 0, "r") + , (17395, 0, "g") + , (17396, 0, "o") + , (17397, 0, "t") + , (17398, 0, "t") + , (17399, 0, "e") + , (17400, 0, "n") + , (17401, 0, " ") + , (17402, 0, "(") + , (17403, 0, "n") + , (17404, 0, "o") + , (17405, 0, "t") + , (17406, 0, " ") + , (17407, 0, "d") + , (17408, 0, "r") + , (17409, 0, "o") + , (17410, 0, "p") + , (17411, 0, "p") + , (17412, 0, "e") + , (17413, 0, "d") + , (17414, 0, ")") + , ( 17321 + , 94 + , " /// - If the iterator isn't fully drained then remaining items are forgotten\n /// (not dropped)" + ) + , (17388, 4, "w") + , (17389, 0, "i") + , (17390, 0, "l") + , (17391, 0, "l") + , (17392, 0, " ") + , (17393, 0, "b") + , (17394, 0, "e") + , (17395, 0, " ") + , ( 17321 + , 108 + , " /// - If the iterator isn't fully drained then remaining items will be\n /// forgotten (not dropped)" + ) + , (17417, 3, "t") + , (17418, 0, "h") + , (17419, 0, "e") + , (17420, 0, "y") + , (17421, 0, " ") + , (17422, 0, "a") + , (17423, 0, "r") + , (17424, 0, "e") + , (17425, 0, " ") + , (17426, 0, "n") + , (17427, 0, "o") + , (17428, 0, "t") + , (17438, 0, ".") + , (17450, 47, "T") + , (17451, 0, "h") + , (17452, 0, "e") + , (17453, 0, " ") + , (17454, 0, "s") + , (17455, 0, "l") + , (17456, 0, "i") + , (17457, 0, "c") + , (17458, 0, "e") + , (17459, 0, " ") + , (17460, 0, "p") + , (17461, 0, "a") + , (17462, 0, "d") + , (17462, 1, "") + , (17462, 0, "s") + , (17463, 0, "s") + , (17464, 0, "e") + , (17465, 0, "d") + , (17466, 0, " ") + , (17467, 0, "i") + , (17468, 0, "n") + , (17469, 0, " ") + , (17470, 0, "h") + , (17471, 0, "e") + , (17472, 0, "r") + , (17473, 0, "e") + , (17474, 0, " ") + , (17475, 0, "m") + , (17476, 0, "u") + , (17477, 0, "s") + , (17478, 0, "t") + , (17479, 0, " ") + , (17480, 0, "b") + , (17481, 0, "e") + , (17482, 0, " ") + , (17483, 0, "i") + , (17484, 0, "n") + , (17485, 0, "i") + , (17486, 0, "t") + , (17487, 0, "i") + , (17488, 0, "a") + , (17489, 0, "l") + , (17490, 0, "i") + , (17491, 0, "z") + , (17492, 0, "e") + , (17493, 0, "d") + , (17494, 0, ".") + , (17494, 1, "") + , (17494, 0, " ") + , (17495, 0, "o") + , (17496, 0, "r") + , (17497, 0, " ") + , (17498, 0, "t") + , (17499, 0, "h") + , (17500, 0, "e") + , (17501, 0, " ") + , (17502, 0, "v") + , (17503, 0, "a") + , (17504, 0, "l") + , (17505, 0, "u") + , (17506, 0, "e") + , (17507, 0, "s") + , (17498, 10, "u") + , (17499, 0, "n") + , (17500, 0, "d") + , (17501, 0, "e") + , (17502, 0, "f") + , (17503, 0, "i") + , (17504, 0, "n") + , (17505, 0, "e") + , (17506, 0, "d") + , (17507, 0, " ") + , (17508, 0, "v") + , (17509, 0, "a") + , (17510, 0, "l") + , (17511, 0, "u") + , (17512, 0, "e") + , (17513, 0, "s") + , (17514, 0, " ") + , (17514, 1, "") + , (17507, 7, "") + , (17507, 0, " ") + , (17508, 0, "b") + , (17509, 0, "e") + , (17510, 0, "h") + , (17511, 0, "a") + , (17512, 0, "v") + , (17513, 0, "i") + , (17514, 0, "o") + , (17515, 0, "u") + , (17516, 0, "r") + , (17517, 0, " ") + , (17518, 0, "w") + , (17519, 0, "i") + , (17520, 0, "l") + , (17521, 0, "l") + , (17522, 0, " ") + , (17523, 0, "h") + , (17524, 0, "i") + , (17525, 0, "t") + , (17526, 0, " ") + , (17527, 0, "u") + , (17528, 0, "s") + , (17529, 0, ".") + , ( 17440 + , 90 + , " /// - The slice passed in here must be initialized or undefined behaviour\n /// will hit us." + ) + , (18768, 0, "T") + , (18769, 0, "O") + , (18770, 0, "D") + , (18771, 0, "O") + , (18772, 0, ":") + , (18773, 0, " ") + , (18809, 31, "") + , (18809, 0, " ") + , (18810, 0, "R") + , (18811, 0, "e") + , (18812, 0, "p") + , (18813, 0, "l") + , (18814, 0, "a") + , (18815, 0, "c") + , (18816, 0, "e") + , (18817, 0, " ") + , (18818, 0, "w") + , (18819, 0, "h") + , (18820, 0, "e") + , (18821, 0, "n") + , (18822, 0, " ") + , (18823, 0, "a") + , (18824, 0, "v") + , (18825, 0, "a") + , (18826, 0, "l") + , (18827, 0, "i") + , (18828, 0, "a") + , (18829, 0, "b") + , (18830, 0, "l") + , (18831, 0, "e") + , (18823, 9, "a") + , (18824, 0, "v") + , (18825, 0, "a") + , (18826, 0, "i") + , (18827, 0, "l") + , (18828, 0, "a") + , (18829, 0, "b") + , (18830, 0, "l") + , (18831, 0, "e") + , (18832, 0, ".") + , (18786, 11, "") + , (18797, 0, ":") + , (18798, 0, ":") + , (18799, 0, "s") + , (18800, 0, "l") + , (18801, 0, "i") + , (18802, 0, "c") + , (18803, 0, "e") + , (18804, 0, "_") + , (18805, 0, "g") + , (18806, 0, "e") + , (18807, 0, "t") + , (18808, 0, "_") + , (18809, 0, "r") + , (18810, 0, "e") + , (18811, 0, "f") + , (20373, 0, "\n ") + , (20378, 0, "/") + , (20379, 0, ";") + , (20380, 0, " ") + , (20380, 1, "") + , (20379, 1, "") + , (20379, 0, "/") + , (20380, 0, " ") + , (20381, 0, "T") + , (20382, 0, "O") + , (20383, 0, "D") + , (20384, 0, "O") + , (20385, 0, ":") + , (20386, 0, " ") + , (20387, 0, "R") + , (20388, 0, "e") + , (20389, 0, "m") + , (20390, 0, "o") + , (20391, 0, "v") + , (20392, 0, "e") + , (20393, 0, " ") + , (20374, 20, "") + , (20373, 1, "") + , (31749, 43, "") + , (31999, 71, "") + , (35780, 71, "") + , (37347, 115, "") + , (37079, 18, "") + , (37079, 3, "I") + , (37080, 0, "t") + , (37081, 0, "e") + , (37082, 0, "m") + , (37083, 5, "") + , (37083, 0, " ") + , (37084, 0, "d") + , (37085, 0, "o") + , (37086, 0, "e") + , (37087, 0, "s") + , (37088, 0, "n") + , (37089, 0, "'") + , (37090, 0, "t") + , (37091, 0, " ") + , (37092, 0, "n") + , (37093, 0, "e") + , (37094, 0, "c") + , (37095, 0, "e") + , (37096, 0, "s") + , (37097, 0, "s") + , (37098, 0, "a") + , (37099, 0, "r") + , (37100, 0, "i") + , (37101, 0, "l") + , (37102, 0, "y") + , (37103, 0, " ") + , (37104, 0, "i") + , (37104, 1, "") + , (37103, 1, "") + , (37132, 1, "") + , (37865, 84, "") + , (37864, 1, "") + , (41174, 210, "") + , (44100, 90, "") + , (46121, 102, "") + , (46334, 101, "") + , (46333, 1, "") + , (47290, 173, "") + , (48841, 168, "") + , (49035, 53, "") + , (49034, 1, "") + , (49287, 76, "") + , (50362, 64, "") + , (52327, 30, "") + , (52430, 30, "") + , (52811, 30, "") + , (1996, 0, "// ") + , (1978, 3, "") + , (39512, 0, "_") + , (8981, 0, "m") + , (8982, 0, "u") + , (8983, 0, "t") + , (8984, 0, " ") + , (22182, 0, "m") + , (22183, 0, "u") + , (22184, 0, "t") + , (22185, 0, " ") + , (22185, 1, "") + , (22182, 3, "") + , (22197, 0, "_") + , (22198, 0, "m") + , (22199, 0, "u") + , (22200, 0, "t") + , (22197, 4, "") + , (8984, 1, "") + , (8981, 3, "") + , (6222, 0, " nexts: [SkipEntry; 0],\n") + , (6256, 0, "// ") + , (6248, 1, "") + , (6248, 0, "M") + , (6249, 0, "A") + , (6250, 0, "X") + , (6248, 3, "MAX_HEIGHT") + , (6248, 10, "MAX") + , (6248, 3, "") + , (6248, 0, "0") + , (6256, 3, "") + , (6222, 30, "") + , (6222, 0, " nexts: [SkipEntry; 0],\n") + , (6256, 0, "// ") + , (6248, 1, "") + , (6248, 0, "M") + , (6249, 0, "A") + , (6250, 0, "X") + , (6248, 3, "MAX_HEIGHT") + , (9985, 0, "S") + , (9986, 0, "k") + , (9987, 0, "i") + , (9988, 0, "p") + , (9985, 4, "SkipEntry") + , (9994, 0, ":") + , (9995, 0, ":") + , (9996, 0, "n") + , (9997, 0, "e") + , (9996, 2, "new_null()") + , (10006, 0, ";") + , (10007, 0, " ") + , (10008, 0, "M") + , (10009, 0, "A") + , (10010, 0, "X") + , (10008, 3, "MAX_HEIGHT") + , (19787, 0, "S") + , (19788, 0, "k") + , (19789, 0, "i") + , (19790, 0, "p") + , (19787, 4, "SkipEntry") + , (19796, 0, ":") + , (19797, 0, ":") + , (19798, 0, "new_null()") + , (19808, 0, ";") + , (19809, 0, " ") + , (19810, 0, "M") + , (19811, 0, "X") + , (19811, 1, "") + , (19811, 0, "A") + , (19812, 0, "X") + , (19810, 3, "MAX_HEIGHT") + , (9157, 0, "// ") + , (9075, 0, "// ") + , (9058, 0, "// ") + , (9049, 0, "\n ") + , (9058, 0, "s") + , (9059, 0, "e") + , (9060, 0, "l") + , (9061, 0, "f") + , (9062, 0, ".") + , (9063, 0, "n") + , (9064, 0, "e") + , (9065, 0, "x") + , (9063, 3, "nexts()") + , (9070, 0, "[") + , (9071, 0, ".") + , (9072, 0, ".") + , (9073, 0, "]") + , (9073, 1, "") + , (9072, 1, "") + , (9071, 1, "") + , (9070, 1, "") + , (9069, 1, "") + , (9068, 1, "") + , (9068, 0, "[") + , (9069, 0, ".") + , (9070, 0, ".") + , (9071, 0, "]") + , (9058, 0, "#") + , (9058, 1, "") + , (9058, 0, "$") + , (9058, 1, "") + , (9058, 0, "&") + , (9367, 0, "// ") + , (9277, 0, "// ") + , (9260, 0, "// ") + , (9251, 0, "\n ") + , (9260, 0, "&self.nexts[..]") + , (9261, 0, "m") + , (9262, 0, "u") + , (9263, 0, "t") + , (9264, 0, " ") + , (9264, 1, "") + , (9261, 3, "") + , (9260, 15, "") + , (9251, 9, "") + , (9373, 3, "") + , (9280, 3, "") + , (9260, 3, "") + , (9058, 1, "") + , (9058, 0, "$") + , (9058, 1, "") + , (9058, 0, "#") + , (9058, 1, "") + , (9068, 4, "") + , (9068, 0, "()") + , (9070, 0, "[..]") + , (9070, 4, "") + , (9063, 7, "nex") + , (9049, 17, "") + , (9163, 3, "") + , (9078, 3, "") + , (9058, 3, "") + , (19810, 10, "MAX") + , (19811, 2, "") + , (19811, 0, "X") + , (19809, 3, "") + , (19808, 1, "") + , (19798, 10, "") + , (19796, 2, "") + , (19787, 9, "Skip") + , (19787, 4, "") + , (10008, 10, "MAX") + , (10007, 4, "") + , (10006, 1, "") + , (9996, 10, "ne") + , (9994, 4, "") + , (9985, 9, "Skip") + , (9985, 4, "") + , (6248, 10, "MAX") + , (6248, 3, "") + , (6248, 0, "0") + , (6256, 3, "") + , (6222, 30, "") + , (39512, 1, "") + , (39512, 0, "_") + , (18382, 0, "u") + , (18383, 0, "n") + , (18384, 0, "c") + , (18385, 0, "k") + , (18386, 0, "e") + , (18387, 0, "d") + , (18388, 0, "l") + , (18382, 7, "s") + , (18383, 0, "t") + , (18384, 0, "d") + , (18385, 0, ":") + , (18386, 0, ":") + , (18387, 0, "i") + , (18388, 0, "n") + , (18389, 0, "t") + , (18390, 0, "r") + , (18387, 4, "intrinsics") + , (18397, 0, ":") + , (18398, 0, ":") + , (18399, 0, "u") + , (18400, 0, "n") + , (18401, 0, "c") + , (18402, 0, "h") + , (18399, 4, "unchecked_sub(x: T, y: T)") + , (18413, 12, "") + , (18431, 1, "") + , (18430, 1, "") + , (18430, 0, ",") + , (18382, 30, "u") + , (18383, 0, "s") + , (18384, 0, "i") + , (18385, 0, "z") + , (18386, 0, "e") + , (18387, 0, ":") + , (18388, 0, ":") + , (18382, 7, "") + , (39511, 1, "") + , (18401, 0, " -") + , (18400, 1, "") + , (52842, 0, "\n ") + , (52847, 0, "\n ") + , (52843, 4, "") + , ( 52848 + , 0 + , "pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy" + ) + , (52864, 0, "_") + , (52865, 0, "s") + , (52866, 0, "l") + , (52867, 0, "i") + , (52868, 0, "c") + , (52869, 0, "e") + , (52943, 0, " ") + , (52944, 0, " ") + , (52944, 1, "") + , (52944, 0, "{") + , (52945, 0, "\n ") + , (52954, 0, "\n ") + , (52946, 8, "") + , (52947, 8, " }") + , (52946, 0, " ") + , (52946, 8, "") + , (51361, 0, "<") + , (51362, 0, "I") + , (51363, 0, ">") + , (51406, 10, "I") + , (51428, 0, ",") + , (51429, 0, " ") + , (51430, 0, " I: ExactSizeIterator") + , (51415, 16, "") + , (52397, 24, "c") + , (51723, 24, "c") + , (52375, 0, "o") + , (51724, 0, "o") + , (52377, 0, "n") + , (51725, 0, "n") + , (52379, 0, "t") + , (51726, 0, "t") + , (52381, 0, "e") + , (51727, 0, "e") + , (52383, 0, "n") + , (51728, 0, "n") + , (52385, 0, "t") + , (51729, 0, "t") + , (52387, 0, "s") + , (51730, 0, "s") + , (52381, 8, "contents.iter().copied()") + , (51723, 8, "contents.iter().copied()") + , (51415, 0, "C::Item: Copy, ") + , (51415, 16, "") + , (52397, 24, "contents") + , (51723, 24, "contents") + , (52929, 0, " ") + , (52937, 0, "s") + , (52938, 0, "e") + , (52939, 0, "l") + , (52940, 0, "f") + , (52941, 0, ".") + , (52942, 0, "i") + , (52943, 0, "n") + , (52944, 0, "s") + , (52945, 0, "e") + , (52946, 0, "r") + , (52947, 0, "t") + , ( 52942 + , 6 + , "insert_at_iter(cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)" + ) + , (52942, 77, "insert") + , (52948, 0, "_") + , (52949, 0, "a") + , (52950, 0, "t") + , (52951, 0, "(") + , (52952, 0, "u") + , (52953, 0, "s") + , (52954, 0, "e") + , (52955, 0, "r") + , (52956, 0, "p") + , (52957, 0, "o") + , (52958, 0, "s") + , (52959, 0, ",") + , (52960, 0, " ") + , (52864, 4, "") + , (52957, 0, "c") + , (52958, 0, "o") + , (52959, 0, "n") + , (52960, 0, "t") + , (52961, 0, "e") + , (52962, 0, "n") + , (52963, 0, "t") + , (52964, 0, "s") + , (52965, 0, ".") + , (52966, 0, "i") + , (52967, 0, "t") + , (52968, 0, "e") + , (52969, 0, "r") + , (52970, 0, "(") + , (52971, 0, ")") + , (52972, 0, ".") + , (52973, 0, "c") + , (52974, 0, "o") + , (52975, 0, "p") + , (52976, 0, "i") + , (52977, 0, "e") + , (52978, 0, "d") + , (52979, 0, "(") + , (52980, 0, ")") + , (52981, 0, ")") + , (52982, 0, ";") + , (52982, 1, "") + , (20503, 0, ")") + , (20504, 0, "s") + , (20505, 0, "l") + , (20506, 0, "i") + , (20506, 1, "") + , (20505, 1, "") + , (20504, 1, "") + , (20503, 1, "") + , (20502, 1, "") + , (20502, 0, "_") + , (20502, 1, "") + , (20502, 0, "t") + , (20503, 0, "_") + , (20504, 0, "s") + , (20505, 0, "l") + , (20506, 0, "i") + , (20507, 0, "c") + , (20508, 0, "e") + , (51402, 0, "n") + , (51402, 1, "") + , (51402, 0, "m") + , (51403, 0, "u") + , (51404, 0, "t") + , (51405, 0, " ") + , (51504, 0, "\n ") + , (51513, 0, "l") + , (51514, 0, "e") + , (51515, 0, "t") + , (51516, 0, " ") + , (51517, 0, "n") + , (51518, 0, "u") + , (51519, 0, "m") + , (51520, 0, "_") + , (51521, 0, "i") + , (51522, 0, "n") + , (51523, 0, "s") + , (51524, 0, "e") + , (51525, 0, "r") + , (51526, 0, "t") + , (51517, 10, "num_inserted_items") + , (51535, 0, " ") + , (51536, 0, "=") + , (51537, 0, " ") + , (51538, 0, "c") + , (51539, 0, "o") + , (51540, 0, "n") + , (51541, 0, "t") + , (51542, 0, "e") + , (51543, 0, "n") + , (51544, 0, "t") + , (51545, 0, "s") + , (51546, 0, ".") + , (51547, 0, "l") + , (51548, 0, "e") + , (51549, 0, "n") + , (51550, 0, "(") + , (51551, 0, ")") + , (51552, 0, ";") + , (52742, 14, "n") + , (51875, 14, "n") + , (52730, 0, "u") + , (51876, 0, "u") + , (52732, 0, "m") + , (51877, 0, "m") + , (52734, 0, "_") + , (51878, 0, "_") + , (52732, 4, "num_inserted_items") + , (51875, 4, "num_inserted_items") + , (52746, 18, "num_") + , (51875, 18, "num_") + , (52732, 4, "contents.len()") + , (51875, 4, "contents.len()") + , (52742, 14, "num_") + , (51875, 14, "num_") + , (52732, 4, "num_inserted_items") + , (51875, 4, "num_inserted_items") + , (10256, 0, "\n ") + , (10265, 0, "p") + , (10266, 0, "t") + , (10267, 0, "r") + , (10268, 0, ":") + , (10269, 0, ":") + , (10270, 0, "d") + , (10271, 0, "r") + , (10272, 0, "o") + , (10273, 0, "p") + , (10274, 0, "_") + , (10270, 5, "drop_in_place(to_drop: *mut T)") + , (10284, 15, "p") + , (10286, 0, ";") + , (10287, 0, " ") + , (10288, 0, "/") + , (10289, 0, "/") + , (10290, 0, " ") + , (10291, 0, "W") + , (10292, 0, "e") + , (10293, 0, "'") + , (10294, 0, "l") + , (10295, 0, "l") + , (10296, 0, " ") + , (10297, 0, "u") + , (10298, 0, "s") + , (10299, 0, "e") + , (10300, 0, " ") + , (10291, 10, "") + , (10291, 0, "W") + , (10292, 0, "e") + , (10293, 0, " ") + , (10294, 0, "c") + , (10295, 0, "o") + , (10296, 0, "u") + , (10297, 0, "l") + , (10298, 0, "d") + , (10299, 0, " ") + , (10300, 0, "j") + , (10301, 0, "u") + , (10302, 0, "s") + , (10303, 0, "t") + , (10304, 0, " ") + , (10305, 0, "i") + , (10306, 0, "m") + , (10307, 0, "p") + , (10308, 0, "e") + , (10309, 0, "l") + , (10310, 0, "e") + , (10311, 0, "m") + , (10312, 0, "n") + , (10313, 0, "t") + , (10305, 9, "i") + , (10306, 0, "m") + , (10307, 0, "p") + , (10308, 0, "l") + , (10309, 0, "e") + , (10310, 0, "m") + , (10311, 0, "e") + , (10312, 0, "n") + , (10313, 0, "t") + , (10314, 0, " ") + , (10315, 0, "d") + , (10316, 0, "r") + , (10317, 0, "o") + , (10318, 0, "p") + , (10319, 0, " ") + , (10320, 0, "h") + , (10321, 0, "e") + , (10322, 0, "r") + , (10323, 0, "e") + , (10324, 0, ",") + , (10325, 0, " ") + , (10326, 0, "b") + , (10327, 0, "u") + , (10328, 0, "t") + , (10329, 0, " ") + , (10330, 0, "t") + , (10331, 0, "h") + , (10332, 0, "i") + , (10333, 0, "s") + , (10334, 0, " ") + , (10335, 0, "i") + , (10336, 0, " ") + , (10336, 1, "") + , (10336, 0, "s") + , (10337, 0, " ") + , (10338, 0, "c") + , (10339, 0, "l") + , (10340, 0, "e") + , (10341, 0, "a") + , (10342, 0, "n") + , (10343, 0, "e") + , (10344, 0, "r") + , (10345, 0, ".") + , (11087, 0, "\n") + , (11088, 0, "\n") + , (11089, 0, "i") + , (11090, 0, "m") + , (11091, 0, "p") + , (11092, 0, "l") + , (11093, 0, " ") + , (11093, 1, "") + , (11093, 0, "<") + , (11094, 0, "C") + , (11095, 0, ":") + , (11096, 0, " ") + , (11097, 0, "L") + , (11098, 0, "i") + , (11099, 0, "s") + , (11100, 0, "t") + , (11097, 4, "ListConfig") + , (11107, 0, ">") + , (11108, 0, " ") + , (11109, 0, "D") + , (11110, 0, "r") + , (11111, 0, "o") + , (11112, 0, "p") + , (11113, 0, " ") + , (11114, 0, "f") + , (11115, 0, "o") + , (11116, 0, "r") + , (11117, 0, " ") + , (11118, 0, "N") + , (11119, 0, "o") + , (11120, 0, "d") + , (11121, 0, "e") + , (11122, 0, "<") + , (11123, 0, "C") + , (11124, 0, ">") + , (11125, 0, " ") + , (11126, 0, "{") + , (11127, 0, "\n ") + , (11132, 0, "\n ") + , (11128, 4, "") + , (11129, 4, "}") + , (11128, 0, " ") + , (11132, 0, "f") + , (11133, 0, "n") + , (11134, 0, " ") + , (11135, 0, "D") + , (11135, 1, "") + , (11135, 0, "d") + , (11136, 0, "r") + , (11137, 0, "o") + , (11138, 0, "p") + , (11139, 0, "(") + , (11140, 0, "&") + , (11141, 0, "m") + , (11142, 0, "u") + , (11143, 0, "t") + , (11144, 0, " ") + , (11145, 0, "s") + , (11146, 0, "e") + , (11147, 0, "l") + , (11148, 0, "f") + , (11149, 0, ")") + , (11150, 0, " ") + , (11151, 0, "{") + , (11152, 0, "\n ") + , (11153, 8, " }") + , (11152, 0, "\n ") + , (11161, 0, "self.nexts.as_ptr(), self.height as usize") + , (11161, 41, "") + , (11161, 0, "s") + , (11162, 0, "e") + , (11163, 0, "l") + , (11164, 0, "f") + , (11165, 0, ".") + , (11166, 0, "i") + , (11167, 0, "t") + , (11168, 0, "e") + , (11169, 0, "m") + , (11170, 0, "s") + , (11152, 0, "\n ") + , (11161, 0, "f") + , (11162, 0, "o") + , (11163, 0, "r") + , (11164, 0, " ") + , (11165, 0, "l") + , (11166, 0, "e") + , (11167, 0, "t") + , (11168, 0, " ") + , (11168, 1, "") + , (11167, 1, "") + , (11166, 1, "") + , (11165, 1, "") + , (11165, 0, "i") + , (11166, 0, " ") + , (11167, 0, "i") + , (11168, 0, "n") + , (11169, 0, " ") + , (11170, 0, "0") + , (11171, 0, ".") + , (11172, 0, ".") + , (11173, 0, "s") + , (11174, 0, "e") + , (11175, 0, "l") + , (11176, 0, "f") + , (11177, 0, ".") + , (11178, 0, "l") + , (11179, 0, "e") + , (11179, 1, "") + , (11178, 1, "") + , (11178, 0, "n") + , (11179, 0, "u") + , (11180, 0, "m") + , (11178, 3, "num_items") + , (11187, 0, " ") + , (11187, 1, "") + , (11187, 0, " ") + , (11188, 0, "{") + , (11198, 0, " ") + , (11212, 0, "\n ") + , (11213, 12, " }") + , (11212, 0, "[") + , (11213, 0, "i") + , (11214, 0, "]") + , (11215, 0, ".") + , (11152, 0, "\n ") + , (11161, 0, "i") + , (11162, 0, "f") + , (11163, 0, " ") + , (11164, 0, "n") + , (11165, 0, "e") + , (11166, 0, "e") + , (11164, 3, "n") + , (11165, 0, "e") + , (11165, 1, "") + , (11164, 1, "") + , (11164, 0, "m") + , (11165, 0, "e") + , (11166, 0, "m") + , (11167, 0, ":") + , (11168, 0, ":") + , (11169, 0, "n") + , (11170, 0, "e") + , (11171, 0, "e") + , (11172, 0, "d") + , (11169, 4, "needs_drop()") + , (11179, 0, "<") + , (11180, 0, "C") + , (11181, 0, ":") + , (11182, 0, ":") + , (11183, 0, "I") + , (11184, 0, "t") + , (11185, 0, "e") + , (11186, 0, "m") + , (11187, 0, ">") + , (11179, 0, ":") + , (11180, 0, ":") + , (11192, 0, " ") + , (11193, 0, "{") + , (11268, 0, "\n ") + , (11269, 8, " }") + , (11269, 4, " ") + , (11259, 8, " ") + , (11232, 12, " ") + , (11195, 8, " ") + , (11265, 1, "") + , (11252, 0, " ") + , (11252, 0, "p") + , (11253, 0, "t") + , (11254, 0, "r") + , (11255, 0, ":") + , (11256, 0, ":") + , (11257, 0, "drop_in_place(to_drop: *mut T)") + , (11271, 15, "") + , (11271, 1, "") + , (11271, 1, "") + , (11284, 0, ")") + , (11271, 0, "&") + , (11285, 0, " ") + , (11286, 0, "a") + , (11287, 0, "s") + , (11288, 0, " ") + , (11289, 0, "*") + , (11290, 0, "m") + , (11291, 0, "u") + , (11292, 0, "t") + , (11293, 0, " ") + , (11294, 0, "_") + , (11296, 0, ";") + , (11272, 0, "m") + , (11273, 0, "u") + , (11274, 0, "t") + , (11275, 0, " ") + , (11271, 5, "") + , (11284, 0, ".") + , (11285, 0, "a") + , (11286, 0, "s") + , (11287, 0, "_") + , (11288, 0, "m") + , (11289, 0, "u") + , (11285, 5, "as_mut_ptr") + , (11295, 0, "(") + , (11296, 0, ")") + , (11297, 9, "") + , (11297, 1, "") + , (11153, 41, "") + , (11152, 1, "") + , (11272, 9, "") + , (11271, 1, "") + , (11258, 12, " ") + , (11194, 16, " ") + , (11153, 12, " ") + , (11187, 0, " ") + , (11188, 0, "a") + , (11189, 0, "s") + , (11190, 0, " ") + , (11191, 0, "u") + , (11192, 0, "s") + , (11193, 0, "i") + , (11194, 0, "z") + , (11195, 0, "e") + , (11211, 0, "u") + , (11212, 0, "n") + , (11213, 0, "s") + , (11214, 0, "a") + , (11215, 0, "f") + , (11216, 0, "e") + , (11217, 0, " ") + , (11218, 0, "{") + , (11219, 0, " ") + , (11267, 0, " ") + , (11268, 0, "}") + , (11198, 0, "\n ") + , (11211, 0, "/") + , (11212, 0, "/") + , (11213, 0, " ") + , (11214, 0, "C") + , (11215, 0, "o") + , (11216, 0, "u") + , (11217, 0, "l") + , (11218, 0, "d") + , (11219, 0, " ") + , (11220, 0, "i") + , (11221, 0, "n") + , (11222, 0, "s") + , (11223, 0, "t") + , (11224, 0, "e") + , (11225, 0, "a") + , (11226, 0, "d") + , (11227, 0, " ") + , (11228, 0, "c") + , (11229, 0, "a") + , (11230, 0, "l") + , (11231, 0, "l") + , (11232, 0, " ") + , (11233, 0, "a") + , (11234, 0, "s") + , (11235, 0, "s") + , (11236, 0, "u") + , (11237, 0, "m") + , (11238, 0, "e") + , (11239, 0, "_") + , (11240, 0, "i") + , (11241, 0, "n") + , (11242, 0, "i") + , (11243, 0, "t") + , (11244, 0, "(") + , (11245, 0, ")") + , (11246, 0, " ") + , (11247, 0, "o") + , (11248, 0, "n") + , (11249, 0, " ") + , (11250, 0, "e") + , (11251, 0, "a") + , (11252, 0, "c") + , (11253, 0, "h") + , (11254, 0, " ") + , (11255, 0, "i") + , (11256, 0, "t") + , (11257, 0, "e") + , (11258, 0, "m") + , (11259, 0, " ") + , (11260, 0, "b") + , (11261, 0, "u") + , (11262, 0, "t") + , (11263, 0, " ") + , (11264, 0, "I") + , (11265, 0, " ") + , (11266, 0, "t") + , (11267, 0, "h") + , (11268, 0, "i") + , (11269, 0, "n") + , (11270, 0, "k") + , (11271, 0, " ") + , (11272, 0, "t") + , (11273, 0, "h") + , (11274, 0, "i") + , (11275, 0, "s") + , (11276, 0, " ") + , (11277, 0, "i") + , (11278, 0, "s") + , (11279, 0, " ") + , (11264, 16, "t") + , (11265, 0, "h") + , (11266, 0, "i") + , (11267, 0, "s") + , (11268, 0, " ") + , (11269, 0, "i") + , (11270, 0, "s") + , (11271, 0, " ") + , (11272, 0, "f") + , (11273, 0, "r") + , (11274, 0, "i") + , (11275, 0, "e") + , (11276, 0, "n") + , (11277, 0, "d") + , (11278, 0, "l") + , (11279, 0, "i") + , (11280, 0, "e") + , (11281, 0, "r") + , (11282, 0, " ") + , (11283, 0, "t") + , (11284, 0, "o") + , (11285, 0, " ") + , (11286, 0, "t") + , (11287, 0, "h") + , (11288, 0, "e") + , (11289, 0, " ") + , (11290, 0, "o") + , (11291, 0, "p") + , (11292, 0, "t") + , (11293, 0, "i") + , (11294, 0, "m") + , (11295, 0, "i") + , (11296, 0, "z") + , (11297, 0, "e") + , (11298, 0, "r") + , (11299, 0, ".") + , ( 11199 + , 101 + , " // Could instead call assume_init() on each item but this is\n // friendlier to the optimizer." + ) + , (51130, 20, " where I: ExactSizeIterator") + , (51119, 10, "I") + , (51041, 0, "<") + , (51042, 0, "T") + , (51043, 0, ">") + , (51043, 1, "") + , (51042, 1, "") + , (51042, 0, "I") + , (51043, 0, ">") + , (51042, 2, "") + , (51042, 0, "T>") + , (51041, 3, "") + , (51119, 1, "&[C::Item]") + , (51130, 41, " where C::Item: Copy") + , ( 51152 + , 0 + , "\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {" + ) + , (51152, 133, "") + , ( 51152 + , 0 + , "\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {" + ) + , (51041, 0, "_") + , (51042, 0, "s") + , (51043, 0, "l") + , (51044, 0, "i") + , (51045, 0, "c") + , (51046, 0, "e") + , (51158, 0, "\n ") + , (51159, 8, " }") + , (51019, 145, "") + , (51752, 0, "\n ") + , (51757, 0, "\n ") + , (51753, 4, "") + , ( 51758 + , 0 + , "\n pub fn replace_at_slice(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n }" + ) + , (51754, 4, "") + , (51753, 1, "") + , (51130, 20, " where I: ExactSizeIterator") + , (51040, 0, "<") + , (51041, 1, "") + , (51040, 1, "") + , (51040, 0, "t") + , (51041, 0, "<") + , (51042, 0, "I") + , (51043, 0, ">") + , (51122, 10, "I") + , (51461, 16, "") + , (51104, 0, "m") + , (51105, 0, "u") + , (51106, 0, "t") + , (51107, 0, " ") + , (51377, 0, "\n ") + , (51386, 0, "l") + , (51387, 0, "e") + , (51388, 0, "t") + , (51389, 0, " ") + , (51390, 0, "n") + , (51391, 0, "u") + , (51392, 0, "m") + , (51393, 0, "_") + , (51394, 0, "i") + , (51395, 0, "n") + , (51396, 0, "s") + , (51397, 0, "e") + , (51398, 0, "r") + , (51399, 0, "t") + , (51400, 0, "e") + , (51401, 0, "d") + , (51402, 0, "_") + , (51403, 0, "i") + , (51404, 0, "t") + , (51405, 0, "e") + , (51390, 16, "num_inserted_items") + , (51408, 0, " ") + , (51409, 0, "=") + , (51410, 0, " ") + , (51411, 0, "i") + , (51412, 0, "n") + , (51413, 0, "s") + , (51414, 0, "e") + , (51415, 0, "r") + , (51416, 0, "t") + , (51411, 6, "inserted_content") + , (51427, 0, ".") + , (51428, 0, "l") + , (51429, 0, "e") + , (51430, 0, "n") + , (51431, 0, "(") + , (51432, 0, ")") + , (51433, 0, ";") + , (51680, 22, "n") + , (51681, 0, "u") + , (51682, 0, "m") + , (51683, 0, "_") + , (51680, 4, "num_inserted_items") + , (51544, 0, "\n ") + , (51553, 0, "\n ") + , (51545, 8, "") + , ( 51554 + , 0 + , " if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n" + ) + , (51546, 16, " ") + , (51545, 208, "") + , (51544, 1, "") + , (51948, 0, "\n ") + , (51957, 0, "s") + , (51958, 0, "e") + , (51959, 0, "l") + , (51960, 0, "f") + , (51961, 0, ".") + , (51962, 0, "r") + , (51963, 0, "e") + , (51964, 0, "p") + , (51965, 0, "l") + , ( 51962 + , 4 + , "replace_at(mut start_userpos: usize, removed_items: usize, mut inserted_content: I)" + ) + , (51973, 24, "s") + , (51974, 0, "t") + , (51975, 0, "a") + , (51976, 0, "r") + , (51977, 0, "t") + , (51978, 0, "_") + , (51979, 0, "u") + , (51980, 0, "s") + , (51981, 0, "e") + , (51982, 0, "r") + , (51983, 0, "p") + , (51984, 0, "o") + , (51985, 0, "s") + , (51988, 20, "r") + , (51989, 0, "e") + , (51990, 0, "m") + , (51991, 0, "o") + , (51992, 0, "v") + , (51993, 0, "e") + , (51994, 0, "d") + , (51995, 0, "_") + , (51996, 0, "i") + , (51997, 0, "t") + , (51998, 0, "e") + , (51999, 0, "m") + , (52000, 0, "s") + , (52003, 23, "i") + , (52004, 0, "n") + , (52005, 0, "s") + , (52006, 0, "e") + , (52007, 0, "r") + , (52008, 0, "t") + , (52009, 0, "e") + , (52010, 0, "d") + , (52011, 0, "_") + , (52012, 0, "c") + , (52013, 0, "o") + , (52014, 0, "n") + , (52015, 0, "t") + , (52016, 0, "e") + , (52017, 0, "n") + , (52018, 0, "t") + , (52019, 0, ".") + , (52020, 0, "s") + , (52021, 0, "l") + , (52022, 0, "i") + , (52023, 0, "c") + , (52020, 4, "i") + , (52021, 0, "t") + , (52022, 0, "e") + , (52023, 0, "r") + , (52024, 0, "(") + , (52025, 1, ")") + , (52026, 0, ".") + , (52027, 0, "c") + , (52028, 0, "o") + , (52029, 0, "p") + , (52030, 0, "i") + , (52031, 0, "e") + , (52032, 0, "d") + , (52033, 0, "(") + , (52034, 0, ")") + , (52035, 0, ")") + , (52036, 0, ";") + , (51849, 3, "") + , (51849, 1, "") + , (51849, 0, "mut ") + , (52020, 17, "slic)") + , (52003, 21, "mut inserted_content: I") + , (51988, 13, "removed_items: usize") + , (51973, 13, "mut start_userpos: usize") + , (51962, 83, "repl") + , (51948, 18, "") + , (51544, 0, "\n") + , ( 51545 + , 0 + , "\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n" + ) + , (51546, 8, " ") + , (51554, 207, "") + , (51545, 9, "") + , (51545, 0, " ") + , (51544, 9, "") + , (51680, 18, "num_") + , (51680, 4, "inserted_content.len()") + , (51427, 7, "") + , (51411, 16, "insert") + , (51410, 7, "") + , (51408, 2, "") + , (51390, 18, "num_inserted_ite") + , (51389, 17, "") + , (51377, 12, "") + , (51107, 1, "") + , (51104, 3, "") + , (51461, 0, ".iter().copied()") + , (51122, 1, "&[C::Item]") + , (51040, 4, "") + , (51040, 0, "") + , (51040, 0, "<") + , (51040, 2, "") + , (51040, 0, "t") + , (51122, 10, "I") + , (51461, 16, "") + , (51104, 0, "mut") + , (51107, 0, " ") + , (51377, 0, "\n let") + , (51389, 0, " num_inserted_ite") + , (51390, 16, "num_inserted_items") + , (51408, 0, " =") + , (51410, 0, " insert") + , (51411, 6, "inserted_content") + , (51427, 0, ".len();") + , (51680, 22, "num_") + , (51680, 4, "num_inserted_items") + , (51544, 0, "\n ") + , (51553, 0, "\n ") + , (51545, 8, "") + , ( 51554 + , 0 + , " if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n" + ) + , (51546, 16, " ") + , (51545, 208, "") + , (51544, 1, "") + , (51948, 0, "\n self.repl") + , ( 51962 + , 4 + , "replace_at(mut start_userpos: usize, removed_items: usize, mut inserted_content: I)" + ) + , (52021, 23, "inserted_content.slic") + , (51999, 20, "removed_items") + , (51973, 24, "start_userpos") + , (52020, 5, "iter().copied());") + , (51849, 4, "") + , (51849, 0, "mut ") + , (51849, 4, "") + , (10265, 0, "// ") + , (10265, 3, "") + , ( 10257 + , 43487 + , " dealloc(p as *mut u8, Self::layout_with_height((*p).height));\n }\n\n fn content_slice(&self) -> &[C::Item] {\n let slice = &self.items[..self.num_items as usize];\n unsafe { maybeinit_slice_get_ref(slice) }\n }\n\n // The height is at least 1, so this is always valid.\n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {\n unsafe { &*self.nexts.as_ptr() }\n }\n\n fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {\n unsafe { &mut *self.nexts.as_mut_ptr() }\n }\n\n // TODO: Rename to len() ?\n fn get_userlen(&self) -> usize {\n self.first_skip_entry().skip_usersize\n }\n \n fn get_next_ptr(&self) -> *mut Node {\n self.first_skip_entry().node\n }\n}\n\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone)]\npub struct Cursor {\n // TODO: Add a phantom lifetime reference to the skip list root for safety.\n\n\n /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///\n /// This field isn't strictly necessary - earlier versions tacked this on to\n /// the last item in entries... I'm still not sure the cleanest way to do\n /// this.\n userpos: usize,\n\n /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used to resolve that ambiguity.\n local_index: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n}\n\nimpl Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n self.local_index = 0;\n\n next\n }\n }\n\n fn is_at_node_end(&self) -> bool {\n self.local_index == unsafe { (*self.here_ptr()).num_items } as usize\n }\n\n fn advance_item(&mut self, height: u8) {\n if self.is_at_node_end() { self.advance_node(); }\n let usersize = C::get_usersize(unsafe { self.current_item() });\n\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }\n self.userpos += usersize;\n self.local_index += 1;\n }\n\n fn advance_by_items(&mut self, num: usize, height: u8) {\n for _ in 0..num { self.advance_item(height); }\n }\n\n fn move_to_item_start(&mut self, height: u8, offset: usize) {\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize -= offset;\n }\n self.userpos -= offset;\n }\n\n unsafe fn current_item(&mut self) -> &C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &*(node.items[self.local_index].as_ptr())\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice.\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos\n || self.local_index != other.local_index {return false; }\n\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl fmt::Debug for Cursor {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_struct(\"Cursor\")\n .field(\"userpos\", &self.userpos)\n .field(\"local_index\", &self.local_index)\n .finish()\n }\n}\n\n// None of the rust builtins give me what I want, which is a copy-free iterator\n// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.\nstruct UninitOwnedIter<'a, C: ListConfig> {\n // Based on the core slice IterMut implementation.\n ptr: NonNull,\n end: *mut C::Item,\n _marker: PhantomData<&'a SkipList>\n}\n\nimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {\n /// Make a slice we can iterate from and steal data from without dropping\n /// content. This is unsafe:\n ///\n /// - If the iterator isn't fully drained then remaining items will be\n /// forgotten (they are not dropped).\n /// - The slice passed in here must be initialized or undefined behaviour\n /// will hit us.\n ///\n /// After iterating, the contents are uninit memory.\n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {\n let ptr = slice.as_ptr() as *mut C::Item; // Safe.\n let end = ptr.add(slice.len());\n\n UninitOwnedIter {\n ptr: NonNull::new_unchecked(ptr),\n end,\n _marker: PhantomData\n }\n }\n}\n\nimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {\n type Item = C::Item;\n\n fn next(&mut self) -> Option {\n if self.ptr.as_ptr() == self.end {\n None\n } else {\n let ptr = self.ptr;\n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };\n Some(unsafe { ptr.as_ptr().read() })\n }\n }\n\n fn size_hint(&self) -> (usize, Option) {\n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();\n (size, Some(size))\n }\n}\n\n// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.\n#[inline(always)]\nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {\n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }\n}\n\n// TODO: Stolen from MaybeUninit::slice_get_ref. Replace when available.\n#[inline(always)]\nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n &*(slice as *const [MaybeUninit] as *const [T])\n}\n\n\nimpl SkipList {\n pub fn new() -> Self {\n SkipList:: {\n num_items: 0,\n num_usercount: 0,\n rng: None,\n head: Node {\n items: uninit_items_array(),\n num_items: 0,\n height: 1, // Stores max height of list nodes\n parent: ptr::null_mut(),\n nexts: [],\n },\n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],\n }\n }\n\n pub fn init_rng_from_seed(&mut self, seed: u64) {\n self.rng = Some(SmallRng::seed_from_u64(seed));\n }\n\n fn get_rng(&mut self) -> &mut SmallRng {\n // I'm sure there's a nicer way to implement this.\n if self.rng.is_none() {\n // We'll use a stable RNG in debug mode so the tests are stable.\n if cfg!(debug_assertions) {\n self.init_rng_from_seed(123);\n } else {\n self.rng = Some(SmallRng::from_entropy());\n }\n }\n self.rng.as_mut().unwrap()\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n let mut rope = Self::new();\n rope.insert_at(0, s);\n rope\n }\n\n pub fn get_userlen(&self) -> usize {\n self.num_usercount\n }\n\n fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn len_items(&self) -> usize {\n self.num_items as usize\n }\n\n fn heads_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())\n }\n }\n\n fn is_head(&self, node: *const Node) -> bool {\n node as *const _ == &self.head as *const _\n }\n\n /// Walk the list and validate internal constraints. This is used for\n /// testing the structure itself, and should generally not be called by\n /// users.\n pub fn check(&self) {\n // #[cfg(test)]\n {\n // self.print();\n assert!(self.head.height >= 1);\n assert!(self.head.height <= MAX_HEIGHT_U8);\n\n let head_ptr = &self.head as *const _ as *mut _;\n // let skip_over = self.get_top_entry();\n // println!(\"Skip over skip chars {}, num bytes {}\", skip_over.skip_items, self.num_bytes);\n\n let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];\n\n let mut iter = [SkipEntry {\n // Bleh.\n node: head_ptr,\n // The skips will store the total distance travelled since the\n // start of this traversal at each height. All the entries above\n // head.height are ignored though.\n skip_usersize: 0\n }; MAX_HEIGHT];\n\n let mut num_items = 0;\n let mut num_usercount = 0;\n\n for (_i, n) in self.iter().enumerate() {\n // println!(\"visiting {:?}\", n.as_str());\n if !self.is_head(n) { assert!(n.num_items > 0); }\n assert!(n.height <= MAX_HEIGHT_U8);\n assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n\n // Make sure the number of items matches the count\n let local_count = C::userlen_of_slice(n.content_slice());\n assert_eq!(local_count, n.get_userlen());\n\n let expect_parent = if self.is_head(n) {\n ptr::null() // The head's parent is null\n } else if n.height == self.head.height {\n &self.head as *const _ // Max height nodes point back to head\n } else {\n prev[n.height as usize]\n };\n\n // println!(\"visiting {} {:?}\", i, n as *const _);\n // dbg!(n as *const _);\n // dbg!((n as *const _, (*n).height));\n // dbg!(n.parent);\n // dbg!(&self.head as *const _);\n\n assert_eq!(n.parent as *const _, expect_parent, \"invalid parent\");\n \n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {\n assert_eq!(entry.node as *const _, n as *const _);\n assert_eq!(entry.skip_usersize, num_usercount);\n\n // println!(\"replacing entry {:?} with {:?}\", entry, n.nexts()[i].node);\n prev[i] = n;\n entry.node = n.nexts()[i].node;\n entry.skip_usersize += n.nexts()[i].skip_usersize;\n }\n\n num_items += n.num_items as usize;\n num_usercount += n.get_userlen();\n\n // Check the value returned by the iterator functions matches.\n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);\n assert_eq!(local_offset, 0);\n\n // Dirty hack. If n has 0-sized elements at the end, the normal\n // cursor won't be at the end...\n while normal_iter.here_ptr() != n as *const _ as *mut _ {\n normal_iter.advance_node();\n }\n normal_iter.local_index = n.num_items as usize;\n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };\n assert_eq!(normal_iter, node_iter);\n }\n\n for entry in iter[0..self.head.height as usize].iter() {\n // println!(\"{:?}\", entry);\n assert!(entry.node.is_null());\n assert_eq!(entry.skip_usersize, num_usercount);\n }\n \n // println!(\"self bytes: {}, count bytes {}\", self.num_bytes, num_bytes);\n assert_eq!(self.num_items, num_items);\n assert_eq!(self.get_userlen(), num_usercount);\n }\n }\n \n \n /// Internal function for creating a cursor at a particular location in the\n /// skiplist. The returned cursor contains list of nodes which point past\n /// the specified position, as well as offsets of how far into their\n /// character lists the specified characters are.\n ///\n /// Sometimes a call to iter_at_userpos is ambiguous:\n ///\n /// - The item can contain items with zero usersize. The cursor could point\n /// to any of them.\n /// - If the location is at the end of a node, it is equally valid to return\n /// a position at the start of the next node.\n ///\n /// Because its impossible to move backwards in the list, iter_at_userpos\n /// returns the first admissible location with the specified userpos.\n /// \n /// Returns (cursor, offset into the specified item).\n ///\n /// TODO: This should be Pin<&self>.\n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {\n assert!(target_userpos <= self.get_userlen());\n\n let mut e: *const Node = &self.head;\n let mut height = self.head.height as usize - 1;\n \n let mut offset = target_userpos; // How many more items to skip\n\n // We're populating the head node pointer to simplify the case when the\n // iterator grows. We could put offset into the skip_usersize but it\n // would only be *mostly* correct, not always correct. (Since cursor\n // entries above height are not updated by insert.)\n let mut cursor = Cursor {\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n local_index: 0,\n userpos: target_userpos,\n };\n\n loop { // while height >= 0\n let en = unsafe { &*e };\n let next = en.nexts()[height];\n let skip = next.skip_usersize;\n if offset > skip {\n // Go right.\n debug_assert!(e == &self.head || en.num_items > 0);\n offset -= skip;\n e = next.node;\n assert!(!e.is_null(), \"Internal constraint violation: Reached rope end prematurely\");\n } else {\n // Record this and go down.\n cursor.entries[height] = SkipEntry {\n skip_usersize: offset,\n node: e as *mut Node, // This is pretty gross\n };\n\n if height == 0 { break; } else { height -= 1; }\n }\n };\n\n // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n\n // We've found the node. Now look for the index within the node.\n let en = unsafe { &*e };\n let mut index = 0;\n\n while offset > 0 {\n assert!(index < en.num_items as usize);\n \n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });\n if usersize > offset { break; } // We're in the middle of an item.\n offset -= usersize;\n index += 1;\n }\n cursor.local_index = index;\n\n (cursor, offset)\n }\n\n unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {\n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.\n\n let mut cursor = Cursor {\n userpos: 0, // We'll set this later.\n local_index: local_index,\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };\n\n let mut h = 0;\n loop {\n while h < (*n).height as usize {\n cursor.entries[h] = SkipEntry {\n node: n,\n skip_usersize: offset\n };\n\n h += 1;\n }\n\n let parent = (*n).parent;\n // Reached the head.\n if parent.is_null() { break; }\n\n // If we're the same height as the parent its fine.\n debug_assert!((*parent).height as usize > h\n || (self.is_head(parent) && (*parent).height as usize == h));\n\n // Walk from parent back to n, figuring out the offset.\n let mut c = parent;\n // let walk_height = (*parent).height as usize - 2;\n let walk_height = (*n).height as usize - 1;\n while c != n {\n let elem = (*c).nexts()[walk_height];\n offset += elem.skip_usersize;\n c = elem.node;\n }\n\n n = parent;\n }\n\n cursor.userpos = offset;\n cursor\n }\n\n pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n // The marker gives us a pointer into a node. Find the item.\n unsafe {\n let n = marker.ptr;\n\n let mut offset: usize = 0;\n let mut local_index = None;\n for (i, item) in (*n).content_slice().iter().enumerate() {\n if let Some(item_offset) = item.contains_item(query) {\n offset += item_offset;\n local_index = Some(i);\n break;\n } else {\n offset += C::get_usersize(item);\n }\n }\n\n let local_index = local_index.expect(\"Invalid marker - item not found in node\");\n self.iter_at_node(n, offset, local_index)\n }\n }\n\n // Internal fn to create a new node at the specified iterator filled with\n // the specified content. The passed cursor should point at the end of the\n // previous node. It will be updated to point to the end of the newly\n // inserted content.\n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {\n\n // println!(\"Insert_node_at {} len {}\", contents.len(), self.num_bytes);\n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n assert!(num_items <= NODE_NUM_ITEMS);\n debug_assert!(contents.size_hint().0 >= num_items);\n\n let new_node_ptr = Node::alloc(self.get_rng());\n let new_node = &mut *new_node_ptr;\n new_node.num_items = num_items as u8;\n\n for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {\n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.\n }\n\n let new_userlen = C::userlen_of_slice(new_node.content_slice());\n\n let new_height = new_node.height;\n let new_height_usize = new_height as usize;\n\n let mut head_height = self.head.height as usize;\n while head_height < new_height_usize {\n // This seems weird given we're about to overwrite these values\n // below. What we're doing is retroactively setting up the cursor\n // and head pointers *as if* the height had been this high all\n // along. This way we only have to populate the higher head values\n // lazily.\n let total_userlen = self.num_usercount;\n let nexts = self.heads_mut();\n nexts[head_height].skip_usersize = total_userlen;\n cursor.entries[head_height].skip_usersize = cursor.userpos;\n\n head_height += 1; // This is ugly.\n self.head.height += 1;\n }\n\n new_node.parent = if new_height_usize == MAX_HEIGHT {\n &self.head as *const _ as *mut _\n } else { cursor.entries[new_height_usize].node };\n\n for i in 0..new_height_usize {\n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];\n let new_nexts = new_node.nexts_mut();\n\n // The new node points to the successor (or null)\n new_nexts[i] = SkipEntry {\n node: prev_skip.node,\n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersize\n };\n\n // The previous node points to the new node\n *prev_skip = SkipEntry {\n node: new_node_ptr,\n skip_usersize: cursor.entries[i].skip_usersize\n };\n\n // Move the iterator to the end of the newly inserted node.\n if move_cursor {\n cursor.entries[i] = SkipEntry {\n node: new_node_ptr,\n skip_usersize: new_userlen\n };\n }\n }\n\n for i in new_height_usize..head_height {\n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n if move_cursor {\n cursor.entries[i].skip_usersize += new_userlen;\n }\n }\n\n // Update parents.\n if new_height_usize > 1 {\n\n let mut n = new_node_ptr;\n let mut skip_height = 0;\n\n loop {\n n = (*n).nexts_mut()[skip_height].node;\n if n.is_null() || (*n).height >= new_height { break; }\n \n (*n).parent = new_node_ptr;\n skip_height = usize::max(skip_height, (*n).height as usize - 1);\n }\n }\n \n self.num_items += num_items;\n self.num_usercount += new_userlen;\n if move_cursor {\n cursor.userpos += new_userlen;\n cursor.local_index = num_items;\n }\n\n notify(new_node.content_slice(), ItemMarker {\n ptr: new_node_ptr,\n _phantom: PhantomData\n });\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n // iter specifies where to insert.\n\n let mut e = cursor.here_ptr();\n\n // The insertion offset into the destination node.\n assert!(cursor.userpos <= self.num_usercount);\n assert!(cursor.local_index <= (*e).num_items as usize);\n\n // We might be able to insert the new data into the current node, depending on\n // how big it is.\n let num_inserted_items = contents.len();\n\n // Can we insert into the current node?\n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;\n\n // Can we insert into the start of the successor node?\n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {\n // We can insert into the subsequent node if:\n // - We can't insert into the current node\n // - There _is_ a next node to insert into\n // - The insert would be at the start of the next node\n // - There's room in the next node\n if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {\n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {\n cursor.advance_node();\n e = next;\n\n insert_here = true;\n }\n }\n }\n\n let item_idx = cursor.local_index;\n let e_num_items = (*e).num_items as usize; // convenience.\n\n if insert_here {\n // println!(\"insert_here {}\", contents);\n // First push the current items later in the array\n let c = &mut (*e).items;\n if item_idx < e_num_items {\n // Can't use copy_within because Item doesn't necessarily\n // implement Copy. Memmove the existing items.\n ptr::copy(\n &c[item_idx],\n &mut c[item_idx + num_inserted_items],\n (*e).num_items as usize - item_idx);\n }\n\n // Then copy in the new items. Can't memcpy from an iterator, but\n // the optimizer should make this fast.\n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];\n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {\n // Do not drop the old items - they were only moved.\n slot.as_mut_ptr().write(item);\n }\n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);\n\n (*e).num_items += num_inserted_items as u8;\n self.num_items += num_inserted_items;\n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);\n self.num_usercount += num_inserted_usercount;\n\n // .... aaaand update all the offset amounts.\n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);\n\n // Usually the cursor will be discarded after one change, but for\n // consistency of compound edits we'll update the cursor to point to\n // the end of the new content.\n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {\n entry.skip_usersize += num_inserted_usercount;\n }\n cursor.userpos += num_inserted_usercount;\n cursor.local_index += num_inserted_items;\n\n notify(dest_content_slice, ItemMarker {\n ptr: e,\n _phantom: PhantomData\n });\n } else {\n // There isn't room. We'll need to add at least one new node to the\n // list. We could be a bit more careful here and copy as much as\n // possible into the current node - that would decrease the number\n // of new nodes in some cases, but I don't think the performance\n // difference will be large enough to justify the complexity.\n\n // If we're not at the end of the current node, we'll need to remove\n // the end of the current node's data and reinsert it later.\n let num_end_items = e_num_items - item_idx;\n\n let (end_items, end_usercount) = if num_end_items > 0 {\n // We'll mark the items as deleted from the node, while leaving\n // the data itself there for now to avoid a copy.\n\n // Note that if we wanted to, it would also be correct (and\n // slightly more space efficient) to pack some of the new\n // string's characters into this node after trimming it.\n let end_items = &(*e).items[item_idx..e_num_items];\n (*e).num_items = item_idx as u8;\n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;\n\n cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));\n\n // We need to trim the size off because we'll add the characters\n // back with insert_node_at.\n self.num_usercount -= end_usercount;\n self.num_items -= num_end_items;\n\n (Some(end_items), end_usercount)\n } else {\n (None, 0)\n };\n\n // Now we insert new nodes containing the new character data. The\n // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.\n // As further optimization, we could try and fit the last piece into\n // the start of the subsequent node.\n let mut items_remaining = num_inserted_items;\n while items_remaining > 0 {\n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);\n self.insert_node_at(cursor, contents, insert_here, true, notify);\n items_remaining -= insert_here;\n }\n\n // TODO: Consider recursively calling insert_at_iter() here instead\n // of making a whole new node for the remaining content.\n if let Some(end_items) = end_items {\n // Passing false to indicate we don't want the cursor updated\n // after this - it should remain at the end of the newly\n // inserted content, which is *before* this end bit.\n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_items.len(), false, notify);\n }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);\n // }\n\n /// Interestingly unlike the original, here we only care about specifying\n /// the number of removed items by counting them. We do not use usersize in\n /// the deleted item count.\n ///\n /// If the deleted content occurs at the start of a node, the cursor passed\n /// here must point to the end of the previous node, not the start of the\n /// current node.\n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {\n if num_deleted_items == 0 { return; }\n\n let mut item_idx = cursor.local_index;\n let mut e = cursor.here_ptr();\n while num_deleted_items > 0 {\n // self.print();\n // if cfg!(debug_assertions) { self.check(); }\n if item_idx == (*e).num_items as usize {\n let entry = (*e).first_skip_entry();\n // End of current node. Skip to the start of the next one. We're\n // intentionally not updating the iterator because if we delete\n // a whole node we need the iterator to point to the previous\n // element. And if we only delete here, the iterator doesn't\n // need to be moved.\n e = entry.node;\n if e.is_null() { panic!(\"Cannot delete past the end of the list\"); }\n item_idx = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let removed_here = min(num_deleted_items, e_num_items - item_idx);\n \n let height = (*e).height as usize;\n let removed_userlen;\n\n if removed_here < e_num_items || e as *const _ == &self.head as *const _ {\n // Just trim the node down.\n let trailing_items = e_num_items - item_idx - removed_here;\n \n let c = &mut (*e).items;\n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));\n if trailing_items > 0 {\n ptr::copy(\n &c[item_idx + removed_here],\n &mut c[item_idx],\n trailing_items);\n }\n\n (*e).num_items -= removed_here as u8;\n self.num_items -= removed_here;\n self.num_usercount -= removed_userlen;\n\n for s in (*e).nexts_mut() {\n s.skip_usersize -= removed_userlen;\n }\n } else {\n // Remove the node from the skip list entirely. e should be the\n // next node after the position of the iterator.\n assert_ne!(cursor.here_ptr(), e);\n\n removed_userlen = (*e).get_userlen();\n let next = (*e).first_skip_entry().node;\n\n // println!(\"removing {:?} contents {:?} height {}\", e, (*e).content_slice(), height);\n\n for i in 0..height {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.node = (*e).nexts_mut()[i].node;\n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;\n }\n\n self.num_items -= (*e).num_items as usize;\n self.num_usercount -= removed_userlen;\n\n // Update parents.\n if height > 1 {\n let mut n = e;\n // let new_parent = cursor.entries[height - 1].node;\n\n // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents.\n let mut parent_height = 1;\n let cursor_node = cursor.here_ptr();\n let cursor_node_height = (*cursor_node).height as usize;\n let mut new_parent = if height >= cursor_node_height {\n cursor.entries[parent_height].node\n } else {\n cursor_node\n };\n\n loop {\n n = (*n).nexts_mut()[parent_height - 1].node;\n if n.is_null() || (*n).height >= height as u8 { break; }\n let n_height = (*n).height as usize;\n \n assert_eq!((*n).parent, e);\n assert!(n_height >= parent_height - 1);\n\n if n_height > parent_height {\n parent_height = n_height;\n if n_height >= cursor_node_height {\n new_parent = cursor.entries[parent_height].node\n }\n }\n \n (*n).parent = new_parent;\n }\n }\n\n Node::free(e);\n e = next;\n }\n\n for i in height..self.head.height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.skip_usersize -= removed_userlen;\n }\n\n num_deleted_items -= removed_here;\n\n // if cfg!(debug_assertions) { self.check(); }\n }\n }\n\n\n unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n if removed_items == 0 && inserted_content.len() == 0 { return; }\n\n // Replace as many items from removed_items as we can with inserted_content.\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n debug_assert!(inserted_content.len() >= replaced_items);\n let mut e = cursor.here_ptr();\n if cursor.local_index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n }\n\n let index = cursor.local_index;\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let dest = &mut (*e).items[index..index + replaced_items_here];\n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));\n\n // Replace the items themselves. Everything else is commentary.\n // Would prefer to use zip() but it wants ownership of inserted_content :/\n for slot in dest.iter_mut() {\n *slot.as_mut_ptr() = inserted_content.next().unwrap();\n }\n\n let dest = maybeinit_slice_get_ref(dest);\n let new_usersize = C::userlen_of_slice(dest);\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n cursor.local_index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n\n notify(dest, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(cursor, inserted_content, &mut notify);\n } else if removed_items > 0 {\n self.del_at_iter(cursor, removed_items);\n }\n }\n\n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n }\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}\n\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }\n\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(start_userpos);\n c2.advance_by_items(inserted_content.len(), self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after replace\"); }\n }\n }\n\n pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {\n if contents.len() == 0 { return; }\n \n userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n unsafe {\n if offset == 0 {\n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n } else {\n let current_item = cursor.current_item();\n let (start, end) = C::split_item(current_item, offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n cursor.move_to_item_start(self.head.height, offset);\n // This feels pretty inefficient; but its probably fine.\n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);\n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);\n\n // There's no clean way to keep the cursor steady for the final\n // insert. We'll just make sure the cursor is in the right\n // position before that call for now.\n self.dbg_check_cursor_at(&cursor, userpos, contents.len());\n\n self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);\n }\n }\n\n" + ) + , ( 10257 + , 42579 + , " ptr::drop_in_place(p); // We could just implement drop here, but this is cleaner.\n dealloc(p as *mut u8, Self::layout_with_height((*p).height));\n }\n\n fn content_slice(&self) -> &[C::Item] {\n let slice = &self.items[..self.num_items as usize];\n unsafe { maybeinit_slice_get_ref(slice) }\n }\n\n // The height is at least 1, so this is always valid.\n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {\n unsafe { &*self.nexts.as_ptr() }\n }\n\n fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {\n unsafe { &mut *self.nexts.as_mut_ptr() }\n }\n\n // TODO: Rename to len() ?\n fn get_userlen(&self) -> usize {\n self.first_skip_entry().skip_usersize\n }\n \n fn get_next_ptr(&self) -> *mut Node {\n self.first_skip_entry().node\n }\n}\n\nimpl Drop for Node {\n fn drop(&mut self) {\n for i in 0..self.num_items as usize {\n // Could instead call assume_init() on each item but this is\n // friendlier to the optimizer.\n unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }\n }\n }\n}\n\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone)]\npub struct Cursor {\n // TODO: Add a phantom lifetime reference to the skip list root for safety.\n\n\n /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///\n /// This field isn't strictly necessary - earlier versions tacked this on to\n /// the last item in entries... I'm still not sure the cleanest way to do\n /// this.\n userpos: usize,\n\n /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used to resolve that ambiguity.\n local_index: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n}\n\nimpl Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n self.local_index = 0;\n\n next\n }\n }\n\n fn is_at_node_end(&self) -> bool {\n self.local_index == unsafe { (*self.here_ptr()).num_items } as usize\n }\n\n fn advance_item(&mut self, height: u8) {\n if self.is_at_node_end() { self.advance_node(); }\n let usersize = C::get_usersize(unsafe { self.current_item() });\n\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }\n self.userpos += usersize;\n self.local_index += 1;\n }\n\n fn advance_by_items(&mut self, num: usize, height: u8) {\n for _ in 0..num { self.advance_item(height); }\n }\n\n fn move_to_item_start(&mut self, height: u8, offset: usize) {\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize -= offset;\n }\n self.userpos -= offset;\n }\n\n unsafe fn current_item(&mut self) -> &C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &*(node.items[self.local_index].as_ptr())\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice.\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos\n || self.local_index != other.local_index {return false; }\n\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl fmt::Debug for Cursor {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_struct(\"Cursor\")\n .field(\"userpos\", &self.userpos)\n .field(\"local_index\", &self.local_index)\n .finish()\n }\n}\n\n// None of the rust builtins give me what I want, which is a copy-free iterator\n// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.\nstruct UninitOwnedIter<'a, C: ListConfig> {\n // Based on the core slice IterMut implementation.\n ptr: NonNull,\n end: *mut C::Item,\n _marker: PhantomData<&'a SkipList>\n}\n\nimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {\n /// Make a slice we can iterate from and steal data from without dropping\n /// content. This is unsafe:\n ///\n /// - If the iterator isn't fully drained then remaining items will be\n /// forgotten (they are not dropped).\n /// - The slice passed in here must be initialized or undefined behaviour\n /// will hit us.\n ///\n /// After iterating, the contents are uninit memory.\n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {\n let ptr = slice.as_ptr() as *mut C::Item; // Safe.\n let end = ptr.add(slice.len());\n\n UninitOwnedIter {\n ptr: NonNull::new_unchecked(ptr),\n end,\n _marker: PhantomData\n }\n }\n}\n\nimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {\n type Item = C::Item;\n\n fn next(&mut self) -> Option {\n if self.ptr.as_ptr() == self.end {\n None\n } else {\n let ptr = self.ptr;\n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };\n Some(unsafe { ptr.as_ptr().read() })\n }\n }\n\n fn size_hint(&self) -> (usize, Option) {\n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();\n (size, Some(size))\n }\n}\n\n// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.\n#[inline(always)]\nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {\n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }\n}\n\n// TODO: Stolen from MaybeUninit::slice_get_ref. Replace when available.\n#[inline(always)]\nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {\n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees that\n // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.\n // The pointer obtained is valid since it refers to memory owned by `slice` which is a\n // reference and thus guaranteed to be valid for reads.\n &*(slice as *const [MaybeUninit] as *const [T])\n}\n\n\nimpl SkipList {\n pub fn new() -> Self {\n SkipList:: {\n num_items: 0,\n num_usercount: 0,\n rng: None,\n head: Node {\n items: uninit_items_array(),\n num_items: 0,\n height: 1, // Stores max height of list nodes\n parent: ptr::null_mut(),\n nexts: [],\n },\n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],\n }\n }\n\n pub fn init_rng_from_seed(&mut self, seed: u64) {\n self.rng = Some(SmallRng::seed_from_u64(seed));\n }\n\n fn get_rng(&mut self) -> &mut SmallRng {\n // I'm sure there's a nicer way to implement this.\n if self.rng.is_none() {\n // We'll use a stable RNG in debug mode so the tests are stable.\n if cfg!(debug_assertions) {\n self.init_rng_from_seed(123);\n } else {\n self.rng = Some(SmallRng::from_entropy());\n }\n }\n self.rng.as_mut().unwrap()\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n let mut rope = Self::new();\n rope.insert_at_slice(0, s);\n rope\n }\n\n pub fn get_userlen(&self) -> usize {\n self.num_usercount\n }\n\n fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn len_items(&self) -> usize {\n self.num_items as usize\n }\n\n fn heads_mut(&mut self) -> &mut [SkipEntry] {\n unsafe {\n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())\n }\n }\n\n fn is_head(&self, node: *const Node) -> bool {\n node as *const _ == &self.head as *const _\n }\n\n /// Walk the list and validate internal constraints. This is used for\n /// testing the structure itself, and should generally not be called by\n /// users.\n pub fn check(&self) {\n // #[cfg(test)]\n {\n // self.print();\n assert!(self.head.height >= 1);\n assert!(self.head.height <= MAX_HEIGHT_U8);\n\n let head_ptr = &self.head as *const _ as *mut _;\n // let skip_over = self.get_top_entry();\n // println!(\"Skip over skip chars {}, num bytes {}\", skip_over.skip_items, self.num_bytes);\n\n let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];\n\n let mut iter = [SkipEntry {\n // Bleh.\n node: head_ptr,\n // The skips will store the total distance travelled since the\n // start of this traversal at each height. All the entries above\n // head.height are ignored though.\n skip_usersize: 0\n }; MAX_HEIGHT];\n\n let mut num_items = 0;\n let mut num_usercount = 0;\n\n for (_i, n) in self.iter().enumerate() {\n // println!(\"visiting {:?}\", n.as_str());\n if !self.is_head(n) { assert!(n.num_items > 0); }\n assert!(n.height <= MAX_HEIGHT_U8);\n assert!(n.num_items as usize <= NODE_NUM_ITEMS);\n\n // Make sure the number of items matches the count\n let local_count = C::userlen_of_slice(n.content_slice());\n assert_eq!(local_count, n.get_userlen());\n\n let expect_parent = if self.is_head(n) {\n ptr::null() // The head's parent is null\n } else if n.height == self.head.height {\n &self.head as *const _ // Max height nodes point back to head\n } else {\n prev[n.height as usize]\n };\n\n // println!(\"visiting {} {:?}\", i, n as *const _);\n // dbg!(n as *const _);\n // dbg!((n as *const _, (*n).height));\n // dbg!(n.parent);\n // dbg!(&self.head as *const _);\n\n assert_eq!(n.parent as *const _, expect_parent, \"invalid parent\");\n \n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {\n assert_eq!(entry.node as *const _, n as *const _);\n assert_eq!(entry.skip_usersize, num_usercount);\n\n // println!(\"replacing entry {:?} with {:?}\", entry, n.nexts()[i].node);\n prev[i] = n;\n entry.node = n.nexts()[i].node;\n entry.skip_usersize += n.nexts()[i].skip_usersize;\n }\n\n num_items += n.num_items as usize;\n num_usercount += n.get_userlen();\n\n // Check the value returned by the iterator functions matches.\n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);\n assert_eq!(local_offset, 0);\n\n // Dirty hack. If n has 0-sized elements at the end, the normal\n // cursor won't be at the end...\n while normal_iter.here_ptr() != n as *const _ as *mut _ {\n normal_iter.advance_node();\n }\n normal_iter.local_index = n.num_items as usize;\n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };\n assert_eq!(normal_iter, node_iter);\n }\n\n for entry in iter[0..self.head.height as usize].iter() {\n // println!(\"{:?}\", entry);\n assert!(entry.node.is_null());\n assert_eq!(entry.skip_usersize, num_usercount);\n }\n \n // println!(\"self bytes: {}, count bytes {}\", self.num_bytes, num_bytes);\n assert_eq!(self.num_items, num_items);\n assert_eq!(self.get_userlen(), num_usercount);\n }\n }\n \n \n /// Internal function for creating a cursor at a particular location in the\n /// skiplist. The returned cursor contains list of nodes which point past\n /// the specified position, as well as offsets of how far into their\n /// character lists the specified characters are.\n ///\n /// Sometimes a call to iter_at_userpos is ambiguous:\n ///\n /// - The item can contain items with zero usersize. The cursor could point\n /// to any of them.\n /// - If the location is at the end of a node, it is equally valid to return\n /// a position at the start of the next node.\n ///\n /// Because its impossible to move backwards in the list, iter_at_userpos\n /// returns the first admissible location with the specified userpos.\n /// \n /// Returns (cursor, offset into the specified item).\n ///\n /// TODO: This should be Pin<&self>.\n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {\n assert!(target_userpos <= self.get_userlen());\n\n let mut e: *const Node = &self.head;\n let mut height = self.head.height as usize - 1;\n \n let mut offset = target_userpos; // How many more items to skip\n\n // We're populating the head node pointer to simplify the case when the\n // iterator grows. We could put offset into the skip_usersize but it\n // would only be *mostly* correct, not always correct. (Since cursor\n // entries above height are not updated by insert.)\n let mut cursor = Cursor {\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n local_index: 0,\n userpos: target_userpos,\n };\n\n loop { // while height >= 0\n let en = unsafe { &*e };\n let next = en.nexts()[height];\n let skip = next.skip_usersize;\n if offset > skip {\n // Go right.\n debug_assert!(e == &self.head || en.num_items > 0);\n offset -= skip;\n e = next.node;\n assert!(!e.is_null(), \"Internal constraint violation: Reached rope end prematurely\");\n } else {\n // Record this and go down.\n cursor.entries[height] = SkipEntry {\n skip_usersize: offset,\n node: e as *mut Node, // This is pretty gross\n };\n\n if height == 0 { break; } else { height -= 1; }\n }\n };\n\n // We should always land within the node we're pointing to.\n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());\n\n // We've found the node. Now look for the index within the node.\n let en = unsafe { &*e };\n let mut index = 0;\n\n while offset > 0 {\n assert!(index < en.num_items as usize);\n \n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });\n if usersize > offset { break; } // We're in the middle of an item.\n offset -= usersize;\n index += 1;\n }\n cursor.local_index = index;\n\n (cursor, offset)\n }\n\n unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {\n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.\n\n let mut cursor = Cursor {\n userpos: 0, // We'll set this later.\n local_index: local_index,\n entries: [SkipEntry {\n node: &self.head as *const _ as *mut _,\n skip_usersize: usize::MAX\n }; MAX_HEIGHT],\n };\n\n let mut h = 0;\n loop {\n while h < (*n).height as usize {\n cursor.entries[h] = SkipEntry {\n node: n,\n skip_usersize: offset\n };\n\n h += 1;\n }\n\n let parent = (*n).parent;\n // Reached the head.\n if parent.is_null() { break; }\n\n // If we're the same height as the parent its fine.\n debug_assert!((*parent).height as usize > h\n || (self.is_head(parent) && (*parent).height as usize == h));\n\n // Walk from parent back to n, figuring out the offset.\n let mut c = parent;\n // let walk_height = (*parent).height as usize - 2;\n let walk_height = (*n).height as usize - 1;\n while c != n {\n let elem = (*c).nexts()[walk_height];\n offset += elem.skip_usersize;\n c = elem.node;\n }\n\n n = parent;\n }\n\n cursor.userpos = offset;\n cursor\n }\n\n pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n // The marker gives us a pointer into a node. Find the item.\n unsafe {\n let n = marker.ptr;\n\n let mut offset: usize = 0;\n let mut local_index = None;\n for (i, item) in (*n).content_slice().iter().enumerate() {\n if let Some(item_offset) = item.contains_item(query) {\n offset += item_offset;\n local_index = Some(i);\n break;\n } else {\n offset += C::get_usersize(item);\n }\n }\n\n let local_index = local_index.expect(\"Invalid marker - item not found in node\");\n self.iter_at_node(n, offset, local_index)\n }\n }\n\n // Internal fn to create a new node at the specified iterator filled with\n // the specified content. The passed cursor should point at the end of the\n // previous node. It will be updated to point to the end of the newly\n // inserted content.\n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {\n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {\n\n // println!(\"Insert_node_at {} len {}\", contents.len(), self.num_bytes);\n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));\n assert!(num_items <= NODE_NUM_ITEMS);\n debug_assert!(contents.size_hint().0 >= num_items);\n\n let new_node_ptr = Node::alloc(self.get_rng());\n let new_node = &mut *new_node_ptr;\n new_node.num_items = num_items as u8;\n\n for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {\n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.\n }\n\n let new_userlen = C::userlen_of_slice(new_node.content_slice());\n\n let new_height = new_node.height;\n let new_height_usize = new_height as usize;\n\n let mut head_height = self.head.height as usize;\n while head_height < new_height_usize {\n // This seems weird given we're about to overwrite these values\n // below. What we're doing is retroactively setting up the cursor\n // and head pointers *as if* the height had been this high all\n // along. This way we only have to populate the higher head values\n // lazily.\n let total_userlen = self.num_usercount;\n let nexts = self.heads_mut();\n nexts[head_height].skip_usersize = total_userlen;\n cursor.entries[head_height].skip_usersize = cursor.userpos;\n\n head_height += 1; // This is ugly.\n self.head.height += 1;\n }\n\n new_node.parent = if new_height_usize == MAX_HEIGHT {\n &self.head as *const _ as *mut _\n } else { cursor.entries[new_height_usize].node };\n\n for i in 0..new_height_usize {\n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];\n let new_nexts = new_node.nexts_mut();\n\n // The new node points to the successor (or null)\n new_nexts[i] = SkipEntry {\n node: prev_skip.node,\n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersize\n };\n\n // The previous node points to the new node\n *prev_skip = SkipEntry {\n node: new_node_ptr,\n skip_usersize: cursor.entries[i].skip_usersize\n };\n\n // Move the iterator to the end of the newly inserted node.\n if move_cursor {\n cursor.entries[i] = SkipEntry {\n node: new_node_ptr,\n skip_usersize: new_userlen\n };\n }\n }\n\n for i in new_height_usize..head_height {\n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;\n if move_cursor {\n cursor.entries[i].skip_usersize += new_userlen;\n }\n }\n\n // Update parents.\n if new_height_usize > 1 {\n\n let mut n = new_node_ptr;\n let mut skip_height = 0;\n\n loop {\n n = (*n).nexts_mut()[skip_height].node;\n if n.is_null() || (*n).height >= new_height { break; }\n \n (*n).parent = new_node_ptr;\n skip_height = usize::max(skip_height, (*n).height as usize - 1);\n }\n }\n \n self.num_items += num_items;\n self.num_usercount += new_userlen;\n if move_cursor {\n cursor.userpos += new_userlen;\n cursor.local_index = num_items;\n }\n\n notify(new_node.content_slice(), ItemMarker {\n ptr: new_node_ptr,\n _phantom: PhantomData\n });\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n // iter specifies where to insert.\n\n let mut e = cursor.here_ptr();\n\n // The insertion offset into the destination node.\n assert!(cursor.userpos <= self.num_usercount);\n assert!(cursor.local_index <= (*e).num_items as usize);\n\n // We might be able to insert the new data into the current node, depending on\n // how big it is.\n let num_inserted_items = contents.len();\n\n // Can we insert into the current node?\n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;\n\n // Can we insert into the start of the successor node?\n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {\n // We can insert into the subsequent node if:\n // - We can't insert into the current node\n // - There _is_ a next node to insert into\n // - The insert would be at the start of the next node\n // - There's room in the next node\n if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {\n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {\n cursor.advance_node();\n e = next;\n\n insert_here = true;\n }\n }\n }\n\n let item_idx = cursor.local_index;\n let e_num_items = (*e).num_items as usize; // convenience.\n\n if insert_here {\n // println!(\"insert_here {}\", contents);\n // First push the current items later in the array\n let c = &mut (*e).items;\n if item_idx < e_num_items {\n // Can't use copy_within because Item doesn't necessarily\n // implement Copy. Memmove the existing items.\n ptr::copy(\n &c[item_idx],\n &mut c[item_idx + num_inserted_items],\n (*e).num_items as usize - item_idx);\n }\n\n // Then copy in the new items. Can't memcpy from an iterator, but\n // the optimizer should make this fast.\n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];\n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {\n // Do not drop the old items - they were only moved.\n slot.as_mut_ptr().write(item);\n }\n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);\n\n (*e).num_items += num_inserted_items as u8;\n self.num_items += num_inserted_items;\n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);\n self.num_usercount += num_inserted_usercount;\n\n // .... aaaand update all the offset amounts.\n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);\n\n // Usually the cursor will be discarded after one change, but for\n // consistency of compound edits we'll update the cursor to point to\n // the end of the new content.\n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {\n entry.skip_usersize += num_inserted_usercount;\n }\n cursor.userpos += num_inserted_usercount;\n cursor.local_index += num_inserted_items;\n\n notify(dest_content_slice, ItemMarker {\n ptr: e,\n _phantom: PhantomData\n });\n } else {\n // There isn't room. We'll need to add at least one new node to the\n // list. We could be a bit more careful here and copy as much as\n // possible into the current node - that would decrease the number\n // of new nodes in some cases, but I don't think the performance\n // difference will be large enough to justify the complexity.\n\n // If we're not at the end of the current node, we'll need to remove\n // the end of the current node's data and reinsert it later.\n let num_end_items = e_num_items - item_idx;\n\n let (end_items, _end_usercount) = if num_end_items > 0 {\n // We'll mark the items as deleted from the node, while leaving\n // the data itself there for now to avoid a copy.\n\n // Note that if we wanted to, it would also be correct (and\n // slightly more space efficient) to pack some of the new\n // string's characters into this node after trimming it.\n let end_items = &(*e).items[item_idx..e_num_items];\n (*e).num_items = item_idx as u8;\n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;\n\n cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));\n\n // We need to trim the size off because we'll add the characters\n // back with insert_node_at.\n self.num_usercount -= end_usercount;\n self.num_items -= num_end_items;\n\n (Some(end_items), end_usercount)\n } else {\n (None, 0)\n };\n\n // Now we insert new nodes containing the new character data. The\n // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.\n // As further optimization, we could try and fit the last piece into\n // the start of the subsequent node.\n let mut items_remaining = num_inserted_items;\n while items_remaining > 0 {\n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);\n self.insert_node_at(cursor, contents, insert_here, true, notify);\n items_remaining -= insert_here;\n }\n\n // TODO: Consider recursively calling insert_at_iter() here instead\n // of making a whole new node for the remaining content.\n if let Some(end_items) = end_items {\n // Passing false to indicate we don't want the cursor updated\n // after this - it should remain at the end of the newly\n // inserted content, which is *before* this end bit.\n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_items.len(), false, notify);\n }\n }\n }\n\n // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {\n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);\n // }\n\n /// Interestingly unlike the original, here we only care about specifying\n /// the number of removed items by counting them. We do not use usersize in\n /// the deleted item count.\n ///\n /// If the deleted content occurs at the start of a node, the cursor passed\n /// here must point to the end of the previous node, not the start of the\n /// current node.\n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {\n if num_deleted_items == 0 { return; }\n\n let mut item_idx = cursor.local_index;\n let mut e = cursor.here_ptr();\n while num_deleted_items > 0 {\n // self.print();\n // if cfg!(debug_assertions) { self.check(); }\n if item_idx == (*e).num_items as usize {\n let entry = (*e).first_skip_entry();\n // End of current node. Skip to the start of the next one. We're\n // intentionally not updating the iterator because if we delete\n // a whole node we need the iterator to point to the previous\n // element. And if we only delete here, the iterator doesn't\n // need to be moved.\n e = entry.node;\n if e.is_null() { panic!(\"Cannot delete past the end of the list\"); }\n item_idx = 0;\n }\n\n let e_num_items = (*e).num_items as usize;\n let removed_here = min(num_deleted_items, e_num_items - item_idx);\n \n let height = (*e).height as usize;\n let removed_userlen;\n\n if removed_here < e_num_items || e as *const _ == &self.head as *const _ {\n // Just trim the node down.\n let trailing_items = e_num_items - item_idx - removed_here;\n \n let c = &mut (*e).items;\n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));\n if trailing_items > 0 {\n ptr::copy(\n &c[item_idx + removed_here],\n &mut c[item_idx],\n trailing_items);\n }\n\n (*e).num_items -= removed_here as u8;\n self.num_items -= removed_here;\n self.num_usercount -= removed_userlen;\n\n for s in (*e).nexts_mut() {\n s.skip_usersize -= removed_userlen;\n }\n } else {\n // Remove the node from the skip list entirely. e should be the\n // next node after the position of the iterator.\n assert_ne!(cursor.here_ptr(), e);\n\n removed_userlen = (*e).get_userlen();\n let next = (*e).first_skip_entry().node;\n\n // println!(\"removing {:?} contents {:?} height {}\", e, (*e).content_slice(), height);\n\n for i in 0..height {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.node = (*e).nexts_mut()[i].node;\n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;\n }\n\n self.num_items -= (*e).num_items as usize;\n self.num_usercount -= removed_userlen;\n\n // Update parents.\n if height > 1 {\n let mut n = e;\n // let new_parent = cursor.entries[height - 1].node;\n\n // If you imagine this node as a big building, we need to\n // update the parent of all the nodes we cast a shadow over.\n // So, if our height is 3 and the next nodes have heights 1\n // and 2, they both need new parents.\n let mut parent_height = 1;\n let cursor_node = cursor.here_ptr();\n let cursor_node_height = (*cursor_node).height as usize;\n let mut new_parent = if height >= cursor_node_height {\n cursor.entries[parent_height].node\n } else {\n cursor_node\n };\n\n loop {\n n = (*n).nexts_mut()[parent_height - 1].node;\n if n.is_null() || (*n).height >= height as u8 { break; }\n let n_height = (*n).height as usize;\n \n assert_eq!((*n).parent, e);\n assert!(n_height >= parent_height - 1);\n\n if n_height > parent_height {\n parent_height = n_height;\n if n_height >= cursor_node_height {\n new_parent = cursor.entries[parent_height].node\n }\n }\n \n (*n).parent = new_parent;\n }\n }\n\n Node::free(e);\n e = next;\n }\n\n for i in height..self.head.height as usize {\n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];\n s.skip_usersize -= removed_userlen;\n }\n\n num_deleted_items -= removed_here;\n\n // if cfg!(debug_assertions) { self.check(); }\n }\n }\n\n\n unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n if removed_items == 0 && inserted_content.len() == 0 { return; }\n\n // Replace as many items from removed_items as we can with inserted_content.\n let mut replaced_items = min(removed_items, inserted_content.len());\n removed_items -= replaced_items;\n\n while replaced_items > 0 {\n debug_assert!(inserted_content.len() >= replaced_items);\n let mut e = cursor.here_ptr();\n if cursor.local_index == (*e).num_items as usize {\n // Move to the next item.\n e = cursor.advance_node();\n if e.is_null() { panic!(\"Cannot replace past the end of the list\"); }\n }\n\n let index = cursor.local_index;\n\n let e_num_items = (*e).num_items as usize;\n let replaced_items_here = min(replaced_items, e_num_items - index);\n\n let dest = &mut (*e).items[index..index + replaced_items_here];\n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));\n\n // Replace the items themselves. Everything else is commentary.\n // Would prefer to use zip() but it wants ownership of inserted_content :/\n for slot in dest.iter_mut() {\n *slot.as_mut_ptr() = inserted_content.next().unwrap();\n }\n\n let dest = maybeinit_slice_get_ref(dest);\n let new_usersize = C::userlen_of_slice(dest);\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n\n replaced_items -= replaced_items_here;\n // We'll hop to the next Node at the start of the next loop\n // iteration if needed.\n cursor.local_index += replaced_items_here;\n\n for i in 0..self.head.height as usize {\n cursor.entries[i].skip_usersize += new_usersize;\n }\n cursor.userpos += new_usersize;\n\n notify(dest, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });\n }\n\n // Ok now one of two things must be true. Either we've run out of\n // items to remove, or we've run out of items to insert.\n if inserted_content.len() > 0 {\n // Insert!\n debug_assert!(removed_items == 0);\n self.insert_at_iter(cursor, inserted_content, &mut notify);\n } else if removed_items > 0 {\n self.del_at_iter(cursor, removed_items);\n }\n }\n\n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n }\n\n fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}\n\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n let num_inserted_items = inserted_content.len();\n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }\n\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(start_userpos);\n c2.advance_by_items(num_inserted_items, self.head.height);\n if &cursor != &c2 { panic!(\"Invalid cursor after replace\"); }\n }\n }\n\n pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());\n }\n\n pub fn insert_at(&mut self, mut userpos: usize, mut contents: I) where I: ExactSizeIterator {\n if contents.len() == 0 { return; }\n let num_inserted_items = contents.len();\n \n userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n unsafe {\n if offset == 0 {\n self.insert_at_iter(&mut cursor, &mut contents, &mut Self::no_notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);\n } else {\n let current_item = cursor.current_item();\n let (start, end) = C::split_item(current_item, offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n cursor.move_to_item_start(self.head.height, offset);\n // This feels pretty inefficient; but its probably fine.\n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);\n self.insert_at_iter(&mut cursor, &mut contents, &mut Self::no_notify);\n\n // There's no clean way to keep the cursor steady for the final\n // insert. We'll just make sure the cursor is in the right\n // position before that call for now.\n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);\n\n self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);\n }\n }\n\n }\n\n pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {\n self.insert_at(userpos, contents.iter().copied())\n" + ) + , (9755, 1, "") + , (9754, 1, "") + , (9758, 1, "") + , (9758, 0, ".") + , (9759, 0, "w") + , (9760, 0, "r") + , (9761, 0, "i") + , (9762, 0, "t") + , (9763, 0, "e") + , (9764, 0, "(") + , (9765, 1, "") + , (9765, 1, "") + , (9765, 1, "") + , (9960, 1, "") + , (9960, 0, ")") + , (9961, 0, ";") + , (10026, 1, "") + , (10030, 0, ".") + , (10031, 0, "w") + , (10032, 0, "r") + , (10033, 0, "i") + , (10034, 0, "t") + , (10035, 0, "e") + , (10036, 0, "(") + , (10037, 1, "") + , (10037, 1, "") + , (10037, 1, "") + , (10058, 0, ")") + , (11675, 1, "") + , (11680, 1, "") + , (11679, 1, "") + , (11679, 0, ".") + , (11680, 0, "w") + , (11681, 0, "r") + , (11682, 0, "i") + , (11683, 0, "t") + , (11684, 0, "e") + , (11685, 0, "(") + , (11686, 1, "") + , (11741, 0, ")") + , (13907, 1, "") + , (13911, 0, ".") + , (13912, 0, "w") + , (13913, 0, "r") + , (13911, 3, "") + , (13907, 0, "*") + , (10026, 0, "*") + , (10031, 6, " ") + , (10032, 0, "=") + , (10033, 0, " ") + , (10034, 1, "") + , (10055, 1, "") + , (11671, 11, "*") + , (11672, 0, "s") + , (11673, 0, "e") + , (11674, 0, "l") + , (11675, 0, "f") + , (11676, 0, " ") + , (11677, 0, "=") + , (11678, 0, " ") + , (11734, 1, "") + , (1247, 2, "2") + , (1247, 1, "10") + , (1638, 1, "2") + , (1638, 1, "5") + , (44190, 0, "\n ") + , (44207, 0, "\n ") + , (44191, 16, "") + , (44192, 16, "") + , (44191, 0, "\n ") + , (44208, 0, "f") + , (44209, 0, "o") + , (44210, 0, "r") + , (44211, 0, " ") + , (44212, 0, "&") + , (44213, 0, "m") + , (44214, 0, "u") + , (44215, 0, "t") + , (44216, 0, " ") + , (44217, 0, "i") + , (44218, 0, "t") + , (44219, 0, "e") + , (44220, 0, "m") + , (44221, 0, " ") + , (44222, 0, "i") + , (44223, 0, "n") + , (44224, 0, " ") + , (44225, 0, "&c[item_idx..item_idx + removed_here])") + , (44262, 1, "") + , (44262, 0, " ") + , (44263, 0, "{") + , (44264, 0, "\n ") + , (44265, 20, " }") + , (44226, 0, "m") + , (44227, 0, "u") + , (44228, 0, "t") + , (44229, 0, " ") + , (44213, 8, "") + , (44212, 1, "") + , (44211, 1, "") + , (44211, 0, "i") + , (44211, 1, "") + , (44211, 0, " ") + , (44212, 0, "i") + , (44213, 0, "t") + , (44214, 0, "e") + , (44215, 0, "m") + , (44263, 0, "\n ") + , (44284, 0, "i") + , (44285, 0, "t") + , (44286, 0, "e") + , (44287, 0, "m") + , (44288, 0, ".") + , (44289, 0, "a") + , (44290, 0, "s") + , (44291, 0, "_") + , (44289, 3, "as_mut_ptr") + , (44299, 0, "(") + , (44300, 0, ")") + , (44284, 0, " ") + , (44284, 0, "m") + , (44285, 0, "e") + , (44286, 0, "m") + , (44287, 0, ":") + , (44288, 0, ":") + , (44289, 0, "d") + , (44290, 0, "r") + , (44291, 0, "o") + , (44292, 0, "p") + , (44292, 1, "") + , (44291, 1, "") + , (44290, 1, "") + , (44289, 1, "") + , (44288, 1, "") + , (44287, 1, "") + , (44286, 1, "") + , (44285, 1, "") + , (44284, 1, "") + , (44284, 0, "p") + , (44285, 0, "t") + , (44286, 0, "r") + , (44287, 0, ":") + , (44288, 0, ":") + , (44289, 0, "d") + , (44290, 0, "r") + , (44291, 0, "p") + , (44289, 3, "drop_in_place(to_drop: *mut T)") + , (44303, 15, "") + , (44303, 1, "") + , (44303, 1, "") + , (44320, 0, ")") + , (44321, 0, ";") + , (44191, 0, "\n ") + , (44208, 0, "i") + , (44209, 0, "f") + , (44210, 0, " ") + , (44211, 0, "C") + , (44212, 0, ":") + , (44213, 0, ":") + , (44213, 1, "") + , (44212, 1, "") + , (44211, 1, "") + , (44211, 0, "n") + , (44212, 0, "e") + , (44213, 0, "e") + , (44213, 1, "") + , (44212, 1, "") + , (44211, 1, "") + , (44211, 0, "p") + , (44212, 0, "t") + , (44213, 0, "r") + , (44214, 0, ":") + , (44215, 0, ":") + , (44216, 0, "n") + , (44217, 0, "e") + , (44218, 0, "e") + , (44211, 8, "m") + , (44212, 0, "e") + , (44213, 0, "m") + , (44214, 0, ":") + , (44215, 0, ":") + , (44216, 0, "n") + , (44217, 0, "e") + , (44218, 0, "e") + , (44216, 3, "needs_drop()") + , (44226, 0, ":") + , (44227, 0, ":") + , (44228, 0, "<") + , (44229, 0, "T") + , (44230, 0, ">") + , (44230, 1, "") + , (44229, 1, "") + , (44229, 0, "C") + , (44230, 0, ":") + , (44231, 0, ":") + , (44232, 0, "I") + , (44233, 0, "t") + , (44234, 0, "e") + , (44235, 0, "m") + , (44236, 0, ">") + , (44239, 0, " ") + , (44240, 0, "{") + , (44373, 16, " ") + , (44314, 20, " ") + , (44242, 16, " ") + , (44402, 0, "\n ") + , (44403, 20, " }") + , (11154, 0, "\n ") + , (11163, 0, "f") + , (11164, 0, "o") + , (11165, 0, "r") + , (11166, 0, " ") + , (11167, 0, "i") + , (11168, 0, "t") + , (11169, 0, "e") + , (11170, 0, "m") + , (11171, 0, " ") + , (11172, 0, "i") + , (11173, 0, "n") + , (11174, 0, " ") + , (11175, 0, "&") + , (11176, 0, "m") + , (11177, 0, "u") + , (11178, 0, "t") + , (11179, 0, " ") + , (11180, 0, "s") + , (11181, 0, "e") + , (11182, 0, "l") + , (11183, 0, "f") + , (11184, 0, ".") + , (11185, 0, "i") + , (11186, 0, "t") + , (11187, 0, "e") + , (11188, 0, "m") + , (11185, 4, "items") + , (11190, 0, "[") + , (11191, 0, "0") + , (11192, 0, ".") + , (11193, 0, ".") + , (11194, 0, "s") + , (11195, 0, "e") + , (11196, 0, "l") + , (11197, 0, "f") + , (11198, 0, ".") + , (11199, 0, "n") + , (11200, 0, "u") + , (11201, 0, "m") + , (11202, 0, "_") + , (11203, 0, "i") + , (11204, 0, "t") + , (11205, 0, "e") + , (11206, 0, "m") + , (11207, 0, "s") + , (11208, 0, " ") + , (11209, 0, "a") + , (11210, 0, "s") + , (11211, 0, " ") + , (11212, 0, "u") + , (11213, 0, "s") + , (11214, 0, "i") + , (11215, 0, "z") + , (11216, 0, "e") + , (11217, 0, "]") + , (11218, 0, " ") + , (11219, 0, "{") + , (11221, 45, "") + , (11220, 1, "") + , ( 11338 + , 0 + , " unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }\n" + ) + , (11350, 0, "// ") + , (11452, 13, "i") + , (11453, 0, "t") + , (11454, 0, "e") + , (11455, 0, "m") + , (11338, 73, "") + , (11337, 1, "") + , (55759, 20, "") + , (20792, 0, "\n ") + , (20797, 0, "\n ") + , (20793, 4, "") + , (20798, 0, "p") + , (20799, 0, "u") + , (20800, 0, "b") + , (20801, 0, " ") + , (20802, 0, "f") + , (20803, 0, "n") + , (20804, 0, " ") + , (20805, 0, "n") + , (20806, 0, "e") + , (20807, 0, "w") + , (20808, 0, "_") + , (20809, 0, "f") + , (20810, 0, "r") + , (20811, 0, "o") + , (20812, 0, "m") + , (20813, 0, "_") + , (20814, 0, "i") + , (20815, 0, "t") + , (20816, 0, "e") + , (20817, 0, "r") + , (20818, 0, "(") + , (20819, 0, "&") + , (20819, 1, "") + , (20818, 0, "<") + , (20819, 0, "I") + , (20820, 0, ">") + , (20822, 0, "i") + , (20823, 0, "t") + , (20824, 0, "e") + , (20825, 0, "r") + , (20826, 0, ":") + , (20827, 0, " ") + , (20828, 0, "I") + , (20829, 0, ")") + , (20819, 1, "") + , (20819, 0, "I: ExactSizeIterator ") + , (20853, 1, "") + , (20863, 0, " ") + , (20864, 0, "{") + , (20865, 0, "\n ") + , (20874, 0, "\n ") + , (20866, 8, "") + , (20867, 8, " }") + , (20945, 85, "") + , ( 20866 + , 0 + , " let mut rope = Self::new();\n rope.insert_at_slice(0, s);\n rope\n" + ) + , (20950, 1, "") + , (20929, 1, "") + , (20928, 1, "") + , (20927, 1, "") + , (20926, 1, "") + , (20925, 1, "") + , (20924, 1, "") + , (20928, 1, "") + , (20928, 0, "i") + , (20929, 0, "t") + , (20930, 0, "e") + , (20931, 0, "r") + , (20863, 0, " ") + , (20864, 0, "-") + , (20865, 0, ">") + , (20866, 0, " ") + , (20867, 0, "S") + , (20868, 0, "e") + , (20869, 0, "l") + , (20870, 0, "f") + , (21033, 0, "\n ") + , (21042, 0, "s") + , (21043, 0, "e") + , (21044, 0, "l") + , (21045, 0, "f") + , (21042, 4, "S") + , (21043, 0, "e") + , (21044, 0, "l") + , (21045, 0, "f") + , (21046, 0, ":") + , (21047, 0, ":") + , (21048, 0, "n") + , (21049, 0, "e") + , (21050, 0, "w") + , (21051, 0, "_") + , (21048, 4, "new_from_iter(iter: I)") + , (21062, 7, "s") + , (21063, 0, ".") + , (21064, 0, "i") + , (21065, 0, "t") + , (21066, 0, "e") + , (21067, 0, "r") + , (21068, 0, "(") + , (21069, 1, ")") + , (21070, 0, ".") + , (21071, 0, "c") + , (21072, 0, "o") + , (21073, 0, "p") + , (21074, 0, "i") + , (21075, 0, "e") + , (21076, 0, "d") + , (21077, 0, "(") + , (21078, 0, ")") + , (21079, 0, ")") + , (21080, 0, ";") + , (21080, 1, "") + , (55969, 1, "") + , (55968, 1, "") + , (55967, 1, "") + , (55966, 1, "") + , (55965, 1, "") + , (55965, 0, "i") + , (55966, 0, "t") + , (55967, 0, "e") + , (55968, 0, "r") + , (55970, 12, "") + , (55970, 0, "s") + , (55971, 0, ".") + , (55972, 0, "i") + , (55973, 0, "n") + , (55974, 0, "t") + , (55975, 0, "o") + , (55972, 4, "into_iter()") + , (55791, 43, "") + , (55790, 1, "") + , ( 55791 + , 0 + , "impl From> for SkipList {\n fn from(s: Vec) -> SkipList {\n SkipList::new_from_iter(s.into_iter())\n }\n}\n" + ) + , (55948, 0, "\n") + , (55968, 0, ",") + , (55969, 0, " ") + , ( 55970 + , 0 + , " let mut rope = Self::new();\n rope.insert_at_slice(0, s);\n rope\n" + ) + , (56042, 8, "") + , (56006, 8, "") + , (56034, 0, " ") + , (56006, 0, " ") + , (55970, 85, "") + , (55970, 0, "I") + , (55971, 0, ":") + , (55972, 0, " ") + , (55973, 0, "E") + , (55974, 0, "x") + , (55975, 0, "a") + , (55973, 3, "ExactSizeIterator") + , (55990, 0, "<") + , (55991, 0, "C") + , (55992, 0, ":") + , (55993, 0, ":") + , (55994, 0, "I") + , (55995, 0, "t") + , (55996, 0, "e") + , (55997, 0, "m") + , (55998, 0, ">") + , (55971, 28, "") + , (55978, 12, "I") + , (55997, 0, " ") + , (55998, 0, "w") + , (55998, 1, "") + , (55997, 1, "") + , (55997, 0, "w") + , (55998, 0, "h") + , (55999, 0, "e") + , (56000, 0, "r") + , (56001, 0, "e") + , (56002, 0, " ") + , (56003, 0, "I") + , (56004, 0, ":") + , (56005, 0, " ") + , (56006, 0, "E") + , (56007, 0, "x") + , (56008, 0, "a") + , (56006, 3, "ExactSizeIterator") + , (56023, 0, "<") + , (56024, 0, "C") + , (56025, 0, ":") + , (56026, 0, ":") + , (56027, 0, "I") + , (56028, 0, "t") + , (56029, 0, "e") + , (56030, 0, "m") + , (56031, 0, ">") + , (56032, 0, " ") + , (56024, 0, "I") + , (56025, 0, "t") + , (56026, 0, "e") + , (56027, 0, "m") + , (56028, 0, "=") + , (55788, 0, "// ") + , (55782, 0, "// ") + , (55746, 0, "// ") + , (55702, 0, "// ") + , (55627, 0, "// ") + , (55962, 0, "// ") + , (55956, 0, "// ") + , (55909, 0, "// ") + , (55863, 0, "// ") + , (55806, 0, "// ") + , ( 56070 + , 98 + , "// fn from(s: Vec) -> SkipList {\n// SkipList::new_from_iter(s.into_iter())\n// }" + ) + , (56169, 3, "") + , (56119, 3, "") + , (56070, 3, "") + , (56082, 15, "i") + , (56083, 0, "t") + , (56084, 0, "e") + , (56085, 0, "r") + , (56086, 0, ":") + , (56087, 0, " ") + , (56088, 0, "I") + , (56140, 13, "i") + , (56141, 0, "t") + , (56142, 0, "e") + , (56143, 0, "r") + , (55800, 3, "") + , (55791, 3, "") + , (55752, 3, "") + , (55705, 3, "") + , (55627, 3, "") + , (55788, 0, "// ") + , (55782, 0, "// ") + , (55746, 0, "// ") + , (55702, 0, "// ") + , (55627, 0, "// ") + , (55626, 352, "") + , (55625, 1, "") + , (56185, 973, "") + , (56120, 68, "") + , (56119, 1, "") + , (54767, 0, "\n ") + , (54772, 0, "\n ") + , (54768, 4, "") + , ( 54773 + , 0 + , " // TODO: Don't export this.\n pub fn print(&self) {\n println!(\"items: {}\\tuserlen: {}, height: {}\", self.num_items, self.get_userlen(), self.head.height);\n\n print!(\"HEAD:\");\n for s in self.head.nexts() {\n print!(\" |{} \", s.skip_usersize);\n }\n println!(\"\");\n\n use std::collections::HashMap;\n let mut ptr_to_id = HashMap::new();\n // ptr_to_id.insert(std::ptr::null(), usize::MAX);\n for (i, node) in self.iter().enumerate() {\n print!(\"{}:\", i);\n ptr_to_id.insert(node as *const _, i);\n for s in node.nexts() {\n print!(\" |{} \", s.skip_usersize);\n }\n print!(\" : {:?}\", node.content_slice());\n if let Some(id) = ptr_to_id.get(&(node.parent as *const _)) {\n print!(\" (parent: {})\", id);\n }\n print!(\" (pointer: {:?})\", node as *const _);\n\n println!();\n }\n }" + ) + , (55741, 4, " ") + , (55731, 8, " ") + , (55707, 12, " ") + , (55706, 0, " ") + , (55648, 12, " ") + , (55634, 12, " ") + , (55589, 16, " ") + , (55515, 12, " ") + , (55457, 12, " ") + , (55443, 12, " ") + , (55393, 16, " ") + , (55357, 12, " ") + , (55306, 12, " ") + , (55276, 12, " ") + , (55225, 8, " ") + , (55166, 8, " ") + , (55122, 8, " ") + , (55083, 8, " ") + , (55082, 0, " ") + , (55060, 8, " ") + , (55050, 8, " ") + , (55004, 12, " ") + , (54967, 8, " ") + , (54942, 8, " ") + , (54941, 0, " ") + , (54831, 8, " ") + , (54805, 4, " ") + , (55845, 8, " ") + , (55831, 12, " ") + , (55803, 16, " ") + , (55798, 4, "") + , (55736, 16, " ") + , (55718, 16, " ") + , (55669, 20, " ") + , (55591, 16, " ") + , (55529, 16, " ") + , (55511, 16, " ") + , (55457, 20, " ") + , (55417, 16, " ") + , (55362, 16, " ") + , (55328, 16, " ") + , (55273, 12, " ") + , (55210, 12, " ") + , (55162, 12, " ") + , (55119, 12, " ") + , (55114, 4, "") + , (55088, 12, " ") + , (55074, 12, " ") + , (55024, 16, " ") + , (54983, 12, " ") + , (54954, 12, " ") + , (54949, 4, "") + , (54835, 12, " ") + , (54805, 8, " ") + , (54769, 8, " ") + , (54824, 0, " ") + , (54825, 0, "w") + , (54826, 0, "h") + , (54827, 0, "e") + , (54828, 0, "r") + , (54829, 0, "e") + , (54830, 0, " ") + , (54831, 0, "C") + , (54832, 0, ":") + , (54833, 0, ":") + , (54834, 0, "I") + , (54835, 0, "t") + , (54836, 0, "e") + , (54837, 0, "m") + , (54838, 0, ":") + , (54839, 0, " ") + , (54840, 0, "D") + , (54841, 0, "e") + , (54842, 0, "b") + , (54843, 0, "u") + , (54844, 0, "g") + , (54840, 0, "s") + , (54841, 0, "t") + , (54842, 0, "d") + , (54843, 0, ":") + , (54844, 0, ":") + , (54845, 0, "f") + , (54846, 0, "m") + , (54847, 0, "t") + , (54848, 0, ":") + , (54849, 0, ":") + , (52176, 0, "// ") + , (52102, 0, "// ") + , (52031, 0, "// ") + , (51964, 0, "// ") + , (51928, 0, "// ") + , (51919, 0, "\n ") + , (51928, 0, "d") + , (51929, 0, "b") + , (51930, 0, "g") + , (51931, 0, "_") + , (51928, 4, "s") + , (51929, 0, "e") + , (51930, 0, "l") + , (51931, 0, "f") + , (51932, 0, ".") + , (51933, 0, "d") + , (51934, 0, "b") + , (51935, 0, "g") + , (51936, 0, "_") + , ( 51933 + , 4 + , "dbg_check_cursor_at(cursor: &Cursor, userpos: usize, plus_items: usize)" + ) + , (51953, 18, "&") + , (51954, 0, "c") + , (51955, 0, "y") + , (51956, 0, "r") + , (51957, 0, "s") + , (51958, 0, "o") + , (51958, 1, "") + , (51957, 1, "") + , (51956, 1, "") + , (51955, 1, "") + , (51955, 0, "u") + , (51956, 0, "r") + , (51957, 0, "s") + , (51958, 0, "o") + , (51959, 0, "r") + , (51962, 14, "s") + , (51963, 0, "t") + , (51964, 0, "a") + , (51965, 0, "r") + , (51966, 0, "t") + , (51967, 0, "_") + , (51968, 0, "u") + , (51969, 0, "s") + , (51970, 0, "e") + , (51971, 0, "r") + , (51972, 0, "p") + , (51973, 0, "o") + , (51974, 0, "s") + , (51977, 17, "n") + , (51978, 0, "u") + , (51979, 0, "m") + , (51980, 0, "_") + , (51981, 0, "i") + , (51982, 0, "n") + , (51983, 0, "s") + , (51984, 0, "e") + , (51985, 0, "r") + , (51986, 0, "t") + , (51987, 0, "e") + , (51988, 0, "d") + , (51989, 0, "_") + , (51990, 0, "i") + , (51991, 0, "t") + , (51992, 0, "e") + , (51993, 0, "m") + , (51994, 0, "s") + , (51996, 0, ";") + , (51998, 273, "") + , (51023, 0, "\n ") + , (51028, 0, "\n ") + , (51024, 4, "") + , ( 51029 + , 0 + , " unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n" + ) + , (51177, 12, " ") + , (51025, 8, " ") + , (51223, 36, "") + , (51177, 0, " ") + , (51229, 0, "\n ") + , (51230, 12, " }") + , (51230, 8, " ") + , (51053, 1, "") + , (51052, 1, "") + , (51051, 1, "") + , (51050, 1, "") + , (51049, 1, "") + , (51048, 1, "") + , (51047, 1, "") + , (51047, 0, "i") + , (51048, 0, "t") + , (51049, 0, "e") + , (51050, 0, "m") + , (51058, 3, "") + , (51093, 52, "") + , (51093, 0, ",") + , (51094, 0, " ") + , (51095, 0, "n") + , (51096, 0, "e") + , (51097, 0, "w") + , (51098, 0, "I") + , (51099, 0, "t") + , (51100, 0, "e") + , (51101, 0, "m") + , (51101, 1, "") + , (51100, 1, "") + , (51099, 1, "") + , (51098, 1, "") + , (51098, 0, "_") + , (51099, 0, "i") + , (51100, 0, "t") + , (51101, 0, "e") + , (51102, 0, "m") + , (51103, 0, ":") + , (51104, 0, " ") + , (51105, 0, "C") + , (51106, 0, ":") + , (51107, 0, ":") + , (51108, 0, "I") + , (51109, 0, "t") + , (51110, 0, "e") + , (51111, 0, "m") + , (51190, 0, "\n ") + , (51191, 12, " ") + , ( 51025 + , 165 + , " unsafe fn replace_item(&mut self, cursor: &mut Cursor, new_item: C::Item, mut notify: Notify) where Notify: FnMut(&[C::Item], ItemMarker) {" + ) + , ( 51025 + , 157 + , " unsafe fn replace_item(&mut self, cursor: &mut Cursor, new_item: C::Item, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker) {" + ) + , (51134, 8, " ") + , (51186, 0, "\n ") + , (51195, 0, "s") + , (51196, 0, "e") + , (51197, 0, "l") + , (51198, 0, "f") + , (51199, 0, ".") + , (51200, 0, "r") + , (51201, 0, "e") + , (51202, 0, "p") + , (51203, 0, "l") + , (51204, 0, "a") + , ( 51200 + , 5 + , "replace_at_iter(cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)" + ) + , (51216, 22, "c") + , (51217, 0, "u") + , (51218, 0, "r") + , (51219, 0, "s") + , (51220, 0, "o") + , (51221, 0, "r") + , (51224, 24, "1") + , (51227, 24, "o") + , (51228, 0, "n") + , (51229, 0, "c") + , (51230, 0, "e") + , (51227, 4, "i") + , (51228, 0, "t") + , (51229, 0, "e") + , (51230, 0, "r") + , (51231, 0, ":") + , (51232, 0, ":") + , (51233, 0, "o") + , (51234, 0, "n") + , (51235, 0, "c") + , (51236, 0, "e") + , (51237, 0, "(") + , (51238, 0, "n") + , (51239, 0, "e") + , (51240, 0, "w") + , (51241, 0, "_") + , (51242, 0, "i") + , (51243, 0, "t") + , (51244, 0, "e") + , (51245, 0, "m") + , (51246, 0, ")") + , (51249, 18, "n") + , (51250, 0, "o") + , (51251, 0, "t") + , (51252, 0, "i") + , (51253, 0, "f") + , (51254, 0, "y") + , (51256, 0, ";") + , (51227, 0, "&") + , (51228, 0, "m") + , (51229, 0, "u") + , (51230, 0, "t") + , (51231, 0, " ") + , (51267, 4, "") + , (51263, 4, "") + , (51262, 1, "") + , (51186, 0, "\n ") + , (51195, 0, "/") + , (51196, 0, "/") + , (51197, 0, " ") + , (51198, 0, "T") + , (51199, 0, "h") + , (51200, 0, "i") + , (51201, 0, "s") + , (51202, 0, " ") + , (51203, 0, "c") + , (51204, 0, "o") + , (51205, 0, "u") + , (51206, 0, "l") + , (51207, 0, "d") + , (51208, 0, " ") + , (51209, 0, "b") + , (51210, 0, "e") + , (51211, 0, " ") + , (51212, 0, "o") + , (51213, 0, "p") + , (51214, 0, "t") + , (51215, 0, "i") + , (51216, 0, "m") + , (51217, 0, "i") + , (51218, 0, "z") + , (51219, 0, "e") + , (51220, 0, "d") + , (51221, 0, ".") + , (51208, 0, " ") + , (51209, 0, "e") + , (51210, 0, "a") + , (51211, 0, "s") + , (51212, 0, "i") + , (51213, 0, "l") + , (51214, 0, "y") + , (51114, 4, "") + , (51308, 1, "") + , (53479, 0, "// ") + , (53462, 0, "\n ") + , (53479, 0, "s") + , (53480, 0, "e") + , (53481, 0, "l") + , (53482, 0, "f") + , (53483, 0, ".") + , (53484, 0, "r") + , (53485, 0, "e") + , (53486, 0, "p") + , (53487, 0, "l") + , (53488, 0, "a") + , ( 53484 + , 5 + , "replace_item(cursor: &mut Cursor, new_item: C::Item, notify: Notify)" + ) + , (53497, 22, "&") + , (53498, 0, "m") + , (53499, 0, "u") + , (53500, 0, "t") + , (53501, 0, " ") + , (53502, 0, "c") + , (53503, 0, "u") + , (53504, 0, "r") + , (53505, 0, "s") + , (53506, 0, "o") + , (53507, 0, "r") + , (53508, 0, ",") + , (53509, 0, " ") + , (53509, 1, "") + , (53508, 1, "") + , (53510, 17, "s") + , (53511, 0, "t") + , (53512, 0, "a") + , (53513, 0, "r") + , (53514, 0, "t") + , (53516, 15, "&mut Self::no_notify") + , (53516, 0, " ") + , (53538, 0, ";") + , (53540, 103, "") + , (53539, 0, "\n ") + , (53556, 0, "\n ") + , (53540, 16, "") + , (53557, 0, "/") + , (53558, 0, "/") + , (53559, 0, " ") + , (53560, 0, "T") + , (53561, 0, "O") + , (53562, 0, "D") + , (53563, 0, "O") + , (53564, 0, ":") + , (53565, 0, " ") + , (53566, 0, "C") + , (53567, 0, "o") + , (53568, 0, "n") + , (53569, 0, "s") + , (53570, 0, "i") + , (53571, 0, "d") + , (53572, 0, "e") + , (53573, 0, "r") + , (53574, 0, " ") + , (53575, 0, "f") + , (53576, 0, "u") + , (53577, 0, "s") + , (53578, 0, "i") + , (53579, 0, "n") + , (53580, 0, "g") + , (53575, 6, "c") + , (53576, 0, "o") + , (53577, 0, "n") + , (53578, 0, "c") + , (53579, 0, "a") + , (53580, 0, "t") + , (53581, 0, "e") + , (53582, 0, "n") + , (53583, 0, "a") + , (53584, 0, "t") + , (53585, 0, "i") + , (53586, 0, "n") + , (53587, 0, "g") + , (53588, 0, " ") + , (53589, 0, "e") + , (53590, 0, "n") + , (53591, 0, "d") + , (53592, 0, " ") + , (53593, 0, "o") + , (53594, 0, "n") + , (53594, 1, "") + , (53593, 1, "") + , (53593, 0, "i") + , (53594, 0, "n") + , (53595, 0, "t") + , (53596, 0, "o") + , (53597, 0, " ") + , (53598, 0, "c") + , (53599, 0, "o") + , (53600, 0, "n") + , (53601, 0, "t") + , (53602, 0, "e") + , (53603, 0, "n") + , (53604, 0, "t") + , (53605, 0, "s") + , (53606, 0, ".") + , (53606, 1, "") + , (53606, 0, " ") + , (53606, 1, "") + , (53606, 0, " ") + , (53607, 0, "t") + , (53608, 0, "h") + , (53609, 0, "e") + , (53610, 0, "n") + , (53611, 0, " ") + , (53612, 0, "j") + , (53613, 0, "u") + , (53614, 0, "s") + , (53615, 0, "t") + , (53616, 0, " ") + , (53617, 0, "c") + , (53618, 0, "a") + , (53619, 0, "l") + , (53620, 0, "l") + , (53621, 0, " ") + , (53622, 0, "i") + , (53623, 0, "n") + , (53624, 0, "s") + , (53625, 0, "e") + , (53626, 0, "r") + , (53627, 0, "t") + , (53628, 0, "_") + , (53629, 0, "a") + , (53630, 0, "t") + , (53631, 0, "_") + , (53632, 0, "i") + , (53633, 0, "t") + , (53634, 0, "e") + , (53635, 0, "r") + , (53636, 0, " ") + , (53637, 0, "o") + , (53638, 0, "n") + , (53639, 0, "c") + , (53640, 0, "e") + , (53641, 0, ".") + , ( 53541 + , 101 + , " // TODO: Consider concatenating end into contents then just call\n // insert_at_iter once." + ) + , (53749, 209, "") + , (52518, 0, "\n ") + , (52523, 0, "\n ") + , (52519, 4, "") + , (52524, 0, "p") + , (52525, 0, "u") + , (52526, 0, "b") + , (52527, 0, " ") + , (52528, 0, "f") + , (52529, 0, "n") + , (52530, 0, " ") + , (52531, 0, "m") + , (52532, 0, "o") + , (52532, 1, "") + , (52532, 0, "o") + , (52533, 0, "d") + , (52534, 0, "i") + , (52535, 0, "f") + , (52536, 0, "y") + , (52537, 0, "_") + , (52538, 0, "a") + , (52539, 0, "t") + , (52540, 0, "(") + , (52541, 0, "&") + , (52542, 0, "m") + , (52543, 0, "u") + , (52544, 0, "t") + , (52545, 0, " ") + , (52546, 0, "s") + , (52547, 0, "e") + , (52548, 0, "l") + , (52549, 0, "f") + , (52550, 0, ",") + , (52551, 0, " ") + , (52552, 0, "m") + , (52553, 0, "o") + , (52554, 0, "d") + , (52555, 0, "i") + , (52556, 0, "f") + , (52557, 0, "y") + , (52558, 0, "_") + , (52559, 0, "f") + , (52560, 0, "n") + , (52561, 0, ":") + , (52562, 0, " ") + , (52563, 0, "F") + , (52540, 0, "<") + , (52541, 0, "F") + , (52542, 0, ">") + , (52554, 0, " ") + , (52555, 0, "u") + , (52556, 0, "s") + , (52557, 0, "e") + , (52558, 0, "r") + , (52559, 0, "s") + , (52560, 0, "i") + , (52560, 1, "") + , (52559, 1, "") + , (52559, 0, "p") + , (52560, 0, "o") + , (52561, 0, "s") + , (52562, 0, ":") + , (52563, 0, " ") + , (52564, 0, "u") + , (52565, 0, "s") + , (52566, 0, "i") + , (52567, 0, "z") + , (52568, 0, "e") + , (52569, 0, ",") + , (52583, 0, ")") + , (52584, 0, " ") + , (52585, 0, "{") + , (52586, 0, "\n ") + , (52595, 0, "\n ") + , (52587, 8, "") + , (52588, 8, " }") + , (52584, 1, "") + , (52584, 0, "\n ") + , (52589, 0, "w") + , (52590, 0, "h") + , (52591, 0, "e") + , (52592, 0, "r") + , (52593, 0, "e") + , (52594, 0, " ") + , (52595, 0, "F") + , (52596, 0, ":") + , (52597, 0, " ") + , (52598, 0, "F") + , (52599, 0, "n") + , (52600, 0, "O") + , (52601, 0, "n") + , (52602, 0, "c") + , (52603, 0, "e") + , (52604, 0, "(") + , (52605, 0, "&") + , (52606, 0, "m") + , (52607, 0, "u") + , (52608, 0, "t") + , (52609, 0, " ") + , (52610, 0, "C") + , (52611, 0, ":") + , (52612, 0, ":") + , (52613, 0, "I") + , (52614, 0, "t") + , (52615, 0, "e") + , (52616, 0, "m") + , (52605, 0, "i") + , (52606, 0, "t") + , (52607, 0, "e") + , (52608, 0, "m") + , (52609, 0, ":") + , (52610, 0, " ") + , (52623, 0, ")") + , (52624, 0, " ") + , (52605, 6, "") + , (52621, 0, " ") + , (52629, 0, "let (mut cursor, offset) = self.iter_at_userpos(userpos);\n") + , (52617, 0, ",") + , (52618, 0, " ") + , (52619, 0, "i") + , (52620, 0, "n") + , (52620, 1, "") + , (52619, 1, "") + , (52619, 0, "u") + , (52620, 0, "s") + , (52621, 0, "i") + , (52622, 0, "z") + , (52623, 0, "e") + , (52694, 0, " ") + , (52694, 8, "") + , ( 15874 + , 0 + , " unsafe fn current_item(&mut self) -> &C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &*(node.items[self.local_index].as_ptr())\n }\n" + ) + , (16087, 0, "\n ") + , (16119, 0, "_") + , (16088, 4, "") + , (16116, 0, "m") + , (16117, 0, "u") + , (16118, 0, "t") + , (16135, 0, "m") + , (16136, 0, "u") + , (16137, 0, "t") + , (16138, 0, " ") + , (16298, 0, "m") + , (16299, 0, "u") + , (16300, 0, "t") + , (16301, 0, "_") + , (16298, 4, "") + , (16264, 0, "m") + , (16265, 0, "u") + , (16266, 0, "t") + , (16267, 0, " ") + , (16087, 227, "") + , ( 16087 + , 0 + , "\n\n unsafe fn current_item_mut(&mut self) -> &mut C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &mut *(node.items[self.local_index].as_ptr())\n }" + ) + , (16264, 4, "") + , (16169, 0, ",") + , (16170, 0, "u") + , (16171, 0, "t") + , (16171, 1, "") + , (16170, 1, "") + , (16169, 1, "") + , (16169, 0, "m") + , (16170, 0, "u") + , (16171, 0, "t") + , (16172, 0, " ") + , (16268, 0, "u") + , (16268, 1, "") + , (16268, 0, "m") + , (16269, 0, "u") + , (16270, 0, "t") + , (16271, 0, " ") + , (16303, 6, "a") + , (16304, 0, "s") + , (16305, 0, "_") + , (16306, 0, "m") + , (16307, 0, "u") + , (16308, 0, "t") + , (16303, 6, "as_mut_ptr") + , (52929, 0, " ") + , (52937, 0, "l") + , (52938, 0, "e") + , (52939, 0, "t") + , (52940, 0, " ") + , (52941, 0, "i") + , (52942, 0, "t") + , (52943, 0, "e") + , (52944, 0, "m") + , (52945, 0, " ") + , (52946, 0, "=") + , (52947, 0, " ") + , (52948, 0, "c") + , (52949, 0, "u") + , (52950, 0, "r") + , (52951, 0, "s") + , (52952, 0, "o") + , (52953, 0, "r") + , (52954, 0, ".") + , (52955, 0, "c") + , (52956, 0, "u") + , (52957, 0, "r") + , (52958, 0, "r") + , (52959, 0, "e") + , (52955, 5, "current_item_mut()") + , (52973, 0, ";") + , (52974, 0, "\n ") + , (52983, 0, "l") + , (52984, 0, "e") + , (52985, 0, "t") + , (52986, 0, " ") + , (52987, 0, "o") + , (52988, 0, "l") + , (52989, 0, "d") + , (52990, 0, "_") + , (52991, 0, "s") + , (52992, 0, "i") + , (52993, 0, "z") + , (52994, 0, "e") + , (52995, 0, " ") + , (52996, 0, "=") + , (52997, 0, " ") + , (52998, 0, "C") + , (52999, 0, ":") + , (53000, 0, ":") + , (53001, 0, "get_usersize(_item: &Self::Item)") + , (53014, 18, "i") + , (53015, 0, "t") + , (53016, 0, "e") + , (53017, 0, "m") + , (53019, 0, ";") + , (53020, 0, "\n ") + , (53021, 8, "") + , (52947, 0, " ") + , (52948, 0, "u") + , (52949, 0, "n") + , (52950, 0, "s") + , (52951, 0, "a") + , (52952, 0, "f") + , (52953, 0, "e") + , (52954, 0, " ") + , (52955, 0, "{") + , (52982, 0, " ") + , (52983, 0, "}") + , (53032, 0, " ") + , (53040, 0, "F") + , (53041, 0, "(") + , (53042, 0, "i") + , (53043, 0, "t") + , (53044, 0, "e") + , (53045, 0, "m") + , (53046, 0, ",") + , (53047, 0, " ") + , (53048, 0, "o") + , (53049, 0, "f") + , (53050, 0, "f") + , (53051, 0, "s") + , (53052, 0, "e") + , (53053, 0, "t") + , (53054, 0, ")") + , (53055, 0, ";") + , (53056, 0, "\n ") + , (53057, 8, "") + , (53040, 1, "") + , (53040, 0, "m") + , (53041, 0, "o") + , (53042, 0, "d") + , (53043, 0, "i") + , (53044, 0, "f") + , (53045, 0, "y") + , (53040, 6, "modify_fn") + , (53065, 0, " ") + , (53073, 0, "l") + , (53074, 0, "e") + , (53075, 0, "t") + , (53076, 0, " ") + , (53077, 0, "n") + , (53078, 0, "e") + , (53079, 0, "w") + , (53080, 0, "_") + , (53081, 0, "s") + , (53082, 0, "i") + , (53083, 0, "z") + , (53084, 0, "e") + , (53085, 0, " ") + , (53086, 0, "=") + , (53087, 0, " ") + , (53088, 0, "C::get_usersize(item);") + , (53110, 0, "\n ") + , (53119, 0, "c") + , (53120, 0, "u") + , (53121, 0, "r") + , (53122, 0, "s") + , (53123, 0, "o") + , (53124, 0, "r") + , (53125, 0, ".") + , (53126, 0, "update_offsets(height: usize, by: isize)") + , (53141, 0, "s") + , (53142, 0, "e") + , (53143, 0, "l") + , (53144, 0, "f") + , (53145, 0, ".") + , (53146, 0, "n") + , (53147, 0, "o") + , (53148, 0, "d") + , (53149, 0, "e") + , (53150, 0, ".") + , (53157, 7, "") + , (53151, 6, "heights") + , (53157, 1, "") + , (53146, 4, "h") + , (53147, 0, "e") + , (53148, 0, "a") + , (53149, 0, "d") + , (53157, 0, " ") + , (53158, 0, "a") + , (53159, 0, "s") + , (53160, 0, " ") + , (53161, 0, "u") + , (53162, 0, "s") + , (53163, 0, "i") + , (53164, 0, "z") + , (53165, 0, "e") + , (53168, 9, "") + , (53168, 0, "n") + , (53169, 0, "e") + , (53170, 0, "w") + , (53171, 0, "_") + , (53172, 0, "s") + , (53173, 0, "i") + , (53174, 0, "z") + , (53175, 0, "e") + , (53176, 0, " ") + , (53177, 0, "a") + , (53178, 0, "s") + , (53179, 0, " ") + , (53180, 0, "u") + , (53181, 0, "i") + , (53181, 1, "") + , (53180, 1, "") + , (53180, 0, "i") + , (53181, 0, "s") + , (53182, 0, "i") + , (53183, 0, "z") + , (53184, 0, "e") + , (53185, 0, " ") + , (53186, 0, "-") + , (53187, 0, " ") + , (53188, 0, "o") + , (53189, 0, "l") + , (53190, 0, "d") + , (53191, 0, "_") + , (53192, 0, "s") + , (53193, 0, "i") + , (53194, 0, "e") + , (53194, 1, "") + , (53194, 0, "z") + , (53195, 0, "e") + , (53196, 0, " ") + , (53197, 0, "a") + , (53198, 0, "s") + , (53199, 0, " ") + , (53200, 0, "i") + , (53201, 0, "s") + , (53200, 2, "isize") + , (53206, 0, ";") + , (53119, 0, "// ") + , (53110, 0, "\n ") + , ( 53119 + , 0 + , "let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta)\n }\n // I hate this.\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n" + ) + , (53110, 0, "\n ") + , (53111, 8, "") + , (53081, 0, "u") + , (53002, 0, "u") + , (53083, 0, "s") + , (53003, 0, "s") + , (53085, 0, "e") + , (53004, 0, "e") + , (53087, 0, "r") + , (53005, 0, "r") + , (53315, 12, " ") + , (53234, 16, " ") + , (53197, 12, " ") + , (53195, 1, "") + , (53316, 27, "") + , (53315, 1, "") + , (53406, 0, "\n }") + , (53306, 10, "") + , (53305, 0, ";") + , (50310, 0, "\n // I hate this.") + , (50192, 28, "") + , (50282, 0, "\n }") + , (50192, 12, " ") + , (50178, 14, "") + , (50177, 0, ";") + , (50315, 0, "\n }") + , (50288, 12, " ") + , (50274, 14, "") + , ( 50305 + , 0 + , "\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);" + ) + , (50179, 95, "") + , (53407, 8, "\n ") + , (53408, 8, "\n ") + , (53408, 9, " ") + , (53407, 9, " ") + , (53416, 0, "\n ") + , (53425, 0, "\n ") + , (53417, 8, "") + , ( 53426 + , 0 + , "\n notify(dest, ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });" + ) + , (53418, 8, "") + , (53520, 12, " ") + , (53481, 16, " ") + , (53457, 16, " ") + , (53419, 12, " ") + , (53417, 1, "") + , ( 52827 + , 0 + , ", mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker)" + ) + , (52849, 12, " ") + , (52786, 0, ",") + , (52787, 0, " ") + , (52788, 0, "N") + , (52788, 1, "") + , (52787, 1, "") + , (52786, 1, "") + , (52785, 0, "N") + , (52786, 0, "i") + , (52787, 0, "t") + , (52787, 1, "") + , (52786, 1, "") + , (52786, 0, "o") + , (52787, 0, "t") + , (52788, 0, "i") + , (52789, 0, "f") + , (52790, 0, "y") + , (52791, 0, ",") + , (52792, 0, " ") + , (52835, 20, "") + , (52821, 0, ", mut notify: Notify") + , (52907, 1, "") + , (52907, 0, ",") + , ( 52857 + , 94 + , " where Notify: FnMut(&[C::Item], ItemMarker), where F: FnOnce(&mut C::Item, usize) {" + ) + , (52908, 6, "") + , (53503, 4, "&") + , (53504, 0, "[") + , (53504, 1, "") + , (53503, 1, "") + , (53503, 0, "i") + , (53504, 0, "t") + , (53505, 0, "e") + , (53506, 0, "m") + , (53507, 0, ".") + , (53508, 0, "f") + , (53509, 0, "r") + , (53510, 0, "o") + , (53511, 0, "m") + , (53512, 0, "(") + , (53513, 0, ")") + , (53508, 4, "i") + , (53509, 0, "n") + , (53510, 0, "t") + , (53511, 0, "o") + , (53503, 0, "s") + , (53504, 0, "l") + , (53505, 0, "i") + , (53506, 0, "c") + , (53507, 0, "e") + , (53508, 0, ":") + , (53509, 0, ":") + , (53510, 0, "f") + , (53511, 0, "r") + , (53512, 0, "o") + , (53513, 0, "m") + , (53514, 0, "_") + , (53515, 0, "r") + , (53516, 0, "e") + , (53517, 0, "f") + , (53518, 0, "(") + , (53523, 7, "") + , (53523, 0, ")") + , (53503, 0, "s") + , (53504, 0, "t") + , (53505, 0, "d") + , (53506, 0, ":") + , (53507, 0, ":") + , (53561, 1, "") + , (53561, 0, "c") + , (53562, 0, "u") + , (53563, 0, "r") + , (53564, 0, "s") + , (53565, 0, "o") + , (53566, 0, "r") + , (53567, 0, ".") + , (53568, 0, "h") + , (53569, 0, "e") + , (53570, 0, "r") + , (53571, 0, "e") + , (53568, 4, "here_ptr()") + , (53487, 0, "}") + , (53198, 0, "{") + , (53488, 1, "") + , (53198, 1, "") + , (53487, 0, "\n ") + , (53496, 0, "l") + , (53497, 0, "e") + , (53498, 0, "t") + , (53499, 0, " ") + , (53500, 0, "e") + , (53501, 0, " ") + , (53502, 0, "=") + , (53503, 0, " ") + , (53504, 0, "c") + , (53505, 0, "u") + , (53506, 0, "r") + , (53507, 0, "s") + , (53508, 0, "o") + , (53509, 0, "r") + , (53510, 0, ".") + , (53511, 0, "h") + , (53512, 0, "e") + , (53513, 0, "r") + , (53514, 0, "e") + , (53511, 4, "here_ptr()") + , (53521, 0, ";") + , (53596, 17, "e") + , (53496, 26, "") + , (53198, 0, "let e = cursor.here_ptr();") + , (53198, 0, " ") + , (53232, 0, "\n ") + , (53535, 4, "") + , (53233, 8, "") + , (53523, 4, "") + , (53522, 1, "") + , (53232, 0, "\n let new_usersize = C::get_usersize(item);") + , (53148, 50, "") + , (53182, 0, "\n modify_fn(item, offset);") + , (53115, 33, "") + , (53149, 0, "\n let old_usersize = C::get_usersize(item);") + , (53065, 50, "") + , (53099, 0, "\n let item = unsafe { cursor.current_item_mut() };") + , (53008, 57, "") + , (53642, 0, "// ") + , (53607, 0, "// ") + , (53587, 0, "// ") + , (53531, 0, "// ") + , (53098, 0, " ") + , (53099, 0, "a") + , (53100, 0, "s") + , (53101, 0, " ") + , (53102, 0, "*") + , (53103, 0, "m") + , (53104, 0, "u") + , (53105, 0, "t") + , (53106, 0, " ") + , (53107, 0, "_") + , (53106, 2, "") + , (53101, 5, "") + , (53098, 3, "") + , (53232, 0, "\n ") + , (53241, 0, "l") + , (53242, 0, "e") + , (53243, 0, "t") + , (53244, 0, " ") + , (53245, 0, "s") + , (53246, 0, "l") + , (53247, 0, "i") + , (53248, 0, "c") + , (53249, 0, "e") + , (53250, 0, " ") + , (53251, 0, "=") + , (53252, 0, " ") + , (53253, 0, "std::slice::from_ref(item)") + , (53279, 0, ";") + , (53699, 3, "") + , (53661, 3, "") + , (53638, 3, "") + , (53579, 3, "") + , (53586, 26, "s") + , (53587, 0, "l") + , (53588, 0, "i") + , (53589, 0, "c") + , (53590, 0, "e") + , (53586, 5, "std::slice::from_ref(item)") + , (53233, 48, "") + , (12701, 0, " ") + , (12705, 0, "_") + , (12706, 0, "m") + , (12707, 0, "a") + , (12708, 0, "r") + , (12709, 0, "k") + , (12710, 0, "e") + , (12711, 0, "r") + , (12712, 0, ":") + , (12713, 0, " ") + , (12714, 0, "P") + , (12715, 0, "h") + , (12716, 0, "n") + , (12714, 3, "PhantomData") + , (12617, 0, ",") + , (12618, 0, " ") + , (12618, 1, "") + , (12617, 1, "") + , (12604, 0, "'") + , (12605, 0, "a") + , (12606, 0, ",") + , (12607, 0, " ") + , (12729, 0, "<") + , (12730, 0, "S") + , (12731, 0, "k") + , (12732, 0, "i") + , (12733, 0, "p") + , (12730, 4, "SkipList") + , (12738, 0, "<") + , (12730, 0, "&") + , (12731, 0, "'") + , (12732, 0, "a") + , (12733, 0, " ") + , (12743, 0, "C") + , (12744, 0, ">") + , (12745, 0, ">") + , (12746, 0, ",") + , (12625, 124, "") + , (13326, 0, "\n ") + , (13331, 0, "\n ") + , (13327, 4, "") + , ( 13332 + , 0 + , " // TODO: Add a phantom lifetime reference to the skip list root for safety.\n _marker: PhantomData<&'a SkipList>,\n\n" + ) + , (13412, 4, " ") + , (13412, 8, " ") + , (13328, 8, " ") + , (13451, 1, "") + , (13450, 1, "") + , (13328, 79, "") + , (13327, 1, "") + , (13327, 0, "\n ") + , (13332, 0, "/") + , (13333, 0, "/") + , (13334, 0, " ") + , (13335, 0, "T") + , (13336, 0, "h") + , (13337, 0, "e") + , (13338, 0, " ") + , (13339, 0, "c") + , (13340, 0, "u") + , (13341, 0, "r") + , (13342, 0, "s") + , (13343, 0, "o") + , (13344, 0, "r") + , (13345, 0, " ") + , (13346, 0, "c") + , (13347, 0, "a") + , (13348, 0, "n") + , (13349, 0, "'") + , (13350, 0, "t") + , (13351, 0, " ") + , (13352, 0, "o") + , (13353, 0, "u") + , (13354, 0, "t") + , (13355, 0, "l") + , (13356, 0, "i") + , (13357, 0, "v") + , (13358, 0, "e") + , (13359, 0, " ") + , (13360, 0, "t") + , (13361, 0, "h") + , (13362, 0, "e") + , (13363, 0, " ") + , (13364, 0, "s") + , (13365, 0, "k") + , (13366, 0, "i") + , (13367, 0, "p") + , (13368, 0, "l") + , (13369, 0, "i") + , (13370, 0, "s") + , (13371, 0, "t") + , (13372, 0, ".") + , (13425, 0, "'") + , (13426, 0, "a") + , (13427, 0, ",") + , (13428, 0, " ") + , (13451, 0, "'") + , (13452, 0, "a") + , (13453, 0, " ") + , (13453, 1, "") + , (13453, 0, ",") + , (13454, 0, " ") + , (15936, 0, "'") + , (15937, 0, "a") + , (15938, 0, " ") + , (16158, 0, "'") + , (16159, 0, "a") + , (16160, 0, " ") + , (16487, 0, "'") + , (16488, 0, "a") + , (16489, 0, ",") + , (16490, 0, " ") + , (16527, 0, "'") + , (16528, 0, "a") + , (16529, 0, " ") + , (16529, 1, "") + , (16529, 0, ",") + , (16530, 0, " ") + , (17182, 0, "'") + , (17183, 0, "a") + , (17184, 0, ",") + , (17185, 0, " ") + , (17215, 0, "'") + , (17216, 0, "a") + , (17217, 0, ",") + , (17218, 0, " ") + , (17231, 0, "'") + , (17232, 0, "a") + , (17233, 0, ",") + , (17234, 0, " ") + , (17272, 0, "'") + , (17273, 0, "a") + , (17274, 0, ",") + , (17275, 0, " ") + , (27721, 0, "\n ") + , (27734, 0, "_") + , (27735, 0, "m") + , (27736, 0, "a") + , (27737, 0, "r") + , (27738, 0, "k") + , (27739, 0, "e") + , (27740, 0, "r") + , (27741, 0, ":") + , (27742, 0, " ") + , (27743, 0, "P") + , (27744, 0, "h") + , (27745, 0, "a") + , (27746, 0, "n") + , (27743, 4, "PhantomData") + , (27754, 0, ",") + , (29701, 0, "\n ") + , (29714, 0, "_") + , (29715, 0, "m") + , (29716, 0, "a") + , (29717, 0, "r") + , (29718, 0, "k") + , (29714, 5, "_marker") + , (29721, 0, ":") + , (29722, 0, " ") + , (29723, 0, "P") + , (29724, 0, "h") + , (29725, 0, "a") + , (29726, 0, "n") + , (29723, 4, "PhantomData") + , (53762, 0, "\n }") + , (53751, 8, " ") + , (53716, 12, " ") + , (53696, 12, " ") + , (53640, 8, " ") + , (53639, 0, " ") + , (53629, 10, "") + , ( 53812 + , 0 + , "\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);" + ) + , (53538, 91, "") + , ( 53721 + , 0 + , "\n cursor.update_offsets(self.head.height as usize, usersize_delta);" + ) + , (53460, 78, "") + , (53643, 0, "\n if usersize_delta != 0 {") + , (53620, 20, " ") + , (53573, 24, " ") + , (53541, 24, " ") + , (53473, 20, " ") + , (53460, 12, " ") + , (53427, 33, "") + , (53571, 16, " ") + , (53528, 20, " ") + , (53500, 20, " ") + , (53436, 16, " ") + , (53427, 8, " ") + , (53555, 12, " ") + , (53516, 16, " ") + , (53492, 16, " ") + , (53432, 12, " ") + , (53427, 4, "") + , (53550, 0, "\n ") + , (53551, 8, "") + , (52573, 0, "// ") + , (52573, 3, "") + , (52573, 0, "// ") + , (52573, 3, "") + , (12621, 0, ",") + , (12622, 0, " ") + , (12623, 0, "S") + , (12624, 0, ":") + , (12625, 0, " ") + , (12626, 0, "&") + , (12626, 1, "") + , (12625, 1, "") + , (12624, 1, "") + , (12623, 1, "") + , (12622, 1, "") + , (12621, 1, "") + , (12621, 0, ",") + , (12622, 0, " ") + , (12623, 0, "S") + , (12624, 0, ":") + , (12625, 0, " ") + , (12626, 0, "S") + , (12627, 0, "k") + , (12628, 0, "i") + , (12629, 0, "p") + , (12626, 4, "SkipList") + , (12634, 0, "<") + , (12635, 0, "c") + , (12636, 0, "'") + , (12636, 1, "") + , (12635, 1, "") + , (12635, 0, "C") + , (12636, 0, ">") + , (12626, 0, "&") + , (12638, 0, "'") + , (12626, 0, "'") + , (12627, 12, "a") + , (12628, 1, "") + , (12628, 0, " ") + , (12629, 0, "+") + , (12630, 0, " ") + , (12631, 0, "S") + , (12632, 0, "k") + , (12633, 0, "i") + , (12634, 0, "p") + , (12631, 4, "SkipList") + , (12639, 0, "<") + , (12640, 0, "C") + , (12641, 0, ">") + , (12628, 14, "") + , (12625, 0, " + SkipList") + , (12639, 0, " ") + , (12640, 0, "+") + , (12627, 1, "") + , (12626, 1, "") + , (12625, 1, "") + , (12625, 0, " ") + , (12625, 1, "") + , (12625, 0, " + ") + , (12639, 2, "") + , (12625, 14, "") + , (12628, 0, " + SkipList") + , (12628, 14, "") + , (12625, 0, " + SkipList") + , (12639, 0, " +") + , (12625, 3, "") + , (12625, 0, " ") + , (12626, 0, "&") + , (12621, 22, "") + , (13378, 0, "// ") + , (12604, 4, "") + , (13368, 1, "") + , (13368, 0, ",") + , (13369, 0, " ") + , (13370, 0, "b") + , (13371, 0, "u") + , (13372, 0, "t") + , (13373, 0, " ") + , (13374, 0, "d") + , (13375, 0, "o") + , (13376, 0, "i") + , (13377, 0, "n") + , (13378, 0, "g") + , (13379, 0, " ") + , (13380, 0, "t") + , (13381, 0, "h") + , (13382, 0, "i") + , (13383, 0, "s") + , (13384, 0, " ") + , (13385, 0, "m") + , (13386, 0, "a") + , (13387, 0, "k") + , (13388, 0, "e") + , (13389, 0, "s") + , (13390, 0, " ") + , (13391, 0, "i") + , (13392, 0, "t") + , (13393, 0, " ") + , (13394, 0, "t") + , (13395, 0, "r") + , (13396, 0, "i") + , (13397, 0, "c") + , (13398, 0, "k") + , (13399, 0, "y") + , (13400, 0, " ") + , (13401, 0, "t") + , (13402, 0, "o") + , (13403, 0, " ") + , (13404, 0, "a") + , (13405, 0, "p") + , (13406, 0, "s") + , (13407, 0, "s") + , (13404, 4, "p") + , (13405, 0, "a") + , (13406, 0, "s") + , (13407, 0, "s") + , (13408, 0, " ") + , (13409, 0, "c") + , (13410, 0, "u") + , (13411, 0, "r") + , (13412, 0, "s") + , (13413, 0, "o") + , (13414, 0, "r") + , (13415, 0, "s") + , (13416, 0, " ") + , (13417, 0, "a") + , (13418, 0, "r") + , (13419, 0, "o") + , (13420, 0, "u") + , (13421, 0, "n") + , (13422, 0, "d") + , (13423, 0, " ") + , (13424, 0, "i") + , (13425, 0, "n") + , (13426, 0, "t") + , (13427, 0, " ") + , (13428, 0, "h") + , (13429, 0, "e") + , (13430, 0, " ") + , (13424, 7, "i") + , (13425, 0, "n") + , (13426, 0, " ") + , (13427, 0, "t") + , (13428, 0, "h") + , (13429, 0, "e") + , (13430, 0, " ") + , (13431, 0, "S") + , (13432, 0, "k") + , (13433, 0, "i") + , (13434, 0, "p") + , (13435, 0, "l") + , (13436, 0, "i") + , (13437, 0, "s") + , (13438, 0, "t") + , (13439, 0, " ") + , (13440, 0, "t") + , (13441, 0, "y") + , (13442, 0, "p") + , (13443, 0, "e") + , (13444, 0, ".") + , (13445, 0, " ") + , (13446, 0, "I") + , (13447, 0, "'") + , (13446, 2, "T") + , (13447, 0, "h") + , (13448, 0, "e") + , (13449, 0, "r") + , (13450, 0, "e") + , (13451, 0, "'") + , (13452, 0, "s") + , (13453, 0, " ") + , (13454, 0, "p") + , (13455, 0, "r") + , (13456, 0, "o") + , (13457, 0, "b") + , (13458, 0, "a") + , (13459, 0, "b") + , (13460, 0, "l") + , (13461, 0, "y") + , (13462, 0, " ") + , (13463, 0, "a") + , (13464, 0, " ") + , (13465, 0, "w") + , (13466, 0, "a") + , (13467, 0, "y") + , (13468, 0, " ") + , (13469, 0, "o") + , (13470, 0, "u") + , (13471, 0, "t") + , (13472, 0, " ") + , (13473, 0, "o") + , (13474, 0, "f") + , (13475, 0, " ") + , (13476, 0, "t") + , (13477, 0, "h") + , (13478, 0, "i") + , (13479, 0, "s") + , (13480, 0, " ") + , (13481, 0, "m") + , (13482, 0, "e") + , (13483, 0, "s") + , (13484, 0, "s") + , (13485, 0, ",") + , (13486, 0, " ") + , (13487, 0, "b") + , (13488, 0, "u") + , (13489, 0, "t") + , (13490, 0, " ") + , (13491, 0, "I") + , (13492, 0, "'") + , (13493, 0, "m") + , (13494, 0, " ") + , (13495, 0, "n") + , (13496, 0, "o") + , (13497, 0, "t") + , (13498, 0, " ") + , (13499, 0, "g") + , (13500, 0, "o") + , (13501, 0, "o") + , (13502, 0, "d") + , (13503, 0, " ") + , (13504, 0, "e") + , (13505, 0, "n") + , (13506, 0, "o") + , (13507, 0, "u") + , (13508, 0, "g") + , (13509, 0, "h") + , (13510, 0, " ") + , (13511, 0, "a") + , (13512, 0, "t") + , (13513, 0, " ") + , (13514, 0, "R") + , (13515, 0, "u") + , (13516, 0, "s") + , (13517, 0, "t") + , (13518, 0, " ") + , (13514, 5, "r") + , (13515, 0, "u") + , (13516, 0, "s") + , (13517, 0, "t") + , (13518, 0, " ") + , (13519, 0, "t") + , (13520, 0, "o") + , (13521, 0, " ") + , (13522, 0, "f") + , (13523, 0, "i") + , (13524, 0, "g") + , (13525, 0, "u") + , (13526, 0, "r") + , (13527, 0, "e") + , (13528, 0, " ") + , (13529, 0, "i") + , (13530, 0, "t") + , (13531, 0, " ") + , (13532, 0, "o") + , (13533, 0, "u") + , (13534, 0, "t") + , (13535, 0, ".") + , (13536, 0, "\n ") + , (13537, 4, "") + , (13331, 0, "T") + , (13332, 0, "O") + , (13333, 0, "D") + , (13334, 0, "O") + , (13335, 0, ":") + , (13336, 0, " ") + , ( 13324 + , 218 + , " // TODO: The cursor can't outlive the skiplist, but doing this makes it\n // tricky to pass cursors around in the Skiplist type. There's probably a\n // way out of this mess, but I'm not good enough at rust to figure it out." + ) + , (13556, 1, "") + , (13640, 1, "") + , (13639, 1, "") + , (13638, 1, "") + , (13637, 1, "") + , (16712, 1, "") + , (16711, 1, "") + , (16710, 1, "") + , (16709, 1, "") + , (17453, 1, "") + , (17396, 1, "") + , (17451, 1, "") + , (17395, 1, "") + , (17449, 1, "") + , (17394, 1, "") + , (17447, 1, "") + , (17393, 1, "") + , (27904, 0, "// ") + , (29887, 0, "// ") + , (53603, 124, "") + , ( 53816 + , 0 + , "\n notify(std::slice::from_ref(item), ItemMarker {\n ptr: e,\n _phantom: PhantomData,\n });\n" + ) + , (13614, 1, "") + , (13613, 1, "") + , (13612, 1, "") + , (13611, 1, "") + , (16115, 1, "") + , (16115, 0, "s") + , (16116, 0, "t") + , (16117, 0, "a") + , (16118, 0, "t") + , (16119, 0, "i") + , (16120, 0, "c") + , (16342, 1, "") + , (16342, 0, "s") + , (16343, 0, "t") + , (16344, 0, "a") + , (16345, 0, "t") + , (16346, 0, "i") + , (16347, 0, "c") + , (16342, 6, "") + , (16342, 0, "a") + , (16115, 6, "") + , (16115, 0, "a") + , (13611, 0, "'a, ") + , (52155, 0, "p") + , (52156, 0, "u") + , (52157, 0, "b") + , (52158, 0, " ") + , (17405, 4, "") + , (17360, 4, "") + , (16669, 4, "") + , (11778, 5885, "") + , ( 11778 + , 0 + , "\n/// This is a set of pointers with metadata into a location in the list needed\n/// to skip ahead, delete and insert in items. A cursor is reasonably heavy\n/// weight - we fill in and maintain as many entries as the height of the list\n/// dictates.\n///\n/// This is not needed for simply iterating sequentially through nodes and data.\n/// For that look at NodeIter.\n///\n/// Note most/all methods using cursors are unsafe. This is because cursors use\n/// raw mutable pointers into the list, so when used the following rules have to\n/// be followed:\n///\n/// - Whenever a write happens (insert/remove/replace), any cursor not passed to\n/// the write function is invalid.\n/// - While a cursor is held the SkipList struct should be considered pinned and\n/// must not be moved or deleted\n#[derive(Copy, Clone)]\npub struct Cursor {\n /// The global user position of the cursor in the entire list. This is used\n /// for when the max seen height increases, so we can populate previously\n /// unused entries in the cursor and in the head node.\n ///\n /// This field isn't strictly necessary - earlier versions tacked this on to\n /// the last item in entries... I'm still not sure the cleanest way to do\n /// this.\n userpos: usize,\n\n /// When the userpos of an entry is 0 (totally valid and useful), a cursor\n /// becomes ambiguous with regard to where exactly its pointing in the\n /// current entry. This is used to resolve that ambiguity.\n local_index: usize,\n\n entries: [SkipEntry; MAX_HEIGHT],\n\n // TODO: The cursor can't outlive the skiplist, but doing this makes it\n // tricky to pass cursors around in the Skiplist type. There's probably a\n // way out of this mess, but I'm not good enough at rust to figure it out.\n // _marker: PhantomData<&'a SkipList>,\n}\n\nimpl<'a, C: ListConfig> Cursor {\n fn update_offsets(&mut self, height: usize, by: isize) {\n for i in 0..height {\n unsafe {\n // This is weird but makes sense when you realise the nexts in\n // the cursor are pointers into the elements that have the\n // actual pointers.\n // Also adding a usize + isize is awful in rust :/\n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;\n *skip = skip.wrapping_add(by as usize);\n }\n }\n }\n\n /// Move a cursor to the start of the next node. Returns the new node (or a\n /// nullptr if this is the end of the list).\n fn advance_node(&mut self) -> *mut Node {\n unsafe {\n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];\n // offset tells us how far into the current element we are (in\n // usersize). We need to increment the offsets by the entry's\n // remaining length to get to the start of the next node.\n let advance_by = (*e).get_userlen() - offset;\n let next = (*e).get_next_ptr();\n let height = (*next).height as usize;\n\n for i in 0..height {\n self.entries[i] = SkipEntry {\n node: next,\n skip_usersize: 0\n };\n }\n\n for i in height..self.entries.len() {\n self.entries[i].skip_usersize += advance_by;\n }\n\n self.userpos += advance_by;\n self.local_index = 0;\n\n next\n }\n }\n\n fn is_at_node_end(&self) -> bool {\n self.local_index == unsafe { (*self.here_ptr()).num_items } as usize\n }\n\n fn advance_item(&mut self, height: u8) {\n if self.is_at_node_end() { self.advance_node(); }\n let usersize = C::get_usersize(unsafe { self.current_item() });\n\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize += usersize;\n }\n self.userpos += usersize;\n self.local_index += 1;\n }\n\n fn advance_by_items(&mut self, num: usize, height: u8) {\n for _ in 0..num { self.advance_item(height); }\n }\n\n fn move_to_item_start(&mut self, height: u8, offset: usize) {\n for entry in &mut self.entries[0..height as usize] {\n entry.skip_usersize -= offset;\n }\n self.userpos -= offset;\n }\n\n unsafe fn current_item(&mut self) -> &'a C::Item {\n let node = &*self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &*(node.items[self.local_index].as_ptr())\n }\n\n unsafe fn current_item_mut(&mut self) -> &'a mut C::Item {\n let node = &mut *self.here_ptr();\n debug_assert!(node.num_items as usize >= self.local_index);\n &mut *(node.items[self.local_index].as_mut_ptr())\n }\n\n /// Get the pointer to the cursor's current node\n fn here_ptr(&self) -> *mut Node {\n self.entries[0].node\n }\n}\n\nimpl PartialEq for Cursor {\n /// Warning: This returns false if one cursor is at the end of a node, and\n /// the other at the start of the next node. Almost all code in this library\n /// leaves cursors at the end of nodes, so this shouldn't matter too much in\n /// practice.\n fn eq(&self, other: &Self) -> bool {\n if self.userpos != other.userpos\n || self.local_index != other.local_index {return false; }\n\n for i in 0..MAX_HEIGHT {\n let a = &self.entries[i];\n let b = &other.entries[i];\n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }\n }\n true\n }\n}\nimpl Eq for Cursor {}\n\nimpl fmt::Debug for Cursor {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_struct(\"Cursor\")\n .field(\"userpos\", &self.userpos)\n .field(\"local_index\", &self.local_index)\n .finish()\n }\n}\n" + ) + , (1835, 0, "// ") + , (1790, 1, "") + , (1789, 1, "") + , (1788, 1, "") + , (1787, 1, "") + , (36084, 0, "// ") + , (39905, 0, "// ") + , (51076, 0, "// ") + , (53905, 0, "// ") + , (30972, 0, "u") + , (30973, 0, "n") + , (30974, 0, "s") + , (30975, 0, "a") + , (30976, 0, "f") + , (30977, 0, "e") + , (30978, 0, " ") + , (30972, 7, "") + , (30976, 0, "u") + , (30977, 0, "n") + , (30978, 0, "s") + , (30979, 0, "a") + , (30980, 0, "f") + , (30981, 0, "e") + , (30982, 0, " ") + , (31183, 17, "") + , (31754, 12, " ") + , (31661, 12, " ") + , (31646, 12, " ") + , (31628, 16, " ") + , (31575, 20, " ") + , (31550, 16, " ") + , (31523, 20, " ") + , (31480, 20, " ") + , (31437, 20, " ") + , (31366, 16, " ") + , (31295, 12, " ") + , (31255, 12, " ") + , (31216, 12, " ") + , (31183, 12, " ") + , (31752, 10, "") + , (30967, 0, "\n ") + , (30972, 0, "/") + , (30973, 0, "/") + , (30974, 0, "/") + , (30975, 0, " ") + , (30976, 0, "S") + , (30977, 0, "A") + , (30978, 0, "F") + , (30979, 0, "E") + , (30980, 0, "T") + , (30981, 0, "Y") + , (30982, 0, ":") + , (30983, 0, " ") + , (30984, 0, "T") + , (30985, 0, "h") + , (30986, 0, "e") + , (30987, 0, " ") + , (30988, 0, "m") + , (30988, 1, "") + , (30984, 4, "S") + , (30985, 0, "e") + , (30986, 0, "l") + , (30987, 0, "f") + , (30988, 0, " ") + , (30989, 0, "m") + , (30990, 0, "u") + , (30991, 0, "s") + , (30992, 0, "t") + , (30993, 0, " ") + , (30994, 0, "o") + , (30995, 0, "u") + , (30996, 0, "t") + , (30997, 0, "l") + , (30998, 0, "a") + , (30999, 0, "s") + , (31000, 0, " ") + , (31001, 0, "t") + , (31001, 1, "") + , (31000, 1, "") + , (31000, 0, "t") + , (31001, 0, " ") + , (31002, 0, "t") + , (31003, 0, "h") + , (31004, 0, "e") + , (31005, 0, " ") + , (31006, 0, "l") + , (31007, 0, "i") + , (31008, 0, "f") + , (31009, 0, "e") + , (31010, 0, "t") + , (31011, 0, "i") + , (31012, 0, "m") + , (31013, 0, "e") + , (31006, 8, "m") + , (31007, 0, "a") + , (31008, 0, "r") + , (31009, 0, "k") + , (31010, 0, "e") + , (31011, 0, "r") + , (31012, 0, " ") + , (31013, 0, "a") + , (31014, 0, "n") + , (31015, 0, "d") + , (31016, 0, " ") + , (31017, 0, "n") + , (31018, 0, "o") + , (31019, 0, "t") + , (31020, 0, " ") + , (31021, 0, "h") + , (31022, 0, "a") + , (31023, 0, "v") + , (31024, 0, "e") + , (31025, 0, " ") + , (31026, 0, "b") + , (31027, 0, "e") + , (31028, 0, "e") + , (31029, 0, "n") + , (31030, 0, " ") + , (31031, 0, "m") + , (31032, 0, "o") + , (31033, 0, "v") + , (31034, 0, "e") + , (31035, 0, "d") + , (31036, 0, " ") + , (31037, 0, "s") + , (31038, 0, "i") + , (31039, 0, "n") + , (31040, 0, "c") + , (31041, 0, "e") + , (31042, 0, " ") + , (31043, 0, "t") + , (31044, 0, "h") + , (31045, 0, "e") + , (31046, 0, " ") + , (31047, 0, "m") + , (31048, 0, "a") + , (31049, 0, "r") + , (31050, 0, "k") + , (31051, 0, "e") + , (31052, 0, "r") + , (31053, 0, " ") + , (31054, 0, "w") + , (31055, 0, "a") + , (31056, 0, "s") + , (31057, 0, " ") + , (31058, 0, "c") + , (31059, 0, "r") + , (31060, 0, "e") + , (31061, 0, "a") + , (31062, 0, "t") + , (31063, 0, "e") + , (31064, 0, "d") + , (31065, 0, ".") + , (31066, 0, " ") + , (31067, 0, "S") + , (31068, 0, "e") + , (31069, 0, "l") + , (31070, 0, "f") + , (31071, 0, " ") + , (31072, 0, "s") + , (31073, 0, "h") + , (31074, 0, "o") + , (31075, 0, "u") + , (31076, 0, "l") + , (31077, 0, "d") + , (31078, 0, " ") + , (31079, 0, "r") + , (31080, 0, "e") + , (31081, 0, "a") + , (31082, 0, "l") + , (31083, 0, "l") + , (31084, 0, "y") + , (31085, 0, " ") + , (31086, 0, "b") + , (31087, 0, "e") + , (31088, 0, " ") + , (31089, 0, "P") + , (31090, 0, "i") + , (31091, 0, "n") + , (31092, 0, "<") + , (31093, 0, "*") + , (31093, 1, "") + , (31093, 0, "&") + , (31093, 1, "") + , (31093, 0, ">") + , (31094, 0, "!") + , ( 30968 + , 127 + , " /// SAFETY: Self must outlast the marker and not have been moved since the\n /// marker was created. Self should really be Pin<>!" + ) + , (1764, 0, "\n") + , (1765, 0, "#") + , (1766, 0, "[") + , (1767, 0, "d") + , (1768, 0, "e") + , (1769, 0, "r") + , (1770, 0, "i") + , (1771, 0, "v") + , (1772, 0, "e") + , (1773, 0, "(") + , (1774, 0, "C") + , (1774, 1, "Clone") + , (1779, 0, ",") + , (1780, 0, " ") + , (1780, 1, "") + , (1780, 0, " ") + , (1781, 0, "C") + , (1782, 0, "o") + , (1783, 0, "p") + , (1784, 0, "y") + , (1785, 0, ")") + , (1786, 0, "]") + , (53052, 0, "// ") + , (53135, 0, "\n ") + , (53144, 0, "s") + , (53145, 0, "e") + , (53146, 0, "l") + , (53147, 0, "f") + , (53148, 0, ".") + , (53149, 0, "m") + , (53150, 0, "o") + , (53151, 0, "d") + , (53152, 0, "i") + , (53153, 0, "f") + , (53149, 5, "modify_at(userpos: usize, mut notify: Notify, modify_fn: F)") + , (53159, 14, "s") + , (53160, 0, "t") + , (53161, 0, "a") + , (53162, 0, "r") + , (53163, 0, "t") + , (53164, 0, "_") + , (53165, 0, "u") + , (53166, 0, "s") + , (53167, 0, "e") + , (53168, 0, "r") + , (53169, 0, "p") + , (53170, 0, "o") + , (53171, 0, "s") + , (53174, 18, "S") + , (53175, 0, "e") + , (53176, 0, "l") + , (53177, 0, "f") + , (53178, 0, ":") + , (53179, 0, ":") + , (53180, 0, "N") + , (53180, 1, "") + , (53180, 0, "n") + , (53181, 0, "o") + , (53180, 2, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (53190, 18, "") + , (53190, 1, "") + , (53189, 1, "") + , (53189, 24, "") + , (53191, 12, "") + , (53191, 0, "|") + , (53192, 0, "i") + , (53193, 0, "t") + , (53194, 0, "e") + , (53195, 0, "m") + , (53196, 0, ",") + , (53197, 0, " ") + , (53198, 0, "o") + , (53199, 0, "f") + , (53200, 0, "f") + , (53201, 0, "s") + , (53202, 0, "e") + , (53203, 0, "t") + , (53204, 0, "|") + , (53205, 0, " ") + , (53206, 0, "{") + , (53207, 0, "\n ") + , (53220, 0, "\n ") + , (53221, 8, " }") + , (53220, 0, "a") + , (53221, 0, "s") + , (53222, 0, "s") + , (53220, 3, "assert_eq!") + , (53230, 0, "(") + , (53231, 0, "o") + , (53232, 0, "f") + , (53233, 0, "f") + , (53234, 0, "s") + , (53235, 0, "e") + , (53236, 0, "t") + , (53237, 0, ",") + , (53238, 0, " ") + , (53239, 0, "0") + , (53240, 0, ",") + , (53241, 0, " ") + , (53242, 0, "\"") + , (53243, 0, "r") + , (53244, 0, "e") + , (53245, 0, "p") + , (53246, 0, "l") + , (53247, 0, "a") + , (53248, 0, "c") + , (53249, 0, "e") + , (53250, 0, "_") + , (53251, 0, "a") + , (53252, 0, "t") + , (53253, 0, " ") + , (53254, 0, "c") + , (53255, 0, "a") + , (53256, 0, "n") + , (53257, 0, "n") + , (53258, 0, "o") + , (53259, 0, "t") + , (53260, 0, " ") + , (53254, 7, "m") + , (53255, 0, "u") + , (53256, 0, "s") + , (53257, 0, "t") + , (53258, 0, " ") + , (53259, 0, "m") + , (53260, 0, "o") + , (53261, 0, "d") + , (53262, 0, "i") + , (53263, 0, "f") + , (53264, 0, "y") + , (53265, 0, " ") + , (53266, 0, "t") + , (53267, 0, "h") + , (53268, 0, "e") + , (53269, 0, " ") + , (53270, 0, "e") + , (53271, 0, "n") + , (53272, 0, "t") + , (53273, 0, "i") + , (53274, 0, "r") + , (53275, 0, "e") + , (53276, 0, " ") + , (53277, 0, "i") + , (53278, 0, "t") + , (53279, 0, "e") + , (53280, 0, "m") + , (53281, 0, "\"") + , (53282, 0, ")") + , (53283, 0, ";") + , (53284, 0, "\n ") + , (53297, 0, "*") + , (53298, 0, "i") + , (53299, 0, "t") + , (53300, 0, "e") + , (53301, 0, "m") + , (53302, 0, " ") + , (53303, 0, " ") + , (53303, 1, "") + , (53303, 0, "=") + , (53304, 0, " ") + , (53136, 180, "") + , (53135, 1, "") + , (53052, 3, "") + , (51850, 0, "// ") + , (51920, 0, "\n ") + , (51929, 0, "\n ") + , (51921, 8, "") + , ( 51930 + , 0 + , " self.modify_at(start_userpos, Self::no_notify, |item, offset| {\n assert_eq!(offset, 0, \"replace_at must modify the entire item\");\n *item = \n })" + ) + , (51922, 16, " ") + , (51922, 8, " ") + , (51922, 16, " ") + , (52100, 0, "// ") + , (52079, 0, "// ") + , (52002, 0, "// ") + , (51930, 0, "// ") + , (51850, 3, "") + , (54399, 1, "") + , (54399, 0, "\n ") + , (54404, 0, "where Notify: FnMut(&[C::Item], ItemMarker), ") + , (54452, 6, "") + , (54383, 0, "mut notify: Notify, ") + , (54349, 0, "N") + , (54350, 0, "o") + , (54351, 0, "t") + , (54352, 0, "i") + , (54353, 0, "f") + , (54354, 0, "y") + , (54355, 0, ",") + , (54356, 0, " ") + , (54391, 19, "") + , (54390, 1, "") + , (54406, 0, "mut notify: Notify,") + , (54424, 1, "") + , (54406, 0, ",") + , (54407, 0, " ") + , (55993, 0, ",") + , (55994, 0, " ") + , (55995, 0, "S") + , (55996, 0, "e") + , (55997, 0, "l") + , (55998, 0, "f") + , (55999, 0, ":") + , (56000, 0, ":") + , (56001, 0, "n") + , (56002, 0, "o") + , (56001, 2, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (56011, 18, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 1, "") + , (56011, 17, "") + , (56010, 1, "") + , (56010, 1, "") + , (55784, 20, "&") + , (55608, 20, "&") + , (55399, 20, "&") + , (54847, 20, "&") + , (55728, 0, "n") + , (55571, 0, "n") + , (55381, 0, "n") + , (54848, 0, "n") + , (55732, 0, "o") + , (55574, 0, "o") + , (55383, 0, "o") + , (54849, 0, "o") + , (55736, 0, "t") + , (55577, 0, "t") + , (55385, 0, "t") + , (54850, 0, "t") + , (55740, 0, "i") + , (55580, 0, "i") + , (55387, 0, "i") + , (54851, 0, "i") + , (55744, 0, "f") + , (55583, 0, "f") + , (55389, 0, "f") + , (54852, 0, "f") + , (55748, 0, "y") + , (55586, 0, "y") + , (55391, 0, "y") + , (54853, 0, "y") + , (55746, 0, "m") + , (55583, 0, "m") + , (55387, 0, "m") + , (54848, 0, "m") + , (55750, 0, "u") + , (55586, 0, "u") + , (55389, 0, "u") + , (54849, 0, "u") + , (55754, 0, "t") + , (55589, 0, "t") + , (55391, 0, "t") + , (54850, 0, "t") + , (55758, 0, " ") + , (55592, 0, " ") + , (55393, 0, " ") + , (54851, 0, " ") + , (21405, 0, ",") + , (21406, 0, " ") + , (21407, 0, "S") + , (21408, 0, "e") + , (21409, 0, "l") + , (21410, 0, "f") + , (21411, 0, ":") + , (21412, 0, ":") + , (21413, 0, "n") + , (21414, 0, "o") + , (21413, 2, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (21422, 44, "") + , (56641, 0, "\n ") + , (56646, 0, "\n ") + , (56642, 4, "") + , (56647, 0, "p") + , (56648, 0, "u") + , (56649, 0, "b") + , (56650, 0, " ") + , (56651, 0, "f") + , (56652, 0, "n") + , (56653, 0, " ") + , (56654, 0, "e") + , (56655, 0, "i") + , (56656, 0, "d") + , (56656, 1, "") + , (56655, 1, "") + , (56655, 0, "d") + , (56656, 0, "i") + , (56657, 0, "t") + , (56658, 0, "(") + , (56659, 0, "&") + , (56660, 0, "m") + , (56661, 0, "u") + , (56662, 0, "t") + , (56663, 0, " ") + , (56664, 0, "s") + , (56665, 0, "e") + , (56666, 0, "l") + , (56667, 0, "f") + , (56668, 0, ")") + , (56668, 0, ",") + , (56669, 0, " ") + , (56658, 0, "<") + , (56659, 0, "R") + , (56660, 0, ">") + , (56674, 0, " ") + , (56675, 0, "-") + , (56676, 0, ">") + , (56677, 0, " ") + , (56678, 0, "R") + , (56659, 0, "F") + , (56660, 0, ",") + , (56661, 0, " ") + , (56676, 0, "f") + , (56677, 0, ":") + , (56678, 0, " ") + , (56679, 0, "F") + , (56686, 0, " ") + , (56686, 1, "") + , (56686, 0, "\n ") + , (56691, 0, "w") + , (56692, 0, "h") + , (56693, 0, "e") + , (56694, 0, "r") + , (56695, 0, "e") + , (56696, 0, " ") + , (56697, 0, "F") + , (56698, 0, ":") + , (56699, 0, " ") + , (56700, 0, "F") + , (56701, 0, "n") + , (56702, 0, "O") + , (56703, 0, "n") + , (56700, 4, "FnOnce") + , (56706, 0, "(") + , (56707, 0, "E") + , (56708, 0, "d") + , (56709, 0, "i") + , (56710, 0, "t") + , (56711, 0, "<") + , (56712, 0, "C") + , (56713, 0, ">") + , (56714, 0, ")") + , (56707, 0, "&") + , (56708, 0, "m") + , (56709, 0, "u") + , (56710, 0, "t") + , (56711, 0, " ") + , (56720, 0, " ") + , (56721, 0, "{") + , (56722, 0, "\n ") + , (56731, 0, "\n ") + , (56723, 8, "") + , (56724, 8, " }") + , (56723, 0, " ") + , (56723, 8, "") + , (56675, 0, " ") + , (56676, 0, "u") + , (56677, 0, "s") + , (56678, 0, "e") + , (56679, 0, "r") + , (56680, 0, "p") + , (56681, 0, "o") + , (56682, 0, "s") + , (56683, 0, ":") + , (56684, 0, " ") + , (56685, 0, "u") + , (56686, 0, "s") + , (56687, 0, "i") + , (56688, 0, "z") + , (56689, 0, "e") + , (56690, 0, ",") + , (57754, 0, "\n") + , (57755, 0, "\n") + , (57756, 0, "\n") + , (57757, 0, "\n") + , (57758, 0, "\n") + , (57755, 0, "s") + , (57756, 0, "t") + , (57757, 0, "r") + , (57758, 0, "u") + , (57759, 0, "c") + , (57760, 0, "t") + , (57761, 0, " ") + , (57762, 0, "E") + , (57763, 0, "d") + , (57764, 0, "i") + , (57765, 0, "t") + , (57766, 0, " ") + , (57755, 0, "p") + , (57756, 0, "u") + , (57757, 0, "b") + , (57758, 0, " ") + , (57771, 0, "{") + , (57772, 0, "\n ") + , (57777, 0, "\n ") + , (57773, 4, "") + , (57774, 4, "}") + , (57773, 0, " ") + , (57777, 0, "&") + , (57777, 1, "") + , (57777, 0, "l") + , (57778, 0, "i") + , (57779, 0, "s") + , (57780, 0, "t") + , (57781, 0, ":") + , (57782, 0, " ") + , (57783, 0, "&") + , (57784, 0, "m") + , (57785, 0, "u") + , (57786, 0, "t") + , (57787, 0, " ") + , (57770, 0, "<") + , (57771, 0, "'") + , (57772, 0, "a") + , (57773, 0, ">") + , (57788, 0, "'") + , (57789, 0, "a") + , (57790, 0, " ") + , (57795, 0, "C") + , (57796, 0, "R") + , (57797, 0, "D") + , (57798, 0, "T") + , (57795, 4, "S") + , (57796, 0, "k") + , (57797, 0, "i") + , (57798, 0, "l") + , (57795, 4, "SkipList") + , (57773, 0, ",") + , (57774, 0, " ") + , (57775, 0, "C") + , (57776, 0, ":") + , (57777, 0, " ") + , (57778, 0, "L") + , (57779, 0, "i") + , (57780, 0, "s") + , (57778, 3, "ListConfig") + , (57818, 0, "<") + , (57819, 0, "C") + , (57820, 0, ">") + , (57821, 0, ",") + , (57822, 0, "\n ") + , (57827, 0, "c") + , (57828, 0, "u") + , (57829, 0, "r") + , (57830, 0, "s") + , (57831, 0, "o") + , (57832, 0, "r") + , (57833, 0, ":") + , (57834, 0, " ") + , (57835, 0, "C") + , (57836, 0, "u") + , (57837, 0, "r") + , (57835, 3, "Cursor") + , (57841, 0, "<") + , (57842, 0, "C") + , (57843, 0, ">") + , (57844, 0, ",") + , (57845, 0, "\n ") + , (57850, 0, "l") + , (57851, 0, "o") + , (57852, 0, "c") + , (57853, 0, "a") + , (57854, 0, "l") + , (57855, 0, "_") + , (57856, 0, "o") + , (57857, 0, "f") + , (57858, 0, "f") + , (57859, 0, "s") + , (57860, 0, "e") + , (57861, 0, "t") + , (57862, 0, ":") + , (57863, 0, " ") + , (57864, 0, "u") + , (57865, 0, "s") + , (57866, 0, "i") + , (57867, 0, "z") + , (57868, 0, "e") + , (57869, 0, ",") + , (57870, 0, " ") + , (57871, 0, "/") + , (57872, 0, "/") + , (57873, 0, " ") + , (57874, 0, "O") + , (57875, 0, "f") + , (57876, 0, "f") + , (57877, 0, "s") + , (57878, 0, "e") + , (57879, 0, "t") + , (57880, 0, " ") + , (57881, 0, "i") + , (57882, 0, "n") + , (57883, 0, "t") + , (57884, 0, "o") + , (57885, 0, " ") + , (57886, 0, "t") + , (57887, 0, "h") + , (57888, 0, "e") + , (57889, 0, " ") + , (57890, 0, "c") + , (57891, 0, "u") + , (57892, 0, "r") + , (57893, 0, "r") + , (57894, 0, "e") + , (57895, 0, "n") + , (57896, 0, "t") + , (57897, 0, " ") + , (57898, 0, "i") + , (57899, 0, "t") + , (57900, 0, "e") + , (57901, 0, "m") + , (57902, 0, ".") + , (57907, 0, "i") + , (57908, 0, "m") + , (57909, 0, "p") + , (57910, 0, "l") + , (57911, 0, " ") + , (57912, 0, "E") + , (57913, 0, "d") + , (57914, 0, "i") + , (57915, 0, "t") + , (57911, 0, "<") + , (57912, 0, "'") + , (57913, 0, "a") + , (57914, 0, ",") + , (57915, 0, " ") + , (57916, 0, "C") + , (57917, 0, ":") + , (57918, 0, " ") + , (57919, 0, "L") + , (57920, 0, "i") + , (57921, 0, "s") + , (57922, 0, "t") + , (57919, 4, "ListConfig") + , (57929, 0, ">") + , (57935, 0, "<") + , (57936, 0, "'") + , (57937, 0, "a") + , (57938, 0, ",") + , (57939, 0, " ") + , (57940, 0, "C") + , (57941, 0, ">") + , (57942, 0, " ") + , (57943, 0, "{") + , (57944, 0, "\n ") + , (57949, 0, "\n ") + , (57945, 4, "") + , (57946, 4, "}") + , (56739, 0, " ") + , (56747, 0, "l") + , (56748, 0, "e") + , (56749, 0, "t") + , (56750, 0, " ") + , (56751, 0, "e") + , (56752, 0, "d") + , (56753, 0, "i") + , (56754, 0, "t") + , (56755, 0, " ") + , (56756, 0, "=") + , (56757, 0, " ") + , (56758, 0, "E") + , (56759, 0, "d") + , (56760, 0, "i") + , (56761, 0, "t") + , (56762, 0, " ") + , (56763, 0, "{") + , (56764, 0, "\n ") + , (56765, 12, " }") + , (56764, 0, "\n ") + , (56777, 0, "l") + , (56778, 0, "i") + , (56779, 0, "s") + , (56780, 0, "t") + , (56781, 0, ":") + , (56782, 0, " ") + , (56783, 0, "s") + , (56784, 0, "e") + , (56785, 0, "l") + , (56786, 0, "f") + , (56787, 0, ",") + , (56788, 0, "\n ") + , (56801, 0, "c") + , (56802, 0, "u") + , (56803, 0, "r") + , (56804, 0, "s") + , (56805, 0, "o") + , (56806, 0, "r") + , (56807, 0, ":") + , (56808, 0, " ") + , (56809, 0, "c") + , (56810, 0, "u") + , (56811, 0, "r") + , (56812, 0, "s") + , (56809, 4, "t") + , (56810, 0, "h") + , (56811, 0, "i") + , (56812, 0, "s") + , (56813, 0, ".") + , (56814, 0, "c") + , (56809, 6, "s") + , (56810, 0, "e") + , (56811, 0, "l") + , (56812, 0, "f") + , (56813, 0, ".") + , (56814, 0, "c") + , (56815, 0, "u") + , (56816, 0, "r") + , (56816, 1, "") + , (56815, 1, "") + , (56738, 0, "\n ") + , (56747, 0, "l") + , (56748, 0, "e") + , (56749, 0, "t") + , (56750, 0, " ") + , (56751, 0, "(") + , (56752, 0, "c") + , (56753, 0, "u") + , (56754, 0, "r") + , (56755, 0, "s") + , (56756, 0, "o") + , (56757, 0, "r") + , (56758, 0, ",") + , (56759, 0, " ") + , (56760, 0, "o") + , (56761, 0, "f") + , (56762, 0, "f") + , (56763, 0, "s") + , (56764, 0, "e") + , (56765, 0, "t") + , (56766, 0, ")") + , (56767, 0, " ") + , (56768, 0, "=") + , (56769, 0, " ") + , (56770, 0, "s") + , (56771, 0, "e") + , (56772, 0, "l") + , (56773, 0, "f") + , (56774, 0, ".") + , (56775, 0, "i") + , (56776, 0, "t") + , (56777, 0, "e") + , (56778, 0, "r") + , (56779, 0, "_") + , (56775, 5, "iter_at_userpos(target_userpos: usize)") + , (56791, 21, "u") + , (56792, 0, "s") + , (56793, 0, "e") + , (56794, 0, "r") + , (56795, 0, "p") + , (56796, 0, "o") + , (56797, 0, "s") + , (56799, 0, ";") + , (56871, 6, "c") + , (56872, 0, "u") + , (56873, 0, "r") + , (56874, 0, "s") + , (56875, 0, "o") + , (56876, 0, "r") + , (56877, 0, ",") + , (56878, 0, "\n ") + , (56891, 0, "l") + , (56892, 0, "o") + , (56893, 0, "c") + , (56894, 0, "a") + , (56895, 0, "l") + , (56891, 5, "local_offset") + , (56903, 0, ":") + , (56904, 0, " ") + , (56905, 0, "o") + , (56906, 0, "f") + , (56907, 0, "f") + , (56908, 0, "s") + , (56909, 0, "e") + , (56910, 0, "t") + , (56921, 0, ";") + , (56922, 0, "\n ") + , (56931, 0, "\n ") + , (56923, 8, "") + , (56932, 0, "f") + , (56933, 0, "(") + , (56934, 0, "e") + , (56935, 0, "d") + , (56936, 0, "i") + , (56937, 0, "t") + , (56938, 0, ")") + , (56934, 0, "*") + , (56934, 1, "") + , (56934, 0, "&") + , (56935, 0, "m") + , (56936, 0, "u") + , (56937, 0, "t") + , (56938, 0, " ") + , (56736, 0, " ") + , (56737, 0, "-") + , (56738, 0, ">") + , (56739, 0, " ") + , (56740, 0, "R") + , (56817, 0, " ") + , (56818, 0, "m") + , (56819, 0, "u") + , (56820, 0, "t") + , (56821, 0, " ") + , (56821, 1, "") + , (56932, 0, "\n ") + , (56941, 0, "/") + , (56942, 0, "/") + , (56943, 0, " ") + , (56944, 0, "T") + , (56945, 0, "O") + , (56946, 0, "D") + , (56947, 0, "O") + , (56948, 0, ":") + , (56949, 0, " ") + , (56950, 0, "O") + , (56951, 0, "r") + , (56952, 0, " ") + , (56953, 0, "m") + , (56954, 0, "a") + , (56955, 0, "y") + , (56956, 0, "b") + , (56957, 0, "e") + , (56958, 0, " ") + , (56959, 0, "I") + , (56960, 0, " ") + , (56961, 0, "s") + , (56962, 0, "h") + , (56963, 0, "o") + , (56964, 0, "u") + , (56965, 0, "l") + , (56966, 0, "d") + , (56967, 0, " ") + , (56968, 0, "p") + , (56969, 0, "a") + , (56970, 0, "s") + , (56971, 0, "s") + , (56972, 0, " ") + , (56973, 0, "o") + , (56974, 0, "w") + , (56975, 0, "n") + , (56976, 0, "e") + , (56977, 0, "r") + , (56978, 0, "s") + , (56979, 0, "h") + , (56980, 0, "i") + , (56981, 0, "p") + , (56982, 0, " ") + , (56983, 0, "h") + , (56984, 0, "e") + , (56985, 0, "r") + , (56986, 0, "e") + , (56987, 0, "?") + , (55999, 643, "") + , ( 57572 + , 0 + , "\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.iter_at_userpos(userpos);\n if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n" + ) + , (57572, 643, "") + , ( 55999 + , 0 + , "\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.iter_at_userpos(userpos);\n if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n" + ) + , (56640, 0, "// ") + , (56630, 0, "// ") + , (56557, 0, "// ") + , (56500, 0, "// ") + , (56464, 0, "// ") + , (56402, 0, "// ") + , (56333, 0, "// ") + , (56267, 0, "// ") + , (56228, 0, "// ") + , (56168, 0, "// ") + , (56125, 0, "// ") + , (56073, 0, "// ") + , (56004, 0, "// ") + , ( 58254 + , 0 + , "\n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {\n userpos = min(userpos, self.get_userlen());\n // We can't easily trim num_items.\n // num_items = min(length, self.num_chars() - pos);\n if num_items == 0 { return; }\n\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.del_at_iter(&mut cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.iter_at_userpos(userpos);\n if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n" + ) + , (58282, 20, "") + , (58304, 194, "") + , (58304, 66, "") + , (58304, 68, "") + , ( 58304 + , 0 + , " assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n" + ) + , (58323, 0, "s") + , (58324, 0, "e") + , (58325, 0, "l") + , (58326, 0, "f") + , (58327, 0, ".") + , (58328, 0, "l") + , (58329, 0, "o") + , (58330, 0, "c") + , (58331, 0, "a") + , (58332, 0, "l") + , (58333, 0, "_") + , (58328, 5, "item") + , (58159, 5, "item") + , (56939, 5, "item") + , (58402, 0, ".") + , (58403, 0, "l") + , (58404, 0, "i") + , (58405, 0, "s") + , (58406, 0, "t") + , (58425, 6, "s") + , (58426, 0, "e") + , (58427, 0, "l") + , (58428, 0, "f") + , (58429, 0, ".") + , (58430, 0, "c") + , (58431, 0, "u") + , (58432, 0, "r") + , (58433, 0, "s") + , (58434, 0, "o") + , (58435, 0, "r") + , (58515, 4, "s") + , (58516, 0, "e") + , (58517, 0, "l") + , (58518, 0, "f") + , (58519, 0, ".") + , (58520, 0, "l") + , (58521, 0, "i") + , (58522, 0, "s") + , (58523, 0, "t") + , (58541, 7, "s") + , (58542, 0, "e") + , (58543, 0, "l") + , (58544, 0, "f") + , (58545, 0, ".") + , (58541, 5, "userpos") + , (58632, 0, "// ") + , (58559, 0, "// ") + , (58497, 0, "// ") + , (58461, 0, "// ") + , (58421, 3, "") + , (58421, 1, "") + , (43534, 4, "") + , (58445, 193, "") + , (58444, 1, "") + , (58248, 1, "") + , (58442, 0, "\n ") + , (58451, 0, "\n ") + , (58443, 8, "") + , (58452, 0, "/") + , (58453, 0, "/") + , (58454, 0, " ") + , (58455, 0, "T") + , (58456, 0, "O") + , (58457, 0, "D") + , (58458, 0, "O") + , (58459, 0, ":") + , (58460, 0, " ") + , (58461, 0, "C") + , (58462, 0, "h") + , (58463, 0, "e") + , (58464, 0, "c") + , (58465, 0, "k") + , (58466, 0, " ") + , (58467, 0, "t") + , (58468, 0, "h") + , (58469, 0, "e") + , (58470, 0, " ") + , (58471, 0, "c") + , (58472, 0, "u") + , (58473, 0, "r") + , (58474, 0, "s") + , (58475, 0, "o") + , (58476, 0, "r") + , (58477, 0, " ") + , (58478, 0, "i") + , (58479, 0, "s") + , (58480, 0, " ") + , (58481, 0, "s") + , (58482, 0, "t") + , (58483, 0, "i") + , (58484, 0, "l") + , (58485, 0, "l") + , (58486, 0, " ") + , (58487, 0, "v") + , (58488, 0, "a") + , (58489, 0, "l") + , (58490, 0, "i") + , (58491, 0, "d") + , (58492, 0, "?") + , (56676, 0, "\n ") + , (56681, 0, "\n ") + , (56677, 4, "") + , ( 56682 + , 0 + , "pub fn del_at(&mut self, mut userpos: usize, num_items: usize)" + ) + , (56744, 0, " ") + , (56745, 0, "{") + , (56746, 0, "\n ") + , (56755, 0, "\n ") + , (56747, 8, "") + , (56748, 8, " }") + , (56747, 0, " ") + , (56755, 0, "s") + , (56756, 0, "e") + , (56757, 0, "l") + , (56758, 0, "f") + , (56759, 0, ".") + , (56760, 0, "e") + , (56761, 0, "d") + , (56762, 0, "i") + , (56763, 0, "t") + , (56764, 0, "(") + , (56765, 0, "u") + , (56766, 0, "s") + , (56767, 0, "e") + , (56768, 0, "r") + , (56769, 0, "p") + , (56770, 0, "o") + , (56771, 0, "s") + , (56772, 0, ",") + , (56773, 0, " ") + , (56774, 0, "|") + , (56775, 0, "e") + , (56776, 0, "d") + , (56777, 0, "i") + , (56778, 0, "t") + , (56779, 0, "|") + , (56780, 0, " ") + , (56781, 0, "{") + , (56782, 0, "\n ") + , (56795, 0, "\n ") + , (56783, 12, "") + , (56784, 12, " }") + , (56793, 0, ")") + , (56783, 0, " ") + , (56795, 0, "e") + , (56796, 0, "d") + , (56797, 0, "i") + , (56798, 0, "t") + , (56799, 0, ".") + , (56800, 0, "d") + , (56801, 0, "e") + , (56802, 0, "l") + , (56803, 0, "_") + , (56804, 0, "a") + , (56805, 0, "t") + , (56806, 0, "(") + , (56807, 0, "n") + , (56808, 0, "u") + , (56809, 0, "m") + , (56810, 0, "_") + , (56811, 0, "i") + , (56812, 0, "t") + , (56813, 0, "e") + , (56814, 0, "m") + , (56815, 0, "s") + , (56816, 0, ")") + , (56817, 0, ";") + , (56707, 3, "") + , (56707, 1, "") + , (58598, 0, "\n ") + , ( 58607 + , 0 + , "\n // if cfg!(debug_assertions) {\n // let (c2, _) = self.iter_at_userpos(userpos);\n // if &cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n // }" + ) + , (58599, 8, "") + , (58779, 3, "") + , (58703, 3, "") + , (58643, 3, "") + , (58604, 3, "") + , (58683, 0, "s") + , (58684, 0, "e") + , (58685, 0, "l") + , (58686, 0, "f") + , (58687, 0, ".") + , (58688, 0, "c") + , (58689, 0, "u") + , (58690, 0, "r") + , (58691, 0, "s") + , (58692, 0, "o") + , (58693, 0, "r") + , (58694, 0, ".") + , (58666, 0, ".") + , (58667, 0, "l") + , (58668, 0, "i") + , (58669, 0, "s") + , (58670, 0, "t") + , (58671, 0, ".") + , (58671, 1, "") + , (58726, 0, "s") + , (58727, 0, "e") + , (58728, 0, "l") + , (58729, 0, "f") + , (58730, 0, ".") + , (58597, 1, "") + , (58797, 50, "") + , (55995, 682, "") + , (55813, 0, "// ") + , (55802, 0, "// ") + , (55788, 0, "// ") + , (55703, 0, "// ") + , (55622, 0, "// ") + , (55543, 0, "// ") + , (55503, 0, "// ") + , (55422, 0, "// ") + , (55353, 0, "// ") + , (55280, 0, "// ") + , (55211, 0, "// ") + , (55181, 0, "// ") + , (55110, 0, "// ") + , (55038, 0, "// ") + , (54980, 0, "// ") + , (54959, 0, "// ") + , (54879, 0, "// ") + , (54800, 0, "// ") + , (54771, 0, "// ") + , (54754, 0, "// ") + , (54687, 0, "// ") + , (54635, 0, "// ") + , (54577, 0, "// ") + , (54534, 0, "// ") + , (54445, 0, "// ") + , (54345, 0, "// ") + , (55888, 3, "") + , (55874, 3, "") + , (55857, 3, "") + , (55769, 3, "") + , (55685, 3, "") + , (55603, 3, "") + , (55560, 3, "") + , (55476, 3, "") + , (55404, 3, "") + , (55328, 3, "") + , (55256, 3, "") + , (55223, 3, "") + , (55149, 3, "") + , (55074, 3, "") + , (55013, 3, "") + , (54989, 3, "") + , (54906, 3, "") + , (54824, 3, "") + , (54792, 3, "") + , (54772, 3, "") + , (54702, 3, "") + , (54647, 3, "") + , (54586, 3, "") + , (54540, 3, "") + , (54448, 3, "") + , (54345, 3, "") + , ( 56251 + , 0 + , "\n pub fn edit(&mut self, userpos: usize, f: F) -> R\n where F: FnOnce(&mut Edit) -> R {" + ) + , (56215, 0, "// ") + , (56155, 0, "// ") + , (56306, 0, " ") + , (56307, 0, "n") + , (56308, 0, "o") + , (56309, 0, "t") + , (56310, 0, "i") + , (56311, 0, "f") + , (56312, 0, "y") + , (56313, 0, ":") + , (56314, 0, " ") + , (56315, 0, "N") + , (56316, 0, "o") + , (56317, 0, "t") + , (56318, 0, "i") + , (56319, 0, "f") + , (56320, 0, "y") + , (56321, 0, ",") + , (56274, 0, "N") + , (56275, 0, "o") + , (56276, 0, "t") + , (56277, 0, "i") + , (56278, 0, "f") + , (56279, 0, "y") + , (56280, 0, ",") + , (56281, 0, " ") + , (56346, 0, "where Notify: FnMut(&[C::Item], ItemMarker)") + , (56392, 6, " ") + , (56392, 1, "") + , (56392, 0, ",") + , (56393, 0, " ") + , (56273, 0, ")") + , (56274, 0, "n") + , (56275, 0, "o") + , (56275, 1, "") + , (56274, 1, "") + , (56273, 1, "") + , (56273, 0, "_") + , (56274, 0, "n") + , (56275, 0, "o") + , (56276, 0, "t") + , (56277, 0, "i") + , (56278, 0, "f") + , (56279, 0, "y") + , (56218, 3, "") + , (56155, 3, "") + , (56251, 0, "\n ") + , (56252, 8, " }") + , (56251, 0, "\n ") + , (56260, 0, "s") + , (56261, 0, "e") + , (56262, 0, "l") + , (56263, 0, "f") + , (56264, 0, ".") + , (56265, 0, "e") + , (56266, 0, "d") + , (56267, 0, "i") + , (56268, 0, "t") + , (56265, 4, "edit_notify(userpos: usize, notify: Notify, f: F)") + , (56277, 14, "u") + , (56278, 0, "s") + , (56279, 0, "e") + , (56280, 0, "r") + , (56281, 0, "p") + , (56282, 0, "o") + , (56283, 0, "s") + , (56286, 14, "S") + , (56287, 0, "e") + , (56288, 0, "l") + , (56289, 0, "f") + , (56290, 0, ":") + , (56291, 0, ":") + , (56292, 0, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (56301, 50, "") + , (56301, 0, ",") + , (56302, 0, " ") + , (56303, 0, "f") + , (56311, 0, "\n ") + , (57770, 0, "\n") + , (56312, 4, "") + , (57767, 0, "where Notify: FnMut(&[C::Item], ItemMarker)") + , (57773, 40, "") + , (57767, 6, "") + , (57766, 1, "") + , (57800, 0, ",") + , (57801, 0, " ") + , (57802, 0, "N") + , (57803, 0, "o") + , (57804, 0, "t") + , (57805, 0, "i") + , (57806, 0, "f") + , (57807, 0, "y") + , (57808, 0, ":") + , (57809, 0, " ") + , (57810, 0, "Notify: FnMut(&[C::Item], ItemMarker)") + , (57810, 40, "") + , (57802, 8, "Notify: FnMut(&[C::Item], ItemMarker)") + , (57956, 0, "\n ") + , (57961, 0, "N") + , (57962, 0, "o") + , (57963, 0, "t") + , (57964, 0, "i") + , (57965, 0, "f") + , (57966, 0, "y") + , (57967, 0, ":") + , (57968, 0, " ") + , (57961, 0, "n") + , (57962, 0, "o") + , (57963, 0, "t") + , (57964, 0, "i") + , (57965, 0, "f") + , (57966, 0, "y") + , (57967, 0, ":") + , (57968, 0, " ") + , (57976, 1, "") + , (57975, 1, "") + , (58001, 0, ",") + , (58002, 0, " ") + , (58003, 0, "Notify: FnMut(&[C::Item], ItemMarker)") + , (58055, 0, ",") + , (58056, 0, " ") + , (58057, 0, "N") + , (58058, 0, "o") + , (58059, 0, "t") + , (58060, 0, "i") + , (58061, 0, "f") + , (58062, 0, "y") + , (56662, 0, ",") + , (56663, 0, "\n ") + , (56676, 0, "n") + , (56677, 0, "o") + , (56678, 0, "t") + , (56679, 0, "i") + , (56680, 0, "f") + , (56681, 0, "y") + , (56621, 8, "") + , (56648, 0, "item_") + , (56508, 0, "item_") + , (56651, 13, "") + , (56584, 43, " list: self, cursor,") + , (56584, 56, " list: self, cursor, item_offset,") + , (56584, 63, " list: self, cursor, item_offset, notify") + , ( 56554 + , 81 + , " let mut edit = Edit { list: self, cursor, item_offset, notify" + ) + , ( 56554 + , 80 + , " let mut edit = Edit { list: self, cursor, item_offset, notify };" + ) + , (56477, 0, ",") + , (56478, 0, " ") + , (56479, 0, "N") + , (56480, 0, "o") + , (56481, 0, "t") + , (56482, 0, "i") + , (56483, 0, "f") + , (56484, 0, "y") + , (56242, 0, ",") + , (56243, 0, " ") + , (56244, 0, "_") + , (56244, 1, "") + , (56244, 0, "S") + , (56245, 0, "e") + , (56246, 0, "l") + , (56247, 0, "f") + , (56248, 0, ":") + , (56249, 0, ":") + , (56250, 0, "no_notify(_items: &[C::Item], _marker: ItemMarker)") + , (56250, 53, "") + , (56250, 0, "n") + , (56251, 0, "o") + , (56252, 0, "_") + , (56253, 0, "n") + , (56254, 0, "o") + , (56255, 0, "t") + , (56256, 0, "i") + , (56257, 0, "f") + , (56258, 0, "y") + , (56244, 15, "") + , (56244, 0, "i") + , (56245, 0, "m") + , (56246, 0, "p") + , (56247, 0, "l") + , (56247, 1, "") + , (56246, 1, "") + , (56245, 1, "") + , (56244, 1, "") + , (56244, 0, "t") + , (56245, 0, "y") + , (56246, 0, "p") + , (56247, 0, "e") + , (56248, 0, "o") + , (56248, 1, "") + , (56248, 0, " ") + , (56248, 1, "") + , (56248, 0, "o") + , (56244, 5, "") + , (56244, 0, "impl") + , (56244, 4, "") + , (56244, 0, "Self::no_notify") + , (56244, 0, "t") + , (56245, 0, "y") + , (56246, 0, "p") + , (56247, 0, "e") + , (56248, 0, " ") + , (56171, 0, ",") + , (56172, 0, " ") + , (56173, 0, "N") + , (56174, 0, "o") + , (56175, 0, "t") + , (56176, 0, "i") + , (56177, 0, "f") + , (56178, 0, "y") + , (56171, 8, "") + , (56167, 0, "N") + , (56168, 0, "o") + , (56169, 0, "t") + , (56170, 0, "i") + , (56171, 0, "f") + , (56172, 0, "y") + , (56173, 0, ",") + , (56174, 0, " ") + , (56252, 20, "N") + , (56253, 0, "o") + , (56254, 0, "t") + , (56255, 0, "i") + , (56256, 0, "f") + , (56257, 0, "y") + , (56229, 0, "Notify: FnMut(&[C::Item], ItemMarker), ") + , (56229, 42, "") + , (56252, 6, "type Self::no_notify") + , (56174, 1, "") + , (56167, 7, "") + , (56244, 5, "") + , (56244, 4, "") + , (56244, 0, "S") + , (56245, 0, "k") + , (56246, 0, "i") + , (56247, 0, "l") + , (56244, 4, "SkipList") + , (56252, 0, ":") + , (56253, 0, ":") + , (56254, 0, "<") + , (56255, 0, "C") + , (56256, 0, ">") + , (56253, 1, "") + , (56252, 1, "") + , (56251, 1, "") + , (56251, 0, "t") + , (56244, 0, "<") + , (56256, 0, ">") + , (56256, 0, " ") + , (56257, 0, "a") + , (56258, 0, "s") + , (56259, 0, " ") + , (56260, 0, "S") + , (56261, 0, "k") + , (56262, 0, "i") + , (56260, 3, "SkipList") + , (56268, 0, "<") + , (56269, 0, "C") + , (56270, 0, ">") + , (56268, 3, "") + , (56260, 8, "Ski") + , (56259, 4, "") + , (56256, 3, "") + , (56256, 1, "") + , (56244, 1, "") + , (20204, 0, "\n") + , ( 20205 + , 0 + , "\n pub fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}\n" + ) + , (20206, 4, "") + , (20222, 0, "<") + , (20223, 0, "C") + , (20224, 0, ":") + , (20225, 0, " ") + , (20226, 0, "L") + , (20227, 0, "i") + , (20228, 0, "s") + , (20229, 0, "t") + , (20226, 4, "ListConfig") + , (20236, 0, ">") + , (20222, 0, "_") + , (20223, 0, "x") + , (56327, 13, "") + , (56336, 0, "_") + , (56337, 0, "x") + , (56338, 0, "<") + , (56339, 0, "C") + , (56340, 0, ">") + , (56385, 15, "rustc --explain E0573") + , (56385, 21, "Self::no_notify") + , (56385, 15, "n") + , (56386, 0, "o") + , (56387, 0, "_") + , (56388, 0, "n") + , (56389, 0, "o") + , (56385, 5, "no_notify_x(_items: &[C::Item], _marker: ItemMarker)") + , (56415, 0, ">") + , (56397, 0, "<") + , (56398, 18, "C") + , (56399, 0, ">") + , (56398, 2, "_items: &[C::Item]") + , (56416, 1, "") + , (56397, 1, "") + , (56396, 44, "") + , (56396, 0, "<") + , (56397, 0, "C") + , (56398, 0, ">") + , (56396, 3, "") + , (56340, 1, "") + , (56339, 1, "") + , (56338, 1, "") + , (56238, 0, "// ") + , (56233, 0, "\n ") + , ( 56238 + , 0 + , " pub fn edit_notify(&mut self, userpos: usize, notify: Notify, f: F) -> R\n where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut Edit) -> R {\n" + ) + , (56234, 8, " ") + , (56484, 0, "// ") + , (56255, 1, "") + , (56254, 1, "") + , (56253, 1, "") + , (56252, 1, "") + , (56251, 1, "") + , (56250, 1, "") + , (56249, 1, "") + , (56289, 16, "") + , (56559, 0, "<") + , (56560, 0, "C") + , (56561, 0, ">") + , (56559, 0, ":") + , (56560, 0, ":") + , (56306, 0, "// ") + , (56238, 0, "// ") + , (56467, 3, "") + , (56404, 3, "") + , (56504, 0, ":") + , (56505, 0, ":") + , (56506, 0, "<") + , (56507, 0, "C") + , (56508, 0, ">") + , (56505, 1, "") + , (56504, 1, "") + , (56493, 15, "") + , (56493, 0, "_") + , (56494, 0, ">") + , (56493, 1, "") + , (56493, 0, "C") + , (56493, 1, "") + , (56493, 0, "u") + , (56494, 0, "2") + , (56495, 0, "3") + , (56495, 1, "") + , (56494, 1, "") + , (56494, 0, "3") + , (56495, 0, "2") + , (56514, 0, "// ") + , (56563, 0, "\n ") + , ( 56572 + , 0 + , " let (cursor, item_offset) = self.iter_at_userpos(userpos);\n let mut edit = Edit { list: self, cursor, item_offset, notify };\n\n // TODO: Or maybe I should pass ownership here?\n f(&mut edit)\n" + ) + , (56564, 16, " ") + , (56694, 6, "n") + , (56695, 0, "o") + , (56696, 0, "_") + , (56697, 0, "n") + , (56698, 0, "o") + , (56694, 5, "no_notify_x(_items: &[C::Item], _marker: ItemMarker)") + , (56724, 0, ">") + , (56706, 0, "<") + , (56725, 1, "") + , (56706, 1, "") + , (56705, 44, "") + , (56705, 0, "<") + , (56706, 0, "C") + , (56707, 0, ">") + , (56705, 0, ":") + , (56706, 0, ":") + , (56694, 0, "n") + , (56695, 0, "o") + , (56696, 0, "t") + , (56697, 0, "i") + , (56698, 0, "f") + , (56699, 0, "y") + , (56700, 0, ":") + , (56701, 0, " ") + , ( 56493 + , 3 + , "for<'r> fn(&'r [::Item], skiplist::ItemMarker) {skiplist::no_notify_x::}" + ) + , (56570, 28, "") + , (56569, 1, "") + , (56545, 10, "") + , (56515, 10, "") + , (56755, 0, "&") + , (56549, 0, " ") + , (56550, 0, "{no_notify_x::}") + , (56493, 0, "&") + , (56420, 0, ",") + , (56421, 0, " ") + , (56422, 0, "N") + , (56423, 0, "N") + , (56497, 0, "N") + , (56498, 0, ")") + , (56498, 0, ">") + , (56500, 0, ",") + , (56501, 0, " ") + , (56502, 0, "N") + , (56503, 0, ":") + , (56504, 0, " ") + , (56587, 1, "") + , (56586, 1, "") + , (56585, 1, "") + , (56584, 1, "") + , (56583, 1, "") + , (56582, 1, "") + , (56500, 0, " ") + , (56501, 0, "-") + , (56502, 0, ">") + , (56503, 0, " ") + , (56504, 0, "R") + , (56506, 1, "") + , (56506, 0, "\n ") + , (56590, 1, "") + , (56514, 1, "") + , (56498, 0, "N") + , (56512, 0, "N") + , (56516, 0, "&") + , (56516, 1, "") + , (56516, 58, "") + , (56532, 1, "") + , (56532, 0, "}") + , (56516, 0, "for<'r> fn(&'r [::Item], ItemMarker) {") + , (56524, 49, "") + , (56524, 1, "") + , (56540, 1, "") + , (56843, 0, "// ") + , (56821, 0, "// ") + , (56765, 0, "// ") + , (56672, 0, "// ") + , (56605, 0, "// ") + , (56547, 0, "// ") + , (56512, 0, "// ") + , (56468, 0, "// ") + , (56404, 0, "// ") + , (57191, 0, ":") + , (57192, 0, " ") + , (57193, 0, "n") + , (57194, 0, "o") + , (57193, 2, "no_notify_x(_items: &[C::Item], _marker: ItemMarker)") + , (57193, 55, "no") + , (57195, 0, "n") + , (57195, 1, "") + , (57195, 0, "_") + , (57196, 0, "n") + , (57197, 0, "o") + , (57198, 0, "t") + , (57199, 0, "i") + , (57200, 0, "f") + , (57201, 0, "y") + , (57202, 0, "_") + , (57203, 0, "x") + , (57204, 0, "<") + , (57205, 0, "C") + , (57206, 0, ">") + , (57204, 0, ":") + , (57205, 0, ":") + , (57204, 2, "") + , (57195, 12, "") + , (57195, 0, "n") + , (57195, 1, "") + , (57192, 3, "") + , (57191, 1, "") + , (56867, 3, "") + , (56842, 3, "") + , (56783, 3, "") + , (56687, 3, "") + , (56617, 3, "") + , (56556, 3, "") + , (56518, 3, "") + , (56471, 3, "") + , (56404, 3, "") + , ( 56516 + , 24 + , "for<'r> fn(&'r [::Item], skiplist::ItemMarker) {skiplist::no_notify_x::}" + ) + , (56594, 10, "") + , (56568, 10, "") + , (56538, 10, "") + , (56516, 8, "") + , (56516, 67, "") + , (56516, 0, "i") + , (56517, 0, "m") + , (56518, 0, "p") + , (56519, 0, "l") + , (56520, 0, " ") + , (56521, 0, "FnMut(&[C::Item], ItemMarker)") + , ( 56464 + , 91 + , " where F: FnOnce(&mut Edit) -> R, NN: impl FnMut(&[C::Item], ItemMarker) {" + ) + , ( 56464 + , 87 + , " where F: FnOnce(&mut Edit) -> R,\n NN: impl FnMut(&[C::Item], ItemMarker) {" + ) + , (56516, 5, "") + , (56747, 1, "") + , (56423, 1, "") + , (56422, 1, "") + , (56421, 1, "") + , (56420, 1, "") + , (56502, 43, "") + , (56502, 0, " ") + , (56502, 1, "") + , (56502, 0, ",\n NN: FnMut(&[C::Item], ItemMarker) ") + , (56512, 32, "") + , (56508, 4, "") + , (56504, 4, "") + , (56503, 1, "") + , (56502, 1, "") + , (56493, 2, "i") + , (56494, 0, "m") + , (56495, 0, "p") + , (56496, 0, "l") + , (56497, 0, " ") + , (56498, 0, "FnMut(&[C::Item], ItemMarker)") + , (56493, 5, "") + , (56493, 0, "d") + , (56494, 0, "y") + , (56495, 0, "n") + , (56496, 0, " ") + , (56838, 0, "// ") + , (56816, 0, "// ") + , (56760, 0, "// ") + , (56668, 0, "// ") + , (56601, 0, "// ") + , (56543, 0, "// ") + , (56464, 0, "// ") + , (56404, 0, "// ") + , (58489, 0, "// ") + , (58470, 0, "// ") + , (58413, 0, "// ") + , (58390, 0, "// ") + , (58359, 0, "// ") + , (58280, 0, "// ") + , ( 58280 + , 0 + , "// pub struct Edit<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> {\n// list: &'a mut SkipList,\n// cursor: Cursor,\n// item_offset: usize, // Offset into the current item.\n// notify: Notify\n// }\n" + ) + , (58733, 3, "") + , (58711, 3, "") + , (58651, 3, "") + , (58625, 3, "") + , (58591, 3, "") + , (58509, 3, "") + , (58542, 42, "") + , (58542, 0, ", Notify: FnMut(&[C::Item], ItemMarker)") + , (58542, 42, "") + , (58669, 6, ", Notify: FnMut(&[C::Item], ItemMarker)") + , (58669, 15, "f") + , (58670, 0, "n") + , ( 58789 + , 0 + , "\nimpl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, Notify> {" + ) + , (58702, 0, "// ") + , (58869, 8, "") + , (57269, 0, "// ") + , (57248, 0, "// ") + , (57192, 0, "// ") + , (57118, 0, "// ") + , (57051, 0, "// ") + , (56960, 0, "// ") + , (56869, 0, "// ") + , (56859, 3, "") + , (56834, 3, "") + , (56775, 3, "") + , (56680, 3, "") + , (56610, 3, "") + , (56549, 3, "") + , (56467, 3, "") + , (56404, 3, "") + , (56493, 9, "f") + , (56494, 0, "n") + , (56491, 31, "") + , ( 58831 + , 0 + , "\nimpl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C> {" + ) + , (58752, 0, "// ") + , (58752, 3, "") + , (58831, 80, "") + , (58774, 42, "") + , (56794, 1, "") + , ( 56802 + , 0 + , " // pub fn edit_notify(&mut self, userpos: usize, notify: Notify, f: F) -> R\n // where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut Edit) -> R {\n // let (cursor, item_offset) = self.iter_at_userpos(userpos);\n // let mut edit = Edit { list: self, cursor, item_offset, notify };\n\n // // TODO: Or maybe I should pass ownership here?\n // f(&mut edit)\n // }\n" + ) + , (57651, 3, "") + , (57627, 3, "") + , (57568, 3, "") + , (57491, 3, "") + , (57421, 3, "") + , (57327, 3, "") + , (57233, 3, "") + , (57393, 8, "") + , (57252, 8, "") + , (57322, 42, "") + , (57322, 0, "Notify: FnMut(&[C::Item], ItemMarker), ") + , (57252, 0, "Notify, ") + , (57338, 5, "f") + , (57339, 0, "n") + , (57338, 29, "") + , (57330, 8, "") + , (57330, 1, "") + , (57330, 1, "") + , (57301, 6, "fn(&[C::Item], ItemMarker)") + , (53196, 0, "// ") + , (53118, 0, "// ") + , (53008, 0, "// ") + , (52951, 0, "// ") + , (52882, 0, "// ") + , (52810, 0, "// ") + , (52745, 0, "// ") + , (52593, 0, "// ") + , (53217, 3, "") + , (53136, 3, "") + , (53023, 3, "") + , (52963, 3, "") + , (52891, 3, "") + , (52816, 3, "") + , (52748, 3, "") + , (52593, 3, "") + , (60918, 0, "\n ") + , (60923, 0, "\n ") + , (60919, 4, "") + , ( 60924 + , 0 + , "\n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n let num_inserted_items = inserted_content.len();\n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }\n\n self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);\n }" + ) + , (60920, 4, "") + , (60919, 1, "") + , (60918, 1, "") + , (60918, 0, "\n ") + , (60918, 614, "") + , ( 59568 + , 0 + , "\n \n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {\n start_userpos = min(start_userpos, self.get_userlen());\n\n let (mut cursor, offset) = self.iter_at_userpos(start_userpos);\n assert_eq!(offset, 0, \"Splitting nodes not yet supported\");\n\n let num_inserted_items = inserted_content.len();\n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }\n\n self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);\n }" + ) + , (59569, 4, "") + , (59606, 26, "") + , (59652, 1, "") + , (59652, 0, "\n ") + , (59700, 65, "") + , (59700, 72, "") + , (59719, 0, "s") + , (59720, 0, "e") + , (59721, 0, "l") + , (59722, 0, "f") + , (59723, 0, ".") + , (59724, 0, "i") + , (59725, 0, "t") + , (59726, 0, "e") + , (59727, 0, "m") + , (59728, 0, "_") + , (59857, 0, ".") + , (59858, 0, "l") + , (59859, 0, "i") + , (59860, 0, "s") + , (59861, 0, "t") + , (59930, 15, "") + , (59930, 0, "s") + , (59931, 0, "e") + , (59932, 0, "l") + , (59933, 0, "f") + , (59934, 0, ".") + , (59935, 0, "n") + , (59936, 0, "o") + , (59937, 0, "t") + , (59938, 0, "i") + , (59939, 0, "f") + , (59940, 0, "y") + , (59884, 0, "s") + , (59885, 0, "e") + , (59886, 0, "l") + , (59887, 0, "f") + , (59888, 0, ".") + , (59960, 0, "// ") + , (59960, 3, "") + , (59964, 0, ".") + , (59965, 0, "l") + , (59966, 0, "i") + , (59967, 0, "s") + , (59968, 0, "t") + , (59991, 0, "s") + , (59992, 0, "e") + , (59993, 0, "l") + , (59994, 0, "f") + , (59995, 0, ".") + , (60004, 13, "s") + , (60005, 0, "e") + , (60006, 0, "l") + , (60007, 0, "f") + , (60008, 0, ".") + , (60004, 5, "start_userpos") + , (59835, 0, "\n ") + , (59844, 0, "l") + , (59845, 0, "e") + , (59846, 0, "t") + , (59847, 0, " ") + , (59848, 0, "s") + , (59849, 0, "t") + , (59850, 0, "a") + , (59851, 0, "r") + , (59852, 0, "t") + , (59853, 0, "_") + , (59854, 0, "u") + , (59855, 0, "s") + , (59856, 0, "e") + , (59857, 0, "r") + , (59858, 0, "p") + , (59859, 0, "o") + , (59860, 0, "s") + , (59861, 0, " ") + , (59862, 0, "=") + , (59863, 0, " ") + , (59864, 0, "s") + , (59865, 0, "e") + , (59866, 0, "l") + , (59867, 0, "f") + , (59868, 0, ".") + , (59869, 0, "c") + , (59870, 0, "u") + , (59871, 0, "r") + , (59872, 0, "s") + , (59869, 4, "cursor") + , (59875, 0, ".") + , (59876, 0, "c") + , (59877, 0, "u") + , (59878, 0, "r") + , (59876, 3, "") + , (59876, 0, "u") + , (59877, 0, "s") + , (59878, 0, "e") + , (59879, 0, "r") + , (59876, 4, "userpos") + , (59883, 0, ";") + , (59884, 0, "\n ") + , (59885, 8, "") + , (58994, 0, " notify: fn(&[C::Item], ItemMarker)\n") + , (59040, 0, "// ") + , (59040, 3, "") + , (59040, 0, "// ") + , (59040, 3, "") + , (59927, 0, " ") + , (58994, 42, "") + , (59036, 0, "// ") + , (58994, 0, "// ") + , (58937, 0, "// ") + , (58914, 0, "// ") + , (58883, 0, "// ") + , (58846, 0, "// ") + , (58841, 3, "") + , (58819, 3, "") + , (58759, 3, "") + , (58733, 3, "") + , (58699, 3, "") + , (58617, 3, "") + , (59130, 0, "// ") + , (59039, 3, "") + , (57606, 0, "// ") + , (57585, 0, "// ") + , (57529, 0, "// ") + , (57455, 0, "// ") + , (57388, 0, "// ") + , (57347, 0, "// ") + , (57233, 0, "// ") + , (57228, 0, "\n ") + , (57233, 0, "\n ") + , (57229, 4, "") + , (57230, 4, "") + , (56491, 0, ",") + , (56492, 0, " ") + , (56493, 0, "n") + , (56494, 0, "o") + , (56495, 0, "t") + , (56493, 3, "no_notify_x(_items: &[C::Item], _marker: ItemMarker)") + , (56493, 55, "not") + , (56495, 1, "") + , (56495, 0, "_") + , (56496, 0, "n") + , (56497, 0, "o") + , (56498, 0, "t") + , (56499, 0, "i") + , (56500, 0, "f") + , (56501, 0, "y") + , (56502, 0, "_") + , (56503, 0, "x") + , (56504, 0, ":") + , (56505, 0, ":") + , (56506, 0, "<") + , (56507, 0, "C") + , (56508, 0, ">") + , (56509, 0, " ") + , (56510, 0, "a") + , (56511, 0, "s") + , (56512, 0, " ") + , (56513, 0, "FnMut(&[C::Item], ItemMarker)") + , (56493, 0, "<") + , (56547, 0, ">") + , (56547, 1, "") + , (56493, 1, "") + , (56508, 1, "") + , (56507, 1, "") + , (56506, 1, "") + , (56505, 1, "") + , (56504, 1, "") + , (56504, 0, "::") + , (56509, 36, "") + , (56509, 0, " as FnMut(&[C::Item], ItemMarker)") + , (56509, 36, "") + , (56493, 0, "t") + , (56494, 0, "y") + , (56495, 0, "p") + , (56496, 0, "e") + , (56497, 0, "o") + , (56498, 0, "f") + , (56499, 0, "(") + , (56516, 0, ")") + , (56493, 7, "") + , (56493, 0, "{") + , (56510, 1, "") + , (56510, 0, "}") + , (58703, 5, "f") + , (58704, 0, "n") + , (58703, 2, "FnMut") + , (58869, 0, "// ") + , (58850, 0, "// ") + , (58793, 0, "// ") + , (58770, 0, "// ") + , (58739, 0, "// ") + , (58660, 0, "// ") + , (59094, 3, "") + , (59049, 3, "") + , (58989, 3, "") + , (58963, 3, "") + , (58929, 3, "") + , (58889, 3, "") + , (59082, 0, "// ") + , (59173, 3, "") + , (56493, 18, "expected type, found function") + , (56493, 29, "{no_notify_x::}") + , (56493, 18, "") + , (56492, 1, "") + , (56491, 1, "") + , (57224, 3, "") + , (57200, 3, "") + , (57141, 3, "") + , (57064, 3, "") + , (56994, 3, "") + , (56900, 3, "") + , (56806, 3, "") + , (56966, 8, "") + , (56966, 0, ", Notify") + , (57206, 0, "// ") + , (57185, 0, "// ") + , (57129, 0, "// ") + , (57055, 0, "// ") + , (56988, 0, "// ") + , (56897, 0, "// ") + , (56806, 0, "// ") + , (57224, 3, "") + , (57200, 3, "") + , (57141, 3, "") + , (57064, 3, "") + , (56994, 3, "") + , (56900, 3, "") + , (56806, 3, "") + , (57206, 0, "// ") + , (57185, 0, "// ") + , (57129, 0, "// ") + , (57055, 0, "// ") + , (56988, 0, "// ") + , (56897, 0, "// ") + , (56806, 0, "// ") + , (57626, 3, "") + , (57602, 3, "") + , (57543, 3, "") + , (57466, 3, "") + , (57396, 3, "") + , (57352, 3, "") + , (57235, 3, "") + , (53122, 0, "// ") + , (53012, 0, "// ") + , (52955, 0, "// ") + , (52886, 0, "// ") + , (52814, 0, "// ") + , (52749, 0, "// ") + , (52740, 0, "\n ") + , (52749, 0, "s") + , (52750, 0, "e") + , (52751, 0, "l") + , (52752, 0, "f") + , (52753, 0, ".") + , (52754, 0, "e") + , (52755, 0, "d") + , (52756, 0, "i") + , (52754, 3, "edit(userpos: usize, f: F)") + , (52759, 14, "s") + , (52760, 0, "t") + , (52761, 0, "a") + , (52762, 0, "r") + , (52763, 0, "t") + , (52764, 0, "_") + , (52765, 0, "u") + , (52766, 0, "s") + , (52767, 0, "e") + , (52768, 0, "r") + , (52769, 0, "p") + , (52770, 0, "o") + , (52771, 0, "s") + , (52774, 4, "|") + , (52775, 0, "e") + , (52776, 0, "i") + , (52777, 0, "d") + , (52778, 0, "t") + , (52778, 1, "") + , (52777, 1, "") + , (52776, 1, "") + , (52776, 0, "d") + , (52777, 0, "i") + , (52778, 0, "t") + , (52779, 0, "|") + , (52780, 0, " ") + , (52781, 0, "{") + , (52782, 0, "\n ") + , (52783, 12, " }") + , (52782, 0, "\n ") + , (52795, 0, "e") + , (52796, 0, "d") + , (52797, 0, "i") + , (52798, 0, "t") + , (52799, 0, ".") + , (52800, 0, "r") + , (52801, 0, "e") + , (52802, 0, "p") + , (52803, 0, "l") + , (52804, 0, "a") + , (52800, 5, "replace_at") + , (52810, 0, "(") + , (52811, 0, "r") + , (52812, 0, "e") + , (52813, 0, "m") + , (52814, 0, "o") + , (52815, 0, "v") + , (52816, 0, "e") + , (52817, 0, "d") + , (52818, 0, "_") + , (52819, 0, "i") + , (52820, 0, "t") + , (52821, 0, "e") + , (52822, 0, "m") + , (52823, 0, "s") + , (52824, 0, ",") + , (52825, 0, " ") + , (52826, 0, "i") + , (52827, 0, "n") + , (52828, 0, "s") + , (52829, 0, "e") + , (52830, 0, "r") + , (52831, 0, "t") + , (52832, 0, "e") + , (52833, 0, "d") + , (52834, 0, "_") + , (52835, 0, "c") + , (52836, 0, "o") + , (52837, 0, "n") + , (52838, 0, "t") + , (52839, 0, "e") + , (52840, 0, "n") + , (52841, 0, "t") + , (52842, 0, ")") + , (52843, 0, ";") + , (52625, 4, "") + , (52669, 4, "") + , (52848, 469, "") + , (54077, 0, "// ") + , (53977, 0, "// ") + , (53964, 0, "// ") + , (53926, 0, "// ") + , (53906, 0, "// ") + , (53850, 0, "// ") + , (53839, 0, "// ") + , (53748, 0, "// ") + , (53670, 0, "// ") + , (53637, 0, "// ") + , (53560, 0, "// ") + , (53509, 0, "// ") + , (53476, 0, "// ") + , (53426, 0, "// ") + , (53369, 0, "// ") + , (53334, 0, "// ") + , (53268, 0, "// ") + , (53183, 0, "// ") + , (53090, 0, "// ") + , (54131, 3, "") + , (54028, 3, "") + , (54012, 3, "") + , (53971, 3, "") + , (53948, 3, "") + , (53889, 3, "") + , (53875, 3, "") + , (53781, 3, "") + , (53700, 3, "") + , (53664, 3, "") + , (53584, 3, "") + , (53530, 3, "") + , (53494, 3, "") + , (53441, 3, "") + , (53381, 3, "") + , (53343, 3, "") + , (53274, 3, "") + , (53186, 3, "") + , (53090, 3, "") + , (58840, 3, "") + , (55856, 3, "") + , (59240, 3, "") + , (52799, 3, "") + , (59749, 0, "\n ") + , (59754, 0, "\n ") + , (59750, 4, "") + , (59751, 4, "") + , (59216, 1, "") + , (59750, 0, " ") + , (59754, 0, "p") + , (59755, 0, "u") + , (59756, 0, "b") + , (59757, 0, " ") + , (59758, 0, "f") + , (59759, 0, "n") + , (59760, 0, " ") + , (59761, 0, "c") + , (59762, 0, "u") + , (59763, 0, "r") + , (59764, 0, "r") + , (59765, 0, "e") + , (59766, 0, "n") + , (59767, 0, "t") + , (59768, 0, "_") + , (59769, 0, "i") + , (59770, 0, "t") + , (59771, 0, "e") + , (59772, 0, "m") + , (59773, 0, "(") + , (59774, 0, ")") + , (59774, 0, "&") + , (59775, 0, "s") + , (59776, 0, "e") + , (59777, 0, "l") + , (59778, 0, "f") + , (59779, 0, ",") + , (59780, 0, " ") + , (59780, 1, "") + , (59779, 1, "") + , (59780, 0, " ") + , (59781, 0, "-") + , (59782, 0, ">") + , (59783, 0, " ") + , (59784, 0, "C") + , (59785, 0, ":") + , (59786, 0, ":") + , (59787, 0, "I") + , (59788, 0, "t") + , (59789, 0, "e") + , (59790, 0, "m") + , (59787, 4, "Item") + , (59784, 0, "(") + , (59785, 0, "&") + , (59793, 0, ",") + , (59794, 0, " ") + , (59795, 0, "u") + , (59796, 0, "s") + , (59797, 0, "i") + , (59798, 0, "z") + , (59799, 0, "e") + , (59800, 0, ")") + , (59801, 0, " ") + , (59802, 0, "{") + , (59803, 0, "\n ") + , (59812, 0, "\n ") + , (59804, 8, "") + , (59805, 8, " }") + , (59804, 0, " ") + , (59812, 0, "s") + , (59813, 0, "e") + , (59814, 0, "l") + , (59815, 0, "f") + , (59816, 0, ".") + , (59817, 0, "c") + , (59818, 0, "u") + , (59819, 0, "r") + , (59820, 0, "s") + , (59821, 0, "o") + , (59822, 0, "r") + , (59823, 0, ".") + , (59812, 0, "// ") + , (59812, 3, "") + , (59824, 0, "unsafe { cursor.current_item_mut() };") + , (59812, 12, "") + , (59843, 1, "") + , (59842, 1, "") + , (59841, 1, "") + , (59840, 1, "") + , (59844, 1, "") + , (59821, 0, "s") + , (59822, 0, "e") + , (59823, 0, "l") + , (59824, 0, "f") + , (59825, 0, ".") + , (59812, 0, "(") + , (59850, 0, ",") + , (59851, 0, " ") + , (59852, 0, "s") + , (59853, 0, "e") + , (59854, 0, "l") + , (59855, 0, "f") + , (59856, 0, ".") + , (59857, 0, "i") + , (59858, 0, "t") + , (59859, 0, "e") + , (59860, 0, "m") + , (59861, 0, "_") + , (59862, 0, "o") + , (59863, 0, "f") + , (59864, 0, "f") + , (59857, 8, "item_offset") + , (59868, 0, ")") + , (16126, 4, "") + , (59871, 0, "\n ") + , (59876, 0, "\n ") + , (59872, 4, "") + , (59877, 0, "p") + , (59878, 0, "u") + , (59879, 0, "b") + , (59880, 0, " ") + , (59881, 0, "f") + , (59882, 0, "n") + , (59883, 0, " ") + , (59884, 0, "n") + , (59885, 0, "e") + , (59886, 0, "x") + , (59887, 0, "t") + , (59888, 0, "_") + , (59889, 0, "i") + , (59890, 0, "t") + , (59891, 0, "e") + , (59892, 0, "m") + , (59893, 0, "(") + , (59894, 0, ")") + , (59894, 0, "&") + , (59895, 0, "m") + , (59896, 0, "u") + , (59897, 0, "t") + , (59898, 0, " ") + , (59899, 0, "s") + , (59900, 0, "e") + , (59901, 0, "l") + , (59902, 0, "f") + , (59904, 0, " ") + , (59905, 0, "{") + , (59906, 0, "\n ") + , (59915, 0, "\n ") + , (59907, 8, "") + , (59908, 8, " }") + , (59907, 0, " ") + , (59915, 0, "s") + , (59916, 0, "e") + , (59917, 0, "l") + , (59918, 0, "f") + , (59919, 0, ".") + , (59920, 0, "c") + , (59921, 0, "u") + , (59922, 0, "r") + , (59923, 0, "s") + , (59924, 0, "o") + , (59925, 0, "r") + , (59926, 0, ".") + , (59927, 0, "a") + , (59928, 0, "d") + , (59929, 0, "v") + , (59930, 0, "a") + , (59931, 0, "n") + , (59927, 5, "advance_item(height: u8)") + , (59940, 10, "s") + , (59941, 0, "e") + , (59942, 0, "l") + , (59943, 0, "f") + , (59944, 0, ".") + , (59945, 0, "list") + , (59949, 0, ".") + , (59950, 0, "h") + , (59951, 0, "e") + , (59952, 0, "a") + , (59953, 0, "d") + , (59954, 0, ".") + , (59955, 0, "h") + , (59956, 0, "e") + , (59957, 0, "i") + , (59958, 0, "g") + , (59959, 0, "h") + , (59960, 0, "t") + , (59962, 0, ";") + , (59963, 0, "\n ") + , (59972, 0, "s") + , (59973, 0, "e") + , (59974, 0, "l") + , (59975, 0, "f") + , (59976, 0, ".") + , (59977, 0, "i") + , (59978, 0, "t") + , (59979, 0, "e") + , (59980, 0, "m") + , (59981, 0, "_") + , (59982, 0, "o") + , (59983, 0, "f") + , (59984, 0, "f") + , (59977, 8, "item_offset") + , (59988, 0, " ") + , (59989, 0, "=") + , (59990, 0, " ") + , (59991, 0, "0") + , (59992, 0, ";") + , (59999, 0, "\n ") + , (60004, 0, "\n ") + , (60000, 4, "") + , (60005, 0, "unsafe { cursor.current_item_mut() };") + , (60005, 37, "") + , ( 60005 + , 0 + , "\n pub fn modify_at(&mut self, userpos: usize, mut notify: Notify, modify_fn: F)\n where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut C::Item, usize) {\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n let e = cursor.here_ptr();\n let item = unsafe { cursor.current_item_mut() };\n let old_usersize = C::get_usersize(item);\n modify_fn(item, offset);\n let new_usersize = C::get_usersize(item);\n\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n cursor.update_offsets(self.head.height as usize, usersize_delta);\n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);\n }\n\n notify(std::slice::from_ref(item), ItemMarker {\n ptr: e,\n // _phantom: PhantomData,\n });\n\n // cursor.update_offsets(self.head.height as usize, new_size as isize - old_size as isize);\n }" + ) + , (60025, 1, "") + , (60024, 1, "") + , (60024, 0, "i") + , (60025, 0, "t") + , (60026, 0, "e") + , (60027, 0, "m") + , (60027, 1, "") + , (60026, 1, "") + , (60025, 1, "") + , (60024, 1, "") + , (60024, 0, "i") + , (60025, 0, "n") + , (60026, 0, "_") + , (60026, 1, "") + , (60025, 1, "") + , (60024, 1, "") + , (60023, 1, "") + , (60024, 8, "") + , (60001, 4, "") + , (60000, 1, "") + , (60049, 20, "") + , (60073, 42, "") + , ( 60001 + , 104 + , " pub fn modify(&mut self, userpos: usize, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {" + ) + , (60102, 66, "") + , (60118, 0, "s") + , (60119, 0, "e") + , (60120, 0, "l") + , (60121, 0, "f") + , (60122, 0, ".") + , (60170, 0, "s") + , (60171, 0, "e") + , (60172, 0, "l") + , (60173, 0, "f") + , (60174, 0, ".") + , (60278, 0, "s") + , (60279, 0, "e") + , (60280, 0, "l") + , (60281, 0, "f") + , (60282, 0, ".") + , (60283, 0, "item_offset") + , (60294, 6, "") + , (60470, 0, "s") + , (60471, 0, "e") + , (60472, 0, "l") + , (60473, 0, "f") + , (60474, 0, ".") + , (60502, 0, "l") + , (60503, 0, "i") + , (60504, 0, "s") + , (60505, 0, "t") + , (60506, 0, ".") + , (60563, 0, "l") + , (60564, 0, "i") + , (60565, 0, "s") + , (60566, 0, "t") + , (60567, 0, ".") + , (60589, 0, "l") + , (60590, 0, "i") + , (60591, 0, "s") + , (60592, 0, "t") + , (60593, 0, ".") + , (60666, 0, "s") + , (60667, 0, "e") + , (60668, 0, "l") + , (60669, 0, "f") + , (60670, 0, ".") + , (60677, 0, ")") + , (60666, 0, "(") + , (60033, 16, "") + , (60018, 0, "_") + , (60019, 0, "i") + , (60020, 0, "t") + , (60021, 0, "e") + , (60022, 0, "m") + , (60780, 101, "") + , (60335, 0, "\n ") + , (60344, 0, "i") + , (60345, 0, "f") + , (60346, 0, " ") + , (60347, 0, "(") + , (60347, 1, "") + , (60347, 0, "n") + , (60348, 0, "e") + , (60349, 0, "w") + , (60350, 0, "_") + , (60347, 4, "new_usersize") + , (60359, 0, " ") + , (60360, 0, ">") + , (60361, 0, " ") + , (60362, 0, "s") + , (60363, 0, "e") + , (60364, 0, "l") + , (60365, 0, "f") + , (60366, 0, ".") + , (60367, 0, "i") + , (60368, 0, "t") + , (60369, 0, "e") + , (60367, 3, "item_offset") + , (60336, 42, "") + , (60335, 1, "") + , (60635, 0, "\n ") + , (60648, 0, "\n ") + , (60636, 12, "") + , (60649, 0, " if new_usersize > self.item_offset") + , (60637, 20, " ") + , (60683, 0, " ") + , (60684, 0, "{") + , (60685, 0, "\n ") + , (60702, 0, "\n ") + , (60686, 16, "") + , (60687, 16, " }") + , (60686, 0, " ") + , (60702, 0, "s") + , (60703, 0, "e") + , (60704, 0, "l") + , (60705, 0, "f") + , (60706, 0, ".") + , (60707, 0, "i") + , (60708, 0, "t") + , (60709, 0, "e") + , (60710, 0, "m") + , (60711, 0, "_") + , (60707, 5, "item_offset") + , (60718, 0, " ") + , (60719, 0, "=") + , (60720, 0, " ") + , (60721, 0, "n") + , (60722, 0, "e") + , (60723, 0, "w") + , (60724, 0, "_") + , (60725, 0, "u") + , (60721, 5, "new_usersize") + , (60733, 0, ";") + , (60636, 112, "") + , ( 60636 + , 0 + , "\n if new_usersize > self.item_offset {\n self.item_offset = new_usersize;\n }" + ) + , (60734, 0, " ") + , (60735, 0, "/") + , (60736, 0, "/") + , (60737, 0, " ") + , (60737, 1, "") + , (60736, 1, "") + , (60735, 1, "") + , (60734, 1, "") + , (60636, 0, "\n ") + , (60649, 0, "s") + , (60650, 0, "e") + , (60651, 0, "l") + , (60652, 0, "f") + , (60653, 0, ".") + , (60654, 0, "i") + , (60655, 0, "t") + , (60656, 0, "e") + , (60657, 0, "m") + , (60654, 4, "item_offset") + , (60665, 0, " ") + , (60666, 0, "=") + , (60667, 0, " ") + , (60668, 0, "s") + , (60669, 0, "e") + , (60670, 0, "l") + , (60671, 0, "f") + , (60672, 0, ".") + , (60673, 0, "i") + , (60673, 1, "item_offset") + , (60684, 0, ".") + , (60685, 0, "m") + , (60686, 0, "a") + , (60685, 2, "") + , (60684, 1, "") + , (60667, 0, " ") + , (60668, 0, "u") + , (60669, 0, "s") + , (60670, 0, "i") + , (60671, 0, "z") + , (60672, 0, "e") + , (60673, 0, ":") + , (60674, 0, ":") + , (60675, 0, "m") + , (60676, 0, "a") + , (60677, 0, "x") + , (60678, 0, "(") + , (60679, 1, "") + , (60695, 0, ",") + , (60696, 0, " ") + , (60697, 0, "new_usersize") + , (60709, 0, ")") + , (60710, 0, ";") + , (60712, 112, "") + , (60635, 1, "") + , (53100, 8, "") + , (53130, 20, "") + , (53154, 42, "") + , ( 53079 + , 107 + , " pub fn modify_at(&mut self, userpos: usize, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {" + ) + , (53183, 808, "") + , (53182, 1, "") + , (53182, 0, "\n ") + , (53191, 0, "s") + , (53192, 0, "e") + , (53193, 0, "l") + , (53194, 0, "f") + , (53195, 0, ".") + , (53196, 0, "e") + , (53197, 0, "d") + , (53198, 0, "i") + , (53199, 0, "t") + , (53200, 0, "(") + , (53201, 0, "s") + , (53202, 0, "t") + , (53203, 0, "a") + , (53204, 0, "r") + , (53205, 0, "t") + , (53206, 0, "_") + , (53207, 0, "u") + , (53201, 7, "start_userpos") + , (53214, 0, ",") + , (53215, 0, " ") + , (53216, 0, "|") + , (53217, 0, "e") + , (53218, 0, "d") + , (53219, 0, "i") + , (53220, 0, "t") + , (53221, 0, "|") + , (53201, 1, "") + , (53201, 1, "") + , (53201, 1, "") + , (53201, 1, "") + , (53201, 1, "") + , (53201, 1, "") + , (53216, 0, " ") + , (53217, 0, "{") + , (53218, 0, "\n ") + , (53231, 0, "s") + , (53232, 0, "e") + , (53232, 1, "") + , (53231, 1, "") + , (53231, 0, "e") + , (53232, 0, "d") + , (53233, 0, "i") + , (53234, 0, "t") + , (53235, 0, ".") + , (53236, 0, "m") + , (53237, 0, "o") + , (53238, 0, "d") + , (53239, 0, "i") + , (53236, 4, "modify_item") + , (53097, 0, "i") + , (53098, 0, "t") + , (53099, 0, "e") + , (53100, 0, "m") + , (53101, 0, "_") + , (53252, 0, "(") + , (53253, 0, "m") + , (53254, 0, "o") + , (53255, 0, "d") + , (53256, 0, "i") + , (53257, 0, "f") + , (53258, 0, "y") + , (53253, 6, "modify_fn") + , (53262, 0, ")") + , (53263, 0, ";") + , (53264, 0, "\n ") + , (53265, 12, " }") + , (53222, 1, "") + , ( 53188 + , 75 + , " self.edit(userpos, |edit| edit.modify_item(modify_fn);" + ) + , ( 53188 + , 72 + , " self.edit(userpos, |edit| edit.modify_item(modify_fn); }" + ) + , (53250, 1, "") + , (53249, 1, "") + , (53249, 1, "") + , (53249, 0, ")") + , (53250, 0, ";") + , (58398, 0, "\n ") + , (58403, 0, "\n ") + , (58399, 4, "") + , ( 58404 + , 0 + , " pub fn insert_at(&mut self, mut userpos: usize, mut contents: I, mut notify: Notify)\n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {\n if contents.len() == 0 { return; }\n let num_inserted_items = contents.len();\n \n userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n unsafe {\n if offset == 0 {\n self.insert_at_iter(&mut cursor, &mut contents, &mut notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);\n } else {\n let current_item = cursor.current_item();\n let (start, end) = C::split_item(current_item, offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n cursor.move_to_item_start(self.head.height, offset);\n // This feels pretty inefficient; but its probably fine.\n self.replace_item(&mut cursor, start, &mut notify);\n\n // TODO: Consider concatenating end into contents then just call\n // insert_at_iter once.\n self.insert_at_iter(&mut cursor, &mut contents, &mut notify);\n\n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);\n\n self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut notify);\n }\n }\n\n }" + ) + , (58400, 8, " ") + , (58417, 3, "") + , (58418, 8, "") + , (58430, 21, "") + , (58430, 0, ",") + , (58447, 20, "") + , (58459, 42, "") + , ( 58400 + , 95 + , " pub fn insert(&mut self, mut contents: I) where I: ExactSizeIterator {" + ) + , (58593, 118, "") + , (58592, 1, "") + , (58592, 0, "\n") + , ( 58593 + , 0 + , " userpos = min(userpos, self.get_userlen());\n let (mut cursor, offset) = self.iter_at_userpos(userpos);\n" + ) + , (58653, 0, "// ") + , (58601, 0, "// ") + , (58750, 6, "s") + , (58751, 0, "e") + , (58752, 0, "l") + , (58753, 0, "f") + , (58754, 0, ".") + , (58755, 0, "i") + , (58756, 0, "t") + , (58757, 0, "e") + , (58758, 0, "m") + , (58759, 0, "_") + , (58755, 5, "item_offset") + , (58795, 0, "l") + , (58796, 0, "i") + , (58797, 0, "s") + , (58798, 0, "t") + , (58799, 0, ".") + , (58820, 0, "s") + , (58821, 0, "e") + , (58822, 0, "l") + , (58823, 0, "f") + , (58824, 0, ".") + , (58853, 0, "s") + , (58854, 0, "e") + , (58855, 0, "l") + , (58856, 0, "f") + , (58857, 0, ".") + , (58849, 4, "") + , (58848, 1, "") + , (58848, 0, "&mut ") + , (58849, 4, "") + , (58849, 0, "mut ") + , (58888, 0, ".") + , (58889, 0, "l") + , (58890, 0, "i") + , (58891, 0, "s") + , (58892, 0, "t") + , (58915, 0, "s") + , (58916, 0, "e") + , (58917, 0, "l") + , (58918, 0, "f") + , (58919, 0, ".") + , (58716, 0, "\n ") + , (58725, 0, "\n ") + , (58717, 8, "") + , (58726, 0, "l") + , (58727, 0, "e") + , (58728, 0, "t") + , (58729, 0, " ") + , (58730, 0, "i") + , (58731, 0, "n") + , (58732, 0, "i") + , (58733, 0, "t") + , (58734, 0, "i") + , (58735, 0, "a") + , (58736, 0, "_") + , (58736, 1, "") + , (58736, 0, "l") + , (58737, 0, "_") + , (58738, 0, "u") + , (58739, 0, "s") + , (58740, 0, "e") + , (58741, 0, "r") + , (58742, 0, "p") + , (58743, 0, "o") + , (58744, 0, "s") + , (58745, 0, " ") + , (58746, 0, "=") + , (58747, 0, " ") + , (58748, 0, "s") + , (58749, 0, "e") + , (58750, 0, "l") + , (58751, 0, "f") + , (58752, 0, ".") + , (58753, 0, "c") + , (58754, 0, "u") + , (58755, 0, "r") + , (58756, 0, "s") + , (58757, 0, "o") + , (58758, 0, "r") + , (58759, 0, ".") + , (58760, 0, "u") + , (58761, 0, "s") + , (58762, 0, "e") + , (58763, 0, "r") + , (58764, 0, "p") + , (58765, 0, "o") + , (58766, 0, "s") + , (58767, 0, ";") + , (58730, 15, "s") + , (58731, 0, "t") + , (58732, 0, "a") + , (58733, 0, "r") + , (58734, 0, "t") + , (58735, 0, "_") + , (58736, 0, "u") + , (58737, 0, "s") + , (58738, 0, "e") + , (58739, 0, "r") + , (58740, 0, "p") + , (58741, 0, "o") + , (58742, 0, "s") + , (58978, 7, "start_userpos") + , (59070, 0, "s") + , (59071, 0, "e") + , (59072, 0, "l") + , (59073, 0, "f") + , (59074, 0, ".") + , (59161, 6, "s") + , (59162, 0, "e") + , (59163, 0, "l") + , (59164, 0, "f") + , (59165, 0, ".") + , (59166, 0, "l") + , (59167, 0, "o") + , (59168, 0, "c") + , (59169, 0, "a") + , (59166, 4, "local_offset") + , (59166, 12, "loca") + , (59161, 9, "offset") + , (59161, 6, "self.loca") + , (59166, 4, "local_offset") + , (59166, 1, "") + , (59166, 1, "") + , (59166, 1, "") + , (59166, 1, "") + , (59166, 1, "") + , (59166, 0, "i") + , (59167, 0, "t") + , (59168, 0, "e") + , (59169, 0, "m") + , (59297, 0, "s") + , (59298, 0, "e") + , (59299, 0, "l") + , (59300, 0, "f") + , (59301, 0, ".") + , (59332, 0, ".") + , (59333, 0, "l") + , (59334, 0, "i") + , (59335, 0, "s") + , (59336, 0, "t") + , (59351, 6, "self.item_offset") + , (59463, 0, ".") + , (59464, 0, "l") + , (59465, 0, "i") + , (59466, 0, "s") + , (59467, 0, "t") + , (59486, 0, "s") + , (59487, 0, "e") + , (59487, 1, "") + , (59486, 1, "") + , (59487, 0, "s") + , (59488, 0, "e") + , (59489, 0, "l") + , (59490, 0, "f") + , (59491, 0, ".") + , (59512, 0, "s") + , (59513, 0, "e") + , (59514, 0, "l") + , (59515, 0, "f") + , (59516, 0, ".") + , (59668, 0, ".") + , (59669, 0, "l") + , (59670, 0, "i") + , (59671, 0, "s") + , (59672, 0, "t") + , (59694, 0, "s") + , (59695, 0, "e") + , (59696, 0, "l") + , (59697, 0, "f") + , (59698, 0, ".") + , (59727, 0, "s") + , (59728, 0, "e") + , (59729, 0, "l") + , (59730, 0, "f") + , (59731, 0, ".") + , (59763, 0, "l") + , (59764, 0, "i") + , (59765, 0, "s") + , (59766, 0, "t") + , (59767, 0, ".") + , (59789, 0, "s") + , (59790, 0, "e") + , (59791, 0, "l") + , (59792, 0, "f") + , (59793, 0, ".") + , (59802, 7, "s") + , (59803, 0, "t") + , (59804, 0, "a") + , (59805, 0, "r") + , (59802, 4, "userpos") + , (59802, 7, "s") + , (59803, 0, "t") + , (59804, 0, "a") + , (59805, 0, "r") + , (59802, 4, "start_userpos") + , (59860, 0, "l") + , (59861, 0, "i") + , (59862, 0, "s") + , (59863, 0, "t") + , (59864, 0, ".") + , (59885, 0, "s") + , (59886, 0, "e") + , (59887, 0, "l") + , (59888, 0, "f") + , (59889, 0, ".") + , (59925, 0, "s") + , (59926, 0, "e") + , (59927, 0, "l") + , (59928, 0, "f") + , (59929, 0, ".") + , (54724, 0, "// ") + , (54710, 0, "// ") + , (54625, 0, "// ") + , (54544, 0, "// ") + , (54465, 0, "// ") + , (54425, 0, "// ") + , (54344, 0, "// ") + , (54275, 0, "// ") + , (54202, 0, "// ") + , (54133, 0, "// ") + , (54103, 0, "// ") + , (54032, 0, "// ") + , (53960, 0, "// ") + , (53902, 0, "// ") + , (53881, 0, "// ") + , (53801, 0, "// ") + , (53722, 0, "// ") + , (53693, 0, "// ") + , (53676, 0, "// ") + , (53609, 0, "// ") + , (53557, 0, "// ") + , (53499, 0, "// ") + , (53456, 0, "// ") + , (53447, 0, "\n ") + , (53456, 0, "s") + , (53457, 0, "e") + , (53458, 0, "l") + , (53459, 0, "f") + , (53460, 0, ".") + , (53461, 0, "e") + , (53462, 0, "d") + , (53463, 0, "i") + , ( 53461 + , 3 + , "edit_notify(userpos: usize, notify: fn(&[C::Item], ItemMarker), f: F)" + ) + , (53473, 14, "u") + , (53474, 0, "s") + , (53475, 0, "e") + , (53476, 0, "r") + , (53477, 0, "p") + , (53478, 0, "o") + , (53479, 0, "s") + , (53482, 37, "") + , (53482, 0, "n") + , (53483, 0, "o") + , (53484, 0, "t") + , (53485, 0, "i") + , (53486, 0, "f") + , (53487, 0, "y") + , (53280, 8, "") + , (53329, 20, "") + , (53341, 42, "") + , (53401, 1, "") + , (53400, 1, "") + , (53399, 1, "") + , (53398, 1, "") + , (53397, 1, "") + , (53396, 1, "") + , (53395, 1, "") + , (53405, 8, "") + , (53405, 5, "") + , (53405, 0, "|") + , (53406, 0, "e") + , (53407, 0, "d") + , (53408, 0, "i") + , (53409, 0, "t") + , (53410, 0, "|") + , (53411, 0, " ") + , (53412, 0, "e") + , (53413, 0, "d") + , (53414, 0, "i") + , (53415, 0, "t") + , (53416, 0, ".") + , (53417, 0, "i") + , (53418, 0, "n") + , (53419, 0, "s") + , (53420, 0, "e") + , (53421, 0, "r") + , (53422, 0, "t") + , (53423, 0, "(") + , (53424, 0, "c") + , (53425, 0, "o") + , (53426, 0, "n") + , (53427, 0, "t") + , (53428, 0, "e") + , (53429, 0, "n") + , (53430, 0, "t") + , (53431, 0, "s") + , (53432, 0, ")") + , (53433, 0, ")") + , (54944, 17, "") + , (21484, 17, "") + , (1247, 2, "2") + , (1247, 1, "10") + , (53418, 1347, "") + , (53417, 1, "") + , (53297, 3, "") + , (53277, 3, "") + , (53294, 1, "") + , (53277, 1, "") + , (58628, 1, "") + , (58634, 0, "\n ") + , (58639, 0, "\n ") + , (58635, 4, "") + , (58640, 0, "p") + , (58641, 0, "u") + , (58642, 0, "b") + , (58643, 0, " ") + , (58644, 0, "f") + , (58645, 0, "n") + , (58646, 0, " ") + , (58647, 0, "i") + , (58648, 0, "n") + , (58649, 0, "s") + , (58650, 0, "e") + , (58651, 0, "r") + , (58652, 0, "t") + , (58653, 0, "_") + , (58654, 0, "s") + , (58655, 0, "l") + , (58656, 0, "i") + , (58657, 0, "c") + , (58658, 0, "e") + , (58659, 0, "(") + , (58660, 0, "&") + , (58661, 0, "m") + , (58662, 0, "u") + , (58663, 0, "t") + , (58664, 0, " ") + , (58665, 0, "s") + , (58666, 0, "e") + , (58667, 0, "l") + , (58668, 0, "f") + , (58669, 0, ",") + , (58670, 0, " ") + , (58671, 0, "&") + , (58672, 0, "[") + , (58673, 0, "C") + , (58674, 0, ":") + , (58675, 0, ":") + , (58676, 0, "I") + , (58677, 0, "t") + , (58678, 0, "e") + , (58679, 0, "m") + , (58680, 0, "]") + , (58671, 0, "i") + , (58672, 0, "t") + , (58673, 0, "e") + , (58674, 0, "m") + , (58675, 0, "s") + , (58676, 0, ":") + , (58677, 0, " ") + , (58688, 0, ")") + , (58689, 0, " ") + , (58690, 0, "w") + , (58691, 0, "h") + , (58692, 0, "e") + , (58693, 0, "r") + , (58694, 0, "e") + , (58695, 0, " ") + , (58696, 0, "C") + , (58697, 0, ":") + , (58698, 0, ":") + , (58699, 0, "I") + , (58700, 0, "m") + , (58700, 1, "") + , (58700, 0, "t") + , (58701, 0, "e") + , (58702, 0, "m") + , (58703, 0, ":") + , (58704, 0, " ") + , (58705, 0, "C") + , (58706, 0, "o") + , (58707, 0, "p") + , (58708, 0, "y") + , (58709, 0, " ") + , (58710, 0, "{") + , (58711, 0, "\n ") + , (58720, 0, "\n ") + , (58712, 8, "") + , (58713, 8, " }") + , (58712, 0, " ") + , (58720, 0, "s") + , (58721, 0, "e") + , (58722, 0, "l") + , (58723, 0, "f") + , (58724, 0, ".") + , (58725, 0, "i") + , (58726, 0, "n") + , (58727, 0, "s") + , (58728, 0, "e") + , (58729, 0, "r") + , (58730, 0, "t") + , (58731, 0, "(") + , (58732, 0, "i") + , (58733, 0, "t") + , (58734, 0, "e") + , (58735, 0, "m") + , (58736, 0, "s") + , (58737, 0, ".") + , (58738, 0, "i") + , (58739, 0, "t") + , (58740, 0, "e") + , (58741, 0, "r") + , (58742, 0, "(") + , (58743, 0, ")") + , (58744, 0, ".") + , (58745, 0, "c") + , (58746, 0, "l") + , (58746, 1, "") + , (58746, 0, "o") + , (58747, 0, "p") + , (58748, 0, "e") + , (58749, 0, "i") + , (58749, 1, "") + , (58748, 1, "") + , (58748, 0, "i") + , (58749, 0, "e") + , (58750, 0, "d") + , (58751, 0, "(") + , (58752, 0, ")") + , (58753, 0, ")") + , (58754, 0, ";") + , (58731, 0, "_iter") + , (57083, 0, "_iter") + , (53398, 0, "_iter") + , (57069, 0, "\n ") + , (57074, 0, "\n ") + , (57070, 4, "") + , (57075, 0, "p") + , (57076, 0, "u") + , (57077, 0, "b") + , (57078, 0, " ") + , (57079, 0, "f") + , (57080, 0, "n") + , (57081, 0, " ") + , (57082, 0, "i") + , (57083, 0, "n") + , (57084, 0, "s") + , (57085, 0, "e") + , (57086, 0, "r") + , (57087, 0, "t") + , (57088, 0, "(") + , (57088, 1, "") + , (57088, 0, "(") + , (57089, 0, "&") + , (57090, 0, "m") + , (57091, 0, "u") + , (57092, 0, "t") + , (57093, 0, " ") + , (57094, 0, "s") + , (57095, 0, "e") + , (57096, 0, "l") + , (57097, 0, "f") + , (57098, 0, ",") + , (57099, 0, " ") + , (57100, 0, "i") + , (57101, 0, "t") + , (57102, 0, "e") + , (57103, 0, "m") + , (57104, 0, ":") + , (57105, 0, " ") + , (57106, 0, "C") + , (57107, 0, ":") + , (57108, 0, ":") + , (57109, 0, "I") + , (57110, 0, "t") + , (57111, 0, "e") + , (57109, 3, "Item") + , (57113, 0, ")") + , (57114, 0, " ") + , (57115, 0, "{") + , (57116, 0, "\n ") + , (57125, 0, "\n ") + , (57117, 8, "") + , (57118, 8, " }") + , (57117, 0, " ") + , (57125, 0, "s") + , (57126, 0, "e") + , (57127, 0, "l") + , (57128, 0, "f") + , (57129, 0, ".") + , (57130, 0, "i") + , (57131, 0, "n") + , (57132, 0, "s") + , (57133, 0, "e") + , (57134, 0, "r") + , (57130, 5, "insert_iter(mut contents: I)") + , (57142, 15, "i") + , (57143, 0, "t") + , (57144, 0, "e") + , (57145, 0, "r") + , (57146, 0, ":") + , (57147, 0, ":") + , (57148, 0, "o") + , (57149, 0, "n") + , (57148, 2, "once(value: T)") + , (57153, 8, "i") + , (57154, 0, "t") + , (57155, 0, "e") + , (57156, 0, "m") + , (57159, 0, ";") + , (57069, 97, "") + , ( 58644 + , 0 + , "\n\n pub fn insert(&mut self, item: C::Item) {\n self.insert_iter(iter::once(item));\n }" + ) + , (51993, 193, "") + , (51992, 1, "") + , (51992, 0, "\n") + , ( 51993 + , 0 + , "\n // self.modify_at(start_userpos, Self::no_notify, |item, offset| {\n // assert_eq!(offset, 0, \"replace_at must modify the entire item\");\n // *item = \n // })" + ) + , (60521, 0, "\n ") + , (60526, 0, "\n ") + , (60522, 4, "") + , (60527, 0, "p") + , (60528, 0, "u") + , (60529, 0, "b") + , (60530, 0, " ") + , (60531, 0, "f") + , (60532, 0, "n") + , (60533, 0, " ") + , (60534, 0, "r") + , (60535, 0, "e") + , (60536, 0, "p") + , (60537, 0, "l") + , (60538, 0, "a") + , (60539, 0, "c") + , (60540, 0, "e") + , (60541, 0, "_") + , (60542, 0, "i") + , (60543, 0, "t") + , (60544, 0, "e") + , (60545, 0, "m") + , (60546, 0, "(") + , (60547, 0, "&") + , (60548, 0, "s") + , (60549, 0, "e") + , (60550, 0, "l") + , (60551, 0, "f") + , (60552, 0, ",") + , (60553, 0, " ") + , (60554, 0, "r") + , (60555, 0, "e") + , (60556, 0, "p") + , (60557, 0, "l") + , (60558, 0, "a") + , (60559, 0, "c") + , (60560, 0, "e") + , (60561, 0, "m") + , (60562, 0, "e") + , (60563, 0, "n") + , (60564, 0, "t") + , (60565, 0, ":") + , (60566, 0, " ") + , (60567, 0, "C") + , (60568, 0, ":") + , (60569, 0, ":") + , (60570, 0, "I") + , (60571, 0, "t") + , (60572, 0, "e") + , (60573, 0, "m") + , (60574, 0, ")") + , (60575, 0, " ") + , (60576, 0, "{") + , (60577, 0, "\n ") + , (60586, 0, "\n ") + , (60578, 8, "") + , (60579, 8, " }") + , (60578, 0, " ") + , (60586, 0, "s") + , (60587, 0, "e") + , (60588, 0, "l") + , (60589, 0, "f") + , (60590, 0, ".") + , (60591, 0, "m") + , (60592, 0, "o") + , (60593, 0, "d") + , (60594, 0, "i") + , (60591, 4, "modify_item(modify_fn: F)") + , (60603, 12, "") + , (60603, 0, "|") + , (60604, 0, "e") + , (60604, 1, "") + , (60604, 0, "o") + , (60605, 0, "l") + , (60606, 0, "d") + , (60607, 0, "|") + , (60608, 0, " ") + , (60609, 0, "*") + , (60610, 0, "o") + , (60611, 0, "l") + , (60612, 0, "d") + , (60613, 0, " ") + , (60614, 0, "=") + , (60615, 0, " ") + , (60616, 0, "r") + , (60617, 0, "e") + , (60618, 0, "p") + , (60619, 0, "l") + , (60620, 0, "a") + , (60621, 0, "c") + , (60622, 0, "e") + , (60623, 0, "m") + , (60624, 0, "e") + , (60625, 0, "n") + , (60626, 0, "t") + , (60628, 0, ";") + , (60607, 0, ",") + , (60608, 0, " ") + , (60609, 0, "o") + , (60610, 0, "f") + , (60611, 0, "f") + , (60612, 0, "s") + , (60613, 0, "e") + , (60614, 0, "t") + , (60617, 0, "{") + , (60617, 1, "") + , (60609, 0, "_") + , (60577, 0, "\n ") + , (60577, 9, "") + , (60548, 0, "m") + , (60549, 0, "u") + , (60550, 0, "t") + , (60551, 0, " ") + , (52193, 304, "") + , (52192, 1, "") + , (56367, 0, "\n ") + , ( 56372 + , 0 + , "\n fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.head.height);\n assert_eq!(cursor, &c2);\n }\n }" + ) + , (56368, 4, "") + , (56672, 0, "\n ") + , (56673, 4, "") + , (56367, 1, "") + , (56400, 20, "") + , (56509, 0, ".") + , (56510, 0, "l") + , (56511, 0, "i") + , (56512, 0, "s") + , (56513, 0, "t") + , (56589, 0, ".") + , (56590, 0, "l") + , (56591, 0, "i") + , (56592, 0, "s") + , (56593, 0, "t") + , (56632, 0, "s") + , (56633, 0, "e") + , (56634, 0, "l") + , (56635, 0, "f") + , (56636, 0, ".") + , (59319, 5, "") + , (58433, 5, "") + , (57609, 5, "") + , (59309, 0, ".list") + , (58428, 0, ".list") + , (57609, 0, ".list") + , (59345, 14, "") + , (58459, 14, "") + , (57635, 14, "") + , (59292, 5, "") + , (58420, 5, "") + , (57610, 5, "") + , (56632, 0, "&") + , (53999, 428, "") + , (53998, 1, "") + , (53431, 166, "") + , (53430, 1, "") + , (53430, 0, "\n ") + , (53431, 4, "") + , (53379, 1, "") + , (53345, 67, " self.edit(userpos, |edit| edit.del(num_items);") + , (53345, 65, " self.edit(userpos, |edit| edit.del(num_items); })") + , (53398, 1, "") + , (53399, 1, "") + , (53398, 1, "") + , (53832, 8, "") + , (58752, 0, "I") + , (58753, 0, "o") + , (58754, 0, "t") + , (58755, 0, "u") + , (58756, 0, "i") + , (58752, 5, "O") + , (58753, 0, "p") + , (58754, 0, "t") + , (58755, 0, "i") + , (58756, 0, "o") + , (58757, 0, "n") + , (58758, 0, "<") + , (58776, 0, ">") + , (58779, 0, "\n ") + , (58788, 0, "i") + , (58789, 0, "f") + , (58790, 0, " ") + , (58791, 0, "s") + , (58792, 0, "e") + , (58793, 0, "l") + , (58794, 0, "f") + , (58795, 0, ".") + , (58796, 0, "c") + , (58797, 0, "u") + , (58798, 0, "r") + , (58799, 0, "s") + , (58800, 0, "o") + , (58801, 0, "r") + , (58802, 0, ".") + , (58803, 0, "u") + , (58804, 0, "s") + , (58805, 0, "e") + , (58806, 0, "r") + , (58807, 0, "p") + , (58808, 0, "o") + , (58809, 0, "s") + , (58810, 0, " ") + , (58811, 0, "=") + , (58812, 0, "=") + , (58813, 0, " ") + , (58814, 0, "0") + , (58815, 0, " ") + , (58816, 0, "7") + , (58816, 1, "") + , (58816, 0, "&") + , (58817, 0, "&") + , (58818, 0, " ") + , (58819, 0, "s") + , (58820, 0, "e") + , (58821, 0, "l") + , (58822, 0, "f") + , (58823, 0, ".") + , (58824, 0, "i") + , (58825, 0, "t") + , (58826, 0, "e") + , (58824, 3, "item_offset") + , (58835, 0, " ") + , (58836, 0, "=") + , (58837, 0, "=") + , (58838, 0, " ") + , (58839, 0, "0") + , (58840, 0, " ") + , (58841, 0, "{") + , (58842, 0, " ") + , (58843, 0, "N") + , (58844, 0, "o") + , (58845, 0, "n") + , (58846, 0, "e") + , (58847, 0, " ") + , (58848, 0, "}") + , (58849, 0, "\n ") + , (58858, 0, "e") + , (58859, 0, "l") + , (58860, 0, "s") + , (58861, 0, "e") + , (58862, 0, " ") + , (58863, 0, "{") + , (58864, 0, " ") + , ( 58850 + , 81 + , " else { (unsafe { self.cursor.current_item() }, self.item_offset)" + ) + , (58865, 0, "S") + , (58866, 0, "o") + , (58867, 0, "m") + , (58868, 0, "e") + , (58869, 0, "(") + , (58927, 0, ")") + , (58928, 0, " ") + , (58929, 0, "}") + , (16234, 1, "") + , (16235, 16, "") + , (16234, 1, "") + , (16233, 1, "") + , (16232, 1, "") + , (16209, 0, "self.local_index") + , (16225, 0, " ") + , (16226, 0, "<") + , (16227, 0, " ") + , ( 29278 + , 79 + , " if usersize >= offset { break; } // We're in the middle of an item.\n" + ) + , ( 29278 + , 80 + , " if usersize offset { break; } // We're in the middle of an item.\n" + ) + , ( 29278 + , 78 + , " if usersize > offset { break; } // We're in the middle of an item.\n" + ) + , ( 58717 + , 254 + , " pub fn prev_item(&self) -> Option<(&C::Item, usize)> {\n if self.item_offset == 0 {\n assert!(self.cursor.userpos == 0, \"Invalid cursor\");\n None\n } else {\n Some((unsafe { self.cursor.current_item() }, self.item_offset))\n }\n }\n\n pub fn advance_item(&mut self) {\n" + ) + , ( 16098 + , 0 + , " unsafe fn prev_item(&self) -> &'a C::Item {\n let node = &*self.here_ptr();\n assert!(self.local_index > 0);\n debug_assert!(self.local_index < node.num_items as usize);\n &*(node.items[self.local_index - 1].as_ptr())\n }\n\n" + ) + , ( 59163 + , 76 + , " Some((unsafe { self.cursor.prev_item() }, self.item_offset))\n" + ) + , (59235, 0, "\n } else {") + , (59146, 17, "") + , (59063, 0, "\n ") + , (59076, 0, "i") + , (59077, 0, "f") + , (59078, 0, " ") + , (59079, 0, "s") + , (59080, 0, "e") + , (59081, 0, "l") + , (59082, 0, "f") + , (59083, 0, ".") + , (59084, 0, "c") + , (59085, 0, "u") + , (59086, 0, "r") + , (59087, 0, "s") + , (59088, 0, "o") + , (59089, 0, "r") + , (59090, 0, ".") + , (59091, 0, "i") + , (59092, 0, "n") + , (59093, 0, "d") + , (59094, 0, "e") + , (59095, 0, "x") + , (59091, 5, "local_index") + , (59102, 0, " ") + , (59103, 0, "=") + , (59104, 0, "=") + , (59105, 0, " ") + , (59106, 0, "0") + , (59107, 0, " ") + , (59108, 0, "{") + , (59122, 0, " ") + , (59191, 0, " ") + , (59199, 0, "\n ") + , (59200, 16, " }") + , (59213, 0, " ") + , (59214, 0, "e") + , (59215, 0, "l") + , (59216, 0, "s") + , (59217, 0, "e") + , (59218, 0, " ") + , (59219, 0, "{") + , (59233, 0, " ") + , (59297, 0, "\n ") + , (59298, 16, " }") + , (59298, 13, " ") + , (59298, 16, " }") + , (59328, 0, "\n ") + , (59341, 0, "Some((unsafe { self.cursor.prev_item() }, self.item_offset))") + , (59368, 9, "n") + , (59369, 0, "e") + , (59369, 1, "") + , (59368, 1, "") + , (59368, 0, "c") + , (59369, 0, "u") + , (59370, 0, "r") + , (59371, 0, "r") + , (59368, 4, "current_item()") + , (59381, 1, "") + , (59380, 1, "") + , (16263, 0, "=") + , (20455, 80, "") + , (20454, 1, "") + , (20453, 1, "") + , (20452, 1, "") + , (53884, 1, "") + , (53883, 1, "") + , (53883, 5, "") + , (53874, 0, "S") + , (53875, 0, "e") + , (53876, 0, "l") + , (53877, 0, "f") + , (53878, 0, ":") + , (53879, 0, ":") + , (1897, 0, "\n") + , (1898, 0, "\n") + , (1899, 0, "\n") + , (1899, 1, "") + , (1899, 0, "i") + , (1900, 0, "m") + , (1901, 0, "p") + , (1902, 0, "l") + , (1903, 0, " ") + , (1904, 0, "I") + , (1905, 0, "t") + , (1906, 0, "e") + , (1907, 0, "m") + , (1904, 4, "ItemMarker") + , (1914, 0, " ") + , (1915, 0, "{") + , (1916, 0, "\n ") + , (1921, 0, "\n ") + , (1917, 4, "") + , (1918, 4, "}") + , (1917, 0, " ") + , (1921, 0, "n") + , (1922, 0, "u") + , (1923, 0, "l") + , (1924, 0, "l") + , (1921, 0, "f") + , (1922, 0, "n") + , (1923, 0, " ") + , (1928, 0, ")") + , (1929, 0, "(") + , (1929, 1, "") + , (1928, 1, "") + , (1928, 0, "(") + , (1929, 0, ")") + , (1930, 0, " ") + , (1931, 0, "-") + , (1932, 0, ">") + , (1933, 0, " ") + , (1934, 0, "I") + , (1935, 0, "t") + , (1936, 0, "e") + , (1937, 0, "m") + , (1934, 4, "ItemMarker") + , (1944, 0, " ") + , (1945, 0, "{") + , (1946, 0, "\n ") + , (1955, 0, "I") + , (1956, 0, "t") + , (1957, 0, "e") + , (1958, 0, "m") + , (1959, 0, "M") + , (1955, 5, "ItemMarker") + , (1965, 0, " ") + , (1966, 0, "{") + , (1967, 0, " ") + , (1968, 0, "p") + , (1969, 0, "t") + , (1970, 0, "r") + , (1971, 0, ":") + , (1972, 0, " ") + , (1973, 0, "P") + , (1974, 0, "t") + , (1975, 0, "r") + , (1975, 1, "") + , (1974, 1, "") + , (1973, 1, "") + , (1973, 0, "p") + , (1974, 0, "t") + , (1975, 0, "r") + , (1976, 0, ":") + , (1977, 0, ":") + , (1978, 0, "n") + , (1979, 0, "u") + , (1980, 0, "l") + , (1978, 3, "null()") + , (1984, 0, " ") + , (1985, 0, "}") + , (1986, 0, " ") + , (1986, 1, "") + , (1986, 0, "\n ") + , (1987, 8, " }") + , (1903, 0, "<") + , (1904, 0, "C") + , (1905, 0, ">") + , (1917, 0, "<") + , (1918, 0, "C") + , (1919, 0, ">") + , (1950, 0, "<") + , (1951, 0, "C") + , (1952, 0, ">") + , (1905, 0, ":") + , (1906, 0, " ") + , (1907, 0, "L") + , (1908, 0, "i") + , (1909, 0, "s") + , (1910, 0, "t") + , (1907, 4, "ListConfig") + , (2003, 0, "_") + , (2004, 0, "m") + , (2005, 0, "u") + , (2006, 0, "t") + , (1939, 0, "p") + , (1940, 0, "u") + , (1941, 0, "b") + , (1942, 0, " ") + , ( 1935 + , 0 + , " pub fn null() -> ItemMarker {\n ItemMarker { ptr: ptr::null_mut() }\n }\n" + ) + , (2033, 0, "i") + , (2034, 0, "s") + , (2035, 0, "_") + , (2041, 0, "I") + , (2042, 0, "T") + , (2041, 2, "ItemMarker") + , (2051, 0, "<") + , (2052, 0, "C") + , (2053, 0, ">") + , (2041, 13, "&") + , (2042, 0, "s") + , (2043, 0, "e") + , (2044, 0, "l") + , (2045, 0, "f") + , (2051, 13, "b") + , (2052, 0, "o") + , (2053, 0, "o") + , (2054, 0, "l") + , (2066, 35, "") + , (2066, 0, "p") + , (2067, 0, "t") + , (2068, 0, "r") + , (2069, 0, ":") + , (2070, 0, ":") + , (2071, 0, "i") + , (2072, 0, "s") + , (2072, 1, "") + , (2071, 1, "") + , (2070, 1, "") + , (2070, 0, ":") + , (2066, 5, "") + , (2066, 0, "s") + , (2067, 0, "e") + , (2068, 0, "l") + , (2069, 0, ".") + , (2069, 1, "") + , (2069, 0, "f") + , (2070, 0, ".") + , (2071, 0, "p") + , (2072, 0, "t") + , (2073, 0, "r") + , (2074, 0, ".") + , (2075, 0, "i") + , (2076, 0, "s") + , (2077, 0, "_") + , (2078, 0, "n") + , (2079, 0, "u") + , (2080, 0, "l") + , (2081, 0, "l") + , (2082, 0, "(") + , (2083, 0, ")") + , (2041, 1, "") + , (2021, 0, "\n ") + , (54174, 0, "// ") + , (54153, 0, "// ") + , (54097, 0, "// ") + , (54006, 0, "// ") + , (53939, 0, "// ") + , (53881, 0, "// ") + , (53840, 0, "// ") + , (53780, 0, "// ") + , (2022, 4, "") + , ( 53772 + , 0 + , " // pub fn edit(&mut self, userpos: usize, f: F) -> R\n // where F: FnOnce(&mut Edit) -> R {\n // // self.edit_notify(userpos, no_notify_x::, f)\n // let (cursor, item_offset) = self.iter_at_userpos(userpos);\n // let mut edit = Edit { list: self, cursor, item_offset, notify: Self::no_notify };\n\n // // TODO: Or maybe I should pass ownership here?\n // f(&mut edit)\n // }\n" + ) + , (54615, 3, "") + , (54591, 3, "") + , (54532, 3, "") + , (54438, 3, "") + , (54368, 3, "") + , (54307, 3, "") + , (54263, 3, "") + , (54200, 3, "") + , (54211, 6, "") + , (54237, 6, "") + , (54242, 1, "") + , (54242, 0, "E") + , (54243, 0, "d") + , (54244, 0, "i") + , (54245, 0, "t") + , (54246, 0, "<") + , (54247, 0, "C") + , (54248, 0, ">") + , (54249, 39, "") + , (54249, 0, " ") + , (54249, 1, "") + , (54532, 12, "") + , (54385, 15, "") + , (54452, 65, "") + , (54451, 1, "") + , (54450, 1, "") + , (53735, 14, "") + , (53438, 14, "") + , (53256, 14, "") + , (53707, 0, ")") + , (53424, 0, ")") + , (53256, 0, ")") + , (53710, 0, ".") + , (53426, 0, ".") + , (53257, 0, ".") + , (53727, 1, "") + , (53449, 1, "") + , (53281, 1, "") + , (53280, 1, "") + , (52803, 0, ")") + , (52804, 0, ".") + , (52805, 28, "") + , (52846, 11, "") + , (54403, 6, "") + , (53694, 424, "") + , (54005, 51, "") + , (54005, 0, ")") + , (54006, 0, " ") + , (54007, 0, "-") + , (54008, 0, ">") + , (54009, 0, " ") + , (54010, 0, "E") + , (54011, 0, "d") + , (54012, 0, "i") + , (54013, 0, "t") + , (54014, 0, "<") + , (54015, 0, "C") + , (54016, 0, ">") + , (54017, 40, "") + , (54017, 0, " ") + , (54160, 77, "") + , (54159, 1, "") + , (54158, 1, "") + , (54158, 0, ";\n") + , ( 54160 + , 0 + , "\n // TODO: Or maybe I should pass ownership here?\n f(&mut edit)" + ) + , (54017, 1, "") + , (54017, 0, "\n where F: FnOnce(&mut Edit) -> R ") + , (54009, 8, "") + , (54006, 3, "") + , (54005, 1, "") + , (54005, 0, ", notify: fn(&[C::Item], ItemMarker), f: F) -> R") + , ( 53694 + , 0 + , "\n // pub fn edit(&mut self, userpos: usize, f: F) -> R\n // where F: FnOnce(&mut Edit) -> R {\n // // self.edit_notify(userpos, no_notify_x::, f)\n // let (cursor, item_offset) = self.iter_at_userpos(userpos);\n // let mut edit = Edit { list: self, cursor, item_offset, notify: Self::no_notify };\n\n // // TODO: Or maybe I should pass ownership here?\n // f(&mut edit)\n // }" + ) + , (53694, 424, "") + , (54005, 51, "") + , (54005, 0, ", notify: fn(&[C::Item], ItemMarker), f: F) -> R") + , (54049, 1, "") + , (54048, 1, "") + , (54047, 1, "") + , (54046, 1, "") + , (54045, 1, "") + , (54044, 1, "") + , (54049, 1, "") + , (54049, 26, "") + , (54056, 6, "") + , (54044, 1, "") + , (54044, 0, ")") + , (54199, 77, "") + , (54198, 1, "") + , (54197, 1, "") + , (54134, 15, "") + , (58866, 0, "\n ") + , (58883, 0, "/") + , (58884, 0, "/") + , (58885, 0, " ") + , (58886, 0, "C") + , (58953, 0, " ") + , (58954, 0, "a") + , (58955, 0, "t") + , (58956, 0, " ") + , (58957, 0, "s") + , (58958, 0, "t") + , (58959, 0, "a") + , (58960, 0, "r") + , (58961, 0, "t") + , (58962, 0, " ") + , (58963, 0, "o") + , (58964, 0, "f") + , (58965, 0, " ") + , (58966, 0, "n") + , (58967, 0, "o") + , (58968, 0, "d") + , (58969, 0, "e") + , (58947, 0, "s") + , (58948, 0, "t") + , (58949, 0, "a") + , (58950, 0, "t") + , (58951, 0, "e") + , (58952, 0, ":") + , (58953, 0, " ") + , (58954, 1, "") + , (58954, 0, "C") + , (58867, 20, "") + , (58866, 1, "") + , (58866, 0, "\n ") + , (58883, 0, "/") + , (58884, 0, "/") + , (58885, 0, " ") + , (58886, 0, "C") + , (58887, 0, "u") + , (58888, 0, "r") + , (58889, 0, "s") + , (58890, 0, "o") + , (58891, 0, "r") + , (58892, 0, "s") + , (58893, 0, " ") + , (58894, 0, "s") + , (58895, 0, "h") + , (58896, 0, "o") + , (58897, 0, "u") + , (58898, 0, "l") + , (58899, 0, "d") + , (58900, 0, " ") + , (58901, 0, "a") + , (58902, 0, "l") + , (58903, 0, "w") + , (58904, 0, "a") + , (58905, 0, "y") + , (58906, 0, "s") + , (58907, 0, " ") + , (58908, 0, "b") + , (58909, 0, "e") + , (58910, 0, " ") + , (58911, 0, "a") + , (58912, 0, "t") + , (58913, 0, " ") + , (58914, 0, "t") + , (58915, 0, "h") + , (58916, 0, "e") + , (58917, 0, " ") + , (58918, 0, "e") + , (58919, 0, "n") + , (58920, 0, "d") + , (58921, 0, " ") + , (58922, 0, "o") + , (58923, 0, "f") + , (58924, 0, " ") + , (58925, 0, "t") + , (58926, 0, "h") + , (58927, 0, "e") + , (58928, 0, " ") + , (58929, 0, "i") + , (58930, 0, "t") + , (58931, 0, "e") + , (58932, 0, "m") + , (58933, 0, " ") + , (58886, 48, "") + , (58886, 0, "C") + , (58887, 0, "u") + , (58888, 0, "r") + , (58889, 0, "s") + , (58890, 0, "o") + , (58891, 0, "r") + , (58892, 0, "s") + , (58893, 0, " ") + , (58894, 0, "s") + , (58895, 0, "h") + , (58896, 0, "o") + , (58897, 0, "u") + , (58898, 0, "l") + , (58899, 0, "d") + , (58900, 0, " ") + , (58894, 7, "s") + , (58895, 0, "t") + , (58896, 0, "i") + , (58897, 0, "c") + , (58898, 0, "k") + , (58899, 0, " ") + , (58900, 0, "t") + , (58901, 0, "o") + , (58902, 0, " ") + , (58903, 0, "t") + , (58904, 0, "h") + , (58905, 0, "e") + , (58906, 0, " ") + , (58907, 0, "e") + , (58908, 0, "n") + , (58909, 0, "e") + , (58909, 1, "") + , (58909, 0, "d") + , (58910, 0, " ") + , (58911, 0, "o") + , (58912, 0, "f") + , (58913, 0, " ") + , (58914, 0, "a") + , (58915, 0, " ") + , (58916, 0, "n") + , (58917, 0, "o") + , (58918, 0, "d") + , (58919, 0, "e") + , (58894, 0, "a") + , (58895, 0, "t") + , (58896, 0, " ") + , (58897, 0, "t") + , (58898, 0, "h") + , (58899, 0, "e") + , (58900, 0, " ") + , (58901, 0, "e") + , (58902, 0, "n") + , (58903, 0, "d") + , (58904, 0, " ") + , (58905, 0, "o") + , (58906, 0, "f") + , (58907, 0, " ") + , (58908, 0, "a") + , (58909, 0, " ") + , (58910, 0, "n") + , (58911, 0, "o") + , (58912, 0, "d") + , (58913, 0, "e") + , (58914, 0, " ") + , (58920, 21, "") + , (58915, 5, "d") + , (58916, 0, "o") + , (58917, 0, "n") + , (58918, 0, "'") + , (58919, 0, "t") + , (58920, 0, " ") + , (58921, 0, "m") + , (58922, 0, "o") + , (58923, 0, "v") + , (58924, 0, "e") + , (58925, 0, " ") + , (58926, 0, "t") + , (58927, 0, "o") + , (58928, 0, " ") + , (58929, 0, "t") + , (58930, 0, "h") + , (58931, 0, "e") + , (58932, 0, " ") + , (58933, 0, "n") + , (58934, 0, "e") + , (58935, 0, "x") + , (58936, 0, "t") + , (58937, 0, " ") + , (58938, 0, "n") + , (58939, 0, "o") + , (58940, 0, "d") + , (58941, 0, "e") + , (58886, 56, "") + , (58886, 0, "W") + , (58887, 0, "h") + , (58888, 0, "e") + , (58889, 0, "n") + , (58890, 0, " ") + , (58890, 1, "") + , (58890, 0, " ") + , (58886, 5, "T") + , (58887, 0, "h") + , (58888, 0, "e") + , (58889, 0, " ") + , (58890, 0, "o") + , (58891, 0, "n") + , (58892, 0, "l") + , (58893, 0, "y") + , (58894, 0, " ") + , (58895, 0, "t") + , (58896, 0, "i") + , (58897, 0, "m") + , (58898, 0, "e") + , (58899, 0, " ") + , (58900, 0, "a") + , (58901, 0, " ") + , (58902, 0, "c") + , (58903, 0, "u") + , (58904, 0, "r") + , (58905, 0, "s") + , (58906, 0, "o") + , (58907, 0, "r") + , (58908, 0, " ") + , (58909, 0, "i") + , (58910, 0, "s") + , (58911, 0, " ") + , (58912, 0, "r") + , (58913, 0, "i") + , (58914, 0, "g") + , (58915, 0, "h") + , (58916, 0, "t") + , (58917, 0, " ") + , (58918, 0, "a") + , (58919, 0, "t") + , (58920, 0, " ") + , (58921, 0, "t") + , (58922, 0, "h") + , (58923, 0, "e") + , (58924, 0, " ") + , (58925, 0, "s") + , (58926, 0, "t") + , (58927, 0, "a") + , (58928, 0, "r") + , (58929, 0, "t") + , (58930, 0, " ") + , (58931, 0, "o") + , (58932, 0, "f") + , (58933, 0, " ") + , (58934, 0, "n") + , (58935, 0, "o") + , (58935, 1, "") + , (58934, 1, "") + , (58934, 0, "t") + , (58935, 0, "h") + , (58936, 0, "e") + , (58937, 0, " ") + , (58938, 0, "n") + , (58939, 0, "o") + , (58940, 0, "d") + , (58941, 0, "e") + , (58942, 0, ",") + , (58943, 0, " ") + , (58943, 1, "") + , (58942, 1, "") + , (58942, 0, " ") + , (58943, 0, "i") + , (58944, 0, "s") + , (58945, 0, " ") + , (58946, 0, "w") + , (58947, 0, "h") + , (58948, 0, "e") + , (58949, 0, "n") + , (58950, 0, " ") + , (58951, 0, "t") + , (58952, 0, "h") + , (58953, 0, "e") + , (58954, 0, " ") + , (58955, 0, "c") + , (58956, 0, "u") + , (58957, 0, "r") + , (58958, 0, "s") + , (58959, 0, "o") + , (58960, 0, "r") + , (58961, 0, " ") + , (58962, 0, "s") + , (58962, 1, "") + , (58962, 0, "i") + , (58963, 0, "s") + , (58964, 0, " ") + , (58965, 0, "r") + , (58966, 0, "i") + , (58967, 0, "g") + , (58968, 0, "h") + , (58965, 4, "a") + , (58966, 0, "t") + , (58967, 0, " ") + , (58968, 0, "t") + , (58969, 0, "h") + , (58970, 0, "e") + , (58971, 0, " ") + , (58972, 0, "s") + , (58973, 0, "t") + , (58974, 0, "a") + , (58975, 0, "r") + , (58976, 0, "t") + , (58977, 0, " ") + , (58978, 0, "o") + , (58979, 0, "f") + , (58980, 0, " ") + , (58981, 0, "t") + , (58982, 0, "n") + , (58982, 1, "") + , (58982, 0, "h") + , (58983, 0, "e") + , (58984, 0, " ") + , (58985, 0, "e") + , (58986, 0, "n") + , (58987, 0, "t") + , (58988, 0, "i") + , (58989, 0, "r") + , (58990, 0, "e") + , (58991, 0, " ") + , (58992, 0, "l") + , (58993, 0, "i") + , (58994, 0, "s") + , (58995, 0, "t") + , (58996, 0, ".") + , ( 58867 + , 130 + , " // The only time a cursor is right at the start of the node is\n // when the cursor is at the start of the entire list." + ) + , (58909, 2, "s") + , (58910, 0, "h") + , (58911, 0, "o") + , (58912, 0, "u") + , (58913, 0, "l") + , (58914, 0, "d") + , (58915, 0, " ") + , (58916, 0, "b") + , (58917, 0, "e") + , (58919, 5, "") + , (58918, 1, "") + , (1897, 0, "\n") + , (1898, 0, "\n") + , (1899, 0, "i") + , (1900, 0, "m") + , (1901, 0, "p") + , (1902, 0, "l") + , (1903, 0, " ") + , (1904, 0, "C") + , (1905, 0, "o") + , (1906, 0, "p") + , (1907, 0, "y") + , (1908, 0, " ") + , (1909, 0, "f") + , (1910, 0, "o") + , (1911, 0, "r") + , (1912, 0, " ") + , (1913, 0, "I") + , (1914, 0, "t") + , (1915, 0, "e") + , (1916, 0, "m") + , (1917, 0, "M") + , (1913, 5, "ItemMarker") + , (1923, 0, " ") + , (1924, 0, "{") + , (1925, 0, "}") + , (1903, 0, "<") + , (1904, 0, "C") + , (1905, 0, ":") + , (1906, 0, " ") + , (1907, 0, "L") + , (1908, 0, "i") + , (1909, 0, "s") + , (1910, 0, "t") + , (1907, 4, "ListConfig") + , (1917, 0, ">") + , (1938, 0, "<") + , (1939, 0, "C") + , (1940, 0, ">") + , (1779, 6, "") + , (1892, 0, "\n") + , (1893, 0, "i") + , (1894, 0, "m") + , (1895, 0, "p") + , (1896, 0, "l") + , (1943, 0, "\nimpl Copy for ItemMarker {}") + , (1893, 4, "") + , (1892, 1, "") + , (1913, 4, "C") + , (1914, 0, "l") + , (1915, 0, "o") + , (1916, 0, "n") + , (1917, 0, "e") + , (1764, 17, "") + , (1921, 0, "\n \n") + , (1926, 0, "f") + , (1927, 0, "n") + , (1928, 0, " ") + , (1929, 0, "c") + , (1930, 0, "l") + , (1931, 0, "o") + , (1929, 3, "clone()") + , (1926, 0, "// ") + , (1926, 13, "fn clone(&self) -> Self;") + , (1949, 1, "") + , (1949, 0, " ") + , (1950, 0, "{") + , (1951, 0, " ") + , (1952, 0, "*") + , (1953, 0, "s") + , (1954, 0, "e") + , (1955, 0, "l") + , (1956, 0, "f") + , (1957, 0, " ") + , (1958, 0, "}") + , (1875, 0, "\n") + , (1876, 0, "/") + , (1877, 0, "/") + , (1878, 0, " ") + , (1879, 0, "D") + , (1880, 0, "e") + , (1881, 0, "r") + , (1882, 0, "i") + , (1883, 0, "v") + , (1884, 0, "e") + , (1885, 0, " ") + , (1886, 0, "t") + , (1887, 0, "r") + , (1888, 0, "a") + , (1889, 0, "i") + , (1890, 0, "t") + , (1891, 0, "s") + , (1892, 0, " ") + , (1893, 0, "d") + , (1894, 0, "o") + , (1895, 0, "n") + , (1896, 0, "'") + , (1897, 0, "t") + , (1898, 0, " ") + , (1899, 0, "w") + , (1900, 0, "o") + , (1901, 0, "r") + , (1902, 0, "k") + , (1903, 0, " ") + , (1904, 0, "h") + , (1905, 0, "e") + , (1906, 0, "r") + , (1907, 0, "e") + , (1908, 0, ".") + , (54159, 2, "F") + , (54160, 0, "n") + , (54161, 0, "M") + , (54162, 0, "u") + , (54163, 0, "t") + , (54159, 0, "i") + , (54160, 0, "m") + , (54161, 0, "p") + , (54162, 0, "l") + , (54163, 0, " ") + , (55769, 0, "// ") + , (55727, 0, "// ") + , (55670, 0, "// ") + , (55647, 0, "// ") + , (55616, 0, "// ") + , (55579, 0, "// ") + , (55574, 3, "") + , (55552, 3, "") + , (55492, 3, "") + , (55466, 3, "") + , (55432, 3, "") + , (55350, 3, "") + , (55559, 0, "// ") + , (55540, 0, "// ") + , (55483, 0, "// ") + , (55460, 0, "// ") + , (55429, 0, "// ") + , (55350, 0, "// ") + , (55784, 3, "") + , (55739, 3, "") + , (55679, 3, "") + , (55653, 3, "") + , (55619, 3, "") + , (55579, 3, "") + , (55727, 0, " notify: fn(&[C::Item], ItemMarker)\n") + , (55773, 0, "// ") + , (55739, 2, "i") + , (55740, 0, "m") + , (55741, 0, "p") + , (55742, 0, "l") + , (55743, 0, " ") + , (55744, 0, "F") + , (55745, 0, "n") + , (55746, 0, "M") + , (55747, 0, "u") + , (55748, 0, "t") + , (55743, 6, "") + , (55739, 4, "fn") + , (55773, 3, "") + , (55727, 42, "") + , (55769, 0, "// ") + , (55727, 0, "// ") + , (55670, 0, "// ") + , (55647, 0, "// ") + , (55616, 0, "// ") + , (55579, 0, "// ") + , (55574, 3, "") + , (55552, 3, "") + , (55492, 3, "") + , (55466, 3, "") + , (55432, 3, "") + , (55350, 3, "") + , (54098, 0, "// ") + , (54024, 0, "// ") + , (53957, 0, "// ") + , (53899, 0, "// ") + , (53843, 0, "// ") + , (54138, 0, "<") + , (54139, 0, "N") + , (54140, 0, ":") + , (54141, 0, " ") + , (54142, 0, "FnMut(&[C::Item], ItemMarker)") + , (54174, 0, ">") + , (54259, 0, ",") + , (54260, 0, " ") + , (54261, 0, "N") + , (54211, 37, "N") + , (54110, 3, "") + , (54033, 3, "") + , (53963, 3, "") + , (53902, 3, "") + , (53843, 3, "") + , (53891, 0, ",") + , (53892, 0, " ") + , (53893, 0, "i") + , (53894, 0, "m") + , (53895, 0, "p") + , (53896, 0, "l") + , (53897, 0, " ") + , (53898, 0, "FnMut(&[C::Item], ItemMarker)") + , (55928, 0, ",") + , (55929, 0, " ") + , (55930, 0, "FnMut(&[C::Item], ItemMarker)") + , (55930, 0, "N") + , (55931, 0, ":") + , (55932, 0, " ") + , (55977, 0, ",") + , (55978, 0, " ") + , (55979, 0, "N") + , (49409, 0, "&") + , (52104, 5, "") + , (49410, 0, "m") + , (49411, 0, "u") + , (49412, 0, "t") + , (49413, 0, " ") + , (49397, 4, "") + , (52318, 0, "&") + , (52319, 0, "m") + , (52320, 0, "u") + , (52321, 0, "t") + , (52322, 0, " ") + , (58870, 0, "&") + , (58871, 0, "m") + , (58872, 0, "u") + , (58873, 0, "t") + , (58874, 0, " ") + , (59452, 16, "") + , (59452, 0, "C") + , (59453, 0, ":") + , (59454, 0, ":") + , (59455, 0, "get_usersize(_item: &Self::Item)") + , (59393, 0, "\n ") + , (59410, 0, "l") + , (59411, 0, "e") + , (59412, 0, "t") + , (59413, 0, " ") + , (59414, 0, "p") + , (59415, 0, "r") + , (59416, 0, "e") + , (59417, 0, "v") + , (59418, 0, "_") + , (59419, 0, "i") + , (59420, 0, "t") + , (59421, 0, "e") + , (59422, 0, "m") + , (59423, 0, " ") + , (59424, 0, "=") + , (59425, 0, " ") + , (59458, 23, "") + , (59458, 0, "self.cursor.prev_item()") + , (59449, 34, "") + , (59426, 0, "unsafe { self.cursor.prev_item() }") + , (59460, 0, ";") + , (59484, 0, "p") + , (59485, 0, "r") + , (59486, 0, "e") + , (59487, 0, "v") + , (59488, 0, "_") + , (59484, 5, "prev_item") + , (59511, 18, "p") + , (59512, 0, "r") + , (59513, 0, "e") + , (59514, 0, "v") + , (59511, 4, "prev_item") + , (55393, 5375, "") + , (56742, 0, "\n") + , (56743, 0, "\n") + , (56744, 0, "\n") + , (56745, 0, "\n") + , ( 56746 + , 0 + , "\npub struct Edit<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> {\n list: &'a mut SkipList,\n cursor: Cursor,\n item_offset: usize, // Offset into the current item.\n notify: Notify\n}\n// pub struct Edit<'a, C: ListConfig> {\n// list: &'a mut SkipList,\n// cursor: Cursor,\n// item_offset: usize, // Offset into the current item.\n// notify: fn(&[C::Item], ItemMarker)\n// }\n\n// impl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, Notify> {\nimpl<'a, C: ListConfig, N: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, N> {\n fn dbg_check_cursor_at(&self, userpos: usize, plus_items: usize) {\n if cfg!(debug_assertions) {\n let (mut c2, _) = self.list.iter_at_userpos(userpos);\n c2.advance_by_items(plus_items, self.list.head.height);\n assert_eq!(&self.cursor, &c2);\n }\n }\n\n pub fn del(&mut self, num_items: usize) {\n assert_eq!(self.item_offset, 0, \"Splitting nodes not yet supported\");\n\n unsafe { self.list.del_at_iter(&self.cursor, num_items); }\n\n if cfg!(debug_assertions) {\n let (c2, _) = self.list.iter_at_userpos(self.cursor.userpos);\n if &self.cursor != &c2 { panic!(\"Invalid cursor after delete\"); }\n }\n }\n\n pub fn insert_iter(&mut self, mut contents: I) where I: ExactSizeIterator {\n if contents.len() == 0 { return; }\n let num_inserted_items = contents.len();\n \n // userpos = min(userpos, self.get_userlen());\n // let (mut cursor, offset) = self.iter_at_userpos(userpos);\n\n let start_userpos = self.cursor.userpos;\n\n unsafe {\n if self.item_offset == 0 {\n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);\n\n self.dbg_check_cursor_at(start_userpos, num_inserted_items);\n } else {\n let current_item = self.cursor.current_item();\n let (start, end) = C::split_item(current_item, self.item_offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);\n // This feels pretty inefficient; but its probably fine.\n self.list.replace_item(&mut self.cursor, start, &mut self.notify);\n\n // TODO: Consider concatenating end into contents then just call\n // insert_at_iter once.\n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);\n\n self.dbg_check_cursor_at(start_userpos, num_inserted_items);\n\n self.list.insert_at_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);\n }\n }\n }\n\n pub fn insert(&mut self, item: C::Item) {\n self.insert_iter(iter::once(item));\n }\n\n pub fn insert_slice(&mut self, items: &[C::Item]) where C::Item: Copy {\n self.insert_iter(items.iter().copied());\n }\n\n pub fn replace(&mut self, removed_items: usize, mut inserted_content: I)\n where I: ExactSizeIterator {\n assert_eq!(self.item_offset, 0, \"Splitting nodes not yet supported\");\n\n let num_inserted_items = inserted_content.len();\n let start_userpos = self.cursor.userpos;\n \n unsafe { self.list.replace_at_iter(&mut self.cursor, removed_items, &mut inserted_content, &mut self.notify); }\n\n self.dbg_check_cursor_at(start_userpos, num_inserted_items);\n }\n\n pub fn prev_item(&self) -> Option<(&C::Item, usize)> {\n if self.item_offset == 0 {\n if self.cursor.local_index == 0 {\n // The only time a cursor should be at the start of the node is\n // when the cursor is at the start of the entire list.\n assert!(self.cursor.userpos == 0, \"Invalid state: Cursor at start of node\");\n None\n } else {\n let prev_item = unsafe { self.cursor.prev_item() };\n Some((prev_item, C::get_usersize(prev_item)))\n }\n } else {\n Some((unsafe { self.cursor.current_item() }, self.item_offset))\n }\n }\n\n pub fn advance_item(&mut self) {\n self.cursor.advance_item(self.list.head.height);\n self.item_offset = 0;\n }\n\n pub fn modify_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {\n let e = self.cursor.here_ptr();\n let item = unsafe { self.cursor.current_item_mut() };\n let old_usersize = C::get_usersize(item);\n modify_fn(item, self.item_offset);\n let new_usersize = C::get_usersize(item);\n\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n self.cursor.update_offsets(self.list.head.height as usize, usersize_delta);\n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);\n self.item_offset = usize::max(self.item_offset, new_usersize);\n }\n\n (self.notify)(std::slice::from_ref(item), ItemMarker {\n ptr: e,\n // _phantom: PhantomData,\n });\n }\n\n pub fn replace_item(&mut self, replacement: C::Item) {\n self.modify_item(|old, _offset| *old = replacement);\n }\n}\n" + ) + , (56743, 0, "\n") + , (56744, 0, "i") + , (56745, 0, "m") + , (56746, 0, "p") + , (56747, 0, "l") + , (56748, 0, "<") + , (56749, 0, "C") + , (56750, 0, ":") + , (56751, 0, " ") + , (56752, 0, "L") + , (56753, 0, "i") + , (56754, 0, "s") + , (56755, 0, "t") + , (56752, 4, "ListConfig") + , (56762, 0, ">") + , (56763, 0, " ") + , (56764, 0, "D") + , (56765, 0, "e") + , (56766, 0, "b") + , (56767, 0, "u") + , (56768, 0, "g") + , (56764, 0, "f") + , (56765, 0, "m") + , (56766, 0, "t") + , (56767, 0, ":") + , (56768, 0, ":") + , (56769, 0, "Debug") + , (56769, 5, "") + , (56774, 0, " ") + , (56775, 0, "f") + , (56776, 0, "o") + , (56777, 0, "r") + , (56778, 0, " ") + , (56779, 0, "S") + , (56780, 0, "k") + , (56781, 0, "i") + , (56782, 0, "l") + , (56779, 4, "SkipList") + , (56787, 0, "<") + , (56788, 0, "C") + , (56789, 0, ">") + , (56790, 0, " ") + , (56791, 0, "{") + , (56792, 0, "\n ") + , (56797, 0, "\n ") + , (56793, 4, "") + , (56794, 4, "}") + , (56793, 0, " ") + , (56797, 0, "n") + , (56797, 1, "") + , (56797, 0, "f") + , (56798, 0, "n") + , (56799, 0, " ") + , (56800, 0, "f") + , (56801, 0, "m") + , (56802, 0, "t") + , (56803, 0, "(") + , (56804, 0, "&") + , (56805, 0, "s") + , (56806, 0, "e") + , (56807, 0, "l") + , (56808, 0, "f") + , (56809, 0, ",") + , (56810, 0, " ") + , (56811, 0, "f") + , (56812, 0, ":") + , (56813, 0, " ") + , (56814, 0, "&") + , (56815, 0, "m") + , (56816, 0, "u") + , (56817, 0, "t") + , (56818, 0, " ") + , (56819, 0, "F") + , (56820, 0, "o") + , (56821, 0, "r") + , (56822, 0, "m") + , (56823, 0, "a") + , (56824, 0, "t") + , (56825, 0, "t") + , (56826, 0, "e") + , (56827, 0, "r") + , (56819, 9, "Formatter") + , (56828, 0, "<") + , (56829, 0, "'") + , (56830, 0, "_") + , (56831, 0, "'") + , (56831, 1, "") + , (56831, 0, ">") + , (56832, 0, ")") + , (56833, 0, " ") + , (56834, 0, "-") + , (56835, 0, ">") + , (56836, 0, " ") + , (56837, 0, "R") + , (56838, 0, "e") + , (56839, 0, "s") + , (56840, 0, "u") + , (56841, 0, "l") + , (56842, 0, "t") + , (56843, 0, " ") + , (56844, 0, "{") + , (56845, 0, "\n ") + , (56854, 0, "\n ") + , (56846, 8, "") + , (56847, 8, " }") + , (56792, 0, "\n ") + , (56797, 0, "u") + , (56798, 0, "s") + , (56799, 0, "e") + , (56800, 0, " ") + , (56801, 0, "s") + , (56802, 0, "t") + , (56803, 0, "d") + , (56804, 0, ":") + , (56805, 0, ":") + , (56806, 0, "f") + , (56807, 0, "m") + , (56808, 0, "t") + , (56809, 0, ":") + , (56810, 0, ":") + , (56811, 0, "F") + , (56812, 0, "o") + , (56813, 0, "r") + , (56811, 3, "") + , (56811, 0, "*") + , (56812, 0, ";") + , (56811, 1, "") + , (56811, 0, "F") + , (56812, 0, "o") + , (56813, 0, "r") + , (56814, 0, "m") + , (56811, 4, "Formatter") + , (56848, 0, "s") + , (56849, 0, "t") + , (56850, 0, "d") + , (56851, 0, ":") + , (56852, 0, ":") + , (56853, 0, "f") + , (56854, 0, "m") + , (56855, 0, "t") + , (56856, 0, ":") + , (56857, 0, ":") + , (56793, 28, "") + , (56792, 1, "") + , (56819, 5, "") + , (56851, 0, " ") + , (56859, 0, "f") + , (56860, 0, ".") + , (56861, 0, "d") + , (56862, 0, "e") + , (56863, 0, "b") + , (56864, 0, "u") + , (56865, 0, "g") + , (56861, 5, "debug_list()") + , (56873, 0, ".") + , (56874, 0, "e") + , (56875, 0, "n") + , (56876, 0, "t") + , (56877, 0, "r") + , (56878, 0, "i") + , (56879, 0, "e") + , (56880, 0, "s") + , (56881, 0, "(") + , (56882, 0, "s") + , (56883, 0, "e") + , (56884, 0, "l") + , (56885, 0, "f") + , (56886, 0, ".") + , (56894, 0, "// ") + , (56888, 0, "// ") + , (56851, 0, "// ") + , (56793, 0, "// ") + , (56744, 0, "// ") + , (56743, 0, "\n") + , (56744, 0, "\n") + , (56744, 0, "i") + , (56745, 0, "m") + , (56746, 0, "p") + , (56747, 0, "l") + , (56748, 0, " ") + , (56744, 5, "") + , (56743, 1, "") + , (56796, 0, "\n// impl fmt::Debug for SkipList {") + , (56796, 0, "\n") + , (56744, 1, "") + , (56795, 0, "\n") + , (56743, 1, "") + , (56794, 1, "") + , (56743, 0, "\n") + , (56744, 3, "") + , (56764, 10, "I") + , (56765, 0, "t") + , (56766, 0, "e") + , (56767, 0, "r") + , (56768, 0, "a") + , (56769, 0, "t") + , (56770, 0, "o") + , (56771, 0, "r") + , (56790, 0, "\n ") + , (56795, 0, "\n ") + , (56791, 4, "") + , (56792, 4, "}") + , (56791, 0, " ") + , (56795, 0, "t") + , (56796, 0, "y") + , (56797, 0, "p") + , (56798, 0, "e") + , (56799, 0, " ") + , (56800, 0, "I") + , (56801, 0, "t") + , (56802, 0, "e") + , (56803, 0, "m") + , (56804, 0, " ") + , (56805, 0, "=") + , (56806, 0, " ") + , (56807, 0, "C") + , (56808, 0, ":") + , (56809, 0, ":") + , (56810, 0, "I") + , (56811, 0, "t") + , (56812, 0, "e") + , (56813, 0, "m") + , (56810, 4, "Item") + , (56814, 0, ";") + , (56815, 0, "\n ") + , (56820, 0, "\n ") + , (56816, 4, "") + , (56821, 0, "f") + , (56822, 0, "n") + , (56823, 0, " ") + , (56824, 0, "n") + , (56825, 0, "e") + , (56826, 0, "x") + , (56827, 0, "t") + , (56828, 0, "(") + , (56817, 12, "") + , (56816, 1, "") + , (56744, 74, "/") + , ( 56744 + , 1 + , "impl Iterator for SkipList {\n type Item = C::Item;\n\n}" + ) + , (56817, 0, "// ") + , (56791, 0, "// ") + , (56744, 0, "// ") + , (56743, 0, "\n") + , ( 56744 + , 0 + , "\nstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);\nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {\n type Item = &'a Node;\n\n fn next(&mut self) -> Option<&'a Node> {\n let prev = self.0;\n if let Some(n) = self.0 {\n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });\n }\n prev\n }\n}\n" + ) + , (57104, 0, "\n") + , (56752, 4, "L") + , (56753, 0, "i") + , (56754, 0, "s") + , (56755, 0, "t") + , (56799, 0, ",") + , (56800, 0, " ") + , (56801, 0, "u") + , (56802, 0, "s") + , (56803, 0, "i") + , (56804, 0, "z") + , (56805, 0, "e") + , (56846, 8, "L") + , (56847, 0, "i") + , (56848, 0, "s") + , (56849, 0, "t") + , (56850, 0, "I") + , (56851, 0, "t") + , (56852, 0, "e") + , (56853, 0, "r") + , (56880, 11, "C") + , (56881, 0, ":") + , (56882, 0, ":") + , (56883, 0, "Item") + , (56927, 7, "C") + , (56928, 0, ":") + , (56929, 0, ":") + , (56930, 0, "I") + , (56927, 4, "S") + , (56928, 0, "e") + , (56929, 0, "l") + , (56930, 0, "f") + , (56931, 0, ":") + , (56932, 0, ":") + , (56933, 0, "I") + , (56934, 0, "t") + , (56935, 0, "e") + , (56936, 0, "m") + , (56927, 10, "C::I") + , (56927, 4, "Node") + , (56927, 7, "C::I") + , (56927, 4, "Self::Item") + , (56926, 1, "") + , (56925, 1, "") + , (56924, 1, "") + , (56880, 0, "&") + , (56881, 0, "'") + , (56882, 0, "a") + , (56883, 0, " ") + , (56928, 0, "'") + , (56929, 0, "a") + , (56930, 0, " ") + , (57101, 0, "// ") + , (57091, 0, "// ") + , (57014, 0, "// ") + , (56980, 0, "// ") + , (56953, 0, "// ") + , (56944, 0, "\n ") + , (56953, 0, "u") + , (56954, 0, "n") + , (56955, 0, "i") + , (56956, 0, "m") + , (56957, 0, "p") + , (56953, 5, "unimplemented") + , (56966, 0, "(") + , (56967, 0, ")") + , (56968, 0, ";") + , (56968, 1, "") + , (56966, 0, "!") + , (56927, 4, "") + , (56941, 24, "") + , (56940, 1, "") + , (56940, 0, "\n ") + , (56949, 0, "i") + , (56950, 0, "f") + , (56951, 0, " ") + , (56941, 11, "") + , (56940, 1, "") + , (56779, 1, "") + , (56779, 0, " ") + , (56780, 0, "{") + , (56781, 0, "\n ") + , (56786, 0, "n") + , (56787, 0, "o") + , (56788, 0, "d") + , (56789, 0, "e") + , (56790, 0, ":") + , (56791, 0, " ") + , (56812, 1, "") + , (56811, 1, "") + , (56811, 0, ",") + , (56812, 0, "\n ") + , (56817, 0, "i") + , (56818, 0, "n") + , (56819, 0, "d") + , (56820, 0, "e") + , (56821, 0, "x") + , (56822, 0, ":") + , (56823, 0, " ") + , (56829, 1, "") + , (56829, 0, "\n ") + , (56830, 4, "}") + , (56831, 1, "") + , (56963, 0, "\n ") + , (56972, 0, "i") + , (56973, 0, "f") + , (56974, 0, " ") + , (56975, 0, "s") + , (56976, 0, "e") + , (56977, 0, "l") + , (56978, 0, "f") + , (56979, 0, ".") + , (56980, 0, "n") + , (56981, 0, "o") + , (56982, 0, "d") + , (56983, 0, "e") + , (56984, 0, " ") + , (56984, 1, "") + , (56984, 0, ".") + , (56985, 0, "i") + , (56986, 0, "s") + , (56987, 0, "_") + , (56972, 16, "") + , (56972, 0, "i") + , (56973, 0, "f") + , (56974, 0, " ") + , (56975, 0, "l") + , (56976, 0, "e") + , (56977, 0, "t") + , (56978, 0, " ") + , (56979, 0, "S") + , (56980, 0, "o") + , (56981, 0, "m") + , (56982, 0, "e") + , (56983, 0, "(") + , (56984, 0, "n") + , (56985, 0, "o") + , (56986, 0, "d") + , (56987, 0, "e") + , (56988, 0, ")") + , (56989, 0, " ") + , (56990, 0, "=") + , (56991, 0, " ") + , (56992, 0, "s") + , (56993, 0, "e") + , (56994, 0, "l") + , (56995, 0, "f") + , (56996, 0, ".") + , (56997, 0, "n") + , (56998, 0, "o") + , (56999, 0, "d") + , (57000, 0, "e") + , (57001, 0, " ") + , (57002, 0, "{") + , (57003, 0, "\n ") + , (57016, 0, "\n ") + , (57004, 12, "") + , (57005, 12, " }") + , (57014, 0, " ") + , (57015, 0, "e") + , (57016, 0, "l") + , (57017, 0, "s") + , (57018, 0, "e") + , (57019, 0, " ") + , (57020, 0, "{") + , (57021, 0, " ") + , (57022, 0, "N") + , (57023, 0, "o") + , (57024, 0, "n") + , (57025, 0, "e") + , (57026, 0, " ") + , (57027, 0, "}") + , (57004, 0, " ") + , (57016, 0, "l") + , (57017, 0, "e") + , (57018, 0, "t") + , (57019, 0, " ") + , (57020, 0, "i") + , (57021, 0, "t") + , (57022, 0, "e") + , (57020, 3, "c") + , (57021, 0, "u") + , (57022, 0, "r") + , (57023, 0, "r") + , (57024, 0, "e") + , (57025, 0, "n") + , (57026, 0, "t") + , (57027, 0, " ") + , (57028, 0, "=") + , (57029, 0, " ") + , (57030, 0, "n") + , (57031, 0, "o") + , (57032, 0, "d") + , (57033, 0, "e") + , (57034, 0, "[") + , (57034, 1, "") + , (57034, 0, ".") + , (57035, 0, "i") + , (57036, 0, "t") + , (57037, 0, "e") + , (57038, 0, "m") + , (57039, 0, "s") + , (57040, 0, "[") + , (57041, 0, "s") + , (57042, 0, "e") + , (57043, 0, "l") + , (57044, 0, "f") + , (57045, 0, ".") + , (57046, 0, "i") + , (57047, 0, "n") + , (57048, 0, "d") + , (57049, 0, "e") + , (57050, 0, "x") + , (57051, 0, "]") + , (57052, 0, ";") + , (57053, 0, "\n ") + , (57066, 0, "\n ") + , (57054, 12, "") + , (57067, 0, "c") + , (57068, 0, "u") + , (57069, 0, "r") + , (57070, 0, "r") + , (57071, 0, "e") + , (57072, 0, "n") + , (57073, 0, "t") + , (57074, 0, ".") + , (57067, 0, "u") + , (57068, 0, "n") + , (57069, 0, "s") + , (57070, 0, "a") + , (57071, 0, "f") + , (57072, 0, "e") + , (57073, 0, " ") + , (57074, 0, "{") + , (57075, 0, " ") + , (57084, 0, "g") + , (57085, 0, "e") + , (57086, 0, "t") + , (57087, 0, "_") + , (57088, 0, "r") + , (57089, 0, "e") + , (57090, 0, "f") + , (57091, 0, "(") + , (57092, 0, ")") + , (57093, 0, " ") + , (57094, 0, "}") + , (57067, 0, "S") + , (57068, 0, "o") + , (57069, 0, "m") + , (57070, 0, "e") + , (57071, 0, "(") + , (57100, 0, ")") + , (57089, 7, "a") + , (57090, 0, "s") + , (57091, 0, "_") + , (57092, 0, "p") + , (57093, 0, "t") + , (57094, 0, "r") + , (57081, 0, "*") + , (57081, 0, "&") + , (57030, 0, "&") + , (57054, 0, "\n ") + , (57067, 0, "i") + , (57068, 0, "f") + , (57069, 0, " ") + , (57070, 0, "s") + , (57071, 0, "e") + , (57072, 0, "l") + , (57073, 0, "f") + , (57074, 0, ".") + , (57075, 0, "i") + , (57076, 0, "n") + , (57077, 0, "d") + , (57078, 0, "e") + , (57079, 0, "x") + , (57080, 0, " ") + , (57081, 0, "+") + , (57082, 0, " ") + , (57083, 0, "1") + , (57083, 1, "") + , (57082, 1, "") + , (57081, 1, "") + , (57067, 14, "s") + , (57068, 0, "e") + , (57069, 0, "l") + , (57070, 0, "f") + , (57071, 0, ".") + , (57072, 0, "i") + , (57073, 0, "n") + , (57074, 0, "d") + , (57075, 0, "e") + , (57076, 0, "x") + , (57077, 0, " ") + , (57078, 0, "+") + , (57079, 0, "=") + , (57080, 0, " ") + , (57081, 0, "1") + , (57082, 0, ";") + , (57083, 0, "\n ") + , (57096, 0, "i") + , (57097, 0, "f") + , (57098, 0, " ") + , (57099, 0, "s") + , (57100, 0, "e") + , (57101, 0, "l") + , (57102, 0, "f") + , (57103, 0, ".") + , (57104, 0, "i") + , (57105, 0, "n") + , (57106, 0, "d") + , (57107, 0, "e") + , (57108, 0, "x") + , (57109, 0, " ") + , (57110, 0, "=") + , (57111, 0, "=") + , (57112, 0, " ") + , (57112, 1, "") + , (57111, 1, "") + , (57110, 1, "") + , (57110, 0, "=") + , (57111, 0, "=") + , (57112, 0, " ") + , (57113, 0, "n") + , (57114, 0, "o") + , (57115, 0, "d") + , (57116, 0, "e") + , (57117, 0, ".") + , (57118, 0, "l") + , (57119, 0, "e") + , (57120, 0, "n") + , (57120, 1, "") + , (57119, 1, "") + , (57118, 1, "") + , (57117, 1, "") + , (57117, 0, ".") + , (57118, 0, "n") + , (57119, 0, "u") + , (57120, 0, "m") + , (57118, 3, "num_items") + , (57127, 0, " ") + , (57128, 0, "{") + , (57129, 0, "\n ") + , (57130, 16, " }") + , (57129, 0, "\n ") + , (57146, 0, "s") + , (57147, 0, "e") + , (57148, 0, "l") + , (57149, 0, "f") + , (57150, 0, ".") + , (57151, 0, "i") + , (57152, 0, "n") + , (57153, 0, "d") + , (57154, 0, "e") + , (57155, 0, "x") + , (57156, 0, " ") + , (57157, 0, "=") + , (57158, 0, " ") + , (57159, 0, "0") + , (57160, 0, ";") + , (57161, 0, "\n ") + , (57178, 0, "s") + , (57179, 0, "e") + , (57180, 0, "l") + , (57181, 0, "f") + , (57182, 0, ".") + , (57183, 0, "n") + , (57184, 0, "o") + , (57185, 0, "d") + , (57186, 0, "e") + , (57187, 0, " ") + , (57188, 0, "=") + , (57189, 0, " ") + , (57190, 0, "s") + , (57191, 0, "e") + , (57192, 0, "l") + , (57193, 0, "f") + , (57194, 0, ".") + , (57195, 0, "n") + , (57196, 0, "o") + , (57197, 0, "d") + , (57198, 0, "e") + , (57199, 0, ".") + , (57200, 0, "n") + , (57200, 1, "") + , (57199, 1, "") + , (57199, 0, ".") + , (57200, 0, "n") + , (57201, 0, "e") + , (57202, 0, "x") + , (57203, 0, "t") + , (57204, 0, "_") + , (57205, 0, "n") + , (57206, 0, "o") + , (57207, 0, "d") + , (57208, 0, "e") + , (57209, 0, "(") + , (57210, 0, ")") + , (57211, 0, ";") + , (57190, 0, "unsafe { n.first_skip_entry().node.as_ref() }") + , (57235, 22, "") + , (57235, 0, ";") + , (57200, 0, "o") + , (57201, 0, "d") + , (57202, 0, "e") + , (57127, 0, " ") + , (57128, 0, "a") + , (57129, 0, "s") + , (57130, 0, " ") + , (57131, 0, "u") + , (57132, 0, "s") + , (57133, 0, "i") + , (57134, 0, "z") + , (57135, 0, "e") + , (11448, 0, "\n ") + , (11453, 0, "\n ") + , (11449, 4, "") + , (11454, 0, "self.node.next_node();") + , (11454, 22, "") + , (11449, 5, "") + , (11449, 0, " ") + , (11448, 5, "") + , (57213, 23, "") + , (57213, 0, "g") + , (57214, 0, "e") + , (57215, 0, "t") + , (57216, 0, "_") + , (57217, 0, "n") + , (57213, 5, "get_next_ptr()") + , (12071, 23, "") + , (12071, 0, "g") + , (12072, 0, "e") + , (12073, 0, "t") + , (12074, 0, "n") + , (12071, 4, "get_next_ptr()") + , (57318, 176, "") + , (57575, 3, "") + , (57566, 3, "") + , (57526, 3, "") + , (57465, 3, "") + , (57413, 3, "") + , (57459, 0, " ") + , (57460, 0, "w") + , (57461, 0, "h") + , (57462, 0, "e") + , (57463, 0, "r") + , (57464, 0, "e") + , (57465, 0, " ") + , (57466, 0, "C") + , (57467, 0, ":") + , (57468, 0, ":") + , (57469, 0, "I") + , (57470, 0, "t") + , (57471, 0, "e") + , (57472, 0, "m") + , (57473, 0, ":") + , (57474, 0, " ") + , (57475, 0, "f") + , (57476, 0, "m") + , (57477, 0, "t") + , (57478, 0, ":") + , (57479, 0, " ") + , (57479, 1, "") + , (57479, 0, ":") + , (57480, 0, " ") + , (57480, 1, "") + , (57480, 0, "D") + , (57481, 0, "e") + , (57482, 0, "b") + , (57483, 0, "u") + , (57484, 0, "g") + , (57537, 0, "f") + , (57538, 0, "t") + , (57539, 0, ":") + , (57540, 0, ":") + , (57540, 1, "") + , (57539, 1, "") + , (57538, 1, "") + , (57538, 0, "m") + , (57539, 0, "t") + , (57540, 0, ":") + , (57541, 0, ":") + , (57594, 0, "// ") + , (57588, 0, "// ") + , (57551, 0, "// ") + , (57488, 0, "// ") + , (57413, 0, "// ") + , (55381, 0, "\n ") + , (55386, 0, "\n ") + , (55382, 4, "") + , (55387, 0, "p") + , (55388, 0, "u") + , (55389, 0, "b") + , (55390, 0, " ") + , (55391, 0, "f") + , (55392, 0, "n") + , (55393, 0, " ") + , (55394, 0, "i") + , (55395, 0, "t") + , (55396, 0, "e") + , (55397, 0, "m") + , (55398, 0, "_") + , (55399, 0, "i") + , (55400, 0, "t") + , (55401, 0, "e") + , (55402, 0, "r") + , (55403, 0, "(") + , (55404, 0, "&") + , (55405, 0, "s") + , (55406, 0, "e") + , (55407, 0, "l") + , (55408, 0, "f") + , (55409, 0, ")") + , (55410, 0, " ") + , (55411, 0, "-") + , (55412, 0, ">") + , (55413, 0, " ") + , (55414, 0, "L") + , (55415, 0, "i") + , (55416, 0, "s") + , (55417, 0, "t") + , (55418, 0, "I") + , (55414, 5, "ListIter") + , (55422, 0, "<") + , (55423, 0, "C") + , (55424, 0, ">") + , (55425, 0, " ") + , (55426, 0, "{") + , (55427, 0, "\n ") + , (55436, 0, "\n ") + , (55428, 8, "") + , (55429, 8, " }") + , (55428, 0, " ") + , (55436, 0, "L") + , (55437, 0, "i") + , (55438, 0, "s") + , (55439, 0, "t") + , (55440, 0, "I") + , (55436, 5, "ListIter") + , (55444, 0, " ") + , (55445, 0, "{") + , (55446, 0, "\n ") + , (55459, 0, "n") + , (55460, 0, "o") + , (55461, 0, "d") + , (55462, 0, "e") + , (55463, 0, ":") + , (55464, 0, " ") + , (55465, 0, "S") + , (55466, 0, "o") + , (55467, 0, "m") + , (55468, 0, "e") + , (55469, 0, "(") + , (55470, 0, "s") + , (55471, 0, "e") + , (55472, 0, "l") + , (55473, 0, "f") + , (55474, 0, ".") + , (55475, 0, "h") + , (55476, 0, "e") + , (55477, 0, "a") + , (55475, 3, "head") + , (55479, 0, ")") + , (55470, 0, "&") + , (55481, 0, ",") + , (55482, 0, "\n ") + , (55495, 0, "i") + , (55496, 0, "n") + , (55497, 0, "d") + , (55498, 0, "e") + , (55499, 0, "x") + , (55500, 0, ":") + , (55501, 0, " ") + , (55502, 0, "0") + , (55503, 0, "\n ") + , (55504, 12, " }") + , (56874, 0, "p") + , (56875, 0, "u") + , (56876, 0, "b") + , (56877, 0, " ") + , (55382, 137, "") + , (55381, 1, "") + , (22276, 0, "\n ") + , (22277, 4, "") + , (22276, 0, "\n ") + , ( 22281 + , 0 + , "\n pub fn item_iter(&self) -> ListIter {\n ListIter {\n node: Some(&self.head),\n index: 0\n }\n }" + ) + , (22277, 4, "") + , (22276, 1, "") + , (55028, 0, "node_") + , (23928, 0, "node_") + , (22214, 0, "node_") + , (22293, 5, "") + , (55737, 0, "n") + , (55738, 0, "o") + , (55739, 0, "d") + , (55740, 0, "e") + , (55741, 0, "_") + , (56786, 0, "n") + , (56787, 0, "o") + , (56788, 0, "d") + , (56789, 0, "e") + , (56790, 0, "_") + , (57029, 0, "mIte") + , (56912, 0, "mIte") + , (22337, 0, "mIte") + , (22315, 0, "mIte") + , (56996, 0, "\n") + , (57785, 3, "") + , (57776, 3, "") + , (57736, 3, "") + , (57670, 3, "") + , (57592, 3, "") + , (57766, 0, "i") + , (57767, 0, "t") + , (57768, 0, "e") + , (57769, 0, "r") + , (57770, 0, "(") + , (57771, 0, ")") + , (57772, 0, ")") + , (57773, 0, ".") + , (57774, 0, "f") + , (57775, 0, "i") + , (57776, 0, "n") + , (57777, 0, "i") + , (57778, 0, "s") + , (57779, 0, "h") + , (57780, 0, "(") + , (57781, 0, ")") + , (57505, 86, "") + , (57504, 1, "") + , (57504, 0, "\n") + , (57702, 0, "\n ") + , (57707, 0, "\n ") + , (57703, 4, "") + , (57708, 0, "f") + , (57709, 0, "n") + , (57710, 0, " ") + , (57711, 0, "s") + , (57711, 1, "") + , (57710, 1, "") + , (57709, 1, "") + , (57708, 1, "") + , (57704, 4, "") + , (57703, 1, "") + , (57702, 1, "") + , (57502, 0, "\n ") + , (57507, 0, "\n ") + , (57503, 4, "") + , (57508, 0, "f") + , (57509, 0, "n") + , (57510, 0, " ") + , (57511, 0, "s") + , (57512, 0, "i") + , (57513, 0, "z") + , (57511, 3, "size_hint()") + , (57522, 0, " ") + , (57523, 0, "-") + , (57524, 0, ">") + , (57525, 0, " ") + , (57526, 0, "(") + , (57527, 0, "u") + , (57528, 0, "s") + , (57529, 0, "i") + , (57530, 0, "z") + , (57531, 0, "e") + , (57532, 0, ",") + , (57533, 0, " ") + , (57534, 0, "O") + , (57535, 0, "p") + , (57536, 0, "t") + , (57537, 0, "i") + , (57538, 0, "o") + , (57539, 0, "n") + , (57540, 0, "(") + , (57541, 0, "u") + , (57542, 0, "s") + , (57543, 0, "i") + , (57544, 0, "z") + , (57545, 0, "e") + , (57546, 0, ")") + , (57547, 0, " ") + , (57547, 1, "") + , (57547, 0, ")") + , (57548, 0, " ") + , (57549, 0, "{") + , (57550, 0, "\n ") + , (57551, 8, " }") + , (57550, 0, "\n ") + , (57559, 0, "u") + , (57560, 0, "n") + , (57561, 0, "i") + , (57562, 0, "m") + , (57563, 0, "p") + , (57564, 0, "l") + , (57559, 6, "unimplemented") + , (57572, 0, "!") + , (57573, 0, "(") + , (57574, 0, ")") + , (57521, 0, "&") + , (57522, 0, "s") + , (57523, 0, "e") + , (57524, 0, "l") + , (57525, 0, "f") + , (57545, 1, "") + , (57545, 0, "<") + , (57551, 1, "") + , (57551, 0, ">") + , (56994, 0, ",") + , (56995, 0, "\n ") + , (57000, 0, "r") + , (57001, 0, "e") + , (57002, 0, "m") + , (57003, 0, "a") + , (57004, 0, "i") + , (57005, 0, "n") + , (57006, 0, "i") + , (57007, 0, "n") + , (57008, 0, "g") + , (57009, 0, "_") + , (57010, 0, "i") + , (57011, 0, "t") + , (57012, 0, "e") + , (57013, 0, "m") + , (57014, 0, "s") + , (57015, 0, ":") + , (57016, 0, " ") + , (57017, 0, "u") + , (57018, 0, "s") + , (57019, 0, "i") + , (57020, 0, "z") + , (57021, 0, "e") + , (57022, 0, " ") + , (57023, 0, "/") + , (57024, 0, "/") + , (57025, 0, " ") + , (57026, 0, "F") + , (57027, 0, "o") + , (57028, 0, "r") + , (57029, 0, "e") + , (57030, 0, " ") + , (57030, 1, "") + , (57029, 1, "") + , (57029, 0, " ") + , (57030, 0, "s") + , (57031, 0, "i") + , (57032, 0, "z") + , (57033, 0, "e") + , (57034, 0, "_") + , (57035, 0, "h") + , (57036, 0, "i") + , (57037, 0, "n") + , (57038, 0, "t") + , (57039, 0, ".") + , (57610, 16, "") + , (57610, 0, "(") + , (57611, 0, "r") + , (57612, 0, "e") + , (57613, 0, "m") + , (57614, 0, "a") + , (57615, 0, "i") + , (57616, 0, "n") + , (57611, 6, "remain") + , (57617, 0, "i") + , (57618, 0, "n") + , (57619, 0, "g") + , (57611, 9, "remaining_items") + , (57626, 0, ",") + , (57627, 0, " ") + , (57628, 0, "S") + , (57629, 0, "o") + , (57630, 0, "m") + , (57631, 0, "z") + , (57632, 0, "e") + , (57633, 0, "(") + , (57633, 1, "") + , (57632, 1, "") + , (57631, 1, "") + , (57631, 0, "m") + , (57631, 1, "") + , (57631, 0, "e") + , (57632, 0, "(") + , (57633, 0, "r") + , (57634, 0, "e") + , (57626, 0, "s") + , (57627, 0, "e") + , (57628, 0, "l") + , (57629, 0, "f") + , (57629, 1, "") + , (57628, 1, "") + , (57627, 1, "") + , (57626, 1, "") + , (57611, 0, "s") + , (57612, 0, "e") + , (57613, 0, "l") + , (57614, 0, "f") + , (57615, 0, ".") + , (57638, 0, "s") + , (57639, 0, "e") + , (57640, 0, "l") + , (57641, 0, "f") + , (57642, 0, ".") + , (57645, 0, "m") + , (57646, 0, "a") + , (57647, 0, "i") + , (57648, 0, "n") + , (57649, 0, "i") + , (57650, 0, "n") + , (57643, 8, "remaining_items") + , (57658, 0, ")") + , (57659, 0, ")") + , (22405, 0, ",") + , (22406, 0, "\n ") + , (22419, 0, "r") + , (22420, 0, "e") + , (22421, 0, "m") + , (22422, 0, "a") + , (22423, 0, "i") + , (22424, 0, "n") + , (22419, 6, "remaining_items") + , (22434, 0, ":") + , (22435, 0, " ") + , (22436, 0, "s") + , (22437, 0, "e") + , (22438, 0, "l") + , (22439, 0, "f") + , (22440, 0, ".") + , (22441, 0, "l") + , (22442, 0, "e") + , (22443, 0, "n") + , (22441, 3, "len_items()") + , (54748, 3, "") + , (54742, 1, "n") + , (54740, 1, "l") + , (27931, 3, "") + , (27925, 1, "n") + , (27923, 1, "l") + , (26884, 3, "") + , (26878, 1, "n") + , (26876, 1, "l") + , (22151, 3, "") + , (22145, 1, "n") + , (22143, 1, "l") + , (22203, 262, "") + , (22202, 1, "") + , (22280, 0, "\n ") + , ( 22285 + , 0 + , "\n fn node_iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }\n \n pub fn iter(&self) -> ListItemIter {\n ListItemIter {\n node: Some(&self.head),\n index: 0,\n remaining_items: self.len_items()\n }\n }" + ) + , (22281, 4, "") + , (22544, 0, "\n ") + , (22545, 4, "") + , (22544, 0, "\n ") + , (22549, 0, "f") + , (22550, 0, "n") + , (22551, 0, " ") + , (22552, 0, "h") + , (22553, 0, "e") + , (22554, 0, "i") + , (22555, 0, "g") + , (22556, 0, "h") + , (22557, 0, "t") + , (22558, 0, "(") + , (22559, 0, ")") + , (22559, 0, "&") + , (22560, 0, "s") + , (22561, 0, "m") + , (22561, 1, "") + , (22560, 1, "") + , (22560, 0, "m") + , (22561, 0, "u") + , (22562, 0, "t") + , (22563, 0, " ") + , (22564, 0, "s") + , (22565, 0, "e") + , (22566, 0, "l") + , (22567, 0, "f") + , (22569, 0, " ") + , (22570, 0, "-") + , (22571, 0, ">") + , (22572, 0, " ") + , (22573, 0, "u") + , (22574, 0, "s") + , (22575, 0, "i") + , (22576, 0, "z") + , (22577, 0, "e") + , (22578, 0, " ") + , (22579, 0, "{") + , (22580, 0, "\n ") + , (22589, 0, "\n ") + , (22581, 8, "") + , (22582, 8, " }") + , (22581, 0, " ") + , (22589, 0, "s") + , (22590, 0, "e") + , (22591, 0, "l") + , (22592, 0, "f") + , (22593, 0, ".") + , (22594, 0, "h") + , (22595, 0, "e") + , (22596, 0, "a") + , (22597, 0, "d") + , (22598, 0, ".") + , (22599, 0, "h") + , (22600, 0, "e") + , (22601, 0, "i") + , (22599, 3, "height") + , (22605, 0, " ") + , (22606, 0, "a") + , (22607, 0, "s") + , (22608, 0, " ") + , (22609, 0, "u") + , (22610, 0, "s") + , (22611, 0, "i") + , (22612, 0, "z") + , (22613, 0, "e") + , (22544, 0, "\n ") + , (22549, 0, "#") + , (22550, 0, "[") + , (22551, 0, "i") + , (22552, 0, "n") + , (22553, 0, "l") + , (22554, 0, "i") + , (22555, 0, "n") + , (22551, 5, "inline") + , (22557, 0, "=") + , (22558, 0, "a") + , (22559, 0, "l") + , (22560, 0, "w") + , (22561, 0, "a") + , (22558, 4, "always") + , (22564, 0, "]") + , (22557, 1, "") + , (22557, 0, "(") + , (22564, 0, ")") + , (66235, 21, ".") + , (62885, 21, ".") + , (51797, 21, ".") + , (51372, 21, ".") + , (49261, 21, ".") + , (42201, 21, ".") + , (40541, 21, ".") + , (40234, 21, ".") + , (34225, 21, ".") + , (28107, 21, ".") + , (26593, 21, ".") + , (22615, 21, ".") + , (66016, 0, "h") + , (62686, 0, "h") + , (51618, 0, "h") + , (51213, 0, "h") + , (49122, 0, "h") + , (42082, 0, "h") + , (40442, 0, "h") + , (40155, 0, "h") + , (34166, 0, "h") + , (28068, 0, "h") + , (26574, 0, "h") + , (22616, 0, "h") + , (66028, 0, "e") + , (62697, 0, "e") + , (51628, 0, "e") + , (51222, 0, "e") + , (49130, 0, "e") + , (42089, 0, "e") + , (40448, 0, "e") + , (40160, 0, "e") + , (34170, 0, "e") + , (28071, 0, "e") + , (26576, 0, "e") + , (22617, 0, "e") + , (66040, 0, "i") + , (62708, 0, "i") + , (51638, 0, "i") + , (51231, 0, "i") + , (49138, 0, "i") + , (42096, 0, "i") + , (40454, 0, "i") + , (40165, 0, "i") + , (34174, 0, "i") + , (28074, 0, "i") + , (26578, 0, "i") + , (22618, 0, "i") + , (66052, 0, "g") + , (62719, 0, "g") + , (51648, 0, "g") + , (51240, 0, "g") + , (49146, 0, "g") + , (42103, 0, "g") + , (40460, 0, "g") + , (40170, 0, "g") + , (34178, 0, "g") + , (28077, 0, "g") + , (26580, 0, "g") + , (22619, 0, "g") + , (66064, 0, "h") + , (62730, 0, "h") + , (51658, 0, "h") + , (51249, 0, "h") + , (49154, 0, "h") + , (42110, 0, "h") + , (40466, 0, "h") + , (40175, 0, "h") + , (34182, 0, "h") + , (28080, 0, "h") + , (26582, 0, "h") + , (22620, 0, "h") + , (66076, 0, "t") + , (62741, 0, "t") + , (51668, 0, "t") + , (51258, 0, "t") + , (49162, 0, "t") + , (42117, 0, "t") + , (40472, 0, "t") + , (40180, 0, "t") + , (34186, 0, "t") + , (28083, 0, "t") + , (26584, 0, "t") + , (22621, 0, "t") + , (66088, 0, "(") + , (62752, 0, "(") + , (51678, 0, "(") + , (51267, 0, "(") + , (49170, 0, "(") + , (42124, 0, "(") + , (40478, 0, "(") + , (40185, 0, "(") + , (34190, 0, "(") + , (28086, 0, "(") + , (26586, 0, "(") + , (22622, 0, "(") + , (66100, 0, ")") + , (62763, 0, ")") + , (51688, 0, ")") + , (51276, 0, ")") + , (49178, 0, ")") + , (42131, 0, ")") + , (40484, 0, ")") + , (40190, 0, ")") + , (34194, 0, ")") + , (28089, 0, ")") + , (26588, 0, ")") + , (22623, 0, ")") + , (22582, 4, "") + , (22612, 8, "") + , (22611, 1, "") + , (22611, 0, ".") + , (22612, 0, "h") + , (22613, 0, "e") + , (22614, 0, "a") + , (22615, 0, "d") + , (22616, 0, ".") + , (22617, 0, "h") + , (22618, 0, "e") + , (22619, 0, "i") + , (22620, 0, "g") + , (22621, 0, "h") + , (22622, 0, "t") + , (22623, 0, " ") + , (22624, 0, "a") + , (22625, 0, "s") + , (22626, 0, " ") + , (22627, 0, "u") + , (22628, 0, "s") + , (22629, 0, "i") + , (22630, 0, "z") + , (22631, 0, "e") + , (17047, 1, "") + , (57686, 0, "// ") + , (57627, 0, "// ") + , (57575, 0, "// ") + , (57692, 3, "") + , (57630, 3, "") + , (57575, 3, "") + , (62314, 0, " ") + , (62315, 0, "w") + , (62316, 0, "a") + , (62317, 0, "n") + , (62318, 0, "t") + , (62319, 0, "_") + , (62315, 5, "m") + , (62316, 0, "o") + , (62317, 0, "d") + , (62318, 0, "i") + , (62319, 0, "f") + , (62320, 0, "y") + , (62321, 0, "_") + , (62322, 0, "n") + , (62323, 0, "e") + , (62324, 0, "x") + , (62325, 0, "t") + , (62326, 0, ":") + , (62327, 0, " ") + , (62328, 0, "b") + , (62329, 0, "o") + , (62330, 0, "o") + , (62331, 0, "l") + , (62332, 0, ",") + , (62454, 0, " ") + , (62455, 0, "i") + , (62456, 0, "f") + , (62457, 0, " ") + , (62457, 1, "") + , (62456, 1, "") + , (62455, 1, "") + , (62454, 1, "") + , (62276, 0, "\n ") + , (62281, 0, "\n ") + , (62277, 4, "") + , (62282, 0, "f") + , (62283, 0, "n") + , (62284, 0, " ") + , (62285, 0, "i") + , (62286, 0, "s") + , (62286, 1, "") + , (62285, 1, "") + , (62285, 0, "a") + , (62286, 0, "t") + , (62287, 0, "_") + , (62288, 0, "e") + , (62289, 0, "n") + , (62290, 0, "_") + , (62291, 0, "o") + , (62292, 0, "f") + , (62292, 1, "") + , (62291, 1, "") + , (62290, 1, "") + , (62289, 1, "") + , (62289, 0, "d") + , (62289, 1, "") + , (62289, 0, "n") + , (62290, 0, "d") + , (62291, 0, "_") + , (62292, 0, "o") + , (62293, 0, "f") + , (62294, 0, "_") + , (62295, 0, "n") + , (62296, 0, "o") + , (62297, 0, "d") + , (62298, 0, "e") + , (62299, 0, "(") + , (62300, 0, "&") + , (62301, 0, "s") + , (62302, 0, "e") + , (62303, 0, "l") + , (62304, 0, "f") + , (62305, 0, ")") + , (62306, 0, " ") + , (62307, 0, "-") + , (62308, 0, ">") + , (62309, 0, " ") + , (62310, 0, "b") + , (62311, 0, "o") + , (62312, 0, "o") + , (62313, 0, "l") + , (62314, 0, " ") + , (62315, 0, "{") + , (62316, 0, "\n ") + , (62325, 0, "\n ") + , (62317, 8, "") + , (62318, 8, " }") + , (62317, 0, " ") + , (62325, 0, "s") + , (62326, 0, "e") + , (62327, 0, "l") + , (62328, 0, "f") + , (62329, 0, ".") + , (62330, 0, "l") + , (62331, 0, "o") + , (62332, 0, "c") + , (62333, 0, "a") + , (62334, 0, "l") + , (62335, 0, "_") + , (62330, 6, "local_index") + , (62330, 0, "c") + , (62331, 0, "u") + , (62332, 0, "r") + , (62333, 0, "s") + , (62334, 0, "o") + , (62335, 0, "r") + , (62336, 0, ".") + , (62348, 0, " ") + , (62349, 0, "=") + , (62350, 0, "=") + , (62351, 0, " ") + , (62352, 0, "s") + , (62353, 0, "e") + , (62354, 0, "l") + , (62355, 0, "f") + , (62356, 0, ".") + , (62325, 0, "// ") + , (62277, 90, "") + , (62386, 0, "\n ") + , (62395, 0, "i") + , (62396, 0, "f") + , (62397, 0, " ") + , (62398, 0, "m") + , (62399, 0, "o") + , (62400, 0, "d") + , (62401, 0, "i") + , (62398, 4, "modify_next") + , (62409, 0, " ") + , (62410, 0, "&") + , (62411, 0, "&") + , (62412, 0, " ") + , (62413, 0, "s") + , (62414, 0, "e") + , (62415, 0, "l") + , (62416, 0, "f") + , (62417, 0, ".") + , (62418, 0, "c") + , (62419, 0, "u") + , (62420, 0, "r") + , (62421, 0, "s") + , (62422, 0, "o") + , (62423, 0, "r") + , (62424, 0, ".") + , (62425, 0, "i") + , (62426, 0, "s") + , (62425, 2, "is_at_node_end()") + , (62441, 0, " ") + , (62442, 0, "{") + , (62443, 0, "\n ") + , (62444, 12, " }") + , (62443, 0, "\n ") + , (62444, 12, "") + , (62409, 32, "") + , (62398, 0, "!") + , (62410, 0, " ") + , (62411, 0, "&") + , (62412, 0, "&") + , (62413, 0, " ") + , (62413, 1, "") + , (62410, 3, "") + , (62398, 1, "") + , (62412, 0, " ") + , (62409, 0, " && self.cursor.is_at_node_end()") + , (62387, 79, "") + , (62386, 1, "") + , (62296, 0, "p") + , (62296, 1, "") + , (63225, 0, "prev_") + , (62296, 0, "prev_") + , (53539, 0, "prev_") + , (62323, 19, "") + , (63135, 0, "\n ") + , (63136, 4, "") + , (63136, 0, "\n ") + , (63137, 4, "") + , ( 63137 + , 0 + , " pub fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {\n" + ) + , (63141, 0, "// ") + , (62458, 16, "p") + , (62459, 0, "r") + , (62460, 0, "e") + , (62461, 0, "v") + , (62458, 4, "prev_item()") + , (62468, 1, "") + , (62467, 1, "") + , (62467, 0, "_") + , (62468, 0, "m") + , (62469, 0, "u") + , (62470, 0, "t") + , ( 16427 + , 0 + , "\n unsafe fn prev_item(&self) -> &'a C::Item {\n let node = &*self.here_ptr();\n assert!(self.local_index > 0);\n debug_assert!(self.local_index <= node.num_items as usize);\n &*(node.items[self.local_index - 1].as_ptr())\n }\n" + ) + , (16705, 0, "_") + , (16706, 0, "m") + , (16707, 0, "u") + , (16708, 0, "t") + , (16711, 0, "m") + , (16712, 0, "u") + , (16713, 0, "t") + , (16714, 0, " ") + , (16728, 0, " ") + , (16728, 1, "") + , (16728, 0, "m") + , (16729, 0, "u") + , (16730, 0, "t") + , (16731, 0, " ") + , (16934, 0, "m") + , (16935, 0, "u") + , (16936, 0, "t") + , (16937, 0, "_") + , (16896, 0, "m") + , (16897, 0, "u") + , (16898, 0, "t") + , (16899, 0, " ") + , (16762, 0, ",") + , (16763, 0, "u") + , (16764, 0, "t") + , (16764, 1, "") + , (16763, 1, "") + , (16762, 1, "") + , (16762, 0, "m") + , (16763, 0, "u") + , (16764, 0, "t") + , (16765, 0, " ") + , (59838, 0, "-") + , (59838, 1, "") + , (62723, 0, " ") + , (62723, 1, "") + , (62723, 0, " ") + , (62723, 1, "") + , (62723, 1, "") + , (62723, 0, "\n ") + , (62763, 1, "") + , (62763, 0, "\n ") + , (62723, 0, "\n ") + , (62736, 0, "i") + , (62737, 0, "f") + , (62738, 0, " ") + , (62739, 0, "s") + , (62740, 0, "e") + , (62741, 0, "l") + , (62742, 0, "f") + , (62743, 0, ".") + , (62744, 0, "item_offset") + , (62755, 0, " ") + , (62756, 0, ">") + , (62757, 0, " ") + , (62758, 0, "0") + , (62759, 0, " ") + , (62760, 0, "{") + , (62761, 0, " ") + , (62762, 0, "s") + , (62763, 0, "e") + , (62764, 0, "l") + , (62765, 0, "f") + , (62766, 0, ".") + , (62767, 0, "c") + , (62768, 0, "u") + , (62769, 0, "r") + , (62770, 0, "s") + , (62771, 0, "o") + , (62772, 0, "r") + , (62773, 0, ".") + , (62774, 0, "n") + , (62775, 0, "e") + , (62776, 0, "x") + , (62776, 1, "") + , (62775, 1, "") + , (62774, 1, "") + , (62773, 1, "") + , (62773, 0, ".") + , (62774, 0, "c") + , (62775, 0, "u") + , (62776, 0, "r") + , (62777, 0, "r") + , (62774, 4, "current_item_mut()") + , (62792, 0, " ") + , (62793, 0, "}") + , (62807, 0, "e") + , (62808, 0, "l") + , (62809, 0, "s") + , (62810, 0, "e") + , (62811, 0, " ") + , (62812, 0, "{") + , (62813, 0, " ") + , (62841, 0, " ") + , (62842, 0, "}") + , (63516, 3, "") + , (63606, 0, "\n ") + , (63607, 8, " }") + , (63530, 1, "") + , (63530, 1, "") + , (63530, 1, "") + , (63530, 1, "") + , (63530, 0, "n") + , (63531, 0, "e") + , (63532, 0, "x") + , (63533, 0, "t") + , (63606, 0, "\n ") + , (63615, 0, "i") + , (63616, 0, "f") + , (63617, 0, " ") + , (63618, 0, "s") + , (63619, 0, "e") + , (63620, 0, "l") + , (63621, 0, "f") + , (63622, 0, ".") + , (63623, 0, "c") + , (63624, 0, "u") + , (63625, 0, "r") + , (63626, 0, "s") + , (63627, 0, "o") + , (63628, 0, "r") + , (63629, 0, ".") + , (63630, 0, "is_at_node_end()") + , (63646, 0, " ") + , (63647, 0, "{") + , (63648, 0, "\n ") + , (63661, 0, "s") + , (63662, 0, "e") + , (63663, 0, "l") + , (63664, 0, "f") + , (63665, 0, ".") + , (63666, 0, "a") + , (63667, 0, "d") + , (63668, 0, "v") + , (63669, 0, "a") + , (63666, 4, "advance_item()") + , (63680, 0, ";") + , (63681, 0, "\n ") + , (63682, 12, " }") + , (63691, 0, "\n ") + , (63700, 0, "m") + , (63701, 0, "o") + , (63702, 0, "d") + , (63703, 0, "i") + , (63704, 0, "f") + , (63705, 0, "y") + , (63706, 0, "_") + , (63707, 0, "p") + , (63708, 0, "r") + , (63709, 0, "e") + , (63710, 0, "v") + , (63700, 11, "modify_prev_item") + , (63700, 0, "s") + , (63701, 0, "e") + , (63702, 0, "l") + , (63703, 0, "f") + , (63704, 0, ".") + , (63721, 0, "(") + , (63722, 0, "s") + , (63723, 0, "e") + , (63724, 0, "l") + , (63725, 0, "f") + , (63726, 0, ",") + , (63727, 0, " ") + , (63728, 0, "m") + , (63729, 0, "o") + , (63730, 0, "d") + , (63731, 0, "i") + , (63732, 0, "f") + , (63733, 0, "y") + , (63734, 0, "_") + , (63735, 0, "f") + , (63736, 0, "n") + , (63737, 0, ")") + , (63738, 0, ";") + , (63746, 1, "") + , (63722, 6, "") + , (63630, 14, "") + , (63630, 0, "h") + , (63631, 0, "e") + , (63632, 0, "r") + , (63633, 0, "e") + , (63634, 0, "_") + , (63630, 5, "here_ptr()") + , (63639, 1, "") + , (63638, 1, "") + , (63638, 0, "()") + , (63630, 10, "here_") + , (63630, 5, "") + , (63630, 0, "is_at_node_end") + , (63646, 0, " ") + , (63647, 0, "|") + , (63647, 1, "") + , (63646, 1, "") + , (63646, 0, "\n ") + , (63655, 0, "|") + , (63656, 0, "|") + , (63657, 0, " ") + , (63658, 0, "*") + , (63659, 0, "s") + , (63660, 0, "e") + , (63661, 0, "l") + , (63662, 0, "f") + , (63663, 0, ".") + , (63658, 1, "") + , (63658, 0, "*") + , (63658, 1, "") + , (63658, 0, "(") + , (63664, 0, "c") + , (63665, 0, "u") + , (63666, 0, "r") + , (63667, 0, "s") + , (63668, 0, "o") + , (63669, 0, "r") + , (63670, 0, ".") + , (63671, 0, "c") + , (63672, 0, "u") + , (63673, 0, "r") + , (63674, 0, "r") + , (63675, 0, "e") + , (63676, 0, "n") + , (63677, 0, "t") + , (63671, 7, "current_item") + , (63683, 0, "(") + , (63684, 0, ")") + , (63659, 0, "C") + , (63660, 0, ":") + , (63661, 0, ":") + , (63662, 0, "get_usersize(_item: &Self::Item)") + , (63675, 18, "") + , (63675, 1, "") + , (63701, 0, ")") + , (63702, 0, " ") + , (63703, 0, "<") + , (63704, 0, "=") + , (63705, 0, " ") + , (63706, 0, "s") + , (63707, 0, "e") + , (63708, 0, "l") + , (63709, 0, "f") + , (63710, 0, ".") + , (63711, 0, "l") + , (63712, 0, "o") + , (63713, 0, "c") + , (63714, 0, "a") + , (63711, 4, "local_index") + , (63711, 11, "i") + , (63712, 0, "t") + , (63713, 0, "e") + , (63714, 0, "m") + , (63715, 0, "_") + , (63716, 0, "o") + , (63717, 0, "f") + , (63718, 0, "f") + , (63719, 0, "s") + , (63720, 0, "e") + , (63721, 0, "t") + , (63722, 0, ")") + , (63675, 0, "u") + , (63676, 0, "n") + , (63677, 0, "s") + , (63678, 0, "a") + , (63679, 0, "f") + , (63680, 0, "e") + , (63681, 0, " ") + , (63682, 0, "{") + , (63683, 0, " ") + , (63710, 0, " ") + , (63711, 0, "}") + , (63511, 0, "\n ") + , (63516, 0, "/") + , (63517, 0, "/") + , (63518, 0, " ") + , (63519, 0, "T") + , (63520, 0, "O") + , (63521, 0, "D") + , (63522, 0, "O") + , (63523, 0, ":") + , (63524, 0, " ") + , (63525, 0, "N") + , (63526, 0, "o") + , (63527, 0, "t") + , (63528, 0, " ") + , (63529, 0, "s") + , (63530, 0, "u") + , (63531, 0, "r") + , (63532, 0, "e") + , (63533, 0, " ") + , (63534, 0, "i") + , (63535, 0, "f") + , (63536, 0, " ") + , (63537, 0, "t") + , (63538, 0, "h") + , (63539, 0, "i") + , (63540, 0, "s") + , (63541, 0, " ") + , (63542, 0, "f") + , (63543, 0, "u") + , (63544, 0, "n") + , (63545, 0, "c") + , (63546, 0, "t") + , (63547, 0, "i") + , (63548, 0, "o") + , (63549, 0, "n") + , (63550, 0, " ") + , (63551, 0, "i") + , (63552, 0, "s") + , (63553, 0, " ") + , (63554, 0, "c") + , (63555, 0, "o") + , (63556, 0, "r") + , (63557, 0, "r") + , (63558, 0, "e") + , (63559, 0, "c") + , (63560, 0, "t") + , (63561, 0, ".") + , (63562, 0, " ") + , (63563, 0, "N") + , (63564, 0, "e") + , (63565, 0, "e") + , (63566, 0, "d") + , (63567, 0, "s") + , (63568, 0, " ") + , (63569, 0, "t") + , (63570, 0, "e") + , (63571, 0, "s") + , (63572, 0, "t") + , (63573, 0, "s") + , (63574, 0, "!") + , (53820, 1, "") + , (53819, 1, "") + , (53818, 1, "") + , (53817, 1, "") + , (53817, 0, "n") + , (53818, 0, "e") + , (53819, 0, "x") + , (53820, 0, "t") + , (62565, 4, "") + , (62579, 1, "") + , (62578, 1, "") + , (62577, 1, "") + , (62576, 1, "") + , (62575, 1, "") + , (62575, 0, "prev_") + , ( 62651 + , 0 + , "\n fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {" + ) + , (62651, 0, "\n ") + , (62660, 0, "\n ") + , (62652, 8, "") + , (62653, 8, " }") + , (62658, 0, "\n ") + , (62659, 4, "") + , (62565, 0, "u") + , (62566, 0, "n") + , (62567, 0, "s") + , (62568, 0, "a") + , (62569, 0, "f") + , (62570, 0, "e") + , (62571, 0, " ") + , (62586, 1, "") + , (62585, 1, "") + , (62584, 1, "") + , (62583, 1, "") + , (62582, 1, "") + , (62600, 0, " ") + , (62601, 0, "*") + , (62601, 1, "") + , (62601, 0, "e") + , (62602, 0, ":") + , (62603, 0, " ") + , (62604, 0, "*") + , (62605, 0, "m") + , (62606, 0, "u") + , (62607, 0, "t") + , (62608, 0, " ") + , (62609, 0, "N") + , (62610, 0, "o") + , (62611, 0, "d") + , (62612, 0, "e") + , (62613, 0, "<") + , (62614, 0, "C") + , (62615, 0, ">") + , (62616, 0, ",") + , (62617, 0, " ") + , (62618, 0, "i") + , (62619, 0, "t") + , (62620, 0, "e") + , (62621, 0, "m") + , (62622, 0, ":") + , (62623, 0, " ") + , (62624, 0, "&") + , (62625, 0, "m") + , (62626, 0, "u") + , (62627, 0, "t") + , (62628, 0, " ") + , (62629, 0, "C") + , (62630, 0, ":") + , (62631, 0, ":") + , (62632, 0, "I") + , (62633, 0, "t") + , (62634, 0, "e") + , (62635, 0, "m") + , (62636, 0, ",") + , (62989, 650, "") + , ( 62691 + , 0 + , " let old_usersize = C::get_usersize(item);\n modify_fn(item, self.item_offset);\n let new_usersize = C::get_usersize(item);\n\n let usersize_delta = new_usersize as isize - old_usersize as isize;\n\n if usersize_delta != 0 {\n self.cursor.update_offsets(self.list.height(), usersize_delta);\n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);\n self.item_offset = usize::max(self.item_offset, new_usersize);\n }\n\n (self.notify)(std::slice::from_ref(item), ItemMarker {\n ptr: e,\n // _phantom: PhantomData,\n });\n" + ) + , (63341, 1, "") + , (62601, 17, "") + , (63430, 31, "") + , (62673, 0, "\n ") + , (62682, 0, "let e = self.cursor.here_ptr();") + , (62682, 0, "// ") + , (62693, 23, "") + , (63291, 1, "") + , (63291, 0, "self.cursor.here_ptr();") + , (63313, 1, "") + , (62674, 19, "") + , (62673, 1, "") + , (63887, 16, "") + , (63886, 1, "") + , (63885, 1, "") + , (63884, 1, "") + , (63883, 1, "") + , (63829, 0, "self.item_offset") + , (63845, 0, " ") + , (63846, 0, ">") + , (63847, 0, " ") + , (63847, 1, "") + , (63847, 0, "=") + , (63848, 0, " ") + , (63828, 1, "") + , (63902, 1, "") + , (63956, 0, "// ") + , (63992, 0, "\n ") + , (64001, 0, "s") + , (64002, 0, "e") + , (64003, 0, "l") + , (64004, 0, "f") + , (64005, 0, ".") + , (64006, 0, "m") + , (64007, 0, "o") + , (64008, 0, "d") + , (64009, 0, "i") + , (64010, 0, "f") + , (64006, 5, "modify_item(item: &mut C::Item, modify_fn: F)") + , (64018, 18, "s") + , (64019, 0, "e") + , (64020, 0, "l") + , (64021, 0, "f") + , (64022, 0, ".") + , (64023, 0, "c") + , (64024, 0, "u") + , (64025, 0, "r") + , (64026, 0, "s") + , (64027, 0, "o") + , (64028, 0, "r") + , (64029, 0, ".") + , (64030, 0, "c") + , (64031, 0, "u") + , (64032, 0, "r") + , (64033, 0, "r") + , (64030, 4, "current_item_mut()") + , (64050, 12, "m") + , (64051, 0, "o") + , (64052, 0, "d") + , (64053, 0, "i") + , (64054, 0, "f") + , (64055, 0, "y") + , (64056, 0, "_") + , (64057, 0, "f") + , (64058, 0, "n") + , (64060, 0, ";") + , (64001, 0, "u") + , (64002, 0, "n") + , (64003, 0, "s") + , (64004, 0, "a") + , (64005, 0, "f") + , (64006, 0, "e") + , (64007, 0, " ") + , (64008, 0, "{") + , (64009, 0, " ") + , (64070, 0, " ") + , (64071, 0, "}") + , (63947, 45, "") + , (63947, 0, "\n ") + , (63948, 8, "") + , (62601, 18, "") + , (63930, 0, " ") + , (62601, 0, "item: &mut C::Item") + , (63948, 8, "") + , (62601, 18, "") + , (62601, 0, "m") + , (62602, 0, "o") + , (62603, 0, "d") + , (62604, 0, "i") + , (62605, 0, "f") + , (62606, 0, "y") + , (62607, 0, "_") + , (62608, 0, "c") + , (62609, 0, "u") + , (62610, 0, "r") + , (62611, 0, "r") + , (62612, 0, "e") + , (62613, 0, "n") + , (62613, 1, "") + , (62612, 1, "") + , (62611, 1, "") + , (62610, 1, "") + , (62609, 1, "") + , (62608, 1, "") + , (62608, 0, "p") + , (62609, 0, "r") + , (62610, 0, "e") + , (62611, 0, "v") + , (62612, 0, ":") + , (62613, 0, " ") + , (62614, 0, "b") + , (62615, 0, "o") + , (62616, 0, "o") + , (62617, 0, "l") + , (62672, 0, "\n ") + , (63460, 158, "") + , (62673, 8, "") + , ( 62673 + , 0 + , " let item = unsafe {\n if self.item_offset > 0 { self.cursor.current_item_mut() }\n else { self.cursor.prev_item_mut() }\n };" + ) + , (62831, 0, "\n ") + , (62832, 8, "") + , (62716, 16, "m") + , (62717, 0, "o") + , (62718, 0, "d") + , (62719, 0, "i") + , (62720, 0, "f") + , (62721, 0, "y") + , (62716, 6, "modify_prev") + , (62734, 30, "") + , (62756, 0, "self.cursor.current_item_mut()") + , (62786, 27, "") + , (62734, 0, "self.cursor.prev_item_mut()") + , (62729, 1, "") + , (62729, 1, "") + , (62729, 1, "") + , (62728, 1, "") + , (63975, 30, "") + , (63975, 0, "f") + , (63976, 0, "a") + , (63977, 0, "l") + , (63978, 0, "s") + , (63979, 0, "e") + , (63820, 0, "(") + , (63821, 0, "s") + , (63822, 0, "e") + , (63823, 0, "l") + , (63824, 0, "f") + , (63825, 0, ".") + , (63826, 0, "i") + , (63827, 0, "t") + , (63828, 0, "e") + , (63829, 0, "m") + , (63830, 0, "_") + , (63831, 0, "o") + , (63832, 0, "f") + , (63833, 0, "f") + , (63834, 0, "s") + , (63835, 0, "e") + , (63836, 0, "t") + , (63837, 0, " ") + , (63838, 0, ">") + , (63839, 0, " ") + , (63840, 0, "0") + , (63841, 0, " ") + , (63842, 0, "&") + , (63843, 0, "&") + , (63844, 0, " ") + , (63919, 0, ")") + , (63601, 1, "") + , (63597, 4, "") + , (63593, 4, "") + , (63592, 1, "") + , (63592, 0, "\n ") + , (63601, 0, "unsafe { self.modify_item(false, modify_fn); }") + , (63627, 5, "t") + , (63628, 0, "r") + , (63629, 0, "u") + , (63630, 0, "e") + , (62692, 8, "") + , ( 62673 + , 78 + , " let item = if modify_prev { self.cursor.prev_item_mut() }" + ) + , (62739, 12, " ") + , (62787, 10, "") + , (62786, 1, "") + , (62786, 0, ";") + , (63471, 0, "p") + , (63472, 0, "u") + , (63473, 0, "b") + , (63474, 0, " ") + , (54288, 0, "_") + , (54289, 0, "m") + , (54288, 2, "") + , (63314, 1, "") + , (63325, 1, "") + , (63325, 0, ")") + , (63314, 0, "(") + , (62962, 0, "0") + , (62963, 0, ";") + , (62964, 0, " ") + , (62965, 0, "/") + , (62966, 0, "/") + , (62964, 3, "") + , (62962, 2, "") + , (63232, 0, "// ") + , (63232, 3, "") + , (63456, 0, "// ") + , (63418, 0, "// ") + , (63377, 0, "// ") + , (63314, 0, "// ") + , (63465, 3, "") + , (63424, 3, "") + , (63380, 3, "") + , (63314, 3, "") + , (67039, 0, " ") + , (67030, 1, "") + , (64176, 0, "\n") + , (57202, 1, "") + , (57103, 0, "i") + , (57097, 1, "") + , (56878, 0, "\n") + , (56796, 1, "") + , (56795, 0, "{") + , (56753, 1, "") + , (56736, 0, ">") + , (56734, 1, "") + , (56728, 0, ">") + , (56724, 1, "") + , (56707, 0, "i") + , (56706, 1, "") + , (56054, 0, "i") + , (56048, 1, "") + , (55841, 0, "\n") + , (58313, 0, "// ") + , (54544, 13, "") + , (54517, 0, "(") + , (54517, 1, "") + , (54544, 0, "item_offset, ") + , (54806, 13, "") + , (54544, 13, "") + , (54766, 0, "(") + , (54517, 0, "(") + , (54803, 0, ",") + , (54570, 0, ",") + , (54805, 0, " ") + , (54571, 0, " ") + , (54807, 0, "item_offset, ") + , (54572, 0, "item_offset, ") + , (54832, 1, "") + , (54584, 1, "") + , (54830, 1, "") + , (54583, 1, "") + , (54829, 0, ")") + , (54583, 0, ")") + , (54335, 0, "(") + , (54382, 0, ",") + , (54383, 0, " ") + , (54384, 0, "u") + , (54385, 0, "s") + , (54386, 0, "i") + , (54387, 0, "z") + , (54388, 0, "e") + , (54389, 0, ")") + , (54702, 0, "(") + , (54713, 0, ",") + , (54714, 0, " ") + , (54715, 0, "u") + , (54716, 0, "s") + , (54717, 0, "i") + , (54718, 0, "z") + , (54719, 0, "e") + , (54720, 0, ")") + , (59138, 78, "") + , (59138, 1, "") + , (60947, 0, "\n ") + , (60952, 0, "\n ") + , (60948, 4, "") + , (60953, 0, "p") + , (60954, 0, "u") + , (60955, 0, "b") + , (60956, 0, " ") + , (60957, 0, "f") + , (60958, 0, "n") + , (60959, 0, " ") + , (60960, 0, "i") + , (60961, 0, "n") + , (60962, 0, "s") + , (60963, 0, "e") + , (60964, 0, "r") + , (60965, 0, "t") + , (60966, 0, "_") + , (60967, 0, "b") + , (60968, 0, "e") + , (60969, 0, "t") + , (60970, 0, "w") + , (60971, 0, "e") + , (60972, 0, "e") + , (60973, 0, "n") + , ( 60974 + , 0 + , "(&mut self, mut contents: I) where I: ExactSizeIterator {" + ) + , (60988, 0, " ") + , (60989, 0, "o") + , (60990, 0, "f") + , (60991, 0, "f") + , (60992, 0, "s") + , (60993, 0, "e") + , (60994, 0, "t") + , (60995, 0, ":") + , (60996, 0, " ") + , (60997, 0, "u") + , (60998, 0, "s") + , (60999, 0, "i") + , (61000, 0, "z") + , (61001, 0, "e") + , (61002, 0, ",") + , (61063, 0, "\n ") + , (61072, 0, "\n ") + , (61064, 8, "") + , (61065, 8, " }") + , (59610, 124, "") + , (59609, 1, "") + , (60939, 0, " ") + , (60947, 0, "i") + , (60948, 0, "f") + , (60949, 0, " ") + , (60950, 0, "o") + , (60951, 0, "f") + , (60952, 0, "f") + , (60953, 0, "s") + , (60954, 0, "e") + , (60955, 0, "t") + , (60956, 0, " ") + , (60957, 0, "=") + , (60958, 0, "=") + , (60959, 0, " ") + , (60960, 0, "0") + , (60961, 0, " ") + , (60962, 0, "{") + , (60963, 0, " ") + , (60964, 0, "r") + , (60965, 0, "e") + , (60966, 0, "t") + , (60967, 0, "u") + , (60968, 0, "r") + , (60969, 0, "n") + , (60970, 0, " ") + , (60971, 0, "i") + , (60972, 0, "n") + , (60972, 1, "") + , (60971, 1, "") + , (60971, 0, "t") + , (60972, 0, "h") + , (60973, 0, "i") + , (60974, 0, "s") + , (60975, 0, ".") + , (60976, 0, "i") + , (60977, 0, "n") + , (60978, 0, "s") + , (60979, 0, "e") + , (60980, 0, "r") + , (60981, 0, "t") + , (60982, 0, "_") + , (60983, 0, "i") + , (60976, 8, "insert_iter") + , (60987, 0, "(") + , (60988, 0, "c") + , (60989, 0, "o") + , (60990, 0, "n") + , (60991, 0, "t") + , (60992, 0, "e") + , (60993, 0, "n") + , (60994, 0, "t") + , (60995, 0, "s") + , (60996, 0, ")") + , (60997, 0, ";") + , (60998, 0, " ") + , (60999, 0, "}") + , (61000, 0, "\n ") + , (61001, 8, "") + , (60971, 4, "s") + , (60972, 0, "e") + , (60973, 0, "l") + , (60974, 0, "f") + , (59660, 56, "") + , (59754, 16, " ") + , (59660, 16, " ") + , (59750, 12, " ") + , (59660, 12, " ") + , (59746, 8, " ") + , (59660, 8, " ") + , (59750, 12, " ") + , (59660, 12, " ") + , (59660, 0, " unsafe {\n if self.item_offset == 0 {\n") + , (59677, 39, "") + , (59771, 16, " ") + , (59677, 16, " ") + , (59840, 21, "") + , (59840, 884, "") + , (59840, 15, "") + , (60034, 0, "\n ") + , ( 60043 + , 0 + , " let current_item = self.cursor.current_item();\n let (start, end) = C::split_item(current_item, self.item_offset);\n // Move the cursor back to the start of the item we're\n // splitting.\n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);\n // This feels pretty inefficient; but its probably fine.\n self.list.replace_item(&mut self.cursor, start, &mut self.notify);\n\n // TODO: Consider concatenating end into contents then just call\n // insert_at_iter once.\n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);\n\n self.dbg_check_cursor_at(start_userpos, num_inserted_items);\n\n self.list.insert_at_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);" + ) + , (60828, 16, " ") + , (60750, 16, " ") + , (60656, 16, " ") + , (60616, 16, " ") + , (60535, 16, " ") + , (60451, 16, " ") + , (60378, 16, " ") + , (60289, 16, " ") + , (60259, 16, " ") + , (60188, 16, " ") + , (60106, 16, " ") + , (60035, 24, " ") + , (60311, 16, "o") + , (60145, 16, "o") + , (60297, 0, "f") + , (60146, 0, "f") + , (60299, 0, "f") + , (60147, 0, "f") + , (60301, 0, "s") + , (60148, 0, "s") + , (60303, 0, "e") + , (60149, 0, "e") + , (60305, 0, "t") + , (60150, 0, "t") + , (59605, 4, "") + , (59601, 4, "") + , (59600, 1, "") + , (60025, 0, "\n ") + , ( 60034 + , 0 + , " let num_inserted_items = contents.len();\n let start_userpos = self.cursor.userpos;\n" + ) + , (60026, 16, " ") + , (59873, 0, "_") + , (59874, 0, "i") + , (59875, 0, "t") + , (59876, 0, "e") + , (59877, 0, "r") + , (61002, 0, "\n ") + , (61003, 4, "") + , (61002, 0, "\n ") + , ( 61007 + , 0 + , " pub fn insert(&mut self, item: C::Item) {\n self.insert_iter(iter::once(item));\n }" + ) + , (61003, 8, " ") + , (61020, 0, "_") + , (61021, 0, "b") + , (61022, 0, "e") + , (61023, 0, "t") + , (61024, 0, "w") + , (61025, 0, "e") + , (61026, 0, "e") + , (61027, 0, "n") + , (61039, 0, " ") + , (61040, 0, "o") + , (61041, 0, "f") + , (61042, 0, "f") + , (61043, 0, "s") + , (61044, 0, "e") + , (61045, 0, "t") + , (61046, 0, ":") + , (61047, 0, " ") + , (61048, 0, "u") + , (61049, 0, "s") + , (61050, 0, "i") + , (61051, 0, "z") + , (61052, 0, "e") + , (61053, 0, ",") + , (61092, 0, "b") + , (61093, 0, "e") + , (61094, 0, "t") + , (61095, 0, "w") + , (61096, 0, "e") + , (61097, 0, "e") + , (61098, 0, "n") + , (61099, 0, "_") + , (61105, 0, "o") + , (61106, 0, "f") + , (61107, 0, "f") + , (61108, 0, "s") + , (61109, 0, "e") + , (61110, 0, "t") + , (61111, 0, ",") + , (61112, 0, " ") + , (61398, 79, "") + , (61769, 35, "") + , (62231, 12, " ") + , (62169, 16, " ") + , (62101, 16, " ") + , (62080, 12, " ") + , (62059, 16, " ") + , (61966, 16, " ") + , (61895, 16, " ") + , (61815, 16, " ") + , (61769, 12, " ") + , (62209, 103, "") + , (62310, 30, "") + , (62617, 18, "") + , (62418, 7, "") + , (62951, 74, "") + , (62950, 1, "") + , (63427, 7, "") + , (63207, 7, "") + , (63464, 112, "") + , (63463, 1, "") + , (63463, 0, " ") + , (63335, 0, "\n ") + , (63336, 4, "") + , (63335, 1, "") + , (63271, 0, "\n ") + , (63276, 0, "/") + , (63277, 0, "/") + , (63278, 0, "/") + , (63279, 0, " ") + , (63280, 0, "T") + , (63281, 0, "h") + , (63282, 0, "i") + , (63283, 0, "s") + , (63284, 0, " ") + , (63280, 5, "C") + , (63281, 0, "a") + , (63282, 0, "v") + , (63283, 0, "e") + , (63284, 0, "a") + , (63285, 0, "t") + , (63286, 0, ":") + , (63287, 0, " ") + , (63288, 0, "T") + , (63289, 0, "h") + , (63290, 0, "i") + , (63291, 0, "s") + , (63292, 0, " ") + , (63293, 0, "m") + , (63294, 0, "o") + , (63295, 0, "v") + , (63296, 0, "e") + , (63297, 0, "s") + , (63298, 0, " ") + , (63299, 0, "t") + , (63300, 0, "h") + , (63301, 0, "e") + , (63302, 0, " ") + , (63303, 0, "c") + , (63304, 0, "u") + , (63305, 0, "r") + , (63306, 0, "s") + , (63307, 0, "o") + , (63308, 0, "r") + , (63309, 0, " ") + , (63310, 0, "t") + , (63311, 0, "o") + , (63312, 0, " ") + , (63313, 0, "t") + , (63314, 0, "h") + , (63315, 0, "e") + , (63316, 0, " ") + , (63317, 0, "n") + , (63318, 0, "e") + , (63319, 0, "x") + , (63320, 0, "t") + , (63321, 0, " ") + , (63322, 0, "i") + , (63323, 0, "t") + , (63324, 0, "e") + , (63325, 0, "m") + , (17326, 16, "") + , (17325, 1, "") + , (17324, 1, "") + , (17323, 1, "") + , (17300, 0, ">") + , (17301, 0, " ") + , (17301, 1, "") + , (17300, 1, "") + , (17323, 0, " > ") + , (17323, 3, "") + , (17300, 0, ">") + , (17300, 1, "") + , (17300, 0, "<") + , (17301, 0, " ") + , (17300, 0, "self.local_index") + , (17316, 0, " ") + , (16462, 0, "O") + , (16463, 0, "p") + , (16464, 0, "t") + , (16465, 0, "i") + , (16466, 0, "o") + , (16467, 0, "n") + , (16479, 0, ">") + , (16468, 0, "<") + , (16521, 0, "\n ") + , (16530, 0, "i") + , (16531, 0, "f") + , (16532, 0, " ") + , (16533, 0, "s") + , (16534, 0, "e") + , (16535, 0, "l") + , (16536, 0, "f") + , (16537, 0, ".") + , (16538, 0, "l") + , (16539, 0, "o") + , (16540, 0, "c") + , (16541, 0, "a") + , (16542, 0, "l") + , (16538, 5, "local_index") + , (16549, 0, " ") + , (16550, 0, "=") + , (16551, 0, "=") + , (16552, 0, " ") + , (16553, 0, "0") + , (16554, 0, " ") + , (16555, 0, "{") + , (16556, 0, "\n ") + , (16569, 0, "\n ") + , (16557, 12, "") + , (16558, 12, " }") + , (16557, 0, " ") + , (16569, 0, "a") + , (16570, 0, "s") + , (16571, 0, "s") + , (16572, 0, "e") + , (16573, 0, "r") + , (16569, 5, "assert_eq!") + , (16579, 0, "(") + , (16580, 0, "s") + , (16581, 0, "e") + , (16582, 0, "l") + , (16583, 0, "f") + , (16584, 0, ".") + , (16584, 1, "") + , (16584, 0, ".") + , (16585, 0, "u") + , (16586, 0, "s") + , (16587, 0, "e") + , (16588, 0, "r") + , (16589, 0, "p") + , (16590, 0, "o") + , (16591, 0, "s") + , (16592, 0, ",") + , (16593, 0, " ") + , (16594, 0, "0") + , (16595, 0, ")") + , (16596, 0, ";") + , ( 16522 + , 75 + , " if self.local_index == 0 { assert_eq!(self.userpos, 0);" + ) + , ( 16522 + , 73 + , " if self.local_index == 0 { assert_eq!(self.userpos, 0); }" + ) + , ( 16522 + , 65 + , " if self.local_index == 0 { assert_eq!(self.userpos, 0);\n }" + ) + , ( 16522 + , 63 + , " if self.local_index == 0 {\n assert_eq!(self.userpos, 0);" + ) + , (16597, 0, "\n ") + , (16610, 0, "N") + , (16611, 0, "o") + , (16612, 0, "n") + , (16613, 0, "e") + , (16624, 0, " ") + , (16625, 0, "e") + , (16626, 0, "l") + , (16627, 0, "s") + , (16628, 0, "e") + , (16629, 0, " ") + , (16630, 0, "{") + , (16739, 8, " ") + , (16671, 8, " ") + , (16632, 8, " ") + , (16632, 42, "") + , (16631, 1, "") + , (16761, 0, "\n ") + , (16762, 12, " }") + , (16715, 0, "S") + , (16715, 1, "") + , (16716, 0, "S") + , (16717, 0, "o") + , (16718, 0, "m") + , (16719, 0, "e") + , (16720, 0, "(") + , (16766, 0, ")") + , (16845, 8, "\n ") + , (16846, 8, "\n ") + , ( 16845 + , 0 + , " let node = &*self.here_ptr();\n if self.local_index == 0 {\n assert_eq!(self.userpos, 0);\n None\n } else {\n debug_assert!(self.local_index <= node.num_items as usize);\n Some(&*(node.items[self.local_index - 1].as_ptr()))\n }\n" + ) + , (17083, 0, "m") + , (17084, 0, "u") + , (17085, 0, "t") + , (17086, 0, " ") + , (16865, 0, "m") + , (16866, 0, "u") + , (16867, 0, "t") + , (16868, 0, " ") + , (16827, 0, "O") + , (16828, 0, "t") + , (16828, 1, "") + , (16828, 0, "p") + , (16829, 0, "t") + , (16830, 0, "i") + , (16831, 0, "o") + , (16832, 0, "n") + , (16833, 0, "<") + , (16849, 0, ">") + , (17314, 0, "// ") + , (17246, 0, "// ") + , (17207, 0, "// ") + , (17165, 0, "// ") + , (17137, 0, "m") + , (17138, 0, "u") + , (17139, 0, "t") + , (17140, 0, " ") + , (17140, 1, "") + , (17140, 0, "_") + , (17159, 225, "") + , (17055, 0, ".") + , (17055, 1, "") + , (17424, 0, "O") + , (17203, 0, "O") + , (17426, 0, "p") + , (17204, 0, "p") + , (17428, 0, "t") + , (17205, 0, "t") + , (17430, 0, "i") + , (17206, 0, "i") + , (17432, 0, "o") + , (17207, 0, "o") + , (17434, 0, "n") + , (17208, 0, "n") + , (17436, 0, "<") + , (17209, 0, "<") + , (17453, 0, ">") + , (17221, 0, ">") + , (16929, 0, "\n ") + , (16930, 12, "") + , (16929, 1, "") + , (17271, 0, "// ") + , (17262, 0, "\n ") + , (17271, 0, "i") + , (17272, 0, "f") + , (17273, 0, " ") + , (17274, 0, "self.local_index < node.num_items") + , (17307, 0, " ") + , (17308, 0, "a") + , (17309, 0, "s") + , (17310, 0, " ") + , (17311, 0, "u") + , (17312, 0, "s") + , (17313, 0, "i") + , (17314, 0, "z") + , (17315, 0, "e") + , (17316, 0, " ") + , (17317, 0, "{") + , (17318, 0, "\n ") + , (17331, 0, "\n ") + , (17319, 12, "") + , (17320, 12, " }") + , (17319, 0, " ") + , (17331, 0, "/") + , (17332, 0, "/") + , (17333, 0, " ") + , (17334, 0, "O") + , (17335, 0, "k") + , (17336, 0, " ") + , (17337, 0, "-") + , (17338, 0, " ") + , (17339, 0, "w") + , (17340, 0, "e") + , (17341, 0, "'") + , (17342, 0, "r") + , (17343, 0, "e") + , (17344, 0, " ") + , (17339, 6, "j") + , (17340, 0, "u") + , (17341, 0, "s") + , (17342, 0, "t") + , (17343, 0, " ") + , (17344, 0, "r") + , (17345, 0, "e") + , (17346, 0, "t") + , (17347, 0, "u") + , (17348, 0, "r") + , (17349, 0, "n") + , (17350, 0, " ") + , (17351, 0, "t") + , (17352, 0, "h") + , (17353, 0, "e") + , (17354, 0, " ") + , (17355, 0, "c") + , (17356, 0, "u") + , (17357, 0, "r") + , (17358, 0, "r") + , (17359, 0, "e") + , (17360, 0, "n") + , (17361, 0, "t") + , (17362, 0, " ") + , (17363, 0, "i") + , (17364, 0, "t") + , (17365, 0, "e") + , (17366, 0, "m") + , (17367, 0, ".") + , (17379, 70, "") + , (17428, 0, "\n }") + , (17379, 8, " ") + , (17369, 10, "") + , (17381, 0, "S") + , (17382, 0, "o") + , (17383, 0, "m") + , (17384, 0, "e") + , (17385, 0, "(") + , (17427, 0, ")") + , (17438, 0, " ") + , (17439, 0, "e") + , (17440, 0, "l") + , (17441, 0, "s") + , (17442, 0, "e") + , (17443, 0, " ") + , (17444, 0, "{") + , (17445, 0, "\n ") + , (17458, 0, "\n ") + , (17446, 12, "") + , (17447, 12, " }") + , (17446, 0, " ") + , (17458, 0, "/") + , (17459, 0, "/") + , (17460, 0, " ") + , (17461, 0, "R") + , (17462, 0, "e") + , (17463, 0, "t") + , (17464, 0, "u") + , (17465, 0, "r") + , (17466, 0, "n") + , (17467, 0, " ") + , (17468, 0, "t") + , (17469, 0, "h") + , (17470, 0, "e") + , (17471, 0, " ") + , (17472, 0, "f") + , (17473, 0, "i") + , (17474, 0, "r") + , (17475, 0, "s") + , (17476, 0, "t") + , (17477, 0, " ") + , (17478, 0, "i") + , (17479, 0, "t") + , (17480, 0, "e") + , (17481, 0, "m") + , (17482, 0, " ") + , (17483, 0, "i") + , (17484, 0, "n") + , (17485, 0, " ") + , (17486, 0, "t") + , (17487, 0, "h") + , (17488, 0, "e") + , (17489, 0, " ") + , (17490, 0, "n") + , (17491, 0, "e") + , (17492, 0, "x") + , (17493, 0, "t") + , (17494, 0, " ") + , (17495, 0, "n") + , (17496, 0, "o") + , (17497, 0, "d") + , (17498, 0, "e") + , (17499, 0, ".") + , (17461, 10, "P") + , (17462, 0, "e") + , (17463, 0, "e") + , (17464, 0, "l") + , (17464, 1, "") + , (17464, 0, "k") + , (17465, 0, " ") + , (17466, 0, "t") + , (17467, 0, "h") + , (17468, 0, "e") + , (17498, 0, "\n ") + , (17511, 0, "l") + , (17512, 0, "e") + , (17513, 0, "t") + , (17514, 0, " ") + , (17515, 0, "n") + , (17516, 0, "e") + , (17517, 0, "x") + , (17518, 0, "t") + , (17519, 0, " ") + , (17520, 0, "=") + , (17521, 0, " ") + , (17522, 0, "s") + , (17523, 0, "e") + , (17524, 0, "l") + , (17525, 0, "f") + , (17526, 0, ".") + , (17527, 0, "h") + , (17528, 0, "e") + , (17529, 0, "r") + , (17530, 0, "e") + , (17527, 4, "here_ptr()") + , (17537, 0, ".") + , (17538, 0, "n") + , (17539, 0, "o") + , (17540, 0, "d") + , (17541, 0, "e") + , (17527, 15, "") + , (17527, 0, "e") + , (17528, 0, "n") + , (17529, 0, "t") + , (17530, 0, "r") + , (17531, 0, "i") + , (17532, 0, "e") + , (17533, 0, "s") + , (17527, 7, "") + , (17527, 0, "here_ptr().node") + , (17538, 4, "") + , (17538, 0, "g") + , (17539, 0, "e") + , (17540, 0, "t") + , (17541, 0, "_") + , (17542, 0, "n") + , (17543, 0, "e") + , (17544, 0, "x") + , (17538, 7, "get_next_ptr") + , (17550, 0, "(") + , (17551, 0, ")") + , (17522, 0, "(") + , (17523, 0, "*") + , (17539, 0, ")") + , (17498, 0, "\n ") + , (17511, 0, "u") + , (17512, 0, "n") + , (17513, 0, "s") + , (17514, 0, "a") + , (17515, 0, "f") + , (17516, 0, "e") + , (17517, 0, " ") + , (17518, 0, "{") + , (17576, 0, "\n ") + , (17577, 12, " }") + , (17576, 14, "") + , (17517, 2, "") + , (17498, 19, "") + , (17555, 0, ";") + , (17556, 0, "\n ") + , (17569, 0, "i") + , (17570, 0, "f") + , (17571, 0, " ") + , (17572, 0, "n") + , (17573, 0, "e") + , (17574, 0, "x") + , (17575, 0, "t") + , (17576, 0, ".") + , (17577, 0, "i") + , (17578, 0, "s") + , (17579, 0, "_") + , (17580, 0, "n") + , (17581, 0, "u") + , (17577, 5, "is_null") + , (17584, 0, "(") + , (17585, 0, ")") + , (17586, 0, " ") + , (17587, 0, "{") + , (17588, 0, " ") + , (17589, 0, "r") + , (17590, 0, "e") + , (17591, 0, "t") + , (17592, 0, "u") + , (17593, 0, "r") + , (17594, 0, "n") + , (17595, 0, " ") + , (17596, 0, "N") + , (17597, 0, "o") + , (17598, 0, "n") + , (17599, 0, "e") + , (17600, 0, ";") + , (17601, 0, " ") + , (17602, 0, "}") + , (17603, 0, "\n ") + , (17616, 0, "e") + , (17617, 0, "l") + , (17618, 0, "s") + , (17619, 0, "e") + , (17620, 0, " ") + , (17589, 7, "") + , (17593, 1, "") + , (17613, 0, "{") + , (17614, 0, "\n ") + , (17631, 0, "\n ") + , (17615, 16, "") + , (17616, 16, " }") + , (17615, 0, " ") + , (17631, 0, "S") + , (17632, 0, "o") + , (17633, 0, "m") + , (17634, 0, "e") + , (17635, 0, "(") + , (17636, 0, "(") + , (17636, 1, "") + , (17636, 0, "(") + , (17637, 0, "*") + , (17638, 0, "n") + , (17639, 0, "e") + , (17640, 0, "x") + , (17641, 0, "t") + , (17642, 0, ")") + , (17643, 0, ".") + , (17644, 0, "c") + , (17645, 0, "o") + , (17646, 0, "n") + , (17647, 0, "t") + , (17648, 0, "e") + , (17649, 0, "n") + , (17650, 0, "t") + , (17644, 7, "content") + , (17651, 0, "_") + , (17652, 0, "s") + , (17653, 0, "l") + , (17654, 0, "i") + , (17655, 0, "c") + , (17656, 0, "e") + , (17657, 0, "[") + , (17658, 0, "0") + , (17658, 1, "") + , (17658, 0, "]") + , (17658, 1, "") + , (17658, 0, "0") + , (17659, 0, "]") + , (17657, 0, "(") + , (17658, 0, ")") + , (17662, 0, ")") + , (17636, 0, "&") + , (17192, 0, "<") + , (17193, 0, "'") + , (17194, 0, "a") + , (17195, 0, ">") + , (13966, 1, "") + , (13965, 1, "") + , (13964, 1, "") + , (13963, 1, "") + , (16808, 0, "<") + , (16809, 0, "'") + , (16810, 0, "a") + , (16811, 0, ".") + , (16811, 1, "") + , (16811, 0, ">") + , (16447, 0, "<'a>") + , (17622, 0, "\n ") + , (17639, 0, "d") + , (17640, 0, "e") + , (17641, 0, "b") + , (17642, 0, "u") + , (17643, 0, "g") + , (17639, 5, "debug_assert!") + , (17652, 0, "(") + , (17653, 0, "*") + , (17654, 0, "n") + , (17655, 0, "e") + , (17656, 0, "x") + , (17657, 0, "t") + , (17653, 0, "(") + , (17659, 0, ")") + , (17660, 0, ".") + , (17661, 0, "n") + , (17662, 0, "u") + , (17663, 0, "m") + , (17664, 0, "_") + , (17665, 0, "i") + , (17666, 0, "t") + , (17667, 0, "e") + , (17668, 0, "m") + , (17669, 0, "s") + , (17670, 0, " ") + , (17671, 0, ">") + , (17672, 0, " ") + , (17673, 0, "0") + , (17674, 0, ")") + , (17675, 0, ";") + , (17698, 1, "") + , (17698, 0, "&") + , (17707, 13, "") + , (17707, 1, "") + , (17707, 1, "") + , (17707, 0, "i") + , (17708, 0, "t") + , (17709, 0, "e") + , (17710, 0, "m") + , (17711, 0, "s") + , (17715, 0, ".") + , (17716, 0, "a") + , (17717, 0, "s") + , (17718, 0, "_") + , (17719, 0, "r") + , (17720, 0, "e") + , (17721, 0, "f") + , (17722, 0, "(") + , (17723, 0, ")") + , (17716, 6, "a") + , (17717, 0, "s") + , (17718, 0, "_") + , (17719, 0, "p") + , (17720, 0, "t") + , (17721, 0, "r") + , (17699, 0, "*") + , (17168, 0, "\n ") + , (17173, 0, "\n ") + , (17169, 4, "") + , (17174, 0, "f") + , (17175, 0, "n") + , (17176, 0, " ") + , (17177, 0, "p") + , (17178, 0, "e") + , (17179, 0, "e") + , (17180, 0, "k") + , (17181, 0, "_") + , (17182, 0, "n") + , (17183, 0, "e") + , (17184, 0, "x") + , (17185, 0, "t") + , (17186, 0, "_") + , (17187, 0, "i") + , (17188, 0, "t") + , (17189, 0, "e") + , (17190, 0, "m") + , (17191, 0, "(") + , (17192, 0, "&") + , (17193, 0, "s") + , (17194, 0, "e") + , (17195, 0, "l") + , (17196, 0, "f") + , (17197, 0, ")") + , (17198, 0, " ") + , (17199, 0, "-") + , (17200, 0, ">") + , (17201, 0, " ") + , (17202, 0, "O") + , (17202, 1, "") + , (17202, 0, "O") + , (17202, 1, "") + , (17202, 0, "*") + , (17203, 0, "C") + , (17204, 0, ":") + , (17205, 0, ":") + , (17206, 0, "I") + , (17206, 1, "Item") + , (17203, 0, "m") + , (17204, 0, "u") + , (17205, 0, "t") + , (17206, 0, " ") + , (17214, 0, " ") + , (17215, 0, "{") + , (17216, 0, "\n ") + , (17225, 0, "\n ") + , (17217, 8, "") + , (17218, 8, " }") + , ( 17217 + , 0 + , " let next = (*self.here_ptr()).get_next_ptr();\n if next.is_null() { None }\n else {\n debug_assert!((*next).num_items > 0);\n Some(&*(*next).items[0].as_ptr())\n }\n" + ) + , (17437, 12, " ") + , (17387, 16, " ") + , (17333, 16, " ") + , (17314, 12, " ") + , (17275, 12, " ") + , (17217, 12, " ") + , (17426, 1, "") + , (17299, 4, "") + , (17299, 0, "p") + , (17300, 0, "t") + , (17301, 0, "r") + , (17302, 0, ":") + , (17303, 0, ":") + , (17304, 0, "n") + , (17305, 0, "u") + , (17306, 0, "l") + , (17304, 3, "null()") + , (17422, 1, "") + , (17390, 7, "") + , (17308, 0, "_") + , (17309, 0, "m") + , (17310, 0, "u") + , (17311, 0, "t") + , (17414, 0, "m") + , (17415, 0, "u") + , (17416, 0, "t") + , (17417, 0, "_") + , (17174, 0, "u") + , (17175, 0, "n") + , (17176, 0, "s") + , (17177, 0, "a") + , (17178, 0, "f") + , (17179, 0, "e") + , (17180, 0, " ") + , (17209, 0, "O") + , (17210, 0, "p") + , (17211, 0, "t") + , (17212, 0, "i") + , (17213, 0, "o") + , (17214, 0, "n") + , (17215, 0, "<") + , (17228, 0, ">") + , (17314, 15, "N") + , (17315, 0, "u") + , (17315, 1, "") + , (17314, 1, "") + , (17314, 0, "N") + , (17315, 0, "o") + , (17316, 0, "n") + , (17317, 0, "e") + , (17398, 0, "S") + , (17399, 0, "o") + , (17400, 0, "m") + , (17401, 0, "e") + , (17402, 0, "(") + , (17432, 0, ")") + , (17787, 0, "\n ") + , (17800, 0, "s") + , (17801, 0, "e") + , (17802, 0, "l") + , (17803, 0, "f") + , (17804, 0, ".") + , (17805, 0, ".") + , (17806, 0, "p") + , (17807, 0, "e") + , (17808, 0, "e") + , (17809, 0, "k") + , (17809, 1, "") + , (17808, 1, "") + , (17807, 1, "") + , (17806, 1, "") + , (17805, 1, "") + , (17805, 0, "p") + , (17806, 0, "e") + , (17807, 0, "e") + , (17808, 0, "k") + , (17805, 4, "peek_next_item()") + , (17821, 0, ".") + , (17822, 0, "a") + , (17823, 0, "n") + , (17824, 0, "d") + , (17822, 3, "and_then(f: F)") + , (17831, 4, "|") + , (17832, 0, "p") + , (17833, 0, "t") + , (17834, 0, "r") + , (17835, 0, "|") + , (17836, 0, " ") + , (17837, 0, "&") + , (17838, 0, "*") + , (17839, 0, "p") + , (17840, 0, "t") + , (17841, 0, "r") + , (18076, 0, "// ") + , (18026, 0, "// ") + , (17972, 0, "// ") + , (17953, 0, "// ") + , (17914, 0, "// ") + , (17856, 0, "// ") + , (17822, 8, "m") + , (17823, 0, "a") + , (17824, 0, "p") + , (17839, 252, "") + , (17927, 8, "\n ") + , (17928, 8, "\n ") + , ( 17927 + , 0 + , " let node = &*self.here_ptr();\n if self.local_index < node.num_items as usize {\n // Ok - just return the current item.\n Some(&*(node.items[self.local_index].as_ptr()))\n } else {\n // Peek the first item in the next node.\n self.peek_next_item().map(|ptr| &*ptr)\n }\n" + ) + , (17947, 0, "m") + , (17948, 0, "u") + , (17949, 0, "t") + , (17950, 0, " ") + , (18127, 0, "m") + , (18128, 0, "u") + , (18129, 0, "t") + , (18130, 0, "_") + , (18270, 160, "") + , (18270, 9, "") + , (18270, 0, "t_ptr())\n") + , ( 18270 + , 0 + , "\n\n let node = &mut *self.here_ptr();\n debug_assert!(self.local_index < node.num_items as usize);\n &mut *(node.items[self.local_index].as_mu" + ) + , (18270, 160, "") + , (18270, 9, "") + , (18093, 0, "m") + , (18094, 0, "u") + , (18095, 0, "t") + , (18096, 0, " ") + , (18258, 0, "m") + , (18259, 0, "u") + , (18260, 0, "t") + , (18261, 0, " ") + , (17169, 0, "\n ") + , (17174, 0, "/") + , (17175, 0, "/") + , (17176, 0, " ") + , (17177, 0, "C") + , (17178, 0, "o") + , (17179, 0, "u") + , (17180, 0, "l") + , (17181, 0, "d") + , (17182, 0, " ") + , (17183, 0, "b") + , (17184, 0, "e") + , (17185, 0, " ") + , (17186, 0, "O") + , (17187, 0, "p") + , (17188, 0, "t") + , (17189, 0, "i") + , (17190, 0, "o") + , (17191, 0, "n") + , (17192, 0, "<") + , (17193, 0, "N") + , (17194, 0, "o") + , (17195, 0, "n") + , (17196, 0, "N") + , (17197, 0, "u") + , (17198, 0, "l") + , (17199, 0, "l") + , (17200, 0, "<") + , (17201, 0, ">") + , (17201, 1, "") + , (17201, 0, ".") + , (17202, 0, ".") + , (17202, 1, "") + , (17201, 1, "") + , (17201, 0, "_") + , (17202, 0, ">") + , (17203, 0, ">") + , (17204, 0, ".") + , (17205, 0, ".") + , (17206, 0, ".") + , (15888, 0, ".") + , (15889, 0, "u") + , (15890, 0, "n") + , (15891, 0, "w") + , (15892, 0, "r") + , (15893, 0, "a") + , (15894, 0, "p") + , (15895, 0, "(") + , (15896, 0, ")") + , (17933, 0, "<") + , (17934, 0, "'") + , (17935, 0, "a") + , (17936, 0, ">") + , (55525, 0, "\n ") + , (55530, 0, "\n ") + , (55526, 4, "") + , (55531, 0, "p") + , (55532, 0, "u") + , (55533, 0, "b") + , (55534, 0, " ") + , (55535, 0, "f") + , (55536, 0, "n") + , (55537, 0, " ") + , (55538, 0, "e") + , (55539, 0, "d") + , (55540, 0, "i") + , (55541, 0, "t") + , (55542, 0, "_") + , (55543, 0, "b") + , (55544, 0, "e") + , (55545, 0, "t") + , (55546, 0, "w") + , (55547, 0, "e") + , (55548, 0, "e") + , (55549, 0, "(") + , (55549, 1, "") + , (55549, 0, "n") + , (55550, 0, "_") + , (55550, 1, "") + , ( 55550 + , 0 + , "(&mut self, userpos: usize) -> (Edit)>, usize) {\n // self.edit_notify(userpos, no_notify_x::, f)\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify: Self::no_notify }, item_offset)\n }" + ) + , (55763, 0, "\n ") + , (55772, 0, "a") + , (55773, 0, "s") + , (55772, 2, "assert_eq!") + , (55782, 0, "(") + , (55783, 0, "i") + , (55784, 0, "t") + , (55785, 0, "e") + , (55786, 0, "m") + , (55787, 0, "_") + , (55788, 0, "o") + , (55783, 6, "item_offset") + , (55794, 0, ",") + , (55795, 0, " ") + , (55796, 0, "0") + , (55797, 0, ",") + , (55798, 0, " ") + , (55799, 0, "\"") + , (55800, 0, "C") + , (55801, 0, "a") + , (55802, 0, "n") + , (55803, 0, "n") + , (55804, 0, "o") + , (55805, 0, "t") + , (55806, 0, " ") + , (55800, 7, "e") + , (55801, 0, "d") + , (55802, 0, "i") + , (55803, 0, "t") + , (55804, 0, "_") + , (55805, 0, "b") + , (55806, 0, "e") + , (55807, 0, "t") + , (55808, 0, "w") + , (55809, 0, "e") + , (55810, 0, "e") + , (55811, 0, "n") + , (55812, 0, " ") + , (55813, 0, "f") + , (55814, 0, "o") + , (55815, 0, "u") + , (55816, 0, "n") + , (55817, 0, "d") + , (55818, 0, " ") + , (55813, 6, "l") + , (55814, 0, "a") + , (55815, 0, "n") + , (55816, 0, "d") + , (55817, 0, "e") + , (55818, 0, "d") + , (55819, 0, " ") + , (55820, 0, "b") + , (55820, 1, "") + , (55820, 0, "i") + , (55821, 0, "n") + , (55822, 0, "s") + , (55823, 0, "i") + , (55824, 0, "d") + , (55825, 0, "e") + , (55826, 0, " ") + , (55827, 0, "a") + , (55828, 0, "n") + , (55829, 0, " ") + , (55830, 0, "i") + , (55831, 0, "t") + , (55832, 0, "e") + , (55833, 0, "m") + , (55834, 0, "\"") + , (55835, 0, ")") + , (55836, 0, ";") + , (55846, 1, "") + , (55898, 14, "") + , (55581, 1, "") + , (55627, 8, "") + , (55183, 0, "_") + , (54899, 0, "_") + , (54726, 0, "_") + , (54304, 0, "_") + , (55187, 0, "b") + , (54902, 0, "b") + , (54728, 0, "b") + , (54305, 0, "b") + , (55191, 0, "e") + , (54905, 0, "e") + , (54730, 0, "e") + , (54306, 0, "e") + , (55195, 0, "t") + , (54908, 0, "t") + , (54732, 0, "t") + , (54307, 0, "t") + , (55199, 0, "w") + , (54911, 0, "w") + , (54734, 0, "w") + , (54308, 0, "w") + , (55194, 9, "edit_between(userpos: usize)") + , (54905, 9, "edit_between(userpos: usize)") + , (54727, 9, "edit_between(userpos: usize)") + , (54300, 9, "edit_between(userpos: usize)") + , (55264, 14, "") + , (54956, 14, "") + , (54759, 14, "") + , (54313, 14, "") + , (55222, 1, "") + , (54928, 1, "") + , (54745, 1, "") + , (54313, 1, "") + , (55218, 1, "") + , (54925, 1, "") + , (54743, 1, "") + , (54312, 1, "") + , (54706, 7, "") + , (54685, 22, "") + , (54684, 1, "") + , (54683, 1, "") + , (54682, 1, "") + , (54681, 1, "") + , (54680, 1, "") + , (54679, 1, "") + , (54678, 1, "") + , (54677, 1, "") + , (54676, 0, ": FnOnce(&mut C::Item)") + , (54677, 1, "") + , (54676, 1, "") + , (54675, 1, "") + , (54675, 0, "F: ") + , (54676, 22, "") + , (54635, 0, ": FnOnce(&mut C::Item)") + , (54847, 34, "") + , (54794, 0, ": ExactSizeIterator ") + , (54827, 1, "") + , (54873, 7, "") + , (54869, 4, "") + , (54868, 1, "") + , (54867, 1, "") + , (54867, 0, " ") + , (54867, 1, "") + , (54867, 0, ")") + , (54868, 0, " ") + , (54250, 34, "") + , (54249, 1, "") + , (54248, 1, "") + , (54247, 1, "") + , (54246, 1, "") + , (54245, 1, "") + , (54244, 1, "") + , (54243, 1, "") + , (54165, 1, "") + , (54165, 0, "I: ExactSizeIterator") + , (54863, 0, " self.edit_between(userpos).insert_iter(contents)\n") + , (54871, 0, "// ") + , (54922, 0, "\n ") + , (54931, 0, "l") + , (54932, 0, "e") + , (54933, 0, "t") + , (54934, 0, " ") + , (54935, 0, "(") + , (54936, 0, "e") + , (54937, 0, "d") + , (54938, 0, "i") + , (54939, 0, "t") + , (54940, 0, ",") + , (54941, 0, " ") + , (54942, 0, "o") + , (54943, 0, "f") + , (54944, 0, "f") + , (54945, 0, "s") + , (54946, 0, "e") + , (54947, 0, "t") + , (54948, 0, ")") + , (54949, 0, " ") + , (54950, 0, "=") + , (54951, 0, " ") + , (54952, 0, "s") + , (54953, 0, "e") + , (54954, 0, "l") + , (54955, 0, "f") + , (54956, 0, ".") + , (54957, 0, "e") + , (54958, 0, "d") + , (54959, 0, "i") + , (54960, 0, "t") + , (54961, 0, "(") + , (54962, 0, "u") + , (54963, 0, "s") + , (54964, 0, "e") + , (54965, 0, "r") + , (54966, 0, "p") + , (54967, 0, "o") + , (54968, 0, "s") + , (54969, 0, ")") + , (54970, 0, ";") + , (54971, 0, "\n ") + , (54980, 0, "e") + , (54981, 0, "d") + , (54982, 0, "i") + , (54983, 0, "t") + , (54984, 0, ".") + , (54985, 0, "i") + , (54986, 0, "n") + , (54987, 0, "s") + , (54988, 0, "e") + , (54989, 0, "r") + , (54985, 5, "insert_between_iter(offset: usize, mut contents: I)") + , (55005, 13, "o") + , (55006, 0, "f") + , (55007, 0, "f") + , (55008, 0, "s") + , (55009, 0, "e") + , (55010, 0, "t") + , (55013, 15, "c") + , (55014, 0, "o") + , (55015, 0, "n") + , (55016, 0, "t") + , (55017, 0, "e") + , (55018, 0, "n") + , (55019, 0, "t") + , (55020, 0, "s") + , (55022, 0, ";") + , (55024, 57, "") + , (54863, 59, "") + , (54862, 1, "") + , (61575, 0, ".") + , (61576, 0, "u") + , (61577, 0, "n") + , (61578, 0, "w") + , (61579, 0, "r") + , (61580, 0, "a") + , (61581, 0, "p") + , (61582, 0, "(") + , (61583, 0, ")") + , (61576, 6, "e") + , (61577, 0, "x") + , (61578, 0, "p") + , (61579, 0, "e") + , (61580, 0, "c") + , (61581, 0, "t") + , (61583, 0, "\"") + , (61583, 1, "") + , (61576, 6, "unwrap") + , (63103, 8, "") + , (63094, 1, "") + , (63426, 16, "") + , (63460, 1, "") + , (63459, 1, "") + , (63458, 1, "") + , (63458, 0, " ") + , (63459, 0, "}") + , (63461, 58, "") + , (16604, 0, ",") + , (16605, 0, " ") + , (16606, 0, "\"Invalid state: Cursor at start of node\"") + , (63503, 9, "") + , (63502, 1, "") + , (63148, 307, "") + , (63147, 1, "") + , (63148, 12, " ") + , ( 63097 + , 0 + , "\n pub fn prev_item(&self) -> Option<&C::Item> {\n unsafe { self.cursor.prev_item() }\n }\n" + ) + , (63209, 1, "") + , (63209, 1, "") + , (63209, 1, "") + , (63209, 1, "") + , (63209, 0, "n") + , (63210, 0, "e") + , (63211, 0, "x") + , (63212, 0, "t") + , (63277, 9, "n") + , (63278, 0, "e") + , (63279, 0, "x") + , (63280, 0, "T") + , (63281, 0, "_") + , (63282, 0, "t") + , (63283, 0, "i") + , (63283, 1, "") + , (63282, 1, "") + , (63281, 1, "") + , (63280, 1, "") + , (63280, 0, "t") + , (63281, 0, "_") + , (63282, 0, "i") + , (63283, 0, "t") + , (63284, 0, "e") + , (63285, 0, "m") + , (63277, 4, "c") + , (63278, 0, "u") + , (63279, 0, "r") + , (63280, 0, "r") + , (63281, 0, "e") + , (63282, 0, "n") + , (63283, 0, "t") + , (63449, 4, "n") + , (63450, 0, "e") + , (63451, 0, "x") + , (63452, 0, "t") + , (63539, 1, "") + , (63538, 1, "") + , (63537, 1, "") + , (63536, 1, "") + , (63536, 0, "n") + , (63537, 0, "e") + , (63538, 0, "x") + , (63539, 0, "t") + , (63543, 27, "") + , (63561, 0, "self.cursor.prev_item_mut()") + , (63588, 30, "") + , (63543, 0, "self.cursor.current_item_mut()") + , (64330, 4, "f") + , (64331, 0, "a") + , (64332, 0, "l") + , (64333, 0, "s") + , (64334, 0, "e") + , (64685, 5, "t") + , (64686, 0, "r") + , (64687, 0, "e") + , (64687, 1, "") + , (64687, 0, "u") + , (64688, 0, "e") + , (63442, 19, "") + , (63423, 0, "p") + , (63424, 0, "r") + , (63425, 0, "e") + , (63426, 0, "v") + , (63427, 0, "_") + , (63512, 64, "") + , (63511, 1, "") + , (63540, 1, "") + , (63539, 1, "") + , (63539, 0, ".") + , (63540, 0, "u") + , (63541, 0, "n") + , (63540, 2, "unwrap()") + , (63540, 6, "e") + , (63541, 0, "x") + , (63542, 0, "p") + , (63543, 0, "e") + , (63544, 0, "c") + , (63545, 0, "t") + , (63547, 0, "\"") + , (63548, 0, "C") + , (63549, 0, "a") + , (63549, 1, "") + , (63548, 1, "") + , (63548, 0, "C") + , (63549, 0, "u") + , (63550, 0, "r") + , (63551, 0, "s") + , (63552, 0, "p") + , (63552, 1, "") + , (63552, 0, "o") + , (63553, 0, "r") + , (63548, 6, "c") + , (63549, 0, "a") + , (63550, 0, "n") + , (63551, 0, "n") + , (63552, 0, "o") + , (63553, 0, "t") + , (63554, 0, " ") + , (63555, 0, "m") + , (63556, 0, "o") + , (63548, 9, "C") + , (63549, 0, "a") + , (63550, 0, "n") + , (63551, 0, "n") + , (63552, 0, "o") + , (63553, 0, "t") + , (63554, 0, " ") + , (63555, 0, "m") + , (63556, 0, "o") + , (63557, 0, "d") + , (63558, 0, "i") + , (63559, 0, "f") + , (63560, 0, "y") + , (63548, 13, "C") + , (63549, 0, "u") + , (63550, 0, "r") + , (63551, 0, "s") + , (63552, 0, "o") + , (63553, 0, "r") + , (63554, 0, " ") + , (63555, 0, "a") + , (63556, 0, "t") + , (63557, 0, " ") + , (63558, 0, "s") + , (63559, 0, "t") + , (63560, 0, "a") + , (63561, 0, "r") + , (63562, 0, "t") + , (63563, 0, " ") + , (63564, 0, "o") + , (63565, 0, "f") + , (63566, 0, " ") + , (63567, 0, "d") + , (63568, 0, "o") + , (63569, 0, "c") + , (63570, 0, "u") + , (63571, 0, "m") + , (63572, 0, "e") + , (63573, 0, "n") + , (63574, 0, "t") + , (63575, 0, ".") + , (63576, 0, " ") + , (63577, 0, "C") + , (63578, 0, "a") + , (63579, 0, "n") + , (63580, 0, "n") + , (63581, 0, "o") + , (63582, 0, "t") + , (63583, 0, " ") + , (63584, 0, "m") + , (63585, 0, "o") + , (63586, 0, "d") + , (63587, 0, "i") + , (63588, 0, "f") + , (63589, 0, "y") + , (63590, 0, " ") + , (63591, 0, "p") + , (63592, 0, "r") + , (63593, 0, "e") + , (63594, 0, "v") + , (63595, 0, ".") + , (63596, 0, "\"") + , (63595, 1, "") + , (64183, 150, "") + , (63406, 6, "p") + , (63407, 0, "u") + , (63408, 0, "b") + , (64389, 42, "") + , (64389, 12, " ") + , (64418, 10, "") + , (64417, 1, "") + , (64426, 9, "") + , (64438, 0, "p") + , (64439, 0, "r") + , (64440, 0, "e") + , (64441, 0, "v") + , (64442, 0, "_") + , (64448, 4, "") + , (64448, 1, "") + , (64448, 1, "") + , (64460, 1, "") + , (64459, 1, "") + , (64486, 0, "p") + , (64487, 0, "r") + , (64488, 0, "e") + , (64489, 0, "v") + , (64490, 0, "_") + , (64565, 9, "") + , (63508, 0, " ") + , (63509, 0, "u") + , (63510, 0, "n") + , (63511, 0, "s") + , (63512, 0, "a") + , (63513, 0, "f") + , (63514, 0, "e") + , (63515, 0, " ") + , (63516, 0, "{") + , (63545, 0, " ") + , (63546, 0, "}") + , (61508, 0, "\n ") + , (61517, 0, "u") + , (61518, 0, "n") + , (61519, 0, "s") + , (61520, 0, "a") + , (61521, 0, "f") + , (61522, 0, "e") + , (61523, 0, " ") + , (61524, 0, "{") + , (62212, 8, " ") + , (62142, 8, " ") + , (62056, 8, " ") + , (62024, 8, " ") + , (61951, 8, " ") + , (61875, 8, " ") + , (61810, 8, " ") + , (61739, 8, " ") + , (61717, 8, " ") + , (61654, 8, " ") + , (61581, 8, " ") + , (61526, 8, " ") + , (62351, 0, "\n ") + , (62352, 12, " }") + , (54918, 0, "m") + , (54919, 0, "u") + , (54920, 0, "t") + , (54921, 0, " ") + , (54666, 1, "") + , (54665, 1, "") + , (54665, 0, "a") + , (54666, 0, "f") + , (54667, 0, "t") + , (54668, 0, "e") + , (54669, 0, "r") + , (54669, 1, "") + , (54668, 1, "") + , (54667, 1, "") + , (54666, 1, "") + , (54665, 1, "") + , (54665, 0, "a") + , (54666, 0, "t") + , (54690, 0, ",") + , (54691, 0, " ") + , (54692, 0, "u") + , (54693, 0, "s") + , (54694, 0, "i") + , (54695, 0, "z") + , (54696, 0, "e") + , (54743, 0, " let (mut edit, offset) = self.edit(userpos);\n") + , (54665, 2, "a") + , (54666, 0, "f") + , (54667, 0, "t") + , (54668, 0, "e") + , (54669, 0, "r") + , (54798, 0, "\n ") + , (54807, 0, "i") + , (54808, 0, "f") + , (54809, 0, " ") + , (54810, 0, "o") + , (54811, 0, "f") + , (54812, 0, "f") + , (54813, 0, "s") + , (54814, 0, "e") + , (54815, 0, "t") + , (54816, 0, " ") + , (54817, 0, "=") + , (54818, 0, "=") + , (54819, 0, " ") + , (54820, 0, "0") + , (54821, 0, " ") + , (54822, 0, "{") + , (54823, 0, " ") + , (54833, 0, "// ") + , (54824, 0, "e") + , (54825, 0, "d") + , (54826, 0, "i") + , (54827, 0, "t") + , (54828, 0, ".") + , (54829, 0, "m") + , (54830, 0, "o") + , (54831, 0, "d") + , (54832, 0, "i") + , (54829, 4, "modify_next_item") + , (54845, 0, "(") + , (54846, 0, "|") + , (54847, 0, "i") + , (54848, 0, "t") + , (54849, 0, "e") + , (54850, 0, "m") + , (54851, 0, "|") + , (54852, 0, " ") + , (54853, 0, "m") + , (54854, 0, "o") + , (54855, 0, "d") + , (54856, 0, "i") + , (54853, 4, "modify_fn") + , (54862, 0, "(") + , (54863, 0, "i") + , (54864, 0, "t") + , (54865, 0, "e") + , (54866, 0, "m") + , (54867, 0, ",") + , (54868, 0, " ") + , (54869, 0, "o") + , (54870, 0, "f") + , (54871, 0, "f") + , (54872, 0, "s") + , (54873, 0, "e") + , (54874, 0, "t") + , (54875, 0, ")") + , (54876, 0, ")") + , (54877, 0, " ") + , (54878, 0, "}") + , (54879, 0, "\n ") + , (54888, 0, "e") + , (54889, 0, "l") + , (54890, 0, "s") + , (54891, 0, "e") + , (54892, 0, " ") + , (54893, 0, "{") + , (54894, 0, "\n ") + , (54907, 0, "\n ") + , (54895, 12, "") + , (54896, 12, " }") + , (54895, 0, " ") + , (64594, 1, "") + , (54895, 12, "") + , (64582, 1, "") + , (64582, 1, "") + , (64582, 1, "") + , (64582, 0, "c") + , (64583, 0, "u") + , (64584, 0, "r") + , (64585, 0, "r") + , (64586, 0, "e") + , (64587, 0, "n") + , (64588, 0, "t") + , (64582, 7, "") + , (64582, 0, "next") + , (54895, 0, " ") + , (64594, 4, "") + , (54895, 12, "") + , (64582, 0, "current") + , (54836, 4, "c") + , (54837, 0, "u") + , (54838, 0, "r") + , (54839, 0, "r") + , (54840, 0, "e") + , (54841, 0, "n") + , (54842, 0, "t") + , (54883, 25, "") + , (54882, 1, "") + , (54881, 1, "") + , (54880, 1, "") + , (54807, 17, "") + , (54864, 66, "") + , (63253, 4, "c") + , (63254, 0, "u") + , (63255, 0, "r") + , (63256, 0, "r") + , (63257, 0, "e") + , (63258, 0, "n") + , (63259, 0, "t") + , (63324, 1, "") + , (63324, 1, "") + , (63324, 1, "") + , (63324, 1, "") + , (63324, 0, "c") + , (63325, 0, "u") + , (63326, 0, "r") + , (63327, 0, "r") + , (63328, 0, "e") + , (63329, 0, "n") + , (63330, 0, "t") + , (63324, 7, "") + , (63324, 0, "prev") + , (63253, 7, "prev") + , ( 54864 + , 0 + , " // self.edit_between(userpos).modify_next_item(modify_fn)\n" + ) + , (54864, 66, "") + , (63253, 4, "current") + , (63253, 7, "prev") + , (63353, 4, "c") + , (63354, 0, "u") + , (63355, 0, "r") + , (63356, 0, "r") + , (63357, 0, "e") + , (63358, 0, "n") + , (63359, 0, "t") + , (2236, 0, "\n") + , (2237, 0, "\n") + , (2237, 1, "") + , (2236, 1, "") + , (3161, 0, "\n") + , (3162, 0, "\n") + , (3163, 0, "p") + , (3164, 0, "u") + , (3165, 0, "b") + , (3166, 0, " ") + , (3167, 0, "t") + , (3168, 0, "r") + , (3169, 0, "a") + , (3170, 0, "i") + , (3171, 0, "t") + , (3172, 0, " ") + , (3173, 0, "N") + , (3174, 0, "o") + , (3175, 0, "t") + , (3176, 0, "i") + , (3177, 0, "f") + , (3178, 0, "y") + , (3178, 1, "") + , (3178, 0, "i") + , (3179, 0, "e") + , (3180, 0, "d") + , (3180, 1, "") + , (3179, 1, "") + , (3178, 1, "") + , (3178, 0, "y") + , (3179, 0, " ") + , (3180, 0, "{") + , (3181, 0, "\n ") + , (3182, 4, "}") + , (3181, 0, "\n ") + , (3186, 0, "f") + , (3187, 0, "n") + , (3188, 0, " ") + , (3189, 0, "u") + , (3190, 0, "s") + , (3191, 0, "e") + , (3192, 0, "d") + , (3189, 0, "i") + , (3190, 0, "s") + , (3191, 0, "_") + , (3189, 0, "n") + , (3190, 0, "o") + , (3191, 0, "f") + , (3192, 0, "i") + , (3192, 1, "") + , (3191, 1, "") + , (3191, 0, "t") + , (3192, 0, "i") + , (3193, 0, "f") + , (3194, 0, "i") + , (3195, 0, "c") + , (3196, 0, "a") + , (3197, 0, "t") + , (3198, 0, "i") + , (3199, 0, "o") + , (3200, 0, "n") + , (3201, 0, "_") + , (3178, 1, "") + , (3177, 1, "") + , (3177, 0, "f") + , (3178, 0, "i") + , (3179, 0, "c") + , (3180, 0, "a") + , (3181, 0, "t") + , (3182, 0, "i") + , (3183, 0, "o") + , (3184, 0, "n") + , (3185, 0, "T") + , (3186, 0, "a") + , (3187, 0, "r") + , (3188, 0, "g") + , (3189, 0, "e") + , (3190, 0, "t") + , (3213, 0, "s") + , (3214, 1, "") + , (3214, 1, "") + , (3214, 1, "") + , (3219, 0, " ") + , (3220, 0, "-") + , (3220, 1, "") + , (3219, 1, "") + , (3219, 0, "(") + , (3220, 0, ")") + , (3221, 0, " ") + , (3222, 0, "-") + , (3223, 0, ">") + , (3224, 0, " ") + , (3225, 0, "b") + , (3226, 0, "o") + , (3227, 0, "o") + , (3228, 0, "l") + , (3229, 0, " ") + , (3230, 0, "{") + , (3231, 0, " ") + , (3232, 0, "t") + , (3233, 0, "r") + , (3234, 0, "u") + , (3235, 0, "e") + , (3236, 0, " ") + , (3237, 0, "}") + , (3238, 0, "\n ") + , (3243, 0, "\n ") + , (3239, 4, "") + , (3240, 4, "") + , (3193, 0, "\n ") + , (3198, 0, "/") + , (3199, 0, "/") + , (3200, 0, " ") + , (3201, 0, "F") + , (3202, 0, "o") + , (3203, 0, "r") + , (3204, 0, " ") + , (3201, 4, "T") + , (3202, 0, "u") + , (3203, 0, " ") + , (3203, 1, "") + , (3202, 1, "") + , (3202, 0, "o") + , (3203, 0, " ") + , (3204, 0, "t") + , (3205, 0, "u") + , (3206, 0, "r") + , (3207, 0, "n") + , (3208, 0, " ") + , (3209, 0, "o") + , (3210, 0, "f") + , (3211, 0, "f") + , (3212, 0, " ") + , (3213, 0, "s") + , (3214, 0, "o") + , (3215, 0, "m") + , (3216, 0, "e") + , (3217, 0, " ") + , (3218, 0, "c") + , (3219, 0, "o") + , (3220, 0, "m") + , (3221, 0, "p") + , (3222, 0, "l") + , (3223, 0, "i") + , (3224, 0, "e") + , (3225, 0, "r") + , (3226, 0, " ") + , (3227, 0, "i") + , (3228, 0, "n") + , (3218, 11, "i") + , (3219, 0, "n") + , (3220, 0, "f") + , (3221, 0, "r") + , (3222, 0, "a") + , (3223, 0, "s") + , (3218, 6, "b") + , (3219, 0, "o") + , (3220, 0, "o") + , (3221, 0, "k") + , (3222, 0, "k") + , (3223, 0, "e") + , (3224, 0, "e") + , (3225, 0, "p") + , (3226, 0, "i") + , (3227, 0, "n") + , (3228, 0, "g") + , (3229, 0, ".") + , (3230, 0, " ") + , (3231, 0, "T") + , (3232, 0, "h") + , (3233, 0, "e") + , (3234, 0, " ") + , (3235, 0, "o") + , (3236, 0, "p") + , (3237, 0, "t") + , (3238, 0, "i") + , (3239, 0, "m") + , (3240, 0, "i") + , (3241, 0, "e") + , (3242, 0, "r") + , (3242, 1, "") + , (3241, 1, "") + , (3241, 0, "z") + , (3242, 0, "e") + , (3243, 0, "r") + , (3244, 0, " ") + , (3245, 0, "w") + , (3246, 0, "i") + , (3247, 0, "l") + , (3248, 0, "l") + , (3249, 0, " ") + , (3250, 0, "i") + , (3251, 0, "n") + , (3252, 0, "l") + , (3253, 0, "i") + , (3254, 0, "n") + , (3255, 0, "e") + , (3256, 0, " ") + , (3257, 0, "t") + , (3258, 0, "h") + , (3259, 0, "i") + , (3260, 0, "s") + , (3212, 5, " ") + , (3212, 1, "") + , (3224, 0, " ") + , (3225, 0, "r") + , (3226, 0, "e") + , (3227, 0, "l") + , (3228, 0, "a") + , (3229, 0, "t") + , (3230, 0, "e") + , (3231, 0, "d") + , (3232, 0, " ") + , (3233, 0, "t") + , (3234, 0, "o") + , (3235, 0, " ") + , (3236, 0, "l") + , (3236, 1, "") + , (3236, 0, "q") + , (3237, 0, "u") + , (3238, 0, "e") + , (3239, 0, "r") + , (3240, 0, "y") + , (3241, 0, " ") + , (3242, 0, "l") + , (3243, 0, "o") + , (3244, 0, "o") + , (3245, 0, "k") + , (3246, 0, "u") + , (3247, 0, "p") + , (3248, 0, "s") + , (3198, 0, "/") + , (3236, 0, " ") + , (3237, 0, "I") + , (3238, 0, "t") + , (3239, 0, "e") + , (3240, 0, "m") + , (3241, 0, "M") + , (3242, 0, "a") + , (3243, 0, "r") + , (3244, 0, "k") + , (3245, 0, "e") + , (3246, 0, "r") + , ( 3194 + , 99 + , " /// To turn off bookkeeping related to ItemMarker query lookups. The\n /// optimizer will inline this" + ) + , (3306, 0, "c") + , (3307, 0, "o") + , (3308, 0, "n") + , (3309, 0, "s") + , (3310, 0, "t") + , (3311, 0, " ") + , (3311, 1, "") + , (3311, 0, " ") + , (3306, 6, "") + , (3348, 0, " ") + , (3348, 4, "") + , (3045, 110, "") + , ( 3238 + , 0 + , " // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {\n // }\n" + ) + , (3347, 1, "") + , (3343, 3, "") + , (3242, 3, "") + , (3263, 1, "") + , (3081, 0, "<") + , (3082, 0, "I") + , (3083, 0, "t") + , (3084, 0, "e") + , (3085, 0, "m") + , (3086, 0, ">") + , (3278, 6, "") + , (3082, 4, "C") + , (3083, 0, ":") + , (3084, 0, " ") + , (3085, 0, "L") + , (3086, 0, "i") + , (3087, 0, "s") + , (3088, 0, "t") + , (3089, 0, "o") + , (3085, 5, "ListConfig") + , (3287, 0, "C") + , (3288, 0, ":") + , (3289, 0, ":") + , (3297, 1, "") + , (3319, 4, "C") + , (3323, 25, "") + , (3323, 0, ";") + , (3323, 1, "") + , (3322, 1, "") + , (3322, 0, ";") + , (22222, 0, "N") + , (22223, 0, "o") + , (22224, 0, "f") + , (22225, 0, "i") + , (22225, 1, "") + , (22224, 1, "") + , (22224, 0, "t") + , (22225, 0, "i") + , (22226, 0, "f") + , (22227, 0, "y") + , (22230, 0, ",") + , (22231, 0, " ") + , (22232, 0, "N") + , (22233, 0, ":") + , (22234, 0, " ") + , (22235, 0, "N") + , (22236, 0, "o") + , (22237, 0, "t") + , (22238, 0, "i") + , (22235, 4, "NotificationTarget") + , (22233, 20, "") + , (22212, 0, ",") + , (22213, 0, " ") + , (22214, 0, ": NotificationTarget") + , (22214, 0, "N") + , (22235, 0, "<") + , (22236, 0, "C") + , (22237, 0, ">") + , (22248, 6, "") + , (7554, 0, ",") + , (7555, 0, " ") + , (7556, 0, "N") + , (7557, 0, ":") + , (7558, 0, " ") + , (7559, 0, "N") + , (7560, 0, "o") + , (7561, 0, "t") + , (7562, 0, "i") + , (7559, 4, "NotificationTarget") + , (7540, 0, "N") + , (7541, 0, "o") + , (7542, 0, "f") + , (7543, 0, "i") + , (7544, 0, "y") + , (7544, 1, "") + , (7543, 1, "") + , (7542, 1, "") + , (7542, 0, "t") + , (7543, 0, "i") + , (7544, 0, "f") + , (7545, 0, "y") + , (7583, 0, "<") + , (7584, 0, "C") + , (7585, 0, ">") + , (7560, 26, "") + , (7545, 1, "") + , (7544, 1, "") + , (7543, 1, "") + , (7542, 1, "") + , (7541, 1, "") + , (7540, 1, "") + , (22252, 1, "") + , (22251, 1, "") + , (22250, 1, "") + , (22250, 0, ", N") + , (7540, 0, "Notify") + , (7560, 0, ", N: NotificationTarget") + , (9373, 0, "\n ") + , (9378, 0, "\n ") + , (9374, 4, "") + , (9379, 0, "_") + , (9380, 0, "p") + , (9381, 0, "h") + , (9382, 0, "a") + , (9383, 0, "n") + , (9384, 0, "t") + , (9385, 0, "o") + , (9386, 0, "m") + , (9387, 0, ":") + , (9388, 0, " ") + , (9389, 0, "P") + , (9390, 0, "h") + , (9391, 0, "a") + , (9392, 0, "n") + , (9389, 4, "PhantomData") + , (9400, 0, "<") + , (9401, 0, "N") + , (9402, 0, ">") + , (22302, 8, "SkipListNotify") + , (22368, 0, "N") + , (22369, 0, "o") + , (22370, 0, "f") + , (22371, 0, "i") + , (22372, 0, "y") + , (22372, 1, "") + , (22371, 1, "") + , (22370, 1, "") + , (22370, 0, "t") + , (22371, 0, "i") + , (22372, 0, "f") + , (22373, 0, "y") + , (22378, 0, ",") + , (22379, 0, " ") + , (22380, 0, "N") + , (22773, 0, "\n ") + , (22786, 0, "_") + , (22787, 0, "m") + , (22788, 0, "a") + , (22789, 0, "r") + , (22790, 0, "k") + , (22791, 0, "e") + , (22792, 0, "r") + , (22793, 0, ":") + , (22794, 0, " ") + , (22795, 0, "P") + , (22796, 0, "h") + , (22797, 0, "a") + , (22798, 0, "n") + , (22795, 4, "PhantomData") + , (22787, 6, "p") + , (22788, 0, "h") + , (22789, 0, "a") + , (22790, 0, "n") + , (22791, 0, "t") + , (22792, 0, "o") + , (22793, 0, "m") + , (56606, 0, "// ") + , (56547, 0, "// ") + , (56480, 0, "// ") + , (56357, 0, "// ") + , (56017, 0, " ") + , (56018, 0, "n") + , (56019, 0, "o") + , (56020, 0, "t") + , (56021, 0, "i") + , (56022, 0, "f") + , (56023, 0, "y") + , (56024, 0, "_") + , (56025, 0, "t") + , (56026, 0, "a") + , (56027, 0, "r") + , (56028, 0, "g") + , (56029, 0, "e") + , (56030, 0, "t") + , (56017, 14, "") + , (55981, 0, "\n ") + , (55986, 0, "\n ") + , (55982, 4, "") + , (55987, 0, "p") + , (55988, 0, "u") + , (55989, 0, " ") + , (55990, 0, "b") + , (55990, 1, "") + , (55989, 1, "") + , (55989, 0, "b") + , (55990, 0, " ") + , (55991, 0, "f") + , (55992, 0, "n") + , (55993, 0, " ") + , (55983, 11, "") + , (55982, 1, "") + , (55981, 1, "") + , (56352, 0, "\n ") + , (56357, 0, "p") + , (56358, 0, "u") + , (56359, 0, "b") + , (56360, 0, " ") + , (56361, 0, "f") + , (56362, 0, "n") + , (56363, 0, " ") + , (56364, 0, "e") + , (56365, 0, "d") + , (56366, 0, "i") + , (56367, 0, "t") + , (56368, 0, "_") + , (56369, 0, "n") + , (56370, 0, "o") + , (56371, 0, "t") + , (56372, 0, "i") + , (56373, 0, "f") + , (56374, 0, "y") + , (56375, 0, "(") + , (56375, 1, "") + , (56375, 0, "<") + , (56375, 1, "") + , (56375, 0, "(") + , (56376, 0, "&") + , (56377, 0, "m") + , (56378, 0, "u") + , (56379, 0, "t") + , (56380, 0, " ") + , (56381, 0, "s") + , (56382, 0, "e") + , (56383, 0, "l") + , (56384, 0, "f") + , (56385, 0, ",") + , (56386, 0, " ") + , (56387, 0, "u") + , (56388, 0, "s") + , (56389, 0, "e") + , (56390, 0, "r") + , (56391, 0, "p") + , (56392, 0, "o") + , (56393, 0, "s") + , (56394, 0, ":") + , (56395, 0, " ") + , (56396, 0, "u") + , (56397, 0, "s") + , (56398, 0, "i") + , (56399, 0, "z") + , (56400, 0, "e") + , (56401, 0, ",") + , (56402, 0, " ") + , (56402, 1, "") + , (56401, 1, "") + , (56401, 0, ")") + , (56402, 0, " ") + , (56403, 0, "{") + , (56404, 0, "\n ") + , (56413, 0, "\n ") + , (56405, 8, "") + , (56406, 8, " }") + , (56405, 0, " ") + , (56405, 8, "") + , (56401, 0, ",") + , (56402, 0, " ") + , (56403, 0, "n") + , (56404, 0, "o") + , (56405, 0, "t") + , (56406, 0, "i") + , (56407, 0, "f") + , (56408, 0, "y") + , (56409, 0, "_") + , (56410, 0, "t") + , (56411, 0, "a") + , (56412, 0, "r") + , (56413, 0, "g") + , (56414, 0, "e") + , (56415, 0, "t") + , (56416, 0, ":") + , (56417, 0, " ") + , (56418, 0, "N") + , (56419, 0, ":") + , (56420, 0, ":") + , (56420, 1, "") + , (56419, 1, "") + , (56418, 0, "&") + , (56419, 0, "m") + , (56420, 0, "u") + , (56421, 0, "t") + , (56422, 0, " ") + , (56428, 0, " ") + , (56436, 0, "a") + , (56437, 0, "s") + , (56438, 0, "s") + , (56439, 0, "e") + , (56440, 0, "r") + , (56441, 0, "t") + , (56442, 0, "!") + , (56443, 0, "(") + , (56444, 0, "N") + , (56445, 0, ":") + , (56446, 0, ":") + , (56447, 0, "notifications_used()") + , (56467, 0, ")") + , (56468, 0, ";") + , (55899, 0, "\n ") + , (55908, 0, "assert!(N::notifications_used());") + , (55916, 0, "!") + , (56513, 4, "\n ") + , ( 56513 + , 0 + , " // let (cursor, item_offset) = self.iter_at_userpos(userpos);\n // (Edit { list: self, cursor, notify }, item_offset)\n" + ) + , (56644, 1, "") + , (56587, 3, "") + , (56517, 3, "") + , (56622, 0, "_") + , (56623, 0, "t") + , (56624, 0, "a") + , (56625, 0, "r") + , (56626, 0, "g") + , (56627, 0, "e") + , (56628, 0, "t") + , (60297, 5, "") + , (60299, 32, "") + , (60299, 0, "N") + , (60300, 0, "o") + , (60301, 0, "t") + , (60302, 0, "i") + , (60299, 4, "NotificationTarget") + , (60317, 0, "<") + , (60318, 0, "C") + , (60319, 0, ">") + , (60352, 0, ",") + , (60353, 0, " ") + , (60354, 0, "N") + , (60342, 8, "SkipListNotify") + , (60459, 6, "&") + , (60460, 0, "m") + , (60461, 0, "u") + , (60462, 0, "t") + , (60463, 0, " ") + , (60464, 0, "N") + , (60280, 0, " ") + , (60281, 0, "'") + , (60282, 0, "b") + , (60283, 0, ":") + , (60284, 0, " ") + , (60285, 0, "'") + , (60286, 0, "a") + , (60467, 0, "'") + , (60468, 0, "b") + , (60469, 0, " ") + , (60287, 0, ",") + , (60286, 1, "") + , (60285, 1, "") + , (60284, 1, "") + , (60283, 1, "") + , (60283, 0, ": 'a") + , (60344, 1, "") + , (60344, 0, "b") + , (60469, 1, "") + , (60469, 0, "a") + , (60286, 1, "") + , (60285, 1, "") + , (60284, 1, "") + , (60283, 1, "") + , (60282, 1, "") + , (60281, 1, "") + , (60280, 1, "") + , (60279, 1, "") + , (60336, 1, "") + , (60336, 0, "a") + , (60468, 0, ",") + , (60778, 56, "<'a, C: ListConfig, N: NotificationTarget>") + , (64788, 1, "") + , (64799, 1, "") + , (64799, 0, ".") + , (64800, 0, "n") + , (64801, 0, "o") + , (64802, 0, "t") + , (64803, 0, "i") + , (64800, 4, "notify(items: &[C::Item], at_marker: ItemMarker)") + , (64807, 44, "") + , (64806, 1, "") + , (38784, 6, "N") + , (42261, 0, ".") + , (42262, 0, "n") + , (42263, 0, "o") + , (42264, 0, "t") + , (42265, 0, "i") + , (42266, 0, "f") + , (42267, 0, "y") + , (34835, 6, "M") + , (34835, 1, "") + , (34835, 0, "N") + , (38455, 0, ".") + , (38456, 0, "n") + , (38457, 0, "o") + , (38458, 0, "t") + , (38459, 0, "i") + , (38460, 0, "f") + , (38461, 0, "y") + , (34856, 42, "") + , (38765, 42, "") + , (38667, 8, "") + , (34721, 8, "") + , (51080, 42, "") + , (51054, 6, "N") + , (53256, 1, ".") + , (53256, 1, "") + , (53256, 0, "y") + , (53257, 0, ".") + , (53258, 0, "n") + , (53259, 0, "o") + , (53260, 0, "t") + , (53261, 0, "i") + , (53262, 0, "f") + , (53263, 0, "y") + , (53911, 50, "") + , (53910, 1, "") + , (53903, 6, "N") + , (53828, 6, "") + , (53828, 1, "") + , (53827, 1, "") + , (50943, 8, "") + , (56260, 0, " -> (Edit, usize)") + , (56431, 0, "n") + , (56432, 0, "o") + , (56433, 0, "t") + , (56434, 0, "i") + , (56435, 0, "f") + , (56436, 0, "y") + , (56437, 0, ":") + , (56438, 0, " ") + , (56210, 0, "<") + , (56211, 0, "'") + , (56212, 0, "a") + , (56213, 0, ",") + , (56214, 0, " ") + , (56215, 0, "'") + , (56216, 0, "b") + , (56217, 0, ":") + , (56218, 0, " ") + , (56219, 0, "'") + , (56220, 0, "a") + , (56221, 0, ">") + , (56224, 0, "'") + , (56225, 0, "b") + , (56226, 0, " ") + , (56269, 0, "'") + , (56270, 0, "a") + , (56271, 0, " ") + , (56213, 8, "") + , (56217, 1, "") + , (56217, 0, "a") + , (3325, 0, "\n") + , (3326, 0, "\n") + , (3327, 0, "p") + , (3328, 0, "u") + , (3329, 0, "b") + , (3330, 0, " ") + , (3331, 0, "t") + , (3332, 0, "r") + , (3333, 0, "a") + , (3334, 0, "i") + , (3335, 0, "t") + , (3336, 0, " ") + , (3337, 0, "N") + , (3338, 0, "o") + , (3339, 0, "N") + , (3340, 0, "o") + , (3327, 4, "") + , (3326, 0, "\n") + , (3327, 0, "s") + , (3328, 0, "t") + , (3329, 0, "r") + , (3330, 0, "u") + , (3331, 0, "c") + , (3332, 0, "t") + , (3333, 0, " ") + , (3334, 0, "N") + , (3335, 0, "o") + , (3335, 1, "") + , (3335, 0, "u") + , (3336, 0, "l") + , (3337, 0, "l") + , (3338, 0, "N") + , (3339, 0, "o") + , (3340, 0, "t") + , (3341, 0, "i") + , (3342, 0, "f") + , (3343, 0, "i") + , (3344, 0, "c") + , (3345, 0, "a") + , (3346, 0, "t") + , (3347, 0, "i") + , (3348, 0, "o") + , (3349, 0, "n") + , (3335, 1, "") + , (3335, 1, "") + , (3335, 1, "") + , (3335, 0, "o") + , (3334, 14, "N") + , (3335, 0, "o") + , (3336, 0, "N") + , (3337, 0, "o") + , (3338, 0, "t") + , (3339, 0, "i") + , (3340, 0, "f") + , (3341, 0, "y") + , (3343, 10, "i") + , (3344, 0, "m") + , (3345, 0, "p") + , (3346, 0, "l") + , (3347, 0, " ") + , (3348, 0, "N") + , (3349, 0, "o") + , (3350, 0, "t") + , (3351, 0, "i") + , (3352, 0, "f") + , (3348, 5, "NotificationTarget") + , (3347, 0, "<") + , (3348, 0, "C") + , (3349, 0, ">") + , (3349, 0, ":") + , (3350, 0, " ") + , (3351, 0, "L") + , (3352, 0, "i") + , (3353, 0, "s") + , (3354, 0, "t") + , (3351, 4, "ListConfig") + , (3381, 0, "<") + , (3382, 0, "C") + , (3383, 0, ">") + , (3384, 0, " ") + , (3385, 0, "f") + , (3386, 0, "o") + , (3387, 0, "r") + , (3388, 0, " ") + , (3389, 0, "N") + , (3390, 0, "o") + , (3391, 0, "N") + , (3392, 0, "o") + , (3389, 4, "NoNotify") + , (3397, 0, " ") + , (3398, 0, "{") + , (3399, 0, "\n ") + , (3404, 0, "\n ") + , (3400, 4, "") + , (3401, 4, "}") + , (3400, 0, " ") + , (3404, 0, "f") + , (3405, 0, "n") + , (3406, 0, " ") + , (3407, 0, "n") + , (3408, 0, "o") + , (3409, 0, "t") + , (3410, 0, "i") + , (3411, 0, "f") + , (3412, 0, "i") + , (3407, 6, "notifications_used") + , (3425, 0, "(") + , (3426, 0, ")") + , (3427, 0, " ") + , (3428, 0, "-") + , (3429, 0, ">") + , (3430, 0, " ") + , (3431, 0, "b") + , (3432, 0, "o") + , (3433, 0, "o") + , (3434, 0, "l") + , (3435, 0, " ") + , (3436, 0, "{") + , (3437, 0, " ") + , (3438, 0, "f") + , (3439, 0, "a") + , (3440, 0, "l") + , (3441, 0, "s") + , (3442, 0, "e") + , (3443, 0, " ") + , (3444, 0, "}") + , (3445, 0, "\n ") + , ( 3450 + , 0 + , "fn notify(&mut self, items: &[C::Item], at_marker: ItemMarker);" + ) + , (3342, 0, ";") + , (3516, 1, "") + , (3516, 0, " ") + , (3517, 0, "{") + , (3518, 0, "}") + , (20130, 0, ",") + , (20131, 0, " ") + , (20132, 0, "N") + , (20133, 0, ":") + , (20134, 0, " ") + , (20135, 0, "N") + , (20136, 0, "o") + , (20137, 0, "t") + , (20138, 0, "i") + , (20139, 0, "f") + , (20135, 5, "NotificationTarget") + , (20153, 0, "<") + , (20154, 0, "C") + , (20155, 0, ">") + , (20304, 0, ",") + , (20305, 0, " ") + , (20306, 0, "C") + , (20306, 1, "") + , (20306, 0, "N") + , (20294, 8, "SkipListNotify") + , (20312, 1, "") + , (20312, 0, "_") + , (20312, 1, "") + , (20312, 0, "N") + , (20341, 0, ", N: NotificationTarget") + , (20390, 0, ",") + , (20391, 0, " ") + , (20392, 0, "N") + , (21131, 0, ",") + , (21132, 0, " ") + , (21133, 0, ", N: NotificationTarget") + , (21133, 26, "") + , (21132, 1, "") + , (21131, 1, "") + , (21131, 0, ", N: NotificationTarget") + , (21193, 0, ",") + , (21194, 0, " ") + , (21195, 0, "N") + , (45357, 0, ",") + , (45358, 0, " ") + , (45359, 0, "N") + , (3327, 0, "// ") + , (3393, 8, "") + , (3393, 0, "(") + , (3394, 0, ")") + , (3326, 20, "") + , (22587, 0, " ") + , (22588, 0, "=") + , (22589, 0, " ") + , (22590, 0, "(") + , (22591, 0, ")") + , (22589, 3, "") + , (22587, 2, "") + , (22566, 0, " ") + , (22567, 0, "=") + , (22568, 0, " ") + , (22569, 0, "(") + , (22570, 0, ")") + , (22568, 3, "") + , (22566, 2, "") + , (7759, 0, " ") + , (7760, 0, "=") + , (7761, 0, " ") + , (7762, 0, "(") + , (7763, 0, ")") + , (60462, 1, "") + , (22644, 1, "") + , (22586, 1, "") + , (20289, 1, "") + , (7718, 1, "") + , (60457, 1, "") + , (22640, 1, "") + , (22583, 1, "") + , (20287, 1, "") + , (7717, 1, "") + , (60452, 1, "") + , (22636, 1, "") + , (22580, 1, "") + , (20285, 1, "") + , (7716, 1, "") + , (60447, 1, "") + , (22632, 1, "") + , (22577, 1, "") + , (20283, 1, "") + , (7715, 1, "") + , (60442, 1, "") + , (22628, 1, "") + , (22574, 1, "") + , (20281, 1, "") + , (7714, 1, "") + , (60437, 1, "") + , (22624, 1, "") + , (22571, 1, "") + , (20279, 1, "") + , (7713, 1, "") + , (60432, 1, "") + , (22620, 1, "") + , (22568, 1, "") + , (20277, 1, "") + , (7712, 1, "") + , (60428, 0, "t") + , (22617, 0, "t") + , (22566, 0, "t") + , (20276, 0, "t") + , (7712, 0, "t") + , (54461, 69, "") + , (54461, 1906, "") + , (56037, 0, "\n") + , (56038, 0, "i") + , (56039, 0, "m") + , (56040, 0, "p") + , (56041, 0, "l") + , (56042, 0, " ") + , (56042, 1, "") + , (56042, 0, "<") + , (56043, 0, "C") + , (56044, 0, ":") + , (56045, 0, " ") + , (56046, 0, "L") + , (56047, 0, "i") + , (56048, 0, "s") + , (56049, 0, "t") + , (56046, 4, "ListConfig") + , (56056, 0, ">") + , (56057, 0, " ") + , (56058, 0, "S") + , (56059, 0, "k") + , (56060, 0, "i") + , (56058, 3, "SkipList") + , (56066, 0, "<") + , (56067, 0, "C") + , (56068, 0, ",") + , (56069, 0, " ") + , (56070, 0, "(") + , (56071, 0, ")") + , (56071, 1, "") + , (56070, 1, "") + , (56069, 1, "") + , (56068, 1, "") + , (56068, 0, ">") + , (56069, 0, " ") + , (56070, 0, "{") + , (56071, 0, "\n ") + , (56076, 0, "\n ") + , (56072, 4, "") + , (56073, 4, "}") + , ( 56072 + , 0 + , "\n pub fn replace_at>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I) {\n self.edit_between(start_userpos).replace(removed_items, inserted_content);\n }\n\n pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());\n }\n\n pub fn modify_item_after(&mut self, userpos: usize, modify_fn: F) {\n let (mut edit, offset) = self.edit(userpos);\n edit.modify_current_item(|item| modify_fn(item, offset))\n }\n\n pub fn insert_at>(&mut self, userpos: usize, contents: I) {\n let (mut edit, offset) = self.edit(userpos);\n edit.insert_between_iter(offset, contents);\n }\n\n pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {\n self.insert_at(userpos, contents.iter().copied())\n }\n\n pub fn del_at(&mut self, userpos: usize, num_items: usize) {\n self.edit_between(userpos).del(num_items)\n }\n\n pub fn edit(&mut self, userpos: usize) -> (Edit)>, usize) {\n // self.edit_notify(userpos, no_notify_x::, f)\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert!(!N::notifications_used());\n (Edit { list: self, cursor, notify: Self::no_notify }, item_offset)\n }\n\n pub fn edit_between(&mut self, userpos: usize) -> Edit)> {\n // self.edit_notify(userpos, no_notify_x::, f)\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n Edit { list: self, cursor, notify: Self::no_notify }\n }" + ) + , (56071, 1, "") + , (57483, 42, "") + , (57482, 1, "") + , (57628, 37, "") + , (57309, 37, "") + , (57591, 0, "(") + , (57309, 0, "(") + , (57593, 0, ")") + , (57310, 0, ")") + , (60257, 0, "=") + , (60258, 0, " ") + , (60258, 1, "") + , (60257, 1, "") + , (60257, 0, " ") + , (60258, 0, "=") + , (60259, 0, " ") + , (60260, 0, "(") + , (60261, 0, ")") + , (57591, 4, "") + , (57307, 4, "") + , (57848, 0, ")") + , (57833, 0, "(") + , (57503, 0, ")") + , (57488, 0, "(") + , (57836, 15, ")") + , (57489, 15, ")") + , (57823, 1, "") + , (57490, 1, "") + , (57820, 0, "&") + , (57488, 0, "&") + , (57822, 0, "m") + , (57489, 0, "m") + , (57824, 0, "u") + , (57490, 0, "u") + , (57826, 0, "t") + , (57491, 0, "t") + , (57828, 0, " ") + , (57492, 0, " ") + , (58387, 0, ",") + , (58388, 0, " ") + , (58389, 0, "N") + , (58390, 0, ":") + , (58391, 0, " ") + , (58392, 0, "N") + , (58393, 0, "o") + , (58394, 0, "t") + , (58395, 0, "i") + , (58396, 0, "f") + , (58392, 5, "NotificationTarget") + , (58410, 0, "<") + , (58411, 0, "C") + , (58412, 0, ">") + , (58434, 0, ",") + , (58435, 0, " ") + , (58436, 0, "C") + , (58436, 1, "") + , (58436, 0, "N") + , (57845, 32, "impl> ") + , (57845, 46, "impl SkipList ") + , (57845, 20, "impl> ") + , (57901, 0, ",") + , (57902, 0, " ") + , (57903, 0, "N") + , (57849, 41, "") + , (57862, 1, "") + , (57861, 1, "") + , (57860, 1, "") + , (57859, 1, "") + , (57859, 0, "C, N") + , (57849, 0, ">") + , (57863, 26, "") + , (57877, 1, "") + , (57877, 0, "_") + , (57863, 0, ",") + , (57864, 0, " ") + , (57865, 0, "N") + , (57866, 0, ":") + , (57867, 0, " ") + , (57868, 0, "_") + , (57883, 1, "") + , (57883, 0, "N") + , (57883, 1, "") + , (57883, 0, "_") + , (57867, 2, "") + , (57864, 3, "") + , (57863, 1, "") + , (57877, 1, "") + , (57877, 0, "N") + , (57863, 0, ", N: NotificationTarget") + , (58763, 23, "impl> ") + , (58961, 20, "impl> ") + , (58831, 0, ",") + , (58832, 0, " ") + , (58833, 0, "N") + , (59044, 0, ",") + , (59045, 0, " ") + , (59046, 0, "N") + , (59045, 2, "") + , (59044, 1, "") + , (58832, 2, "") + , (58831, 1, "") + , (58961, 46, "impl ") + , (58763, 46, "impl ") + , (58763, 23, "impl> ") + , (58961, 20, "impl> ") + , (58831, 0, ",") + , (58832, 0, " N") + , (59044, 0, ",") + , (59045, 0, " N") + , (58768, 0, "I") + , (58769, 0, ",") + , (58770, 0, " ") + , (58916, 0, ",") + , (58917, 0, " ") + , (58918, 0, "N") + , (60109, 0, ", N: NotificationTarget") + , (60162, 0, ",") + , (60163, 0, " ") + , (60164, 0, "N") + , (56037, 0, "\n") + , (56038, 0, "/") + , (56039, 0, "/") + , (56040, 0, " ") + , (56041, 0, "T") + , (56042, 0, "h") + , (56043, 0, "e") + , (56044, 0, "s") + , (56045, 0, "e") + , (56046, 0, " ") + , (56047, 0, "m") + , (56048, 0, "e") + , (56049, 0, "t") + , (56050, 0, "h") + , (56051, 0, "o") + , (56052, 0, "d") + , (56053, 0, "s") + , (56054, 0, " ") + , (56055, 0, "a") + , (56056, 0, "r") + , (56057, 0, "e") + , (56058, 0, " ") + , (56059, 0, "o") + , (56060, 0, "n") + , (56061, 0, "l") + , (56062, 0, "y") + , (56063, 0, " ") + , (56064, 0, "a") + , (56065, 0, "v") + , (56066, 0, "a") + , (56067, 0, "i") + , (56068, 0, "l") + , (56069, 0, "a") + , (56070, 0, "b") + , (56071, 0, "l") + , (56072, 0, "e") + , (56073, 0, " ") + , (56074, 0, "i") + , (56075, 0, "f") + , (56076, 0, " ") + , (56077, 0, "t") + , (56078, 0, "h") + , (56079, 0, "e") + , (56080, 0, "r") + , (56081, 0, "e") + , (56082, 0, "'") + , (56083, 0, "s") + , (56084, 0, " ") + , (56085, 0, "n") + , (56086, 0, "o") + , (56087, 0, " ") + , (56088, 0, "n") + , (56089, 0, "o") + , (56090, 0, "t") + , (56091, 0, "i") + , (56092, 0, "f") + , (56093, 0, "i") + , (56094, 0, "c") + , (56095, 0, "a") + , (56096, 0, "t") + , (56097, 0, "i") + , (56098, 0, "o") + , (56099, 0, "n") + , (56100, 0, " ") + , (56101, 0, "t") + , (56102, 0, "a") + , (56103, 0, "r") + , (56104, 0, "g") + , (56105, 0, "e") + , (56106, 0, "t") + , (56107, 0, ".") + , (57654, 57, "") + , (57390, 57, "") + , (57596, 1, "") + , (57389, 1, "") + , (23633, 294, "") + , ( 23633 + , 0 + , "\n pub fn new_from_iter>(iter: I) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, iter);\n rope\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n Self::new_from_iter(s.iter().copied())\n }\n" + ) + , (23712, 0, "w") + , (23713, 0, "h") + , (23714, 0, "e") + , (23715, 0, "r") + , (23716, 0, "e") + , (23717, 0, " ") + , (23718, 0, "N") + , (23719, 0, ":") + , (23720, 0, " ") + , (23721, 0, "(") + , (23722, 0, ")") + , (23723, 0, " ") + , (23719, 1, "") + , (23719, 0, " ") + , (23720, 0, "=") + , (23721, 0, "=") + , (23711, 14, "") + , (23634, 293, "") + , (55849, 0, "\n ") + , ( 55854 + , 0 + , " pub fn new_from_iter>(iter: I) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, iter);\n rope\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n Self::new_from_iter(s.iter().copied())\n }\n" + ) + , (55850, 8, " ") + , (56143, 0, "\n ") + , (56144, 4, "") + , (56143, 1, "") + , (58740, 26, "") + , (58766, 1, "") + , (58765, 1, "") + , (58764, 1, "") + , (58845, 1, "") + , (58844, 1, "") + , (58843, 1, "") + , (58718, 0, "\n") + , (58719, 0, "/") + , (58720, 0, "/") + , (58721, 0, " ") + , (58722, 0, "O") + , (58723, 0, "n") + , (58724, 0, "l") + , (58725, 0, "y") + , (58726, 0, " ") + , (58727, 0, "w") + , (58727, 1, "") + , (58727, 0, "i") + , (58728, 0, "f") + , (58729, 0, " ") + , (58730, 0, "t") + , (58731, 0, "h") + , (58732, 0, "e") + , (58733, 0, "r") + , (58734, 0, "e") + , (58735, 0, "'") + , (58736, 0, "s") + , (58737, 0, " ") + , (58738, 0, "n") + , (58739, 0, "o") + , (58740, 0, " ") + , (58741, 0, "n") + , (58742, 0, "o") + , (58743, 0, "t") + , (58744, 0, "i") + , (58745, 0, "f") + , (58746, 0, "i") + , (58747, 0, "c") + , (58748, 0, "a") + , (58749, 0, "t") + , (58750, 0, "i") + , (58751, 0, "o") + , (58752, 0, "n") + , (58753, 0, " ") + , (58754, 0, "t") + , (58755, 0, "a") + , (58756, 0, "r") + , (58757, 0, "g") + , (58758, 0, "e") + , (58759, 0, "t") + , (58760, 0, ".") + , (55743, 0, "\n") + , (55744, 0, "\n") + , (55745, 0, "s") + , (55746, 0, "t") + , (55747, 0, "a") + , (55748, 0, "t") + , (55749, 0, "i") + , (55750, 0, "c") + , (55751, 0, " ") + , (55752, 0, "m") + , (55753, 0, "u") + , (55754, 0, "t") + , (55755, 0, " ") + , (55756, 0, "T") + , (55757, 0, "A") + , (55758, 0, "R") + , (55759, 0, "G") + , (55760, 0, "E") + , (55761, 0, "T") + , (55762, 0, ":") + , (55763, 0, " ") + , (55764, 0, "(") + , (55765, 0, ")") + , (55765, 1, "") + , (55764, 1, "") + , (55763, 1, "") + , (55762, 1, "") + , (55762, 0, " ") + , (55763, 0, "=") + , (55764, 0, " ") + , (55765, 0, "(") + , (55766, 0, ")") + , (55767, 0, ";") + , (55756, 0, "N") + , (55757, 0, "_") + , (55764, 0, ":") + , (55765, 0, " ") + , (55766, 0, "(") + , (55767, 0, ")") + , (57539, 1, "") + , (57538, 1, "") + , (57538, 0, "N") + , (57539, 0, "_") + , (57540, 0, "T") + , (57541, 0, "A") + , (57542, 0, "R") + , (57543, 0, "G") + , (57544, 0, "E") + , (57545, 0, "T") + , (57533, 0, "u") + , (57534, 0, "n") + , (57535, 0, "s") + , (57536, 0, "a") + , (57537, 0, "f") + , (57538, 0, "e") + , (57539, 0, " ") + , (57540, 0, "{") + , (57541, 0, " ") + , (57555, 0, " ") + , (57556, 0, "}") + , (57829, 7, "unsafe { &mut N_TARGET }") + , (57844, 0, "ULL_NOTIFY") + , (57548, 0, "ULL_NOTIFY") + , (55757, 0, "ULL_NOTIFY") + , (2236, 0, "\n") + , (2237, 0, "\n") + , (2238, 0, "i") + , (2239, 0, "m") + , (2240, 0, "p") + , (2241, 0, "l") + , (2242, 0, " ") + , (2243, 0, "D") + , (2244, 0, "e") + , (2245, 0, "f") + , (2246, 0, "a") + , (2247, 0, "u") + , (2248, 0, "l") + , (2249, 0, "t") + , (2250, 0, " ") + , (2251, 0, "f") + , (2252, 0, "o") + , (2253, 0, "r") + , (2254, 0, " ") + , (2255, 0, "I") + , (2256, 0, "t") + , (2257, 0, "e") + , (2258, 0, "m") + , (2259, 0, "M") + , (2255, 5, "ItemMarker") + , (2242, 0, "<") + , (2243, 0, "C") + , (2244, 0, ">") + , (2268, 0, "<") + , (2269, 0, "C") + , (2270, 0, ">") + , (2271, 0, " ") + , (2272, 0, "{") + , (2273, 0, "\n ") + , (2274, 4, "}") + , (2273, 0, "\n ") + , (2278, 0, "f") + , (2279, 0, "n") + , (2280, 0, " ") + , (2281, 0, "d") + , (2282, 0, "e") + , (2283, 0, "f") + , (2281, 3, "default()") + , (2290, 0, " ") + , (2291, 0, "{") + , (2292, 0, " ") + , (2293, 0, "S") + , (2294, 0, "e") + , (2295, 0, "l") + , (2296, 0, "f") + , (2297, 0, ":") + , (2298, 0, ":") + , (2299, 0, "n") + , (2300, 0, "u") + , (2301, 0, "l") + , (2302, 0, "l") + , (2303, 0, "(") + , (2304, 0, ")") + , (2305, 0, " ") + , (2306, 0, "}") + , (2290, 0, " ") + , (2291, 0, "-") + , (2292, 0, ">") + , (2293, 0, " ") + , (2294, 0, "S") + , (2295, 0, "E") + , (2296, 0, "l") + , (2297, 0, "f") + , (2294, 4, "S") + , (2295, 0, "e") + , (2296, 0, "l") + , (2297, 0, "f") + , (2244, 0, ":") + , (2245, 0, " ") + , (2246, 0, "L") + , (2247, 0, "i") + , (2248, 0, "s") + , (2249, 0, "t") + , (2246, 4, "ListConfig") + , ( 55950 + , 0 + , "impl SkipList {\n pub fn new_from_iter>(iter: I) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, iter);\n rope\n }\n\n pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {\n Self::new_from_iter(s.iter().copied())\n }\n\n pub fn replace_at>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I) {\n self.edit_between(start_userpos).replace(removed_items, inserted_content);\n }\n\n pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());\n }\n\n pub fn modify_item_after(&mut self, userpos: usize, modify_fn: F) {\n let (mut edit, offset) = self.edit(userpos);\n edit.modify_current_item(|item| modify_fn(item, offset))\n }\n\n pub fn insert_at>(&mut self, userpos: usize, contents: I) {\n let (mut edit, offset) = self.edit(userpos);\n edit.insert_between_iter(offset, contents);\n }\n\n pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {\n self.insert_at(userpos, contents.iter().copied())\n }\n\n pub fn del_at(&mut self, userpos: usize, num_items: usize) {\n self.edit_between(userpos).del(num_items)\n }\n\n pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)\n }\n\n pub fn edit_between(&mut self, userpos: usize) -> Edit {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }\n }\n}\n" + ) + , (58005, 0, ",") + , (58006, 0, " ") + , (58007, 0, "N") + , (58008, 0, ":") + , (58009, 0, " ") + , (58010, 0, "L") + , (58011, 0, "i") + , (58010, 2, "N") + , (58011, 0, "o") + , (58012, 0, "t") + , (58013, 0, "i") + , (58014, 0, "f") + , (58010, 5, "NotificationTarget") + , (58028, 0, "<") + , (58029, 0, "C") + , (58030, 0, ">") + , (58043, 0, ",") + , (58044, 0, " ") + , (58045, 0, "N") + , (58047, 0, " ") + , (58047, 1, "") + , (58074, 0, "_") + , (58075, 0, "n") + , (58246, 0, "_") + , (58247, 0, "n") + , (58120, 0, ",") + , (58121, 0, " ") + , (58122, 0, "&") + , (58123, 0, "m") + , (58124, 0, "u") + , (58125, 0, "t") + , (58126, 0, " ") + , (58127, 0, "n") + , (58127, 1, "") + , (58127, 0, "N") + , (58122, 0, "n") + , (58123, 0, "o") + , (58124, 0, "t") + , (58125, 0, "i") + , (58126, 0, "f") + , (58127, 0, "y") + , (58128, 0, ":") + , (58129, 0, " ") + , (58278, 0, ",") + , (58279, 0, " ") + , (58280, 0, "n") + , (58281, 0, "o") + , (58282, 0, "t") + , (58283, 0, "i") + , (58284, 0, "f") + , (58285, 0, "y") + , (58286, 0, ":") + , (58287, 0, " ") + , (58288, 0, "&") + , (58289, 0, "m") + , (58290, 0, "u") + , (58291, 0, "t") + , (58292, 0, " ") + , (58293, 0, "n") + , (58293, 1, "") + , (58293, 0, "N") + , (58353, 0, "_") + , (58354, 0, "n") + , (58373, 0, ",") + , (58374, 0, " ") + , (58375, 0, "n") + , (58376, 0, "o") + , (58377, 0, "t") + , (58378, 0, "i") + , (58379, 0, "f") + , (58380, 0, "y") + , (59467, 0, "_") + , (59313, 0, "_") + , (59096, 0, "_") + , (58875, 0, "_") + , (58643, 0, "_") + , (58411, 0, "_") + , (59473, 0, "n") + , (59318, 0, "n") + , (59100, 0, "n") + , (58878, 0, "n") + , (58645, 0, "n") + , (58412, 0, "n") + , (60107, 0, "// ") + , (60027, 0, "// ") + , (59953, 0, "// ") + , (59886, 0, "// ") + , (59822, 0, "// ") + , (59815, 0, "// ") + , (59720, 0, "// ") + , (59653, 0, "// ") + , (59588, 0, "// ") + , (59581, 0, "// ") + , (59531, 0, "// ") + , (59464, 0, "// ") + , (59457, 0, "// ") + , (59399, 0, "// ") + , (59299, 0, "// ") + , (59292, 0, "// ") + , (59240, 0, "// ") + , (59187, 0, "// ") + , (59086, 0, "// ") + , (59079, 0, "// ") + , (59014, 0, "// ") + , (58961, 0, "// ") + , (58855, 0, "// ") + , (58848, 0, "// ") + , (58759, 0, "// ") + , (58622, 0, "// ") + , (59322, 3, "") + , (59267, 3, "") + , (59211, 3, "") + , (59107, 3, "") + , (59200, 0, ",") + , (59201, 0, " ") + , (59202, 0, "N") + , (59202, 1, "") + , (59202, 0, "n") + , (59203, 0, "o") + , (59204, 0, "t") + , (59205, 0, "i") + , (59206, 0, "f") + , (59207, 0, "y") + , (59208, 0, ":") + , (59209, 0, " ") + , (59210, 0, "&") + , (59211, 0, "m") + , (59212, 0, "u") + , (59213, 0, "t") + , (59214, 0, " ") + , (59215, 0, "N") + , (54280, 5, "") + , (54262, 292, "") + , (54263, 267, "") + , (54262, 1, "") + , (57421, 0, "\n") + , (59626, 0, "\n ") + , ( 59631 + , 0 + , "\n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {\n assert!(N::notifications_used());\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify: notify_target }, item_offset)\n }" + ) + , (59627, 4, "") + , (58698, 0, "_") + , (58699, 0, "n") + , (58708, 0, ",") + , (58709, 0, " ") + , (58710, 0, "n") + , (58711, 0, "o") + , (58712, 0, "t") + , (58713, 0, "i") + , (58714, 0, "f") + , (58715, 0, "y") + , (59084, 245, "") + , (59083, 1, "") + , (59391, 292, "") + , (57824, 0, "\n ") + , ( 57829 + , 0 + , "\n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {\n assert!(N::notifications_used());\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify: notify_target }, item_offset)\n }" + ) + , (57825, 4, "") + , (56893, 526, "") + , ( 55711 + , 0 + , "\n\n pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)\n }\n\n pub fn edit_between(&mut self, userpos: usize) -> Edit {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }\n }" + ) + , (59376, 307, "") + , ( 58117 + , 0 + , "\n\n // pub fn edit_between(&mut self, userpos: usize) -> Edit {\n // let (cursor, item_offset) = self.iter_at_userpos(userpos);\n // assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n // Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }\n // }" + ) + , (58420, 3, "") + , (58337, 3, "") + , (58260, 3, "") + , (58190, 3, "") + , (58123, 3, "") + , (58142, 0, "_") + , (58143, 0, "n") + , (58170, 0, ",") + , (58171, 0, " ") + , (58172, 0, "n") + , (58173, 0, "o") + , (58174, 0, "t") + , (58175, 0, "i") + , (58176, 0, "f") + , (58177, 0, "y") + , (58178, 0, ":") + , (58179, 0, " ") + , (58180, 0, "&") + , (58181, 0, "m") + , (58182, 0, "u") + , (58183, 0, "t") + , (58184, 0, " ") + , (58185, 0, "N") + , (58383, 36, "") + , (58080, 15, "") + , (57890, 1, "") + , (57889, 1, "") + , (57888, 1, "") + , (57887, 1, "") + , (57886, 1, "") + , (57885, 1, "") + , (57884, 1, "") + , (57884, 0, "_target") + , (57884, 7, "") + , (58175, 0, ",") + , (58176, 0, " ") + , (58177, 0, "N") + , (58159, 0, "'") + , (58160, 0, " ") + , (58160, 1, "") + , (58160, 0, "a") + , (58161, 0, " ") + , (58122, 0, "<") + , (58123, 0, "'") + , (58124, 0, "a") + , (58125, 0, ">") + , (58128, 0, "'") + , (58129, 0, "a") + , (58130, 0, " ") + , (58547, 0, "_") + , (58548, 0, "n") + , (58563, 0, ",") + , (58564, 0, " ") + , (58565, 0, "n") + , (58566, 0, "o") + , (58567, 0, "t") + , (58568, 0, "i") + , (58569, 0, "f") + , (58570, 0, "y") + , (58518, 0, ",") + , (58519, 0, " ") + , (58520, 0, "n") + , (58521, 0, "o") + , (58522, 0, "t") + , (58523, 0, "i") + , (58524, 0, "f") + , (58525, 0, "y") + , (58526, 0, ":") + , (58527, 0, " ") + , (58528, 0, "&") + , (58529, 0, "m") + , (58530, 0, "u") + , (58531, 0, "t") + , (58532, 0, " ") + , (58533, 0, "N") + , (59530, 3, "") + , (59469, 3, "") + , (59366, 3, "") + , (59438, 0, ",") + , (59439, 0, " ") + , (59440, 0, "n") + , (59441, 0, "o") + , (59442, 0, "t") + , (59443, 0, "i") + , (59444, 0, "f") + , (59445, 0, "y") + , (59446, 0, "&") + , (59446, 1, "") + , (59446, 0, ":") + , (59447, 0, " ") + , (59448, 0, "&") + , (59449, 0, "n") + , (59449, 1, "") + , (59449, 0, "m") + , (59450, 0, "u") + , (59451, 0, "t") + , (59452, 0, " ") + , (59453, 0, "N") + , (59500, 0, "_") + , (59501, 0, "n") + , (59536, 0, ",") + , (59537, 0, " ") + , (59538, 0, "n") + , (59539, 0, "o") + , (59540, 0, "t") + , (59541, 0, "i") + , (59542, 0, "f") + , (59543, 0, "y") + , (57486, 2199, "") + , (55269, 0, "\n ") + , (55274, 0, "\n ") + , (55270, 4, "") + , (55275, 0, "\n ") + , (55271, 4, "") + , (55276, 0, "\n ") + , (55272, 4, "") + , ( 55277 + , 0 + , " pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {\n let mut rope = Self::new();\n rope.insert_at(0, iter);\n rope\n }\n\n pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {\n Self::new_from_iter_n(s.iter().copied(), notify)\n }\n\n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {\n assert!(N::notifications_used());\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify }, item_offset)\n }\n\n pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> Edit {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n Edit { list: self, cursor, notify }\n }\n\n pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {\n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);\n }\n\n // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());\n // }\n\n // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {\n // let (mut edit, offset) = self.edit(userpos);\n // edit.modify_current_item(|item| modify_fn(item, offset))\n // }\n\n pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {\n let (mut edit, offset) = self.edit_n(userpos, notify);\n edit.insert_between_iter(offset, contents);\n }\n\n pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {\n self.insert_at_n(userpos, contents.iter().copied(), notify)\n }\n\n // pub fn del_at_n(&mut self, userpos: usize, num_items: usize) {\n // self.edit_between(userpos).del(num_items)\n // }\n" + ) + , (55273, 8, " ") + , (55429, 0, "_") + , (55430, 0, "n") + , (55439, 0, ",") + , (55440, 0, " ") + , (55441, 0, "n") + , (55442, 0, "o") + , (55443, 0, "t") + , (55444, 0, "i") + , (55445, 0, "f") + , (55446, 0, "y") + , (55272, 2210, "") + , (55271, 1, "") + , (55270, 1, "") + , (55269, 1, "") + , ( 57486 + , 0 + , "\n pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {\n let mut rope = Self::new();\n rope.insert_at_n(0, iter, notify);\n rope\n }\n\n pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {\n Self::new_from_iter_n(s.iter().copied(), notify)\n }\n\n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {\n assert!(N::notifications_used());\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n (Edit { list: self, cursor, notify }, item_offset)\n }\n\n pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> Edit {\n let (cursor, item_offset) = self.iter_at_userpos(userpos);\n assert_eq!(item_offset, 0, \"edit_between landed inside an item\");\n Edit { list: self, cursor, notify }\n }\n\n pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {\n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);\n }\n\n // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {\n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());\n // }\n\n // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {\n // let (mut edit, offset) = self.edit(userpos);\n // edit.modify_current_item(|item| modify_fn(item, offset))\n // }\n\n pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {\n let (mut edit, offset) = self.edit_n(userpos, notify);\n edit.insert_between_iter(offset, contents);\n }\n\n pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {\n self.insert_at_n(userpos, contents.iter().copied(), notify)\n }\n\n // pub fn del_at_n(&mut self, userpos: usize, num_items: usize) {\n // self.edit_between(userpos).del(num_items)\n // }\n" + ) + , (1764, 0, "\n") + , (1765, 0, "#") + , (1766, 0, "[") + , (1767, 0, "d") + , (1768, 0, "e") + , (1769, 0, "r") + , (1770, 0, "i") + , (1771, 0, "v") + , (1772, 0, "e") + , (1773, 0, "(") + , (1774, 0, "P") + , (1775, 0, "a") + , (1776, 0, "r") + , (1777, 0, "t") + , (1778, 0, "i") + , (1774, 5, "PartialEq") + , (1783, 0, ")") + , (1783, 0, ",") + , (1784, 0, " ") + , (1785, 0, "E") + , (1786, 0, "q") + , (1788, 0, "]") + , (1765, 24, "") + , (1764, 1, "") + , (2041, 0, "\n") + , (2042, 0, "i") + , (2043, 0, "m") + , (2044, 0, "p") + , (2045, 0, "l") + , (2046, 0, " ") + , (2042, 5, "") + , (2041, 1, "") + , (1996, 0, "impl Copy for ItemMarker {}\n") + , (2062, 4, "P") + , (2063, 0, "a") + , (2064, 0, "r") + , (2065, 0, "t") + , (2066, 0, "i") + , (2067, 0, "a") + , (2062, 6, "PartialEq") + , (2091, 0, "\n \n") + , (2096, 0, "fn eq(&self, other: &Rhs) -> bool;") + , (2117, 3, "S") + , (2118, 0, "e") + , (2119, 0, "l") + , (2120, 0, "f") + , (2126, 4, "") + , (2126, 0, "{") + , (2127, 0, "}") + , (2127, 0, " ") + , (2128, 0, "s") + , (2129, 0, "e") + , (2130, 0, "l") + , (2131, 0, "f") + , (2132, 0, ".") + , (2133, 0, "p") + , (2134, 0, "t") + , (2135, 0, "r") + , (2136, 0, " ") + , (2137, 0, "=") + , (2138, 0, "=") + , (2139, 0, " ") + , (2140, 0, "o") + , (2141, 0, "t") + , (2142, 0, "h") + , (2143, 0, "e") + , (2144, 0, "r") + , (2145, 0, ".") + , (2146, 0, "p") + , (2147, 0, "t") + , (2148, 0, "r") + , (2149, 0, " ") + , (2151, 1, "") + , (2125, 0, " ") + , (2126, 0, "b") + , (2127, 0, "o") + , (2128, 0, "o") + , (2129, 0, "l") + , (2042, 0, "impl PartialEq for ItemMarker {\n") + , (2141, 65, "") + , (2092, 0, " ") + , ( 2092 + , 0 + , " fn eq(&self, other: &Self) -> bool { self.ptr == other.ptr }\n" + ) + , (2210, 2, "") + , (2157, 4, " ") + , (2157, 0, "}\n") + , (2159, 8, " ") + , (2159, 4, "") + , (2179, 9, "E") + , (2180, 0, "q") + , (2201, 0, "}") + , (62348, 5104, "") + , (55474, 4385, "") + , (55433, 41, "") + , (51128, 0, "[") + , (51129, 0, "i") + , (51130, 0, "b") + , (51130, 1, "") + , (51129, 1, "") + , (51128, 1, "") + , (51128, 0, "[") + , (51129, 0, "u") + , (51130, 0, "b") + , (51130, 1, "") + , (51129, 1, "") + , (51128, 1, "") + , (51128, 0, "p") + , (51129, 0, "u") + , (51130, 0, "b") + , (51131, 0, ")") + , (51132, 0, "c") + , (51133, 0, "r") + , (51133, 1, "") + , (51132, 1, "") + , (51131, 1, "") + , (51131, 0, "(") + , (51132, 0, "c") + , (51133, 0, "r") + , (51134, 0, "a") + , (51135, 0, "t") + , (51136, 0, "e") + , (51137, 0, ")") + , (51138, 0, " ") + , (45930, 0, "pub(crate) ") + , (38842, 0, "pub(crate) ") + , (38838, 4, " ") + , (38838, 8, " ") + , (29645, 0, "pub(crate) ") + , (16747, 0, "pub(crate) ") + , (16751, 5, "s") + , (16752, 0, "e") + , (16753, 0, "l") + , (16754, 0, "f") + , (16751, 4, "crate") + , (16751, 5, "s") + , (16752, 0, "u") + , (16753, 0, "p") + , (16754, 0, "e") + , (16755, 0, "r") + , (16881, 0, "pub(super) ") + , (16374, 0, "pub(super) ") + , (16251, 0, "pub(super) ") + , (51213, 1, "") + , (46004, 1, "") + , (38905, 1, "") + , (29697, 1, "") + , (51209, 1, "") + , (46001, 1, "") + , (38903, 1, "") + , (29696, 1, "") + , (51205, 1, "") + , (45998, 1, "") + , (38901, 1, "") + , (29695, 1, "") + , (51201, 1, "") + , (45995, 1, "") + , (38899, 1, "") + , (29694, 1, "") + , (51197, 1, "") + , (45992, 1, "") + , (38897, 1, "") + , (29693, 1, "") + , (51194, 0, "s") + , (45990, 0, "s") + , (38896, 0, "s") + , (29693, 0, "s") + , (51198, 0, "u") + , (45993, 0, "u") + , (38898, 0, "u") + , (29694, 0, "u") + , (51202, 0, "p") + , (45996, 0, "p") + , (38900, 0, "p") + , (29695, 0, "p") + , (51206, 0, "e") + , (45999, 0, "e") + , (38902, 0, "e") + , (29696, 0, "e") + , (51210, 0, "r") + , (46002, 0, "r") + , (38904, 0, "r") + , (29697, 0, "r") + , (16832, 1, "") + , (16832, 0, "s") + , (16833, 0, "i") + , (16834, 0, "z") + , (16835, 0, "e") + , (24375, 0, "p") + , (24376, 0, "u") + , (24377, 0, "b") + , (24378, 0, "(") + , (24379, 0, "s") + , (24380, 0, "u") + , (24381, 0, "p") + , (24382, 0, "e") + , (24383, 0, "r") + , (24384, 0, ")") + , (24385, 0, " ") + , (16431, 2, "u") + , (16432, 0, "s") + , (16433, 0, "z") + , (16434, 0, "i") + , (16434, 1, "") + , (16433, 1, "") + , (16433, 0, "i") + , (16434, 0, "z") + , (16435, 0, "e") + , (16628, 9, "") + , (13593, 0, "pub(super) ") + , (13593, 11, "") + , (13590, 3, "pub(super) ") + , (13600, 1, "") + , (13594, 5, "c") + , (13595, 0, "r") + , (13596, 0, "e") + , (13597, 0, "a") + , (13598, 0, "t") + , (13599, 0, "e") + , (13599, 1, "") + , (13598, 1, "") + , (13597, 1, "") + , (13596, 1, "") + , (13596, 0, "a") + , (13597, 0, "t") + , (13598, 0, "e") + , (14034, 0, "pub(super) ") + , (14283, 0, "pub(super) ") + , (14319, 0, "pub(super) ") + , (18277, 0, "pub(super) ") + , (18693, 0, "pub(super) ") + , (19190, 0, "pub(super) ") + , (17996, 0, "pub(super) ") + , (17573, 0, "pub(super) ") + , (17170, 0, "pub(super) ") + , (16992, 2, "u") + , (16993, 0, "s") + , (16994, 0, "i") + , (16995, 0, "z") + , (16996, 0, "e") + , (17064, 9, "") + , (54204, 0, "pub(super) ") + , (14686, 0, "pub(super) ") + , (8662, 0, "pub(super) ") + , (8745, 0, "pub(super) ") + , (5888, 0, "pub(super) ") + , (3703, 0, "_") + , (3723, 0, "_") + , (33936, 4, "") + , (33936, 0, "pub(super) ") + , (4065, 0, "pub(super) ") + , (1808, 0, "pub(super) ") + , (31206, 4, "") + , (31205, 1, "") + , (31205, 0, " ") + , (31206, 0, "l") + , (31207, 0, "i") + , (31208, 0, "s") + , (31209, 0, "t") + , (31206, 0, "s") + , (31207, 0, "k") + , (31208, 0, "i") + , (31206, 3, "") + , (31206, 5, "") + , (59430, 4, "l") + , (58657, 4, "l") + , (58649, 4, "l") + , (59425, 0, "i") + , (58655, 0, "i") + , (58650, 0, "i") + , (59428, 0, "s") + , (58657, 0, "s") + , (58651, 0, "s") + , (59431, 0, "t") + , (58659, 0, "t") + , (58652, 0, "t") + , (582, 178, "") + , (1144, 4, "L") + , (1145, 0, "i") + , (1146, 0, "s") + , (1147, 0, "t") + , (54562, 0, "(") + , (54563, 0, "c") + , (54564, 0, "r") + , (54565, 0, "a") + , (54566, 0, "t") + , (54567, 0, "e") + , (54568, 0, ")") + , (54523, 32, "") + , (54522, 1, "") + , (54530, 5, "s") + , (54531, 0, "u") + , (54532, 0, "p") + , (54533, 0, "e") + , (54534, 0, "r") + , (54530, 5, "d") + , (54531, 0, "i") + , (54531, 1, "") + , (54530, 1, "") + , (54530, 0, "p") + , (54531, 0, "a") + , (54532, 0, "t") + , (54533, 0, "h") + , (54530, 4, "") + , (54530, 0, "\"") + , (54531, 0, ".") + , (54532, 0, ".") + , (54533, 0, "\"") + , (54526, 10, "") + , (54526, 0, "p") + , (54527, 0, "u") + , (54528, 0, "b") + , (54529, 0, "(") + , (54530, 0, "s") + , (54531, 0, "u") + , (54532, 0, "p") + , (54533, 0, "e") + , (54534, 0, "r") + , (54535, 0, ")") + , (54536, 0, " ") + , (54530, 5, "i") + , (54531, 0, "n") + , (54532, 0, " ") + , (54533, 0, "\"") + , (54534, 0, ".") + , (54535, 0, ".") + , (54536, 0, "\"") + , (54533, 4, "s") + , (54534, 0, "u") + , (54535, 0, "p") + , (54536, 0, "e") + , (54537, 0, "r") + , (54533, 5, "s") + , (54534, 0, "e") + , (54535, 0, "l") + , (54536, 0, "f") + , (54529, 9, "") + , (54529, 0, "(") + , (54529, 1, "") + , (54521, 0, "\n ") + , (54526, 0, "/") + , (54527, 0, "/") + , (54528, 0, " ") + , (54529, 0, "T") + , (54530, 0, "O") + , (54531, 0, "D") + , (54532, 0, "O") + , (54533, 0, ":") + , (54534, 0, " ") + , (54535, 0, "D") + , (54536, 0, "o") + , (54537, 0, " ") + , (54538, 0, "n") + , (54539, 0, "o") + , (54540, 0, "t") + , (54541, 0, " ") + , (54542, 0, "e") + , (54543, 0, "x") + , (54544, 0, "p") + , (54545, 0, "o") + , (54546, 0, "e") + , (54547, 0, "t") + , (54548, 0, " ") + , (54548, 1, "") + , (54547, 1, "") + , (54546, 1, "") + , (54546, 0, "r") + , (54547, 0, "t") + , (54548, 0, " ") + , (54549, 0, "t") + , (54550, 0, "h") + , (54551, 0, "i") + , (54552, 0, "s") + , (54553, 0, ".") + , (54554, 0, " ") + , (54554, 1, "") + , (54535, 0, "T") + , (54536, 0, "h") + , (54537, 0, "i") + , (54538, 0, "s") + , (54539, 0, " ") + , (54540, 0, "i") + , (54541, 0, "s") + , (54542, 0, " ") + , (54543, 0, "j") + , (54544, 0, "s") + , (54545, 0, "u") + , (54546, 0, "t") + , (54547, 0, " ") + , (54548, 0, "f") + , (54549, 0, "o") + , (54550, 0, "r") + , (54551, 0, " ") + , (54552, 0, "d") + , (54553, 0, "e") + , (54543, 11, "j") + , (54544, 0, "u") + , (54545, 0, "s") + , (54546, 0, "t") + , (54547, 0, " ") + , (54548, 0, "f") + , (54549, 0, "o") + , (54550, 0, "r") + , (54551, 0, " ") + , (54552, 0, "d") + , (54553, 0, "e") + , (54554, 0, "b") + , (54555, 0, "u") + , (54556, 0, "g") + , (54557, 0, "g") + , (54558, 0, "i") + , (54559, 0, "n") + , (54560, 0, "g") + , (54561, 0, ".") + , (54562, 0, " ") + , (32164, 0, "\n ") + , (32173, 0, "a") + , (32174, 0, "s") + , (32175, 0, "s") + , (32176, 0, "e") + , (32177, 0, "r") + , (32178, 0, "t") + , (32179, 0, "!") + , (32180, 0, "(") + , (32181, 0, "N") + , (32182, 0, ":") + , (32183, 0, ":") + , (32184, 0, "notifications_used()") + , (32204, 0, ",") + , (32205, 0, " ") + , (32206, 0, "\"") + , (32207, 0, "C") + , (32208, 0, "a") + , (32209, 0, "n") + , (32210, 0, "n") + , (32211, 0, "o") + , (32212, 0, "t") + , (32207, 6, "i") + , (32208, 0, "t") + , (32209, 0, "e") + , (32210, 0, "r") + , (32211, 0, "_") + , (32212, 0, "a") + , (32213, 0, "t") + , (32214, 0, "_") + , (32215, 0, "n") + , (32216, 0, "o") + , (32217, 0, "d") + , (32218, 0, "e") + , (32219, 0, " ") + , (32220, 0, "n") + , (32221, 0, "o") + , (32222, 0, "t") + , (32223, 0, " ") + , (32224, 0, "a") + , (32225, 0, "v") + , (32226, 0, "a") + , (32227, 0, "i") + , (32228, 0, "l") + , (32229, 0, "a") + , (32230, 0, "b") + , (32231, 0, "l") + , (32232, 0, "e") + , (32233, 0, " ") + , (32234, 0, "i") + , (32235, 0, "f") + , (32236, 0, " ") + , (32237, 0, "n") + , (32238, 0, "o") + , (32239, 0, "t") + , (32240, 0, "i") + , (32241, 0, "f") + , (32242, 0, "i") + , (32243, 0, "c") + , (32244, 0, "a") + , (32245, 0, "t") + , (32246, 0, "i") + , (32247, 0, "o") + , (32248, 0, "n") + , (32249, 0, "s") + , (32250, 0, " ") + , (32251, 0, "a") + , (32252, 0, "r") + , (32253, 0, "e") + , (32254, 0, " ") + , (32255, 0, "d") + , (32256, 0, "i") + , (32257, 0, "s") + , (32258, 0, "a") + , (32259, 0, "b") + , (32260, 0, "l") + , (32261, 0, "e") + , (32262, 0, "d") + , (32263, 0, "\"") + , (32264, 0, ")") + , (32265, 0, ";") + , (32266, 0, "\n ") + , (38129, 0, "\n ") + , (32267, 8, "") + , (38130, 0, "i") + , (38131, 0, "f") + , (38132, 0, " ") + , (38133, 0, "N") + , (38134, 0, ":") + , (38135, 0, ":") + , (38136, 0, "notifications_used()") + , (38156, 0, " ") + , (38157, 0, "{") + , (38572, 8, " ") + , (38558, 12, " ") + , (38477, 16, " ") + , (38433, 16, " ") + , (38416, 16, " ") + , (38345, 16, " ") + , (38289, 16, " ") + , (38270, 12, " ") + , (38232, 12, " ") + , (38194, 12, " ") + , (38159, 8, " ") + , (38625, 0, "\n ") + , (38626, 12, " }") + , (49367, 0, "\n ") + , (49367, 17, "") + , (38626, 9, " ") + , (38625, 13, "") + , (38612, 12, " ") + , (38594, 16, " ") + , (38509, 20, " ") + , (38461, 20, " ") + , (38440, 20, " ") + , (38365, 20, " ") + , (38305, 20, " ") + , (38282, 16, " ") + , (38240, 16, " ") + , (38198, 16, " ") + , (38159, 12, " ") + , (38133, 23, "") + , (38122, 13, "") + , (38121, 1, "") + , (38132, 0, " ") + , (38133, 0, "N::notifications_used()") + , (38156, 0, " ") + , (38157, 0, "&") + , (38158, 0, "&") + , (49322, 0, " ") + , (49323, 0, "N::notifications_used()") + , (49346, 0, " ") + , (49347, 0, "&") + , (49348, 0, "&") + , (33899, 4, "c") + , (33900, 0, "u") + , (33901, 0, "r") + , (33902, 0, "s") + , (33903, 0, "o") + , (33904, 0, "r") + , (32075, 1, "") + , (32074, 1, "") + , (32073, 1, "") + , (32072, 1, "") + , (32072, 0, "c") + , (32073, 0, "u") + , (32074, 0, "r") + , (32075, 0, "s") + , (32076, 0, "o") + , (32077, 0, "r") + , (28226, 4, "c") + , (28227, 0, "u") + , (28228, 0, "r") + , (28229, 0, "s") + , (28230, 0, "o") + , (28231, 0, "r") + , (34637, 1, "") + , (34636, 1, "") + , (34635, 1, "") + , (34634, 1, "") + , (34634, 0, "c") + , (34635, 0, "u") + , (34636, 0, "r") + , (34637, 0, "s") + , (34638, 0, "o") + , (34639, 0, "r") + , (29703, 3, "curso") + , (27769, 3, "curso") + , (27847, 0, "\n ") + , (27864, 0, "a") + , (27865, 0, "s") + , (27866, 0, "s") + , (27867, 0, "e") + , (27868, 0, "r") + , (27864, 5, "assert_eq!") + , (27874, 0, "(") + , (27875, 0, "n") + , (27876, 0, "o") + , (27877, 0, "r") + , (27878, 0, "m") + , (27879, 0, "a") + , (27875, 5, "normal_iter") + , (27886, 0, ".") + , (27887, 0, "u") + , (27888, 0, "s") + , (27889, 0, "e") + , (27890, 0, "p") + , (27891, 0, "o") + , (27891, 1, "") + , (27890, 1, "") + , (27890, 0, "r") + , (27891, 0, "p") + , (27892, 0, "o") + , (27893, 0, "s") + , (27894, 0, ",") + , (27895, 0, " ") + , (27896, 0, "n") + , (27897, 0, "u") + , (27898, 0, "m") + , (27899, 0, "_") + , (27900, 0, "u") + , (27896, 5, "num_usercount") + , (27909, 0, ")") + , (27910, 0, ";") + , ( 27911 + , 0 + , "\n assert_eq!(normal_iter.userpos, num_usercount);" + ) + , (27911, 64, "") + , (28041, 0, "\n ") + , (28058, 0, "i") + , (28059, 0, "f") + , (28060, 0, " ") + , (28061, 0, "p") + , (28061, 1, "") + , (28061, 0, "N") + , (28062, 0, ":") + , (28063, 0, ":") + , (28064, 0, "notifications_used()") + , (28084, 0, " ") + , (28085, 0, "{") + , (28397, 16, " ") + , (28291, 16, " ") + , (28227, 16, " ") + , (28209, 16, " ") + , (28161, 20, " ") + , (28087, 16, " ") + , (28472, 0, "\n ") + , (28473, 20, " }") + , (26687, 247, "") + , (26341, 0, "\n ") + , (26358, 0, "i") + , (26359, 0, "f") + , (26360, 0, " ") + , (26361, 0, "N") + , (26362, 0, ":") + , (26363, 0, ":") + , (26364, 0, "notifications_used()") + , (26384, 0, " ") + , (26385, 0, "{") + , (26733, 16, " ") + , (26713, 16, " ") + , (26669, 20, " ") + , (26644, 16, " ") + , (26562, 20, " ") + , (26505, 16, " ") + , (26444, 20, " ") + , (26387, 16, " ") + , (26847, 0, "\n ") + , (26848, 20, " }") + , (38144, 0, " if cfg!(debug_assertions) {\n") + , (38184, 0, " ") + , (38182, 1, "") + , (38181, 1, "") + , (38159, 22, "") + , (38158, 1, "") + , (38157, 1, "") + , (38144, 13, "") + , (38144, 0, "cfg!(debug_assertions)") + , ( 38133 + , 95 + , " if cfg!(debug_assertions) N::notifications_used() && new_height_usize > 1 {" + ) + , (38166, 0, " ") + , (38167, 0, "|") + , (38168, 0, "|") + , (38144, 0, "(") + , (38194, 0, ")") + , (38221, 1, "") + , (38144, 51, "") + , (38144, 0, "s") + , (38145, 0, "e") + , (38146, 0, "l") + , (38147, 0, "f") + , (38148, 0, ".") + , (38149, 0, "s") + , (38150, 0, "t") + , (38151, 0, "o") + , (38152, 0, "r") + , (38153, 0, "e") + , (38153, 1, "") + , (38152, 1, "") + , (38151, 1, "") + , (38150, 1, "") + , (38149, 1, "") + , (38149, 0, "u") + , (38150, 0, "s") + , (38151, 0, "e") + , (38152, 0, "_") + , (38153, 0, "p") + , (38154, 0, "a") + , (38155, 0, "r") + , (38156, 0, "e") + , (38157, 0, "n") + , (38158, 0, "t") + , (38159, 0, "s") + , (38160, 0, "(") + , (38161, 0, ")") + , (24736, 0, "\n ") + , (24741, 0, "\n ") + , (24737, 4, "") + , (24742, 0, "#") + , (24743, 0, "[") + , (24744, 0, "i") + , (24745, 0, "n") + , (24746, 0, "l") + , (24747, 0, "i") + , (24748, 0, "n") + , (24749, 0, "e") + , (24750, 0, "(") + , (24751, 0, "a") + , (24752, 0, "l") + , (24753, 0, "w") + , (24754, 0, "a") + , (24755, 0, "y") + , (24756, 0, "s") + , (24757, 0, ")") + , (24758, 0, "]") + , (24759, 0, "\n ") + , (24764, 0, "f") + , (24765, 0, "n") + , (24766, 0, " ") + , (24767, 0, "u") + , (24768, 0, "s") + , (24769, 0, "e") + , (24770, 0, "_") + , (24771, 0, "p") + , (24772, 0, "a") + , (24773, 0, "r") + , (24774, 0, "e") + , (24775, 0, "n") + , (24776, 0, "t") + , (24777, 0, "s") + , (24778, 0, "(") + , (24779, 0, "&") + , (24780, 0, "s") + , (24781, 0, "e") + , (24781, 1, "") + , (24780, 1, "") + , (24779, 1, "") + , (24779, 0, ")") + , (24780, 0, " ") + , (24781, 0, "-") + , (24782, 0, ">") + , (24783, 0, " ") + , (24784, 0, "b") + , (24785, 0, "o") + , (24786, 0, "o") + , (24787, 0, "l") + , (24788, 0, " ") + , (24789, 0, "{") + , (24790, 0, "\n ") + , (24799, 0, "\n ") + , (24791, 8, "") + , (24792, 8, " }") + , (24791, 0, "(cfg!(debug_assertions) || N::notifications_used())") + , (24791, 0, " ") + , (24799, 1, "") + , (24848, 1, "") + , (38262, 5, "") + , (38262, 0, "S") + , (38263, 0, "e") + , (38264, 0, "l") + , (38265, 0, "f") + , (38266, 0, ":") + , (38267, 0, ":") + , (49447, 23, "Self::use_parents()") + , (26479, 23, "Self::use_parents()") + , (28023, 23, "Self::use_parents()") + , (28023, 19, "N::notifications_used()") + , (28023, 23, "Self::use_parents()") + , (32324, 1, "") + , (32324, 1, "") + , (32324, 1, "") + , (32324, 1, "") + , (32324, 0, "c") + , (32325, 0, "u") + , (32326, 0, "r") + , (32327, 0, "s") + , (32328, 0, "o") + , (32329, 0, "r") + , (32298, 23, "Self::use_parents()") + , (3771, 0, "// ") + , (3704, 0, "// ") + , (3628, 0, "// ") + , (3611, 0, "// ") + , (3589, 0, "// ") + , ( 34004 + , 0 + , " pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n" + ) + , (34163, 0, "// ") + , ( 34316 + , 0 + , "\n pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {" + ) + , (34004, 155, "") + , (34246, 29, "") + , (34245, 1, "") + , (34245, 0, "i") + , (34246, 0, "m") + , (34247, 0, "p") + , (34248, 0, "l") + , (34249, 0, " ") + , (34250, 0, "F") + , (34251, 0, "n") + , (34252, 0, "M") + , (34253, 0, "u") + , (34253, 1, "") + , (34252, 1, "") + , (34252, 0, "(") + , (34203, 0, "<") + , (34204, 0, "F") + , (34205, 0, ">") + , (34205, 1, "") + , (34204, 1, "") + , (34204, 0, "Q") + , (34205, 0, ">") + , (34248, 8, "Q") + , (34264, 24, "") + , (34263, 1, "") + , (34263, 1, "") + , (34263, 0, "\n ") + , (34268, 0, "w") + , (34269, 0, "h") + , (34270, 0, "e") + , (34271, 0, "r") + , (34272, 0, "e") + , (34273, 0, " ") + , ( 34274 + , 0 + , "fn contains_item(&self, query: &Self::Query) -> Option;" + ) + , (34274, 0, "W") + , (34275, 0, ":") + , (34276, 0, " ") + , (34276, 1, "") + , (34275, 1, "") + , (34274, 1, "") + , (34274, 0, "Q") + , (34275, 0, ":") + , (34276, 0, " ") + , (34277, 16, "F") + , (34278, 0, "n") + , (34280, 5, "") + , (34280, 0, "C") + , (34281, 0, ":") + , (34282, 0, ":") + , (34283, 0, "I") + , (34284, 0, "t") + , (34285, 0, "e") + , (34286, 0, "m") + , (34287, 21, "") + , (34280, 0, "&") + , (34280, 0, "i") + , (34281, 0, "t") + , (34282, 0, "e") + , (34283, 0, "m") + , (34284, 0, ":") + , (34285, 0, " ") + , (34312, 1, "") + , (34312, 0, " ") + , (34280, 6, "") + , (34603, 5, "p") + , (34241, 5, "p") + , (34600, 0, "r") + , (34242, 0, "r") + , (34602, 0, "e") + , (34243, 0, "e") + , (34604, 0, "d") + , (34244, 0, "d") + , (34606, 0, "i") + , (34245, 0, "i") + , (34608, 0, "c") + , (34246, 0, "c") + , (34610, 0, "a") + , (34247, 0, "a") + , (34612, 0, "t") + , (34248, 0, "t") + , (34614, 0, "e") + , (34249, 0, "e") + , (34252, 1, "") + , (34252, 0, "P") + , (34204, 1, "") + , (34204, 0, "P") + , (34278, 1, "") + , (34278, 0, "P") + , (34588, 0, "p") + , (34589, 0, "r") + , (34590, 0, "e") + , (34591, 0, "d") + , (34592, 0, "i") + , (34593, 0, "c") + , (34594, 0, "a") + , (34595, 0, "t") + , (34596, 0, "e") + , (34597, 0, "(") + , (34602, 0, ")") + , (34603, 25, "") + , (3588, 200, "\n") + , (3588, 1, "") + , (33804, 158, "") + , (32094, 0, ")") + , (32085, 0, "(") + , (32095, 0, ",") + , (32096, 0, " ") + , (32097, 0, "u") + , (32098, 0, "s") + , (32099, 0, "i") + , (32100, 0, "z") + , (32101, 0, "e") + , (33663, 0, "(") + , (33670, 0, ",") + , (33671, 0, " ") + , (33672, 0, "9") + , (33672, 1, "") + , (33672, 0, "0") + , (33673, 0, ")") + , (33672, 2, "") + , (33672, 0, "9") + , (33671, 2, "") + , (33670, 1, "") + , (33663, 1, "") + , (32096, 6, "") + , (32095, 1, "") + , (32095, 1, "") + , (32085, 1, "") + , ( 33804 + , 0 + , " // pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {\n" + ) + , (33804, 158, "") + , (32094, 0, ")") + , (32085, 0, "(") + , (32095, 1, "") + , (32085, 1, "") + , (31987, 0, "\n ") + , (31992, 0, "/") + , (31993, 0, "/") + , (31994, 0, " ") + , (31994, 1, "") + , (31994, 0, "/") + , (31995, 0, " ") + , (31996, 0, "G") + , (31997, 0, "e") + , (31997, 1, "") + , (31996, 1, "") + , (31996, 0, "C") + , (31997, 0, "r") + , (31998, 0, "e") + , (31999, 0, "a") + , (32000, 0, "t") + , (32001, 0, "e") + , (32002, 0, " ") + , (32003, 0, "a") + , (32004, 0, " ") + , (32005, 0, "c") + , (32006, 0, "u") + , (32007, 0, "r") + , (32008, 0, "s") + , (32009, 0, "o") + , (32010, 0, "r") + , (32011, 0, " ") + , (32012, 0, "a") + , (32013, 0, "t") + , (32014, 0, " ") + , (32015, 0, "t") + , (32016, 0, "h") + , (32017, 0, "e") + , (32018, 0, " ") + , (32019, 0, "s") + , (32020, 0, "p") + , (32021, 0, "e") + , (32022, 0, "c") + , (32023, 0, "i") + , (32024, 0, "f") + , (32025, 0, "i") + , (32026, 0, "e") + , (32027, 0, "d") + , (32028, 0, " ") + , (32029, 0, "n") + , (32030, 0, "o") + , (32031, 0, "d") + , (32032, 0, "e") + , (32033, 0, ",") + , (32034, 0, " ") + , (32035, 0, "u") + , (32036, 0, "s") + , (32037, 0, "i") + , (32038, 0, "n") + , (32039, 0, "g") + , (32040, 0, " ") + , (32041, 0, "t") + , (32042, 0, "h") + , (32043, 0, "e") + , (32044, 0, " ") + , (32045, 0, "p") + , (32046, 0, "a") + , (32047, 0, "r") + , (32048, 0, "e") + , (32049, 0, "n") + , (32050, 0, "t") + , (32051, 0, "s") + , (32052, 0, " ") + , (32053, 0, "i") + , (32054, 0, "n") + , (32055, 0, "f") + , (32056, 0, "r") + , (32057, 0, "a") + , (32058, 0, "s") + , (32059, 0, "t") + , (32060, 0, "r") + , (32061, 0, "u") + , (32062, 0, "c") + , (32063, 0, "t") + , (32064, 0, "u") + , (32065, 0, "r") + , (32066, 0, "e") + , (32067, 0, " ") + , (32068, 0, "t") + , (32069, 0, "o") + , (32070, 0, " ") + , (32071, 0, "c") + , (32072, 0, "a") + , (32073, 0, "l") + , (32074, 0, "c") + , (32075, 0, "u") + , (32076, 0, "l") + , (32077, 0, "a") + , (32078, 0, "t") + , (32079, 0, "e") + , (32080, 0, " ") + , (32081, 0, "o") + , (32082, 0, "f") + , (32083, 0, "f") + , (32084, 0, "s") + , (32085, 0, "e") + , (32086, 0, "t") + , (32087, 0, "s") + , (32088, 0, ".") + , (32089, 0, "q") + , (32089, 1, "") + , ( 31988 + , 101 + , " /// Create a cursor at the specified node, using the parents infrastructure\n /// to calculate offsets." + ) + , (32097, 0, " ") + , (32098, 0, "N") + , (32099, 0, "o") + , (32100, 0, "t") + , (32101, 0, "e") + , (32102, 0, " ") + , (32103, 0, "t") + , (32104, 0, "h") + , (32105, 0, "i") + , (32106, 0, "s") + , (32107, 0, " ") + , (32108, 0, "i") + , (32098, 11, "") + , (32097, 1, "") + , (32097, 0, " ") + , (32098, 0, "T") + , (32099, 0, "e") + , (32100, 0, "h") + , (32101, 0, " ") + , (32102, 0, "o") + , (32102, 1, "") + , (32101, 1, "") + , (32100, 1, "") + , (32099, 1, "") + , (32099, 0, "h") + , (32100, 0, "e") + , (32101, 0, " ") + , (32102, 0, "o") + , (32103, 0, "f") + , (32104, 0, "f") + , (32105, 0, "s") + , (32106, 0, "e") + , (32107, 0, "t") + , (32108, 0, " ") + , (32109, 0, "a") + , (32110, 0, "n") + , (32111, 0, "d") + , (32112, 0, " ") + , (32113, 0, "l") + , (32114, 0, "o") + , (32115, 0, "c") + , (32116, 0, "a") + , (32117, 0, "l") + , (32118, 0, "_") + , (32119, 0, "i") + , (32120, 0, "n") + , (32121, 0, "d") + , (32122, 0, "e") + , (32123, 0, "x") + , (32124, 0, " ") + , (32125, 0, "p") + , (32126, 0, "a") + , (32127, 0, "r") + , (32128, 0, "a") + , (32129, 0, "m") + , (32130, 0, "e") + , (32131, 0, "t") + , (32132, 0, "e") + , (32133, 0, "r") + , (32134, 0, "s") + , (32135, 0, " ") + , (32136, 0, "a") + , (32137, 0, "r") + , (32138, 0, "e") + , (32139, 0, " ") + , (32140, 0, "n") + , (32141, 0, "o") + , (32141, 1, "") + , (32140, 1, "") + , (32140, 0, "u") + , (32141, 0, "n") + , (32142, 0, "c") + , (32143, 0, "k") + , (32144, 0, "e") + , (32145, 0, "d") + , (32145, 1, "") + , (32145, 0, "c") + , (32146, 0, "k") + , (32140, 7, "u") + , (32141, 0, "n") + , (32142, 0, "c") + , (32143, 0, "k") + , (32144, 0, "e") + , (32136, 9, "m") + , (32137, 0, "u") + , (32138, 0, "s") + , (32139, 0, "t") + , (32140, 0, " ") + , (32141, 0, "s") + , (32142, 0, "p") + , (32143, 0, "e") + , (32144, 0, "c") + , (32136, 9, "s") + , (32137, 0, "h") + , (32138, 0, "o") + , (32139, 0, "u") + , (32140, 0, "l") + , (32141, 0, "d") + , (32142, 0, " ") + , (32143, 0, "s") + , (32144, 0, "p") + , (32145, 0, "e") + , (32146, 0, "c") + , (32147, 0, "i") + , (32148, 0, "f") + , (32149, 0, "y") + , (32150, 0, " ") + , (32151, 0, "t") + , (32152, 0, "h") + , (32153, 0, "e") + , (32154, 0, " ") + , (32155, 0, "o") + , (32156, 0, "f") + , (32157, 0, "f") + , (32158, 0, "s") + , (32159, 0, "e") + , (32160, 0, "t") + , (32161, 0, " ") + , (32162, 0, "i") + , (32163, 0, "n") + , (32164, 0, "t") + , (32165, 0, "o") + , (32166, 0, " ") + , (32167, 0, "t") + , (32168, 0, "h") + , (32169, 0, "e") + , (32170, 0, " ") + , (32171, 0, "c") + , (32172, 0, "u") + , (32173, 0, "r") + , (32174, 0, "r") + , (32175, 0, "e") + , (32176, 0, "n") + , (32177, 0, "t") + , (32178, 0, " ") + , (32179, 0, "n") + , (32180, 0, "o") + , (32181, 0, "d") + , (32182, 0, "e") + , (32183, 0, ".") + , (32184, 0, " ") + , (32185, 0, "T") + , (32186, 0, "h") + , (32187, 0, "e") + , (32188, 0, " ") + , (32185, 4, "") + , (32185, 0, "O") + , (32186, 0, "f") + , (32187, 0, "f") + , (32188, 0, "s") + , (32189, 0, "e") + , (32190, 0, "t") + , (32191, 0, " ") + , (32192, 0, "m") + , (32193, 0, "u") + , (32193, 1, "") + , (32192, 1, "") + , (32192, 0, "*") + , (32193, 0, "m") + , (32194, 0, "u") + , (32195, 0, "s") + , (32196, 0, "t") + , (32197, 0, "*") + , (32198, 0, " ") + , (32199, 0, "b") + , (32200, 0, "e") + , (32201, 0, " ") + , (32202, 0, "s") + , (32203, 0, "p") + , (32204, 0, "e") + , (32205, 0, "c") + , (32206, 0, "i") + , (32207, 0, "f") + , (32208, 0, "i") + , (32209, 0, "e") + , (32210, 0, "d") + , (32202, 9, "a") + , (32203, 0, "t") + , (32204, 0, " ") + , (32205, 0, "a") + , (32206, 0, " ") + , (32206, 1, "") + , (32206, 0, "n") + , (32207, 0, " ") + , (32208, 0, "i") + , (32209, 0, "t") + , (32210, 0, "e") + , (32211, 0, "m") + , (32212, 0, " ") + , (32213, 0, "b") + , (32214, 0, "o") + , (32215, 0, "u") + , (32216, 0, "n") + , (32217, 0, "d") + , (32218, 0, "a") + , (32219, 0, "r") + , (32220, 0, "y") + , (32184, 0, " ") + , (32185, 0, "T") + , (32186, 0, "h") + , (32187, 0, "e") + , (32188, 0, "y") + , (32189, 0, " ") + , (32190, 0, "a") + , (32191, 0, "r") + , (32192, 0, "e") + , (32193, 0, " ") + , (32194, 0, "a") + , (32195, 0, "c") + , (32196, 0, "c") + , (32197, 0, "e") + , (32198, 0, "p") + , (32199, 0, "t") + , (32200, 0, "e") + , (32201, 0, "d") + , (32202, 0, " ") + , (32203, 0, "a") + , (32204, 0, "s") + , (32205, 0, "-") + , (32206, 0, "i") + , (32207, 0, "s") + , (32208, 0, ".") + , ( 32068 + , 178 + , " /// to calculate offsets. The offset and local_index parameters should\n /// specify the offset into the current node. They are accepted as-is.\n /// Offset *must* be at an item boundary" + ) + , (34398, 0, "\n ") + , (34407, 0, "l") + , (34408, 0, "e") + , (34409, 0, "t") + , (34410, 0, " ") + , (34411, 0, "m") + , (34412, 0, "u") + , (34413, 0, "t") + , (34414, 0, " ") + , (34415, 0, "i") + , (34416, 0, "t") + , (34417, 0, "e") + , (34418, 0, "m") + , (34419, 0, "_") + , (34420, 0, "o") + , (34421, 0, "f") + , (34422, 0, "f") + , (34423, 0, "s") + , (34424, 0, "e") + , (34425, 0, "t") + , (34426, 0, " ") + , (34427, 0, "=") + , (34428, 0, " ") + , (34429, 0, "0") + , (34430, 0, ";") + , (34429, 1, "") + , (34428, 1, "") + , (34427, 1, "") + , (34426, 1, "") + , (34426, 0, " = 0") + , (34534, 0, "_") + , (34573, 0, "// ") + , (34598, 0, "\n ") + , (34615, 0, "i") + , (34616, 0, "t") + , (34617, 0, "e") + , (34618, 0, "m") + , (34619, 0, "_") + , (34620, 0, "o") + , (34615, 6, "item_offset") + , (34626, 0, " ") + , (34627, 0, "=") + , (34628, 0, " ") + , (34629, 0, "i") + , (34630, 0, "t") + , (34631, 0, "e") + , (34632, 0, "m") + , (34629, 4, "item_offset_") + , (34641, 0, ";") + , (34897, 0, "(") + , (34941, 0, ",") + , (34942, 0, " ") + , (34943, 0, "i") + , (34944, 0, "t") + , (34945, 0, "e") + , (34946, 0, "m") + , (34947, 0, "_") + , (34943, 5, "item_offset") + , (34954, 0, ")") + , (34175, 0, "(") + , (34185, 0, ",") + , (34186, 0, " ") + , (34187, 0, "u") + , (34188, 0, "s") + , (34189, 0, "i") + , (34190, 0, "z") + , (34191, 0, "e") + , (34192, 0, ")") + , (34175, 0, "O") + , (34176, 0, "p") + , (34177, 0, "t") + , (34178, 0, "i") + , (34179, 0, "o") + , (34180, 0, "n") + , (34181, 0, "<") + , (34200, 0, ">") + , (34816, 0, "\n ") + , (34825, 0, "i") + , (34826, 0, "f") + , (34827, 0, " ") + , (34817, 11, "") + , (34816, 1, "") + , (34825, 0, "// ") + , (34816, 0, "\n ") + , (34825, 0, "m") + , (34825, 1, "") + , (34825, 0, "i") + , (34826, 0, "f") + , (34827, 0, " ") + , (34828, 0, "l") + , (34829, 0, "e") + , (34830, 0, "t") + , (34831, 0, " ") + , (34832, 0, "l") + , (34833, 0, "o") + , (34834, 0, "c") + , (34835, 0, "a") + , (34832, 4, "local_index") + , (34843, 0, " ") + , (34844, 0, " ") + , (34844, 1, "") + , (34844, 0, "=") + , (34845, 0, " ") + , (34846, 0, "l") + , (34847, 0, "o") + , (34848, 0, "c") + , (34849, 0, "a") + , (34850, 0, "l") + , (34846, 5, "local_index") + , (34857, 0, " ") + , (34858, 0, "{") + , ( 35018 + , 0 + , "\n // let local_index = local_index.expect(\"Invalid marker - item not found in node\");" + ) + , (34952, 8, " ") + , (34860, 92, "") + , (34930, 0, "\n ") + , (34931, 12, " }") + , (34940, 0, " ") + , (34941, 0, "e") + , (34942, 0, "l") + , (34943, 0, "s") + , (34944, 0, "e") + , (34945, 0, " ") + , (34946, 0, "{") + , (34947, 0, " ") + , (34948, 0, "N") + , (34949, 0, "o") + , (34950, 0, "n") + , (34951, 0, "e") + , (34952, 0, " ") + , (34953, 0, "}") + , (34832, 0, "S") + , (34833, 0, "o") + , (34834, 0, "m") + , (34835, 0, "e") + , (34836, 0, "(") + , (34848, 0, ")") + , (34878, 0, "C") + , (34879, 0, "o") + , (34880, 0, "m") + , (34881, 0, "e") + , (34881, 1, "") + , (34880, 1, "") + , (34879, 1, "") + , (34878, 1, "") + , (34878, 0, "S") + , (34879, 0, "o") + , (34880, 0, "m") + , (34881, 0, "e") + , (34882, 0, "(") + , (34941, 0, ")") + , (34816, 0, "\n ") + , (34825, 0, "l") + , (34826, 0, "o") + , (34827, 0, "c") + , (34828, 0, "a") + , (34825, 4, "local_index") + , (34836, 0, ".") + , (34837, 0, "m") + , (34838, 0, "a") + , (34837, 2, "map(f: F)") + , (34841, 5, "") + , (34841, 0, "l") + , (34841, 1, "") + , (34841, 0, "\\") + , (34841, 1, "") + , (34841, 0, "|") + , (34842, 0, "l") + , (34843, 0, "o") + , (34844, 0, "c") + , (34845, 0, "a") + , (34846, 0, "l") + , (34842, 5, "local_index") + , (34853, 0, "|") + , (34855, 66, "") + , (34854, 1, "") + , (34854, 0, "\n ") + , (34854, 0, "{") + , (34854, 1, "") + , (34854, 0, " ") + , (34855, 0, "{") + , (34928, 0, "\n ") + , (34929, 12, " }") + , (34938, 0, ")") + , (34927, 1, "") + , (34939, 116, "") + , ( 34939 + , 0 + , " } else { None }\n // let local_index = local_index.expect(\"Invalid marker - item not found in node\");\n" + ) + , (34939, 24, "") + , (34939, 92, "") + , (55306, 1, "") + , (55305, 1, "") + , (10576, 8, "") + , (32654, 13, "") + , (58218, 229, "") + , ( 57449 + , 0 + , "\nimpl> fmt::Debug for SkipList where C::Item: fmt::Debug {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_list().entries(self.iter()).finish()\n }\n}\n" + ) + , ( 57450 + , 0 + , "impl> fmt::Debug for SkipList where C::Item: fmt::Debug {\n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n f.debug_list().entries(self.iter()).finish()\n }\n}\n" + ) + , (57678, 0, "\n") + , (57725, 10, "D") + , (57726, 0, "e") + , (57727, 0, "f") + , (57728, 0, "a") + , (57729, 0, "u") + , (57730, 0, "l") + , (57731, 0, "t") + , (57751, 26, "") + , (57761, 3, "d") + , (57762, 0, "e") + , (57763, 0, "f") + , (57764, 0, "a") + , (57765, 0, "u") + , (57766, 0, "l") + , (57767, 0, "t") + , (57807, 11, "S") + , (57808, 0, "e") + , (57809, 0, "l") + , (57810, 0, "f") + , (57769, 33, "") + , (57789, 44, "") + , (57789, 0, "S") + , (57790, 0, "k") + , (57789, 2, "SkipList") + , (57797, 0, ":") + , (57798, 0, ":") + , (57799, 0, "n") + , (57800, 0, "e") + , (57801, 0, "w") + , (57802, 0, "(") + , (57803, 0, ")") + , (56481, 7, "") + , (56497, 1, "") + , (18854, 0, "// ") + , (18844, 0, "// ") + , (18789, 0, "// ") + , (18736, 0, "// ") + , (18719, 0, "// ") + , (18651, 0, "// ") + , (18601, 0, "// ") + , (18545, 0, "// ") + , (18503, 0, "// ") + , (18417, 0, "// ") + , (57729, 7, "y") + , (57500, 7, "y") + , (57148, 7, "y") + , (56565, 7, "y") + , (56020, 7, "y") + , (22665, 7, "y") + , (21233, 7, "y") + , (20443, 7, "y") + , (20238, 7, "y") + , (7663, 7, "y") + , (3439, 7, "y") + , (3155, 7, "y") + , (2409, 10, "") + , (2409, 0, "ListConfig") + , (2409, 10, "L") + , (2410, 0, "i") + , (2411, 0, "s") + , (2412, 0, "t") + , (2413, 0, "I") + , (2414, 0, "t") + , (2415, 0, "e") + , (2416, 0, "m") + , (2420, 14, "") + , (2419, 1, "") + , (2325, 73, "") + , (2324, 1, "") + , (2346, 36, "") + , (2618, 7, "") + , (2623, 6, "") + , (2619, 4, "s") + , (2620, 0, "e") + , (2621, 0, "l") + , (2622, 0, "f") + , (2678, 6, "") + , (2826, 6, "") + , (2814, 7, "") + , (2249, 1, "") + , (2054, 1, "") + , (2009, 1, "") + , (1892, 1, "") + , (1846, 1, "") + , (1760, 1, "") + , (1621, 1, "") + , (2242, 1, "") + , (2048, 1, "") + , (2004, 1, "") + , (1888, 1, "") + , (1843, 1, "") + , (1758, 1, "") + , (1620, 1, "") + , (2235, 1, "") + , (2042, 1, "") + , (1999, 1, "") + , (1884, 1, "") + , (1840, 1, "") + , (1756, 1, "") + , (1619, 1, "") + , (2228, 1, "") + , (2036, 1, "") + , (1994, 1, "") + , (1880, 1, "") + , (1837, 1, "") + , (1754, 1, "") + , (1618, 1, "") + , (2221, 1, "") + , (2030, 1, "") + , (1989, 1, "") + , (1876, 1, "") + , (1834, 1, "") + , (1752, 1, "") + , (1617, 1, "") + , (2214, 1, "") + , (2024, 1, "") + , (1984, 1, "") + , (1872, 1, "") + , (1831, 1, "") + , (1750, 1, "") + , (1616, 1, "") + , (2208, 0, "I") + , (2019, 0, "I") + , (1980, 0, "I") + , (1869, 0, "I") + , (1829, 0, "I") + , (1749, 0, "I") + , (1616, 0, "I") + , (2215, 0, "t") + , (2025, 0, "t") + , (1985, 0, "t") + , (1873, 0, "t") + , (1832, 0, "t") + , (1751, 0, "t") + , (1617, 0, "t") + , (2222, 0, "e") + , (2031, 0, "e") + , (1990, 0, "e") + , (1877, 0, "e") + , (1835, 0, "e") + , (1753, 0, "e") + , (1618, 0, "e") + , (2229, 0, "m") + , (2037, 0, "m") + , (1995, 0, "m") + , (1881, 0, "m") + , (1838, 0, "m") + , (1755, 0, "m") + , (1619, 0, "m") + , (2225, 1, "") + , (2032, 1, "") + , (1989, 1, "") + , (1874, 1, "") + , (1830, 1, "") + , (1746, 1, "") + , (1609, 1, "") + , (2219, 0, "I") + , (2027, 0, "I") + , (1985, 0, "I") + , (1871, 0, "I") + , (1828, 0, "I") + , (1745, 0, "I") + , (1609, 0, "I") + , (1654, 1, "") + , (1654, 0, "I") + , (1780, 1, "") + , (1780, 0, "I") + , (1863, 1, "") + , (1863, 0, "I") + , (1913, 1, "") + , (1912, 1, "") + , (1912, 0, "I") + , (1913, 0, ">") + , (2020, 1, "") + , (2020, 0, "I") + , (2261, 1, "") + , (2093, 1, "") + , (2056, 1, "") + , (2259, 0, "I") + , (2092, 0, "I") + , (2056, 0, "I") + , (4117, 13, "I") + , (4031, 13, "I") + , (3986, 13, "I") + , (3556, 13, "I") + , (3240, 13, "I") + , (2990, 13, "I") + , (4058, 0, ":") + , (3984, 0, ":") + , (3951, 0, ":") + , (3533, 0, ":") + , (3229, 0, ":") + , (2991, 0, ":") + , (4064, 0, " ") + , (3989, 0, " ") + , (3955, 0, " ") + , (3536, 0, " ") + , (3231, 0, " ") + , (2992, 0, " ") + , (4070, 0, "L") + , (3994, 0, "L") + , (3959, 0, "L") + , (3539, 0, "L") + , (3233, 0, "L") + , (2993, 0, "L") + , (4076, 0, "i") + , (3999, 0, "i") + , (3963, 0, "i") + , (3542, 0, "i") + , (3235, 0, "i") + , (2994, 0, "i") + , (4082, 0, "s") + , (4004, 0, "s") + , (3967, 0, "s") + , (3545, 0, "s") + , (3237, 0, "s") + , (2995, 0, "s") + , (4088, 0, "t") + , (4009, 0, "t") + , (3971, 0, "t") + , (3548, 0, "t") + , (3239, 0, "t") + , (2996, 0, "t") + , (4094, 0, "I") + , (4014, 0, "I") + , (3975, 0, "I") + , (3551, 0, "I") + , (3241, 0, "I") + , (2997, 0, "I") + , (4100, 0, "t") + , (4019, 0, "t") + , (3979, 0, "t") + , (3554, 0, "t") + , (3243, 0, "t") + , (2998, 0, "t") + , (4106, 0, "e") + , (4024, 0, "e") + , (3983, 0, "e") + , (3557, 0, "e") + , (3245, 0, "e") + , (2999, 0, "e") + , (4112, 0, "m") + , (4029, 0, "m") + , (3987, 0, "m") + , (3560, 0, "m") + , (3247, 0, "m") + , (3000, 0, "m") + , (3357, 7, "L") + , (3193, 7, "L") + , (3352, 0, "i") + , (3194, 0, "i") + , (3354, 0, "s") + , (3195, 0, "s") + , (3356, 0, "t") + , (3196, 0, "t") + , (3358, 0, "I") + , (3197, 0, "I") + , (3360, 0, "t") + , (3198, 0, "t") + , (3362, 0, "e") + , (3199, 0, "e") + , (3364, 0, "m") + , (3200, 0, "m") + , (3226, 1, "") + , (3226, 0, "I") + , (3392, 1, "") + , (3392, 0, "I") + , (3358, 8, "I") + , (3193, 8, "I") + , (3258, 1, "") + , (3258, 0, "I") + , (3610, 1, "") + , (3610, 0, "I") + , (4118, 1, "") + , (4044, 1, "") + , (4000, 1, "") + , (4116, 0, "I") + , (4043, 0, "I") + , (4000, 0, "I") + , (5363, 13, "I") + , (5364, 0, "L") + , (5364, 1, "") + , (5364, 0, ":") + , (5365, 0, " ") + , (5366, 0, "L") + , (5367, 0, "i") + , (5368, 0, "s") + , (5369, 0, "t") + , (5370, 0, "I") + , (5366, 5, "ListItem") + , (5815, 7, "I") + , (6363, 1, "") + , (6363, 0, "I") + , (6651, 1, "") + , (6651, 0, "I") + , (7032, 0, "// ") + , (6975, 0, "// ") + , (6969, 0, "// ") + , (6910, 0, "// ") + , (6886, 0, "// ") + , (6849, 0, "// ") + , (6826, 0, "// ") + , (6821, 0, "\n ") + , (6826, 0, "s") + , (6827, 0, "t") + , (6828, 0, "r") + , (6829, 0, "u") + , (6830, 0, "c") + , (6831, 0, "t") + , (6832, 0, " ") + , (6833, 0, "I") + , (6834, 0, "t") + , (6835, 0, "e") + , (6836, 0, "m") + , (6837, 0, "(") + , (6838, 0, "u") + , (6839, 0, "8") + , (6840, 0, ")") + , (6841, 0, ";") + , (7002, 3, "") + , (6940, 3, "") + , (6913, 3, "") + , (6873, 3, "") + , (6843, 25, "") + , (6842, 1, "") + , (6852, 10, "L") + , (6853, 0, "i") + , (6854, 0, "s") + , (6855, 0, "t") + , (6856, 0, "I") + , (6857, 0, "t") + , (6858, 0, "e") + , (6859, 0, "m") + , (6865, 10, "I") + , (6866, 0, "t") + , (6867, 0, "e") + , (6868, 0, "m") + , (6872, 23, "") + , (6871, 1, "") + , (7087, 3, "") + , (7001, 3, "") + , (6941, 3, "") + , (6976, 10, "I") + , (6977, 0, "t") + , (6978, 0, "e") + , (6979, 0, "m") + , (7054, 10, "I") + , (7055, 0, "t") + , (7056, 0, "e") + , (7057, 0, "m") + , (7069, 0, "// ") + , (7380, 10, "L") + , (7381, 0, "i") + , (7382, 0, "s") + , (7383, 0, "t") + , (7380, 4, "ListItem") + , (7377, 1, "") + , (7377, 0, "I") + , (8693, 1, "") + , (8693, 0, "I") + , (9206, 1, "") + , (9206, 0, "I") + , (9262, 13, "I") + , (9263, 0, ":") + , (9264, 0, " ") + , (9264, 1, "") + , (9264, 0, " ") + , (9265, 0, "I") + , (9265, 1, "") + , (9265, 0, "L") + , (9266, 0, "i") + , (9267, 0, "s") + , (9268, 0, "t") + , (9269, 0, "I") + , (9265, 5, "ListItem") + , (9280, 1, "") + , (9280, 0, "I") + , (9436, 1, "") + , (9436, 0, "I") + , (11466, 1, "") + , (11240, 1, "") + , (11123, 1, "") + , (10679, 1, "") + , (10583, 1, "") + , (10172, 1, "") + , (10016, 1, "") + , (9943, 1, "") + , (9883, 1, "") + , (9850, 1, "") + , (9605, 1, "") + , (11456, 0, "I") + , (11231, 0, "I") + , (11115, 0, "I") + , (10672, 0, "I") + , (10577, 0, "I") + , (10167, 0, "I") + , (10012, 0, "I") + , (9940, 0, "I") + , (9881, 0, "I") + , (9849, 0, "I") + , (9605, 0, "I") + , (7406, 1, "") + , (7406, 0, "I") + , (10885, 7, "I") + , (11905, 13, "I") + , (11859, 13, "I") + , (11516, 13, "I") + , (11882, 0, ":") + , (11848, 0, ":") + , (11517, 0, ":") + , (11885, 0, " ") + , (11850, 0, " ") + , (11518, 0, " ") + , (11888, 0, "L") + , (11852, 0, "L") + , (11519, 0, "L") + , (11891, 0, "i") + , (11854, 0, "i") + , (11520, 0, "i") + , (11894, 0, "s") + , (11856, 0, "s") + , (11521, 0, "s") + , (11897, 0, "t") + , (11858, 0, "t") + , (11522, 0, "t") + , (11900, 0, "I") + , (11860, 0, "I") + , (11523, 0, "I") + , (11898, 5, "ListItem") + , (11857, 5, "ListItem") + , (11519, 5, "ListItem") + , (11543, 1, "") + , (11543, 0, "I") + , (12017, 1, "") + , (11970, 1, "") + , (11886, 1, "") + , (12015, 0, "I") + , (11969, 0, "I") + , (11886, 0, "I") + , (11940, 1, "") + , (11940, 0, "I") + , (13016, 2, "I") + , (13017, 11, ":") + , (13018, 0, " ") + , (13019, 0, "L") + , (13020, 0, "i") + , (13021, 0, "s") + , (13022, 0, "t") + , (13023, 0, "I") + , (13019, 5, "ListItem") + , (13749, 1, "I") + , (14054, 13, "I") + , (14055, 0, "L") + , (14055, 1, "") + , (14055, 0, ":") + , (14056, 0, " ") + , (14057, 0, "L") + , (14058, 0, "i") + , (14059, 0, "s") + , (14060, 0, "t") + , (14057, 4, "ListItem") + , (14074, 1, "") + , (14074, 0, "I") + , (14804, 1, "I") + , (15969, 15, "") + , (15969, 1, "") + , (16008, 1, "") + , (16007, 1, "") + , (16006, 1, "") + , (15997, 0, " ") + , (15998, 0, "}") + , (16008, 0, ".") + , (16009, 0, "g") + , (16010, 0, "e") + , (16011, 0, "t") + , (16012, 0, "_") + , (16013, 0, "u") + , (16014, 0, "s") + , (16015, 0, "e") + , (16016, 0, "r") + , (16009, 8, "get_usersize") + , (16021, 0, "(") + , (16022, 0, ")") + , (17769, 7, "I") + , (17476, 7, "I") + , (17052, 7, "I") + , (16626, 7, "I") + , (18672, 1, "I") + , (19448, 13, "I") + , (19407, 13, "I") + , (18720, 13, "I") + , (19425, 0, ":") + , (19396, 0, ":") + , (18721, 0, ":") + , (19428, 0, "L") + , (19398, 0, "L") + , (18722, 0, "L") + , (19431, 0, "i") + , (19400, 0, "i") + , (18723, 0, "i") + , (19434, 0, "s") + , (19402, 0, "s") + , (18724, 0, "s") + , (19437, 0, "t") + , (19404, 0, "t") + , (18725, 0, "t") + , (19440, 0, "I") + , (19406, 0, "I") + , (18726, 0, "I") + , (19438, 5, "ListItem") + , (19403, 5, "ListItem") + , (18722, 5, "ListItem") + , (19444, 0, " ") + , (19406, 0, " ") + , (18722, 0, " ") + , (20124, 1, "") + , (19925, 1, "") + , (19479, 1, "") + , (19432, 1, "") + , (18754, 1, "") + , (20120, 0, "I") + , (19922, 0, "I") + , (19477, 0, "I") + , (19431, 0, "I") + , (18754, 0, "I") + , (20877, 13, "I") + , (20093, 13, "I") + , (19894, 13, "I") + , (20854, 0, "L") + , (20082, 0, "L") + , (19895, 0, "L") + , (20856, 1, "") + , (20083, 1, "") + , (19895, 1, "") + , (20854, 0, ":") + , (20082, 0, ":") + , (19895, 0, ":") + , (20857, 0, " ") + , (20084, 0, " ") + , (19896, 0, " ") + , (20860, 0, "L") + , (20086, 0, "L") + , (19897, 0, "L") + , (20863, 0, "i") + , (20088, 0, "i") + , (19898, 0, "i") + , (20866, 0, "s") + , (20090, 0, "s") + , (19899, 0, "s") + , (20869, 0, "t") + , (20092, 0, "t") + , (19900, 0, "t") + , (20872, 0, "I") + , (20094, 0, "I") + , (19901, 0, "I") + , (20870, 5, "ListItem") + , (20091, 5, "ListItem") + , (19897, 5, "ListItem") + , (20963, 7, "I") + , (20664, 7, "I") + , (20602, 7, "I") + , (20025, 7, "I") + , (20001, 7, "I") + , (20060, 1, "") + , (20060, 0, "I") + , (20132, 1, "") + , (20132, 0, "I") + , (20878, 1, "I") + , (20915, 1, "") + , (20915, 0, "I") + , (21389, 7, "I") + , (22261, 13, "I: ListItem") + , (22290, 1, "") + , (22290, 0, "I") + , (22303, 1, "") + , (22303, 0, "I") + , (22357, 1, "") + , (22357, 0, "I") + , (24917, 1, "") + , (24114, 1, "") + , (23934, 1, "") + , (23632, 1, "") + , (23554, 1, "") + , (24913, 0, "I") + , (24111, 0, "I") + , (23932, 0, "I") + , (23631, 0, "I") + , (23554, 0, "I") + , (25809, 1, "") + , (25809, 0, "I") + , (29321, 1, "I") + , (30812, 1, "") + , (29418, 1, "") + , (30811, 0, "I") + , (29418, 0, "I") + , (31351, 1, "I") + , (31351, 16, "") + , (31388, 1, "") + , (31388, 0, ".") + , (31389, 0, "g") + , (31390, 0, "e") + , (31391, 0, "t") + , (31392, 0, "_") + , (31393, 0, "u") + , (31394, 0, "s") + , (31389, 6, "get_usersize") + , (31401, 0, "(") + , (31402, 0, ")") + , (31360, 1, "") + , (31997, 1, "") + , (31944, 1, "") + , (31996, 0, "I") + , (31944, 0, "I") + , (31997, 1, "") + , (31944, 1, "") + , (31996, 0, "C") + , (31944, 0, "C") + , (35012, 1, "") + , (34882, 1, "") + , (33807, 1, "") + , (33771, 1, "") + , (32138, 1, "") + , (31997, 1, "") + , (31944, 1, "") + , (35006, 0, "I") + , (34877, 0, "I") + , (33803, 0, "I") + , (33768, 0, "I") + , (32136, 0, "I") + , (31996, 0, "I") + , (31944, 0, "I") + , (33836, 7, "I") + , (34380, 16, "") + , (34384, 1, "") + , (34384, 0, ".") + , (34385, 0, "g") + , (34386, 0, "e") + , (34387, 0, "t") + , (34388, 0, "_") + , (34389, 0, "u") + , (34390, 0, "s") + , (34391, 0, "e") + , (34392, 0, "r") + , (34385, 8, "get_usersize") + , (34397, 0, "(") + , (34398, 0, ")") + , (34971, 0, "t") + , (34972, 0, "e") + , (34973, 0, "r") + , (35101, 0, "t") + , (35102, 0, "e") + , (35103, 0, "r") + , (35120, 7, "I") + , (35655, 7, "I") + , (35757, 1, "") + , (35757, 0, "I") + , (38936, 0, "t") + , (38937, 0, "e") + , (38938, 0, "r") + , (38972, 1, "") + , (38972, 0, "I") + , (39029, 0, "t") + , (39030, 0, "e") + , (39031, 0, "r") + , (39057, 7, "I") + , (41720, 1, "") + , (41720, 0, "I") + , (45343, 1, "") + , (45343, 0, "I") + , (46058, 1, "I") + , (47505, 7, "I") + , (47726, 1, "I") + , (51262, 0, "t") + , (51263, 0, "e") + , (51264, 0, "r") + , (51352, 0, "t") + , (51353, 0, "e") + , (51354, 0, "r") + , (51392, 0, "t") + , (51393, 0, "e") + , (51394, 0, "r") + , (51420, 7, "I") + , (51298, 1, "") + , (51298, 0, "I") + , (52387, 1, "I") + , (52816, 1, "I") + , (54183, 1, "I") + , (54197, 7, "I") + , (54629, 7, "I") + , (55576, 13, "I::get_usersize(") + , (55576, 16, "C: ListConfig") + , (55576, 13, "I") + , (55577, 0, ":") + , (55578, 0, " ") + , (55579, 0, "L") + , (55580, 0, "i") + , (55581, 0, "s") + , (55582, 0, "t") + , (55583, 0, "I") + , (55579, 5, "ListItem") + , (56554, 1, "") + , (56144, 1, "") + , (55605, 1, "") + , (56552, 0, "I") + , (56143, 0, "I") + , (55605, 0, "I") + , (55618, 1, "") + , (55618, 0, "I") + , (55630, 7, "I") + , (56845, 7, "I") + , (56805, 7, "I") + , (56764, 7, "I") + , (56728, 7, "I") + , (56583, 7, "I") + , (55680, 7, "I") + , (56101, 13, "I: ListItem") + , (56152, 1, "") + , (56152, 0, "I") + , (56504, 13, "I: ListItem") + , (56611, 1, "") + , (56611, 0, "I") + , (56611, 1, "") + , (56611, 0, "C") + , (56504, 11, "C: ListConfig") + , (56152, 1, "") + , (56152, 0, "I") + , (56504, 13, "I: ListItem") + , (56611, 1, "") + , (56611, 0, "I") + , (56502, 0, "t") + , (56503, 0, "e") + , (56504, 0, "r") + , (56551, 0, "t") + , (56552, 0, "e") + , (56553, 0, "r") + , (56603, 0, "t") + , (56604, 0, "e") + , (56605, 0, "r") + , (56677, 13, "I: ListItem") + , (56737, 1, "") + , (56737, 0, "I") + , (56706, 1, "") + , (56706, 0, "I") + , (57496, 13, "I: ListItem") + , (57373, 13, "I: ListItem") + , (57220, 13, "I: ListItem") + , (56997, 13, "I: ListItem") + , (57410, 1, "") + , (57247, 1, "") + , (57026, 1, "") + , (57408, 0, "I") + , (57246, 0, "I") + , (57026, 0, "I") + , (57272, 1, "") + , (57054, 1, "") + , (57271, 0, "I") + , (57054, 0, "I") + , (57558, 7, "I") + , (57066, 7, "I") + , (57527, 1, "I") + , (2839, 6, "") + , (2827, 6, "") + , (6884, 18, "&") + , (6885, 0, "s") + , (6886, 0, "e") + , (6887, 0, "l") + , (6888, 0, "f") + , (57459, 1, "") + , (57338, 1, "") + , (57187, 1, "") + , (56972, 1, "") + , (56652, 1, "") + , (56482, 1, "") + , (56076, 1, "") + , (55551, 1, "") + , (22236, 1, "") + , (20824, 1, "") + , (20054, 1, "") + , (19869, 1, "") + , (19419, 1, "") + , (19380, 1, "") + , (18695, 1, "") + , (14029, 1, "") + , (12991, 1, "") + , (11876, 1, "") + , (11832, 1, "") + , (11491, 1, "") + , (9237, 1, "") + , (7352, 1, "") + , (5351, 1, "") + , (4083, 1, "") + , (3999, 1, "") + , (3956, 1, "") + , (3528, 1, "") + , (3220, 1, "") + , (2978, 1, "") + , (2225, 1, "") + , (2032, 1, "") + , (1989, 1, "") + , (1874, 1, "") + , (1830, 1, "") + , (1746, 1, "") + , (1609, 1, "") + , (57424, 0, "I") + , (57304, 0, "I") + , (57154, 0, "I") + , (56940, 0, "I") + , (56621, 0, "I") + , (56452, 0, "I") + , (56047, 0, "I") + , (55523, 0, "I") + , (22209, 0, "I") + , (20798, 0, "I") + , (20029, 0, "I") + , (19845, 0, "I") + , (19396, 0, "I") + , (19358, 0, "I") + , (18674, 0, "I") + , (14009, 0, "I") + , (12972, 0, "I") + , (11858, 0, "I") + , (11815, 0, "I") + , (11475, 0, "I") + , (9222, 0, "I") + , (7338, 0, "I") + , (5338, 0, "I") + , (4071, 0, "I") + , (3988, 0, "I") + , (3946, 0, "I") + , (3519, 0, "I") + , (3212, 0, "I") + , (2971, 0, "I") + , (2219, 0, "I") + , (2027, 0, "I") + , (1985, 0, "I") + , (1871, 0, "I") + , (1828, 0, "I") + , (1745, 0, "I") + , (1609, 0, "I") + , (57459, 1, "") + , (57338, 1, "") + , (57187, 1, "") + , (56972, 1, "") + , (56652, 1, "") + , (56482, 1, "") + , (56076, 1, "") + , (55551, 1, "") + , (22236, 1, "") + , (20824, 1, "") + , (20054, 1, "") + , (19869, 1, "") + , (19419, 1, "") + , (19380, 1, "") + , (18695, 1, "") + , (14029, 1, "") + , (12991, 1, "") + , (11876, 1, "") + , (11832, 1, "") + , (11491, 1, "") + , (9237, 1, "") + , (7352, 1, "") + , (5351, 1, "") + , (4083, 1, "") + , (3999, 1, "") + , (3956, 1, "") + , (3528, 1, "") + , (3220, 1, "") + , (2978, 1, "") + , (2225, 1, "") + , (2032, 1, "") + , (1989, 1, "") + , (1874, 1, "") + , (1830, 1, "") + , (1746, 1, "") + , (1609, 1, "") + , (57424, 0, "T") + , (57304, 0, "T") + , (57154, 0, "T") + , (56940, 0, "T") + , (56621, 0, "T") + , (56452, 0, "T") + , (56047, 0, "T") + , (55523, 0, "T") + , (22209, 0, "T") + , (20798, 0, "T") + , (20029, 0, "T") + , (19845, 0, "T") + , (19396, 0, "T") + , (19358, 0, "T") + , (18674, 0, "T") + , (14009, 0, "T") + , (12972, 0, "T") + , (11858, 0, "T") + , (11815, 0, "T") + , (11475, 0, "T") + , (9222, 0, "T") + , (7338, 0, "T") + , (5338, 0, "T") + , (4071, 0, "T") + , (3988, 0, "T") + , (3946, 0, "T") + , (3519, 0, "T") + , (3212, 0, "T") + , (2971, 0, "T") + , (2219, 0, "T") + , (2027, 0, "T") + , (1985, 0, "T") + , (1871, 0, "T") + , (1828, 0, "T") + , (1745, 0, "T") + , (1609, 0, "T") + , (57459, 1, "") + , (57338, 1, "") + , (57187, 1, "") + , (56972, 1, "") + , (56652, 1, "") + , (56482, 1, "") + , (56076, 1, "") + , (55551, 1, "") + , (22236, 1, "") + , (20824, 1, "") + , (20054, 1, "") + , (19869, 1, "") + , (19419, 1, "") + , (19380, 1, "") + , (18695, 1, "") + , (14029, 1, "") + , (12991, 1, "") + , (11876, 1, "") + , (11832, 1, "") + , (11491, 1, "") + , (9237, 1, "") + , (7352, 1, "") + , (5351, 1, "") + , (4083, 1, "") + , (3999, 1, "") + , (3956, 1, "") + , (3528, 1, "") + , (3220, 1, "") + , (2978, 1, "") + , (2225, 1, "") + , (2032, 1, "") + , (1989, 1, "") + , (1874, 1, "") + , (1830, 1, "") + , (1746, 1, "") + , (1609, 1, "") + , (57424, 0, "V") + , (57304, 0, "V") + , (57154, 0, "V") + , (56940, 0, "V") + , (56621, 0, "V") + , (56452, 0, "V") + , (56047, 0, "V") + , (55523, 0, "V") + , (22209, 0, "V") + , (20798, 0, "V") + , (20029, 0, "V") + , (19845, 0, "V") + , (19396, 0, "V") + , (19358, 0, "V") + , (18674, 0, "V") + , (14009, 0, "V") + , (12972, 0, "V") + , (11858, 0, "V") + , (11815, 0, "V") + , (11475, 0, "V") + , (9222, 0, "V") + , (7338, 0, "V") + , (5338, 0, "V") + , (4071, 0, "V") + , (3988, 0, "V") + , (3946, 0, "V") + , (3519, 0, "V") + , (3212, 0, "V") + , (2971, 0, "V") + , (2219, 0, "V") + , (2027, 0, "V") + , (1985, 0, "V") + , (1871, 0, "V") + , (1828, 0, "V") + , (1745, 0, "V") + , (1609, 0, "V") + , (57459, 1, "") + , (57338, 1, "") + , (57187, 1, "") + , (56972, 1, "") + , (56652, 1, "") + , (56482, 1, "") + , (56076, 1, "") + , (55551, 1, "") + , (22236, 1, "") + , (20824, 1, "") + , (20054, 1, "") + , (19869, 1, "") + , (19419, 1, "") + , (19380, 1, "") + , (18695, 1, "") + , (14029, 1, "") + , (12991, 1, "") + , (11876, 1, "") + , (11832, 1, "") + , (11491, 1, "") + , (9237, 1, "") + , (7352, 1, "") + , (5351, 1, "") + , (4083, 1, "") + , (3999, 1, "") + , (3956, 1, "") + , (3528, 1, "") + , (3220, 1, "") + , (2978, 1, "") + , (2225, 1, "") + , (2032, 1, "") + , (1989, 1, "") + , (1874, 1, "") + , (1830, 1, "") + , (1746, 1, "") + , (1609, 1, "") + , (57424, 0, "I") + , (57304, 0, "I") + , (57154, 0, "I") + , (56940, 0, "I") + , (56621, 0, "I") + , (56452, 0, "I") + , (56047, 0, "I") + , (55523, 0, "I") + , (22209, 0, "I") + , (20798, 0, "I") + , (20029, 0, "I") + , (19845, 0, "I") + , (19396, 0, "I") + , (19358, 0, "I") + , (18674, 0, "I") + , (14009, 0, "I") + , (12972, 0, "I") + , (11858, 0, "I") + , (11815, 0, "I") + , (11475, 0, "I") + , (9222, 0, "I") + , (7338, 0, "I") + , (5338, 0, "I") + , (4071, 0, "I") + , (3988, 0, "I") + , (3946, 0, "I") + , (3519, 0, "I") + , (3212, 0, "I") + , (2971, 0, "I") + , (2219, 0, "I") + , (2027, 0, "I") + , (1985, 0, "I") + , (1871, 0, "I") + , (1828, 0, "I") + , (1745, 0, "I") + , (1609, 0, "I") + , (57460, 0, "t") + , (57339, 0, "t") + , (57188, 0, "t") + , (56973, 0, "t") + , (56653, 0, "t") + , (56483, 0, "t") + , (56077, 0, "t") + , (55552, 0, "t") + , (22237, 0, "t") + , (20825, 0, "t") + , (20055, 0, "t") + , (19870, 0, "t") + , (19420, 0, "t") + , (19381, 0, "t") + , (18696, 0, "t") + , (14030, 0, "t") + , (12992, 0, "t") + , (11877, 0, "t") + , (11833, 0, "t") + , (11492, 0, "t") + , (9238, 0, "t") + , (7353, 0, "t") + , (5352, 0, "t") + , (4084, 0, "t") + , (4000, 0, "t") + , (3957, 0, "t") + , (3529, 0, "t") + , (3221, 0, "t") + , (2979, 0, "t") + , (2226, 0, "t") + , (2033, 0, "t") + , (1990, 0, "t") + , (1875, 0, "t") + , (1831, 0, "t") + , (1747, 0, "t") + , (1610, 0, "t") + , (57496, 0, "e") + , (57374, 0, "e") + , (57222, 0, "e") + , (57006, 0, "e") + , (56685, 0, "e") + , (56514, 0, "e") + , (56107, 0, "e") + , (55581, 0, "e") + , (22265, 0, "e") + , (20852, 0, "e") + , (20081, 0, "e") + , (19895, 0, "e") + , (19444, 0, "e") + , (19404, 0, "e") + , (18718, 0, "e") + , (14051, 0, "e") + , (13012, 0, "e") + , (11896, 0, "e") + , (11851, 0, "e") + , (11509, 0, "e") + , (9254, 0, "e") + , (7368, 0, "e") + , (5366, 0, "e") + , (4097, 0, "e") + , (4012, 0, "e") + , (3968, 0, "e") + , (3539, 0, "e") + , (3230, 0, "e") + , (2987, 0, "e") + , (2233, 0, "e") + , (2039, 0, "e") + , (1995, 0, "e") + , (1879, 0, "e") + , (1834, 0, "e") + , (1749, 0, "e") + , (1611, 0, "e") + , (57532, 0, "m") + , (57409, 0, "m") + , (57256, 0, "m") + , (57039, 0, "m") + , (56717, 0, "m") + , (56545, 0, "m") + , (56137, 0, "m") + , (55610, 0, "m") + , (22293, 0, "m") + , (20879, 0, "m") + , (20107, 0, "m") + , (19920, 0, "m") + , (19468, 0, "m") + , (19427, 0, "m") + , (18740, 0, "m") + , (14072, 0, "m") + , (13032, 0, "m") + , (11915, 0, "m") + , (11869, 0, "m") + , (11526, 0, "m") + , (9270, 0, "m") + , (7383, 0, "m") + , (5380, 0, "m") + , (4110, 0, "m") + , (4024, 0, "m") + , (3979, 0, "m") + , (3549, 0, "m") + , (3239, 0, "m") + , (2995, 0, "m") + , (2240, 0, "m") + , (2045, 0, "m") + , (2000, 0, "m") + , (1883, 0, "m") + , (1837, 0, "m") + , (1751, 0, "m") + , (1612, 0, "m") + , (57485, 0, "t") + , (57319, 0, "t") + , (57101, 0, "t") + , (56890, 0, "t") + , (56856, 0, "t") + , (56791, 0, "t") + , (56778, 0, "t") + , (56689, 0, "t") + , (56610, 0, "t") + , (56594, 0, "t") + , (56196, 0, "t") + , (55668, 0, "t") + , (54243, 0, "t") + , (51358, 0, "t") + , (47565, 0, "t") + , (46118, 0, "t") + , (39032, 0, "t") + , (35067, 0, "t") + , (34934, 0, "t") + , (33867, 0, "t") + , (33831, 0, "t") + , (32198, 0, "t") + , (32057, 0, "t") + , (32004, 0, "t") + , (30872, 0, "t") + , (29478, 0, "t") + , (29381, 0, "t") + , (24977, 0, "t") + , (24174, 0, "t") + , (23994, 0, "t") + , (23692, 0, "t") + , (23614, 0, "t") + , (22350, 0, "t") + , (21446, 0, "t") + , (20935, 0, "t") + , (20644, 0, "t") + , (20162, 0, "t") + , (20052, 0, "t") + , (19974, 0, "t") + , (19527, 0, "t") + , (19477, 0, "t") + , (18796, 0, "t") + , (18711, 0, "t") + , (14843, 0, "t") + , (14113, 0, "t") + , (13785, 0, "t") + , (12050, 0, "t") + , (12003, 0, "t") + , (11916, 0, "t") + , (11570, 0, "t") + , (11484, 0, "t") + , (11258, 0, "t") + , (11141, 0, "t") + , (10703, 0, "t") + , (10607, 0, "t") + , (10196, 0, "t") + , (10040, 0, "t") + , (9967, 0, "t") + , (9907, 0, "t") + , (9874, 0, "t") + , (9629, 0, "t") + , (9460, 0, "t") + , (9304, 0, "t") + , (9227, 0, "t") + , (8714, 0, "t") + , (7427, 0, "t") + , (6682, 0, "t") + , (6394, 0, "t") + , (5846, 0, "t") + , (4146, 0, "t") + , (4069, 0, "t") + , (4022, 0, "t") + , (3629, 0, "t") + , (3394, 0, "t") + , (3274, 0, "t") + , (3232, 0, "t") + , (2283, 0, "t") + , (2112, 0, "t") + , (2075, 0, "t") + , (2036, 0, "t") + , (1925, 0, "t") + , (1873, 0, "t") + , (1787, 0, "t") + , (1658, 0, "t") + , (57569, 0, "e") + , (57402, 0, "e") + , (57183, 0, "e") + , (56971, 0, "e") + , (56936, 0, "e") + , (56870, 0, "e") + , (56856, 0, "e") + , (56766, 0, "e") + , (56686, 0, "e") + , (56669, 0, "e") + , (56270, 0, "e") + , (55741, 0, "e") + , (54315, 0, "e") + , (51429, 0, "e") + , (47635, 0, "e") + , (46187, 0, "e") + , (39100, 0, "e") + , (35134, 0, "e") + , (35000, 0, "e") + , (33932, 0, "e") + , (33895, 0, "e") + , (32261, 0, "e") + , (32119, 0, "e") + , (32065, 0, "e") + , (30932, 0, "e") + , (29537, 0, "e") + , (29439, 0, "e") + , (25034, 0, "e") + , (24230, 0, "e") + , (24049, 0, "e") + , (23746, 0, "e") + , (23667, 0, "e") + , (22402, 0, "e") + , (21497, 0, "e") + , (20985, 0, "e") + , (20693, 0, "e") + , (20210, 0, "e") + , (20099, 0, "e") + , (20020, 0, "e") + , (19572, 0, "e") + , (19521, 0, "e") + , (18839, 0, "e") + , (18753, 0, "e") + , (14884, 0, "e") + , (14153, 0, "e") + , (13824, 0, "e") + , (12088, 0, "e") + , (12040, 0, "e") + , (11952, 0, "e") + , (11605, 0, "e") + , (11518, 0, "e") + , (11291, 0, "e") + , (11173, 0, "e") + , (10734, 0, "e") + , (10637, 0, "e") + , (10225, 0, "e") + , (10068, 0, "e") + , (9994, 0, "e") + , (9933, 0, "e") + , (9899, 0, "e") + , (9653, 0, "e") + , (9483, 0, "e") + , (9326, 0, "e") + , (9248, 0, "e") + , (8734, 0, "e") + , (7446, 0, "e") + , (6700, 0, "e") + , (6411, 0, "e") + , (5862, 0, "e") + , (4161, 0, "e") + , (4083, 0, "e") + , (4035, 0, "e") + , (3641, 0, "e") + , (3405, 0, "e") + , (3284, 0, "e") + , (3241, 0, "e") + , (2291, 0, "e") + , (2119, 0, "e") + , (2081, 0, "e") + , (2041, 0, "e") + , (1929, 0, "e") + , (1876, 0, "e") + , (1789, 0, "e") + , (1659, 0, "e") + , (57653, 0, "m") + , (57485, 0, "m") + , (57265, 0, "m") + , (57052, 0, "m") + , (57016, 0, "m") + , (56949, 0, "m") + , (56934, 0, "m") + , (56843, 0, "m") + , (56762, 0, "m") + , (56744, 0, "m") + , (56344, 0, "m") + , (55814, 0, "m") + , (54387, 0, "m") + , (51500, 0, "m") + , (47705, 0, "m") + , (46256, 0, "m") + , (39168, 0, "m") + , (35201, 0, "m") + , (35066, 0, "m") + , (33997, 0, "m") + , (33959, 0, "m") + , (32324, 0, "m") + , (32181, 0, "m") + , (32126, 0, "m") + , (30992, 0, "m") + , (29596, 0, "m") + , (29497, 0, "m") + , (25091, 0, "m") + , (24286, 0, "m") + , (24104, 0, "m") + , (23800, 0, "m") + , (23720, 0, "m") + , (22454, 0, "m") + , (21548, 0, "m") + , (21035, 0, "m") + , (20742, 0, "m") + , (20258, 0, "m") + , (20146, 0, "m") + , (20066, 0, "m") + , (19617, 0, "m") + , (19565, 0, "m") + , (18882, 0, "m") + , (18795, 0, "m") + , (14925, 0, "m") + , (14193, 0, "m") + , (13863, 0, "m") + , (12126, 0, "m") + , (12077, 0, "m") + , (11988, 0, "m") + , (11640, 0, "m") + , (11552, 0, "m") + , (11324, 0, "m") + , (11205, 0, "m") + , (10765, 0, "m") + , (10667, 0, "m") + , (10254, 0, "m") + , (10096, 0, "m") + , (10021, 0, "m") + , (9959, 0, "m") + , (9924, 0, "m") + , (9677, 0, "m") + , (9506, 0, "m") + , (9348, 0, "m") + , (9269, 0, "m") + , (8754, 0, "m") + , (7465, 0, "m") + , (6718, 0, "m") + , (6428, 0, "m") + , (5878, 0, "m") + , (4176, 0, "m") + , (4097, 0, "m") + , (4048, 0, "m") + , (3653, 0, "m") + , (3416, 0, "m") + , (3294, 0, "m") + , (3250, 0, "m") + , (2299, 0, "m") + , (2126, 0, "m") + , (2087, 0, "m") + , (2046, 0, "m") + , (1933, 0, "m") + , (1879, 0, "m") + , (1791, 0, "m") + , (1660, 0, "m") + , (3230, 0, "t") + , (3231, 0, "e") + , (3232, 0, "m") + , (3400, 0, "t") + , (3401, 0, "e") + , (3402, 0, "m") + , (55968, 0, "t") + , (11008, 0, "t") + , (55970, 0, "e") + , (11009, 0, "e") + , (55972, 0, "m") + , (11010, 0, "m") + , (57875, 0, "t") + , (12090, 0, "t") + , (57877, 0, "e") + , (12091, 0, "e") + , (57879, 0, "m") + , (12092, 0, "m") + , (17925, 0, "t") + , (16800, 0, "t") + , (17927, 0, "e") + , (16801, 0, "e") + , (17929, 0, "m") + , (16802, 0, "m") + , (17223, 0, "t") + , (17224, 0, "e") + , (17225, 0, "m") + , (17644, 0, "t") + , (17645, 0, "e") + , (17646, 0, "m") + , (17647, 0, "8") + , (17647, 1, "") + , (20235, 0, "tem") + , (20279, 0, "tem") + , (20360, 0, "tem") + , (20880, 0, "tem") + , (21158, 0, "tem") + , (21185, 0, "tem") + , (22561, 0, "tem") + , (22618, 0, "tem") + , (26088, 0, "tem") + , (34142, 0, "tem") + , (35341, 0, "tem") + , (35438, 0, "tem") + , (35976, 0, "tem") + , (36081, 0, "tem") + , (39321, 0, "tem") + , (39390, 0, "tem") + , (42056, 0, "tem") + , (45682, 0, "tem") + , (48074, 0, "tem") + , (51774, 0, "tem") + , (52744, 0, "tem") + , (53176, 0, "tem") + , (54563, 0, "tem") + , (54998, 0, "tem") + , (55996, 0, "tem") + , (55996, 3, "") + , (57692, 0, "tem") + , (57474, 0, "tem") + , (57145, 0, "tem") + , (56539, 0, "tem") + , (55996, 0, "tem") + , (57498, 0, "tem") + , (57166, 0, "tem") + , (56011, 0, "tem") + , (56984, 0, "tem") + , (58017, 0, "tem") + , (39320, 4, "I") + , (39321, 0, "t") + , (39322, 0, "e") + , (39323, 0, "r") + , (2720, 0, " ") + , (2721, 0, "w") + , (2722, 0, "h") + , (2723, 0, "e") + , (2724, 0, "r") + , (2725, 0, "e") + , (2726, 0, " ") + , (2727, 0, "S") + , (2728, 0, "e") + , (2729, 0, "l") + , (2730, 0, "f") + , (2731, 0, ":") + , (2732, 0, " ") + , (2733, 0, "L") + , (2734, 0, "S") + , (2734, 1, "") + , (2733, 1, "") + , (2733, 0, "S") + , (2734, 0, "i") + , (2735, 0, "z") + , (2736, 0, "e") + , (2737, 0, "d") + , (2720, 18, "") + , (2374, 0, " where Self: Sized") + , (2374, 18, ":") + , (2375, 0, " ") + , (2376, 0, "S") + , (2377, 0, "i") + , (2378, 0, "z") + , (2379, 0, "e") + , (2380, 0, "d") + , (35350, 1, "") + , (35349, 1, "") + , (35348, 1, "") + , (35348, 0, "t") + , (35349, 0, "e") + , (35350, 0, "r") + , (56965, 30, "") + , (56954, 11, "") + , (56907, 0, ": ExactSizeIterator") + , (56907, 30, "") + , (56954, 0, " where Iter") + , (56965, 0, ": ExactSizeIterator") + , (56913, 0, "x") + , (56995, 0, "x") + , (56935, 0, "x") + , (56955, 0, "x") + , (57042, 0, "x") + , (57042, 1, "") + , (56955, 1, "") + , (56935, 1, "") + , (56995, 1, "") + , (56913, 1, "") + , (35348, 3, "") + , (35348, 0, "ter") + , (56961, 4, "I") + , (56903, 4, "I") + , (57010, 4, "I") + , (56927, 4, "I") + , (51751, 4, "I") + , (51711, 4, "I") + , (51618, 4, "I") + , (39367, 4, "I") + , (39327, 4, "I") + , (39268, 4, "I") + , (35424, 4, "I") + , (35347, 4, "I") + , (35288, 4, "I") + , (31657, 0, "&") + , (2999, 4, "") + , (2998, 1, "") + , (2997, 1, "") + , (3000, 0, "\n") + , (3001, 0, "\n") + , (3001, 0, "i") + , (3002, 0, "m") + , (3003, 0, "p") + , (3004, 0, "l") + , (3005, 0, " ") + , (3006, 0, "L") + , (3007, 0, "i") + , (3008, 0, "s") + , (3009, 0, "t") + , (3010, 0, "I") + , (3011, 0, "t") + , (3012, 0, "e") + , (3013, 0, "m") + , (3014, 0, " ") + , (3015, 0, "f") + , (3016, 0, "o") + , (3017, 0, "r") + , (3018, 0, " ") + , (3005, 0, "<") + , (3006, 0, "T") + , (3007, 0, ">") + , (3021, 1, "") + , (3017, 0, "<") + , (3018, 0, "T") + , (3019, 0, ">") + , (3024, 0, " ") + , (3025, 0, "T") + , (3026, 0, ":") + , (3027, 0, " ") + , (3028, 0, "S") + , (3029, 0, "i") + , (3030, 0, "z") + , (3031, 0, "e") + , (3032, 0, "d") + , (3033, 0, " ") + , (3034, 0, "{") + , (3035, 0, "}") + , (3021, 3, "w") + , (3022, 0, "h") + , (3023, 0, "e") + , (3024, 0, "r") + , (3025, 0, "e") + , (3020, 0, " ") + , (3021, 0, "f") + , (3022, 0, "o") + , (3023, 0, "r") + , (3024, 0, " ") + , (3025, 0, "T") + , (3019, 1, "") + , (3018, 1, "") + , (3017, 1, "") + , (3000, 42, "") + , (2853, 1, "") + , (2853, 0, "s") + , (55959, 0, ",") + , (55960, 0, " ") + , (55961, 0, "R") + , (55962, 0, "h") + , (55963, 0, "s") + , (55964, 0, ":") + , (55965, 0, " ") + , (55966, 0, "?") + , (55967, 0, "S") + , (55968, 0, "i") + , (55969, 0, "z") + , (55970, 0, "e") + , (55971, 0, "d") + , (55972, 0, " ") + , (55973, 0, "+") + , (55974, 0, " ") + , (55974, 1, "") + , (55973, 1, "") + , (55972, 0, " ") + , (55973, 0, "=") + , (55974, 0, " ") + , (55975, 0, "I") + , (55976, 0, "t") + , (55977, 0, "e") + , (55978, 0, "m") + , (55979, 1, "") + , (56020, 0, "<") + , (56021, 0, "R") + , (56022, 0, "h") + , (56023, 0, "s") + , (56024, 0, ">") + , (56063, 4, "R") + , (56064, 0, "h") + , (56065, 0, "s") + , (55972, 7, "") + , (55959, 13, "") + , (56026, 0, "<") + , (56027, 0, ", Rhs: ?Sized") + , (56040, 0, ">") + , (56028, 1, "") + , (56027, 1, "") + , (55978, 27, "") + , (56042, 0, " ") + , (56043, 0, " where Item: PartialEq") + , (56043, 1, "") + , (56003, 8, "") + , (6963, 45, "") + , (6962, 1, "") + , (6934, 34, " impl ListItem for Item { }") + , (6962, 1, "") + , (2999, 0, "\n") + , (3000, 0, "\n") + , (3001, 0, "/") + , (3002, 0, "/") + , (3003, 0, " ") + , (3004, 0, "B") + , (3005, 0, "l") + , (3006, 0, "a") + , (3007, 0, "n") + , (3008, 0, "k") + , (3009, 0, "e") + , (3010, 0, "t") + , (3011, 0, " ") + , (3012, 0, "i") + , (3013, 0, "m") + , (3014, 0, "p") + , (3015, 0, "l") + , (3016, 0, "e") + , (3017, 0, "m") + , (3018, 0, "e") + , (3019, 0, "n") + , (3020, 0, "t") + , (3021, 0, "a") + , (3022, 0, "t") + , (3023, 0, "i") + , (3024, 0, "o") + , (3025, 0, "n") + , (3026, 0, "s") + , (3027, 0, " ") + , (3028, 0, "f") + , (3029, 0, "o") + , (3030, 0, "r") + , (3031, 0, " ") + , (3032, 0, "b") + , (3033, 0, "u") + , (3034, 0, "i") + , (3035, 0, "l") + , (3036, 0, "t") + , (3037, 0, "i") + , (3038, 0, "n") + , (3032, 0, "s") + , (3033, 0, "o") + , (3034, 0, "m") + , (3035, 0, "e") + , (3036, 0, " ") + , (3037, 0, "c") + , (3038, 0, "o") + , (3039, 0, "m") + , (3040, 0, "m") + , (3041, 0, "o") + , (3042, 0, "n") + , (3043, 0, " ") + , (3051, 0, " ") + , (3052, 0, "t") + , (3053, 0, "y") + , (3054, 0, "p") + , (3055, 0, "e") + , (3056, 0, "s") + , (3057, 0, ";") + , (3058, 0, " ") + , (3058, 1, "") + , (3057, 1, "") + , (3057, 0, ",") + , (3058, 0, " ") + , (3059, 0, "b") + , (3060, 0, "e") + , (3061, 0, "c") + , (3062, 0, "a") + , (3063, 0, "u") + , (3064, 0, "s") + , (3065, 0, "e") + , (3066, 0, " ") + , (3067, 0, "i") + , (3068, 0, "t") + , (3069, 0, "s") + , (3070, 0, " ") + , (3071, 0, "i") + , (3072, 0, "m") + , (3073, 0, "p") + , (3074, 0, "o") + , (3075, 0, "s") + , (3076, 0, "s") + , (3077, 0, "i") + , (3078, 0, "b") + , (3079, 0, "l") + , (3080, 0, "e") + , (3081, 0, " ") + , (3082, 0, "t") + , (3083, 0, "o") + , (3084, 0, " ") + , (3085, 0, "a") + , (3086, 0, "d") + , (3087, 0, "d") + , (3088, 0, " ") + , (3089, 0, "t") + , (3090, 0, "h") + , (3091, 0, "e") + , (3092, 0, "s") + , (3093, 0, "e") + , (3094, 0, " ") + , (3095, 0, "l") + , (3096, 0, "a") + , (3097, 0, "t") + , (3098, 0, "e") + , (3099, 0, "r") + , (3100, 0, ".") + , (3101, 0, " ") + , (3102, 0, "T") + , (3103, 0, "h") + , (3104, 0, "e") + , (3105, 0, "s") + , (3106, 0, "e") + , (3107, 0, " ") + , (3108, 0, "a") + , (3109, 0, "l") + , (3110, 0, "l") + , (3111, 0, " ") + , (3112, 0, "u") + , (3113, 0, "s") + , (3114, 0, "e") + , (3115, 0, " ") + , (3101, 15, "") + , ( 3001 + , 100 + , "// Blanket implementations for some common builtin types, because its impossible\n// to add these later." + ) + , (3104, 0, "\n") + , (3105, 0, "i") + , (3106, 0, "m") + , (3107, 0, "p") + , (3108, 0, "l") + , (3109, 0, " ") + , (3110, 0, "L") + , (3111, 0, "i") + , (3112, 0, "s") + , (3113, 0, "t") + , (3114, 0, "I") + , (3115, 0, "t") + , (3116, 0, "e") + , (3117, 0, "m") + , (3118, 0, " ") + , (3119, 0, "f") + , (3120, 0, "o") + , (3121, 0, "r") + , (3122, 0, " ") + , (3123, 0, "u") + , (3124, 0, "8") + , (3125, 0, " ") + , (3126, 0, "{") + , (3127, 0, "}") + , (3105, 0, "impl ListItem for u8 {}\n") + , (3129, 0, "impl ListItem for u8 {}\n") + , (3153, 0, "impl ListItem for u8 {}\n") + , (3177, 0, "impl ListItem for u8 {}\n") + , (3147, 1, "") + , (3147, 0, "s") + , (3172, 1, "") + , (3172, 0, "1") + , (3173, 0, "6") + , (3197, 1, "") + , (3197, 0, "3") + , (3198, 0, "2") + , (3222, 1, "") + , (3221, 1, "") + , (3221, 0, "f") + , (3222, 0, "3") + , (3223, 0, "2") + , (3203, 0, "impl ListItem for f32 {}\n") + , (3248, 1, "") + , (3247, 1, "") + , (3247, 0, "6") + , (3248, 0, "4") + , (3128, 24, "") + , (3129, 0, "impl ListItem for u16 {}\n") + , (3172, 1, "") + , (3172, 0, "s") + , (3179, 0, "impl ListItem for u32 {}\n") + , (3222, 1, "") + , (3222, 0, "s") + , (3172, 1, "") + , (3172, 0, "i") + , (3222, 1, "") + , (3222, 0, "i") + , (3105, 0, "impl ListItem for u8 {}\n") + , (3147, 1, "") + , (3147, 0, "i") + , (3128, 0, "\nimpl ListItem for u8 {}") + , (3124, 1, "") + , (3123, 1, "") + , (3123, 0, "(") + , (3124, 0, ")") + , (3128, 0, "\n") + , (3128, 1, "") + , (3105, 0, "impl ListItem for () {}\n") + , (3133, 0, "<") + , (3134, 0, "X") + , (3135, 0, ",") + , (3136, 0, " ") + , (3137, 0, "Y") + , (3138, 0, ">") + , (3154, 0, "X") + , (3155, 0, ",") + , (3156, 0, " ") + , (3157, 0, "Y") + , (3129, 0, "impl ListItem for (X, Y) {}\n") + , (3172, 0, ",") + , (3173, 0, " ") + , (3174, 0, "Z") + , (3195, 0, ",") + , (3196, 0, " ") + , (3197, 0, "Z") + , (3163, 0, "impl ListItem for (X, Y, Z) {}\n") + , (3207, 9, "") + , (3207, 0, "<") + , (3208, 0, "V") + , (3209, 0, ">") + , (3224, 9, "") + , (3224, 0, "O") + , (3225, 0, "p") + , (3226, 0, "t") + , (3227, 0, "i") + , (3228, 0, "o") + , (3229, 0, "n") + , (3230, 0, "<") + , (3231, 0, "V") + , (3232, 0, ">") + , (3236, 0, "\n") + , (3203, 0, "impl ListItem for Option {}\n") + , (3242, 1, "") + , (3242, 0, "E") + , (3243, 0, ",") + , (3244, 0, " ") + , (3245, 0, "R") + , (3261, 6, "R") + , (3262, 0, "e") + , (3263, 0, "s") + , (3264, 0, "u") + , (3265, 0, "l") + , (3266, 0, "t") + , (3268, 1, "") + , (3268, 0, "E") + , (3269, 0, ",") + , (3270, 0, " ") + , (3271, 0, "R") + , (3268, 4, "T") + , (3242, 4, "T") + , (3266, 0, ",") + , (3243, 0, ",") + , (3268, 0, " ") + , (3244, 0, " ") + , (3270, 0, "E") + , (3245, 0, "E") + , (3104, 0, " ") + , (3105, 0, "T") + , (3106, 0, "h") + , (3107, 0, "e") + , (3108, 0, "s") + , (3109, 0, "e") + , (3110, 0, " ") + , (3111, 0, "a") + , (3112, 0, "l") + , (3113, 0, "l") + , (3114, 0, " ") + , (3115, 0, "m") + , (3116, 0, "a") + , (3117, 0, "k") + , (3118, 0, "e") + , (3119, 0, " ") + , (3120, 0, "e") + , (3121, 0, "a") + , (3122, 0, "c") + , (3123, 0, "h") + , (3124, 0, " ") + , (3115, 10, "s") + , (3116, 0, "e") + , (3116, 1, "") + , (3115, 1, "") + , (3115, 0, "u") + , (3116, 0, "s") + , (3117, 0, "e") + , (3118, 0, " ") + , (3115, 4, "m") + , (3116, 0, "a") + , (3117, 0, "k") + , (3118, 0, "e") + , (3119, 0, " ") + , (3120, 0, "e") + , (3121, 0, "v") + , (3122, 0, "e") + , (3123, 0, "r") + , (3124, 0, "y") + , (3125, 0, "t") + , (3126, 0, "h") + , (3127, 0, "i") + , (3128, 0, "n") + , (3129, 0, "g") + , (3130, 0, " ") + , (3131, 0, "a") + , (3131, 1, "") + , (3131, 0, "h") + , (3132, 0, "a") + , (3133, 0, "v") + , (3134, 0, "e") + , (3135, 0, " ") + , (3136, 0, "a") + , (3137, 0, " ") + , (3138, 0, "s") + , (3139, 0, "i") + , (3140, 0, "z") + , (3141, 0, "e") + , (3142, 0, " ") + , (3143, 0, "o") + , (3144, 0, "f") + , (3145, 0, " ") + , (3146, 0, "1") + , (3147, 0, ".") + , (3111, 8, "m") + , (3112, 0, "a") + , (3113, 0, "k") + , (3114, 0, "e") + , (3115, 0, " ") + , (3116, 0, "e") + , (3117, 0, "v") + , (3118, 0, "e") + , (3119, 0, "r") + , (3120, 0, "y") + , (3121, 0, " ") + , (3122, 0, "i") + , (3123, 0, "t") + , (3124, 0, "e") + , (3125, 0, "m") + , (3126, 11, "") + , ( 3318 + , 0 + , "impl ListItem for u8 {}\nimpl ListItem for i8 {}\nimpl ListItem for u16 {}\nimpl ListItem for i16 {}\nimpl ListItem for u32 {}\nimpl ListItem for i32 {}\nimpl ListItem for f32 {}\nimpl ListItem for f64 {}\n" + ) + , (3516, 0, "\n") + , (3535, 0, "&") + , (3560, 0, "&") + , (3710, 0, "&") + , (3685, 0, "&") + , (3660, 0, "&") + , (3635, 0, "&") + , (3610, 0, "&") + , (3585, 0, "&") + , ( 3169 + , 0 + , "impl ListItem for (X, Y) {}\nimpl ListItem for (X, Y, Z) {}\nimpl ListItem for Option {}\nimpl ListItem for Result {}\n" + ) + , (3449, 0, "&") + , (3412, 0, "&") + , (3378, 0, "&") + , (3341, 0, "&") + , (3316, 0, "\n") + , (4315, 0, "\n ") + , (4320, 0, "f") + , (4321, 0, "n") + , (4322, 0, " ") + , (4323, 0, "n") + , (4324, 0, "o") + , (4325, 0, "t") + , (4326, 0, "i") + , (4327, 0, "f") + , (4328, 0, "y") + , (4329, 0, "_") + , (4330, 0, "r") + , (4331, 0, "e") + , (4332, 0, "m") + , (4333, 0, "o") + , (4334, 0, "v") + , (4335, 0, "e") + , (4336, 0, "d") + , (4254, 0, "_") + , (4255, 0, "c") + , (4256, 0, "h") + , (4257, 0, "a") + , (4258, 0, "n") + , (4259, 0, "g") + , (4260, 0, "e") + , (4261, 0, "d") + , (4345, 0, "(") + , (4346, 0, "*") + , (4346, 1, "") + , (4346, 0, "&") + , (4347, 0, "m") + , (4348, 0, "u") + , (4349, 0, "t") + , (4350, 0, " ") + , (4351, 0, "s") + , (4352, 0, "e") + , (4353, 0, "l") + , (4354, 0, "f") + , (4355, 0, " ") + , (4355, 1, "") + , (4355, 0, ",") + , (4356, 0, " ") + , (4357, 0, "_") + , (4328, 30, "") + , (4142, 0, "\n ") + , (4147, 0, "fn notify_removed(&mut self, _") + , (4176, 1, "") + , (4176, 0, "k") + , (4177, 0, "t") + , (4178, 0, "e") + , (4179, 0, "m") + , (4179, 1, "") + , (4178, 1, "") + , (4177, 1, "") + , (4176, 1, "") + , (4176, 0, "i") + , (4177, 0, "t") + , (4178, 0, "e") + , (4179, 0, "m") + , (4180, 0, "s") + , (4181, 0, ":") + , (4182, 0, " ") + , (4183, 0, "*") + , (4183, 1, "") + , (4183, 0, "&") + , (4184, 0, "[") + , (4185, 0, "I") + , (4186, 0, "t") + , (4187, 0, "e") + , (4188, 0, "m") + , (4189, 0, "]") + , (4190, 0, ")") + , (4191, 0, ";") + , (4304, 8, "") + , (4370, 0, "fn notify_removed(&mut self, items: &[Item]);") + , (4415, 0, " ") + , (4416, 0, "{") + , (4417, 0, "}") + , (4414, 1, "") + , (4399, 0, "_") + , (47346, 0, ", notify: &mut N") + , (48739, 0, "\n ") + , (48756, 0, "n") + , (48757, 0, "o") + , (48758, 0, "t") + , (48759, 0, "i") + , (48760, 0, "f") + , (48761, 0, "y") + , (48762, 0, ".") + , (48763, 0, "notify_removed(items: &[Item])") + , (48778, 14, "c") + , (48779, 0, "[") + , (48778, 2, "item_idx..item_idx + removed_here") + , (48812, 0, ";") + , (48778, 0, "c") + , (48779, 0, "[") + , (48813, 0, "]") + , (48778, 0, " ") + , (48778, 0, "m") + , (48779, 0, "a") + , (48780, 0, "y") + , (48781, 0, "b") + , (48778, 4, "maybeinit_slice_get_ref(slice: &[MaybeUninit])") + , (48802, 24, "") + , (48802, 1, "") + , (48802, 1, "") + , (48839, 0, "\n ") + , (48856, 0, "0") + , (48856, 1, "") + , (48852, 4, "") + , (48848, 4, "") + , (48844, 4, "") + , (48840, 4, "") + , (48839, 1, "") + , (48839, 0, ")") + , (48802, 0, "&") + , (48739, 0, "\n ") + , (48756, 0, "i") + , (48757, 0, "f") + , (48758, 0, " ") + , (48759, 0, "(") + , (48760, 0, "n") + , (48761, 0, "o") + , (48762, 0, "t") + , (48763, 0, "i") + , (48763, 1, "") + , (48762, 1, "") + , (48761, 1, "") + , (48760, 1, "") + , (48759, 1, "") + , (48759, 0, "n") + , (48760, 0, "o") + , (48761, 0, "t") + , (48762, 0, "i") + , (48763, 0, "f") + , (48764, 0, "y") + , (48765, 0, ".") + , (48766, 0, "n") + , (48767, 0, "o") + , (48768, 0, "t") + , (48769, 0, "i") + , (48770, 0, "f") + , (48771, 0, "i") + , (48766, 6, "") + , (48765, 1, "") + , (48765, 0, ".") + , (48759, 7, "N") + , (48760, 0, ":") + , (48761, 0, ":") + , (48762, 0, "notifications_used()") + , (48782, 0, " ") + , (48783, 0, "{") + , (48887, 0, "\n ") + , (48888, 16, " }") + , (48801, 0, " ") + , (48784, 0, "\n ") + , (48784, 21, "") + , (48739, 0, "\n ") + , (48756, 0, "/") + , (48757, 0, "/") + , (48758, 0, " ") + , (48759, 0, "G") + , (48760, 0, "u") + , (48761, 0, "a") + , (48762, 0, "r") + , (48763, 0, "d") + , (48764, 0, " ") + , (48765, 0, "m") + , (48766, 0, "a") + , (48767, 0, "y") + , (48768, 0, " ") + , (48769, 0, "h") + , (48770, 0, "a") + , (48771, 0, "v") + , (48772, 0, "e") + , (48773, 0, " ") + , (48774, 0, "n") + , (48775, 0, "o") + , (48776, 0, " ") + , (48777, 0, "e") + , (48778, 0, "f") + , (48779, 0, "f") + , (48780, 0, "e") + , (48781, 0, "c") + , (48782, 0, "c") + , (48783, 0, "t") + , (48783, 1, "") + , (48782, 1, "") + , (48782, 0, "t") + , (48783, 0, ".") + , (48784, 0, " ") + , (48785, 0, "N") + , (48786, 0, "o") + , (48787, 0, "t") + , (48788, 0, " ") + , (48789, 0, "s") + , (48790, 0, "u") + , (48791, 0, "r") + , (48792, 0, "e") + , (48793, 0, " ") + , (48794, 0, "h") + , (48795, 0, "o") + , (48796, 0, "w") + , (48797, 0, " ") + , (4244, 0, "\n ") + , (4249, 0, "c") + , (4250, 0, "o") + , (4251, 0, "n") + , (4252, 0, "s") + , (4253, 0, "t") + , (4254, 0, " ") + , (4255, 0, "f") + , (4256, 0, "o") + , (4257, 0, "o") + , (4258, 0, ":") + , (4259, 0, " ") + , (4260, 0, "b") + , (4261, 0, "o") + , (4262, 0, "o") + , (4263, 0, "l") + , (4264, 0, ",") + , (4264, 1, "") + , (4264, 0, ";") + , (4245, 20, "") + , (3917, 0, "\n ") + , (3922, 0, " const foo: bool;") + , (3918, 8, " ") + , (3938, 0, "\n ") + , (3939, 4, "") + , (3928, 3, "n") + , (3929, 0, "o") + , (3930, 0, "t") + , (3931, 0, "i") + , (3932, 0, "f") + , (3933, 0, "i") + , (3928, 6, "notifications_used()") + , (3947, 1, "") + , (3946, 1, "") + , (3954, 154, "") + , (4133, 2, "c") + , (4134, 0, "n") + , (4134, 1, "") + , (4134, 0, "o") + , (4135, 0, "n") + , (4136, 0, "s") + , (4137, 0, "t") + , (4127, 1, "") + , (3952, 0, " ") + , (3953, 0, "=") + , (3954, 0, " ") + , (3955, 0, "t") + , (3956, 0, "r") + , (3957, 0, "u") + , (3958, 0, "e") + , (4139, 44, "const notifications_used: bool = true;") + , (4172, 5, "f") + , (4173, 0, "a") + , (4174, 0, "l") + , (4175, 0, "s") + , (4176, 0, "e") + , (4177, 0, ";") + , (4163, 6, "") + , (4139, 6, "") + , (4139, 0, "const ") + , (4163, 0, ": bool") + , (3928, 18, "u") + , (3929, 0, "s") + , (3930, 0, "e") + , (3931, 0, "d") + , (4131, 18, "u") + , (4132, 0, "s") + , (4133, 0, "e") + , (4134, 0, "d") + , (25340, 20, "u") + , (25341, 0, "s") + , (25342, 0, "e") + , (25343, 0, "d") + , (48665, 20, "u") + , (48666, 0, "s") + , (48667, 0, "e") + , (48668, 0, "d") + , (55432, 0, "&") + , (55432, 1, "") + , (55432, 0, ",") + , (55433, 0, " ") + , (55434, 0, "n") + , (55435, 0, "o") + , (55436, 0, "t") + , (55437, 0, "i") + , (55438, 0, "f") + , (55439, 0, "y") + , (48584, 59, "") + , (48737, 0, "\n ") + , (49821, 0, "\n ") + , (48738, 16, "") + , (49822, 0, "\n ") + , (49806, 16, "") + , ( 49823 + , 0 + , " if N::used {\n notify.notify_removed(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));\n }\n" + ) + , (49807, 32, " ") + , (49960, 1, "") + , (49878, 62, "") + , (49878, 0, "*") + , (49879, 0, "(") + , (49880, 0, "e") + , (49881, 0, ")") + , (49881, 1, "") + , (49880, 1, "") + , (49879, 1, "") + , (49878, 1, "") + , (49878, 0, "*") + , (49878, 1, "") + , (49878, 0, "(") + , (49879, 0, "E") + , (49879, 1, "") + , (49879, 0, "*") + , (49880, 0, "e") + , (49881, 0, ")") + , (49882, 0, ".") + , (49883, 0, "g") + , (49884, 0, "e") + , (49885, 0, "t") + , (49886, 0, "_") + , (49887, 0, "c") + , (49888, 0, "o") + , (49889, 0, "n") + , (49890, 0, "t") + , (49891, 0, "e") + , (49892, 0, "n") + , (49893, 0, "t") + , (49894, 0, "(") + , (49895, 0, ")") + , (49883, 11, "c") + , (49884, 0, "o") + , (49885, 0, "n") + , (49886, 0, "t") + , (49887, 0, "e") + , (49888, 0, "n") + , (49889, 0, "t") + , (49883, 7, "content_slice") + , (49829, 4, "USED") + , (48606, 4, "USED") + , (25340, 4, "USED") + , (3928, 4, "USED") + , (4131, 4, "U") + , (4132, 0, "S") + , (4133, 0, "E") + , (4134, 0, "D") + , (58117, 0, "\n") + , (58117, 0, "\n") + , (58118, 0, "i") + , (58119, 0, "m") + , (58120, 0, "p") + , (58121, 0, "l") + , (58122, 0, "<") + , (58123, 0, "I") + , (58123, 1, "") + , (58122, 1, "") + , (58121, 1, "") + , (58120, 1, "") + , (58119, 1, "") + , (58118, 1, "") + , (58118, 0, "i") + , (58119, 0, "m") + , (58120, 0, "p") + , (58121, 0, "l") + , (58122, 0, "<") + , (58123, 0, "I") + , (58124, 0, "t") + , (58125, 0, "e") + , (58126, 0, "m") + , (58127, 0, ":") + , (58128, 0, " ") + , (58129, 0, "L") + , (58130, 0, "i") + , (58131, 0, "s") + , (58132, 0, "t") + , (58129, 4, "ListItem") + , (58137, 0, ">") + , (58138, 0, " ") + , (58139, 0, "F") + , (58140, 0, "r") + , (58141, 0, "o") + , (58142, 0, "m") + , (58143, 0, "I") + , (58144, 0, "t") + , (58145, 0, "e") + , (58146, 0, "r") + , (58147, 0, "a") + , (58148, 0, "t") + , (58149, 0, "o") + , (58150, 0, "r") + , (58139, 0, "i") + , (58140, 0, "t") + , (58141, 0, "e") + , (58142, 0, "r") + , (58143, 0, ":") + , (58144, 0, ":") + , (58139, 0, "s") + , (58140, 0, "t") + , (58141, 0, "d") + , (58142, 0, ":") + , (58143, 0, ":") + , (58162, 0, " ") + , (58163, 0, "f") + , (58164, 0, "o") + , (58165, 0, "r") + , (58166, 0, " ") + , (58167, 0, "S") + , (58168, 0, "k") + , (58169, 0, "i") + , (58170, 0, "p") + , (58167, 4, "SkipList") + , (58175, 0, "<") + , (58176, 0, "I") + , (58177, 0, "t") + , (58178, 0, "e") + , (58179, 0, "m") + , (58180, 0, ">") + , (58181, 0, " ") + , (58182, 0, "{") + , (58183, 0, "\n ") + , (58188, 0, "\n ") + , (58184, 4, "") + , (58185, 4, "}") + , (58139, 5, "") + , (58179, 0, "fn from_iter>(iter: T) -> Self;") + , (58179, 0, " ") + , (58239, 1, "") + , (58239, 0, " ") + , (58240, 0, "{") + , (58241, 0, "\n ") + , (58250, 0, "\n ") + , (58242, 8, "") + , (58243, 8, " }") + , (58242, 0, " ") + , (58242, 8, "") + , (58219, 1, "") + , (58219, 0, "I") + , (58220, 0, "t") + , (58221, 0, "e") + , (58222, 0, "m") + , (58218, 1, "") + , (58216, 1, "") + , (58216, 0, " ") + , (58218, 0, " ") + , (58245, 0, " ") + , (58253, 0, "S") + , (58254, 0, "k") + , (58255, 0, "i") + , (58256, 0, "p") + , (58253, 4, "SkipList") + , (58261, 0, "<") + , (58261, 1, "") + , (58261, 0, ":") + , (58262, 0, ":") + , (58263, 0, "n") + , (58264, 0, "e") + , (58265, 0, "w") + , (58265, 1, "") + , (58264, 1, "") + , (58263, 1, "") + , (58263, 0, "from(iter: I)") + , (58268, 7, "i") + , (58269, 0, "t") + , (58270, 0, "e") + , (58271, 0, "r") + , (58267, 0, "_") + , (58268, 0, "i") + , (58269, 0, "t") + , (58270, 0, "e") + , (58271, 0, "r") + , (58157, 0, "<") + , (58158, 0, "I") + , (58159, 0, "t") + , (58160, 0, "e") + , (58161, 0, "m") + , (58162, 0, ">") + , (58269, 9, "n") + , (58270, 0, "e") + , (58271, 0, "w") + , (58272, 0, "_") + , (58273, 0, "f") + , (58274, 0, "r") + , (58275, 0, "o") + , (58276, 0, "m") + , (58269, 8, "new_from_iter") + , (58182, 0, " ") + , (58183, 0, "w") + , (58184, 0, "h") + , (58185, 0, "e") + , (58186, 0, "r") + , (58187, 0, "e") + , (58188, 0, " ") + , (58182, 7, "") + , (58295, 0, "// ") + , (58289, 0, "// ") + , (58251, 0, "// ") + , (58185, 0, "// ") + , (58118, 0, "// ") + , (58117, 0, "\n") + , (58118, 0, "/") + , (58119, 0, "/") + , (58120, 0, " ") + , (58121, 0, "N") + , (58122, 0, "e") + , (58123, 0, "e") + , (58124, 0, "d") + , (58125, 0, "s") + , (58126, 0, " ") + , (58127, 0, "m") + , (58128, 0, "e") + , (58129, 0, " ") + , (58130, 0, "t") + , (58131, 0, "o") + , (58132, 0, " ") + , (58133, 0, "r") + , (58134, 0, "e") + , (58135, 0, "l") + , (58136, 0, "a") + , (58137, 0, "x") + , (58138, 0, " ") + , (58139, 0, "t") + , (58140, 0, "h") + , (58141, 0, "e") + , (58142, 0, " ") + , (58143, 0, "E") + , (58144, 0, "x") + , (58145, 0, "a") + , (58146, 0, "c") + , (58147, 0, "t") + , (58148, 0, "I") + , (58148, 1, "") + , (58148, 0, "S") + , (58149, 0, "i") + , (58150, 0, "z") + , (58151, 0, "e") + , (58152, 0, "I") + , (58153, 0, "t") + , (58154, 0, "e") + , (58155, 0, "r") + , (58156, 0, "a") + , (58157, 0, "t") + , (58158, 0, "o") + , (58159, 0, "r") + , (58160, 0, " ") + , (58161, 0, "c") + , (58162, 0, "o") + , (58163, 0, "n") + , (58164, 0, "s") + , (58165, 0, "t") + , (58166, 0, "r") + , (58167, 0, "a") + , (58168, 0, "i") + , (58169, 0, "t") + , (58170, 0, "n") + , (58170, 1, "") + , (58169, 1, "") + , (58169, 0, "n") + , (58170, 0, "t") + , (58171, 0, " ") + , (58172, 0, "o") + , (58173, 0, "n") + , (58174, 0, " ") + , (58175, 0, "i") + , (58176, 0, "n") + , (58177, 0, "s") + , (58178, 0, "e") + , (58179, 0, "r") + , (58180, 0, "t") + , (58181, 0, ".") + , (59202, 0, "O") + , (59203, 0, "p") + , (59204, 0, "t") + , (59205, 0, "i") + , (59206, 0, "o") + , (59207, 0, "n") + , (59208, 0, "<") + , (59214, 0, ">") + , (59795, 0, "\n ") + , (59804, 0, "i") + , (59805, 0, "f") + , (59806, 0, " ") + , (59807, 0, "l") + , (59808, 0, "e") + , (59809, 0, "t") + , (59810, 0, " ") + , (59811, 0, "s") + , (59812, 0, "e") + , (59813, 0, "l") + , (59814, 0, "f") + , (59815, 0, ".") + , (59816, 0, "r") + , (59817, 0, "e") + , (59818, 0, "m") + , (59819, 0, "a") + , (59816, 4, "remaining_items") + , (59810, 0, " ") + , (59811, 0, "r") + , (59812, 0, " ") + , (59813, 0, "=") + , (59835, 0, " ") + , (59836, 0, "{") + , (59846, 0, " ") + , (59900, 0, "\n ") + , (59901, 12, " }") + , (59910, 0, " ") + , (59911, 0, "e") + , (59912, 0, "l") + , (59913, 0, "s") + , (59914, 0, "e") + , (59915, 0, " ") + , (59916, 0, "{") + , (59917, 0, "\n ") + , (59930, 0, "(") + , (59931, 0, "0") + , (59932, 0, ",") + , (59933, 0, " ") + , (59934, 0, "N") + , (59935, 0, "o") + , (59936, 0, "n") + , (59937, 0, "e") + , (59938, 0, ")") + , (59939, 0, "\n ") + , (59940, 12, " }") + , (59878, 20, "r") + , (59851, 20, "r") + , (59811, 0, "S") + , (59812, 0, "o") + , (59813, 0, "m") + , (59814, 0, "e") + , (59815, 0, "(") + , (59817, 0, ")") + , (59232, 1, "") + , (59232, 0, ",") + , (59233, 0, " ") + , (59234, 0, "o") + , (59234, 1, "") + , (59234, 0, "i") + , (59235, 0, "f") + , (59236, 0, " ") + , (59237, 0, "k") + , (59238, 0, "n") + , (59239, 0, "o") + , (59240, 0, "w") + , (59241, 0, "n") + , (59242, 0, ".") + , (24805, 0, "S") + , (24806, 0, "o") + , (24807, 0, "m") + , (24808, 0, "e") + , (24809, 0, "(") + , (24826, 0, ")") + , (24843, 0, "\n ") + , (24848, 0, "\n ") + , (24844, 4, "") + , (24849, 0, "f") + , (24850, 0, "n") + , (24851, 0, " ") + , (24852, 0, "i") + , (24853, 0, "t") + , (24854, 0, "e") + , (24855, 0, "r") + , (24856, 0, "_") + , (24857, 0, "f") + , (24858, 0, "r") + , (24859, 0, "o") + , (24860, 0, "m") + , (24861, 0, "_") + , (24862, 0, "n") + , (24863, 0, "o") + , (24864, 0, "d") + , (24865, 0, "e") + , (24849, 0, "p") + , (24850, 0, "u") + , (24851, 0, "b") + , (24852, 0, "(") + , (24853, 0, "c") + , (24854, 0, "r") + , (24855, 0, "a") + , (24856, 0, "t") + , (24857, 0, "e") + , (24858, 0, ")") + , (24859, 0, " ") + , (24877, 0, "(") + , (24843, 35, "") + , (12430, 0, "\n ") + , (12435, 0, "\n ") + , (12431, 4, "") + , ( 12436 + , 0 + , "\n pub fn iter(&self) -> ListItemIter {\n ListItemIter {\n node: Some(&self.head),\n index: 0,\n remaining_items: Some(self.len_items())\n }\n }" + ) + , (12432, 4, "") + , (12431, 1, "") + , (12430, 1, "") + , (12430, 0, "\n ") + , (12443, 0, "(") + , (12431, 4, "") + , (12440, 0, "c") + , (12441, 0, "r") + , (12442, 0, "a") + , (12443, 0, "t") + , (12444, 0, "e") + , (12445, 0, ")") + , (12460, 0, ",") + , (12461, 0, " ") + , (12462, 0, "u") + , (12463, 0, "s") + , (12464, 0, "i") + , (12465, 0, "z") + , (12466, 0, "e") + , (12462, 0, "i") + , (12463, 0, "n") + , (12464, 0, "d") + , (12465, 0, "e") + , (12466, 0, "x") + , (12467, 0, ":") + , (12468, 0, " ") + , (12462, 0, "l") + , (12463, 0, "o") + , (12464, 0, "c") + , (12465, 0, "a") + , (12466, 0, "l") + , (12467, 0, "_") + , (12557, 5, "") + , (12611, 22, "N") + , (12612, 0, "o") + , (12613, 0, "n") + , (12614, 0, "e") + , (12614, 1, "") + , (12614, 0, "e") + , (12580, 1, "") + , (12579, 1, "") + , (12579, 0, "l") + , (12580, 0, "o") + , (12581, 0, "c") + , (12582, 0, "a") + , (12583, 0, "l") + , (12579, 5, "local_index") + , (12590, 0, ",") + , (3594, 0, "impl ListItem for i32 {}\n") + , (3619, 0, "impl ListItem for i32 {}\n") + , (3637, 3, "u") + , (3638, 0, "s") + , (3639, 0, "i") + , (3640, 0, "z") + , (3641, 0, "e") + , (3664, 3, "i") + , (3665, 0, "s") + , (3666, 0, "i") + , (3667, 0, "z") + , (3668, 0, "e") + , (3852, 0, "impl ListItem for &i32 {}\n") + , (3878, 0, "impl ListItem for &i32 {}\n") + , (3897, 3, "u") + , (3898, 0, "s") + , (3899, 0, "i") + , (3900, 0, "z") + , (3901, 0, "e") + , (3925, 3, "i") + , (3926, 0, "s") + , (3927, 0, "i") + , (3928, 0, "z") + , (3929, 0, "e") + , (50203, 1, "") + , (50199, 3, "t") + , (50197, 1, "del") + , (50192, 4, "n") + , (50190, 1, "") + , (48980, 1, "") + , (48976, 3, "t") + , (48974, 1, "del") + , (48969, 4, "n") + , (48967, 1, "") + , (4356, 1, "") + , (4352, 3, "t") + , (4350, 1, "del") + , (4345, 4, "n") + , (4343, 1, "") + , (4149, 1, "") + , (4145, 3, "t") + , (4143, 1, "del") + , (4138, 4, "n") + , (4136, 1, "") + , (55274, 3, "") + , (55272, 1, "_se") + , (55271, 0, "o") + , (43854, 3, "") + , (43852, 1, "_se") + , (43851, 0, "o") + , (40082, 3, "") + , (40080, 1, "_se") + , (40079, 0, "o") + , (4266, 3, "") + , (4264, 1, "_se") + , (4263, 0, "o") + , (4068, 3, "") + , (4066, 1, "_se") + , (4065, 0, "o") + , (2354, 0, "\n") + , (2355, 0, "\n") + , ( 2356 + , 0 + , "//! Utilities for formatting and printing strings.\n\n#![stable(feature = \"rust1\", since = \"1.0.0\")]\n\nuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};\nuse crate::marker::PhantomData;\nuse crate::mem;\nuse crate::num::flt2dec;\nuse crate::ops::Deref;\nuse crate::result;\nuse crate::str;\n\nmod builders;\nmod float;\nmod num;\n\n#[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n/// Possible alignments returned by `Formatter::align`\n#[derive(Debug)]\npub enum Alignment {\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be left-aligned.\n Left,\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be right-aligned.\n Right,\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be center-aligned.\n Center,\n}\n\n#[stable(feature = \"debug_builders\", since = \"1.2.0\")]\npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};\n\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n#[doc(hidden)]\npub mod rt {\n pub mod v1;\n}\n\n/// The type returned by formatter methods.\n///\n/// # Examples\n///\n/// ```\n/// use std::fmt;\n///\n/// #[derive(Debug)]\n/// struct Triangle {\n/// a: f32,\n/// b: f32,\n/// c: f32\n/// }\n///\n/// impl fmt::Display for Triangle {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// write!(f, \"({}, {}, {})\", self.a, self.b, self.c)\n/// }\n/// }\n///\n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };\n///\n/// assert_eq!(format!(\"{}\", pythagorean_triple), \"(3, 4, 5)\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub type Result = result::Result<(), Error>;\n\n/// The error type which is returned from formatting a message into a stream.\n///\n/// This type does not support transmission of an error other than that an error\n/// occurred. Any extra information must be arranged to be transmitted through\n/// some other means.\n///\n/// An important thing to remember is that the type `fmt::Error` should not be\n/// confused with [`std::io::Error`] or [`std::error::Error`], which you may also\n/// have in scope.\n///\n/// [`std::io::Error`]: ../../std/io/struct.Error.html\n/// [`std::error::Error`]: ../../std/error/trait.Error.html\n///\n/// # Examples\n///\n/// ```rust\n/// use std::fmt::{self, write};\n///\n/// let mut output = String::new();\n/// if let Err(fmt::Error) = write(&mut output, format_args!(\"Hello {}!\", \"world\")) {\n/// panic!(\"An error occurred\");\n/// }\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]\npub struct Error;\n\n/// A collection of methods that are required to format a message into a stream.\n///\n/// This trait is the type which this modules requires when formatting\n/// information. This is similar to the standard library's [`io::Write`] trait,\n/// but it is only intended for use in libcore.\n///\n/// This trait should generally not be implemented by consumers of the standard\n/// library. The [`write!`] macro accepts an instance of [`io::Write`], and the\n/// [`io::Write`] trait is favored over implementing this trait.\n///\n/// [`write!`]: ../../std/macro.write.html\n/// [`io::Write`]: ../../std/io/trait.Write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Write {\n /// Writes a string slice into this writer, returning whether the write\n /// succeeded.\n ///\n /// This method can only succeed if the entire string slice was successfully\n /// written, and this method will not return until all data has been\n /// written or an error occurs.\n ///\n /// # Errors\n ///\n /// This function will return an instance of [`Error`] on error.\n ///\n /// [`Error`]: struct.Error.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {\n /// f.write_str(s)\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, \"hola\").unwrap();\n /// assert_eq!(&buf, \"hola\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn write_str(&mut self, s: &str) -> Result;\n\n /// Writes a [`char`] into this writer, returning whether the write succeeded.\n ///\n /// A single [`char`] may be encoded as more than one byte.\n /// This method can only succeed if the entire byte sequence was successfully\n /// written, and this method will not return until all data has been\n /// written or an error occurs.\n ///\n /// # Errors\n ///\n /// This function will return an instance of [`Error`] on error.\n ///\n /// [`char`]: ../../std/primitive.char.html\n /// [`Error`]: struct.Error.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {\n /// f.write_char(c)\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, 'a').unwrap();\n /// writer(&mut buf, 'b').unwrap();\n /// assert_eq!(&buf, \"ab\");\n /// ```\n #[stable(feature = \"fmt_write_char\", since = \"1.1.0\")]\n fn write_char(&mut self, c: char) -> Result {\n self.write_str(c.encode_utf8(&mut [0; 4]))\n }\n\n /// Glue for usage of the [`write!`] macro with implementors of this trait.\n ///\n /// This method should generally not be invoked manually, but rather through\n /// the [`write!`] macro itself.\n ///\n /// [`write!`]: ../../std/macro.write.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {\n /// f.write_fmt(format_args!(\"{}\", s))\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, \"world\").unwrap();\n /// assert_eq!(&buf, \"world\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {\n write(&mut self, args)\n }\n}\n\n#[stable(feature = \"fmt_write_blanket_impl\", since = \"1.4.0\")]\nimpl Write for &mut W {\n fn write_str(&mut self, s: &str) -> Result {\n (**self).write_str(s)\n }\n\n fn write_char(&mut self, c: char) -> Result {\n (**self).write_char(c)\n }\n\n fn write_fmt(&mut self, args: Arguments<'_>) -> Result {\n (**self).write_fmt(args)\n }\n}\n\n/// Configuration for formatting.\n///\n/// A `Formatter` represents various options related to formatting. Users do not\n/// construct `Formatter`s directly; a mutable reference to one is passed to\n/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].\n///\n/// To interact with a `Formatter`, you'll call various methods to change the\n/// various options related to formatting. For examples, please see the\n/// documentation of the methods defined on `Formatter` below.\n///\n/// [`Debug`]: trait.Debug.html\n/// [`Display`]: trait.Display.html\n#[allow(missing_debug_implementations)]\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub struct Formatter<'a> {\n flags: u32,\n fill: char,\n align: rt::v1::Alignment,\n width: Option,\n precision: Option,\n\n buf: &'a mut (dyn Write + 'a),\n}\n\n// NB. Argument is essentially an optimized partially applied formatting function,\n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.\n\nextern \"C\" {\n type Opaque;\n}\n\n/// This struct represents the generic \"argument\" which is taken by the Xprintf\n/// family of functions. It contains a function to format the given value. At\n/// compile time it is ensured that the function and the value have the correct\n/// types, and then this struct is used to canonicalize arguments to one type.\n#[derive(Copy, Clone)]\n#[allow(missing_debug_implementations)]\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n#[doc(hidden)]\npub struct ArgumentV1<'a> {\n value: &'a Opaque,\n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,\n}\n\n// This guarantees a single stable value for the function pointer associated with\n// indices/counts in the formatting infrastructure.\n//\n// Note that a function defined as such would not be correct as functions are\n// always tagged unnamed_addr with the current lowering to LLVM IR, so their\n// address is not considered important to LLVM and as such the as_usize cast\n// could have been miscompiled. In practice, we never call as_usize on non-usize\n// containing data (as a matter of static generation of the formatting\n// arguments), so this is merely an additional check.\n//\n// We primarily want to ensure that the function pointer at `USIZE_MARKER` has\n// an address corresponding *only* to functions that also take `&usize` as their\n// first argument. The read_volatile here ensures that we can safely ready out a\n// usize from the passed reference and that this address does not point at a\n// non-usize taking function.\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {\n // SAFETY: ptr is a reference\n let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };\n loop {}\n};\n\nimpl<'a> ArgumentV1<'a> {\n #[doc(hidden)]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {\n // SAFETY: `mem::transmute(x)` is safe because\n // 1. `&'b T` keeps the lifetime it originated with `'b`\n // (so as to not have an unbounded lifetime)\n // 2. `&'b T` and `&'b Opaque` have the same memory layout\n // (when `T` is `Sized`, as it is here)\n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`\n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABI\n // (as long as `T` is `Sized`)\n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }\n }\n\n #[doc(hidden)]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {\n ArgumentV1::new(x, USIZE_MARKER)\n }\n\n fn as_usize(&self) -> Option {\n if self.formatter as usize == USIZE_MARKER as usize {\n // SAFETY: The `formatter` field is only set to USIZE_MARKER if\n // the value is a usize, so this is safe\n Some(unsafe { *(self.value as *const _ as *const usize) })\n } else {\n None\n }\n }\n}\n\n// flags available in the v1 format of format_args\n#[derive(Copy, Clone)]\nenum FlagV1 {\n SignPlus,\n SignMinus,\n Alternate,\n SignAwareZeroPad,\n DebugLowerHex,\n DebugUpperHex,\n}\n\nimpl<'a> Arguments<'a> {\n /// When using the format_args!() macro, this function is used to generate the\n /// Arguments structure.\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {\n Arguments { pieces, fmt: None, args }\n }\n\n /// This function is used to specify nonstandard formatting parameters.\n /// The `pieces` array must be at least as long as `fmt` to construct\n /// a valid Arguments structure. Also, any `Count` within `fmt` that is\n /// `CountIsParam` or `CountIsNextParam` has to point to an argument\n /// created with `argumentusize`. However, failing to do so doesn't cause\n /// unsafety, but will ignore invalid .\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new_v1_formatted(\n pieces: &'a [&'a str],\n args: &'a [ArgumentV1<'a>],\n fmt: &'a [rt::v1::Argument],\n ) -> Arguments<'a> {\n Arguments { pieces, fmt: Some(fmt), args }\n }\n\n /// Estimates the length of the formatted text.\n ///\n /// This is intended to be used for setting initial `String` capacity\n /// when using `format!`. Note: this is neither the lower nor upper bound.\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn estimated_capacity(&self) -> usize {\n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();\n\n if self.args.is_empty() {\n pieces_length\n } else if self.pieces[0] == \"\" && pieces_length < 16 {\n // If the format string starts with an argument,\n // don't preallocate anything, unless length\n // of pieces is significant.\n 0\n } else {\n // There are some arguments, so any additional push\n // will reallocate the string. To avoid that,\n // we're \"pre-doubling\" the capacity here.\n pieces_length.checked_mul(2).unwrap_or(0)\n }\n }\n}\n\n/// This structure represents a safely precompiled version of a format string\n/// and its arguments. This cannot be generated at runtime because it cannot\n/// safely be done, so no constructors are given and the fields are private\n/// to prevent modification.\n///\n/// The [`format_args!`] macro will safely create an instance of this structure.\n/// The macro validates the format string at compile-time so usage of the\n/// [`write`] and [`format`] functions can be safely performed.\n///\n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`\n/// and `Display` contexts as seen below. The example also shows that `Debug`\n/// and `Display` format to the same thing: the interpolated format string\n/// in `format_args!`.\n///\n/// ```rust\n/// let debug = format!(\"{:?}\", format_args!(\"{} foo {:?}\", 1, 2));\n/// let display = format!(\"{}\", format_args!(\"{} foo {:?}\", 1, 2));\n/// assert_eq!(\"1 foo 2\", display);\n/// assert_eq!(display, debug);\n/// ```\n///\n/// [`format_args!`]: ../../std/macro.format_args.html\n/// [`format`]: ../../std/fmt/fn.format.html\n/// [`write`]: ../../std/fmt/fn.write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[derive(Copy, Clone)]\npub struct Arguments<'a> {\n // Format string pieces to print.\n pieces: &'a [&'a str],\n\n // Placeholder specs, or `None` if all specs are default (as in \"{}{}\").\n fmt: Option<&'a [rt::v1::Argument]>,\n\n // Dynamic arguments for interpolation, to be interleaved with string\n // pieces. (Every argument is preceded by a string piece.)\n args: &'a [ArgumentV1<'a>],\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for Arguments<'_> {\n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {\n Display::fmt(self, fmt)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for Arguments<'_> {\n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {\n write(fmt.buf, *self)\n }\n}\n\n/// `?` formatting.\n///\n/// `Debug` should format the output in a programmer-facing, debugging context.\n///\n/// Generally speaking, you should just `derive` a `Debug` implementation.\n///\n/// When used with the alternate format specifier `#?`, the output is pretty-printed.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// This trait can be used with `#[derive]` if all fields implement `Debug`. When\n/// `derive`d for structs, it will use the name of the `struct`, then `{`, then a\n/// comma-separated list of each field's name and `Debug` value, then `}`. For\n/// `enum`s, it will use the name of the variant and, if applicable, `(`, then the\n/// `Debug` values of the fields, then `)`.\n///\n/// # Stability\n///\n/// Derived `Debug` formats are not stable, and so may change with future Rust\n/// versions. Additionally, `Debug` implementations of types provided by the\n/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, and\n/// may also change with future Rust versions.\n///\n/// # Examples\n///\n/// Deriving an implementation:\n///\n/// ```\n/// #[derive(Debug)]\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:?}\", origin), \"The origin is: Point { x: 0, y: 0 }\");\n/// ```\n///\n/// Manually implementing:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// impl fmt::Debug for Point {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// f.debug_struct(\"Point\")\n/// .field(\"x\", &self.x)\n/// .field(\"y\", &self.y)\n/// .finish()\n/// }\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:?}\", origin), \"The origin is: Point { x: 0, y: 0 }\");\n/// ```\n///\n/// There are a number of helper methods on the [`Formatter`] struct to help you with manual\n/// implementations, such as [`debug_struct`].\n///\n/// `Debug` implementations using either `derive` or the debug builder API\n/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.\n///\n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_struct\n/// [`Formatter`]: ../../std/fmt/struct.Formatter.html\n///\n/// Pretty-printing with `#?`:\n///\n/// ```\n/// #[derive(Debug)]\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:#?}\", origin),\n/// \"The origin is: Point {\n/// x: 0,\n/// y: 0,\n/// }\");\n/// ```\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[rustc_on_unimplemented(\n on(\n crate_local,\n label = \"`{Self}` cannot be formatted using `{{:?}}`\",\n note = \"add `#[derive(Debug)]` or manually implement `{Debug}`\"\n ),\n message = \"`{Self}` doesn't implement `{Debug}`\",\n label = \"`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`\"\n)]\n#[doc(alias = \"{:?}\")]\n#[rustc_diagnostic_item = \"debug_trait\"]\npub trait Debug {\n /// Formats the value using the given formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Position {\n /// longitude: f32,\n /// latitude: f32,\n /// }\n ///\n /// impl fmt::Debug for Position {\n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n /// f.debug_tuple(\"\")\n /// .field(&self.longitude)\n /// .field(&self.latitude)\n /// .finish()\n /// }\n /// }\n ///\n /// let position = Position { longitude: 1.987, latitude: 2.983 };\n /// assert_eq!(format!(\"{:?}\", position), \"(1.987, 2.983)\");\n ///\n /// assert_eq!(format!(\"{:#?}\", position), \"(\n /// 1.987,\n /// 2.983,\n /// )\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.\npub(crate) mod macros {\n /// Derive macro generating an impl of the trait `Debug`.\n #[rustc_builtin_macro]\n #[stable(feature = \"builtin_macro_prelude\", since = \"1.38.0\")]\n #[allow_internal_unstable(core_intrinsics)]\n pub macro Debug($item:item) {\n /* compiler built-in */\n }\n}\n#[stable(feature = \"builtin_macro_prelude\", since = \"1.38.0\")]\n#[doc(inline)]\npub use macros::Debug;\n\n/// Format trait for an empty format, `{}`.\n///\n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facing\n/// output, and so cannot be derived.\n///\n/// [debug]: trait.Debug.html\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Implementing `Display` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// impl fmt::Display for Point {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// write!(f, \"({}, {})\", self.x, self.y)\n/// }\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {}\", origin), \"The origin is: (0, 0)\");\n/// ```\n#[rustc_on_unimplemented(\n on(\n _Self = \"std::path::Path\",\n label = \"`{Self}` cannot be formatted with the default formatter; call `.display()` on it\",\n note = \"call `.display()` or `.to_string_lossy()` to safely print paths, \\\n as they may contain non-Unicode data\"\n ),\n message = \"`{Self}` doesn't implement `{Display}`\",\n label = \"`{Self}` cannot be formatted with the default formatter\",\n note = \"in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead\"\n)]\n#[doc(alias = \"{}\")]\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Display {\n /// Formats the value using the given formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Position {\n /// longitude: f32,\n /// latitude: f32,\n /// }\n ///\n /// impl fmt::Display for Position {\n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n /// write!(f, \"({}, {})\", self.longitude, self.latitude)\n /// }\n /// }\n ///\n /// assert_eq!(\"(1.987, 2.983)\",\n /// format!(\"{}\", Position { longitude: 1.987, latitude: 2.983, }));\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `o` formatting.\n///\n/// The `Octal` trait should format its output as a number in base-8.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0o` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '52' in octal\n///\n/// assert_eq!(format!(\"{:o}\", x), \"52\");\n/// assert_eq!(format!(\"{:#o}\", x), \"0o52\");\n///\n/// assert_eq!(format!(\"{:o}\", -16), \"37777777760\");\n/// ```\n///\n/// Implementing `Octal` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Octal for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(9);\n///\n/// assert_eq!(format!(\"l as octal is: {:o}\", l), \"l as octal is: 11\");\n///\n/// assert_eq!(format!(\"l as octal is: {:#06o}\", l), \"l as octal is: 0o0011\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Octal {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `b` formatting.\n///\n/// The `Binary` trait should format its output as a number in binary.\n///\n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0b` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// # Examples\n///\n/// Basic usage with [`i32`]:\n///\n/// ```\n/// let x = 42; // 42 is '101010' in binary\n///\n/// assert_eq!(format!(\"{:b}\", x), \"101010\");\n/// assert_eq!(format!(\"{:#b}\", x), \"0b101010\");\n///\n/// assert_eq!(format!(\"{:b}\", -16), \"11111111111111111111111111110000\");\n/// ```\n///\n/// Implementing `Binary` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Binary for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(107);\n///\n/// assert_eq!(format!(\"l as binary is: {:b}\", l), \"l as binary is: 1101011\");\n///\n/// assert_eq!(\n/// format!(\"l as binary is: {:#032b}\", l),\n/// \"l as binary is: 0b000000000000000000000001101011\"\n/// );\n/// ```\n///\n/// [module]: ../../std/fmt/index.html\n/// [`i8`]: ../../std/primitive.i8.html\n/// [`i128`]: ../../std/primitive.i128.html\n/// [`isize`]: ../../std/primitive.isize.html\n/// [`i32`]: ../../std/primitive.i32.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Binary {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `x` formatting.\n///\n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`\n/// in lower case.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0x` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '2a' in hex\n///\n/// assert_eq!(format!(\"{:x}\", x), \"2a\");\n/// assert_eq!(format!(\"{:#x}\", x), \"0x2a\");\n///\n/// assert_eq!(format!(\"{:x}\", -16), \"fffffff0\");\n/// ```\n///\n/// Implementing `LowerHex` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::LowerHex for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(9);\n///\n/// assert_eq!(format!(\"l as hex is: {:x}\", l), \"l as hex is: 9\");\n///\n/// assert_eq!(format!(\"l as hex is: {:#010x}\", l), \"l as hex is: 0x00000009\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait LowerHex {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `X` formatting.\n///\n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`\n/// in upper case.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0x` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '2A' in hex\n///\n/// assert_eq!(format!(\"{:X}\", x), \"2A\");\n/// assert_eq!(format!(\"{:#X}\", x), \"0x2A\");\n///\n/// assert_eq!(format!(\"{:X}\", -16), \"FFFFFFF0\");\n/// ```\n///\n/// Implementing `UpperHex` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::UpperHex for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(i32::MAX);\n///\n/// assert_eq!(format!(\"l as hex is: {:X}\", l), \"l as hex is: 7FFFFFFF\");\n///\n/// assert_eq!(format!(\"l as hex is: {:#010X}\", l), \"l as hex is: 0x7FFFFFFF\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait UpperHex {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `p` formatting.\n///\n/// The `Pointer` trait should format its output as a memory location. This is commonly presented\n/// as hexadecimal.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `&i32`:\n///\n/// ```\n/// let x = &42;\n///\n/// let address = format!(\"{:p}\", x); // this produces something like '0x7f06092ac6d0'\n/// ```\n///\n/// Implementing `Pointer` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Pointer for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can use\n///\n/// let ptr = self as *const Self;\n/// fmt::Pointer::fmt(&ptr, f)\n/// }\n/// }\n///\n/// let l = Length(42);\n///\n/// println!(\"l is in memory here: {:p}\", l);\n///\n/// let l_ptr = format!(\"{:018p}\", l);\n/// assert_eq!(l_ptr.len(), 18);\n/// assert_eq!(&l_ptr[..2], \"0x\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Pointer {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `e` formatting.\n///\n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `f64`:\n///\n/// ```\n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notation\n///\n/// assert_eq!(format!(\"{:e}\", x), \"4.2e1\");\n/// ```\n///\n/// Implementing `LowerExp` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::LowerExp for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = f64::from(self.0);\n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementation\n/// }\n/// }\n///\n/// let l = Length(100);\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:e}\", l),\n/// \"l in scientific notation is: 1e2\"\n/// );\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:05e}\", l),\n/// \"l in scientific notation is: 001e2\"\n/// );\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait LowerExp {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `E` formatting.\n///\n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `f64`:\n///\n/// ```\n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notation\n///\n/// assert_eq!(format!(\"{:E}\", x), \"4.2E1\");\n/// ```\n///\n/// Implementing `UpperExp` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::UpperExp for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = f64::from(self.0);\n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementation\n/// }\n/// }\n///\n/// let l = Length(100);\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:E}\", l),\n/// \"l in scientific notation is: 1E2\"\n/// );\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:05E}\", l),\n/// \"l in scientific notation is: 001E2\"\n/// );\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait UpperExp {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// The `write` function takes an output stream, and an `Arguments` struct\n/// that can be precompiled with the `format_args!` macro.\n///\n/// The arguments will be formatted according to the specified format string\n/// into the output stream provided.\n///\n/// # Examples\n///\n/// Basic usage:\n///\n/// ```\n/// use std::fmt;\n///\n/// let mut output = String::new();\n/// fmt::write(&mut output, format_args!(\"Hello {}!\", \"world\"))\n/// .expect(\"Error occurred while trying to write in String\");\n/// assert_eq!(output, \"Hello world!\");\n/// ```\n///\n/// Please note that using [`write!`] might be preferable. Example:\n///\n/// ```\n/// use std::fmt::Write;\n///\n/// let mut output = String::new();\n/// write!(&mut output, \"Hello {}!\", \"world\")\n/// .expect(\"Error occurred while trying to write in String\");\n/// assert_eq!(output, \"Hello world!\");\n/// ```\n///\n/// [`write!`]: ../../std/macro.write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {\n let mut formatter = Formatter {\n flags: 0,\n width: None,\n precision: None,\n buf: output,\n align: rt::v1::Alignment::Unknown,\n fill: ' ',\n };\n\n let mut idx = 0;\n\n match args.fmt {\n None => {\n // We can use default formatting parameters for all arguments.\n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {\n formatter.buf.write_str(*piece)?;\n (arg.formatter)(arg.value, &mut formatter)?;\n idx += 1;\n }\n }\n Some(fmt) => {\n // Every spec has a corresponding argument that is preceded by\n // a string piece.\n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {\n formatter.buf.write_str(*piece)?;\n run(&mut formatter, arg, &args.args)?;\n idx += 1;\n }\n }\n }\n\n // There can be only one trailing string piece left.\n if let Some(piece) = args.pieces.get(idx) {\n formatter.buf.write_str(*piece)?;\n }\n\n Ok(())\n}\n\nfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {\n fmt.fill = arg.format.fill;\n fmt.align = arg.format.align;\n fmt.flags = arg.format.flags;\n fmt.width = getcount(args, &arg.format.width);\n fmt.precision = getcount(args, &arg.format.precision);\n\n // Extract the correct argument\n let value = args[arg.position];\n\n // Then actually do some printing\n (value.formatter)(value.value, fmt)\n}\n\nfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {\n match *cnt {\n rt::v1::Count::Is(n) => Some(n),\n rt::v1::Count::Implied => None,\n rt::v1::Count::Param(i) => args[i].as_usize(),\n }\n}\n\n/// Padding after the end of something. Returned by `Formatter::padding`.\n#[must_use = \"don't forget to write the post padding\"]\nstruct PostPadding {\n fill: char,\n padding: usize,\n}\n\nimpl PostPadding {\n fn new(fill: char, padding: usize) -> PostPadding {\n PostPadding { fill, padding }\n }\n\n /// Write this post padding.\n fn write(self, buf: &mut dyn Write) -> Result {\n for _ in 0..self.padding {\n buf.write_char(self.fill)?;\n }\n Ok(())\n }\n}\n\nimpl<'a> Formatter<'a> {\n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>\n where\n 'b: 'c,\n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),\n {\n Formatter {\n // We want to change this\n buf: wrap(self.buf),\n\n // And preserve these\n flags: self.flags,\n fill: self.fill,\n align: self.align,\n width: self.width,\n precision: self.precision,\n }\n }\n\n // Helper methods used for padding and processing formatting arguments that\n // all formatting traits can use.\n\n /// Performs the correct padding for an integer which has already been\n /// emitted into a str. The str should *not* contain the sign for the\n /// integer, that will be added by this method.\n ///\n /// # Arguments\n ///\n /// * is_nonnegative - whether the original integer was either positive or zero.\n /// * prefix - if the '#' character (Alternate) is provided, this\n /// is the prefix to put in front of the number.\n /// * buf - the byte array that the number has been formatted into\n ///\n /// This function will correctly account for the flags provided as well as\n /// the minimum width. It will not take precision into account.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo { nb: i32 };\n ///\n /// impl Foo {\n /// fn new(nb: i32) -> Foo {\n /// Foo {\n /// nb,\n /// }\n /// }\n /// }\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// // We need to remove \"-\" from the number output.\n /// let tmp = self.nb.abs().to_string();\n ///\n /// formatter.pad_integral(self.nb > 0, \"Foo \", &tmp)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo::new(2)), \"2\");\n /// assert_eq!(&format!(\"{}\", Foo::new(-1)), \"-1\");\n /// assert_eq!(&format!(\"{:#}\", Foo::new(-1)), \"-Foo 1\");\n /// assert_eq!(&format!(\"{:0>#8}\", Foo::new(-1)), \"00-Foo 1\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {\n let mut width = buf.len();\n\n let mut sign = None;\n if !is_nonnegative {\n sign = Some('-');\n width += 1;\n } else if self.sign_plus() {\n sign = Some('+');\n width += 1;\n }\n\n let prefix = if self.alternate() {\n width += prefix.chars().count();\n Some(prefix)\n } else {\n None\n };\n\n // Writes the sign if it exists, and then the prefix if it was requested\n #[inline(never)]\n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {\n if let Some(c) = sign {\n f.buf.write_char(c)?;\n }\n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }\n }\n\n // The `width` field is more of a `min-width` parameter at this point.\n match self.width {\n // If there's no minimum length requirements then we can just\n // write the bytes.\n None => {\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)\n }\n // Check if we're over the minimum width, if so then we can also\n // just write the bytes.\n Some(min) if width >= min => {\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)\n }\n // The sign and prefix goes before the padding if the fill character\n // is zero\n Some(min) if self.sign_aware_zero_pad() => {\n let old_fill = crate::mem::replace(&mut self.fill, '0');\n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);\n write_prefix(self, sign, prefix)?;\n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;\n self.buf.write_str(buf)?;\n post_padding.write(self.buf)?;\n self.fill = old_fill;\n self.align = old_align;\n Ok(())\n }\n // Otherwise, the sign and prefix goes after the padding\n Some(min) => {\n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)?;\n post_padding.write(self.buf)\n }\n }\n }\n\n /// This function takes a string slice and emits it to the internal buffer\n /// after applying the relevant formatting flags specified. The flags\n /// recognized for generic strings are:\n ///\n /// * width - the minimum width of what to emit\n /// * fill/align - what to emit and where to emit it if the string\n /// provided needs to be padded\n /// * precision - the maximum length to emit, the string is truncated if it\n /// is longer than this length\n ///\n /// Notably this function ignores the `flag` parameters.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.pad(\"Foo\")\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:<4}\", Foo), \"Foo \");\n /// assert_eq!(&format!(\"{:0>4}\", Foo), \"0Foo\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn pad(&mut self, s: &str) -> Result {\n // Make sure there's a fast path up front\n if self.width.is_none() && self.precision.is_none() {\n return self.buf.write_str(s);\n }\n // The `precision` field can be interpreted as a `max-width` for the\n // string being formatted.\n let s = if let Some(max) = self.precision {\n // If our string is longer that the precision, then we must have\n // truncation. However other flags like `fill`, `width` and `align`\n // must act as always.\n if let Some((i, _)) = s.char_indices().nth(max) {\n // LLVM here can't prove that `..i` won't panic `&s[..i]`, but\n // we know that it can't panic. Use `get` + `unwrap_or` to avoid\n // `unsafe` and otherwise don't emit any panic-related code\n // here.\n s.get(..i).unwrap_or(&s)\n } else {\n &s\n }\n } else {\n &s\n };\n // The `width` field is more of a `min-width` parameter at this point.\n match self.width {\n // If we're under the maximum length, and there's no minimum length\n // requirements, then we can just emit the string\n None => self.buf.write_str(s),\n // If we're under the maximum width, check if we're over the minimum\n // width, if so it's as easy as just emitting the string.\n Some(width) if s.chars().count() >= width => self.buf.write_str(s),\n // If we're under both the maximum and the minimum width, then fill\n // up the minimum width with the specified string + some alignment.\n Some(width) => {\n let align = rt::v1::Alignment::Left;\n let post_padding = self.padding(width - s.chars().count(), align)?;\n self.buf.write_str(s)?;\n post_padding.write(self.buf)\n }\n }\n }\n\n /// Write the pre-padding and return the unwritten post-padding. Callers are\n /// responsible for ensuring post-padding is written after the thing that is\n /// being padded.\n fn padding(\n &mut self,\n padding: usize,\n default: rt::v1::Alignment,\n ) -> result::Result {\n let align = match self.align {\n rt::v1::Alignment::Unknown => default,\n _ => self.align,\n };\n\n let (pre_pad, post_pad) = match align {\n rt::v1::Alignment::Left => (0, padding),\n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),\n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),\n };\n\n for _ in 0..pre_pad {\n self.buf.write_char(self.fill)?;\n }\n\n Ok(PostPadding::new(self.fill, post_pad))\n }\n\n /// Takes the formatted parts and applies the padding.\n /// Assumes that the caller already has rendered the parts with required precision,\n /// so that `self.precision` can be ignored.\n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {\n if let Some(mut width) = self.width {\n // for the sign-aware zero padding, we render the sign first and\n // behave as if we had no sign from the beginning.\n let mut formatted = formatted.clone();\n let old_fill = self.fill;\n let old_align = self.align;\n let mut align = old_align;\n if self.sign_aware_zero_pad() {\n // a sign always goes first\n let sign = formatted.sign;\n self.buf.write_str(sign)?;\n\n // remove the sign from the formatted parts\n formatted.sign = \"\";\n width = width.saturating_sub(sign.len());\n align = rt::v1::Alignment::Right;\n self.fill = '0';\n self.align = rt::v1::Alignment::Right;\n }\n\n // remaining parts go through the ordinary padding process.\n let len = formatted.len();\n let ret = if width <= len {\n // no padding\n self.write_formatted_parts(&formatted)\n } else {\n let post_padding = self.padding(width - len, align)?;\n self.write_formatted_parts(&formatted)?;\n post_padding.write(self.buf)\n };\n self.fill = old_fill;\n self.align = old_align;\n ret\n } else {\n // this is the common case and we take a shortcut\n self.write_formatted_parts(formatted)\n }\n }\n\n fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {\n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {\n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.\n // It's safe to use for `flt2dec::Part::Num` since every char `c` is between\n // `b'0'` and `b'9'`, which means `s` is valid UTF-8.\n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`\n // since `buf` should be plain ASCII, but it's possible for someone to pass\n // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is a\n // public function.\n // FIXME: Determine whether this could result in UB.\n buf.write_str(unsafe { str::from_utf8_unchecked(s) })\n }\n\n if !formatted.sign.is_empty() {\n self.buf.write_str(formatted.sign)?;\n }\n for part in formatted.parts {\n match *part {\n flt2dec::Part::Zero(mut nzeroes) => {\n const ZEROES: &str = // 64 zeroes\n \"0000000000000000000000000000000000000000000000000000000000000000\";\n while nzeroes > ZEROES.len() {\n self.buf.write_str(ZEROES)?;\n nzeroes -= ZEROES.len();\n }\n if nzeroes > 0 {\n self.buf.write_str(&ZEROES[..nzeroes])?;\n }\n }\n flt2dec::Part::Num(mut v) => {\n let mut s = [0; 5];\n let len = part.len();\n for c in s[..len].iter_mut().rev() {\n *c = b'0' + (v % 10) as u8;\n v /= 10;\n }\n write_bytes(self.buf, &s[..len])?;\n }\n flt2dec::Part::Copy(buf) => {\n write_bytes(self.buf, buf)?;\n }\n }\n }\n Ok(())\n }\n\n /// Writes some data to the underlying buffer contained within this\n /// formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.write_str(\"Foo\")\n /// // This is equivalent to:\n /// // write!(formatter, \"Foo\")\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo), \"Foo\");\n /// assert_eq!(&format!(\"{:0>8}\", Foo), \"Foo\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn write_str(&mut self, data: &str) -> Result {\n self.buf.write_str(data)\n }\n\n /// Writes some formatted information into this instance.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.write_fmt(format_args!(\"Foo {}\", self.0))\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo(-1)), \"Foo -1\");\n /// assert_eq!(&format!(\"{:0>8}\", Foo(2)), \"Foo 2\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {\n write(self.buf, fmt)\n }\n\n /// Flags for formatting\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n #[rustc_deprecated(\n since = \"1.24.0\",\n reason = \"use the `sign_plus`, `sign_minus`, `alternate`, \\\n or `sign_aware_zero_pad` methods instead\"\n )]\n pub fn flags(&self) -> u32 {\n self.flags\n }\n\n /// Character used as 'fill' whenever there is alignment.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// let c = formatter.fill();\n /// if let Some(width) = formatter.width() {\n /// for _ in 0..width {\n /// write!(formatter, \"{}\", c)?;\n /// }\n /// Ok(())\n /// } else {\n /// write!(formatter, \"{}\", c)\n /// }\n /// }\n /// }\n ///\n /// // We set alignment to the left with \">\".\n /// assert_eq!(&format!(\"{:G>3}\", Foo), \"GGG\");\n /// assert_eq!(&format!(\"{:t>6}\", Foo), \"tttttt\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn fill(&self) -> char {\n self.fill\n }\n\n /// Flag indicating what form of alignment was requested.\n ///\n /// # Examples\n ///\n /// ```\n /// extern crate core;\n ///\n /// use std::fmt::{self, Alignment};\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// let s = if let Some(s) = formatter.align() {\n /// match s {\n /// Alignment::Left => \"left\",\n /// Alignment::Right => \"right\",\n /// Alignment::Center => \"center\",\n /// }\n /// } else {\n /// \"into the void\"\n /// };\n /// write!(formatter, \"{}\", s)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:<}\", Foo), \"left\");\n /// assert_eq!(&format!(\"{:>}\", Foo), \"right\");\n /// assert_eq!(&format!(\"{:^}\", Foo), \"center\");\n /// assert_eq!(&format!(\"{}\", Foo), \"into the void\");\n /// ```\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n pub fn align(&self) -> Option {\n match self.align {\n rt::v1::Alignment::Left => Some(Alignment::Left),\n rt::v1::Alignment::Right => Some(Alignment::Right),\n rt::v1::Alignment::Center => Some(Alignment::Center),\n rt::v1::Alignment::Unknown => None,\n }\n }\n\n /// Optionally specified integer width that the output should be.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if let Some(width) = formatter.width() {\n /// // If we received a width, we use it\n /// write!(formatter, \"{:width$}\", &format!(\"Foo({})\", self.0), width = width)\n /// } else {\n /// // Otherwise we do nothing special\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:10}\", Foo(23)), \"Foo(23) \");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn width(&self) -> Option {\n self.width\n }\n\n /// Optionally specified precision for numeric types. Alternatively, the\n /// maximum width for string types.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(f32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if let Some(precision) = formatter.precision() {\n /// // If we received a precision, we use it.\n /// write!(formatter, \"Foo({1:.*})\", precision, self.0)\n /// } else {\n /// // Otherwise we default to 2.\n /// write!(formatter, \"Foo({:.2})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:.4}\", Foo(23.2)), \"Foo(23.2000)\");\n /// assert_eq!(&format!(\"{}\", Foo(23.2)), \"Foo(23.20)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn precision(&self) -> Option {\n self.precision\n }\n\n /// Determines if the `+` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.sign_plus() {\n /// write!(formatter,\n /// \"Foo({}{})\",\n /// if self.0 < 0 { '-' } else { '+' },\n /// self.0)\n /// } else {\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:+}\", Foo(23)), \"Foo(+23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_plus(&self) -> bool {\n self.flags & (1 << FlagV1::SignPlus as u32) != 0\n }\n\n /// Determines if the `-` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.sign_minus() {\n /// // You want a minus sign? Have one!\n /// write!(formatter, \"-Foo({})\", self.0)\n /// } else {\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:-}\", Foo(23)), \"-Foo(23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_minus(&self) -> bool {\n self.flags & (1 << FlagV1::SignMinus as u32) != 0\n }\n\n /// Determines if the `#` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.alternate() {\n /// write!(formatter, \"Foo({})\", self.0)\n /// } else {\n /// write!(formatter, \"{}\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:#}\", Foo(23)), \"Foo(23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"23\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn alternate(&self) -> bool {\n self.flags & (1 << FlagV1::Alternate as u32) != 0\n }\n\n /// Determines if the `0` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// assert!(formatter.sign_aware_zero_pad());\n /// assert_eq!(formatter.width(), Some(4));\n /// // We ignore the formatter's options.\n /// write!(formatter, \"{}\", self.0)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:04}\", Foo(23)), \"23\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_aware_zero_pad(&self) -> bool {\n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0\n }\n\n // FIXME: Decide what public API we want for these two flags.\n // https://github.com/rust-lang/rust/issues/48584\n fn debug_lower_hex(&self) -> bool {\n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0\n }\n\n fn debug_upper_hex(&self) -> bool {\n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0\n }\n\n /// Creates a [`DebugStruct`] builder designed to assist with creation of\n /// [`fmt::Debug`] implementations for structs.\n ///\n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.html\n /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.html\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n /// use std::net::Ipv4Addr;\n ///\n /// struct Foo {\n /// bar: i32,\n /// baz: String,\n /// addr: Ipv4Addr,\n /// }\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_struct(\"Foo\")\n /// .field(\"bar\", &self.bar)\n /// .field(\"baz\", &self.baz)\n /// .field(\"addr\", &format_args!(\"{}\", self.addr))\n /// .finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// \"Foo { bar: 10, baz: \\\"Hello World\\\", addr: 127.0.0.1 }\",\n /// format!(\"{:?}\", Foo {\n /// bar: 10,\n /// baz: \"Hello World\".to_string(),\n /// addr: Ipv4Addr::new(127, 0, 0, 1),\n /// })\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {\n builders::debug_struct_new(self, name)\n }\n\n /// Creates a `DebugTuple` builder designed to assist with creation of\n /// `fmt::Debug` implementations for tuple structs.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n /// use std::marker::PhantomData;\n ///\n /// struct Foo(i32, String, PhantomData);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_tuple(\"Foo\")\n /// .field(&self.0)\n /// .field(&self.1)\n /// .field(&format_args!(\"_\"))\n /// .finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// \"Foo(10, \\\"Hello\\\", _)\",\n /// format!(\"{:?}\", Foo(10, \"Hello\".to_string(), PhantomData::))\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {\n builders::debug_tuple_new(self, name)\n }\n\n /// Creates a `DebugList` builder designed to assist with creation of\n /// `fmt::Debug` implementations for list-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_list().entries(self.0.iter()).finish()\n /// }\n /// }\n ///\n /// assert_eq!(format!(\"{:?}\", Foo(vec![10, 11])), \"[10, 11]\");\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {\n builders::debug_list_new(self)\n }\n\n /// Creates a `DebugSet` builder designed to assist with creation of\n /// `fmt::Debug` implementations for set-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_set().entries(self.0.iter()).finish()\n /// }\n /// }\n ///\n /// assert_eq!(format!(\"{:?}\", Foo(vec![10, 11])), \"{10, 11}\");\n /// ```\n ///\n /// [`format_args!`]: ../../std/macro.format_args.html\n ///\n /// In this more complex example, we use [`format_args!`] and `.debug_set()`\n /// to build a list of match arms:\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));\n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);\n ///\n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>\n /// where\n /// L: 'a + fmt::Debug, R: 'a + fmt::Debug\n /// {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// L::fmt(&(self.0).0, fmt)?;\n /// fmt.write_str(\" => \")?;\n /// R::fmt(&(self.0).1, fmt)\n /// }\n /// }\n ///\n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>\n /// where\n /// K: 'a + fmt::Debug, V: 'a + fmt::Debug\n /// {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_set()\n /// .entries(self.0.iter().map(Arm))\n /// .entry(&Arm(&(format_args!(\"_\"), &self.1)))\n /// .finish()\n /// }\n /// }\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {\n builders::debug_set_new(self)\n }\n\n /// Creates a `DebugMap` builder designed to assist with creation of\n /// `fmt::Debug` implementations for map-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec<(String, i32)>);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// format!(\"{:?}\", Foo(vec![(\"A\".to_string(), 10), (\"B\".to_string(), 11)])),\n /// r#\"{\"A\": 10, \"B\": 11}\"#\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {\n builders::debug_map_new(self)\n }\n}\n\n#[stable(since = \"1.2.0\", feature = \"formatter_write\")]\nimpl Write for Formatter<'_> {\n fn write_str(&mut self, s: &str) -> Result {\n self.buf.write_str(s)\n }\n\n fn write_char(&mut self, c: char) -> Result {\n self.buf.write_char(c)\n }\n\n fn write_fmt(&mut self, args: Arguments<'_>) -> Result {\n write(self.buf, args)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for Error {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(\"an error occurred when formatting an argument\", f)\n }\n}\n\n// Implementations of the core formatting traits\n\nmacro_rules! fmt_refs {\n ($($tr:ident),*) => {\n $(\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl $tr for &T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }\n }\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl $tr for &mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }\n }\n )*\n }\n}\n\nfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }\n\n#[unstable(feature = \"never_type\", issue = \"35121\")]\nimpl Debug for ! {\n fn fmt(&self, _: &mut Formatter<'_>) -> Result {\n *self\n }\n}\n\n#[unstable(feature = \"never_type\", issue = \"35121\")]\nimpl Display for ! {\n fn fmt(&self, _: &mut Formatter<'_>) -> Result {\n *self\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for bool {\n #[inline]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(self, f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for bool {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(if *self { \"true\" } else { \"false\" }, f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for str {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.write_char('\"')?;\n let mut from = 0;\n for (i, c) in self.char_indices() {\n let esc = c.escape_debug();\n // If char needs escaping, flush backlog so far and write, else skip\n if esc.len() != 1 {\n f.write_str(&self[from..i])?;\n for c in esc {\n f.write_char(c)?;\n }\n from = i + c.len_utf8();\n }\n }\n f.write_str(&self[from..])?;\n f.write_char('\"')\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for str {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(self)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for char {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.write_char('\\'')?;\n for c in self.escape_debug() {\n f.write_char(c)?\n }\n f.write_char('\\'')\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for char {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n if f.width.is_none() && f.precision.is_none() {\n f.write_char(*self)\n } else {\n f.pad(self.encode_utf8(&mut [0; 4]))\n }\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for *const T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n let old_width = f.width;\n let old_flags = f.flags;\n\n // The alternate flag is already treated by LowerHex as being special-\n // it denotes whether to prefix with 0x. We use it to work out whether\n // or not to zero extend, and then unconditionally set it to get the\n // prefix.\n if f.alternate() {\n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);\n\n if f.width.is_none() {\n f.width = Some(((mem::size_of::() * 8) / 4) + 2);\n }\n }\n f.flags |= 1 << (FlagV1::Alternate as u32);\n\n let ret = LowerHex::fmt(&(*self as *const () as usize), f);\n\n f.width = old_width;\n f.flags = old_flags;\n\n ret\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for *mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(*self as *const T), f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for &T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(*self as *const T), f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for &mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(&**self as *const T), f)\n }\n}\n\n// Implementation of Display/Debug for various core types\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for *const T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(self, f)\n }\n}\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for *mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(self, f)\n }\n}\n\nmacro_rules! peel {\n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })\n}\n\nmacro_rules! tuple {\n () => ();\n ( $($name:ident,)+ ) => (\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {\n #[allow(non_snake_case, unused_assignments)]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n let mut builder = f.debug_tuple(\"\");\n let ($(ref $name,)+) = *self;\n $(\n builder.field(&$name);\n )+\n\n builder.finish()\n }\n }\n peel! { $($name,)+ }\n )\n}\n\nmacro_rules! last_type {\n ($a:ident,) => { $a };\n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };\n}\n\ntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for [T] {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.debug_list().entries(self.iter()).finish()\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for () {\n #[inline]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(\"()\")\n }\n}\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for PhantomData {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(\"PhantomData\")\n }\n}" + ) + , (2356, 69106, "") + , ( 2356 + , 0 + , "//! Utilities for formatting and printing strings.\n\n#![stable(feature = \"rust1\", since = \"1.0.0\")]\n\nuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};\nuse crate::marker::PhantomData;\nuse crate::mem;\nuse crate::num::flt2dec;\nuse crate::ops::Deref;\nuse crate::result;\nuse crate::str;\n\nmod builders;\nmod float;\nmod num;\n\n#[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n/// Possible alignments returned by `Formatter::align`\n#[derive(Debug)]\npub enum Alignment {\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be left-aligned.\n Left,\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be right-aligned.\n Right,\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n /// Indication that contents should be center-aligned.\n Center,\n}\n\n#[stable(feature = \"debug_builders\", since = \"1.2.0\")]\npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};\n\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n#[doc(hidden)]\npub mod rt {\n pub mod v1;\n}\n\n/// The type returned by formatter methods.\n///\n/// # Examples\n///\n/// ```\n/// use std::fmt;\n///\n/// #[derive(Debug)]\n/// struct Triangle {\n/// a: f32,\n/// b: f32,\n/// c: f32\n/// }\n///\n/// impl fmt::Display for Triangle {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// write!(f, \"({}, {}, {})\", self.a, self.b, self.c)\n/// }\n/// }\n///\n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };\n///\n/// assert_eq!(format!(\"{}\", pythagorean_triple), \"(3, 4, 5)\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub type Result = result::Result<(), Error>;\n\n/// The error type which is returned from formatting a message into a stream.\n///\n/// This type does not support transmission of an error other than that an error\n/// occurred. Any extra information must be arranged to be transmitted through\n/// some other means.\n///\n/// An important thing to remember is that the type `fmt::Error` should not be\n/// confused with [`std::io::Error`] or [`std::error::Error`], which you may also\n/// have in scope.\n///\n/// [`std::io::Error`]: ../../std/io/struct.Error.html\n/// [`std::error::Error`]: ../../std/error/trait.Error.html\n///\n/// # Examples\n///\n/// ```rust\n/// use std::fmt::{self, write};\n///\n/// let mut output = String::new();\n/// if let Err(fmt::Error) = write(&mut output, format_args!(\"Hello {}!\", \"world\")) {\n/// panic!(\"An error occurred\");\n/// }\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]\npub struct Error;\n\n/// A collection of methods that are required to format a message into a stream.\n///\n/// This trait is the type which this modules requires when formatting\n/// information. This is similar to the standard library's [`io::Write`] trait,\n/// but it is only intended for use in libcore.\n///\n/// This trait should generally not be implemented by consumers of the standard\n/// library. The [`write!`] macro accepts an instance of [`io::Write`], and the\n/// [`io::Write`] trait is favored over implementing this trait.\n///\n/// [`write!`]: ../../std/macro.write.html\n/// [`io::Write`]: ../../std/io/trait.Write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Write {\n /// Writes a string slice into this writer, returning whether the write\n /// succeeded.\n ///\n /// This method can only succeed if the entire string slice was successfully\n /// written, and this method will not return until all data has been\n /// written or an error occurs.\n ///\n /// # Errors\n ///\n /// This function will return an instance of [`Error`] on error.\n ///\n /// [`Error`]: struct.Error.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {\n /// f.write_str(s)\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, \"hola\").unwrap();\n /// assert_eq!(&buf, \"hola\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn write_str(&mut self, s: &str) -> Result;\n\n /// Writes a [`char`] into this writer, returning whether the write succeeded.\n ///\n /// A single [`char`] may be encoded as more than one byte.\n /// This method can only succeed if the entire byte sequence was successfully\n /// written, and this method will not return until all data has been\n /// written or an error occurs.\n ///\n /// # Errors\n ///\n /// This function will return an instance of [`Error`] on error.\n ///\n /// [`char`]: ../../std/primitive.char.html\n /// [`Error`]: struct.Error.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {\n /// f.write_char(c)\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, 'a').unwrap();\n /// writer(&mut buf, 'b').unwrap();\n /// assert_eq!(&buf, \"ab\");\n /// ```\n #[stable(feature = \"fmt_write_char\", since = \"1.1.0\")]\n fn write_char(&mut self, c: char) -> Result {\n self.write_str(c.encode_utf8(&mut [0; 4]))\n }\n\n /// Glue for usage of the [`write!`] macro with implementors of this trait.\n ///\n /// This method should generally not be invoked manually, but rather through\n /// the [`write!`] macro itself.\n ///\n /// [`write!`]: ../../std/macro.write.html\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt::{Error, Write};\n ///\n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {\n /// f.write_fmt(format_args!(\"{}\", s))\n /// }\n ///\n /// let mut buf = String::new();\n /// writer(&mut buf, \"world\").unwrap();\n /// assert_eq!(&buf, \"world\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {\n write(&mut self, args)\n }\n}\n\n#[stable(feature = \"fmt_write_blanket_impl\", since = \"1.4.0\")]\nimpl Write for &mut W {\n fn write_str(&mut self, s: &str) -> Result {\n (**self).write_str(s)\n }\n\n fn write_char(&mut self, c: char) -> Result {\n (**self).write_char(c)\n }\n\n fn write_fmt(&mut self, args: Arguments<'_>) -> Result {\n (**self).write_fmt(args)\n }\n}\n\n/// Configuration for formatting.\n///\n/// A `Formatter` represents various options related to formatting. Users do not\n/// construct `Formatter`s directly; a mutable reference to one is passed to\n/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].\n///\n/// To interact with a `Formatter`, you'll call various methods to change the\n/// various options related to formatting. For examples, please see the\n/// documentation of the methods defined on `Formatter` below.\n///\n/// [`Debug`]: trait.Debug.html\n/// [`Display`]: trait.Display.html\n#[allow(missing_debug_implementations)]\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub struct Formatter<'a> {\n flags: u32,\n fill: char,\n align: rt::v1::Alignment,\n width: Option,\n precision: Option,\n\n buf: &'a mut (dyn Write + 'a),\n}\n\n// NB. Argument is essentially an optimized partially applied formatting function,\n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.\n\nextern \"C\" {\n type Opaque;\n}\n\n/// This struct represents the generic \"argument\" which is taken by the Xprintf\n/// family of functions. It contains a function to format the given value. At\n/// compile time it is ensured that the function and the value have the correct\n/// types, and then this struct is used to canonicalize arguments to one type.\n#[derive(Copy, Clone)]\n#[allow(missing_debug_implementations)]\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n#[doc(hidden)]\npub struct ArgumentV1<'a> {\n value: &'a Opaque,\n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,\n}\n\n// This guarantees a single stable value for the function pointer associated with\n// indices/counts in the formatting infrastructure.\n//\n// Note that a function defined as such would not be correct as functions are\n// always tagged unnamed_addr with the current lowering to LLVM IR, so their\n// address is not considered important to LLVM and as such the as_usize cast\n// could have been miscompiled. In practice, we never call as_usize on non-usize\n// containing data (as a matter of static generation of the formatting\n// arguments), so this is merely an additional check.\n//\n// We primarily want to ensure that the function pointer at `USIZE_MARKER` has\n// an address corresponding *only* to functions that also take `&usize` as their\n// first argument. The read_volatile here ensures that we can safely ready out a\n// usize from the passed reference and that this address does not point at a\n// non-usize taking function.\n#[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {\n // SAFETY: ptr is a reference\n let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };\n loop {}\n};\n\nimpl<'a> ArgumentV1<'a> {\n #[doc(hidden)]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {\n // SAFETY: `mem::transmute(x)` is safe because\n // 1. `&'b T` keeps the lifetime it originated with `'b`\n // (so as to not have an unbounded lifetime)\n // 2. `&'b T` and `&'b Opaque` have the same memory layout\n // (when `T` is `Sized`, as it is here)\n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`\n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABI\n // (as long as `T` is `Sized`)\n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }\n }\n\n #[doc(hidden)]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {\n ArgumentV1::new(x, USIZE_MARKER)\n }\n\n fn as_usize(&self) -> Option {\n if self.formatter as usize == USIZE_MARKER as usize {\n // SAFETY: The `formatter` field is only set to USIZE_MARKER if\n // the value is a usize, so this is safe\n Some(unsafe { *(self.value as *const _ as *const usize) })\n } else {\n None\n }\n }\n}\n\n// flags available in the v1 format of format_args\n#[derive(Copy, Clone)]\nenum FlagV1 {\n SignPlus,\n SignMinus,\n Alternate,\n SignAwareZeroPad,\n DebugLowerHex,\n DebugUpperHex,\n}\n\nimpl<'a> Arguments<'a> {\n /// When using the format_args!() macro, this function is used to generate the\n /// Arguments structure.\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {\n Arguments { pieces, fmt: None, args }\n }\n\n /// This function is used to specify nonstandard formatting parameters.\n /// The `pieces` array must be at least as long as `fmt` to construct\n /// a valid Arguments structure. Also, any `Count` within `fmt` that is\n /// `CountIsParam` or `CountIsNextParam` has to point to an argument\n /// created with `argumentusize`. However, failing to do so doesn't cause\n /// unsafety, but will ignore invalid .\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn new_v1_formatted(\n pieces: &'a [&'a str],\n args: &'a [ArgumentV1<'a>],\n fmt: &'a [rt::v1::Argument],\n ) -> Arguments<'a> {\n Arguments { pieces, fmt: Some(fmt), args }\n }\n\n /// Estimates the length of the formatted text.\n ///\n /// This is intended to be used for setting initial `String` capacity\n /// when using `format!`. Note: this is neither the lower nor upper bound.\n #[doc(hidden)]\n #[inline]\n #[unstable(feature = \"fmt_internals\", reason = \"internal to format_args!\", issue = \"none\")]\n pub fn estimated_capacity(&self) -> usize {\n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();\n\n if self.args.is_empty() {\n pieces_length\n } else if self.pieces[0] == \"\" && pieces_length < 16 {\n // If the format string starts with an argument,\n // don't preallocate anything, unless length\n // of pieces is significant.\n 0\n } else {\n // There are some arguments, so any additional push\n // will reallocate the string. To avoid that,\n // we're \"pre-doubling\" the capacity here.\n pieces_length.checked_mul(2).unwrap_or(0)\n }\n }\n}\n\n/// This structure represents a safely precompiled version of a format string\n/// and its arguments. This cannot be generated at runtime because it cannot\n/// safely be done, so no constructors are given and the fields are private\n/// to prevent modification.\n///\n/// The [`format_args!`] macro will safely create an instance of this structure.\n/// The macro validates the format string at compile-time so usage of the\n/// [`write`] and [`format`] functions can be safely performed.\n///\n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`\n/// and `Display` contexts as seen below. The example also shows that `Debug`\n/// and `Display` format to the same thing: the interpolated format string\n/// in `format_args!`.\n///\n/// ```rust\n/// let debug = format!(\"{:?}\", format_args!(\"{} foo {:?}\", 1, 2));\n/// let display = format!(\"{}\", format_args!(\"{} foo {:?}\", 1, 2));\n/// assert_eq!(\"1 foo 2\", display);\n/// assert_eq!(display, debug);\n/// ```\n///\n/// [`format_args!`]: ../../std/macro.format_args.html\n/// [`format`]: ../../std/fmt/fn.format.html\n/// [`write`]: ../../std/fmt/fn.write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[derive(Copy, Clone)]\npub struct Arguments<'a> {\n // Format string pieces to print.\n pieces: &'a [&'a str],\n\n // Placeholder specs, or `None` if all specs are default (as in \"{}{}\").\n fmt: Option<&'a [rt::v1::Argument]>,\n\n // Dynamic arguments for interpolation, to be interleaved with string\n // pieces. (Every argument is preceded by a string piece.)\n args: &'a [ArgumentV1<'a>],\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for Arguments<'_> {\n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {\n Display::fmt(self, fmt)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for Arguments<'_> {\n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {\n write(fmt.buf, *self)\n }\n}\n\n/// `?` formatting.\n///\n/// `Debug` should format the output in a programmer-facing, debugging context.\n///\n/// Generally speaking, you should just `derive` a `Debug` implementation.\n///\n/// When used with the alternate format specifier `#?`, the output is pretty-printed.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// This trait can be used with `#[derive]` if all fields implement `Debug`. When\n/// `derive`d for structs, it will use the name of the `struct`, then `{`, then a\n/// comma-separated list of each field's name and `Debug` value, then `}`. For\n/// `enum`s, it will use the name of the variant and, if applicable, `(`, then the\n/// `Debug` values of the fields, then `)`.\n///\n/// # Stability\n///\n/// Derived `Debug` formats are not stable, and so may change with future Rust\n/// versions. Additionally, `Debug` implementations of types provided by the\n/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, and\n/// may also change with future Rust versions.\n///\n/// # Examples\n///\n/// Deriving an implementation:\n///\n/// ```\n/// #[derive(Debug)]\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:?}\", origin), \"The origin is: Point { x: 0, y: 0 }\");\n/// ```\n///\n/// Manually implementing:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// impl fmt::Debug for Point {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// f.debug_struct(\"Point\")\n/// .field(\"x\", &self.x)\n/// .field(\"y\", &self.y)\n/// .finish()\n/// }\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:?}\", origin), \"The origin is: Point { x: 0, y: 0 }\");\n/// ```\n///\n/// There are a number of helper methods on the [`Formatter`] struct to help you with manual\n/// implementations, such as [`debug_struct`].\n///\n/// `Debug` implementations using either `derive` or the debug builder API\n/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.\n///\n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_struct\n/// [`Formatter`]: ../../std/fmt/struct.Formatter.html\n///\n/// Pretty-printing with `#?`:\n///\n/// ```\n/// #[derive(Debug)]\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {:#?}\", origin),\n/// \"The origin is: Point {\n/// x: 0,\n/// y: 0,\n/// }\");\n/// ```\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\n#[rustc_on_unimplemented(\n on(\n crate_local,\n label = \"`{Self}` cannot be formatted using `{{:?}}`\",\n note = \"add `#[derive(Debug)]` or manually implement `{Debug}`\"\n ),\n message = \"`{Self}` doesn't implement `{Debug}`\",\n label = \"`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`\"\n)]\n#[doc(alias = \"{:?}\")]\n#[rustc_diagnostic_item = \"debug_trait\"]\npub trait Debug {\n /// Formats the value using the given formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Position {\n /// longitude: f32,\n /// latitude: f32,\n /// }\n ///\n /// impl fmt::Debug for Position {\n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n /// f.debug_tuple(\"\")\n /// .field(&self.longitude)\n /// .field(&self.latitude)\n /// .finish()\n /// }\n /// }\n ///\n /// let position = Position { longitude: 1.987, latitude: 2.983 };\n /// assert_eq!(format!(\"{:?}\", position), \"(1.987, 2.983)\");\n ///\n /// assert_eq!(format!(\"{:#?}\", position), \"(\n /// 1.987,\n /// 2.983,\n /// )\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.\npub(crate) mod macros {\n /// Derive macro generating an impl of the trait `Debug`.\n #[rustc_builtin_macro]\n #[stable(feature = \"builtin_macro_prelude\", since = \"1.38.0\")]\n #[allow_internal_unstable(core_intrinsics)]\n pub macro Debug($item:item) {\n /* compiler built-in */\n }\n}\n#[stable(feature = \"builtin_macro_prelude\", since = \"1.38.0\")]\n#[doc(inline)]\npub use macros::Debug;\n\n/// Format trait for an empty format, `{}`.\n///\n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facing\n/// output, and so cannot be derived.\n///\n/// [debug]: trait.Debug.html\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Implementing `Display` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Point {\n/// x: i32,\n/// y: i32,\n/// }\n///\n/// impl fmt::Display for Point {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// write!(f, \"({}, {})\", self.x, self.y)\n/// }\n/// }\n///\n/// let origin = Point { x: 0, y: 0 };\n///\n/// assert_eq!(format!(\"The origin is: {}\", origin), \"The origin is: (0, 0)\");\n/// ```\n#[rustc_on_unimplemented(\n on(\n _Self = \"std::path::Path\",\n label = \"`{Self}` cannot be formatted with the default formatter; call `.display()` on it\",\n note = \"call `.display()` or `.to_string_lossy()` to safely print paths, \\\n as they may contain non-Unicode data\"\n ),\n message = \"`{Self}` doesn't implement `{Display}`\",\n label = \"`{Self}` cannot be formatted with the default formatter\",\n note = \"in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead\"\n)]\n#[doc(alias = \"{}\")]\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Display {\n /// Formats the value using the given formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Position {\n /// longitude: f32,\n /// latitude: f32,\n /// }\n ///\n /// impl fmt::Display for Position {\n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n /// write!(f, \"({}, {})\", self.longitude, self.latitude)\n /// }\n /// }\n ///\n /// assert_eq!(\"(1.987, 2.983)\",\n /// format!(\"{}\", Position { longitude: 1.987, latitude: 2.983, }));\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `o` formatting.\n///\n/// The `Octal` trait should format its output as a number in base-8.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0o` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '52' in octal\n///\n/// assert_eq!(format!(\"{:o}\", x), \"52\");\n/// assert_eq!(format!(\"{:#o}\", x), \"0o52\");\n///\n/// assert_eq!(format!(\"{:o}\", -16), \"37777777760\");\n/// ```\n///\n/// Implementing `Octal` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Octal for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(9);\n///\n/// assert_eq!(format!(\"l as octal is: {:o}\", l), \"l as octal is: 11\");\n///\n/// assert_eq!(format!(\"l as octal is: {:#06o}\", l), \"l as octal is: 0o0011\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Octal {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `b` formatting.\n///\n/// The `Binary` trait should format its output as a number in binary.\n///\n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0b` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// # Examples\n///\n/// Basic usage with [`i32`]:\n///\n/// ```\n/// let x = 42; // 42 is '101010' in binary\n///\n/// assert_eq!(format!(\"{:b}\", x), \"101010\");\n/// assert_eq!(format!(\"{:#b}\", x), \"0b101010\");\n///\n/// assert_eq!(format!(\"{:b}\", -16), \"11111111111111111111111111110000\");\n/// ```\n///\n/// Implementing `Binary` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Binary for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(107);\n///\n/// assert_eq!(format!(\"l as binary is: {:b}\", l), \"l as binary is: 1101011\");\n///\n/// assert_eq!(\n/// format!(\"l as binary is: {:#032b}\", l),\n/// \"l as binary is: 0b000000000000000000000001101011\"\n/// );\n/// ```\n///\n/// [module]: ../../std/fmt/index.html\n/// [`i8`]: ../../std/primitive.i8.html\n/// [`i128`]: ../../std/primitive.i128.html\n/// [`isize`]: ../../std/primitive.isize.html\n/// [`i32`]: ../../std/primitive.i32.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Binary {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `x` formatting.\n///\n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`\n/// in lower case.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0x` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '2a' in hex\n///\n/// assert_eq!(format!(\"{:x}\", x), \"2a\");\n/// assert_eq!(format!(\"{:#x}\", x), \"0x2a\");\n///\n/// assert_eq!(format!(\"{:x}\", -16), \"fffffff0\");\n/// ```\n///\n/// Implementing `LowerHex` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::LowerHex for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(9);\n///\n/// assert_eq!(format!(\"l as hex is: {:x}\", l), \"l as hex is: 9\");\n///\n/// assert_eq!(format!(\"l as hex is: {:#010x}\", l), \"l as hex is: 0x00000009\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait LowerHex {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `X` formatting.\n///\n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`\n/// in upper case.\n///\n/// For primitive signed integers (`i8` to `i128`, and `isize`),\n/// negative values are formatted as the two_s complement representation.\n///\n/// The alternate flag, `#`, adds a `0x` in front of the output.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `i32`:\n///\n/// ```\n/// let x = 42; // 42 is '2A' in hex\n///\n/// assert_eq!(format!(\"{:X}\", x), \"2A\");\n/// assert_eq!(format!(\"{:#X}\", x), \"0x2A\");\n///\n/// assert_eq!(format!(\"{:X}\", -16), \"FFFFFFF0\");\n/// ```\n///\n/// Implementing `UpperHex` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::UpperHex for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = self.0;\n///\n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementation\n/// }\n/// }\n///\n/// let l = Length(i32::MAX);\n///\n/// assert_eq!(format!(\"l as hex is: {:X}\", l), \"l as hex is: 7FFFFFFF\");\n///\n/// assert_eq!(format!(\"l as hex is: {:#010X}\", l), \"l as hex is: 0x7FFFFFFF\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait UpperHex {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `p` formatting.\n///\n/// The `Pointer` trait should format its output as a memory location. This is commonly presented\n/// as hexadecimal.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `&i32`:\n///\n/// ```\n/// let x = &42;\n///\n/// let address = format!(\"{:p}\", x); // this produces something like '0x7f06092ac6d0'\n/// ```\n///\n/// Implementing `Pointer` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::Pointer for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can use\n///\n/// let ptr = self as *const Self;\n/// fmt::Pointer::fmt(&ptr, f)\n/// }\n/// }\n///\n/// let l = Length(42);\n///\n/// println!(\"l is in memory here: {:p}\", l);\n///\n/// let l_ptr = format!(\"{:018p}\", l);\n/// assert_eq!(l_ptr.len(), 18);\n/// assert_eq!(&l_ptr[..2], \"0x\");\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait Pointer {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `e` formatting.\n///\n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `f64`:\n///\n/// ```\n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notation\n///\n/// assert_eq!(format!(\"{:e}\", x), \"4.2e1\");\n/// ```\n///\n/// Implementing `LowerExp` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::LowerExp for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = f64::from(self.0);\n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementation\n/// }\n/// }\n///\n/// let l = Length(100);\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:e}\", l),\n/// \"l in scientific notation is: 1e2\"\n/// );\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:05e}\", l),\n/// \"l in scientific notation is: 001e2\"\n/// );\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait LowerExp {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// `E` formatting.\n///\n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.\n///\n/// For more information on formatters, see [the module-level documentation][module].\n///\n/// [module]: ../../std/fmt/index.html\n///\n/// # Examples\n///\n/// Basic usage with `f64`:\n///\n/// ```\n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notation\n///\n/// assert_eq!(format!(\"{:E}\", x), \"4.2E1\");\n/// ```\n///\n/// Implementing `UpperExp` on a type:\n///\n/// ```\n/// use std::fmt;\n///\n/// struct Length(i32);\n///\n/// impl fmt::UpperExp for Length {\n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {\n/// let val = f64::from(self.0);\n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementation\n/// }\n/// }\n///\n/// let l = Length(100);\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:E}\", l),\n/// \"l in scientific notation is: 1E2\"\n/// );\n///\n/// assert_eq!(\n/// format!(\"l in scientific notation is: {:05E}\", l),\n/// \"l in scientific notation is: 001E2\"\n/// );\n/// ```\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub trait UpperExp {\n /// Formats the value using the given formatter.\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result;\n}\n\n/// The `write` function takes an output stream, and an `Arguments` struct\n/// that can be precompiled with the `format_args!` macro.\n///\n/// The arguments will be formatted according to the specified format string\n/// into the output stream provided.\n///\n/// # Examples\n///\n/// Basic usage:\n///\n/// ```\n/// use std::fmt;\n///\n/// let mut output = String::new();\n/// fmt::write(&mut output, format_args!(\"Hello {}!\", \"world\"))\n/// .expect(\"Error occurred while trying to write in String\");\n/// assert_eq!(output, \"Hello world!\");\n/// ```\n///\n/// Please note that using [`write!`] might be preferable. Example:\n///\n/// ```\n/// use std::fmt::Write;\n///\n/// let mut output = String::new();\n/// write!(&mut output, \"Hello {}!\", \"world\")\n/// .expect(\"Error occurred while trying to write in String\");\n/// assert_eq!(output, \"Hello world!\");\n/// ```\n///\n/// [`write!`]: ../../std/macro.write.html\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {\n let mut formatter = Formatter {\n flags: 0,\n width: None,\n precision: None,\n buf: output,\n align: rt::v1::Alignment::Unknown,\n fill: ' ',\n };\n\n let mut idx = 0;\n\n match args.fmt {\n None => {\n // We can use default formatting parameters for all arguments.\n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {\n formatter.buf.write_str(*piece)?;\n (arg.formatter)(arg.value, &mut formatter)?;\n idx += 1;\n }\n }\n Some(fmt) => {\n // Every spec has a corresponding argument that is preceded by\n // a string piece.\n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {\n formatter.buf.write_str(*piece)?;\n run(&mut formatter, arg, &args.args)?;\n idx += 1;\n }\n }\n }\n\n // There can be only one trailing string piece left.\n if let Some(piece) = args.pieces.get(idx) {\n formatter.buf.write_str(*piece)?;\n }\n\n Ok(())\n}\n\nfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {\n fmt.fill = arg.format.fill;\n fmt.align = arg.format.align;\n fmt.flags = arg.format.flags;\n fmt.width = getcount(args, &arg.format.width);\n fmt.precision = getcount(args, &arg.format.precision);\n\n // Extract the correct argument\n let value = args[arg.position];\n\n // Then actually do some printing\n (value.formatter)(value.value, fmt)\n}\n\nfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {\n match *cnt {\n rt::v1::Count::Is(n) => Some(n),\n rt::v1::Count::Implied => None,\n rt::v1::Count::Param(i) => args[i].as_usize(),\n }\n}\n\n/// Padding after the end of something. Returned by `Formatter::padding`.\n#[must_use = \"don't forget to write the post padding\"]\nstruct PostPadding {\n fill: char,\n padding: usize,\n}\n\nimpl PostPadding {\n fn new(fill: char, padding: usize) -> PostPadding {\n PostPadding { fill, padding }\n }\n\n /// Write this post padding.\n fn write(self, buf: &mut dyn Write) -> Result {\n for _ in 0..self.padding {\n buf.write_char(self.fill)?;\n }\n Ok(())\n }\n}\n\nimpl<'a> Formatter<'a> {\n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>\n where\n 'b: 'c,\n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),\n {\n Formatter {\n // We want to change this\n buf: wrap(self.buf),\n\n // And preserve these\n flags: self.flags,\n fill: self.fill,\n align: self.align,\n width: self.width,\n precision: self.precision,\n }\n }\n\n // Helper methods used for padding and processing formatting arguments that\n // all formatting traits can use.\n\n /// Performs the correct padding for an integer which has already been\n /// emitted into a str. The str should *not* contain the sign for the\n /// integer, that will be added by this method.\n ///\n /// # Arguments\n ///\n /// * is_nonnegative - whether the original integer was either positive or zero.\n /// * prefix - if the '#' character (Alternate) is provided, this\n /// is the prefix to put in front of the number.\n /// * buf - the byte array that the number has been formatted into\n ///\n /// This function will correctly account for the flags provided as well as\n /// the minimum width. It will not take precision into account.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo { nb: i32 };\n ///\n /// impl Foo {\n /// fn new(nb: i32) -> Foo {\n /// Foo {\n /// nb,\n /// }\n /// }\n /// }\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// // We need to remove \"-\" from the number output.\n /// let tmp = self.nb.abs().to_string();\n ///\n /// formatter.pad_integral(self.nb > 0, \"Foo \", &tmp)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo::new(2)), \"2\");\n /// assert_eq!(&format!(\"{}\", Foo::new(-1)), \"-1\");\n /// assert_eq!(&format!(\"{:#}\", Foo::new(-1)), \"-Foo 1\");\n /// assert_eq!(&format!(\"{:0>#8}\", Foo::new(-1)), \"00-Foo 1\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {\n let mut width = buf.len();\n\n let mut sign = None;\n if !is_nonnegative {\n sign = Some('-');\n width += 1;\n } else if self.sign_plus() {\n sign = Some('+');\n width += 1;\n }\n\n let prefix = if self.alternate() {\n width += prefix.chars().count();\n Some(prefix)\n } else {\n None\n };\n\n // Writes the sign if it exists, and then the prefix if it was requested\n #[inline(never)]\n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {\n if let Some(c) = sign {\n f.buf.write_char(c)?;\n }\n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }\n }\n\n // The `width` field is more of a `min-width` parameter at this point.\n match self.width {\n // If there's no minimum length requirements then we can just\n // write the bytes.\n None => {\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)\n }\n // Check if we're over the minimum width, if so then we can also\n // just write the bytes.\n Some(min) if width >= min => {\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)\n }\n // The sign and prefix goes before the padding if the fill character\n // is zero\n Some(min) if self.sign_aware_zero_pad() => {\n let old_fill = crate::mem::replace(&mut self.fill, '0');\n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);\n write_prefix(self, sign, prefix)?;\n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;\n self.buf.write_str(buf)?;\n post_padding.write(self.buf)?;\n self.fill = old_fill;\n self.align = old_align;\n Ok(())\n }\n // Otherwise, the sign and prefix goes after the padding\n Some(min) => {\n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;\n write_prefix(self, sign, prefix)?;\n self.buf.write_str(buf)?;\n post_padding.write(self.buf)\n }\n }\n }\n\n /// This function takes a string slice and emits it to the internal buffer\n /// after applying the relevant formatting flags specified. The flags\n /// recognized for generic strings are:\n ///\n /// * width - the minimum width of what to emit\n /// * fill/align - what to emit and where to emit it if the string\n /// provided needs to be padded\n /// * precision - the maximum length to emit, the string is truncated if it\n /// is longer than this length\n ///\n /// Notably this function ignores the `flag` parameters.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.pad(\"Foo\")\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:<4}\", Foo), \"Foo \");\n /// assert_eq!(&format!(\"{:0>4}\", Foo), \"0Foo\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn pad(&mut self, s: &str) -> Result {\n // Make sure there's a fast path up front\n if self.width.is_none() && self.precision.is_none() {\n return self.buf.write_str(s);\n }\n // The `precision` field can be interpreted as a `max-width` for the\n // string being formatted.\n let s = if let Some(max) = self.precision {\n // If our string is longer that the precision, then we must have\n // truncation. However other flags like `fill`, `width` and `align`\n // must act as always.\n if let Some((i, _)) = s.char_indices().nth(max) {\n // LLVM here can't prove that `..i` won't panic `&s[..i]`, but\n // we know that it can't panic. Use `get` + `unwrap_or` to avoid\n // `unsafe` and otherwise don't emit any panic-related code\n // here.\n s.get(..i).unwrap_or(&s)\n } else {\n &s\n }\n } else {\n &s\n };\n // The `width` field is more of a `min-width` parameter at this point.\n match self.width {\n // If we're under the maximum length, and there's no minimum length\n // requirements, then we can just emit the string\n None => self.buf.write_str(s),\n // If we're under the maximum width, check if we're over the minimum\n // width, if so it's as easy as just emitting the string.\n Some(width) if s.chars().count() >= width => self.buf.write_str(s),\n // If we're under both the maximum and the minimum width, then fill\n // up the minimum width with the specified string + some alignment.\n Some(width) => {\n let align = rt::v1::Alignment::Left;\n let post_padding = self.padding(width - s.chars().count(), align)?;\n self.buf.write_str(s)?;\n post_padding.write(self.buf)\n }\n }\n }\n\n /// Write the pre-padding and return the unwritten post-padding. Callers are\n /// responsible for ensuring post-padding is written after the thing that is\n /// being padded.\n fn padding(\n &mut self,\n padding: usize,\n default: rt::v1::Alignment,\n ) -> result::Result {\n let align = match self.align {\n rt::v1::Alignment::Unknown => default,\n _ => self.align,\n };\n\n let (pre_pad, post_pad) = match align {\n rt::v1::Alignment::Left => (0, padding),\n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),\n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),\n };\n\n for _ in 0..pre_pad {\n self.buf.write_char(self.fill)?;\n }\n\n Ok(PostPadding::new(self.fill, post_pad))\n }\n\n /// Takes the formatted parts and applies the padding.\n /// Assumes that the caller already has rendered the parts with required precision,\n /// so that `self.precision` can be ignored.\n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {\n if let Some(mut width) = self.width {\n // for the sign-aware zero padding, we render the sign first and\n // behave as if we had no sign from the beginning.\n let mut formatted = formatted.clone();\n let old_fill = self.fill;\n let old_align = self.align;\n let mut align = old_align;\n if self.sign_aware_zero_pad() {\n // a sign always goes first\n let sign = formatted.sign;\n self.buf.write_str(sign)?;\n\n // remove the sign from the formatted parts\n formatted.sign = \"\";\n width = width.saturating_sub(sign.len());\n align = rt::v1::Alignment::Right;\n self.fill = '0';\n self.align = rt::v1::Alignment::Right;\n }\n\n // remaining parts go through the ordinary padding process.\n let len = formatted.len();\n let ret = if width <= len {\n // no padding\n self.write_formatted_parts(&formatted)\n } else {\n let post_padding = self.padding(width - len, align)?;\n self.write_formatted_parts(&formatted)?;\n post_padding.write(self.buf)\n };\n self.fill = old_fill;\n self.align = old_align;\n ret\n } else {\n // this is the common case and we take a shortcut\n self.write_formatted_parts(formatted)\n }\n }\n\n fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {\n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {\n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.\n // It's safe to use for `flt2dec::Part::Num` since every char `c` is between\n // `b'0'` and `b'9'`, which means `s` is valid UTF-8.\n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`\n // since `buf` should be plain ASCII, but it's possible for someone to pass\n // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is a\n // public function.\n // FIXME: Determine whether this could result in UB.\n buf.write_str(unsafe { str::from_utf8_unchecked(s) })\n }\n\n if !formatted.sign.is_empty() {\n self.buf.write_str(formatted.sign)?;\n }\n for part in formatted.parts {\n match *part {\n flt2dec::Part::Zero(mut nzeroes) => {\n const ZEROES: &str = // 64 zeroes\n \"0000000000000000000000000000000000000000000000000000000000000000\";\n while nzeroes > ZEROES.len() {\n self.buf.write_str(ZEROES)?;\n nzeroes -= ZEROES.len();\n }\n if nzeroes > 0 {\n self.buf.write_str(&ZEROES[..nzeroes])?;\n }\n }\n flt2dec::Part::Num(mut v) => {\n let mut s = [0; 5];\n let len = part.len();\n for c in s[..len].iter_mut().rev() {\n *c = b'0' + (v % 10) as u8;\n v /= 10;\n }\n write_bytes(self.buf, &s[..len])?;\n }\n flt2dec::Part::Copy(buf) => {\n write_bytes(self.buf, buf)?;\n }\n }\n }\n Ok(())\n }\n\n /// Writes some data to the underlying buffer contained within this\n /// formatter.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.write_str(\"Foo\")\n /// // This is equivalent to:\n /// // write!(formatter, \"Foo\")\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo), \"Foo\");\n /// assert_eq!(&format!(\"{:0>8}\", Foo), \"Foo\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn write_str(&mut self, data: &str) -> Result {\n self.buf.write_str(data)\n }\n\n /// Writes some formatted information into this instance.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// formatter.write_fmt(format_args!(\"Foo {}\", self.0))\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{}\", Foo(-1)), \"Foo -1\");\n /// assert_eq!(&format!(\"{:0>8}\", Foo(2)), \"Foo 2\");\n /// ```\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {\n write(self.buf, fmt)\n }\n\n /// Flags for formatting\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n #[rustc_deprecated(\n since = \"1.24.0\",\n reason = \"use the `sign_plus`, `sign_minus`, `alternate`, \\\n or `sign_aware_zero_pad` methods instead\"\n )]\n pub fn flags(&self) -> u32 {\n self.flags\n }\n\n /// Character used as 'fill' whenever there is alignment.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// let c = formatter.fill();\n /// if let Some(width) = formatter.width() {\n /// for _ in 0..width {\n /// write!(formatter, \"{}\", c)?;\n /// }\n /// Ok(())\n /// } else {\n /// write!(formatter, \"{}\", c)\n /// }\n /// }\n /// }\n ///\n /// // We set alignment to the left with \">\".\n /// assert_eq!(&format!(\"{:G>3}\", Foo), \"GGG\");\n /// assert_eq!(&format!(\"{:t>6}\", Foo), \"tttttt\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn fill(&self) -> char {\n self.fill\n }\n\n /// Flag indicating what form of alignment was requested.\n ///\n /// # Examples\n ///\n /// ```\n /// extern crate core;\n ///\n /// use std::fmt::{self, Alignment};\n ///\n /// struct Foo;\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// let s = if let Some(s) = formatter.align() {\n /// match s {\n /// Alignment::Left => \"left\",\n /// Alignment::Right => \"right\",\n /// Alignment::Center => \"center\",\n /// }\n /// } else {\n /// \"into the void\"\n /// };\n /// write!(formatter, \"{}\", s)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:<}\", Foo), \"left\");\n /// assert_eq!(&format!(\"{:>}\", Foo), \"right\");\n /// assert_eq!(&format!(\"{:^}\", Foo), \"center\");\n /// assert_eq!(&format!(\"{}\", Foo), \"into the void\");\n /// ```\n #[stable(feature = \"fmt_flags_align\", since = \"1.28.0\")]\n pub fn align(&self) -> Option {\n match self.align {\n rt::v1::Alignment::Left => Some(Alignment::Left),\n rt::v1::Alignment::Right => Some(Alignment::Right),\n rt::v1::Alignment::Center => Some(Alignment::Center),\n rt::v1::Alignment::Unknown => None,\n }\n }\n\n /// Optionally specified integer width that the output should be.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if let Some(width) = formatter.width() {\n /// // If we received a width, we use it\n /// write!(formatter, \"{:width$}\", &format!(\"Foo({})\", self.0), width = width)\n /// } else {\n /// // Otherwise we do nothing special\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:10}\", Foo(23)), \"Foo(23) \");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn width(&self) -> Option {\n self.width\n }\n\n /// Optionally specified precision for numeric types. Alternatively, the\n /// maximum width for string types.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(f32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if let Some(precision) = formatter.precision() {\n /// // If we received a precision, we use it.\n /// write!(formatter, \"Foo({1:.*})\", precision, self.0)\n /// } else {\n /// // Otherwise we default to 2.\n /// write!(formatter, \"Foo({:.2})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:.4}\", Foo(23.2)), \"Foo(23.2000)\");\n /// assert_eq!(&format!(\"{}\", Foo(23.2)), \"Foo(23.20)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn precision(&self) -> Option {\n self.precision\n }\n\n /// Determines if the `+` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.sign_plus() {\n /// write!(formatter,\n /// \"Foo({}{})\",\n /// if self.0 < 0 { '-' } else { '+' },\n /// self.0)\n /// } else {\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:+}\", Foo(23)), \"Foo(+23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_plus(&self) -> bool {\n self.flags & (1 << FlagV1::SignPlus as u32) != 0\n }\n\n /// Determines if the `-` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.sign_minus() {\n /// // You want a minus sign? Have one!\n /// write!(formatter, \"-Foo({})\", self.0)\n /// } else {\n /// write!(formatter, \"Foo({})\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:-}\", Foo(23)), \"-Foo(23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"Foo(23)\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_minus(&self) -> bool {\n self.flags & (1 << FlagV1::SignMinus as u32) != 0\n }\n\n /// Determines if the `#` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// if formatter.alternate() {\n /// write!(formatter, \"Foo({})\", self.0)\n /// } else {\n /// write!(formatter, \"{}\", self.0)\n /// }\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:#}\", Foo(23)), \"Foo(23)\");\n /// assert_eq!(&format!(\"{}\", Foo(23)), \"23\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn alternate(&self) -> bool {\n self.flags & (1 << FlagV1::Alternate as u32) != 0\n }\n\n /// Determines if the `0` flag was specified.\n ///\n /// # Examples\n ///\n /// ```\n /// use std::fmt;\n ///\n /// struct Foo(i32);\n ///\n /// impl fmt::Display for Foo {\n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {\n /// assert!(formatter.sign_aware_zero_pad());\n /// assert_eq!(formatter.width(), Some(4));\n /// // We ignore the formatter's options.\n /// write!(formatter, \"{}\", self.0)\n /// }\n /// }\n ///\n /// assert_eq!(&format!(\"{:04}\", Foo(23)), \"23\");\n /// ```\n #[stable(feature = \"fmt_flags\", since = \"1.5.0\")]\n pub fn sign_aware_zero_pad(&self) -> bool {\n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0\n }\n\n // FIXME: Decide what public API we want for these two flags.\n // https://github.com/rust-lang/rust/issues/48584\n fn debug_lower_hex(&self) -> bool {\n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0\n }\n\n fn debug_upper_hex(&self) -> bool {\n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0\n }\n\n /// Creates a [`DebugStruct`] builder designed to assist with creation of\n /// [`fmt::Debug`] implementations for structs.\n ///\n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.html\n /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.html\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n /// use std::net::Ipv4Addr;\n ///\n /// struct Foo {\n /// bar: i32,\n /// baz: String,\n /// addr: Ipv4Addr,\n /// }\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_struct(\"Foo\")\n /// .field(\"bar\", &self.bar)\n /// .field(\"baz\", &self.baz)\n /// .field(\"addr\", &format_args!(\"{}\", self.addr))\n /// .finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// \"Foo { bar: 10, baz: \\\"Hello World\\\", addr: 127.0.0.1 }\",\n /// format!(\"{:?}\", Foo {\n /// bar: 10,\n /// baz: \"Hello World\".to_string(),\n /// addr: Ipv4Addr::new(127, 0, 0, 1),\n /// })\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {\n builders::debug_struct_new(self, name)\n }\n\n /// Creates a `DebugTuple` builder designed to assist with creation of\n /// `fmt::Debug` implementations for tuple structs.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n /// use std::marker::PhantomData;\n ///\n /// struct Foo(i32, String, PhantomData);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_tuple(\"Foo\")\n /// .field(&self.0)\n /// .field(&self.1)\n /// .field(&format_args!(\"_\"))\n /// .finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// \"Foo(10, \\\"Hello\\\", _)\",\n /// format!(\"{:?}\", Foo(10, \"Hello\".to_string(), PhantomData::))\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {\n builders::debug_tuple_new(self, name)\n }\n\n /// Creates a `DebugList` builder designed to assist with creation of\n /// `fmt::Debug` implementations for list-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_list().entries(self.0.iter()).finish()\n /// }\n /// }\n ///\n /// assert_eq!(format!(\"{:?}\", Foo(vec![10, 11])), \"[10, 11]\");\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {\n builders::debug_list_new(self)\n }\n\n /// Creates a `DebugSet` builder designed to assist with creation of\n /// `fmt::Debug` implementations for set-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_set().entries(self.0.iter()).finish()\n /// }\n /// }\n ///\n /// assert_eq!(format!(\"{:?}\", Foo(vec![10, 11])), \"{10, 11}\");\n /// ```\n ///\n /// [`format_args!`]: ../../std/macro.format_args.html\n ///\n /// In this more complex example, we use [`format_args!`] and `.debug_set()`\n /// to build a list of match arms:\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));\n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);\n ///\n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>\n /// where\n /// L: 'a + fmt::Debug, R: 'a + fmt::Debug\n /// {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// L::fmt(&(self.0).0, fmt)?;\n /// fmt.write_str(\" => \")?;\n /// R::fmt(&(self.0).1, fmt)\n /// }\n /// }\n ///\n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>\n /// where\n /// K: 'a + fmt::Debug, V: 'a + fmt::Debug\n /// {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_set()\n /// .entries(self.0.iter().map(Arm))\n /// .entry(&Arm(&(format_args!(\"_\"), &self.1)))\n /// .finish()\n /// }\n /// }\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {\n builders::debug_set_new(self)\n }\n\n /// Creates a `DebugMap` builder designed to assist with creation of\n /// `fmt::Debug` implementations for map-like structures.\n ///\n /// # Examples\n ///\n /// ```rust\n /// use std::fmt;\n ///\n /// struct Foo(Vec<(String, i32)>);\n ///\n /// impl fmt::Debug for Foo {\n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {\n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()\n /// }\n /// }\n ///\n /// assert_eq!(\n /// format!(\"{:?}\", Foo(vec![(\"A\".to_string(), 10), (\"B\".to_string(), 11)])),\n /// r#\"{\"A\": 10, \"B\": 11}\"#\n /// );\n /// ```\n #[stable(feature = \"debug_builders\", since = \"1.2.0\")]\n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {\n builders::debug_map_new(self)\n }\n}\n\n#[stable(since = \"1.2.0\", feature = \"formatter_write\")]\nimpl Write for Formatter<'_> {\n fn write_str(&mut self, s: &str) -> Result {\n self.buf.write_str(s)\n }\n\n fn write_char(&mut self, c: char) -> Result {\n self.buf.write_char(c)\n }\n\n fn write_fmt(&mut self, args: Arguments<'_>) -> Result {\n write(self.buf, args)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for Error {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(\"an error occurred when formatting an argument\", f)\n }\n}\n\n// Implementations of the core formatting traits\n\nmacro_rules! fmt_refs {\n ($($tr:ident),*) => {\n $(\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl $tr for &T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }\n }\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl $tr for &mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }\n }\n )*\n }\n}\n\nfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }\n\n#[unstable(feature = \"never_type\", issue = \"35121\")]\nimpl Debug for ! {\n fn fmt(&self, _: &mut Formatter<'_>) -> Result {\n *self\n }\n}\n\n#[unstable(feature = \"never_type\", issue = \"35121\")]\nimpl Display for ! {\n fn fmt(&self, _: &mut Formatter<'_>) -> Result {\n *self\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for bool {\n #[inline]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(self, f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for bool {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Display::fmt(if *self { \"true\" } else { \"false\" }, f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for str {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.write_char('\"')?;\n let mut from = 0;\n for (i, c) in self.char_indices() {\n let esc = c.escape_debug();\n // If char needs escaping, flush backlog so far and write, else skip\n if esc.len() != 1 {\n f.write_str(&self[from..i])?;\n for c in esc {\n f.write_char(c)?;\n }\n from = i + c.len_utf8();\n }\n }\n f.write_str(&self[from..])?;\n f.write_char('\"')\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for str {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(self)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for char {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.write_char('\\'')?;\n for c in self.escape_debug() {\n f.write_char(c)?\n }\n f.write_char('\\'')\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Display for char {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n if f.width.is_none() && f.precision.is_none() {\n f.write_char(*self)\n } else {\n f.pad(self.encode_utf8(&mut [0; 4]))\n }\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for *const T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n let old_width = f.width;\n let old_flags = f.flags;\n\n // The alternate flag is already treated by LowerHex as being special-\n // it denotes whether to prefix with 0x. We use it to work out whether\n // or not to zero extend, and then unconditionally set it to get the\n // prefix.\n if f.alternate() {\n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);\n\n if f.width.is_none() {\n f.width = Some(((mem::size_of::() * 8) / 4) + 2);\n }\n }\n f.flags |= 1 << (FlagV1::Alternate as u32);\n\n let ret = LowerHex::fmt(&(*self as *const () as usize), f);\n\n f.width = old_width;\n f.flags = old_flags;\n\n ret\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for *mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(*self as *const T), f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for &T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(*self as *const T), f)\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Pointer for &mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(&(&**self as *const T), f)\n }\n}\n\n// Implementation of Display/Debug for various core types\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for *const T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(self, f)\n }\n}\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for *mut T {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n Pointer::fmt(self, f)\n }\n}\n\nmacro_rules! peel {\n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })\n}\n\nmacro_rules! tuple {\n () => ();\n ( $($name:ident,)+ ) => (\n #[stable(feature = \"rust1\", since = \"1.0.0\")]\n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {\n #[allow(non_snake_case, unused_assignments)]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n let mut builder = f.debug_tuple(\"\");\n let ($(ref $name,)+) = *self;\n $(\n builder.field(&$name);\n )+\n\n builder.finish()\n }\n }\n peel! { $($name,)+ }\n )\n}\n\nmacro_rules! last_type {\n ($a:ident,) => { $a };\n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };\n}\n\ntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for [T] {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.debug_list().entries(self.iter()).finish()\n }\n}\n\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for () {\n #[inline]\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(\"()\")\n }\n}\n#[stable(feature = \"rust1\", since = \"1.0.0\")]\nimpl Debug for PhantomData {\n fn fmt(&self, f: &mut Formatter<'_>) -> Result {\n f.pad(\"PhantomData\")\n }\n}" + ) + , (2356, 69106, "") + , (2356, 0, "i") + , (2357, 0, "m") + , (2358, 0, "p") + , (2359, 0, "l") + , (2356, 4, "") + , ( 2259 + , 0 + , "impl Default for ItemMarker {\n fn default() -> Self { Self::null() }\n}\n\n" + ) + , (2377, 7, "D") + , (2378, 0, "e") + , (2379, 0, "b") + , (2380, 0, "u") + , (2381, 0, "g") + , (2377, 0, "f") + , (2378, 0, "m") + , (2379, 0, "t") + , (2380, 0, ":") + , (2381, 0, ":") + , (2415, 37, "") + , (2415, 0, "f") + , (2416, 0, "n") + , (2417, 0, " ") + , (2418, 0, "f") + , (2419, 0, "m") + , (2420, 0, "t") + , (2421, 0, "(") + , (2422, 0, "&") + , (2423, 0, "s") + , (2424, 0, "e") + , (2425, 0, "l") + , (2426, 0, "f") + , (2427, 0, ",") + , (2428, 0, " ") + , (2429, 0, "f") + , (2430, 0, ":") + , (2431, 0, " ") + , (2432, 0, "&") + , (2433, 0, "m") + , (2434, 0, "u") + , (2435, 0, "t") + , (2436, 0, " ") + , (2437, 0, "F") + , (2438, 0, "o") + , (2439, 0, "r") + , (2440, 0, "m") + , (2441, 0, "a") + , (2442, 0, "t") + , (2443, 0, "t") + , (2444, 0, "e") + , (2445, 0, "r") + , (2446, 0, "<") + , (2447, 0, "'") + , (2448, 0, "_") + , (2449, 0, "'") + , (2449, 1, "") + , (2449, 0, ">") + , (2450, 0, ")") + , (2451, 0, " ") + , (2452, 0, "-") + , (2453, 0, ">") + , (2454, 0, " ") + , (2455, 0, "R") + , (2456, 0, "e") + , (2457, 0, "s") + , (2458, 0, "u") + , (2459, 0, "l") + , (2460, 0, "t") + , (2461, 0, " ") + , (2462, 0, "{") + , (2463, 0, "\n ") + , (2472, 0, "\n ") + , (2464, 8, "") + , (2465, 8, " }") + , (2464, 0, " ") + , (2472, 0, "f") + , (2473, 0, ".") + , (2474, 0, "p") + , (2475, 0, "a") + , (2476, 0, "d") + , (2477, 0, "(") + , (2478, 0, "\"") + , (2479, 0, "I") + , (2480, 0, "t") + , (2481, 0, "e") + , (2482, 0, "m") + , (2483, 0, "M") + , (2484, 0, "a") + , (2485, 0, "r") + , (2486, 0, "k") + , (2487, 0, "e") + , (2488, 0, "r") + , (2489, 0, "\"") + , (2490, 0, ")") + , (2491, 0, ";") + , (2491, 1, "") + , (2437, 0, "f") + , (2438, 0, "m") + , (2439, 0, "t") + , (2440, 0, ":") + , (2441, 0, ":") + , (2460, 0, "s") + , (2461, 0, "t") + , (2462, 0, ":") + , (2462, 1, "") + , (2462, 0, "d") + , (2463, 0, ":") + , (2464, 0, ":") + , (2460, 3, "f") + , (2461, 0, "m") + , (2462, 0, "t") + , (3651, 0, "\nimpl ListItem for u8 {}") + , (3651, 0, "\nimpl ListItem for u8 {}") + , (3675, 0, "\n") + , (3646, 2, "b") + , (3647, 0, "o") + , (3648, 0, "o") + , (3649, 0, "l") + , (3672, 2, "c") + , (3673, 0, "h") + , (3674, 0, "a") + , (3675, 0, "r") + , (3680, 1, "") + , (3933, 0, "\n") + , (3933, 0, "impl ListItem for bool {}\nimpl ListItem for char {}\n") + , (3984, 1, "") + , (3951, 0, "&") + , (3978, 0, "&") + , (3154, 0, "\n ") + , (3159, 0, "\n ") + , (3155, 4, "") + , (3160, 0, "f") + , (3161, 0, "n") + , (3162, 0, " ") + , (3163, 0, "m") + , (3164, 0, "e") + , (3165, 0, "r") + , (3166, 0, "g") + , (3167, 0, "e") + , (3168, 0, "_") + , (3169, 0, "i") + , (3170, 0, "n") + , (3171, 0, "t") + , (3172, 0, "o") + , (3173, 0, "(") + , (3174, 0, "&") + , (3175, 0, "m") + , (3176, 0, "u") + , (3177, 0, "t") + , (3178, 0, " ") + , (3179, 0, "s") + , (3180, 0, "e") + , (3181, 0, "l") + , (3182, 0, "f") + , (3183, 0, ",") + , (3184, 0, " ") + , (3185, 0, "o") + , (3186, 0, "t") + , (3187, 0, "h") + , (3188, 0, "e") + , (3189, 0, "r") + , (3190, 0, ":") + , (3191, 0, " ") + , (3192, 0, "&") + , (3193, 0, "S") + , (3194, 0, "e") + , (3195, 0, "p") + , (3196, 0, "l") + , (3197, 0, "f") + , (3197, 1, "") + , (3196, 1, "") + , (3195, 1, "") + , (3195, 0, "l") + , (3196, 0, "f") + , (3197, 0, ")") + , (3198, 0, " ") + , (3199, 0, "-") + , (3199, 1, "") + , (3199, 0, "-") + , (3200, 0, ">") + , (3201, 0, " ") + , (3202, 0, "b") + , (3203, 0, "o") + , (3204, 0, "o") + , (3205, 0, "l") + , (3206, 0, ";") + , (3160, 0, "// ") + , (3156, 0, " // fn merge_into(&mut self, other: &Self) -> bool;\n") + , (3215, 3, "") + , (3210, 0, "\n ") + , (3223, 10, "c") + , (3211, 4, "") + , (3220, 0, "a") + , (3221, 0, "n") + , (3222, 0, "_") + , (3223, 0, "m") + , (3224, 0, "e") + , (3225, 0, "r") + , (3226, 0, "g") + , (3227, 0, "e") + , (3230, 4, "") + , (3258, 0, "\n ") + , (3263, 0, "f") + , (3264, 0, "n") + , (3265, 0, " ") + , (3266, 0, "m") + , (3267, 0, "e") + , (3268, 0, "r") + , (3269, 0, "g") + , (3270, 0, "e") + , (3271, 0, "(") + , (3272, 0, "&") + , (3272, 1, "") + , (3272, 0, "s") + , (3273, 0, "e") + , (3274, 0, "l") + , (3275, 0, "f") + , (3276, 0, ",") + , (3277, 0, " ") + , (3278, 0, "t") + , (3279, 0, "h") + , (3279, 1, "") + , (3278, 1, "") + , (3278, 0, "i") + , (3279, 0, "t") + , (3280, 0, "h") + , (3281, 0, "e") + , (3282, 0, "r") + , (3283, 0, ":") + , (3284, 0, " ") + , (3285, 0, "S") + , (3286, 0, "e") + , (3287, 0, "l") + , (3288, 0, "f") + , (3278, 1, "") + , (3278, 0, "o") + , (3289, 0, ")") + , (3290, 0, " ") + , (3291, 0, "-") + , (3292, 0, ".") + , (3293, 0, " ") + , (3294, 0, "S") + , (3294, 1, "") + , (3293, 1, "") + , (3292, 1, "") + , (3292, 0, ">") + , (3293, 0, " ") + , (3294, 0, "S") + , (3295, 0, "e") + , (3296, 0, "l") + , (3297, 0, "f") + , (3298, 0, ";") + , (3299, 0, "\n ") + , (3300, 4, "") + , (3263, 0, "// ") + , (3216, 0, "// ") + , (3306, 0, "\n ") + , (3311, 0, "f") + , (3312, 0, "n") + , (3313, 0, " ") + , (3314, 0, "t") + , (3315, 0, "r") + , (3316, 0, "y") + , (3317, 0, "_") + , (3318, 0, "m") + , (3319, 0, "e") + , (3320, 0, "r") + , (3321, 0, "g") + , (3322, 0, "e") + , (3323, 0, "(") + , (3324, 0, "&") + , (3325, 0, "s") + , (3326, 0, "e") + , (3327, 0, "l") + , (3328, 0, "f") + , (3329, 0, ",") + , (3330, 0, " ") + , (3331, 0, "o") + , (3332, 0, "t") + , (3333, 0, "h") + , (3334, 0, "e") + , (3335, 0, "r") + , (3336, 0, ":") + , (3337, 0, " ") + , (3338, 0, "&") + , (3339, 0, "s") + , (3340, 0, "e") + , (3341, 0, "l") + , (3342, 0, "f") + , (3343, 0, ")") + , (3344, 0, " ") + , (3345, 0, "-") + , (3346, 0, ">") + , (3347, 0, " ") + , (3348, 0, "O") + , (3349, 0, "p") + , (3350, 0, "t") + , (3351, 0, "i") + , (3352, 0, "o") + , (3353, 0, "n") + , (3354, 0, "<") + , (3355, 0, "S") + , (3356, 0, "e") + , (3357, 0, "l") + , (3358, 0, "f") + , (3359, 0, ")") + , (3359, 1, "") + , (3359, 0, ">") + , (3360, 0, ";") + , (3361, 0, "/") + , (3362, 0, "/") + , (3362, 1, "") + , (3361, 1, "") + , (3311, 0, "// ") + , (3211, 153, "") + , (3210, 1, "") + , (3160, 3, "") + , (3206, 1, "") + , (3206, 0, " ") + , (3207, 0, "{") + , (3208, 0, "\n ") + , (3209, 8, " }") + , (3208, 0, "\n ") + , (3217, 0, "f") + , (3218, 0, "a") + , (3219, 0, "l") + , (3220, 0, "s") + , (3221, 0, "e") + , (3155, 0, "\n ") + , (3160, 0, "/") + , (3161, 0, "/") + , (3162, 0, " ") + , (3163, 0, "T") + , (3164, 0, "r") + , (3165, 0, "y") + , (3156, 10, "") + , (3155, 1, "") + , (3185, 0, "_") + , (3163, 0, "t") + , (3164, 0, "r") + , (3165, 0, "y") + , (3166, 0, "_") + , (3176, 1, "") + , (3175, 1, "") + , (3174, 1, "") + , (3173, 1, "") + , (3172, 1, "") + , (3172, 0, "_into") + , (2835, 0, "\n ") + , (3168, 14, "m") + , (2836, 4, "") + , (3165, 0, "e") + , (3166, 0, "r") + , (3167, 0, "g") + , (3168, 0, "e") + , (3169, 0, "_") + , (3170, 0, "f") + , (3171, 0, "r") + , (3172, 0, "o") + , (3173, 0, "m") + , (2836, 0, "/") + , (2837, 0, "/") + , (2838, 0, "/") + , (2838, 1, "") + , (2837, 1, "") + , (2836, 1, "") + , (2836, 0, " ") + , (2844, 0, "/") + , (2845, 0, "/") + , (2846, 0, "/") + , (2846, 1, "") + , (2845, 1, "") + , (2844, 1, "") + , (2840, 4, "") + , (2840, 0, "/") + , (2841, 0, "/") + , (2842, 0, "/") + , (2843, 0, "/") + , (2844, 0, " ") + , (2844, 1, "") + , (2843, 1, "") + , (2843, 0, " ") + , (2844, 0, "T") + , (2845, 0, "h") + , (2846, 0, "e") + , (2847, 0, " ") + , (2848, 0, "u") + , (2849, 0, "s") + , (2850, 0, "e") + , (2851, 0, "r") + , (2848, 4, "l") + , (2849, 0, "e") + , (2850, 0, "n") + , (2851, 0, "g") + , (2844, 8, "A") + , (2845, 0, "n") + , (2846, 0, " ") + , (2847, 0, "o") + , (2848, 0, "p") + , (2849, 0, "t") + , (2850, 0, "i") + , (2851, 0, "m") + , (2852, 0, "i") + , (2853, 0, "z") + , (2854, 0, "e") + , (2855, 0, "d") + , (2856, 0, " ") + , (2857, 0, "v") + , (2858, 0, "e") + , (2859, 0, "r") + , (2857, 3, "m") + , (2858, 0, "e") + , (2859, 0, "t") + , (2860, 0, "h") + , (2861, 0, "o") + , (2862, 0, "d") + , (2863, 0, " ") + , (2864, 0, "t") + , (2865, 0, "o") + , (2866, 0, " ") + , (2867, 0, "c") + , (2868, 0, "a") + , (2869, 0, "l") + , (2870, 0, "c") + , (2871, 0, "u") + , (2872, 0, "l") + , (2873, 0, "a") + , (2874, 0, "t") + , (2875, 0, "e") + , (2876, 0, " ") + , (2877, 0, "t") + , (2878, 0, "h") + , (2879, 0, "e") + , (2880, 0, " ") + , (2881, 0, "u") + , (2882, 0, "s") + , (2883, 0, "e") + , (2884, 0, "r") + , (2885, 0, "l") + , (2886, 0, "e") + , (2887, 0, "n") + , (2888, 0, " ") + , (2889, 0, "o") + , (2890, 0, "f") + , (2891, 0, " ") + , (2892, 0, "a") + , (2893, 0, " ") + , (2894, 0, "s") + , (2895, 0, "l") + , (2896, 0, "i") + , (2897, 0, "c") + , (2898, 0, "e") + , (2899, 0, " ") + , (2900, 0, "o") + , (2901, 0, "f") + , (2902, 0, " ") + , (2903, 0, "L") + , (2904, 0, "i") + , (2905, 0, "s") + , (2906, 0, "t") + , (2907, 0, "I") + , (2908, 0, "t") + , (2909, 0, "e") + , (2910, 0, "m") + , (2911, 0, "s") + , (2912, 0, ".") + , (2913, 0, " ") + , (2914, 0, "T") + , (2915, 0, "h") + , (2916, 0, "e") + , (2917, 0, " ") + , (2918, 0, "d") + , (2919, 0, "e") + , (2920, 0, "f") + , (2921, 0, "a") + , (2922, 0, "u") + , (2923, 0, "l") + , (2924, 0, "t") + , (2925, 0, " ") + , (2926, 0, "i") + , (2927, 0, "m") + , (2928, 0, "p") + , (2929, 0, "l") + , (2930, 0, "e") + , (2931, 0, "m") + , (2932, 0, "e") + , (2933, 0, "n") + , (2934, 0, "t") + , (2935, 0, "a") + , (2936, 0, "t") + , (2937, 0, "i") + , (2938, 0, "o") + , (2939, 0, "n") + , (2940, 0, " ") + , (2941, 0, "s") + , (2942, 0, "i") + , (2943, 0, "m") + , (2944, 0, "p") + , (2945, 0, "l") + , (2946, 0, "y") + , (2947, 0, " ") + , (2948, 0, "c") + , (2949, 0, "a") + , (2950, 0, "l") + , (2951, 0, "l") + , (2952, 0, "s") + , (2953, 0, " ") + , (2954, 0, "g") + , (2954, 1, "") + , (2954, 0, "[") + , (2955, 0, "`") + , (2956, 0, "g") + , (2957, 0, "e") + , (2958, 0, "t") + , (2959, 0, "_") + , (2960, 0, "u") + , (2961, 0, "s") + , (2962, 0, "e") + , (2963, 0, "r") + , (2964, 0, "s") + , (2965, 0, "i") + , (2966, 0, "z") + , (2967, 0, "e") + , (2968, 0, "`") + , (2969, 0, "]") + , (2970, 0, " ") + , (2971, 0, "i") + , (2972, 0, "n") + , (2973, 0, " ") + , (2974, 0, "a") + , (2975, 0, " ") + , (2976, 0, "l") + , (2977, 0, "o") + , (2978, 0, "o") + , (2979, 0, "p") + , (2980, 0, ".") + , ( 2836 + , 145 + , " /// An optimized method to calculate the userlen of a slice of ListItems.\n /// The default implementation simply calls [`get_usersize`] in a loop." + ) + , (3144, 0, "\n ") + , (3149, 0, "/") + , (3150, 0, "/") + , (3151, 0, "/") + , (3152, 0, " ") + , (3153, 0, "S") + , (3154, 0, "p") + , (3155, 0, "l") + , (3156, 0, "i") + , (3157, 0, "t") + , (3158, 0, " ") + , (3159, 0, "t") + , (3160, 0, "h") + , (3161, 0, "e") + , (3162, 0, " ") + , (3163, 0, "s") + , (3164, 0, "p") + , (3165, 0, "e") + , (3163, 3, "n") + , (3164, 0, "a") + , (3165, 0, "m") + , (3166, 0, "e") + , (3167, 0, "d") + , (3168, 0, " ") + , (3169, 0, "i") + , (3170, 0, "t") + , (3171, 0, "e") + , (3172, 0, "m") + , (3173, 0, " ") + , (3174, 0, "a") + , (3175, 0, "t") + , (3174, 2, "i") + , (3175, 0, "n") + , (3176, 0, " ") + , (3177, 0, "a") + , (3177, 1, "") + , (3176, 1, "") + , (3176, 0, "t") + , (3177, 0, "o") + , (3178, 0, " ") + , (3179, 0, "a") + , (3180, 0, " ") + , (3181, 0, "p") + , (3182, 0, "a") + , (3183, 0, "i") + , (3184, 0, "r") + , (3185, 0, " ") + , (3186, 0, "o") + , (3187, 0, "f") + , (3188, 0, " ") + , (3189, 0, "i") + , (3190, 0, "t") + , (3191, 0, "e") + , (3192, 0, "m") + , (3193, 0, "s") + , (3163, 5, "p") + , (3164, 0, "a") + , (3165, 0, "s") + , (3166, 0, "s") + , (3167, 0, "e") + , (3168, 0, "d") + , (3195, 0, " ") + , (3196, 0, "a") + , (3197, 0, "t") + , (3198, 0, " ") + , (3199, 0, "a") + , (3200, 0, " ") + , (3201, 0, "s") + , (3202, 0, "p") + , (3202, 1, "") + , (3201, 1, "") + , (3200, 1, "") + , (3199, 1, "") + , (3199, 0, "a") + , (3200, 0, " ") + , (3201, 0, "s") + , (3201, 1, "") + , (3200, 1, "") + , (3199, 1, "") + , (3198, 1, "") + , (3198, 0, " ") + , (3199, 0, "s") + , (3200, 0, "o") + , (3201, 0, "m") + , (3202, 0, "e") + , (3203, 0, " ") + , (3204, 0, "s") + , (3205, 0, "p") + , (3206, 0, "e") + , (3207, 0, "c") + , (3208, 0, "i") + , (3209, 0, "f") + , (3210, 0, "i") + , (3211, 0, "e") + , (3212, 0, "d") + , (3213, 0, " ") + , (3214, 0, "o") + , (3215, 0, "f") + , (3216, 0, "f") + , (3217, 0, "s") + , (3218, 0, "e") + , (3219, 0, "t") + , (3220, 0, ".") + , (3204, 10, "") + , (3230, 1, "") + , ( 19527 + , 0 + , "\n pub(super) unsafe fn current_item<'a>(&self) -> Option<&'a Item> {\n let node = &*self.here_ptr();\n if self.local_index < node.num_items as usize {\n // Ok - just return the current item.\n Some(&*(node.items[self.local_index].as_ptr()))\n } else {\n // Peek the first item in the next node.\n self.peek_next_item().map(|ptr| &*ptr)\n }\n }\n" + ) + , (19966, 12, "t") + , (19967, 0, "a") + , (19968, 0, "k") + , (19969, 0, "e") + , (19970, 0, "_") + , (19971, 0, "i") + , (19972, 0, "t") + , (19973, 0, "e") + , (19974, 0, "m") + , (19981, 0, "m") + , (19982, 0, "u") + , (19983, 0, "t") + , (19984, 0, " ") + , (20001, 1, "") + , (20001, 1, "") + , (20001, 1, "") + , (20001, 1, "") + , (20295, 0, "// ") + , (20282, 0, "\n ") + , (20295, 0, "u") + , (20296, 0, "n") + , (20297, 0, "i") + , (20298, 0, "m") + , (20299, 0, "p") + , (20300, 0, "l") + , (20295, 6, "unimplemented") + , (20308, 0, "(") + , (20309, 0, ")") + , (20310, 0, ";") + , (20380, 0, "// ") + , (20370, 0, "// ") + , (20316, 0, "// ") + , (20287, 0, "// ") + , (20234, 0, "// ") + , (20217, 0, "// ") + , (20157, 0, "// ") + , (20107, 0, "// ") + , (20051, 0, "// ") + , (20013, 0, "// ") + , (19945, 0, "// ") + , (19532, 11, "") + , (19532, 0, "pub(super) ") + , (20410, 3, "") + , (20397, 3, "") + , (20340, 3, "") + , (20308, 3, "") + , (20252, 3, "") + , (20232, 3, "") + , (20169, 3, "") + , (20116, 3, "") + , (20057, 3, "") + , (20016, 3, "") + , (19945, 3, "") + , (20380, 0, "// ") + , (20370, 0, "// ") + , (20316, 0, "// ") + , (20287, 0, "// ") + , (20234, 0, "// ") + , (20217, 0, "// ") + , (20157, 0, "// ") + , (20107, 0, "// ") + , (20051, 0, "// ") + , (20013, 0, "// ") + , (19945, 0, "// ") + , (19243, 11, "") + , (19892, 1, "") + , (19889, 2, "nod") + , (19266, 1, "") + , (19263, 2, "nod") + , (19298, 212, "") + , (19302, 0, "// ") + , (19243, 0, "// ") + , ( 19656 + , 50 + , " let next = (*self.here_ptr()).get_next_ptr();\n if next.is_null() { None }\n else {\n debug_assert!((*next).num_items > 0);\n Some((*next).items[0].as_mut_ptr())\n }\n" + ) + , (19868, 0, " ") + , (19858, 8, " ") + , (19810, 12, " ") + , (19760, 12, " ") + , (19745, 8, " ") + , (19710, 8, " ") + , (19656, 8, " ") + , (19892, 4, "") + , (19878, 12, " ") + , (19826, 16, " ") + , (19772, 16, " ") + , (19753, 12, " ") + , (19714, 12, " ") + , (19656, 12, " ") + , (19656, 212, " self.peek_next_node().map(|ptr| &*ptr)") + , (19305, 3, "") + , (19243, 3, "") + , ( 19298 + , 0 + , " let next = (*self.here_ptr()).get_next_ptr();\n if next.is_null() { None }\n else {\n debug_assert!((*next).num_items > 0);\n Some((*next).items[0].as_mut_ptr())\n }\n" + ) + , (19893, 0, "_start") + , (19267, 0, "_start") + , (20411, 3, "") + , (20398, 3, "") + , (20341, 3, "") + , (20309, 3, "") + , (20253, 3, "") + , (20233, 3, "") + , (20170, 3, "") + , (20117, 3, "") + , (20058, 3, "") + , (20017, 3, "") + , (19946, 3, "") + , (19975, 1, "") + , (19974, 1, "") + , (19973, 1, "") + , (19972, 1, "") + , (19972, 0, "p") + , (19973, 0, "r") + , (19974, 0, "e") + , (19975, 0, "v") + , (19976, 0, "_") + , (19976, 1, "") + , (20047, 0, "\n ") + , (20056, 0, "i") + , (20057, 0, "f") + , (20058, 0, " ") + , (20059, 0, "s") + , (20060, 0, "e") + , (20061, 0, "l") + , (20062, 0, "f") + , (20063, 0, ".") + , (20064, 0, "i") + , (20065, 0, "n") + , (20066, 0, "d") + , (20067, 0, "e") + , (20064, 4, "l") + , (20065, 0, "o") + , (20066, 0, "c") + , (20067, 0, "a") + , (20068, 0, "l") + , (20064, 5, "local_index") + , (20075, 0, " ") + , (20076, 0, "=") + , (20077, 0, "=") + , (20078, 0, " ") + , (20079, 0, "0") + , (20080, 0, " ") + , (20081, 0, "{") + , (20082, 0, " ") + , (20083, 0, "N") + , (20084, 0, "o") + , (20085, 0, "n") + , (20086, 0, "e") + , (20087, 0, " ") + , (20088, 0, "}") + , (20098, 0, "e") + , (20099, 0, "l") + , (20100, 0, "s") + , (20101, 0, "e") + , (20102, 0, " ") + , (20270, 153, "") + , (20103, 45, "") + , (20102, 1, "") + , (20102, 0, " if self.local_index < node.num_items as usize") + , (20103, 45, "") + , (20102, 1, "") + , (20104, 0, "\n ") + , (20117, 0, "d") + , (20118, 0, "e") + , (20119, 0, "b") + , (20120, 0, "u") + , (20121, 0, "g") + , (20117, 5, "debug_assert!") + , (20130, 0, "(") + , (20131, 0, "if self.local_index < node.num_items as usize") + , (20131, 3, "") + , (20298, 0, "// ") + , (20288, 0, "// ") + , (20228, 0, "// ") + , (20178, 0, "// ") + , (20109, 0, "// ") + , (20094, 0, "// ") + , (20052, 0, "// ") + , (20014, 0, "// ") + , (19946, 0, "// ") + , (3265, 0, "\n fn split_item(self, _at: usize) -> (Self, Self) {") + , (3270, 0, "// ") + , (3230, 0, "&") + , (1069, 2, "2") + ] +end diff --git a/rust23_gap.txt b/rust23_gap.txt deleted file mode 100644 index bfcf10e..0000000 --- a/rust23_gap.txt +++ /dev/null @@ -1 +0,0 @@ -'/// This is an implementation of a general purpose skip list. It was originallyn/// ported from a version of skiplists intended for efficient string handlingn/// found here - https://github.com/josephg/rustropenn/// This implementation is not optimized for strings (there's some stringn/// specific features like unicode handling which have been intentionallyn/// removed for simplicity). But it does have another somewhat unusual feature -n/// users can specify their own size function, and lookups, inserts and deletesn/// can use their custom length property to specify offsets.''nn/// Unlike other rust rope implementations, this implementation should be veryn/// fast; but it manages that through heavy use of unsafe pointers and C-stylen/// dynamic arrays.nnuse std::{mem, ptr}''use std::mem::MaybeUninit;nuse std::ptr::NonNull;nuse std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min;nuse std::marker::PhantomData;nuse std::iter;nnuse std::fmt;nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n'2'+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of it''''t's'i'L'ems in each node. Must fit in a u8 thanks to Node.n#[cfg(debug_assertions)]nconst NODE_NUM_ITEMS: usize ='10''2''10''2'''0'1''''1''''2' 10;nn#[cfg(not(debug_assertions))]nconst NODE_NUM_ITEMS: usize = 100;nn/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the''''m'e't'I''''V''''T''''I''''I''' conten''''m'e''''m'e't't'I'''t''s'' ''a''r''e sm'I'''aller.n#[cfg(debug_assertions)]nco'5''2'nst MAX_HEIGHT: usize = 5;'m'n'e'n't'#'I'[cf''g('V'not''('m'd'e'''t'T'ebu''g_'I'ass''ertions'I'))]''nconst MAX_H'm'E'e''I''''m'I't'e''G''t'I'H'I'T:''m'' u'e'''s't'i'''V'ze ='''' 10;''m'T'''n'e'nnc'''t'''on'm'''I'I'e''st'''t' M''''AX_HE'V'IGHT_U8: '''I'u8''T'''''''''''''''''I'I'''''''Par'''m'tia'e'lE''t'''''I'''m'I'q']'''m''e'E''''e''' 't'''t',''>'I'I'''''''')'''q'm'''''m'''p'e'u''m'V'e''t''''b(su'e't''pe'm'r''''''I't''e') ''T''''I''t'''''''i't'''r''V'''a'''I''P'('e'''''v'i'''r''T'e'd'''['#'n''' ''''= MAX_'''I'''''I'''impl Default for ItemMarker {n fn default() -> Self { Self::null() }n}nn'''''I'''''''''''C''''''':':'t'm'f''''''g'u'b'e'D'l''on'''''''''''''''''''''''''''''':':'t'm'f''''''''''''t'm'f'''''':':'d'''':'t's''''''''''''''''''''' '''''''''''''''''''''';')'''r'e'k'r'a'M'm'e't'I'''('d'a'p'.'f' ''' }''n 'n ' '{' 't'l'u's'e'R' '>'-' ')'>''''''_'''<'r'e't't'a'm'r'o'F' 't'u'm'&' ':'f' ','f'l'e's'&'('t'm'f' 'n'f'''''''']''I''')'y'p''m'o'C' '''I''e''m'''m'' ','e't''e''''e''I'''C'''t''''''''l'p'm'i''''//! Utilities for formatting and pr'' /// An optimized method to calculate the userlen of a slice of ListItems.n /// The default implementation simply calls [`get_usersize`] in a loop.'' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'p'o'o''n ''''''''''''''''''''d'e's's'a'p'''''''''''''''''''''''''''''''''''''''''''.'t'e's'&''''f'f'o' 'd'e'i'f'i'c'e'p's' 'e'm''n '// ' fn split_item(self, _at: usize) -> (Self, Self) {'o's' '''''''''''''s' 'a'''''''''''''p's' 'a' 't'a' ''''''''''''''''''s'm'e't'i' 'f'o' 'r'i'a'p' 'a' 'o't'''''''a' 'n'i'''t'a' 'm'e't'i' 'd'e'm'a'n''''e'p's' 'e'h't' 't'i'l'p'S' '/'/'/' 'l' 'a' 'n'i' ']'`'e'z'i's'r'e's'u'_'t'e'g'`'[''''g' 's'l'l'a'c' 'y'l'p'm'i's' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 't'l'u'a'f'e'd' 'e'h'T' '.'s'm'e't'I't's'i'L' 'f'o' 'e'c'i'l's' 'a' 'f'o' 'n'e'l'r'e's'u' 'e'h't' 'e't'a'l'u'c'l'a'c' 'o't' 'd'o'h't'e'm''''r'e'v' 'd'e'z'i'm'i't'p'o' 'n'A'''''''''g'n'e'l'''''r'e's'u' 'e'h'T' ''''''' '/'/'/'/''' '''''''''/'/'/' ''''''''''/'/'/'''n 'inting strings.nn#![stable(feature = 'rust1', since = '1.0.0')]nnuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};nuse crate::marker::PhantomData;nuse crate::mem;nuse crate::num::flt2dec;nuse crate::ops::Deref;nuse crate::result;nuse crate::str;nnmod builders;nmod float;nmod num;nn#[stable(feature = 'fmt_flag'''''''''''m'o'r'f'_'e'g'r'e'''''n'm' ''''_'y'r'_into''''''t''''' ''''''''y'r'T' '/'/' '''_'' '' // fn merge_into(&mut self, other: &Self) -'''n '''''e's'l'a'f' ''' }'n '{' '''> bool'''''''n '// ' ';''''''''e'''g'r'e'm'_'n'a'n''n''c'' ''n '// '''''''''''''''''o'''''''''''''''''n '// '''''''''''''''''''''''''''''''''''''''''''''''''''''''''/'/';'>'''')'f'l'e'S'<'n'o'i't'p'O' '>'-' ')'f'l'e's'&' ':'r'e'h't'o' ','f'l'e's'&'('e'g'r'e'm'_'y'r't' 'n'f' '''''''n ';'f'l'e'S' '>''''''''''S' '.'-' ')''''''f'l'e'S' ':'r'e'h't'i'''''''h't' ','f'l'e's''''&'('e'g'r'e'm' 'n'f' '// '''''''''''''''''''''''''''''''''''''''''''''''';'l'o'o'b' '>'-''''-' ')'f'l''''''''''f'l'p'e'S'&' ':'r'e'h't'o' ','f'l'e's' 't'u'm'&'('o't'n'i'_'e'g'r'e'm' 'n'f' 'n ' 's_align', since = '1.28.0')]n/// Possible alignments returned by `Formatter::align`n#[derive(Debug)]npub enum Alignment {n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be left-aligned.n Left,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be right-aligned.n Right,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be center-a''''l'o'o'b'ligne'nimpl Li''''r'a'''h'c'stItem for u8 {'n'}''nimpl ListItem for u8 {}'d.n Center,n}nn#[stable(feature = 'debug_builders', since = '1.2.0')]npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};nn#[unstable(feature = 'fmt_internals', reason 'impl ListItem for'&' bool {}nimpl ListItem f'&'or char {''}n''n'= 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub mod rt {n pub mod v1;n}nn/// The type returned by formatter methods.n///n/// # Examplesn///n/// ```n/// use std::fmt;n///n/// #[derive(Debug)]n/// struct Triangle {n/// a: f32,n/// b: f32,n/// c: f32n/// }n///n/// impl fmt::Display for Triangle {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {}, {})', self.a, self.b, self.c)n/// }n/// }n///n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };n///n/// assert_eq!(format!('{}', pythagorean_triple), '(3, 4, 5)');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub type Result = result::Result<(), Error>;nn/// The error type which is returned from formatting a message into a stream.n///n/// This type does not support transmission of an error other than that an errorn/// occurred. Any extra information must be arranged to be transmitted throughn/// some other means.n///n/// An important thing to remember is that the type `fmt::Error` should not ben/// confused with [`std::io::Error`] or [`std::error::Error`], which you may alson/// have in scope.n///n/// [`std::io::Error`]: ../../std/io/struct.Error.htmln/// [`std::error::Error`]: ../../std/error/trait.Error.htmln///n/// # Examplesn///n/// ```rustn/// use std::fmt::{self, write};n///n/// let mut output = String::new();n/// if let Err(fmt::Error) = write(&mut output, format_args!('Hello {}!', 'world')) {n/// panic!('An error occurred');n/// }n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]npub struct Error;nn/// A collection of methods that are required to format a message into a stream.n///n/// This trait is the type which this modules requires when formattingn/// information. This is similar to the standard library's [`io::Write`] trait,n/// but it is only intended for use in libcore.n///n/// This trait should generally not be implemented by consumers of the standardn/// library. The [`write!`] macro accepts an instance of [`io::Write`], and then/// [`io::Write`] trait is favored over implementing this trait.n///n/// [`write!`]: ../../std/macro.write.htmln/// [`io::Write`]: ../../std/io/trait.Write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Write {n /// Writes a string slice into this writer, returning whether the writen /// succeeded.n ///n /// This method can only succeed if the entire string slice was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_str(s)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'hola').unwrap();n /// assert_eq!(&buf, 'hola');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_str(&mut self, s: &str) -> Result;nn /// Writes a [`char`] into this writer, returning whether the write succeeded.n ///n /// A single [`char`] may be encoded as more than one byte.n /// This method can only succeed if the entire byte sequence was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`char`]: ../../std/primitive.char.htmln /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {n /// f.write_char(c)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'a').unwrap();n /// writer(&mut buf, 'b').unwrap();n /// assert_eq!(&buf, 'ab');n /// ```n #[stable(feature = 'fmt_write_char', since = '1.1.0')]n fn write_char(&mut self, c: char) -> Result {n self.write_str(c.encode_utf8(&mut [0; 4]))n }nn /// Glue for usage of the [`write!`] macro with implementors of this trait.n ///n /// This method should generally not be invoked manually, but rather throughn /// the [`write!`] macro itself.n ///n /// [`write!`]: ../../std/macro.write.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_fmt(format_args!('{}', s))n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'world').unwrap();n /// assert_eq!(&buf, 'world');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {n write(&mut self, args)n }n}nn#[stable(feature = 'fmt_write_blanket_impl', since = '1.4.0')]nimpl Write for &mut W {n fn write_str(&mut self, s: &str) -> Result {n (**self).write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n (**self).write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n (**self).write_fmt(args)n }n}nn/// Configuration for formatting.n///n/// A `Formatter` represents various options related to formatting. Users do notn/// construct `Formatter`s directly; a mutable reference to one is passed ton/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].n///n/// To interact with a `Formatter`, you'll call various methods to change then/// various options related to formatting. For examples, please see then/// documentation of the methods defined on `Formatter` below.n///n/// [`Debug`]: trait.Debug.htmln/// [`Display`]: trait.Display.htmln#[allow(missing_debug_implementations)]n#[stable(feature = 'rust1', since = '1.0.0')]npub struct Formatter<'a> {n flags: u32,n fill: char,n align: rt::v1::Alignment,n width: Option,n precision: Option,nn buf: &'a mut (dyn Write + 'a),n}nn// NB. Argument is essentially an optimized partially applied formatting function,n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.nnextern 'C' {n type Opaque;n}nn/// This struct represents the generic 'argument' which is taken by the Xprintfn/// family of functions. It contains a function to format the given value. Atn/// compile time it is ensured that the function and the value have the correctn/// types, and then this struct is used to canonicalize arguments to one type.n#[derive(Copy, Clone)]n#[allow(missing_debug_implementations)]n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub struct ArgumentV1<'a> {n value: &'a Opaque,n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,n}nn// This guarantees a single stable value for the function pointer associated withn// indices/counts in the formatting infrastructure.n//n// Note that a function defined as such would not be correct as functions aren// always tagged unnamed_addr with the current lowering to LLVM IR, so theirn// address is not considered important to LLVM and as such the as_usize castn// could have been miscompiled. In practice, we never call as_usize on non-usizen// containing data (as a matter of static generation of the formattingn// arguments), so this is merely an additional check.n//n// We primarily want to ensure that the function pointer at `USIZE_MARKER` hasn// an address corresponding *only* to functions that also take `&usize` as theirn// first argument. The read_volatile here ensures that we can safely ready out an// usize from the passed reference and that this address does not point at an// non-usize taking function.n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {n // SAFETY: ptr is a referencen let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };n loop {}n};nnimpl<'a> ArgumentV1<'a> {n #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {n // SAFETY: `mem::transmute(x)` is safe becausen // 1. `&'b T` keeps the lifetime it originated with `'b`n // (so as to not have an unbounded lifetime)n // 2. `&'b T` and `&'b Opaque` have the same memory layoutn // (when `T` is `Sized`, as it is here)n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABIn // (as long as `T` is `Sized`)n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }n }nn #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {n ArgumentV1::new(x, USIZE_MARKER)n }nn fn as_usize(&self) -> Option {n if self.formatter as usize == USIZE_MARKER as usize {n // SAFETY: The `formatter` field is only set to USIZE_MARKER ifn // the value is a usize, so this is safen Some(unsafe { *(self.value as *const _ as *const usize) })n } else {n Nonen }n }n}nn// flags available in the v1 format of format_argsn#[derive(Copy, Clone)]nenum FlagV1 {n SignPlus,n SignMinus,n Alternate,n SignAwareZeroPad,n DebugLowerHex,n DebugUpperHex,n}nnimpl<'a> Arguments<'a> {n /// When using the format_args!() macro, this function is used to generate then /// Arguments structure.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {n Arguments { pieces, fmt: None, args }n }nn /// This function is used to specify nonstandard formatting parameters.n /// The `pieces` array must be at least as long as `fmt` to constructn /// a valid Arguments structure. Also, any `Count` within `fmt` that isn /// `CountIsParam` or `CountIsNextParam` has to point to an argumentn /// created with `argumentusize`. However, failing to do so doesn't causen /// unsafety, but will ignore invalid .n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1_formatted(n pieces: &'a [&'a str],n args: &'a [ArgumentV1<'a>],n fmt: &'a [rt::v1::Argument],n ) -> Arguments<'a> {n Arguments { pieces, fmt: Some(fmt), args }n }nn /// Estimates the length of the formatted text.n ///n /// This is intended to be used for setting initial `String` capacityn /// when using `format!`. Note: this is neither the lower nor upper bound.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn estimated_capacity(&self) -> usize {n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();nn if self.args.is_empty() {n pieces_lengthn } else if self.pieces[0] == '' && pieces_length < 16 {n // If the format string starts with an argument,n // don't preallocate anything, unless lengthn // of pieces is significant.n 0n } else {n // There are some arguments, so any additional pushn // will reallocate the string. To avoid that,n // we're 'pre-doubling' the capacity here.n pieces_length.checked_mul(2).unwrap_or(0)n }n }n}nn/// This structure represents a safely precompiled version of a format stringn/// and its arguments. This cannot be generated at runtime because it cannotn/// safely be done, so no constructors are given and the fields are privaten/// to prevent modification.n///n/// The [`format_args!`] macro will safely create an instance of this structure.n/// The macro validates the format string at compile-time so usage of then/// [`write`] and [`format`] functions can be safely performed.n///n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`n/// and `Display` contexts as seen below. The example also shows that `Debug`n/// and `Display` format to the same thing: the interpolated format stringn/// in `format_args!`.n///n/// ```rustn/// let debug = format!('{:?}', format_args!('{} foo {:?}', 1, 2));n/// let display = format!('{}', format_args!('{} foo {:?}', 1, 2));n/// assert_eq!('1 foo 2', display);n/// assert_eq!(display, debug);n/// ```n///n/// [`format_args!`]: ../../std/macro.format_args.htmln/// [`format`]: ../../std/fmt/fn.format.htmln/// [`write`]: ../../std/fmt/fn.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone)]npub struct Arguments<'a> {n // Format string pieces to print.n pieces: &'a [&'a str],nn // Placeholder specs, or `None` if all specs are default (as in '{}{}').n fmt: Option<'''// '''&'a [rt::v1::Ar'_start'gum'nod'ent'']>,nn // Dynami' let next = (*self.here_ptr()).get_next_ptr();n if next.is_null() { None }n else {n debug_assert!((*next).num_items > 0);n Some((*next).items[0].as_mut_ptr())n }n'c argum''''en'// 'ts for interpolation, to be interleaved with stringn // pieces. (Every argument is preceded by a string piece.)n args: &'a [ArgumentV1<'a>],n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for Arguments<'_> {n fn fm'n 'pub(super) ''' pub(super) unsafe fn current_item<'a>(&self) -> Option<&'a Item> {n let node = &' self.p'_start'eek_next_node().map(|ptr| &*ptr)'' '// ''' '' '' '''''''_'v'e'r'p''' '' '' '' let next = ('// '*self.here_ptr()).get_n' '' 'n '// ' '''''''''local_inde''''''''''''''}' 'e'// ''n'o'''''''n '// ' 'debug_assert''''if self.local_index < node.num_items as usiz'// 'e'('!''''''g'u'b'e'd' '''' if self.local_index < n'// 'ode.num_items as usize'''''' 'e's'l'e''N' '{' '0' '='=' 'x'''// '''''l'a'c''// 'o'l'''''e'd'n'i'.'f'l'e's' 'f'i' ' 'ext_ptr();' 'n if ne''x' 't.is_null() { None ' '}' '' '''n else {' 'n ' ''' debug_assert!((*next).num_items > 0);' ' ' '' 'n '' '' Some((*next).items[0].as_mut_ptr())' 'n '' }' 'n'*self.here_ptr();''n if self.local_index < node.num_items as usize {n'' /''/ Ok - just return the current item.n Some(&*(node.items[self.local_index].as_ptr()))n } else {n // Peek the first item in the next node'nod'.n '' self.peek_next_item().map(|ptr| &*ptr)n '// ''' }n }n't(&'// 'self, fmt: &mut Forma'''''''''m'e't''''' 't'u''// 'm'i'_'''e'k'''''''''a't''// 'tter<'_>)'// ' -> Result'' {n Display:'// ':fmt(self, fmt)n '// '}n}nn#[stable(f''eature = 'rust1', sin'// 'ce = '1'// '.0.0')]nimpl Display'' for Arguments<'_> {n '// ' fn fmt(&'// 'self, fmt: &mut F'// 'ormatter''<'_>) -> Result {n '' '// ' write(fmt.'// 'buf, *'// 'self)n }n}nn///'// ' `?` f''ormatting.n///n/// `Debu'n '//'' ' 'u'// 'nimplement'// 'e''';')'('// ''d'''''''l'p'm'i'n'u''' 'g` should f''or'// 'mat the outpu'// 't in a pro'// 'grammer-facing, debugging context.n///n/// Generally speaking, you should just `derive` a `Debug` implementation.n///n/// When used with the alternate format specifier `#?`, the output is pretty-printed.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// This trait can be used with `#[derive]` if all fields implement `Debug`. Whenn/// `derive`d for structs, it will use the name of the `struct`, then `{`, then an/// comma-separated list of each field's name and `Debug` value, then `}`. Forn/// `enum`s, it will use the name of the variant and, if applicable, `(`, then then/// `Debug` values of the fields, then `)`.n///n/// # Stabilityn///n/// Derived `Debug` formats are not stable, and so may change with future Rustn/// versions. Additionally, `Debug` implementations of types provided by then/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, andn/// may also change with future Rust versions.n///n/// # Examplesn///n/// Deriving an implementation:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// Manually implementing:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Debug for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// f.debug_struct('Point')n/// .field('x', &self.x)n/// .field('y', &self.y)n/// .finish()n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// There are a number of helper methods on the [`Formatter`] struct to help you with manualn/// implementations, such as [`debug_struct`].n///n/// `Debug` implementations using either `derive` or the debug builder APIn/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.n///n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_structn/// [`Formatter`]: ../../std/fmt/struct.Formatter.htmln///n/// Pretty-printing with `#?`:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:#?}', origin),n/// 'The origin is: Point {n/// x: 0,n/// y: 0,n/// }');n/// ```nn#[stable(feature = 'rust1', since = '1.0.0')]n#[rustc_on_unimplemented(n on(n crate_local,n label = '`{Self}` cannot be formatted using `{{:?}}`',n note = 'add `#[derive(Debug)]` or manually implement `{Debug}`'n ),n message = '`{Self}` doesn't implement `{Debug}`',n label = '`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`'n)]n#[doc(alias = '{:?}')]n#[rustc_diagnostic_item = 'debug_trait']npub trait Debug {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Debug for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// f.debug_tuple('')n /// .field(&self.longitude)n /// .field(&self.latitude)n /// .finish()n /// }n /// }n ///n /// let position = Position { longitude: 1.987, latitude: 2.983 };n /// assert_eq!(format!('{:?}', position), '(1.987, 2.983)');n ///n /// assert_eq!(format!('{:#?}', position), '(n /// 1.987,n /// 2.983,n /// )');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.npub(crate) mod macros {n /// Derive macro generating an impl of the trait `Debug`.n #[rustc_builtin_macro]n #[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n #[allow_internal_unstable(core_intrinsics)]n pub macro Debug($item:item) {n /* compiler built-in */n }n}n#[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n#[doc(inline)]npub use macros::Debug;nn/// Format trait for an empty format, `{}`.n///n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facingn/// output, and so cannot be derived.n///n/// [debug]: trait.Debug.htmln///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Implementing `Display` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Display for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {})', self.x, self.y)n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {}', origin), 'The origin is: (0, 0)');n/// ```n#[rustc_on_unimplemented(n on(n _Self = 'std::path::Path',n label = '`{Self}` cannot be formatted with the default formatter; call `.display()` on it',n note = 'call `.display()` or `.to_string_lossy()` to safely print paths, n as they may contain non-Unicode data'n ),n message = '`{Self}` doesn't implement `{Display}`',n label = '`{Self}` cannot be formatted with the default formatter',n note = 'in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead'n)]n#[doc(alias = '{}')]n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Display {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Display for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// write!(f, '({}, {})', self.longitude, self.latitude)n /// }n /// }n ///n /// assert_eq!('(1.987, 2.983)',n /// format!('{}', Position { longitude: 1.987, latitude: 2.983, }));n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `o` formatting.n///n/// The `Octal` trait should format its output as a number in base-8.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0o` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '52' in octaln///n/// assert_eq!(format!('{:o}', x), '52');n/// assert_eq!(format!('{:#o}', x), '0o52');n///n/// assert_eq!(format!('{:o}', -16), '37777777760');n/// ```n///n/// Implementing `Octal` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Octal for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as octal is: {:o}', l), 'l as octal is: 11');n///n/// assert_eq!(format!('l as octal is: {:#06o}', l), 'l as octal is: 0o0011');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Octal {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `b` formatting.n///n/// The `Binary` trait should format its output as a number in binary.n///n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0b` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// # Examplesn///n/// Basic usage with [`i32`]:n///n/// ```n/// let x = 42; // 42 is '101010' in binaryn///n/// assert_eq!(format!('{:b}', x), '101010');n/// assert_eq!(format!('{:#b}', x), '0b101010');n///n/// assert_eq!(format!('{:b}', -16), '11111111111111111111111111110000');n/// ```n///n/// Implementing `Binary` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Binary for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(107);n///n/// assert_eq!(format!('l as binary is: {:b}', l), 'l as binary is: 1101011');n///n/// assert_eq!(n/// format!('l as binary is: {:#032b}', l),n/// 'l as binary is: 0b000000000000000000000001101011'n/// );n/// ```n///n/// [module]: ../../std/fmt/index.htmln/// [`i8`]: ../../std/primitive.i8.htmln/// [`i128`]: ../../std/primitive.i128.htmln/// [`isize`]: ../../std/primitive.isize.htmln/// [`i32`]: ../../std/primitive.i32.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Binary {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `x` formatting.n///n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`n/// in lower case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2a' in hexn///n/// assert_eq!(format!('{:x}', x), '2a');n/// assert_eq!(format!('{:#x}', x), '0x2a');n///n/// assert_eq!(format!('{:x}', -16), 'fffffff0');n/// ```n///n/// Implementing `LowerHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as hex is: {:x}', l), 'l as hex is: 9');n///n/// assert_eq!(format!('l as hex is: {:#010x}', l), 'l as hex is: 0x00000009');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `X` formatting.n///n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`n/// in upper case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2A' in hexn///n/// assert_eq!(format!('{:X}', x), '2A');n/// assert_eq!(format!('{:#X}', x), '0x2A');n///n/// assert_eq!(format!('{:X}', -16), 'FFFFFFF0');n/// ```n///n/// Implementing `UpperHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(i32::MAX);n///n/// assert_eq!(format!('l as hex is: {:X}', l), 'l as hex is: 7FFFFFFF');n///n/// assert_eq!(format!('l as hex is: {:#010X}', l), 'l as hex is: 0x7FFFFFFF');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `p` formatting.n///n/// The `Pointer` trait should format its output as a memory location. This is commonly presentedn/// as hexadecimal.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `&i32`:n///n/// ```n/// let x = &42;n///n/// let address = format!('{:p}', x); // this produces something like '0x7f06092ac6d0'n/// ```n///n/// Implementing `Pointer` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Pointer for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can usen///n/// let ptr = self as *const Self;n/// fmt::Pointer::fmt(&ptr, f)n/// }n/// }n///n/// let l = Length(42);n///n/// println!('l is in memory here: {:p}', l);n///n/// let l_ptr = format!('{:018p}', l);n/// assert_eq!(l_ptr.len(), 18);n/// assert_eq!(&l_ptr[..2], '0x');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Pointer {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `e` formatting.n///n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notationn///n/// assert_eq!(format!('{:e}', x), '4.2e1');n/// ```n///n/// Implementing `LowerExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:e}', l),n/// 'l in scientific notation is: 1e2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05e}', l),n/// 'l in scientific notation is: 001e2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `E` formatting.n///n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notationn///n/// assert_eq!(format!('{:E}', x), '4.2E1');n/// ```n///n/// Implementing `UpperExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:E}', l),n/// 'l in scientific notation is: 1E2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05E}', l),n/// 'l in scientific notation is: 001E2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// The `write` function takes an output stream, and an `Arguments` structn/// that can be precompiled with the `format_args!` macro.n///n/// The arguments will be formatted according to the specified format stringn/// into the output stream provided.n///n/// # Examplesn///n/// Basic usage:n///n/// ```n/// use std::fmt;n///n/// let mut output = String::new();n/// fmt::write(&mut output, format_args!('Hello {}!', 'world'))n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// Please note that using [`write!`] might be preferable. Example:n///n/// ```n/// use std::fmt::Write;n///n/// let mut output = String::new();n/// write!(&mut output, 'Hello {}!', 'world')n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// [`write!`]: ../../std/macro.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {n let mut formatter = Formatter {n flags: 0,n width: None,n precision: None,n buf: output,n align: rt::v1::Alignment::Unknown,n fill: ' ',n };nn let mut idx = 0;nn match args.fmt {n None => {n // We can use default formatting parameters for all arguments.n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n (arg.formatter)(arg.value, &mut formatter)?;n idx += 1;n }n }n Some(fmt) => {n // Every spec has a corresponding argument that is preceded byn // a string piece.n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n run(&mut formatter, arg, &args.args)?;n idx += 1;n }n }n }nn // There can be only one trailing string piece left.n if let Some(piece) = args.pieces.get(idx) {n formatter.buf.write_str(*piece)?;n }nn Ok(())n}nnfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {n fmt.fill = arg.format.fill;n fmt.align = arg.format.align;n fmt.flags = arg.format.flags;n fmt.width = getcount(args, &arg.format.width);n fmt.precision = getcount(args, &arg.format.precision);nn // Extract the correct argumentn let value = args[arg.position];nn // Then actually do some printingn (value.formatter)(value.value, fmt)n}nnfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {n match *cnt {n rt::v1::Count::Is(n) => Some(n),n rt::v1::Count::Implied => None,n rt::v1::Count::Param(i) => args[i].as_usize(),n }n}nn/// Padding after the end of something. Returned by `Formatter::padding`.n#[must_use = 'don't forget to write the post padding']nstruct PostPadding {n fill: char,n padding: usize,n}nnimpl PostPadding {n fn new(fill: char, padding: usize) -> PostPadding {n PostPadding { fill, padding }n }nn /// Write this post padding.n fn write(self, buf: &mut dyn Write) -> Result {n for _ in 0..self.padding {n buf.write_char(self.fill)?;n }n Ok(())n }n}nnimpl<'a> Formatter<'a> {n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>n wheren 'b: 'c,n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),n {n Formatter {n // We want to change thisn buf: wrap(self.buf),nn // And preserve thesen flags: self.flags,n fill: self.fill,n align: self.align,n width: self.width,n precision: self.precision,n }n }nn // Helper methods used for padding and processing formatting arguments thatn // all formatting traits can use.nn /// Performs the correct padding for an integer which has already beenn /// emitted into a str. The str should *not* contain the sign for then /// integer, that will be added by this method.n ///n /// # Argumentsn ///n /// * is_nonnegative - whether the original integer was either positive or zero.n /// * prefix - if the '#' character (Alternate) is provided, thisn /// is the prefix to put in front of the number.n /// * buf - the byte array that the number has been formatted inton ///n /// This function will correctly account for the flags provided as well asn /// the minimum width. It will not take precision into account.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo { nb: i32 };n ///n /// impl Foo {n /// fn new(nb: i32) -> Foo {n /// Foo {n /// nb,n /// }n /// }n /// }n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// // We need to remove '-' from the number output.n /// let tmp = self.nb.abs().to_string();n ///n /// formatter.pad_integral(self.nb > 0, 'Foo ', &tmp)n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo::new(2)), '2');n /// assert_eq!(&format!('{}', Foo::new(-1)), '-1');n /// assert_eq!(&format!('{:#}', Foo::new(-1)), '-Foo 1');n /// assert_eq!(&format!('{:0>#8}', Foo::new(-1)), '00-Foo 1');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {n let mut width = buf.len();nn let mut sign = None;n if !is_nonnegative {n sign = Some('-');n width += 1;n } else if self.sign_plus() {n sign = Some('+');n width += 1;n }nn let prefix = if self.alternate() {n width += prefix.chars().count();n Some(prefix)n } else {n Nonen };nn // Writes the sign if it exists, and then the prefix if it was requestedn #[inline(never)]n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {n if let Some(c) = sign {n f.buf.write_char(c)?;n }n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }n }nn // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If there's no minimum length requirements then we can justn // write the bytes.n None => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // Check if we're over the minimum width, if so then we can alson // just write the bytes.n Some(min) if width >= min => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // The sign and prefix goes before the padding if the fill charactern // is zeron Some(min) if self.sign_aware_zero_pad() => {n let old_fill = crate::mem::replace(&mut self.fill, '0');n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);n write_prefix(self, sign, prefix)?;n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)?;n self.fill = old_fill;n self.align = old_align;n Ok(())n }n // Otherwise, the sign and prefix goes after the paddingn Some(min) => {n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)n }n }n }nn /// This function takes a string slice and emits it to the internal buffern /// after applying the relevant formatting flags specified. The flagsn /// recognized for generic strings are:n ///n /// * width - the minimum width of what to emitn /// * fill/align - what to emit and where to emit it if the stringn /// provided needs to be paddedn /// * precision - the maximum length to emit, the string is truncated if itn /// is longer than this lengthn ///n /// Notably this function ignores the `flag` parameters.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.pad('Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{:<4}', Foo), 'Foo ');n /// assert_eq!(&format!('{:0>4}', Foo), '0Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad(&mut self, s: &str) -> Result {n // Make sure there's a fast path up frontn if self.width.is_none() && self.precision.is_none() {n return self.buf.write_str(s);n }n // The `precision` field can be interpreted as a `max-width` for then // string being formatted.n let s = if let Some(max) = self.precision {n // If our string is longer that the precision, then we must haven // truncation. However other flags like `fill`, `width` and `align`n // must act as always.n if let Some((i, _)) = s.char_indices().nth(max) {n // LLVM here can't prove that `..i` won't panic `&s[..i]`, butn // we know that it can't panic. Use `get` + `unwrap_or` to avoidn // `unsafe` and otherwise don't emit any panic-related coden // here.n s.get(..i).unwrap_or(&s)n } else {n &sn }n } else {n &sn };n // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If we're under the maximum length, and there's no minimum lengthn // requirements, then we can just emit the stringn None => self.buf.write_str(s),n // If we're under the maximum width, check if we're over the minimumn // width, if so it's as easy as just emitting the string.n Some(width) if s.chars().count() >= width => self.buf.write_str(s),n // If we're under both the maximum and the minimum width, then filln // up the minimum width with the specified string + some alignment.n Some(width) => {n let align = rt::v1::Alignment::Left;n let post_padding = self.padding(width - s.chars().count(), align)?;n self.buf.write_str(s)?;n post_padding.write(self.buf)n }n }n }nn /// Write the pre-padding and return the unwritten post-padding. Callers aren /// responsible for ensuring post-padding is written after the thing that isn /// being padded.n fn padding(n &mut self,n padding: usize,n default: rt::v1::Alignment,n ) -> result::Result {n let align = match self.align {n rt::v1::Alignment::Unknown => default,n _ => self.align,n };nn let (pre_pad, post_pad) = match align {n rt::v1::Alignment::Left => (0, padding),n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),n };nn for _ in 0..pre_pad {n self.buf.write_char(self.fill)?;n }nn Ok(PostPadding::new(self.fill, post_pad))n }nn /// Takes the formatted parts and applies the padding.n /// Assumes that the caller already has rendered the parts with required precision,n /// so that `self.precision` can be ignored.n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n if let Some(mut width) = self.width {n // for the sign-aware zero padding, we render the sign first andn // behave as if we had no sign from the beginning.n let mut formatted = formatted.clone();n let old_fill = self.fill;n let old_align = self.align;n let mut align = old_align;n if self.sign_aware_zero_pad() {n // a sign always goes firstn let sign = formatted.sign;n self.buf.write_str(sign)?;nn // remove the sign from the formatted partsn formatted.sign = '';n width = width.saturating_sub(sign.len());n align = rt::v1::Alignment::Right;n self.fill = '0';n self.align = rt::v1::Alignment::Right;n }nn // remaining parts go through the ordinary padding process.n let len = formatted.len();n let ret = if width <= len {n // no paddingn self.write_formatted_parts(&formatted)n } else {n let post_padding = self.padding(width - len, align)?;n self.write_formatted_parts(&formatted)?;n post_padding.write(self.buf)n };n self.fill = old_fill;n self.align = old_align;n retn } else {n // this is the common case and we take a shortcutn self.write_formatted_parts(formatted)n }n }nn fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.n // It's safe to use for `flt2dec::Part::Num` since every char `c` is betweenn // `b'0'` and `b'9'`, which means `s` is valid UTF-8.n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`n // since `buf` should be plain ASCII, but it's possible for someone to passn // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is an // public function.n // FIXME: Determine whether this could result in UB.n buf.write_str(unsafe { str::from_utf8_unchecked(s) })n }nn if !formatted.sign.is_empty() {n self.buf.write_str(formatted.sign)?;n }n for part in formatted.parts {n match *part {n flt2dec::Part::Zero(mut nzeroes) => {n const ZEROES: &str = // 64 zeroesn '0000000000000000000000000000000000000000000000000000000000000000';n while nzeroes > ZEROES.len() {n self.buf.write_str(ZEROES)?;n nzeroes -= ZEROES.len();n }n if nzeroes > 0 {n self.buf.write_str(&ZEROES[..nzeroes])?;n }n }n flt2dec::Part::Num(mut v) => {n let mut s = [0; 5];n let len = part.len();n for c in s[..len].iter_mut().rev() {n *c = b'0' + (v % 10) as u8;n v /= 10;n }n write_bytes(self.buf, &s[..len])?;n }n flt2dec::Part::Copy(buf) => {n write_bytes(self.buf, buf)?;n }n }n }n Ok(())n }nn /// Writes some data to the underlying buffer contained within thisn /// formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_str('Foo')n /// // This is equivalent to:n /// // write!(formatter, 'Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo), 'Foo');n /// assert_eq!(&format!('{:0>8}', Foo), 'Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_str(&mut self, data: &str) -> Result {n self.buf.write_str(data)n }nn /// Writes some formatted information into this instance.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_fmt(format_args!('Foo {}', self.0))n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo(-1)), 'Foo -1');n /// assert_eq!(&format!('{:0>8}', Foo(2)), 'Foo 2');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {n write(self.buf, fmt)n }nn /// Flags for formattingn #[stable(feature = 'rust1', since = '1.0.0')]n #[rustc_deprecated(n since = '1.24.0',n reason = 'use the `sign_plus`, `sign_minus`, `alternate`, n or `sign_aware_zero_pad` methods instead'n )]n pub fn flags(&self) -> u32 {n self.flagsn }nn /// Character used as 'fill' whenever there is alignment.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let c = formatter.fill();n /// if let Some(width) = formatter.width() {n /// for _ in 0..width {n /// write!(formatter, '{}', c)?;n /// }n /// Ok(())n /// } else {n /// write!(formatter, '{}', c)n /// }n /// }n /// }n ///n /// // We set alignment to the left with '>'.n /// assert_eq!(&format!('{:G>3}', Foo), 'GGG');n /// assert_eq!(&format!('{:t>6}', Foo), 'tttttt');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn fill(&self) -> char {n self.filln }nn /// Flag indicating what form of alignment was requested.n ///n /// # Examplesn ///n /// ```n /// extern crate core;n ///n /// use std::fmt::{self, Alignment};n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let s = if let Some(s) = formatter.align() {n /// match s {n /// Alignment::Left => 'left',n /// Alignment::Right => 'right',n /// Alignment::Center => 'center',n /// }n /// } else {n /// 'into the void'n /// };n /// write!(formatter, '{}', s)n /// }n /// }n ///n /// assert_eq!(&format!('{:<}', Foo), 'left');n /// assert_eq!(&format!('{:>}', Foo), 'right');n /// assert_eq!(&format!('{:^}', Foo), 'center');n /// assert_eq!(&format!('{}', Foo), 'into the void');n /// ```n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n pub fn align(&self) -> Option {n match self.align {n rt::v1::Alignment::Left => Some(Alignment::Left),n rt::v1::Alignment::Right => Some(Alignment::Right),n rt::v1::Alignment::Center => Some(Alignment::Center),n rt::v1::Alignment::Unknown => None,n }n }nn /// Optionally specified integer width that the output should be.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(width) = formatter.width() {n /// // If we received a width, we use itn /// write!(formatter, '{:width$}', &format!('Foo({})', self.0), width = width)n /// } else {n /// // Otherwise we do nothing specialn /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:10}', Foo(23)), 'Foo(23) ');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn width(&self) -> Option {n self.widthn }nn /// Optionally specified precision for numeric types. Alternatively, then /// maximum width for string types.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(f32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(precision) = formatter.precision() {n /// // If we received a precision, we use it.n /// write!(formatter, 'Foo({1:.*})', precision, self.0)n /// } else {n /// // Otherwise we default to 2.n /// write!(formatter, 'Foo({:.2})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:.4}', Foo(23.2)), 'Foo(23.2000)');n /// assert_eq!(&format!('{}', Foo(23.2)), 'Foo(23.20)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn precision(&self) -> Option {n self.precisionn }nn /// Determines if the `+` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_plus() {n /// write!(formatter,n /// 'Foo({}{})',n /// if self.0 < 0 { '-' } else { '+' },n /// self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:+}', Foo(23)), 'Foo(+23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_plus(&self) -> bool {n self.flags & (1 << FlagV1::SignPlus as u32) != 0n }nn /// Determines if the `-` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_minus() {n /// // You want a minus sign? Have one!n /// write!(formatter, '-Foo({})', self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:-}', Foo(23)), '-Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_minus(&self) -> bool {n self.flags & (1 << FlagV1::SignMinus as u32) != 0n }nn /// Determines if the `#` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.alternate() {n /// write!(formatter, 'Foo({})', self.0)n /// } else {n /// write!(formatter, '{}', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:#}', Foo(23)), 'Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn alternate(&self) -> bool {n self.flags & (1 << FlagV1::Alternate as u32) != 0n }nn /// Determines if the `0` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// assert!(formatter.sign_aware_zero_pad());n /// assert_eq!(formatter.width(), Some(4));n /// // We ignore the formatter's options.n /// write!(formatter, '{}', self.0)n /// }n /// }n ///n /// assert_eq!(&format!('{:04}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_aware_zero_pad(&self) -> bool {n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0n }nn // FIXME: Decide what public API we want for these two flags.n // https://github.com/rust-lang/rust/issues/48584n fn debug_lower_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0n }nn fn debug_upper_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0n }nn /// Creates a [`DebugStruct`] builder designed to assist with creation ofn /// [`fmt::Debug`] implementations for structs.n ///n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.htmln /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.htmln ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::net::Ipv4Addr;n ///n /// struct Foo {n /// bar: i32,n /// baz: String,n /// addr: Ipv4Addr,n /// }n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_struct('Foo')n /// .field('bar', &self.bar)n /// .field('baz', &self.baz)n /// .field('addr', &format_args!('{}', self.addr))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo { bar: 10, baz: 'Hello World', addr: 127.0.0.1 }',n /// format!('{:?}', Foo {n /// bar: 10,n /// baz: 'Hello World'.to_string(),n /// addr: Ipv4Addr::new(127, 0, 0, 1),n /// })n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {n builders::debug_struct_new(self, name)n }nn /// Creates a `DebugTuple` builder designed to assist with creation ofn /// `fmt::Debug` implementations for tuple structs.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::marker::PhantomData;n ///n /// struct Foo(i32, String, PhantomData);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_tuple('Foo')n /// .field(&self.0)n /// .field(&self.1)n /// .field(&format_args!('_'))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo(10, 'Hello', _)',n /// format!('{:?}', Foo(10, 'Hello'.to_string(), PhantomData::))n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {n builders::debug_tuple_new(self, name)n }nn /// Creates a `DebugList` builder designed to assist with creation ofn /// `fmt::Debug` implementations for list-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_list().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '[10, 11]');n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {n builders::debug_list_new(self)n }nn /// Creates a `DebugSet` builder designed to assist with creation ofn /// `fmt::Debug` implementations for set-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '{10, 11}');n /// ```n ///n /// [`format_args!`]: ../../std/macro.format_args.htmln ///n /// In this more complex example, we use [`format_args!`] and `.debug_set()`n /// to build a list of match arms:n ///n /// ```rustn /// use std::fmt;n ///n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);n ///n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>n /// wheren /// L: 'a + fmt::Debug, R: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// L::fmt(&(self.0).0, fmt)?;n /// fmt.write_str(' => ')?;n /// R::fmt(&(self.0).1, fmt)n /// }n /// }n ///n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>n /// wheren /// K: 'a + fmt::Debug, V: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set()n /// .entries(self.0.iter().map(Arm))n /// .entry(&Arm(&(format_args!('_'), &self.1)))n /// .finish()n /// }n /// }n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {n builders::debug_set_new(self)n }nn /// Creates a `DebugMap` builder designed to assist with creation ofn /// `fmt::Debug` implementations for map-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec<(String, i32)>);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()n /// }n /// }n ///n /// assert_eq!(n /// format!('{:?}', Foo(vec![('A'.to_string(), 10), ('B'.to_string(), 11)])),n /// r#'{'A': 10, 'B': 11}'#n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {n builders::debug_map_new(self)n }n}nn#[stable(since = '1.2.0', feature = 'formatter_write')]nimpl Write for Formatter<'_> {n fn write_str(&mut self, s: &str) -> Result {n self.buf.write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n self.buf.write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n write(self.buf, args)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Error {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt('an error occurred when formatting an argument', f)n }n}nn// Implementations of the core formatting traitsnnmacro_rules! fmt_refs {n ($($tr:ident),*) => {n $(n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n )*n }n}nnfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Debug for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Display for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for bool {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(self, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for bool {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(if *self { 'true' } else { 'false' }, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n let mut from = 0;n for (i, c) in self.char_indices() {n let esc = c.escape_debug();n // If char needs escaping, flush backlog so far and write, else skipn if esc.len() != 1 {n f.write_str(&self[from..i])?;n for c in esc {n f.write_char(c)?;n }n from = i + c.len_utf8();n }n }n f.write_str(&self[from..])?;n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad(self)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n for c in self.escape_debug() {n f.write_char(c)?n }n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n if f.width.is_none() && f.precision.is_none() {n f.write_char(*self)n } else {n f.pad(self.encode_utf8(&mut [0; 4]))n }n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let old_width = f.width;n let old_flags = f.flags;nn // The alternate flag is already treated by LowerHex as being special-n // it denotes whether to prefix with 0x. We use it to work out whethern // or not to zero extend, and then unconditionally set it to get then // prefix.n if f.alternate() {n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);nn if f.width.is_none() {n f.width = Some(((mem::size_of::() * 8) / 4) + 2);n }n }n f.flags |= 1 << (FlagV1::Alternate as u32);nn let ret = LowerHex::fmt(&(*self as *const () as usize), f);nn f.width = old_width;n f.flags = old_flags;nn retn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(&**self as *const T), f)n }n}nn// Implementation of Display/Debug for various core typesnn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}nnmacro_rules! peel {n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })n}nnmacro_rules! tuple {n () => ();n ( $($name:ident,)+ ) => (n #[stable(feature = 'rust1', since = '1.0.0')]n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {n #[allow(non_snake_case, unused_assignments)]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let mut builder = f.debug_tuple('');n let ($(ref $name,)+) = *self;n $(n builder.field(&$name);n )+nn builder.finish()n }n }n peel! { $($name,)+ }n )n}nnmacro_rules! last_type {n ($a:ident,) => { $a };n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };n}nntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for [T] {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.debug_list().entries(self.iter()).finish()n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for () {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('()')n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for PhantomData {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('PhantomData')n }n}''''//! Utilities for formatting and printing strings.nn#![stable(feature = 'rust1', since = '1.0.0')]nnuse crate::cell::{Cell, Ref, RefCell, RefMut, UnsafeCell};nuse crate::marker::PhantomData;nuse crate::mem;nuse crate::num::flt2dec;nuse crate::ops::Deref;nuse crate::result;nuse crate::str;nnmod builders;nmod float;nmod num;nn#[stable(feature = 'fmt_flags_align', since = '1.28.0')]n/// Possible alignments returned by `Formatter::align`n#[derive(Debug)]npub enum Alignment {n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be left-aligned.n Left,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be right-aligned.n Right,n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n /// Indication that contents should be center-aligned.n Center,n}nn#[stable(feature = 'debug_builders', since = '1.2.0')]npub use self::builders::{DebugList, DebugMap, DebugSet, DebugStruct, DebugTuple};nn#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub mod rt {n pub mod v1;n}nn/// The type returned by formatter methods.n///n/// # Examplesn///n/// ```n/// use std::fmt;n///n/// #[derive(Debug)]n/// struct Triangle {n/// a: f32,n/// b: f32,n/// c: f32n/// }n///n/// impl fmt::Display for Triangle {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {}, {})', self.a, self.b, self.c)n/// }n/// }n///n/// let pythagorean_triple = Triangle { a: 3.0, b: 4.0, c: 5.0 };n///n/// assert_eq!(format!('{}', pythagorean_triple), '(3, 4, 5)');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub type Result = result::Result<(), Error>;nn/// The error type which is returned from formatting a message into a stream.n///n/// This type does not support transmission of an error other than that an errorn/// occurred. Any extra information must be arranged to be transmitted throughn/// some other means.n///n/// An important thing to remember is that the type `fmt::Error` should not ben/// confused with [`std::io::Error`] or [`std::error::Error`], which you may alson/// have in scope.n///n/// [`std::io::Error`]: ../../std/io/struct.Error.htmln/// [`std::error::Error`]: ../../std/error/trait.Error.htmln///n/// # Examplesn///n/// ```rustn/// use std::fmt::{self, write};n///n/// let mut output = String::new();n/// if let Err(fmt::Error) = write(&mut output, format_args!('Hello {}!', 'world')) {n/// panic!('An error occurred');n/// }n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]npub struct Error;nn/// A collection of methods that are required to format a message into a stream.n///n/// This trait is the type which this modules requires when formattingn/// information. This is similar to the standard library's [`io::Write`] trait,n/// but it is only intended for use in libcore.n///n/// This trait should generally not be implemented by consumers of the standardn/// library. The [`write!`] macro accepts an instance of [`io::Write`], and then/// [`io::Write`] trait is favored over implementing this trait.n///n/// [`write!`]: ../../std/macro.write.htmln/// [`io::Write`]: ../../std/io/trait.Write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Write {n /// Writes a string slice into this writer, returning whether the writen /// succeeded.n ///n /// This method can only succeed if the entire string slice was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_str(s)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'hola').unwrap();n /// assert_eq!(&buf, 'hola');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_str(&mut self, s: &str) -> Result;nn /// Writes a [`char`] into this writer, returning whether the write succeeded.n ///n /// A single [`char`] may be encoded as more than one byte.n /// This method can only succeed if the entire byte sequence was successfullyn /// written, and this method will not return until all data has beenn /// written or an error occurs.n ///n /// # Errorsn ///n /// This function will return an instance of [`Error`] on error.n ///n /// [`char`]: ../../std/primitive.char.htmln /// [`Error`]: struct.Error.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, c: char) -> Result<(), Error> {n /// f.write_char(c)n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'a').unwrap();n /// writer(&mut buf, 'b').unwrap();n /// assert_eq!(&buf, 'ab');n /// ```n #[stable(feature = 'fmt_write_char', since = '1.1.0')]n fn write_char(&mut self, c: char) -> Result {n self.write_str(c.encode_utf8(&mut [0; 4]))n }nn /// Glue for usage of the [`write!`] macro with implementors of this trait.n ///n /// This method should generally not be invoked manually, but rather throughn /// the [`write!`] macro itself.n ///n /// [`write!`]: ../../std/macro.write.htmln ///n /// # Examplesn ///n /// ```n /// use std::fmt::{Error, Write};n ///n /// fn writer(f: &mut W, s: &str) -> Result<(), Error> {n /// f.write_fmt(format_args!('{}', s))n /// }n ///n /// let mut buf = String::new();n /// writer(&mut buf, 'world').unwrap();n /// assert_eq!(&buf, 'world');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn write_fmt(mut self: &mut Self, args: Arguments<'_>) -> Result {n write(&mut self, args)n }n}nn#[stable(feature = 'fmt_write_blanket_impl', since = '1.4.0')]nimpl Write for &mut W {n fn write_str(&mut self, s: &str) -> Result {n (**self).write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n (**self).write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n (**self).write_fmt(args)n }n}nn/// Configuration for formatting.n///n/// A `Formatter` represents various options related to formatting. Users do notn/// construct `Formatter`s directly; a mutable reference to one is passed ton/// the `fmt` method of all formatting traits, like [`Debug`] and [`Display`].n///n/// To interact with a `Formatter`, you'll call various methods to change then/// various options related to formatting. For examples, please see then/// documentation of the methods defined on `Formatter` below.n///n/// [`Debug`]: trait.Debug.htmln/// [`Display`]: trait.Display.htmln#[allow(missing_debug_implementations)]n#[stable(feature = 'rust1', since = '1.0.0')]npub struct Formatter<'a> {n flags: u32,n fill: char,n align: rt::v1::Alignment,n width: Option,n precision: Option,nn buf: &'a mut (dyn Write + 'a),n}nn// NB. Argument is essentially an optimized partially applied formatting function,n// equivalent to `exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result`.nnextern 'C' {n type Opaque;n}nn/// This struct represents the generic 'argument' which is taken by the Xprintfn/// family of functions. It contains a function to format the given value. Atn/// compile time it is ensured that the function and the value have the correctn/// types, and then this struct is used to canonicalize arguments to one type.n#[derive(Copy, Clone)]n#[allow(missing_debug_implementations)]n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n#[doc(hidden)]npub struct ArgumentV1<'a> {n value: &'a Opaque,n formatter: fn(&Opaque, &mut Formatter<'_>) -> Result,n}nn// This guarantees a single stable value for the function pointer associated withn// indices/counts in the formatting infrastructure.n//n// Note that a function defined as such would not be correct as functions aren// always tagged unnamed_addr with the current lowering to LLVM IR, so theirn// address is not considered important to LLVM and as such the as_usize castn// could have been miscompiled. In practice, we never call as_usize on non-usizen// containing data (as a matter of static generation of the formattingn// arguments), so this is merely an additional check.n//n// We primarily want to ensure that the function pointer at `USIZE_MARKER` hasn// an address corresponding *only* to functions that also take `&usize` as theirn// first argument. The read_volatile here ensures that we can safely ready out an// usize from the passed reference and that this address does not point at an// non-usize taking function.n#[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]nstatic USIZE_MARKER: fn(&usize, &mut Formatter<'_>) -> Result = |ptr, _| {n // SAFETY: ptr is a referencen let _v: usize = unsafe { crate::ptr::read_volatile(ptr) };n loop {}n};nnimpl<'a> ArgumentV1<'a> {n #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new<'b, T>(x: &'b T, f: fn(&T, &mut Formatter<'_>) -> Result) -> ArgumentV1<'b> {n // SAFETY: `mem::transmute(x)` is safe becausen // 1. `&'b T` keeps the lifetime it originated with `'b`n // (so as to not have an unbounded lifetime)n // 2. `&'b T` and `&'b Opaque` have the same memory layoutn // (when `T` is `Sized`, as it is here)n // `mem::transmute(f)` is safe since `fn(&T, &mut Formatter<'_>) -> Result`n // and `fn(&Opaque, &mut Formatter<'_>) -> Result` have the same ABIn // (as long as `T` is `Sized`)n unsafe { ArgumentV1 { formatter: mem::transmute(f), value: mem::transmute(x) } }n }nn #[doc(hidden)]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn from_usize(x: &usize) -> ArgumentV1<'_> {n ArgumentV1::new(x, USIZE_MARKER)n }nn fn as_usize(&self) -> Option {n if self.formatter as usize == USIZE_MARKER as usize {n // SAFETY: The `formatter` field is only set to USIZE_MARKER ifn // the value is a usize, so this is safen Some(unsafe { *(self.value as *const _ as *const usize) })n } else {n Nonen }n }n}nn// flags available in the v1 format of format_argsn#[derive(Copy, Clone)]nenum FlagV1 {n SignPlus,n SignMinus,n Alternate,n SignAwareZeroPad,n DebugLowerHex,n DebugUpperHex,n}nnimpl<'a> Arguments<'a> {n /// When using the format_args!() macro, this function is used to generate then /// Arguments structure.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1(pieces: &'a [&'a str], args: &'a [ArgumentV1<'a>]) -> Arguments<'a> {n Arguments { pieces, fmt: None, args }n }nn /// This function is used to specify nonstandard formatting parameters.n /// The `pieces` array must be at least as long as `fmt` to constructn /// a valid Arguments structure. Also, any `Count` within `fmt` that isn /// `CountIsParam` or `CountIsNextParam` has to point to an argumentn /// created with `argumentusize`. However, failing to do so doesn't causen /// unsafety, but will ignore invalid .n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn new_v1_formatted(n pieces: &'a [&'a str],n args: &'a [ArgumentV1<'a>],n fmt: &'a [rt::v1::Argument],n ) -> Arguments<'a> {n Arguments { pieces, fmt: Some(fmt), args }n }nn /// Estimates the length of the formatted text.n ///n /// This is intended to be used for setting initial `String` capacityn /// when using `format!`. Note: this is neither the lower nor upper bound.n #[doc(hidden)]n #[inline]n #[unstable(feature = 'fmt_internals', reason = 'internal to format_args!', issue = 'none')]n pub fn estimated_capacity(&self) -> usize {n let pieces_length: usize = self.pieces.iter().map(|x| x.len()).sum();nn if self.args.is_empty() {n pieces_lengthn } else if self.pieces[0] == '' && pieces_length < 16 {n // If the format string starts with an argument,n // don't preallocate anything, unless lengthn // of pieces is significant.n 0n } else {n // There are some arguments, so any additional pushn // will reallocate the string. To avoid that,n // we're 'pre-doubling' the capacity here.n pieces_length.checked_mul(2).unwrap_or(0)n }n }n}nn/// This structure represents a safely precompiled version of a format stringn/// and its arguments. This cannot be generated at runtime because it cannotn/// safely be done, so no constructors are given and the fields are privaten/// to prevent modification.n///n/// The [`format_args!`] macro will safely create an instance of this structure.n/// The macro validates the format string at compile-time so usage of then/// [`write`] and [`format`] functions can be safely performed.n///n/// You can use the `Arguments<'a>` that [`format_args!`] returns in `Debug`n/// and `Display` contexts as seen below. The example also shows that `Debug`n/// and `Display` format to the same thing: the interpolated format stringn/// in `format_args!`.n///n/// ```rustn/// let debug = format!('{:?}', format_args!('{} foo {:?}', 1, 2));n/// let display = format!('{}', format_args!('{} foo {:?}', 1, 2));n/// assert_eq!('1 foo 2', display);n/// assert_eq!(display, debug);n/// ```n///n/// [`format_args!`]: ../../std/macro.format_args.htmln/// [`format`]: ../../std/fmt/fn.format.htmln/// [`write`]: ../../std/fmt/fn.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]n#[derive(Copy, Clone)]npub struct Arguments<'a> {n // Format string pieces to print.n pieces: &'a [&'a str],nn // Placeholder specs, or `None` if all specs are default (as in '{}{}').n fmt: Option<&'a [rt::v1::Argument]>,nn // Dynamic arguments for interpolation, to be interleaved with stringn // pieces. (Every argument is preceded by a string piece.)n args: &'a [ArgumentV1<'a>],n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n Display::fmt(self, fmt)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Arguments<'_> {n fn fmt(&self, fmt: &mut Formatter<'_>) -> Result {n write(fmt.buf, *self)n }n}nn/// `?` formatting.n///n/// `Debug` should format the output in a programmer-facing, debugging context.n///n/// Generally speaking, you should just `derive` a `Debug` implementation.n///n/// When used with the alternate format specifier `#?`, the output is pretty-printed.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// This trait can be used with `#[derive]` if all fields implement `Debug`. Whenn/// `derive`d for structs, it will use the name of the `struct`, then `{`, then an/// comma-separated list of each field's name and `Debug` value, then `}`. Forn/// `enum`s, it will use the name of the variant and, if applicable, `(`, then then/// `Debug` values of the fields, then `)`.n///n/// # Stabilityn///n/// Derived `Debug` formats are not stable, and so may change with future Rustn/// versions. Additionally, `Debug` implementations of types provided by then/// standard library (`libstd`, `libcore`, `liballoc`, etc.) are not stable, andn/// may also change with future Rust versions.n///n/// # Examplesn///n/// Deriving an implementation:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// Manually implementing:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Debug for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// f.debug_struct('Point')n/// .field('x', &self.x)n/// .field('y', &self.y)n/// .finish()n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:?}', origin), 'The origin is: Point { x: 0, y: 0 }');n/// ```n///n/// There are a number of helper methods on the [`Formatter`] struct to help you with manualn/// implementations, such as [`debug_struct`].n///n/// `Debug` implementations using either `derive` or the debug builder APIn/// on [`Formatter`] support pretty-printing using the alternate flag: `{:#?}`.n///n/// [`debug_struct`]: ../../std/fmt/struct.Formatter.html#method.debug_structn/// [`Formatter`]: ../../std/fmt/struct.Formatter.htmln///n/// Pretty-printing with `#?`:n///n/// ```n/// #[derive(Debug)]n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {:#?}', origin),n/// 'The origin is: Point {n/// x: 0,n/// y: 0,n/// }');n/// ```nn#[stable(feature = 'rust1', since = '1.0.0')]n#[rustc_on_unimplemented(n on(n crate_local,n label = '`{Self}` cannot be formatted using `{{:?}}`',n note = 'add `#[derive(Debug)]` or manually implement `{Debug}`'n ),n message = '`{Self}` doesn't implement `{Debug}`',n label = '`{Self}` cannot be formatted using `{{:?}}` because it doesn't implement `{Debug}`'n)]n#[doc(alias = '{:?}')]n#[rustc_diagnostic_item = 'debug_trait']npub trait Debug {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Debug for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// f.debug_tuple('')n /// .field(&self.longitude)n /// .field(&self.latitude)n /// .finish()n /// }n /// }n ///n /// let position = Position { longitude: 1.987, latitude: 2.983 };n /// assert_eq!(format!('{:?}', position), '(1.987, 2.983)');n ///n /// assert_eq!(format!('{:#?}', position), '(n /// 1.987,n /// 2.983,n /// )');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn// Separate module to reexport the macro `Debug` from prelude without the trait `Debug`.npub(crate) mod macros {n /// Derive macro generating an impl of the trait `Debug`.n #[rustc_builtin_macro]n #[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n #[allow_internal_unstable(core_intrinsics)]n pub macro Debug($item:item) {n /* compiler built-in */n }n}n#[stable(feature = 'builtin_macro_prelude', since = '1.38.0')]n#[doc(inline)]npub use macros::Debug;nn/// Format trait for an empty format, `{}`.n///n/// `Display` is similar to [`Debug`][debug], but `Display` is for user-facingn/// output, and so cannot be derived.n///n/// [debug]: trait.Debug.htmln///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Implementing `Display` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Point {n/// x: i32,n/// y: i32,n/// }n///n/// impl fmt::Display for Point {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// write!(f, '({}, {})', self.x, self.y)n/// }n/// }n///n/// let origin = Point { x: 0, y: 0 };n///n/// assert_eq!(format!('The origin is: {}', origin), 'The origin is: (0, 0)');n/// ```n#[rustc_on_unimplemented(n on(n _Self = 'std::path::Path',n label = '`{Self}` cannot be formatted with the default formatter; call `.display()` on it',n note = 'call `.display()` or `.to_string_lossy()` to safely print paths, n as they may contain non-Unicode data'n ),n message = '`{Self}` doesn't implement `{Display}`',n label = '`{Self}` cannot be formatted with the default formatter',n note = 'in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead'n)]n#[doc(alias = '{}')]n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Display {n /// Formats the value using the given formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Position {n /// longitude: f32,n /// latitude: f32,n /// }n ///n /// impl fmt::Display for Position {n /// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n /// write!(f, '({}, {})', self.longitude, self.latitude)n /// }n /// }n ///n /// assert_eq!('(1.987, 2.983)',n /// format!('{}', Position { longitude: 1.987, latitude: 2.983, }));n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `o` formatting.n///n/// The `Octal` trait should format its output as a number in base-8.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0o` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '52' in octaln///n/// assert_eq!(format!('{:o}', x), '52');n/// assert_eq!(format!('{:#o}', x), '0o52');n///n/// assert_eq!(format!('{:o}', -16), '37777777760');n/// ```n///n/// Implementing `Octal` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Octal for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Octal::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as octal is: {:o}', l), 'l as octal is: 11');n///n/// assert_eq!(format!('l as octal is: {:#06o}', l), 'l as octal is: 0o0011');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Octal {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `b` formatting.n///n/// The `Binary` trait should format its output as a number in binary.n///n/// For primitive signed integers ([`i8`] to [`i128`], and [`isize`]),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0b` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// # Examplesn///n/// Basic usage with [`i32`]:n///n/// ```n/// let x = 42; // 42 is '101010' in binaryn///n/// assert_eq!(format!('{:b}', x), '101010');n/// assert_eq!(format!('{:#b}', x), '0b101010');n///n/// assert_eq!(format!('{:b}', -16), '11111111111111111111111111110000');n/// ```n///n/// Implementing `Binary` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Binary for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::Binary::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(107);n///n/// assert_eq!(format!('l as binary is: {:b}', l), 'l as binary is: 1101011');n///n/// assert_eq!(n/// format!('l as binary is: {:#032b}', l),n/// 'l as binary is: 0b000000000000000000000001101011'n/// );n/// ```n///n/// [module]: ../../std/fmt/index.htmln/// [`i8`]: ../../std/primitive.i8.htmln/// [`i128`]: ../../std/primitive.i128.htmln/// [`isize`]: ../../std/primitive.isize.htmln/// [`i32`]: ../../std/primitive.i32.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub trait Binary {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `x` formatting.n///n/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`n/// in lower case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2a' in hexn///n/// assert_eq!(format!('{:x}', x), '2a');n/// assert_eq!(format!('{:#x}', x), '0x2a');n///n/// assert_eq!(format!('{:x}', -16), 'fffffff0');n/// ```n///n/// Implementing `LowerHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::LowerHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(9);n///n/// assert_eq!(format!('l as hex is: {:x}', l), 'l as hex is: 9');n///n/// assert_eq!(format!('l as hex is: {:#010x}', l), 'l as hex is: 0x00000009');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `X` formatting.n///n/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`n/// in upper case.n///n/// For primitive signed integers (`i8` to `i128`, and `isize`),n/// negative values are formatted as the two_s complement representation.n///n/// The alternate flag, `#`, adds a `0x` in front of the output.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `i32`:n///n/// ```n/// let x = 42; // 42 is '2A' in hexn///n/// assert_eq!(format!('{:X}', x), '2A');n/// assert_eq!(format!('{:#X}', x), '0x2A');n///n/// assert_eq!(format!('{:X}', -16), 'FFFFFFF0');n/// ```n///n/// Implementing `UpperHex` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperHex for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = self.0;n///n/// fmt::UpperHex::fmt(&val, f) // delegate to i32's implementationn/// }n/// }n///n/// let l = Length(i32::MAX);n///n/// assert_eq!(format!('l as hex is: {:X}', l), 'l as hex is: 7FFFFFFF');n///n/// assert_eq!(format!('l as hex is: {:#010X}', l), 'l as hex is: 0x7FFFFFFF');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperHex {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `p` formatting.n///n/// The `Pointer` trait should format its output as a memory location. This is commonly presentedn/// as hexadecimal.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `&i32`:n///n/// ```n/// let x = &42;n///n/// let address = format!('{:p}', x); // this produces something like '0x7f06092ac6d0'n/// ```n///n/// Implementing `Pointer` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::Pointer for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// // use `as` to convert to a `*const T`, which implements Pointer, which we can usen///n/// let ptr = self as *const Self;n/// fmt::Pointer::fmt(&ptr, f)n/// }n/// }n///n/// let l = Length(42);n///n/// println!('l is in memory here: {:p}', l);n///n/// let l_ptr = format!('{:018p}', l);n/// assert_eq!(l_ptr.len(), 18);n/// assert_eq!(&l_ptr[..2], '0x');n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait Pointer {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `e` formatting.n///n/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2e1' in scientific notationn///n/// assert_eq!(format!('{:e}', x), '4.2e1');n/// ```n///n/// Implementing `LowerExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::LowerExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::LowerExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:e}', l),n/// 'l in scientific notation is: 1e2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05e}', l),n/// 'l in scientific notation is: 001e2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait LowerExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// `E` formatting.n///n/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.n///n/// For more information on formatters, see [the module-level documentation][module].n///n/// [module]: ../../std/fmt/index.htmln///n/// # Examplesn///n/// Basic usage with `f64`:n///n/// ```n/// let x = 42.0; // 42.0 is '4.2E1' in scientific notationn///n/// assert_eq!(format!('{:E}', x), '4.2E1');n/// ```n///n/// Implementing `UpperExp` on a type:n///n/// ```n/// use std::fmt;n///n/// struct Length(i32);n///n/// impl fmt::UpperExp for Length {n/// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n/// let val = f64::from(self.0);n/// fmt::UpperExp::fmt(&val, f) // delegate to f64's implementationn/// }n/// }n///n/// let l = Length(100);n///n/// assert_eq!(n/// format!('l in scientific notation is: {:E}', l),n/// 'l in scientific notation is: 1E2'n/// );n///n/// assert_eq!(n/// format!('l in scientific notation is: {:05E}', l),n/// 'l in scientific notation is: 001E2'n/// );n/// ```n#[stable(feature = 'rust1', since = '1.0.0')]npub trait UpperExp {n /// Formats the value using the given formatter.n #[stable(feature = 'rust1', since = '1.0.0')]n fn fmt(&self, f: &mut Formatter<'_>) -> Result;n}nn/// The `write` function takes an output stream, and an `Arguments` structn/// that can be precompiled with the `format_args!` macro.n///n/// The arguments will be formatted according to the specified format stringn/// into the output stream provided.n///n/// # Examplesn///n/// Basic usage:n///n/// ```n/// use std::fmt;n///n/// let mut output = String::new();n/// fmt::write(&mut output, format_args!('Hello {}!', 'world'))n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// Please note that using [`write!`] might be preferable. Example:n///n/// ```n/// use std::fmt::Write;n///n/// let mut output = String::new();n/// write!(&mut output, 'Hello {}!', 'world')n/// .expect('Error occurred while trying to write in String');n/// assert_eq!(output, 'Hello world!');n/// ```n///n/// [`write!`]: ../../std/macro.write.htmln#[stable(feature = 'rust1', since = '1.0.0')]npub fn write(output: &mut dyn Write, args: Arguments<'_>) -> Result {n let mut formatter = Formatter {n flags: 0,n width: None,n precision: None,n buf: output,n align: rt::v1::Alignment::Unknown,n fill: ' ',n };nn let mut idx = 0;nn match args.fmt {n None => {n // We can use default formatting parameters for all arguments.n for (arg, piece) in args.args.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n (arg.formatter)(arg.value, &mut formatter)?;n idx += 1;n }n }n Some(fmt) => {n // Every spec has a corresponding argument that is preceded byn // a string piece.n for (arg, piece) in fmt.iter().zip(args.pieces.iter()) {n formatter.buf.write_str(*piece)?;n run(&mut formatter, arg, &args.args)?;n idx += 1;n }n }n }nn // There can be only one trailing string piece left.n if let Some(piece) = args.pieces.get(idx) {n formatter.buf.write_str(*piece)?;n }nn Ok(())n}nnfn run(fmt: &mut Formatter<'_>, arg: &rt::v1::Argument, args: &[ArgumentV1<'_>]) -> Result {n fmt.fill = arg.format.fill;n fmt.align = arg.format.align;n fmt.flags = arg.format.flags;n fmt.width = getcount(args, &arg.format.width);n fmt.precision = getcount(args, &arg.format.precision);nn // Extract the correct argumentn let value = args[arg.position];nn // Then actually do some printingn (value.formatter)(value.value, fmt)n}nnfn getcount(args: &[ArgumentV1<'_>], cnt: &rt::v1::Count) -> Option {n match *cnt {n rt::v1::Count::Is(n) => Some(n),n rt::v1::Count::Implied => None,n rt::v1::Count::Param(i) => args[i].as_usize(),n }n}nn/// Padding after the end of something. Returned by `Formatter::padding`.n#[must_use = 'don't forget to write the post padding']nstruct PostPadding {n fill: char,n padding: usize,n}nnimpl PostPadding {n fn new(fill: char, padding: usize) -> PostPadding {n PostPadding { fill, padding }n }nn /// Write this post padding.n fn write(self, buf: &mut dyn Write) -> Result {n for _ in 0..self.padding {n buf.write_char(self.fill)?;n }n Ok(())n }n}nnimpl<'a> Formatter<'a> {n fn wrap_buf<'b, 'c, F>(&'b mut self, wrap: F) -> Formatter<'c>n wheren 'b: 'c,n F: FnOnce(&'b mut (dyn Write + 'b)) -> &'c mut (dyn Write + 'c),n {n Formatter {n // We want to change thisn buf: wrap(self.buf),nn // And preserve thesen flags: self.flags,n fill: self.fill,n align: self.align,n width: self.width,n precision: self.precision,n }n }nn // Helper methods used for padding and processing formatting arguments thatn // all formatting traits can use.nn /// Performs the correct padding for an integer which has already beenn /// emitted into a str. The str should *not* contain the sign for then /// integer, that will be added by this method.n ///n /// # Argumentsn ///n /// * is_nonnegative - whether the original integer was either positive or zero.n /// * prefix - if the '#' character (Alternate) is provided, thisn /// is the prefix to put in front of the number.n /// * buf - the byte array that the number has been formatted inton ///n /// This function will correctly account for the flags provided as well asn /// the minimum width. It will not take precision into account.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo { nb: i32 };n ///n /// impl Foo {n /// fn new(nb: i32) -> Foo {n /// Foo {n /// nb,n /// }n /// }n /// }n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// // We need to remove '-' from the number output.n /// let tmp = self.nb.abs().to_string();n ///n /// formatter.pad_integral(self.nb > 0, 'Foo ', &tmp)n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo::new(2)), '2');n /// assert_eq!(&format!('{}', Foo::new(-1)), '-1');n /// assert_eq!(&format!('{:#}', Foo::new(-1)), '-Foo 1');n /// assert_eq!(&format!('{:0>#8}', Foo::new(-1)), '00-Foo 1');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad_integral(&mut self, is_nonnegative: bool, prefix: &str, buf: &str) -> Result {n let mut width = buf.len();nn let mut sign = None;n if !is_nonnegative {n sign = Some('-');n width += 1;n } else if self.sign_plus() {n sign = Some('+');n width += 1;n }nn let prefix = if self.alternate() {n width += prefix.chars().count();n Some(prefix)n } else {n Nonen };nn // Writes the sign if it exists, and then the prefix if it was requestedn #[inline(never)]n fn write_prefix(f: &mut Formatter<'_>, sign: Option, prefix: Option<&str>) -> Result {n if let Some(c) = sign {n f.buf.write_char(c)?;n }n if let Some(prefix) = prefix { f.buf.write_str(prefix) } else { Ok(()) }n }nn // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If there's no minimum length requirements then we can justn // write the bytes.n None => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // Check if we're over the minimum width, if so then we can alson // just write the bytes.n Some(min) if width >= min => {n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)n }n // The sign and prefix goes before the padding if the fill charactern // is zeron Some(min) if self.sign_aware_zero_pad() => {n let old_fill = crate::mem::replace(&mut self.fill, '0');n let old_align = crate::mem::replace(&mut self.align, rt::v1::Alignment::Right);n write_prefix(self, sign, prefix)?;n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)?;n self.fill = old_fill;n self.align = old_align;n Ok(())n }n // Otherwise, the sign and prefix goes after the paddingn Some(min) => {n let post_padding = self.padding(min - width, rt::v1::Alignment::Right)?;n write_prefix(self, sign, prefix)?;n self.buf.write_str(buf)?;n post_padding.write(self.buf)n }n }n }nn /// This function takes a string slice and emits it to the internal buffern /// after applying the relevant formatting flags specified. The flagsn /// recognized for generic strings are:n ///n /// * width - the minimum width of what to emitn /// * fill/align - what to emit and where to emit it if the stringn /// provided needs to be paddedn /// * precision - the maximum length to emit, the string is truncated if itn /// is longer than this lengthn ///n /// Notably this function ignores the `flag` parameters.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.pad('Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{:<4}', Foo), 'Foo ');n /// assert_eq!(&format!('{:0>4}', Foo), '0Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn pad(&mut self, s: &str) -> Result {n // Make sure there's a fast path up frontn if self.width.is_none() && self.precision.is_none() {n return self.buf.write_str(s);n }n // The `precision` field can be interpreted as a `max-width` for then // string being formatted.n let s = if let Some(max) = self.precision {n // If our string is longer that the precision, then we must haven // truncation. However other flags like `fill`, `width` and `align`n // must act as always.n if let Some((i, _)) = s.char_indices().nth(max) {n // LLVM here can't prove that `..i` won't panic `&s[..i]`, butn // we know that it can't panic. Use `get` + `unwrap_or` to avoidn // `unsafe` and otherwise don't emit any panic-related coden // here.n s.get(..i).unwrap_or(&s)n } else {n &sn }n } else {n &sn };n // The `width` field is more of a `min-width` parameter at this point.n match self.width {n // If we're under the maximum length, and there's no minimum lengthn // requirements, then we can just emit the stringn None => self.buf.write_str(s),n // If we're under the maximum width, check if we're over the minimumn // width, if so it's as easy as just emitting the string.n Some(width) if s.chars().count() >= width => self.buf.write_str(s),n // If we're under both the maximum and the minimum width, then filln // up the minimum width with the specified string + some alignment.n Some(width) => {n let align = rt::v1::Alignment::Left;n let post_padding = self.padding(width - s.chars().count(), align)?;n self.buf.write_str(s)?;n post_padding.write(self.buf)n }n }n }nn /// Write the pre-padding and return the unwritten post-padding. Callers aren /// responsible for ensuring post-padding is written after the thing that isn /// being padded.n fn padding(n &mut self,n padding: usize,n default: rt::v1::Alignment,n ) -> result::Result {n let align = match self.align {n rt::v1::Alignment::Unknown => default,n _ => self.align,n };nn let (pre_pad, post_pad) = match align {n rt::v1::Alignment::Left => (0, padding),n rt::v1::Alignment::Right | rt::v1::Alignment::Unknown => (padding, 0),n rt::v1::Alignment::Center => (padding / 2, (padding + 1) / 2),n };nn for _ in 0..pre_pad {n self.buf.write_char(self.fill)?;n }nn Ok(PostPadding::new(self.fill, post_pad))n }nn /// Takes the formatted parts and applies the padding.n /// Assumes that the caller already has rendered the parts with required precision,n /// so that `self.precision` can be ignored.n fn pad_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n if let Some(mut width) = self.width {n // for the sign-aware zero padding, we render the sign first andn // behave as if we had no sign from the beginning.n let mut formatted = formatted.clone();n let old_fill = self.fill;n let old_align = self.align;n let mut align = old_align;n if self.sign_aware_zero_pad() {n // a sign always goes firstn let sign = formatted.sign;n self.buf.write_str(sign)?;nn // remove the sign from the formatted partsn formatted.sign = '';n width = width.saturating_sub(sign.len());n align = rt::v1::Alignment::Right;n self.fill = '0';n self.align = rt::v1::Alignment::Right;n }nn // remaining parts go through the ordinary padding process.n let len = formatted.len();n let ret = if width <= len {n // no paddingn self.write_formatted_parts(&formatted)n } else {n let post_padding = self.padding(width - len, align)?;n self.write_formatted_parts(&formatted)?;n post_padding.write(self.buf)n };n self.fill = old_fill;n self.align = old_align;n retn } else {n // this is the common case and we take a shortcutn self.write_formatted_parts(formatted)n }n }nn fn write_formatted_parts(&mut self, formatted: &flt2dec::Formatted<'_>) -> Result {n fn write_bytes(buf: &mut dyn Write, s: &[u8]) -> Result {n // SAFETY: This is used for `flt2dec::Part::Num` and `flt2dec::Part::Copy`.n // It's safe to use for `flt2dec::Part::Num` since every char `c` is betweenn // `b'0'` and `b'9'`, which means `s` is valid UTF-8.n // It's also probably safe in practice to use for `flt2dec::Part::Copy(buf)`n // since `buf` should be plain ASCII, but it's possible for someone to passn // in a bad value for `buf` into `flt2dec::to_shortest_str` since it is an // public function.n // FIXME: Determine whether this could result in UB.n buf.write_str(unsafe { str::from_utf8_unchecked(s) })n }nn if !formatted.sign.is_empty() {n self.buf.write_str(formatted.sign)?;n }n for part in formatted.parts {n match *part {n flt2dec::Part::Zero(mut nzeroes) => {n const ZEROES: &str = // 64 zeroesn '0000000000000000000000000000000000000000000000000000000000000000';n while nzeroes > ZEROES.len() {n self.buf.write_str(ZEROES)?;n nzeroes -= ZEROES.len();n }n if nzeroes > 0 {n self.buf.write_str(&ZEROES[..nzeroes])?;n }n }n flt2dec::Part::Num(mut v) => {n let mut s = [0; 5];n let len = part.len();n for c in s[..len].iter_mut().rev() {n *c = b'0' + (v % 10) as u8;n v /= 10;n }n write_bytes(self.buf, &s[..len])?;n }n flt2dec::Part::Copy(buf) => {n write_bytes(self.buf, buf)?;n }n }n }n Ok(())n }nn /// Writes some data to the underlying buffer contained within thisn /// formatter.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_str('Foo')n /// // This is equivalent to:n /// // write!(formatter, 'Foo')n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo), 'Foo');n /// assert_eq!(&format!('{:0>8}', Foo), 'Foo');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_str(&mut self, data: &str) -> Result {n self.buf.write_str(data)n }nn /// Writes some formatted information into this instance.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// formatter.write_fmt(format_args!('Foo {}', self.0))n /// }n /// }n ///n /// assert_eq!(&format!('{}', Foo(-1)), 'Foo -1');n /// assert_eq!(&format!('{:0>8}', Foo(2)), 'Foo 2');n /// ```n #[stable(feature = 'rust1', since = '1.0.0')]n pub fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result {n write(self.buf, fmt)n }nn /// Flags for formattingn #[stable(feature = 'rust1', since = '1.0.0')]n #[rustc_deprecated(n since = '1.24.0',n reason = 'use the `sign_plus`, `sign_minus`, `alternate`, n or `sign_aware_zero_pad` methods instead'n )]n pub fn flags(&self) -> u32 {n self.flagsn }nn /// Character used as 'fill' whenever there is alignment.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let c = formatter.fill();n /// if let Some(width) = formatter.width() {n /// for _ in 0..width {n /// write!(formatter, '{}', c)?;n /// }n /// Ok(())n /// } else {n /// write!(formatter, '{}', c)n /// }n /// }n /// }n ///n /// // We set alignment to the left with '>'.n /// assert_eq!(&format!('{:G>3}', Foo), 'GGG');n /// assert_eq!(&format!('{:t>6}', Foo), 'tttttt');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn fill(&self) -> char {n self.filln }nn /// Flag indicating what form of alignment was requested.n ///n /// # Examplesn ///n /// ```n /// extern crate core;n ///n /// use std::fmt::{self, Alignment};n ///n /// struct Foo;n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// let s = if let Some(s) = formatter.align() {n /// match s {n /// Alignment::Left => 'left',n /// Alignment::Right => 'right',n /// Alignment::Center => 'center',n /// }n /// } else {n /// 'into the void'n /// };n /// write!(formatter, '{}', s)n /// }n /// }n ///n /// assert_eq!(&format!('{:<}', Foo), 'left');n /// assert_eq!(&format!('{:>}', Foo), 'right');n /// assert_eq!(&format!('{:^}', Foo), 'center');n /// assert_eq!(&format!('{}', Foo), 'into the void');n /// ```n #[stable(feature = 'fmt_flags_align', since = '1.28.0')]n pub fn align(&self) -> Option {n match self.align {n rt::v1::Alignment::Left => Some(Alignment::Left),n rt::v1::Alignment::Right => Some(Alignment::Right),n rt::v1::Alignment::Center => Some(Alignment::Center),n rt::v1::Alignment::Unknown => None,n }n }nn /// Optionally specified integer width that the output should be.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(width) = formatter.width() {n /// // If we received a width, we use itn /// write!(formatter, '{:width$}', &format!('Foo({})', self.0), width = width)n /// } else {n /// // Otherwise we do nothing specialn /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:10}', Foo(23)), 'Foo(23) ');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn width(&self) -> Option {n self.widthn }nn /// Optionally specified precision for numeric types. Alternatively, then /// maximum width for string types.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(f32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if let Some(precision) = formatter.precision() {n /// // If we received a precision, we use it.n /// write!(formatter, 'Foo({1:.*})', precision, self.0)n /// } else {n /// // Otherwise we default to 2.n /// write!(formatter, 'Foo({:.2})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:.4}', Foo(23.2)), 'Foo(23.2000)');n /// assert_eq!(&format!('{}', Foo(23.2)), 'Foo(23.20)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn precision(&self) -> Option {n self.precisionn }nn /// Determines if the `+` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_plus() {n /// write!(formatter,n /// 'Foo({}{})',n /// if self.0 < 0 { '-' } else { '+' },n /// self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:+}', Foo(23)), 'Foo(+23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_plus(&self) -> bool {n self.flags & (1 << FlagV1::SignPlus as u32) != 0n }nn /// Determines if the `-` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.sign_minus() {n /// // You want a minus sign? Have one!n /// write!(formatter, '-Foo({})', self.0)n /// } else {n /// write!(formatter, 'Foo({})', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:-}', Foo(23)), '-Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), 'Foo(23)');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_minus(&self) -> bool {n self.flags & (1 << FlagV1::SignMinus as u32) != 0n }nn /// Determines if the `#` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// if formatter.alternate() {n /// write!(formatter, 'Foo({})', self.0)n /// } else {n /// write!(formatter, '{}', self.0)n /// }n /// }n /// }n ///n /// assert_eq!(&format!('{:#}', Foo(23)), 'Foo(23)');n /// assert_eq!(&format!('{}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn alternate(&self) -> bool {n self.flags & (1 << FlagV1::Alternate as u32) != 0n }nn /// Determines if the `0` flag was specified.n ///n /// # Examplesn ///n /// ```n /// use std::fmt;n ///n /// struct Foo(i32);n ///n /// impl fmt::Display for Foo {n /// fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {n /// assert!(formatter.sign_aware_zero_pad());n /// assert_eq!(formatter.width(), Some(4));n /// // We ignore the formatter's options.n /// write!(formatter, '{}', self.0)n /// }n /// }n ///n /// assert_eq!(&format!('{:04}', Foo(23)), '23');n /// ```n #[stable(feature = 'fmt_flags', since = '1.5.0')]n pub fn sign_aware_zero_pad(&self) -> bool {n self.flags & (1 << FlagV1::SignAwareZeroPad as u32) != 0n }nn // FIXME: Decide what public API we want for these two flags.n // https://github.com/rust-lang/rust/issues/48584n fn debug_lower_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugLowerHex as u32) != 0n }nn fn debug_upper_hex(&self) -> bool {n self.flags & (1 << FlagV1::DebugUpperHex as u32) != 0n }nn /// Creates a [`DebugStruct`] builder designed to assist with creation ofn /// [`fmt::Debug`] implementations for structs.n ///n /// [`DebugStruct`]: ../../std/fmt/struct.DebugStruct.htmln /// [`fmt::Debug`]: ../../std/fmt/trait.Debug.htmln ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::net::Ipv4Addr;n ///n /// struct Foo {n /// bar: i32,n /// baz: String,n /// addr: Ipv4Addr,n /// }n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_struct('Foo')n /// .field('bar', &self.bar)n /// .field('baz', &self.baz)n /// .field('addr', &format_args!('{}', self.addr))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo { bar: 10, baz: 'Hello World', addr: 127.0.0.1 }',n /// format!('{:?}', Foo {n /// bar: 10,n /// baz: 'Hello World'.to_string(),n /// addr: Ipv4Addr::new(127, 0, 0, 1),n /// })n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_struct<'b>(&'b mut self, name: &str) -> DebugStruct<'b, 'a> {n builders::debug_struct_new(self, name)n }nn /// Creates a `DebugTuple` builder designed to assist with creation ofn /// `fmt::Debug` implementations for tuple structs.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n /// use std::marker::PhantomData;n ///n /// struct Foo(i32, String, PhantomData);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_tuple('Foo')n /// .field(&self.0)n /// .field(&self.1)n /// .field(&format_args!('_'))n /// .finish()n /// }n /// }n ///n /// assert_eq!(n /// 'Foo(10, 'Hello', _)',n /// format!('{:?}', Foo(10, 'Hello'.to_string(), PhantomData::))n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_tuple<'b>(&'b mut self, name: &str) -> DebugTuple<'b, 'a> {n builders::debug_tuple_new(self, name)n }nn /// Creates a `DebugList` builder designed to assist with creation ofn /// `fmt::Debug` implementations for list-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_list().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '[10, 11]');n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_list<'b>(&'b mut self) -> DebugList<'b, 'a> {n builders::debug_list_new(self)n }nn /// Creates a `DebugSet` builder designed to assist with creation ofn /// `fmt::Debug` implementations for set-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set().entries(self.0.iter()).finish()n /// }n /// }n ///n /// assert_eq!(format!('{:?}', Foo(vec![10, 11])), '{10, 11}');n /// ```n ///n /// [`format_args!`]: ../../std/macro.format_args.htmln ///n /// In this more complex example, we use [`format_args!`] and `.debug_set()`n /// to build a list of match arms:n ///n /// ```rustn /// use std::fmt;n ///n /// struct Arm<'a, L: 'a, R: 'a>(&'a (L, R));n /// struct Table<'a, K: 'a, V: 'a>(&'a [(K, V)], V);n ///n /// impl<'a, L, R> fmt::Debug for Arm<'a, L, R>n /// wheren /// L: 'a + fmt::Debug, R: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// L::fmt(&(self.0).0, fmt)?;n /// fmt.write_str(' => ')?;n /// R::fmt(&(self.0).1, fmt)n /// }n /// }n ///n /// impl<'a, K, V> fmt::Debug for Table<'a, K, V>n /// wheren /// K: 'a + fmt::Debug, V: 'a + fmt::Debugn /// {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_set()n /// .entries(self.0.iter().map(Arm))n /// .entry(&Arm(&(format_args!('_'), &self.1)))n /// .finish()n /// }n /// }n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_set<'b>(&'b mut self) -> DebugSet<'b, 'a> {n builders::debug_set_new(self)n }nn /// Creates a `DebugMap` builder designed to assist with creation ofn /// `fmt::Debug` implementations for map-like structures.n ///n /// # Examplesn ///n /// ```rustn /// use std::fmt;n ///n /// struct Foo(Vec<(String, i32)>);n ///n /// impl fmt::Debug for Foo {n /// fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {n /// fmt.debug_map().entries(self.0.iter().map(|&(ref k, ref v)| (k, v))).finish()n /// }n /// }n ///n /// assert_eq!(n /// format!('{:?}', Foo(vec![('A'.to_string(), 10), ('B'.to_string(), 11)])),n /// r#'{'A': 10, 'B': 11}'#n /// );n /// ```n #[stable(feature = 'debug_builders', since = '1.2.0')]n pub fn debug_map<'b>(&'b mut self) -> DebugMap<'b, 'a> {n builders::debug_map_new(self)n }n}nn#[stable(since = '1.2.0', feature = 'formatter_write')]nimpl Write for Formatter<'_> {n fn write_str(&mut self, s: &str) -> Result {n self.buf.write_str(s)n }nn fn write_char(&mut self, c: char) -> Result {n self.buf.write_char(c)n }nn fn write_fmt(&mut self, args: Arguments<'_>) -> Result {n write(self.buf, args)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for Error {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt('an error occurred when formatting an argument', f)n }n}nn// Implementations of the core formatting traitsnnmacro_rules! fmt_refs {n ($($tr:ident),*) => {n $(n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n #[stable(feature = 'rust1', since = '1.0.0')]n impl $tr for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result { $tr::fmt(&**self, f) }n }n )*n }n}nnfmt_refs! { Debug, Display, Octal, Binary, LowerHex, UpperHex, LowerExp, UpperExp }nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Debug for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[unstable(feature = 'never_type', issue = '35121')]nimpl Display for ! {n fn fmt(&self, _: &mut Formatter<'_>) -> Result {n *selfn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for bool {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(self, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for bool {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Display::fmt(if *self { 'true' } else { 'false' }, f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n let mut from = 0;n for (i, c) in self.char_indices() {n let esc = c.escape_debug();n // If char needs escaping, flush backlog so far and write, else skipn if esc.len() != 1 {n f.write_str(&self[from..i])?;n for c in esc {n f.write_char(c)?;n }n from = i + c.len_utf8();n }n }n f.write_str(&self[from..])?;n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for str {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad(self)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.write_char(''')?;n for c in self.escape_debug() {n f.write_char(c)?n }n f.write_char(''')n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Display for char {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n if f.width.is_none() && f.precision.is_none() {n f.write_char(*self)n } else {n f.pad(self.encode_utf8(&mut [0; 4]))n }n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let old_width = f.width;n let old_flags = f.flags;nn // The alternate flag is already treated by LowerHex as being special-n // it denotes whether to prefix with 0x. We use it to work out whethern // or not to zero extend, and then unconditionally set it to get then // prefix.n if f.alternate() {n f.flags |= 1 << (FlagV1::SignAwareZeroPad as u32);nn if f.width.is_none() {n f.width = Some(((mem::size_of::() * 8) / 4) + 2);n }n }n f.flags |= 1 << (FlagV1::Alternate as u32);nn let ret = LowerHex::fmt(&(*self as *const () as usize), f);nn f.width = old_width;n f.flags = old_flags;nn retn }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(*self as *const T), f)n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Pointer for &mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(&(&**self as *const T), f)n }n}nn// Implementation of Display/Debug for various core typesnn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *const T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for *mut T {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n Pointer::fmt(self, f)n }n}nnmacro_rules! peel {n ($name:ident, $($other:ident,)*) => (tuple! { $($other,)* })n}nnmacro_rules! tuple {n () => ();n ( $($name:ident,)+ ) => (n #[stable(feature = 'rust1', since = '1.0.0')]n impl<$($name:Debug),+> Debug for ($($name,)+) where last_type!($($name,)+): ?Sized {n #[allow(non_snake_case, unused_assignments)]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n let mut builder = f.debug_tuple('');n let ($(ref $name,)+) = *self;n $(n builder.field(&$name);n )+nn builder.finish()n }n }n peel! { $($name,)+ }n )n}nnmacro_rules! last_type {n ($a:ident,) => { $a };n ($a:ident, $($rest_a:ident,)+) => { last_type!($($rest_a,)+) };n}nntuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for [T] {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.debug_list().entries(self.iter()).finish()n }n}nn#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for () {n #[inline]n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('()')n }n}n#[stable(feature = 'rust1', since = '1.0.0')]nimpl Debug for PhantomData {n fn fmt(&self, f: &mut Formatter<'_>) -> Result {n f.pad('PhantomData')n }n}'n'n'''(''t'e'I''v'i'r''I'''''''d'e'z'i'S' ':'' where Self: Sized''e'd'['m''''#'n'HE'''e'IGHT a''s''V't' u8; // c'I'onv''''en''i''e''''T''''''''''''''''''''''''''''''''''I''''''''''''''''.'e'''r'e'''h'impl Copy for 'I'I''tem''Marker'I' {}'impl PartialEq for'm' ItemMarker'e' {' f't'n eq(&self,'I' other: &Self) -> ''bool { self.ptr == ''other.ptr }'}''' '' 'n'' ''''''''''''''''''''d'e'z'i'S'''''''S'L' ':'f'l'e'S' 'e'r'e'h'w' ' '''q'E'''n'' 'n'n'' ''s'''k'}''''r'o'w' 't'''n'Par''tialEq'''''''a'i't'''r'a'''P''n 'fn eq(&self, other: ''''f'l''''''l'o'o'b''''' 'e'''''''''''''''''''''''''' '''r''''// Blanket implementations for some common builtin types, because its impossiblen// to add these later''''''''''''''''''''''''m'e't'i' 'y'r'e'v'e' 'e'k'a'm'''''''''''''impl ListItem for (X, Y) {}nimpl ListItem for (X, Y, Z) {}nimpl ListItem for Option {}nimpl ListItem for Result {'n'}n''''''''''''''''''''''''&'''''.'1' 'f'o' 'e'z'i's' 'a' 'e'v'a'h'&'''''a' 'g'n'i'h't'y'r'e'v'e' 'e'k''&'a'm''''' 'e's'u'''''''e's''''''''''' '&''h'c'a'e' 'e'k'a'm''impl ListItem for u8 {}nimpl ListItem for i8 {}nimpl ListItem for u16 {}nimpl ListItem for i16 {}nimpl ListIte'impl ListItem for i32 {}'impl ListItem for'''''e'z'i's'u' i32 {}n'n'm'''''e'z'i's'i' for u32 {}nimpl ListItem for i32 {}nimpl ListItem for f32 {}nimpl ListItem for f64 {}'n'n' 'l'l'a' 'e's''&'e'h'T' '''impl ListIte'&'m for () {}'impl'&' ListItem for ('impl ListItem for &i32 {}'impl ListItem for '''''e'z'i's'u'&i32 {}n'n'X,'''''e'z'i's'i' Y) {}'i'&'mpl ListItem for'&' (X, Y, Z) {}'impl Lis'&'tItem for Option {}n'n'&''n''''E' ','T'''''R' ','E'&''''o'''_se'''''''>'E''' ''','''''t'' 'n 'USED'''''d'e's'u''notifications_use''''d''n''(''''del''''t'''e'''u'r't' '=' ')'''''''''i'f'i't'o'n'' const'''n ' foo: bool;' ''T'''''R' ','E''''l'u's'e'R''V'<'o'''_se'''''n''i'''''''''''>'V'n''<'n'o'i't'p'O'''''''Z' ','''''''D'E'S'U''>'Y' ''''d'e's'u'','X'<'''Z' ''','n'''mpl'del''''t'cons''t ''''const notific': bool'ations_use''d: bool ='''''';'e's'l'a'f' true;''''Y' ','''X' Lis'''''t's'n'o''''n'c'tItem for'')'('''n'''' ''u8 {'nimpl ListItem for u8 {}'}n''impl ListItem f'i'''or u8 {''impl ListIt'n 'fn notify_removed(&mut self,'''''''''''''''';')']'m'e't'I'['&''''*' ':'s'm'e't'i'''''''''''''m'e'''n '''''''''''''''';'''','l'o'o'b' ':'o'o'f' 't's'n'o'c' ''t'k''' _' 'em for u16 {}n''}'impl ListItem'i''''s''' f'impl'' ListItem for u32 {}n'or's''' u8 'i'''{}'im's'''pl ListItem''6'1'fn notify_removed(&mut self,'_' items: &[Item]'')'''}'{' ';'''''''''d'e'g'n'a'h'c'_'''' for u8 {}'impl L''2'3''impl ListItem for f32 {''}n'''istIte'n ''''''''''''''_' ','''' 'f'l'e's' 't'u'm'&''''*'('''''''''''''''''d'e'v'o'm'e'r'_'y'f'i't'o'n' 'n'f' 'm for u8 ''4'6'''{'''''2'3'f'''}''n'n'n'n''''''''''''''''''''''''}'{' '8'u' 'r'o'f' 'm'e't'I't's'i'L' 'l'p'm'i'n'.'''''''''''''''''''''''''''''''''''''''''''' 'n'o'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e's'u' 'l'l'a' 'e's'e'h'T' '.'r'e't'a'l' 'e's'e'h't' 'd'd'a' 'o't' 'e'l'b'i's's'o'p'm'i' 's't'i' 'e's'u'a'c'e'b' ',''''''' ';'s'e'p'y't' ''m'o'c' 'e'm'o's''''''''n'i't'l'i'u'b' 'r'o'f' 's'n'o'i't'a't'n'e'm'e'l'p'm'i' 't'e'k'n'a'l'B' '/'/'n'n't'p'''''''''''''>'T'<'''''''''''''''''''T' 'r'o'f' '>'''''e'r'e'h'w''T'''''''''''''}'{' 'd'e'z'i'S' ':'T' '<'''''''''''''' 'r'o'f' 'm'e't'I't's'i'L' 'l'p'm'i''n'n'''.'''r'e'h't'o' '='=' 'r't'p'.'f'l'e's' ''}'{''''S''''''''m'''e'''t'I't's'i'L''ListConfig''''&Rhs) -> bool;' n''o'd' 's't'i'a'r't' 'e'v'i''''''''''' 'l'p'm'i'n'r'e'D' '/'/'n'n''ce.nnpub struct ''''''''m'''l'p'm'i'n'I'e't'''''''e'n 't' '''fn clone('I'&self) -> Sel''''''''''''f'l'e's''''''V'''''}' 'f'l'e's'*' '{''' '''f;''// '''T''''clone''('''m'e't')''''o'l'c''' 'n'f' n''n'o'I''l'C'emMar''''''m'''''''''ListCon'e'fi'>'g''''''''''t''''''m'e'm''t'I't's'i'L' ':''e'I''''n'm'impl Copy for I't'''m'e't''temMarker {}'I''t's'i'L' ':''''>'C'<'C'''''<''''''''m''''''''V'ListConfig'e''''''t's'i'L' ''':''t''>'C'<''''''''T'''''''''Ite''''''n ''''''default(''''''''I'''I'''''''''m'e't'I't's'''i'L'f'l'e'S'''I''''''f'l'E'S' '>'-' '''''''I'''''''''''''''}' ')'('l'l''m'u'e'''t'n'I'''t':'s'''m''i':'L'''m'' 'f':''l'e''e'S' '{''e' ')'I''''t'''f'e'd' ''t'n'f' '''I''}'n'I' '{' '>'C'<'m'''e'''m't'M'I'a't'r'I'''V'''s'k'i'er'''''''L'M'm'e't'''I' 'r'o'f' 't'l'u''T'a'f'e'D' 'l'p'm'i'n'n'''''''''n'n'''''''''''''I'I'temMarke'''}'{' 'r''''''M'm'''e't'I' 'r'o'f' 'y'p'o'C' 'l'p'm'i'n'n''''''''''''ListConfig'''''t's'i'L' ':'' pu'y'I''''b fn null() -> ItemMarke'm'r {'t'n 'I' 't' 's'Ite'i'mMa'm''L'rke' 'r {':' ptr: pt'e'r::null_mu'm't() }n 'm''t'''I'''n 'e' '}n''>'C'e''''' '''_'t'''m's'i'''''''t''f'l'e''''I''e''l'o'o'b'm'''s'''''''''''t'''''''''''''e')'('l'l'u''I'n'_'s'i'.''V'r't''m''t'p'.'f''''.'l'e's'''''e''''''':''''''''''''s'V''t''i':':'r't'T''p'''&''It'I'emMarke'''''>'C'<'r'''''T'I'''b'u''T'''p''<'''Ite'I''''>'C'<'m'V'M'y'arke'''''' ''' '''n''''''''>'I''''C'<''''ItemMarke'''''''T't'u'm'_''n'' 'I''' 'ItemMarke''''''''''''''''null('''' 'I' }''I'n '' '''' '}' ')''''l'u'''n'm'':':''e'r't'p't'''''''I''''n''t'''// 's'I'''''m'''''''i'r'e''t'P'L''t'' ':'' 'I''r't'p''t':'' ''/'s'/ '{' ''i'r'''''''L'M'm'e''' '// 'm''t'I':'' 'e''{' 'r''''t''I'''m'e''I't'I' '>'-'t'' ')'(''''s'''''(')'f'i''''''l'l''L'u'n'I'' '' '''}''n ':''n '// ' ' '{' 'r'''''m'e't'I' 'l''_'p'm'i''''n'n'n'ke'_'r<'a, C: ListCo'I'nfi'// 'g>'// ' {n ptr: *mut Node,n _phantom: PhantomData<&'a Sk''ipList>n}nn/// The whole list i'''''ListConfig''''''o't's'i'L' ':'C''''''>'m'e't'I'<'s configured through a single generic trait parameternpub trait ''ListConf' '// ''''''''''''''''''''''''''''''t''' /// To turn off bookkeeping rela''':':'C't''ed'pub(super) ' t' '' // fn not'C'';''''''// ''''''''''''''''';'y'''''''''ListConfig'''''t's'i'L' ':''>'''''')'(''''''''NoNotif'''' ''''notifications_use'''''''''''''''''''''n 'fn notify(&mut self, items: &[C::Item], at_marker: ItemMarker<'''}'{' '''C>);' '}' 'e's'l'a'f' '{' 'l'o'o'b' '>'-' ')'('d''''m'''''i'f'i't'o'n' 'n'f' '''e''}''n 'n ' '{' 'y''''t'''o'N'o'N' 'r'o'f' '>'C'<'I'''C'<'''NotificationTarget''''''f'i't'o'''N' 'l'p'm'i''f'i't'o'N'o''V'N'''o''''''''''''''''''''''n'o'i't'a'c'''i'f'i't'o'N'l'l'u''''o'N' 'T''t'c'u'r't's'n''''''''''''''''''o'N'o'N''' 't'i'a'r't' 'b'u'p'n'n'''I''i''';'''fy(&m''ut ''self, _items: &[Se''lf::Item], _at_m''''ListItem''''m''''I't's'i'L' ':''''L'I'arker'e': ItemMarker) where Sel't'f: Sized {n '' // ''}n'o ItemMarker query lookups. Then /// optimizer will inline this'n '''''''' '''' 't's'n'o'c' '/''''''''''''''''' ''''' ''''''''''''''''''''''''''''r'e'k'r'a'M'm'e't'I' '''''''''''''''''s'p'u'k'o'o'l' 'y'r'e'u'q''''l' 'o't' 'd'e't'a'l'e'r' '''''''''''''''''''''''''''''''''''''''''''s'i'h't' 'e'n'i'l'n'i' 'l'l'i'w' 'r'e'z'''''''r'e'i'm'i't'p'o' 'e''I'h'T' '.'g'n'i'p'e'e'k'k'o'o'b'''''''s'a'r'f'n'i''''''''''''n'i' 'r'e'i'l'p'm'o'c' 'e'm'o's' 'f'f'o' 'n'r'm''u't' 'o''''''' 'u'T''''' 'r'o''e'F' '/'/' 'e'g'r'a'T'n'o'i't'a'''t''''''''''''''''''''''''''''''n 'n ' '}' 'e'u'r't' '{' 'l'o'o'b' '>'-' ')'('''''''-' ''s'c' impl ListItem for Item ''{ }''i'f''''''''''n ''''''''''''''''''''_'n'o'i't'a'c'i'f'i't'''''''i'f'o'n''''_'s'i'''''d'e's'u' 'n'f' '''}'n '{' 'y''''''''''d'e''m'i''''y'f'i't'o'N' 't'i'a'r't' 'b''e'u'p'n'n'' '// 'type Item''; //+ s't'td:''':''':''f''m''t::Debug;n'ig {n type Item; //+ std::fmt::Debug;nn /// Application'I'''s which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_'pub(super) 'item: &Self::Ite'I'''m) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n 'n '''''''''''''''''';''')'8'''''''''m'e't''''m'''e'''t'I'''''f'l'e's'&'''I't's'i'L'u'('m'e't'I' 't'c'u'r't's''' ' '// ''m'})n }n''n fn split_'// '''ite'e'm(_item: ''''m'e't'I'&Self::Item,'m't'' _''at: usize) '''// '-> (S'e'elf::Item, Self::It'// 'em)'t'''''m'e't'I' {n'// ' 'I' uni''mplemented!('Cannot insert in the'' ''middle o'// 'f an i'// 'tem 'V'- split_item is not defined in trait');n '' }nn //'// ' fn notify(&'T'mut self, _items: &[Self::Item], _at_marke''r: ItemMarker) where S'I'elf: Sized {n // }n n}nnpub trait Qu''eryable {n type Query;nn // Returns So'I'''me('ListItem'''''t's'i'L'I''''offset) into the item if its contained. Otherwise None.n fn contains_item(&self, query: &Self::Query) -> Option;n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEnt'm'ry {n fn clone(&self) -> Self {'e' *self }n}nnimpl SkipE't'ntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is'y' fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on a node's height. Thisn/// results in'm' a 'I'''lot of `unsafe` blocks. I think'e' the tradeoff is worth it but In/// c'm'ou't'ld be wrong here. You probably would'e'n't lose much performance in practicen///'t' by replaci'm'ng the inline structure with 'e'a smallvec - but that wo'm'uld w't'asten/// memory in small node'I's, 'e'and require extra pointer indirection on l''t''arge nodes.n//'''n '''''''')'e't'a'r'c'''''''''''_'l'a'c'o'l'''''''' ':'x'e'd'n'i''''''e'z'i's'u' ','''''(''''n 'n pub fn iter(&self) ''-> ListItemIter'' {n ListItemIter {n ''''e''''e'n'o'N' node: Some(&self.head),n index: 0,n remaining_items: Some(self.len_items())n }n }' 'n ' '/ It also wouldn'V''t remove all the unsafe here.n///n/// A diff'm'''erent representation (which mi'T'ght be bet'e'ter or worse - I can't tell)n/// wo''uld be t't'o have the nodes all b'I'e the same size in memory and change t'I'''he''n/// *proportion* of the node's memory that is us''''ListItem'''''''I'''I't's'i'm''L''''I' '''' ':'I'ed by the string'm' field vs th'e'en/// next pointers. That might be'e' lighter w'm'eig't'ht for the allocator because then't'/// struc'e't itself'I''' would b'm'e a fixed size; but I'm not su't're if it would't''' 'e'''b''e'' ''b''e''tter.n#[repr(C)] // Prevent paramete't'r reo''''')'(' '=' 'rdering.nstruct Node {n /// We start with the items themse'e'lves. Only the first `num_items` of t'pub(super) 'hisn 't' /// list is in use. The user specified length of the items in 'pub(super) 'the node isn /// stored in nexts[0].skip_items. This is initial'I'ize''d withn /// Default::def'I'ault()'' for the type, but when MaybeUnin'Notify''''''''''''I'''', N: N''otificationTarget'''''''y'f'i't'''''''''m'''''y'i'f'o'N'it co'I'mplet'''>'C'''<'ely ''''''Notificat'e'ionTarget'''''i't'o'N' ':'N' ','lands,'m'n /// it will be't' possible to make this a tiny bit fas'e'ter by leaving the listn 'I' /// initially'' uninitialize't'd.n i'''m'e't'tems: [MaybeUninit; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn /// With the heads array as is, we have no way to go from a marker back to an /// cursor (which is required to insert at that location'm' in the list). Forn /// that we need to be able to figure 'e'out'I' at each level of ''the nextsn /// pointers wh'm'ich ob't'ject points to us, and the offset from t'I'hat element'e' ton //''/ the current element. Anyway, for markers to work 't'we need this.n parent: *mut Node,nn // #[repr(align(std::align_of::()))]n 'm' n /// In r'I'eality this array has the size of height, alloca'e'ted using more orn 'm' /// less direct calls to malloc() at runtim't'e based on ''' n'e'exts: [SkipEntry;'0''''MA''X''MAX_HEIGHT''''X'A'M''' 0],n''''// 't''' 'm' nexts: [SkipEntry;'0''''MA'e'''X''MAX_HEIGHT''''X'A'M''I''' 't'0],n'th'// 'e randoml''y genera'I'tedn /// size. The size is always at least 1.''n nexts: [SkipEn'''m'e't'try; 0],n}'V'nn'I'// Make s'm'ure nexts uses cor''rect alignment''. This should be guaranteed by r''e'T'epr(C)n// This 'm'test will fail if this ever stops'' being true.n#'m'[te't'st]n'm'fn test_a'e'li'I'gn() {n struct T'e'estConfig;'m'n imp'e'l ListConfi''g 't'for T't'estC'e'onfig {n 'I' type 'I'Item = u't'8''t''''ListItem''''''I't's'i'L'I'''' 'I'':'I';n '' f''n get_usersize(_item: &S'V'elf::It''em) -> usize ''{ 1 }n }n #[rep'V'r(C)] st''ruct Check([SkipEntry;'T' 0]);n '' assert!(mem::align_of::() 'T'>= mem::''align_of::>('I'));n '' // TODO: It'd be good to also check'I' the ali''gnment of the nexts field in Node.n}nnfn'''n'' '''''''''''Ph'ListItem'anto'I'''mD'I'a't't's'''i'''L''' '>':''N'<'a'''ListItem''''I''''n'a'I'I'''h't''P''s' ':'i''m''L'I''o'''t' ''n'':'a'h'p'_' 'n ' ' random_hei'I'I''ght(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and then iterators will be able to outlast a move of then // skiplist par'm'ent). But its also very nice having t'e'he code run fast forn // small lis't'ts. Most lists are small, and it make'I's sense to optimize forn // that.nn // TODO: For sa''fety, pointers in to this structure sh'V'ould be Pin<> if wen // ever want to hold on to iterat''ors.nn /// The total number of item'T's in the skip list. This is not used internally -n ///'' just here for bookkeeping.n num_it'I'ems: usize,n /// Size of the list in user specified un''its.n num_usercount: usize,nn /// The ''''ListItem''''''I''m't's'i'L' ':'I'RNG we use to generate node heights. Specifying it explicitly'e' allowsn /// unit tests and randomizer runs to be predictable, which is 't'very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: 'm'Option,nn /// The first node is inline. The height is 1 more tha'e'n the max height we'ven /// ever used. The highest next entry points to {n't'ull, total usersize'm'}.n head: Node,nn /// This is 'e'so dirty. The first node is embedded in't' SkipList; but we need ton /// alloc'I'ate enough room for height to get arbitrarily large. I could'' insistn /// on SkipList always gett''V'I'ing allocated on the heap, but for small lists itsn ///'' much better to be on the stack.n ///'T'n /// So this struct is repr(C) and I'm just padding out ''the struct directly.n /// All accesse'I's should go through head because otherwise I think we violat''en /// aliasing rules.n _nexts_padding''''m''ListItem'''''t's'I''''i'L' ':''''L'I': [SkipEntry; MAX_HEIGHT],n}nnnimpl Node {n /'// '/ Do I need to be'// ' explicit about the lifetime of the refe'''''''' 't'u'm'rences being tied'''n '' ''''''''''' 't'u'm'''&self.nexts[..]' 'n // t'// ''// 'o the lifeti'// 'me of the node?n fn nexts(&self) ->'' &[SkipEntry] {n unsafe {n std:'// ':slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), se'I'lf.height as usize)n }n }nn f''n''''''''''''''('e't'i'r'w'.'''' layout_with_height(height: u'pub'''''e't'a'''''''''''''e't'a'e'r'c'(super'') '8) '''pub(super) '-> Layout {n Layout::from_size_align(n mem::size_of::>() + mem::size_of::>() * (height as usize),n '';')''' mem::align_of::>()).unwrap()n }nn f'*'''''''' '=' 'n '''''''''''''''('e't'i'r'w'.'a')'lloc_with_h'''Skip'eight(hei''gh'ne't: u8) -> ''*''m'MAX'ut Node {n assert!(height >= 1 && height <= MAX_HEIG'pub(super) 'HT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut '''' '''''n '''self.node.next_node();' 'n ' 'Node;n (*node) = Nod'SkipEntr'''new_nu'' ptr::drop_in_place(p); //'pub(super) ' We could just implemen'pub(super) 't drop here, but this is cleaner.n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn '''m'e't' fn content_slice(&self) -> &[C::Item] {n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn // The height is at least 1, so this is'''' always valid.n fn fi''}' 'rst_s''get_usersiz'')'('e'''''''''r'e's'u'_'t'e'g'.'kip_''e''n''try<'pub(super) ''a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_ski'''m'e't'p_entry_mu'get_next_ptr()'''''n't'e'g'''t<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n 'n '''''''''''''''''''''''item''''''''''''''''''''''''''''''''{''' ']'e'z'i's'u' 's'a' 's''''''8'm'e't''m'e't'i'_'m'u'n'.'f'l'e's'.'.'0''I'['s'''''m'e't'i'.'f'l'e's' 't'u'm'&' 'n'i' 'm'e't'i' 'r'''''' '// ' unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }n'o'f' 'self.first_skip_entry().noden ''''m'e't'i' }n}nnimpl Drop for Node {n fn drop(&mut self) {n 'm' 'e' 't' for i in 0..self.num_items as usize {n // Could instead call assume_init() on each item but this isn // friendlier to the optimizer.n 'I' unsafe { ptr::drop_in_place(self.items[i].as_mut_ptr()); }n 'n/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look a'I't NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed t'pub(super) 'on/'I'// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn///'pub(super) ' must'm' not be moved or deleted'''''e'z'i'''''''i'z's'u'n#[derive(Copy, Clone)]npub stru'e'ct 'm'Cursor {n /// The global user position of the cursor in the 't'en'e'tire list. This is usedn /// for when the max seen hei''ght ''i''n''c''reases, s't'o we ca'm'n populate previouslyn /// unused entr'e'ies in the cursor and in the head node.n 't' ///n /// This field isn't strictly 'I'necessary - earl'pub'''''r'e'p'u's''crate'''''f'l'e's'(crate) '''ier versions''''e'z'i's''' tacked this on''V'''''e'z'i's'u' ton /// the last item in entries... I'm still'' not sur''e t'pub(super) 'he cleanest way 'T'to don /// this.n userpos: usize,nn /// When the userp''os of an entry is 0 (total'pub(super) 'ly 'I'valid and useful), a cursorn /// bec'm'omes ambiguous with 'I'r''egard to where exactly its'm' pointing in then ''' ''ListItem''e''''''I't's'i'L':'I''I''' /// current entry. This 'e'is used to resolve that ambiguity.'t'n local_index'm': usize,nn entries: [SkipEnt't'ry; MAX'm'_H'e'EIGHT],nn // TODO: The cursor can't o'e'utl't'ive the skiplist, but doing this makes 't'itn 'I' // tricky to pass cursors around in'I' the Skiplist type. There's ''probably an // way ou'pub(super) 't 'tem'''of th'V'is mess, but I'm not good eno'tem'ugh 'm'at ru'V'st to figure it out.n // ''_marker: PhantomData<&'a SkipLi'tem'st>,n''}'m'nnim'T'pl'e'<'a, C: ListConfig> Cursor {n 'T'fn update_offsets(&mut self,'' height: u'e'size, by: 't'isize'm') {n f'm'o''r i i'I'n 0..height {n unsafe {n 'e' 'I' 't' // Thi'e's is weir''d but makes 't'sense when you realise the ''nexts inn ' ' 'I' 'ListItem'''t'I' '' //'I' 't't's'm''h'i'' 'e'L' ':'cursor'ListI'I'tem''' a''re poi'I'e'''I''t'nte's'rs 'i'int'L'o t':'he el'V'ements tha't't have then 'I' 'pub(super) ' // act'I'ual pointers.'''tem'n // Also adding a usize + isize 'T'is awful ''in rust :/n let skip 'm'= &mut (*self.'V'entries[i].no''de).nexts_mut()[i].skip_usersize;n 'I' *skip ='' 'e'skip.wrapping_add(by as usize'// ');n 'T'}n }n '' }nn 'tem' /// Move'pub(super''tem't') ' a cursor to ''''ListItem''''''''I't's'i'L' ':''''L'I'the start of t'// 'he next 'I'node. Retu'm''I'rns the n''ew node (or an '/'I'/ ' /// nullptr if thi'I's is'' the end of the list).n 'I''''e' fn a'// 'dvance_node(&mut self) -> *mut Node<'ListItem'C> {n 'I' 'I''''t' 's' 'i' 'L' ' ' ':' u't''''//'L' 'nsafe {n 'm''I' let SkipEntry { node: e, skip_u'I'sersiz'e'e: off''set }'// ' = self.entries[0'// '];n 't' // offset tells us how far into the cu'// 'rren'I't element we are (inn // usersize). We n'// 'eed to inc'// 'rement ''the offsets by the'pub(super) ' entry'sn 'm' 'V'// remaining length to get to the st''''''''')'('p'a'r'w'n'u'.'art of the next'' node.n 'e' let advance_by = (*e).get_userlen'T'() - offset;n 'I' let next = (*e).get_next_p't'tr();n let he''ight = ('I'*next).height as usize;nn '''''('e'm'o'S' ')' for 'I'i '''''n ''''''''''' ')'e't'a'r'c'('b'(''u'p''''''''''''''''''e'd'o'n'_'m'o'r'f'_'r'e't'i' 'n'f' 'n ' 'in 0..height {n self.entries[i] = SkipEntry {n '' node: next,n skip_usersize: 0n };n'I' }nn for i i'I''''ListItem'n height'I'..s't'elf's'.en'i'tri'L'es.' 'l'p':'ub(sup''er) 'L'''I'en() {n self.'I'entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_i'n unsafe'<'a>' fn prev_item(&self) ->'''''''tem''<'n'o'i't'p'O'>'' &'a C::Item {n let node = 'tem'&'' 'USED'''''d'e's'u' if self.local_index == 0 {n ''''Invalid state: Cursor at start of node'' ',' ass'm'ert_eq!(self.userpos, 0)'n ''''e''I'n'o'N' ''''''''''{''' '' 'e's'l'e' ';'' 'e' if self.local_i' 'ndex == 0 { ''''''('e'm'o'S'''S'assert_eq!(self.userpos, 0);n ')' 't' }'' '' }''m'n ''''>''''.'a'''<' ' if self.' ''''''e'''<'n'o'i't'p'''''>'t'O' 'local_index' le't't node = '''' 't'u'm'&*self.here_ptr();n '''''n 'I' ' if self.local_index == 0 {n assert_eq!(self.u'y'serpos, ''0);n Nonen } else {n debu'V'g_as'''.'sert!(self.local_index <= node.num_items as usize);n ''n '''''''''''''''''''''''''''''''''''.'.'.'>'>'_'''''''.'.''''>'<''T'l'l'u'N''y'n'o'N'<'n'o'i't'p'O' 'e'b' 'd'l'u'o'C' '/'/' '''n ''''''' 'e'f'a's'n'''u''''''''''''''''''''''<'n'o'i't'p''>'O''''''''''''''''I'''''' 't'u'm'''' '' let next = (*self.here_ptr())''''e'n'o'N'''''''''u'N'.get_next_ptr();' 'n '''''''I: ListItem'nul''''t'u'm'_'l'I'''()''''l''I'''u''''''('e'm'o'S'n':':'r't'p''' ')' if nex'I'''t.is_null() { None }' 'n '' else {' ''''_'t'u'm' 'n '' debug_assert!((*next).num_items ''> 0);' 'n Some(&*(*next).items[0].as_ptr())' 'n 'm' }n''' }''n 'n ' '{' ''''''Item''I':':'C'*''''O''''O' '>'-'m'' ')'f'l'e's'&'('m'e't''e'i'_'t'x'e'n'_'k'e'e'p'''''>'a'''<' ''n ''''''peek_next_item(''''p'a'm'e'''and_the''n'''''''''''r't''t'p'*'&' '|''// 'r't'p'|'(f: F)''''d'n'a'.')'''y''''k'e'e'p''''''''''''''''' 't' let node = '''' 't'u'm'&*self.here_ptr();n if self.local_index < node.num_'m'items as usize {n // Ok - just return the current item.n '''' 't'u'm' S''''''Notificat'e'ionTarge'''>'C'<'t''''''f'i't'o'N' ':'N' ','ome(&*(node.items[self.local'm'_i''''_'t'u'm'n't'dex''].as''_ptr'''t'()))''n '' '' } e''lse {n // Peek the first'SkipListNot'e'ify' i'N''''_'''tem in t'''N''''C' ', N: NotificationTarget'','he next node.n '''N' ',' self.pee't''''' 't'u'm'k_next_item().map(|ptr| '''''nn let node = &mut *self.here_ptr();n debug_assert!(self.local_index < node.num_items as usize);n &mut *(node.items[self.local_index].as_mu''t_ptr())'I'''n'''''&*ptr)n }n'''n 'n 'k'e'// ''e'p'.'.'f'l'e's' 'n''I'f' '''n ' ' '// 'Some('''' 't'u'm'&''// ''''_'''' 't'u'm'*(nod''e.items''''>'a'''<'[self.local_'// 'inde'// 'x - 1].as'''''''<'n'o'i't'p'>''O'_ptr()))'// 'n 'n ''''self.local_index < node.num_item''''''''''''' '''''''''''''''''''''''''''''''''''''.'''m'e't''m'i' '''''('e'm''I'o'S'' '' ''''t'n'e'r'r'u'c'')' 'e'h't'''''''''' '''''''''''e'h't' 'k''''l''e'e'e'P''''''''''''n ''''''''''', N: NotificationTarget'''''''''', N: Noti'I'ficationT''arget' ','{' 'e'f'a's'n'u' ''n '''n '''''''''i'n 'debug_assert''(''''''''''''''''''''';')'0' '>' 's'm'e't'y''i'''*'&'''_'m''''''s'm'''''''r't'p'_'s'a''''''''')'('f'e'r'_'s'a'.''e't'i'''''''u'n'.')'''t'x'e'n'*'('!''''''g'u'b'e'd' 's_nul''''''''''''''''''''''''n ''' ''''''&''''''''''conten'''''''')'(')''''']'0'''']''''0'['e'c'i'l's'_'t''''''''t'n'e't'n'o'c'.')'t'x'e'n'*'(''''('('e'm'o'S' ''' }''n 'n 'tem' ' '{' ''''' 'e's'l'e' '}' ';'e'n'o'N' 'n'r'u't'e'r' '{' ')'('l''''''u'n'_'s'i'.'t'x'e'n' 'f'i' ';'''''''''''''*'('''''''her'''' }'n 'e_')'ptr()'get_next_pt'')'('r''''''''x'e'n'_'t'e'g'''.node''''''''''s'e'i'r't'n'e''''here_ptr('''''e'd'o'n'.')'''''e'r'e'h'.'f'I''l'e's' '=' '''t'x'e'n' 't'e'l' ''''''''''''''''''''''''''''''''.'e'd'o'n' 't'x'e'n' 'e'h't' 'n'i' 'm'e't'i' 't's'r'i'f' 'e'h't' 'n'r'u't'e'R' '/'/' ''' }''n 'n ' '{' 'e's'l'e' ' 'n'r'u't'e'r' 't's'u'j''n }''''''' 'e'r'''e'w' '-' 'k'O' '/'/' ''' }''n 'n ' '{' 'e'z'i's'u' 's'a' 's' 'f'i' ' }n'''n '// ' 'n'// ' ' == 0 { assert_eq!(self.userpo'// 's, 0); }'' if self.local_index == 0 { assert_eq!(self.userpos'// ', 0);'n '''''''''local_inde''''''''t''' '' '''assert'''<'_'n'''e'o'q'i'''>''''t't'''''''''''''''''')'(''' '=' ''p'''''O'''''''''''''''''''''''''''')'(''' '=' '';')'''0' ','s'o'p'r'e's'u'.''''.'f'l'e's'('!''''''r'e's's'a' ''' }''n 'n ' '{' '0' '='=' 'x''''''l'a'c'o'l'.'f'l'e's' 'f'i' '*self.here_ptr();n assert!(self.local_index > 0);n'I''' debug_assert!(self.local_index <= node.num_items as usize);n &*(node.items[self.local_index - 1].as_ptr())n }n'ndex = 0;nn ''''t''''' 't'u'm'u'm'_'''' 't'u'm'''' '' nextn }n'''' 't'u'm''''''''''t'u',' }nn fn is_at_n'SkipListNotify'ode_end(&self) -> bool {n self.local_index ''''''y'f''''N' ','i't''''''''''y'i'f'o'N'== unsafe { (*', N'''s''e''lf.here_ptr()).num_items } as usizen }nn '''' 't'u'm'fn a'''N'': NotificationTar'''>'C'<'get''' ','dvance_ite''''''y'''''''''NotificationTarget'''''i't'o'N' ':'N' ','f'i't'''''''i'f'o'N'm(&mut self, heig''''''''''' ')'r'e'p'u's'('b'u'p'ht: '''n ''''''''''''''''''n '''''''''''''''''''''''''''' '' ''(cfg!(debug_assertions) || N::notifications_''used())''' }''n 'n ' '{' 'l'o'o'b' '>'-' ')''''''''''e's'&'('s't'n'e'r'a'p'_'e's'u' 'n'f' ']')'s'y'a'w'l'a'('e'n'i'l'n'i'['#' 'n ' 'u8)''''_'t'u'm' {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersi'''n pub fn new_from_iter>(iter: I) -> Sel''f''''''''''='=' '''''''' ')'(' ':'N' 'e'r'e'h'w' {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n Self::new_from_iter(s.iter().copied())n }n'''ze(unsafe {'n ''''''''m'o't'n'a'h'p''''''''''PhantomData'''''n'a'h'P' ':'r'e'k'r'a'm'_' ' self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n'self.local_inde' 'x''' '<''''>''''''' '>' }nn fn''' > ' advance_b''y''_''i''tems(&mut self, num: usize, height: u8) {n for _ in 0..num { s''elf.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_u' unsafe fn prev_item(&self) -> &'a C::Item {n let node = &*self.here_ptr();n assert!(self.local_index > 0);n debug_assert!(self.local_index '='< node.num_items as usize);n &*(node.items[self.local_index - 1].as_ptr())n }nn'sersize -= offset;n }n '' self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> 's'Self::use_parents()'elf.local_inde''' '<' 'x'&'a C::Item {n l''e''t'''''' node = &*self.here_ptr();n debug_assert!('m'node.num_items as 'n '''''''notifications_used(''{' '' ')':':'N' ''m'f'i' 'usize >='e' self.local_index);n &*' '(node.items[self.local_index].as_ptr())n 'e' }nn unsafe't' fn ' 'current_item_mut(&mut self) -> &'a mut C::Item {n ' 't' 'let node = &mut *self.here_ptr();n debug_assert!(node.num_items as usize >=' ' self.local_index);n ' ' &mut *(node.items[self.local_in'' }'n 'dex].as_mu' 't_ptr())n }nn ' '/// Get the pointer'' to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursor'I's at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self,'I''' other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { retu'Self::use_parents()''N::notifications_used()''Self::use_pare'm'nts()'rn false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::De'e'bug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n 't' .fiel'&'d('userpos', &self.userpos)n .field('local_index', &self.local_index)n 'curso' .finish()n }n}n''' }n }n}nnstruct NodeIter<'a, C: List'n 'assert_eq''normal_ite'''''''''''num_usercoun'''''n assert_eq!(normal_iter.userpos, num_usercount);';')'t''''''u'_'m'u'n' ','s'o'p'r'''''''o'p'e's'u'.'r''''''a'm''n '''''''notifications_used(''{' '' ')':':'N''''p' 'f'i' 'r'o'n'('!''''''r'e's's'a' 'Config>(Option<&'a Node' '>);nimpl<'a, C: ListConfig> Iterator for Node' 'Iter<'a, C> {n ' 'type Item = &'a Node;nn fn next(&mut self) -> Option<'''''' '''' '=' 'f'l'e's'*'&'a Node> {n 'I' '''' '''''''''('e't'''i'r'w'.'' }'n '''' ''let prev = self.0;n if let' 'm' ' ')'Some(n) = self.0 {n *s'm'elf = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n 'e' }n prevn ''''''r'o's'r'u'c'}n}nn/// T'e'his is a set of poi'm'nters with metadata into a location in the lis't't neededn/// to skip ahead, delete and insert in item't's. A cursor is rea'e'sonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n'''I'///n''/// T't'his is not needed for s''get_usersiz'')'('e'''''''s'u'_'t'e'g'.'''imply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods'''''' ','a''' usin''''''''&' '''' + SkipList''''''' + SkipList' + '''' '''''''' ''+ SkipList''''''''''SkipLis'''>'C'<'t'''''p'i'k'S' '+' '''a''''&''SkipLis''''''>'C'''''''''c'<'t'''''p'i'k'S' ':'S' ','''''''''''''''''''&' ':'S' ','g cu''rsor'''''' ','s are unsafe. This is because cursors usen/// raw mutable pointers into the list, so' ''''''' 'a'''&'''''','>'>'C'SkipLis'<'t'I''''C''''I''''''''p'i'k'S'<'''''''''PhantomData''''n''I'h'P''' 'C'':'''r''I'e'k'''r'a'm'_' ' when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remov'I'e/repl''ace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned and' // TODO: The cursor can't outlive the skiplist, but doing this makes itn // tricky to pass cursors around in the Skiplist type. There's probably an // way out of this mess, but I'm not good enough at rust to figure it out''.'n/// '''''' ':'O'D'O'T'must not be moved or delet''a, '''e''d''n''#[derive''''''''''tem''''''''''''''''''''''curso'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m''''''''''''''''''''''''''''''''''''''''m''''''''''''n '.'t'u'o' 't'i' 'e'r'u'g'i'f' 'o't' 't's'u'r'''''' 't's'u'R' 't'a' 'h'g'e''u'o'n'e' 'd'o'o'g' 't'o'n' 'm'''I' ''e't'u'b' ','s's'e'm' 's'i'h't' 'f'o' 't'u'o' 'y'a'w' 'a' 'y'l'b'a'b'o'r'p' 's'''e'r'e'h'T''t'''''I' '.'e'p'y't' 't's'i'l''''''r'e't''p'u's'''p'''''i'''''k'S' 'e'h't' 'n'i'''''''' 'e'h' 't'pub(crate) ''n'i' 'd'n'u'o'r'a' 's'r'o's'r'u'c' 's's'a'p'''''s's'p'a' 'o't' 'y'k'c'i'r't' 't'i' 's'e'k'a'm''' '''''s'''i'h't' 'g'n'i'o'd' 't'u'b' ','''(Copy, Clone'// ')]n''''n pub fn no''x'_''''''ListConfi'>'g'''''t's'i'L' ':'C'<'_notify(_items: &[C::Item], _marker: ItemMarker) {}n'n'pub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire''n '''''''''''''''''''''''''''''''''''''''''.'t's'i'l'p'i'k's' 'e'h't' 'e''I'v'i'l't'u'o' 't'''n'a''''' ','a'''c' 'r'o's'r'u''''' ','''''I' 'ter''''''r'e't''''''a'''''c' 'e'h'T' '/'/' ''''''' ''n ' // TODO: Ad'I'd a'l' p'n'hantom''' /'I'// Create'' a curs'tem'or at the specifi'I'ed node, usi''ng t'I'he par'm'ents infrastructure' /// to calculate o'tem'ffsets. The offset and local_index parameters shouldn /// specify the offset into th'e'e c'm'urrent node. They are accepted as-is.n /// Offset *must* be at an item boundary'n /// to calculate offsets'''''''''''''''t''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'i'-'s'a' 'd'e't'p'e'c'c'a' 'e'r't''a' 'y'e'h'T' ''''''''''''''''''''''''''''''''''''''y'r'a'd'n'u'o'b' 'm'e't'i' 'n'''' 'a' 't'a''''''''''d'e'i'f'i'c'e'p's' 'e'b' '*'t's'u'm'*'''''''''get_usersiz'')'('e''tem'''''''''r'e's'u'_'t'e'g'.'''''u'm' 't'e's'f'f'O''''''' 'e'h'T' '.'e'd'o'n' 't'n'e'r'r'u'c' 'e'''h't''tem' 'o't'n'i' 't'e's'f'f'o' 'e'h't' 'y'f'i'c'e'p's' 'd'l'u'o'h's''''''''''c'e'p's' 't's'u'm''''''''''e'k'c'n'u''''''''k'c''''d'e'k'c'n'u'''''''o'n' 'e'r'a' 's'r'e't'e'm'a'r'a'p' 'x'e'd'n'i'_'l'a'c'o'l' 'd'n'a' 't'e's'f'f'o' 'e'h'''''''''''''o' 'h'e'T' '''''''''''''''''i' 's'i'h't' 'e't'o'N' '.'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''q'.'s't'e's'f'f'o' 'e't'a'l'u'c'l'a'c' 'o't' 'I''e'r'u't'c'u'r'''t's'a'''r'e't''r'f'n'i' 's't'n'e'r'a'p' 'e'h't' 'g'n'i's'u' ',''o'e'_se''d'''o'n' 'd'e'i'f'i'c'e'p's' 'e'h't' 't'a' 'r'o's'r'u'c' ''I'a' 'e't'a'e'''r'e't''r'C'''''''I''''e'G' '/'''' '/'/' '' lifetime reference to the skip list root f''o''r safety.' '' 'node_' 'n _marker: Ph''''(''''(''a''''')'nto'''''''''''''e'z'i's'u' ','mD')'ata<&'a SkipLis'''n 'n fn node_iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn iter(&self) -> ListItemIter {n ListItemIter {n node: Some(&self.head),n index: 0,n 'Self::use_parents()' remaining_items: self.le''''''r'o's'r'u'c'''''''''n_items()n }'n '''inlin'('''''')'alwa''''''I''''i'k's'''''t's'i'l' '''y''']'s'''''a'''w'l'a'='e''''''n'i'l'n'i'['''''''''''''''''''''e'z'i's'u' 'I''''s'a' 't'h'g'i'e'h'.'d'a'e'h'.''''''#' ''''''''''')'('t'h'g'i'e'h'.'n '''''''''''''''''''f''''''''''''' '''''''''''heigh'''''''''e'z'i's'u' 's'a' 't''''i'e'h'.'d'a'e'h'.'f'l'e's' ''' }''n 'n ' '{' 'e'z'i's'u' '>'-' ''l'e's' 't'u'm'''''''m's'&'')'('t'h'g'i'e'h' 'n'f' ''''n ''''''''<'n'o'i't'p'O''('n'>' }''''''''')'e'z'i's'u' ',' 't>,nn' 'n '''''n '''n pub fn item_ite'mIte'r(&self) -> ListIter {n ListIter {n node: Some(&self.head''n 'remaining_item''''''''len_items()''''n'e'l'.'f'l'e's' ':'s'''''n '''''''''''''''''''' = 0'''''''''''''';'0' '=' 't'e's'f'f'o'_'m'e't'i' 't'u'm' 't'e'l' ''''n'i'a'm'e'r' ','),n index'_': 0n }n }' ''''n ' ' ' '// 'list. This is usedn 'n 'item_offse''''item_offset';'_'''''m'e't'i' '=' 't'''''''o'_'m'e't'i' ' /// for when the max seen height increases, so we can populate previouslyn 'n 'local_inde''map''local_inde'''{' ''''{''n '''|'''x''''''l'a'c'o'l'|''''''''l'''(f: F)'''a'''m'' ''''' } else { None }n // let local_index = local_index.expect('Invalid marker - item not found in node');n''' ')'}'n ''.'x'''''a'c'o'l' ''n ''''''''''''('e'm'o'S''')'local_inde''''local_inde''{'''''('e'm'o'S'''''''''''''e'm'o'C'''' 'x''''''l'a'c'o'l' '='''')'' ' 'x'''''a'c'o'l' 't'e'l' 'f'i''''m' ''''' ''''''''''''''}' 'e'n'o'N' '{' 'e's'l'e' '}'n ''''n '// ' ''' 'f'i' '' ' /// unused entries in the cursor and in the head ''''''r'o's''n // let local_index = local_index.expect('Invalid marker - item not found in node');'r'u'c'''n''o''d''e.n ///n /// This field isn't strictly necessa'('ry - earlier versions tacked this on 'n '''item_offse')'t'''I'''''_'m'e't'i' ',' ''''''''''''notifications_used(''''''I''''''''''''''''''''''''''''''''''''''''''I'''''''''''''''''''''n ';')'''d'e'l'b'a's'i'd' 'e'r'a' 's'n'o'i't'a'c'i'f'i'''''r'e't'I't'tem''o'n' 'f'i' 'e'l'b'a'l'i'a'v'a' 't'o'n' 'e'd'o'n'_'''(''t'a''''''tem'''9''''')'0''''9' ',''_'r'e't'i'''''''t'o'n'n'a'C''' ',')':':'N'('!'t'r'e's's'a' 'ton /// the last item in entries..''' // pu'm'b(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::It'e'em: Queryable {n'. I'm still not sure the cleanest way to don /// this.n user''pos: usize,nn /// When the userpos of an entr't'y is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to''' pub(super) unsafe fn cursor_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n' r'// 'esolve that ambiguity.n local_''P'''''>'Q'''''''>'F'<'index: usize,nn '''''''''e''P'''t'a'c'i'd'e'r'p''P'''entries'Q': [SkipEntry'n '''''''''''n'''''''' ':'m'e't'i''&''''''''''m'' '''e't'I':':'C''''F' ':'Q'''''''''' ':'W''fn cont'o'a'_se'in''s_item(&self, query: &Self::Query) -> Option;' 'e'r'e'h'w' '''''<''C>;''''''''('''''''u'M'n'F' 'l'p'm'i''' ''MAX_HEIGHT],n}nnimpl'' Cursor {n fn'''r'e't' updat''''''''''('e'''')'t''I'''a'c'i'd'e'r'p'e_of'''''''n pub(super) unsafe fn c'''r'e't'ursor_'e'a't't'a'_''I'c'm'i'a'd'r'e'k'r'er(&mu'p't self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {''''no_notif''y(_items: &[C::Item], _marker: ItemMarker)'''o'n':':'f'l'e'S' ','fsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n '*''' '''''r'w'.' let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_no'a'''''''''c'i't'a't'node_''s'''de(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element w''''''r'o's'r'u'c'e are (inn 'a'''''''''c'i't'a't's''' // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n 'tem' let next = (*e).get_next_ptr();n let height = (*next).height as usize'';nn for i in 0..height {n self.entr'pub(super) '''ies[i] = SkipEntry {n no''d''e'':'' next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn ''''''r'o's'r'u'c''' '' '' '' self.userpos += advance_by;n self.local_index = 0;nn nex''' 'a'''tn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node''' 'a'''_end() { self.advance_node(); }n let usersiz''e = C::get_usersize(unsafe { self.current_ite''m() });nn for entry in &mut self.entries[0..h''e''i''g''ht as usize] {n entry.ski' unsa''fe f''n cu''rren''t_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as us'''' ','a'''ize >= self.local_index);n '''' ','''' 'a''' &*(node.items[self.local_index].as_ptr())n 'nn unsafe fn current_item_mut(&mut self) -> &m'I'''ut C::Item {n let node = '''' 't'u'm''''''''''t'u','&*self.here_ptr();n debug_assert!(node.num_items as usize >= self'''' 't'u'm''''u'.local_index);n 'as_mut_ptr'''''''t'u'm'_'s'a' ''&mut *(node.items[self.local_index].as_ptr())n }')'''('''t'''h'''g'''i'''e'n'h' '}n'p_usersize += '.'use'''t'u'm'rsize'_';n'''' 't'u'm' }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, '''' 't'u'm'num: usize, height: u8) {n ''''''_'t'u'm'for _ in 0..num { self.advance_item(height'''' ','a'''); }n }nn fn mo'''' ','a'''ve_t'''' ','a'''o_item_start(&mut self, heigh'''' ','a'''t: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden 'l' 'n'}n}nni''mpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n ', notify: &mut N' if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b ='''''':':'f'l'e'S''' &other.entri')'es['('i];'t'n 'h' 'g' 'i' 'e' if'h' a.node != b.node || a.skip_usersize != b.ski'.'p_usersize { return false; }n ' if'''''''''''''''''')'('s't'n'e'r'a'p'_'e's'u''''''''''''''''e'r'o't's'.'f'l'e's''''(' cfg!(debug_assertions'''|'|' ') N::notificatio')'ns_used() && new_height_''usize > 1 {' }n 'cfg!(debug_assertions)'''' ''i''f'' cfg!(debug_asser''ti'n'ons'''del')''t'' {''' 'n' truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Resu'tem'lt {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n'' .fi''eld('local_index', &'USED'self.local_index)n .finish()n }n}nn// None of t''''d'e's'u'he rust builtins g'N''''M'ive me wha'l'''t 'n'I want'', wh'''n 'ich is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.nstruct UninitOwnedIter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> U'n '''''''''''''''''''''''''''''''''''''''''' 'w'o'h' 'e'r'u's' 't'o'N' '.'t'''''''t'c'c'e'f'f'e' 'o'n' 'e'v'a'h' 'y'a'm' 'd'r'a'u'G' '/'/' ''n '''''''notifications_used('''''n '{' ')':':'N''''''' '''.''''''''''''i'f'i't'o'n'.'y'f'i't'o'n''''''''''''''''i't'o'n'(' 'f'i' ''n '' }'n ' ''''''''notify_removed'maybeinit_slice_get_''re'n'f'&'''del''''t''''(''slice: &[MaybeUninit])'''''')''''''n '' '' '' '''0' 'b'y'a'm'' '''['c''item_idx..item_idx + removed']'_here';''''['c'(items: &[Item])'.'y'f'i't'o'n' 'ninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal data from without droppingn /// conten''t''. Thi'' ''s'''USED'N::notificat' if N::used {n ''''''content_slice''''''''t'n'e't'n'o'c'''''''''''''')'('t'n'e't'n'o'c'_'t'e'g'.')'e'*''''E'(''''*''''''''''''')'e'('*''' notify.notify_removed(maybeinit_slice_get_ref(&c[item_idx..item_idx +'' removed_here]));n }n'i'n 'o'n 'ns_used('''&'&' ')' ' i'''''''''notifications_used(''{' '' '' ')':':'N' 'f'i's'n ' ' ' unsaf' 'e:n ///n ' ' /// - If the iterator i' '' 'sn't'm' fully drained then' ' remaining item' 's will ben /// ' ' ' ' forgo'e'tten (they are not dropped).n /// - The slice p' ' ' 'asse' 'd in here must be initi't'alized or undefined behav' 'iourn /// 'I''' will' ' hit us.n ///n' ' /' '// After iterating' ', the content'''' '' }'n 's are un' 'init memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n ' ' let ptr' ' = slice.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option {n if self.ptr.as_'I'ptr() == self.end {n Nonen } else {n let ptr = self.ptr;n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };n Some(unsafe { ptr.as_ptr().read() })n }n }nn fn size_hint(&self) -> (usize, Option) {n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();n 'tem' (si'm'ze, Some(size))n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)'e']nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit()'t'.assume_init() }n}nn// TODO: Stolen 'r'f'e'r'p'o'u'm's' Ma''ybeU''nini''t::s''lice''_get_ref. Replace when available' '' '.n#['pub(crate) 'inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n'I' rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null'I'_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.r' if usersize > offset { break; } // We're in the middle of an item.n'' if usersize offset { break; } // We're in the middle of an item.n'' if usersize >= offset { break; } // We're in the middle of an item.n'ng = Some(SmallRng::seed_from_u64(seed));n '''n ''''''''''''''''''''''I: ExactSizeIterator '''''>''''''''f'l'e'S' '>'-' ''''' let mut rope = Self::new();n rope.insert_a''t'''''r'e't'i''''_''s''l''i''ce(0, s);n rop''en''' }''n 'n ''n '''''''new_from_it'''''''y'f'i't'o'n'.'er''''''''''''''''''''';')')'('d'e'i'p'o'c'.')'('r'e't'i'.'s'(iter: I)'''''_'w'e'n':':'f'l'e'S'''''f'l'e's' ' '{' ''''''''')'I' ':'r'e't'i''I'<'''''&'('r'e't'i'''_'m'o'r'f'_'w'e'n' 'n'f' 'b'''u'p' 'n ' ' }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nic''er way to implement this.n if self.rng.is_n'N'one() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n 'o' '_se' '' }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at_slice(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n'I' }nn /// Walk the list and validate internal constraints. This is used forn /// test'I'ing the structure itself, and should gen'I'erally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height'tem' >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn '' /// SAFETY: Self must outlast'm' the marker and not have been moved since then /// marker was created. Self should really be Pin<>!'n ''''''''''''''''''''''''''''y'f'i't'o'n' ',''''&''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!'>''''&''''*'<'n'i'P' 'e'b' 'y'l')''l'a''('e'r''t' 't''d'l''h'u'o'h'g''s' ''i'f'l'e'e''S' ''h'.'d'e't'a'e'r'c' 's'a'w' 'r'e'k'r'a'm' 'e'h't' 'e'c'n'i's' 'd'e'v'o''.'m' 'n'e'e'b' 'e'v'a'h' 't'o'n' 'd'n'a' 'r'e'k'r'a'm'''''''''e'm'i't'e'f'i'l' 'e'h't' 't'''''''t' 's'a'l't'u'o' 't's'u'm' 'f'l'e'S''''''''m' 'e'h'T' ':'Y'T'E'F'A'S' '/'/'/' ' l''''''''''' 'e'f'a's'n'u'''''' 'e'f'a's'n'u'et head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', s' '''kip_over.skip_items, self.num_b' 'ytes);nn 'tem' let mut prev: [*con' 'st Node; MAX_HEIGHT] = [ptr::null(); ' 'MAX_HEIGHT];nn let mut iter = [SkipEntry {n /' '''r'e't' '/ Bleh.n 'I''' node: head_ptr,n // The skips wi' '''r'e't' 'll store the tota'''r'e't'l distance travelle'I'd since' ' then // start of this trave' 'rsal at ea'tem'ch height. All th' 'e entries aboven ' ' // head.height are ignored tho''ugh.n ' ' skip_usersize' ': 0n ' ' }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn' ' for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if s'''''''y'f'i't'o'n'.'elf.is_h'I'ead(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } el'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'r'e's'n'i' 'n'o' 't'n'''''''n't'i'a'r't's'n'o'c' 'r'o't'a'r'e't'I'e'z'i'S''''I't'c'a'x'E' 'e'h't' 'x'a'l'e'r' 'o't' 'e'm' 's'd'e'e'N' '/'/'n'''// '''''''''''''ListIte''''''''':':'d't's''''''''>'m'e't'I'<'''''':'''''// ''''''' 'e'r'e'h'w' '''''''SkipLis''' ''fn from_iter>(iter: T) -> S'''''' ''' }''n 'n ' '{' '''elf;''''''''''}''n 'n ' '{' '>'m'e't'I'<'t'''''p'i'k'S' 'r'o'f' ':'r'e't'i'''''''''''''r'o't'a'r'e't'I'm'o'r'F' '>'m'''''t's'i'L' ':'m'e't'I'<'l'p'm'i'''''''''''''''''''I'<'l'p'm'i'n''n'se {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // db'I'g!((n as *const _, (*n).height));n // dbg!(n.parent);n '''''''<'n'o'>''i't'p'O' //''''''''''''.'n'w'o'n'k' 'f'i''''o' ','''tem' dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n 'm' assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn 'e' // println!('replacing entry {:?} with {:?}', 'tem'entry, n.nexts()[i].node);n prev[i] = n;n en't'try.node = n.nexts()[i].node;n 'n ''''''''''''(')''e'm'o'S''''=' 'r' ''''''''remain''{' 'ing_i' 'r''tems'''''a'm'e'r'.'f'l'e's'r'' 't'e'l' 'f'i' ' '' ''''''''n ''''''''''' }'n ')'e'n'o'N' ','0'(' '{' 'e's'l'e' '}'n ' entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end,'r' th'e'e n'p'orm'u'aln's''''''''''''''''''''''''''''m'e't'I' '=' '''''''''' '+' 'd'e'z'i'S'?''''''''', Rhs: ?'''' where Item: PartialEq' 'Size'>'d'<''''>'s'h'R'<' ':'s'h'R' ','' '' '''s'h'R' '' // c''ursor w''on't be'' at the end...n while normal_iter.here_'pub(crate) ''// 'ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n norma'I'l_iter.loca'I'l_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_ite'tem''''tem'ms 'tem'as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter()'m' 'e'{'t'n // println!('{:?}', entry);n assert!(entry.node.'m'is_null());n assert_eq!(entry.skip_usersize, num_usercount);n 'I' }n n // println!('self bytes: 'e'{}, count bytes {}', self'Self::use_parents()'.num_bytes, num_'''N' ','bytes);n assert_eq!(self.num_items, num_items);n a't's'tem'sert_eq!(self.get_userlen'm'(), num_usercount);n }n }n n n /// I'e'nternal function for creating a cursor at a particular 't'location in then /// skiplist. The 'n '''''I''''''''I'PhantomDat'''': E'''x'I''xactSizeIterator','a'I'''''''''x'n'a'h' where Ite': ExactSizeItera'I'''tor'r''P' ''m':'r'e'k'r'a'm'_' 'retur'''x'ned'' cursor con''tains list o''f nodes which point pastn /// the specified position,'V' as well as offsets of how far into'e' theirn /// character lists the specifi'tem'ed char''acters are.n ///n /// Sometimes a call to iter_at_'T'userpos is ambiguous:n ///n /'t'// - The item can contain it'm'ems with zero usersiz''e. The cursor co'tem'uld po'tem'intn /// 'e' to any of t'm'hem.n 'I'/// - 'm'If the location is at the 't'end of a node, it is equally valid to returnn ///'m''' 'I'a position at the start of the next node'e'.''''ListItem'''''e'''I't's'i'L' 'I'''':'m''I''C:'I''''' L'm'istCo'I'nfig''I::get_usersize('n ///n /'e'// Because'V''I' it'm's imp'tem'ossi'tem'ble to move backwards 't'in'm' the list, ite't'r_at_userposn /'e'// retu'm'rns 'e'the f''irst admissible location with the specif't'ied user'e'pos.n'e' /'T'// n /// Returns (cursor'e', offset into the s't''tem'pecified item).n't' ///n 'm' /'t'// TODO: Thi''s sho'm'uld be Pin<'I'&self>.n fn iter_at_userpo't's(&self, targ'I'et'e'_userpos: usi't'ze) -> (Cursor, usize) {n '' assert!(ta't'e''rget_userpos <= self.get_u''serlen());nn 'V' let 'm'mut e:'I' *const Node = &self.head;n l''N::notifica'I''''I'''t''ions_used('''&'''m'''e'&'t''t'''I' ')''' 'et mut height = self.h'm'ead.height'T' as'/'e'/ 'm'' usize'V' - 1;n n let mut of'e'fset = target_userpos; // How many more ite''ms to skipnn '' 't' // We're populating the head node pointe'I'r 't't'e'o simplify 'T'I''the case when then'm' // iterator grows. We could put offset'// ' into'''''n 'e' '''' ' the skip_usersize b'''r'e't'ut'I: ListIt't'em' it't'n 'C: ListC'I'V'''m'onfig''I: L'''r'e't'istItem' // would only'I' be *mostly* co''e'''r'e't'rrect, not always cor''''rect.'I''' (Since cu'm'rsorn 'I't'' // en''''I: Li''stItem'C''''I''T'''tries ''I'''I'a'e'bove height are'I' not updated 'I'''V''by insert.)n let mut cu't'rsor = Cursor {n'' entries: [SkipEntry {''n 'I' ''node: &self.he'I'ad as 'I'*const _ as *mut _,n 'V' 'I's'T'kip_usersize: usize::MAXn '' ')' 'I'}; '''('MAX_HEI't'GHT],n 'h' 'g' '' 'I'loc'i'I: L'V'i''stItem''al_inde'e'x: 0,'I'''n 'h' userp'T'os'I''': targe'I''I't_userpos,n };nn '' loop { // while height >= 0n '.' let en ='' unsafe { &*e };'T'n'' let next = en.nexts()[height];n 'I' let skip = next.skip_us'I: ListIte'I'm'e''rs''ize;n 'I' '' if')' offset >'(' skip {n 't' '' 'h' 'I' // 'g'Go right.'i'n 'e' d'h'ebug_assert!(e == 'n '_marke'''Pha'I: L'I'istIte''m'''ntomData'''''n'a'h'P' ':'r''''''k'r'a'm'_' '&self.head || en.num_items'.' > 0);n 'I' offset -= skip;n 'I' 'I: ListItem' e = next.node;n '' '' assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n 'y' let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset:'' usize, local_''index: usize) ->'y' Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set th')'is later.n '(' 't'local_index'h': local_ind'g'ex,n 'i' entrie'e's: [SkipEnt'h'ry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n '.' };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n 'y' skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // R'r'eache'e'd the'p' head'u'.n 's' ''if parent.''is_null() ''{ break; }''nn '' // If we're the same height as the parent its fine.n''''''''''' ')'e't'a'r'c'(''''''''''r'c')'b'u'p''''''''y''''''impl> fmt::Debug for SkipList where C::Item: fmt::Debug {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_list().entries(self.iter()).finish()n 'y'}n}'n'n'nimpl> ''fmt::Deb'''''''t'''l'u'a'f'e'd'ug fo'SkipLis''''''')'('w'e'n':':'t'''k'S'''r SkipList whe''''f'l'e'S're C::Item: fmt::Debug {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_list().entries(self.iter()).finish()n }n}n'b'u'[''''''''''b'i'[' debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Que''ryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n '// ' let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut ''Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut'' Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n 'pub(super) ' new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr()'n ''''''''''''''''''''''''''''''''''''' '.'g'n'i'g'g'u'b'e'd' 'r'o'f' 't's'u'j''''''''''''e'd' 'r'o'f' 't'u's'j' 's'i' 's'i'h'T''''''''''''''''''''''' '.'s'i'h't' 't'r'''''''''' 't'e'o'p'x'e' 't'o'n' 'o'D' ':'O'D'O'T' '/'/' ' ''a'''''''('''''''''''f'l'e's''''''r'e'p'u's'''''''.'.''' 'n'i'''''''' ')'r'e'p'u's'('b'u'p''''s *''''''.'.'''''''''h't'a'p'''''''i'd''''''r'e'p'u's'mut C::Item).write(item); // Write m''''''')'e't'a'r'c'('akes sure we don't drop the old value.n }nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1''; // This is ugly.n '''''' self.head.h''eight += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: p''''''''y'f'i't'o'n'.'y''''.'rev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // Th''e previous node points to the new noden '' *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: ''''cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entr''''''''''''' ''''n' pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {n let mut rope = Self::new();n rop''n'_'e.in''''''''y'f'i't'o'n' ','sert_at(0, iter);n ropen }nn pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {n Self::new_from_iter_n(s.iter().copied(), notify)n }nn pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify }, item_offset)n }nn pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify }n }nn pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);n }nn // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n // }nn // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {n // let (mut edit, offset) = self.edit(userpos);n // edit.modify_current_item(|item| modify_fn(item, offset))n // }nn pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {n let (mut edit, offset) = self.edit_n(userpos, notify);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {n self.insert_at_n(userpos, contents.iter().copied(), notify)n }nn // pub fn del_at_n(&mut self,''''t's'i'l' 't'u's's'i'erpos'l': usize, num_items: usize) {n // self.edit_betwee'n pub fn new_from_iter_n>(iter: I, notify: &mut N) -> Self {n let mut rope = Self::new();n rope.insert_at_n(0, iter, notify);n ropen }nn pub fn new_from_slice_n(s: &[C::Item], notify: &mut N) -> Self where C::Item: Copy {n Self::new_from_iter_n(s.iter().copied(), notify)n }nn pub fn edit_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify }, item_offset)n }nn pub fn edit_between_n<'a>(&'a mut self, userpos: usize, notify: &'a mut N't') -'s'> E'i'dit {'l'n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify }n }nn pub fn replace_at_n>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I, notify: &mut N) {n self.edit_between_n(start_userpos, notify).replace(removed_items, inserted_content);n }nn // pub fn replace_at_slice_n(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n // self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n // }nn // pub fn modify_item_after_n(&mut self, userpos: usize, modify_fn: F) {n // let (mut edit, offset) = self.edit(userpos);n // edit.modify_current_item(|item| modify_fn(item, offset))n // }nn pub fn insert_at_n>(&mut self, userpos: usize, contents: I, notify: &mut N) {n let (mut edit, offset) = self.edit_n(userpos, notify);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice_n(&mut self, userpos: usize, contents: &[C::Item], notify: &mut N) where C::Item: Copy {n self.insert_at_n(userpos, contents.iter().copied(), notify)n }nn // pub fn del_at_n(&mut self, userpos: usize, num_items: usize) {n // self.edit_between(userpos).del(num_items)n // }n'n(userpos).del(num_items)n // }n' 'n ' 'n ' 'n ' 'ies[i] = SkipEntry {n node: new_node_ptr,n '' '''' skip_usersize: new_userlenn };n }n 'N' }nn '' '' for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n'nn pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)n }nn pub fn edit_between(&mut self, userpos: usize) -> Edit {n let (cursor, item_offset) = self.iter_at_userpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }n }' if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height {'impl SkipList {n pub fn new_from_iter>(iter: I) -> Self {n let mut rope = Self::new();n rope.insert_at(0, iter);n ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n Self::new_from_iter(s.iter().copied())n }nn pub fn replace_at>(&mut self, start_userpos: usize, removed_items: usize, inserted_content: I) {n self.edit_between(start_userpos).replace(removed_items, inserted_content);n }nn pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n }nn pub fn modify_item_after(&mut self, userpos: usize, modify_fn:'' F) {n let (mut edit, offset) = self.edit(us''erpos);n edit.modify_current_item(|item| modify_fn(item,'' offset))n }nn pub fn insert_at>(&mut self, userpos: usize, contents: I) {n let (mut edit, offset) = self.edit(userpos);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n }nn pub'''_target''' ''f''n'' ''d''e''l_at(&mut self, userpos: usize, num_items: usize) {n s'n'elf.edit_between(userpos).del(num_items)n }nn pub fn edit(&mut self, userpos: usize) -> (Edit, usize) {n let (''cursor, item_of''''>'''' 'a'''a'''<'fset) = self.iter_at_u'nn '' // pub''' 'a'''' ''' fn edit_b''n'_''''N' ','etween(&mut self, user''''''''''''''''N' 't'u'm'&' ':'y'f'i't'o'n' ','pos: usize) -> Edit {n '' // let (cursor, item_offset) = self.iter_at_userpos(userpos);n '' // assert_eq!(item_offset, 0, 'edit_between landed inside ''an item');n '' // Edit { list: self, cursor, notify: uns''''''''''''''''N' 't'u'm'&' ':'y'f'i't'o'n' ','afe { &mut NULL_NOTIFY_TARGET''n'_' } }n ''''''''''y'f'i't'o'n' ',' // }'serpos(userpos);n (Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }, item_offset)n }nn pub fn edit_between(&mut self, userpos: usize) -> Edit {n let (cursor, item_offset) = self.iter_at_userp'''n 'n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: notify_target }, item_offset)n }' 'os(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: unsafe { &mut NULL_NOTIFY_TARGET } }n }n}n' break; }''n ''''''NotificationTarge'''>'C'<'t''''''''N''' '' ',''f'i't'o'N'''''''''''''''''N' 't'u'm''''n'&' ':''''&'y'f'i't'o'n' ','''i'''n'_'L'''n'_' ':'N' ',' n'''''''''y'f'i't'o'n' ','' (*n'''''''''' ':'y'f'i't'o'n'''''''N''''n' 't'''u'm'&' ',').parent = new_nod'''''''''''''''ULL_NOTIFY''_'N''''''')'(' ':''''''''''';')'(' '=' ''''''''''''')'(' ':'''''''''''''''''N''''n' 't'u'm'&' ':'y'f'i't'o'n' ','T'E'G'R'A'T' 't'u'm' '''n'_''n'_''c'i't'a'''''''''y'f'i't'o'n' ','t's'n'n'e_ptr;''n'_'n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n '' 'n ' '' pub fn new_from_iter>(iter: I) -> Self {n let m'// 'ut rope = Self::new();n 'n' '_' rope.insert_at(0, iter)''n'_';n ''''''''y'f'i't'o'n' ',' ropen }nn pub fn new_from_slice(s: &[C::Item]) -> Self where '// 'C::Item: Copy {n Self::new_from_iter(s.iter().copie'''''n 'd())n }n' ' }n'// ' '// ' n self.num_items += n'n'um_'_'items;n self.num_usercount += new_userlen;n if move_cu'// 'rsor {n cursor.userpos += new_userlen;n '//'' ''' cursor.local_index = num_items;n }nn not''if'// 'y(new_n'// 'ode.content_slice(), It'n'emMar'_'ker {n ptr: new_node_ptr,n ''''''''''''''''N' 't'u'm'&' ':'y'f'i't'o'n''''N' ',' _p''hantom: PhantomD'// 'atan });n }nn // unsaf''e fn insert_at_ite'/''/ 'r(&mut self, cursor: &mut Cursor'', contents: &[C::'// 'Item]) '// '{n unsafe fn insert_at_iter<'n'Notify,'_' I>(&mut self, cursor: &mut Cursor, contents: &mut '''// ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''// '''''''''// '''''.'t'e'g'r'a'''n 'n pub fn edit_n<'a>(&'a mut self, userpos: usize, notify_target: &'a mut N) -> (Edit, usize) {n assert!(N::notifications_used());n let (cursor, item_offset) = self.iter_at_userpos(userpos);n (Edit { list: self, cursor, notify: notify_target }, item_offset)n }' ''t' 'n'o''n'i't'a'c'i'_''f'i't'o'n' 'o'n' 's'''e'r'e'// ''h't' 'f'i' 'e'l'b'a'l'i'a'v'a' 'y'l'n'o' 'e'r'a' '// ''s'd'o''// 'h't'e'm' 'e's'e'h'T' '/'/'n'''''''''''ListConfi'''SkipLis'''''''''// ''n pub fn replace_at>(&mut se'// 'lf, start_userpos: usize, removed_items: usize, inserted_content: I) {n self.edit_betwee'// 'n(start'// '_userpos).replace(removed_items, inserted_content);n }nn p'// 'ub fn replace_at_slice(&mut self, start_userpos: usize, removed_ite'// 'ms: usize, inserted_content: &[C::Item]) where C::Item: Copy {n sel'// 'f.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n '// ' }nn pu''''''''' '{' ''ULL_NOTIFY'e'f'a's''}' ''n'u'b fn ''''''''T'E'G'R'A'T'_'N'''m''odify_item_after(&mut self, userpos: usize, modify_fn: F) {n let (mut edit, offset) = self.edit(userpos);n edit.modify_current_item(|item| modify_fn(item, offset))n }nn pub fn i'unsafe { &mut 'ULL_NOTIFY'N_TARGET }'nsert_at>(&mut self, userpos: usize, contents: I) {n let (mut edit, offset) = self.edit(userpos);n edit.insert_between_iter(offset, contents);n }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n }nn pub fn del_at(&mut self, userpos: us''i''ze, num_items: usize) {n self.edit_between(userpos).del(num_items)n }nn pub fn edit(&mut self, userpos: usize) -> (Ed''it'')'(''')>, usize) {n /''/ self.edit_notify(userpos, no_notify_x::, f)n let'' (cursor, item_offset) = self.iter_at_userpos(u''''' 't'u'm'&''''')'('serp''o''s);n ')' assert!(!N::notifications_used());n (Edit { list: self, cursor, notify: Self:'':no_n')'o'('tify }, item_offset)n }nn pub fn ''edit_between(&mut self, userpos: usize) -> Edit)> {n // self.edit_notify(userpos, no_notify_x::, f)n '''''''''''''''''''''''''''''''''''''''''''.'t'e'g'r'a't' 'n'o'i't'a'c'i'f'i't'o'n' 'o'n' 's'''e'r'e'h't' 'f'i''''w' 'y'l'n'O' '/'/'n' ' ' 't'l'u'e'm'imp'<''C: ListConfi', N: Noti''f''i''cationTarget'''''''''''''_''N''' ':'N' ',''''_''''N'''g, N: Notifi'_'''''''''cationTarget>'''l> ''impl SkipList ''impl> ''t'&' (cur''sor, item_offset')') ='(' self.iter_at_u')'serpos(userpos);n assert_eq!(item_offset, 0, 'edit_between landed inside an item');n Edit { list: self, cursor, notify: Self::no_notify }n }'''}''n 'n ' '{' '>''''''''''''')'(' ','C'<'t''''i'k'S' '>'g'''''t's'i'L' ':'C'<'''' 'l'p'm'i'n'I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion''''''NotificationTarge'''>'C'<'t''''''f'i't'o''''N''''C' ','N' ':'N' ',' offset into the destination no'impl''' ','I'> ''impl ''impl> 'de.n asse'''N' ','rt!('''''''N' ','cursor.userpos <= self.num_usercount);n 'impl> ' assert!(cursor.local_inde'' N','x <= (*e).num_items as usize);nn // We'impl ' mi')'ght be 'impl> 'able t'('o insert the 't'n'''''''N' ','ew data into'h' the current 'g'node, dependi'i'ng onn 'e' // how big i'h't is.n let num_inserted_items = contents.len();nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + '.'num_inserted_items <= NODE_NUM_ITEMS;nn // Can we in'I: ExactSizeIterator'''sert into the start of the successor node?n if !insert_here && cursor.l''o'n 'assert!'!'(N::notifications_used());' '''c''a''l''_''i''n''dex == (*e).num_items as usize && num_inserted_ite'edit_betwee'''''''''n ''''''' 'n'f' 'b'''''''b' 'u'p' 'n ' '''n''''(userpos: ''''''''a''''''''''>'''' 'b'''a''' ':'b''' ','a'''<'usize)'ms <'''''' 'a'''''w't''''''''''''''''t'e'g'r'a't'_'y' -> (Edit, usize)''f'i't'o'n' ''e'b'_'= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We', N: NotificationTarget' can't insert into the cu'''N' ','rrent'''''''' ':'y'f'i't'o'n' noden // - There _is_ a next node to insert inton // - The '''''r'e't'f'a'''t'a''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'u' ''''''''''''notifications_us' '' // let (cursor, item_offset) = self.iter_at_userpos(userpos);n '' // (Edit { list: self, cur'''''''t'e'g'r'a't'_'sor, notify }, item_offset'')n''n 'ed('';')')':':'N'('!'t'r'e's's'a' ''m'&'''''''':':'N' ':'t'e'g'r'a't'_'y'f'i't'o'n' ','''''''' ''' }''n 'n ' '{' ')''''''' ','e'z'i's'u' ':'s'o'p'r'e's'u' ','f'l'e's' 't'u'm'&'(''''<''''('y'f'i't'o'n'_'t'i'd'e' 'n'f' 'b'u'p' ''''''''''''''r'e''''''''e'z'i's'u' ','t'f'a'''i''nsert would be at the' let (mut edit, offset) '// '= self.e'n '''''''''''''''''''''''''modify'''''''')'(' '=' ''''''' '='''''t'n'e'r'r'u'c'_next''' // self.edit_between(userpos).modify_n'// 'ext_item(modify_fn)n'''_ite'''''''''modif''y''_''f''''''''''''''''''// ''''n '''''''''' '''' ''' '// ' }''n 'n ' '{' 'e's'l'e' '}' ')')'t'e's'f'f'o' ','m'e't'i'('n'''''i'd'o'm' '|'m'e't'i'|'('m'''''i'd'o'm'.'t'i'd'e' '{' '0' '// ''='=' 't'e's'f'f'o' 'f'i' 'dit(userpos);n' start of the next noden // - There's r': FnOnce(&mut C::Item)'oom in the next noden if let '''F: '''S''''': FnOnce(&mut C::Item)'o''m''e''(''n''e''x''t'')'' = (*e).first_skip_en''try_mut': ExactSizeIt''e''' '''' 't'u'm' '// ' self.edit_between(userpos).insert_iter(conten'n '''''''''''''''''''''''''''''''''''''''''n ''''''insert_between_iter''''''t'''''''''s';''''t'n'e't'n'o'c'e's'f'f'o'(offset: usize, mut contents: I)''''''r'e's'n'i'.'t'i'd'e' ';')'s'o'p'r'e's'u'('t'i'd'e'.'f'l'e's' '=' ')'t'e's'f'f'o' ','t'i'd'e'(' 't'e'l' 'ts)n'rator '().node.as_mut() {n '' '' ')'''' ''' '' ''i''f'' next.num_it''e'e''dit_between(userpos: usize)'ms as usiz'w'e't' 'e'+'b' '_'num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n '' e = ne''xt;nn insert_''here = tr'edit_between(userpos: usize)'ue;n 'w' 't' 'e' }'b'n '_' }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n /''/ println!''('insert_here {}', contents);n // Fir''st push the current 'edit_between(userpos: usize)'items later in'w' the 't'array'e'n 'b' '_' let c = &mut (*e).items;n '' i''''' 't'u'm'&'f item_idx < e_num_items {n // Can't use copy_within because Item doesn't necessarilyn // implement Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n'''n ''''''''''''''''''''(&mut self, userpos: usize) ->'' (Edit)>, usize) {n // self.edit_notify(userpos, no_notify_x::, f)n let (cursor, item_offset) ='t' self.iter_a''t_userpos(use''rpos)'n '' 'assert_eq''''item_offse''''''''''''''''''''''''''''''''''''''''''''''''';')'''m'e'''t'i' 'n'a' 'e'd'i's'n'i''''b' 'd'e'd'n'a'l''''''''' 'd'n'u'o'f' 'n'e'e'w't'e'b'_'t'i'd'e'''''''' 't'o'n'n'a'C''' ','0' ','t'''''''o'_'m'e't'i'('!'''s'a' ';n (Edit { list: self, cursor, notify: Self::no_notify }, item_offset)n }''''_'n''''('e'e'w't'e'b'_'t'i'd'e' 'n'f' 'b'u'p' 'n ' ' (*e).num_items as usize - item_idx);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old')' items - they w'('ere only moved.'t'n 'h' slot.as_mut_p'g'tr().write(item'i');n 'e'}n '' '''''''''''''':'' '''a'''''''''''''','a''' ':'b''' ' l'a''''h'et dest_cont'''Notifi'b'''cationTarge'''>'C'<'t'''''i't'o'N''''SkipListNotify'ent_slice '''N' ','= maybeinit_slice_get_ref(d','est_content_slice);nn 'a''' (*e).num_''' 'b'''items += num_''''''N' 't'u'm'&'inserted_items as u8;n self.num_items += num_inserted_items;n '.' let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_user')'count += num_inse'('rted_usercount;'<'a, C: ListConfig, N: NotificationTarget>'nn't' // ..'h'.. aaaand update 'g'all the offset am'i'ounts.n 'e' cursor.update_o'h'ffsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update t'.'he cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, _end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a co''py.nn // Note that if w''''t'x'e'n'''e'' ''w''anted to, it would also be correct (andn // slightly'prev_' more space efficient) to pack some of the newn // string's characters into''''' 't'u'm'&' this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_o''''m'_'ffsets(self.head.height as usize, -(end'('_usercount as isize));nn // W'''''''')'e'z'i's'u' ','e need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercou'(''''('nt -= end_usercount;n '''item_offset, ' ''''item_offse')'''t'', ' ','' self.num_items -= num_end_items;nn (Some(end_items)'(', end_us'''''''')'e'z'i's'u' ','ercount)n } else {n (None, 0)n };nn // Now we insert new nodes con'('taining the new character dat'it')'em_''offs''et, 'a' '.',' Then '' // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton ''''.')' // the start of the subsequent n''ode.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }nn ''n // self.modify_at(start_userpos, Self::no_notify, |item, offset| {n ''.')''' // assert''_''eq!(offset, 0, 'replace_at must modify the entire item');n // *item = n // })'n''''' '''' // TODO: Consider re'''// 'cursively calling '.'i')'nsert_at_iter''(''''''''FnMut(&[C::Item], ItemMarker)' 'l'p'm'i' ',') ''here inst''ea'// 'dn '''// ' // of making a whole new node'n ''''''''{' '' 'e'f'a's'n'u' ' for'' the'// ' remaining content.n ' '''' '// ' '' '' '' '// '''n 'n' ' s' 'elf.''unwrap'''''''t''''''c'e'p'x'e''''''''')'('p'a'r'w'n'u'''.'m' ''notif''y''(items: &[C::Item], at_marker: ItemMarker)'''''i't'o'n'.''' 'odify_at(start_user'//' ' 'pos, Self::no_noti''fy, |ite'// 'm, offset| {n ''''''FnMut(&[C::Item]' ', ItemMarker'>')' ':'N'<'''n // pub fn edit(&mut s' 'elf, userpos''''' 'l'p'm'i''''''''t'u'M'i'''''N' ','n'F':'l' u'n'size, ''f: ' 'F) -> Rn // where F: FnOnce(&mut Edit) -> R {n // // self.ed' 'it_notify(userpos, no_notify_x::' ', f)n // let (cursor, item_offset) = self.iter_at_userpos(userpos);n // ' ' let mut edit = Edit { list: self, cursor, item_offse'' }'n 't, not', notify' ': fn(&[C::Item], ItemMarker')''''')'''''','''' ''f'':'' F) -> R'''ify: Self::no_notify };nn // // TODO: Or may''be I should pass o'node_'wnership here?n // f(&mut edit)n //'' ''}''''' assert_eq!(offset, 0, 'rep''.'// ')''l''ace_at must modify t'// 'he en''tire i'prev''current'tem');n *item = n ' // pub fn edit(&mut sel''f'i'prev''''''''t''''''''t'n'e'r'r'u'c'n'e'r'r'u'c'', userpos: usize,'' f: '>'F) -> ''Rn'>' // whe'prev''''''''''t'n'e'r'r'u'c'''''''''re F: F''nOnce(&mut Edit) -> R {n // // s'{'e''lf.edit_notify(userpos, no_notify_x::, f)n // let (curs', notify: fn(&[C'n'::Item], ItemMarker), f: F) -> R''''''''''''''''''''n where F: FnOnce(&mut Edit) -> R '''' '''>'C'<'t'i'd'E' '>'-' ')'''o'''''''n ''''''''''''''''''''''''''''ListIte''''''' 'ListIte'''n ''''''''''''''&'i''''''''he''n '''''''''' }'n '0' ':'x'e'd'n'i' ','a''''''_'e'd'o'n')'d''''''a'e'h'.'f'l'e's'('e'm'o'S' ':'e'd'n pub fn prev_item(&self) -> Option<&C::Item> {n unsafe { self.cursor.prev_item() }n }n''o'n' '{' ''''t'x'e'n''''''''''r''''''I't's'i'L' ''' }''n '' ''' '''''''t'n'e'r'r'u'c''''''''''m'e't'i'_'t'''''''''''''i't'_'T'x'e'n' ''n'' '' ' '{' '>'C'<'r''''''I't's'i'L' '>'-' ')'f'l''''b'u'p'e's'&'('r'e't'i'_'''''_'v'e'r'p''m'e't'i' 'n'f' 'b'''u'p' 'n''''t'x'e'n' ' 'r, item_offset'''''''''{' 'e'f'a's'n'u' ') = self.i''}' 'te''r''_at_userpos(userpos);n '''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''.'v'e'r'p' 'y'f'i'd'o'm' 't'o'n'n'a'C' '.'t'n'e'm'u'c'o'd' 'f'o' 't'r'a't's' 't'a' 'r'o's'r'u'C''''''''''''''y'f'i'd'o'm' 't'o'n'n'a'C''''''''''o'm' 't'o'n'n'a'c'''''''r'o''''p's'r'u'C'''''''a'C''''c'e'p'x'e''unwrap()'''n'u'.''' '' // let mut ''''t'x'se'current'lf.cursor.curr''en'next''''''''''t'n'e'r'r'u'c'''''''t_item_mut()''''''e'n'''e''d''i'''self.cursor.prev_item_mut('')'t = Edit { list: self, ''cursor, item_of';'n // TODO: Or maybe I should pass ownership here?n f(&mut edit)'n'''f''s''et, notify: Self::no''_notify };nn '''// '''/''/'' ''}''' ''' '' ''// TODO: Or maybe I should pass ownership h''ere?n // f(&mut ed''it'// ')n '' // }n' '' })' ''''''//'// ' 'n '' ' ' '' '// ' '' if'''''''''''' '''>'C'<'t'i'd'E''' let Some(e''nd_items'// ') = en'/''''/ 'd'// '''_item'' '''// 's'''// ' {n '' '' '' '/'''''_'v'e'''''''r'p'''/'' ''' /''/ '// 'Passin'''''_'v'e'r'p'g'' false t'// 'o in'/'''''// '/ '''dicate we''// '// ' don't wa''nt'' ''the cursor'' u'// 'pdate'// 'dn '' '// '''' notify''''' ':'N''''FnMu'// 't(&[C::Item], ItemMarker)' ',''''N' ',':'fn''''''''''''''e's'l'a'f'''''t'u'M'n'F' ''// 'l'p'm'''i' fn(&[C::Item], ItemMarker)n' '// ' //''// '// ' af''ter this - it sh''''''_'e'd'o'n''o''u''// ''ld remain at the end ''of th'// 'e n'''''// 'ewlyn '// ' // i'// '''nserted cont''ent, whi'mIte'ch is *before* this en''d bit.n '' self.in'// 'ser''n ''''''''''''''''''''''''''''''e'u''''e'r't'''''''''''''''.'t'n'i'h'_'e'z'i's' ''''''' 'e'r'o'F' '/'/' 'e'z'i's'u' ':'s'm'e't'i'_'g'n'i'n'i'a'm'e'r' ','t_'n'node_at(cursor, &mut UninitOwne''dIter::'n '''mIte''''// '''''edit'''''''''''''s''// ''''''''''n ''''''''' 'b'u'p''''replace_a'''''''''''''''''''''''''''''''''''';')'t'n'e't'n'o'c'_'d'e't'r'e's'n'i' ','s'm'e't'i'_'d'e'v'o'm'e'r'('t''''''a'l'p'e'r'.'t'i'd'e' ''' }'n '{' '|'t'i'd''''''''''t'd'i'e'|'o'p'r'e's'u'_'t'r'a't's'(u''''serpos: usize, f: F)''''i'd'e'.'f'l'e's' '' pub fn modify'''''_'m'e't'i'_'''''''nstruct''''t's'i'L' NodeIte''''''.'f'l'e's''remaining_i''''''remaining_item'')')'s'.'''''''n'i'n'i'a'm'f'l'e's'tem''''''''''''f'l'e's''''''''''e'r'('e''''m''''''''''('e'z'm'o'S' ','s''remai'''g'n'i'n'''''''n'i'a'm'e'r'('''r<'a, C'''n '''''' ':'e'd'o'n''''n ''''size_hint'''''f'l'e's'&'('''''''''<'''''>'''''''''''''''''''''''n 'unimplemente''')'('!'d'''''''l'p'm'''i'''n'u''' ''''''' }'n '{' ')'''' ')'e'z'i's'u'('n'o'i' unsafe {' '''n if self.item_offset == 0 {n'' '' '' '' ' ' ''''t'p'O' ','e'z'i's'u'(' '>'-' ')''''''''''z'i's' 'n'f' '' '''''r'e't'i'_' 'n ' ' '' ''n'''{''' ''''' 'n ''''''' ':'x''' '''}'n ''''e'd'n'i' ','''''': ListConfig>(Option'''''''e''' 'n ' let num_inserted_items = contents.len();n let start_userpos = self.cursor.userpos;n' 'z'i'''s'u' ','<'' 'n ' let current_item = self.cursor.current_item();' 'n le''''''t'e's'f'f'o't (start, end) = C::split_item(current_item, self.item_offset);' 'n // Move the cursor back to the start of the item we're''t' 'e' 's' 'f' 'f' 'n 'o' // splitting.' 'n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);' 'n // This feels pretty inefficient; but its probably fine.' 'n self.list.replace_item(&mut self.cursor, start, &mut self.notify);n' 'n // TODO: Consider concatenating end into contents then just call' 'n // insert_at_iter once.' 'n self.list.insert_at_iter(&mut self.cursor, &mut con'' 'n ' pu''''''''n'e'e'w't'e''''''''''''''','e'z'i's'u' ':'t'e's'f'f'o' ''b'_'b f''''''''_'n'e'''''''' ','t'e's'f'f'o''e'w't'e'b'n insert(&mut self, item: C::Item) {n self.insert_iter(iter::once(item));n }' ''''n 'tents, &mut self.notify);n' 'n self.dbg_check_cursor_at(start_userpos, num_inserted_items);n' 'n self.list.insert_at''_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);' '&'a Node>);nimpl<'a, C''''''''r'e't'I't's'i'L': ListConf''n ''''''''''''''''''''''''''''''''n ''''''''''''s' 'n'f' 'n ' ''''''''''''' '''''''''''''''&'''''''''''''''''''''''''n '''''''''''''''')'('h's'i'n'i''''-'f'.')')'('r'e't'i' '''''''''''''''''''n '' ''''''' ''''''''''''''''''''num_item'''''''''e'z'i's'u'' ' 's'a' ''''n 'get_next_ptr()''''''n'_'t'e'g''' ''''''''''''''''n ' ' '' '''''''''''''unsafe { '''e'd'o'n.first_skip_entry().node.' 'as_ref() ';'''}''''''''''''''''''''// ''''''';')'('e'd'o'n'_'t'x'e'n'.'''''''n'.'e'd'''''''''' '''''''''''''''''''g'u' ''// ''b'e'D'''' ':'''' '' ':'t'm'f' ':'m'e'''t'I':':'C' 'e'''''':':'t'm'''// ''''''''':':'t'f'' 'r'e'h'w' 'o'n'.'f'''l'// ''e's' '//'' ''=' 'e'd'o'n'.'f'l'e's' '' ';'0' '=' 'x'e'd'n'i'.'f'l'e's''' ''' }'n '{''' '''s''''m'u'''n'.'''''''''''''n'e'l'.'e'd'o'n' '='='''''''''' '='=' 'x'e'd'n'i'.'f'l'e's' 'f'i' ';'1' '='+' 'x'e'd'n'i'.'f'l'e's''''''''''''''''''''''''1' '+' 'x'e'd'n'i'.'f'l'e's' 'f'i' ''''''n '' '''''('e'm'o'S'&''*'''''''''''''''r't'p'_'s'a''' '{' 'e''')'''''''''''}' ')'' ''''''''''''''''''''''''''''f'l'e's'''''''insert_ite''''''''''''''''n '}' ';')'s't'n'e't'n'o'c'('r'''''''''i'_'t'r'e's'n'i'.'s'i'h't'''''''n'i' 'n'r'u't'e'r' '{' '0' '='=' 't'e's'f'f'o' 'f'i' '('f'e'r'_'t''''n ''''''''''''''''''''''''''(&mut self''''''''''''''','e'z'i's'u' ':'t'e's'f'f'o' ', mut contents: I) where I: Ex''' }''n 'n ' 'actSizeIterator {'n'e'e'w't'e'b'_'t'r'e's'n'i' 'n'f' 'b'u'p' 'n ' 'e'g'f'a's'n'u'''''''''.'t'n'e'r'r'u'c' 'n '' ' ';']'x'e'd'n'i'.'f'l'e's'['s'm'e't'i'.''''['e'd'o'n' '='n ''''''''''''''''''''''''''''''''''''''''''''''''''m'e't'i' 't'x'e'n' 'e'h't' 'o't' 'r'o's'r'u'c' 'e'h't' 's'e'v'o'm' 's'i'h'T' ':'t'a'e'v'a'C'''''' 's'i'h'T' '/'/'/' '' 't'n'e'r'r'u'c''''e't'i' 't'e'l' ''' ''''''''''''''}' ''''''n 'e'n'o'N' '{' 'e's'l'e' '}''n 'n ' '{' 'e'd'o'n'.'f'l'e's' '=' ')'e'd'o'n'''('e'm'o'S' 't'e'l' 'f'i'''''''''' '''''''''''''''_'s'i'.'''' 'e'd'o'n'.'f'l'e's' 'f'i' '''' 'a'''&'''''Item':':'C'ig> Iterator for Nod''e''' 'a'''I'''''n ''' 'f'i' '''t''er<'a'n 'unimplemente'!'''''';')'('d''''''p'm'i'n'u' ','' ''C'''// '>'Self::Item''C::I''Node'// '''C::I'''''''''''m'e't'I':':'f'l'e'// ''S'''''I':':'C' {n type Item = &'a Node;nn fn next(&mut self) -> Opt'// 'ion<&'a No'// 'de> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}'n'n'n'''// ''impl Iterator for SkipList {'// 'n type Item = C::Item;n'// 'n}''/'''n''''''''''''''' '''''''''r'o't'a'r'e't'I'l''' ''''''''''''''''Ite''''''''n ''''''''('t'x'e'n' 'n'f' 'n ' ';'m'''''m'e't'I':':'C' '=' 'm'e't'I' 'e'p'y't' '''}''n 'n ' 'p'm'i''n'n'''// ''''''''''ListCon''fi''n'''''n''n// impl fmt::Debug for SkipList {'''''''De''''''SkipLis'''''''// '''''n '''''''''''''''For''matter'''''m'r'o'F''''';'*'''''// '' '''debug_list(''''''''''''''.'// ''f'l'e'// ''s'('s'e'i'r't'n'e'.')''''''g'u'b'e'd'.'f' '''r'''''''''':':'t'm'f':':'d't's''o'F':':'t'm'f':':'d't's' 'e's'u' ''' '''''''''''''''''''''''Formatte'''''''''''''''''''' }''n 'n ' '{' 't'l'u's'e'R' '>'-' ')'>''''''_'''<'r''''''''''r'e't't'a'm'r'o'F' 't'u'm'&' ':'f' ','f'l'e's'&'('t'm'f' 'n'f''''n' '''}''n 'n ' '{' '>'C'<'t'''''l'i'k'S' 'r'o'f' 'bug':':'t'm'f''''''g'u'b'e'D' '>'g'''''t's'i'L' ':'C'<'l'p'm'i''''''' 'e'f'a's'''n'''''u''''''''n''''''''''''''''''l'o'o'b' ':'v'e'r'p'''''''''''''''''''n'e'r'r'u'c'_'y''' let item = if modify_prev { self.cursor.prev_item_mut() }' ''' let item ='' unsafe {n ';''' '' if'modify_prev'''''''''''''''self.cursor.prev_item_mut()''''y'f'i'd'o'm' self.i'self.cursor.current_item_mut('')'tem_offset > 0 { self.cursor.current_item'''''''''/'/' ';'0'_mut() }n else { self.cursor.prev_item_mut() }n }'''n ';'''n 'f'i'd'o'm''''item: &mut C::Item''''''''''''''''''''''''''''''''''''''''','m'e't'I':':'C' 't'u'm'&' ':'m'e''''''n '// ''let e'' = self.cursor.here_ptr()'''// ';' 't'i' ','>'C'<'e'd'o'' let old_usersize = C::get_usersize(item);n'''// ' modify_fn(item, se'('''lf.item_o')'''ffset);n ''le'// 't new_usersize = C::get_usersize(item'');nn'// ' let usersize_delta = new''_users'// 'ize as isize - old_usersize as isize;nn if usersize_'''' 'b'u'p'delta != 0 {n self.cursor.update_offsets(self.list.height(), usersize_delta);n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);n self.'n 'unsafe { self.modify_item''''e'u'r't'(false, modify_fn); }' '''i''tem_''offs''et = usize::max(self.item_offset, new_usersize);n }nn (self.notify)(std::sl'self.cursor.here_ptr('');'''ice::from_ref(item),'' ItemMarker {n ptr: e,n // _phantom: PhantomData,n ''''''''''''''''''''''''' '&'&' '0' '>' 't'e's'f'f'o'_'m'e't'i'.'f'l'e's'(' });''n'N' 't'u'm'*' ':'')'e'''''n'*' ''''''n'prev_'''p''u''b'' ''struct Edit<'a, C: ListConfig, ''Notify: FnMut(&[C::Item]''' '''n '}''n 'n ''''''e's'l'a'f''' ''n fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {', ItemMarker)> {n '''''n '''''''''''''prev_''''p''''''''''''''''''''''''''''' '// '''''''''''''.'r'o'n '''''''''item_offse''''''''''''''self.item_offse'''' '='''' '>' 't''''''''''current_item_mut(''}' ')'''''''r'r''''''' '{' '''e'''''' '''s'''''l'e''u'c'.''''n '''''''''''}'// '' '''''''x'e'n'.'r'o's'r'u'c'.''n ''''''''' '{' 'e'f'a's'n'u'''''''modify_item'''''''''''''current_item''}' '_mut()''''''''''n';''f'_'y'f'i'd'o'm'''''r'r'u'c'.'r'o's'r'u'c'.'f'l'e's'(item: &mut C::Item, modify_fn: F)''''''f'i'd'o'm'.'f'l'e's' 'f'l'e's' '{' '0' '>' 't'.'f'l'e's' 'f'i' ''n '''''' '''' ''s'r'u''''''''n '''''.'f'l'e's' '='=' ''c'''''''n ''''''!''modif' && self.cursor.is_at_n'prev_ite''''t'u'm'_'''m''()'''''v'e'r'p'ode_end()'y_n' ''''''''' '&'&' 'ex'''''''''''''''''''is_at_node_end('''''n ''' }'n '{' ')'''s'i'.'r'o's'r'u'c'.'f'l'e's' '&'&' 't'''''i'd'o'm' 'f'i' 'local_index'''''''_'l'a'c'o'l'.'f'l'e's' ''' }''n 'n ' '{' 'l'o'o'b' '>'-' ')'f'l'e's'&'('e'd'o'n'_'f'o'_'d'n''''d'''''''''''''f'o'_'n'e'_'t'a'''''''s'i' 'n'f' 'n ' 'list: &'a mut SkipList,n cursor:'''''''''''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!'s't's'e't' 's'd'e'e'N' '.'t'c'e'r'r'o'c' 's'i' 'n'o'i't'c'n'u'f' 's'i'h't' 'f'i' 'e'r'u's' 't'o'N' ':'O'D'O'T' '/'/' '''''''''','l'o'o'b'''''t'x'e'n''''''''' ':'t'x'e'n'_'y'f'i'd'o'm''''''_'t'n'a'w' ' Cursor,n 'n ''''''''''''''''is_at_node_end''n ''''''''get_usersize''''''''' '{' 'e'f'a's'n'u'''''(_it''}' 'em: &Self::Item)':'''''''''''''''''''''')'t'e's'f'f'o'_'m'e't'i''local_index'''''a'c'o'l'.'f'l'e's' '='<' ')'':'C'(''''''''''''current_ite'')'('m''''''''t'n'e'r'r'u'c'.'r'o's'r'u'c'*'''''''''.'f'l'e's'*' '|'|' '''''''|' ''''here_''here_pt'()'''r''()''''''_'e'r'e'h''''is_at_node_end('''n ''''''advance_item(''' 'n '''''.'f'l'e's''modif'''''''''''''''''''';')'n'f'''_'y'f'i'd'o'm' ','f'l'e's'('y_prev_item''''''''''''v'e'r'p'_'y'f'i'd'o'm' '}'n ';')'''''a'v'd'a'.'f'l'e's' '{' ')'.'r'o's'r'u'c'.'f'l'e's' 'f'i' ' item_offset: usiz'' }'n 'e, // Offset into the current item.'''''''''''' 'f'i' 'n notify: Notifyn}n// pub struct Edit<'a, C: ListConfig> {n// list: &'a mut SkipList,n// c''' '// ' pub fn modify_prev_item(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {n'''n '''n 'ursor: Cursor,n// item_offset: usize, // Offset into the current item.n// notify: fn(&[C::Item]'prev_', ItemMarker)n// }nn// impl<'a, C: ListConfig, N''otify: Fn' 'Mut(&[C::Item], ItemMarker)> Edit<'a, C, Notify> {nimpl<'a, C: ListConfig, N: FnMut(&[C::Item], ItemMarker)> Edit<'a, C, N> {n fn dbg_check_cursor_at(&self, userpos: usize, plus_items: usize) {n if cfg!(debug_assertio')'ns) {n l'('et (mut c2, _) = se't'lf.list.iter_at_use'h'rpos(userpos);n 'g' c2.advance_'i'by_items(plus_items'e', self.list.head.he'h'ight);n assert_eq!(&self.cursor, &c2);n }n }nn pub fn del(&mut self, num_items: usize) {n assert_eq!(self.item_offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.list.del_at_ite'.'r(&self.cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.list.iter_at_userpos(self.cursor.userpos);n if &self.cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }nn pub fn insert_iter(&mut self, mut contents: I) where I: ExactSizeIterator {n if contents.len() == 0 { return; }n let num_inserted_items = contents.len();n n // userpos = min(userpos, self.get_userlen());n // let (mut cursor, offset) = self.iter_at_userpos(userpos);nn let start_userpos = self.cursor.userpos;nn unsafe {n if self.item_offset == 0 {n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);n } else {n let current_item = self.cursor.current_item();n let (start, end) = C::split_item(current_item, self.item_offset);n // Move the cursor back to the start of the item we'ren // splitting.n self.cursor.move_to_item_start(self.list.head.height, self.item_offset);n // This feels pretty inefficient; but its probably fine.n self.list.replace_item(&mut self.cursor, start, &mut self.notify);nn // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.n self.list.insert_at_iter(&mut self.cursor, &mut contents, &mut self.notify);nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);nn self.list.insert_at_iter(&mut self.cursor, &mut iter::once(end), &mut self.notify);n }n }n }nn pub fn insert(&mut self, item: C::Item) {n self.insert_iter(iter::once(item));n }nn pub fn insert_slice(&mut self, items: &[C::Item]) where C::Item: Copy {n self.insert_iter(items.iter().copied());n }nn pub fn replace(&mut self, removed_items: usize, mut inserted_content: I)n where I: ExactSizeIterator {n assert_eq!(self.item_offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n let start_userpos = self.cursor.userpos;n n unsafe { self.list.replace_at_iter(&mut self.cursor, removed_items, &mut inserted_content, &mut self.notify); }nn self.dbg_check_cursor_at(start_userpos, num_inserted_items);n }nn pub fn prev_item(&self) -> Option<(&C::Item, usize)> {n if self.item_offset == 0 {n if self.cursor.local_index == 0 {n // The only time a cursor should be at the start of the node isn // when the cursor is at the start of the entire list.n assert!(self.cursor.userpos == 0, 'Invalid state: Cursor at start of node');n Nonen } else {n ')' let prev_i'('tem = unsafe { self.c't'ursor.prev_item() };n'h' Some('g'(prev_item, C::get_us'i'ersize(prev_item)))n 'e' }n 'h'} else {n Some((unsafe { self.cursor.current_item() }, self.item_offset))n }n }nn pub fn advance_item(&mut self) {n self.cursor.advance_item(self.list.head.height);n self.item_offset = 0;n }nn pub fn modify_i'.'tem(&mut self, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {n let e = self.cursor.here_ptr();n let item = unsafe { self.cursor.current_item_mut() };n let old_usersize = C::get_usersize(item);n modify_fn(item, self.item_offset);n let new_usersize = C::get_usersize(item);nn let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n self.cursor.update_offsets(self.list.head.height as usize, usersize_delta);n self.list.num_usercount = self.list.num_usercount.wrapping_add(usersize_delta as usize);n self.item_offset = usize::max(self.item_offset, new_usersize);n }nn (self.notify)(std::slice::from_ref(item), ItemMarker {n ptr: e,n // _phantom: PhantomData,n });n }nn pub fn replace_item(&mut self, replacement: C::Item) {n self.modify_item(|old, _offset| *old = replacement);n }n}n'n'n'n'n''':':'f'l'e'S'at(&mu''''t'' self, ' self.edit(userpos, |edit| edit.del(num_items''''''); })'' self.edit(userpos, |edit| edit.del(num_items);'userpos: usize, modify_fn: F) wher''e F: FnOnce(&mut C::Item' self.edit(userpos,'''n ''' ''|edit| edit.modify_item(modify_fn'';')''''')''; }'' '''' self.''e''dit(u''serpos, |edit| edit.modify_item(modify_fn'');', usize'') 'n '''''''''''''''''''''''''st'_iter''''n '' '''''''''''''''''''''''''''''''''''''''')')'s't'n'e't'n'o'c'('t'r'e'''s'n'i'.'t'i'd'e' '|'t'i'd'e'|''''''''''''''''''modify_f'''' }'n ';')'n'''''''y'n ''''''edit_notify'''''''s'''''''y'f'i't'o'n'''o'p'r'e's'u'(userpos: usize, notify: fn(&[C::Item], ItemMarker), f: F)''''i'd'e'.'f'l'e's' ''f'i'd'o''// 'm'('modify_item'''''i'd'o'm'.'t'i'd'e'''''''''''// ''e's' '{' 'art_userpo''''''''|'t'i'd'e'|' ','s''''''''u'_''// 't'r'a't's'('t'i'd'e'.'f'l'e's' '''{'''::from'// '_'''// 's'''// '''l'// 'ice(end_items), end_i''tems.len(), false, not''ify)'// ';n '// ' '// ' ''}n '// ' }n'' '// '// '' }nn // unsafe fn insert_at_iter(&mut sel'// 'f, cursor: ''&mut C'// 'urso'// 'r, c'// 'ontents: &[C::Item]) {n // '// 'self.insert_at_i''ter''_and'// '_''// '// 'notify(cur'// 'sor, contents'', S'// ''// 'elf::no_notify);n ''// }nn '// ' '// '/// Inter''estingly u'// 'nlike the original, here we only care '// '''about specif'// 'yin'// 'gn /// t''he number of r'// 'e''moved ite'// 'ms '// 'by counting the''m. We'// ' do not use'// ' usersize inn /// the deleted ''item count.n '// '// '' ///''n /// If the de'// 'leted content'' occurs at the start'// ' o'// 'f a node, the cursor passedn /// here must point to'' the end of t'// 'he previo'// 'us node, not the start of then /// current node.n unsafe fn d'// '''el_at_iter(&mu''t self, cu'// 'rsor: &'// 'mut '// 'Cursor, mut num_deleted_i''tems: usize) {n ''if nu'// 'm_del'// 'eted_items == 0'// ' { ret''urn; }nn '' ''let'''// ' mut i'// 'tem_idx = cur''// '// 'sor.local_index;n let mut e = cursor.here_ptr();n ''''''''''' 't'u'm'&''n ''''''m'// 'odify_at'''''''// '''''''''// 's''''''''no_notif'''''''''''''''''''n 'assert_eq'''''''''''''''''''''''''''''''''''''''''''''''''''''''n '''''''' '='''' ' 'm'e't'i'*' ';')'''m'e't'i' 'e'r'i't'n'e' 'e'h't' 'y'f'i'd'o'm' 't's'u'm'''''''' 't'o'n'n'a'c' 't'a'_'e'c'a'l'p'e'r''' ','0' ','t'e's'f'f'o'('!''''s's'a''' }'n ' '{' '|'t'e's'f'f'o' ','m'e't'i'|'''''y''''(_items: &[C::Item], _marker: ItemMarker)'''o'n''''N':':'f'l'e'S'o'p'r'e's'u'_'t'r'a't's'(us'n '''''''''''''''''unsafe { self.cursor.prev_item() ';'}' '=' 'm'e't'i'_'v'e'prev_item''''''_'v'e'r'p'''prev_item'''''v'e'r'p'r'p''' 't'e'l''self.cursor.prev_item()''' 'erpos: usize, mut notify: Notify, modify_fn: F)''''''f'i'd'''''get_usersize(_item: &Self::Item)':':'C'''o'm'.'f'l'e's' ' while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to'''// ' the start of the next one. We'ren '' // The only time a cursor'''''''''''e'''b' 'd'l'u'o'h's' is right at the start of the node isn // when the cursor is at the start of the entire list.'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'i'l' 'e'r'i't'n'e' 'e'h''''n't' 'f'o' 't'r'a't's' 'e'h't' 't'a'''''h'g'i'r' 's'i''''s' 'r'o's'r'u'c' 'e'h't' 'n'e'h'w' 's'i' ''''''' ','e'd'o'n' 'e'h't'''''''o'n' 'f'o' 't'r'a't's' 'e'h't' 't'a' 't'h'g'i'r' 's'i' 'r'o's'r'u'c' 'a' 'e'm'i't' 'y'l'n'o' 'e'h'T'''''' '''' 'n'e'h'W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'd'o'n' 't'x'e'n' 'e'h't' 'o't' 'e'v'o'm' 't'''n'o'd' 'e'd'''o'n' 'a' 'f'o' 'd'n'e' 'e'h't' 't'a'''''''''''''''''''''''''''e'd'o'n' 'a' 'f'o' 'd''''e'n'e' 'e'h't' 'o't' 'k'c'i't's'''''''' 'd'l'u'o'h's' 's'r'o's'r'u'C''''''''''''''''''''''''''''''''''''''''''''''''''' 'm'e't'i' 'e'h't' 'f'o' 'd'n'e' 'e'h't' 't'a' 'e'b' 's'y'a'w'l'a' 'd'l'u'o'h's' 's'r'o's'r'u'C' '/'/' ''''''n ''''C' '/'/' ' // intentionally not updating the it''''''''C''' ':'e't'a't's'erator'''''''''''''''''e'd'o'n' 'f'o' 't'r'a't's' 't'a' ' ''''''''''// '' ','y'f'i't'o'N'because if we del''e''ten '' ',''mut notify: Notif''y,' '''mut '// 'no'''''n 'n fn dbg_check_curso''r_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n '''''t's'i'l'.' let (mut c2, _) = self.iter_at_userpos(userpos);n '''''t's'i'l'.' c2.advance_by_items(pl'&''''''.'f'l'e's'us_items, self.head.height);n assert_eq!(cursor, &c2);n '''n '}n }' 'tify: Notify, ' // a whole no'n '' 'wher'// 'e Notify: FnMut(&[C::Item], ItemMarker),'' ' '''''de we n'// 'eed the iterator to point to the previousn'' '// ' // element. And if we only delete here, the itera''tor doesn'tn'// ' '' /'// '/ need to be ''moved.n '// ' e = entry.node;n if e.is_null() { panic''!('Cannot delete p'// 'ast the end of the list'); }n item_idx = 0''''''' 't'u'm'''''''y'f''// '''i't'o'n'&';n '// ' }nn let e_num_items ''= (*e).num_items as usiz'// 'e;n let removed_here = min(num_dele''ted_ite''ms, e_num_items - i'// 'tem_idx);n n let heig''ht = (*e).height as usize;n '// ''' let removed_userlen'// ';nn if removed_here < e_nu''m_items || e as *const _ == &sel'// 'f.head as *const _ {n '''''.list'''n '' '' '''''''''needs_dro''''''''n '''''''''''''''''''''''''''''''''''Ite''''' ''''''insert_iter'''''''once''''m'';'e't'i'(value: T)'''n'o':':'r'e't'i'(mut contents: I)''''''r'e's'n'i'.'f'l'e's' ''' }''n 'n ' '{' ')'m''''e't'I':':'C' ':'m'e't'i' ','f'l'e's' 't'u'm'&'(''''('t'r'e's'n'i' 'n'f' 'b'u'p' 'n ' '''''''''>'''// ''{' '_iter' '' 'm'e't'''I':':'C'''''''>'T'<':':'p()''''e'e'n'// '':':'m'e'm'''''''''e'e'n':'' '' ':'r't'p'''' '''t'''u'''m'''''// ''''e'e'y'''f'n'i'''t'''o'''n'''''''':':'C''// ' ''' '&' }'n '' 'f'i' ''n ' '// ' ' pub fn prev_item(&self) -> Option<(&C::Item, usize)> {n if self.item_offset == 'n ''''''''''''''''local_inde'''''''{' '0' '='=' ' ''x''''''x'e'd'n'i'.'r'o's'r'u'c'.'f'l'e's' 'f'i' '0 {n ' ' '' '''''''{' 'e's'l'e' ' ''}'n ' assert!(self.cursor.userpos == 0, 'I'' }'' 'n 'Some((unsafe { self.cursor'current_ite''m''()'''''r'r'u'c'''''''e'n'.prev_item() }, self.item_offset))' ' '' }'n 'nvalid cursor');n No''nen } else' Some((unsafe { self.cursor.prev_item() }, self.item_offset)'n } else {')n' {n Some((unsafe { self.cursor.current_item() }, self.item_offset))n }n }nn pub fn advance_item(&mut self) {n' ' ''''''''m'e't'i' ''''i'''''''''''''''''''''''''''' 't'' 'u'm't''n 'u' '// ' 'm' 'y' 'f' 'i'''''t'''''''o'dro'n'''p_in_plac''e'''''.list'''(to_d''ro''p: *'''';')'mut T'// ')'''''&'p'r'd''// ':':'r't'p'''// '''''''''''''''''''''''''''p'o'r'd':':'m'e'm' ''' '''t'''''''u'as_mu'm't_pt'')'('r'y'''''_'''''''<'n'o'i't'p'O'''''>''n '''''''''''''''''''''''''''''''''''''item_offse'''''''''''''''' else {'''''('e'm'o'S' (unsafe { self.cursor.current_item() }, self.i'''}' ')'tem_offset)'n ''''''' '{' 'e's'l'e' '}' 'e'n'o'N' '{' '0' '='=' 't''''e't'i'.'f'l'e's' '&'&''''7' '0' '='=' 's'o'p'r'e's'u'.'r'o's'r'u'c'.'f'l'e's' 'f'i' '''i'u't'o'I''f''s'a''i'.'m'e't''t'i''o' '' '// ' 'n ' ''p''u''b'' ''f''n'' edit_notify(&mut sel'// 'f, userpos: usize, notify: Notify, f: F) -> Rn where Notify: FnMut(&[C::Item], ItemMa'''// ''''// '''rker'')'','''''''''''{no_notify_x::}''expected type, found function''{''''''''''('f'o'}''''e'p'y't'''')''<''n'''''::)'''>''''''''''''''''''''''''''FnMut(&[C::Item], ItemMarker'>)' 's'a' '>'C'<':':'x'_'y'f'i't'o'n'_'''ot''no_notify_x(_items: &[C::Item], _marker: ItemMarker)'''// ''''// '''''t'o'n' ',' ''F: F''''N'N' ','nOnce(&mut Edit'')' 'l'', Notif'// 'y'''p'm'i'''&mut'// ' Edit''''',''n '' NN'':'' FnMut(&[C''::Item''// '// '], ItemMark''er)'// ' '''' ''') -> R,n '' NN:'' impl FnM'''// 'ut(&[C::'// 'Item], ''ItemMark'// 'er) {'' whe''re F'''n '''''''''''''''''''''''''''''''''''''' ':'s'm'e'''''''''''''''''''''''''' ''''''''''''_iter''''''''''''''''''''''''';')')'('d'e'i'''''''i'e'p'o''''l'c'.')'('r'e't'i'.'s'm'e't'i'('t'r'e's'n'i'.'f'l'e's' ''' }''n 'n ' '{' 'y'p'o'C' ':'m'e't''''m'I':':'C' 'e'r'e'h'w' ')'t'i''''''''''']'m'e't'I':':'C'['&' ','f'l'e's' 't'u'm'&'('e'c'i'l's'_'t'r'e's'n'i' 'n'f' 'b'u'p' 'n ' ''// ': FnOnce(&m''ut Edit''<'// 'C, N''N>) -> R, '// 'NN: impl ''FnMu''''t(&['// 'C' // pub fn ''edit_notify(&mut self, userp''os: usize, notify: ''' pub fn insert(&mut self, mut contents: I) where I: ExactSizeIterator {'' ''n ' pu''''b fn inse','''rt_at(&mut ''self, mut userpos: usize, mut contents'' '// ' userpos = min(userpos, self.get_userlen());n '// ' let (mut cursor, offset) = self.iter_at_userpos(user'''n '''''''''''''''''s'o'p'r'e's'u'_'t'r'a't's''''''''''''''''''''''''''''''''''''''';'s'o'p'r'e's'u'.'r'o's'r'u'c'.'f'l'e's' '=' 's'o'p'r'e's'u'_'l''''_'a'i't'i'n'i' 't'e'l' 'n ' 'pos);n'n''':'' I, mut notify: Noti''''''item_offset''''''_'m'e't'i'.'start_userpos''f'l'e's'fy'''''.'t's'i'l')n wher'''''.'f'l'e's'e Notify: FnM''mut '''&mut'''''.'f'l'e's' '''u''t(&['''''n ''''''''''''''''''''''''' 't'u'm'''''''''''''''''''''''''''''''''n ''' ''''''modify_item'''''''_'''''''t''''{'e's'f'f'o' ','''''''''''''''''''''t';''n'e'm'e'c'a'l'p'e'r' '=' 'd'l'o'*' '|'d'l'o''''e'|'''(modify_fn: F)'''''i'd'o'm'.'f'l'e's' ''' }''n 'n ' '{' ')'m'e't'I':':'C' ':'t'n'e'm'e'c'a'l'p'e'r' ','f'l'e's'&'('m'e't'i'_'e'c'a'l'p'e'r' 'n'f' 'b'u'p' 'n ' ''''.'f'l'e's'C'''''t's'i'l'.'::Item], Ite'''''.'f'l'e's'mMarker'self''''m'e't'i''''''''''''local_offset'.loca''offset'''''''loca''local_offset'''''a'c'o'l'.'f'l'e's'), I: ExactSizeIterator {n if '''''t's'i'l'.'cont'self.item_offset'ents.len() == 0 { return; }n let num_inserted_items = contents.len();n n '''''t's'i'l'.'userpos ''''''.'f'l'e's''''''e's'='''''.'f'l'e's' min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset '''''t's'i'l'.'== 0 {n '''''.'f'l'e's' self.i'''''.'f'l'e's'nsert_at_iter(&mut cu'''''.'t's'i'l'rsor, &mut '''''.'f'l'e''start_userpos'''''r'a't's''userpos'''''r'a't's's'contents'''''.'t's'i'l', &mut not'''''.'f'l'e's'ify);nn se'''''.'f'l'e's'lf.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_item(&mut cursor, start, &mut notify);nn // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.n self.insert_at_iter(&mut cursor, &mut contents, &mut notify);nn self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut notify);n }n }nn }' 'n ' 'Notify, f: F) -> Rn //'' where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut Edit) -> R {n // let (cursor, item_offset) = self.iter_at_userpos''(userpos);n // let mut edit = Edit { list: self, cur''sor, item_offset, notify'' };nn // // TODO: Or maybe I sho'''''n 'n ' 'uld p'// 'ass ownership here?n // f(&mut edit)n // }n'::''Ite'// 'm], ItemM'Notify, '''arker) {'>) -> R {''n''/'// '/ ' '''&'''fn(&[C::Item], ItemMarker)''// 'c''// 'n'''['// 'item_idx''..''''''it'Notif''''n'f'y: FnMut(&[C::It'// 'em], ItemMarker), '''''N''''//'' ''''''// ''FnMut(&[C::Item], ItemMarke'// 'r)' 'l'p'm'''i''''''''for<'r> fn(&'r ['// '::Item],'' skiplist::ItemMarker) ''{skiplist::no_''notify_x::}'>'''''''R''// 'n '// ''N' 'for<'r>'''' fn(&'r [::Item], '// 'ItemMarker) {''''''&' '''''''''' '}''''>'// ''-' '''''' ''':'N' ',''')'N'''e'// 'm_idx +'&''for<'r> fn(&'r [::It''e''m'''// ']'',''''''''{no_notify_x::}' ' skiplist::ItemMar''ker'')'' '// '{skiplist::no_notify_x::}''''2'3'''''''''3'2'u''''// '''// 'C'''''''>'_''' removed_h'// 'e'''''''''>'C'<':':'r'' 'n ' let (cursor, item_offset) = self.iter_at_userpos('&'userpos);n '' let mut edit = Edit { ''list: self, cu'''''''' ':'y'f'i't'o'n''no_notify_'':':''''>'C'<'''x'''<'(_items: &[C::It''em'>'], _m'// 'arker: ItemMarker)''''''o'n'_'o'n'rsor, 'FnMut'''n'f'item_offset, notify'''''// ''''n'''n'''''''''''''''':':'''''// '>'C'<'x'_'y'f'i't'o'n'_'// '''''n'o''no_notify_x(_items: &[C::Item], _marker: ItemMar'// 'ker)'''o'n''' ':' '// '};nn // TODO: Or maybe ''I should pass ownership here?n '' f(&mut edit)n' '''e'''''''// '// '''' '''''''''''' ','y'f'i't'o'N' ''''''''''''''y'f''' ''''''''''''''''''''''''''''''''&'('''''''''''''''' '(''''''// ''''''.'f'l'e's'''''''unsaf''''''''item_offse''''n ''''''''''''''''''''''''''f'''' '''''''''''''advance_item''''''lis''''''''''''t''n ''''''item_offse''''';'0' '''' pub fn modif'''''m'e't'i'_'y(&mut self,'' userpos: usize, modify_fn: F) where F: FnOnce(&mut C::Item, usize) {''''''''n 'n '''''.'f'l'e's' pub fn modif''''y'''''''''_'n'i''''''''''.'f'l'e's'''''''''''m'e't'i'''_''''at(&mut self, userpos: usize, mut notify: Notify, modify_''''''item_offse''t'.'f'l'e's'fn: F)n '''''n ''''new_usersiz'''''''''item_offset''''e't'i'.'f'l'e's' '>' 'e'''''_'w'e'n''''(' 'f'i' ' where Notify: FnMut(&[C::Item], ItemMarker), F: FnOnce(&mut C::Item, usize) {n let (mut cursor, offset) = self.iter_at_userpos(userpos);n '''''.'f'l'e's' let e = curso'''''.'t's'i'l'''''n ''''''item_offse''''''''''''''''('x'a'm':':'e''''new_usersiz'';''')'e' ','z'i's'u' ''''''''item_offse'''''''a'm'.'t''i'.'f'l'e's' '=' 't'''''m'e't'i'.'f'l'e's' ''n if new_usersize > self.item_offset {n self.item_offset = new_usersize'''''''''''' '/'/' ';n }''''' ''n ' if new_user'''' ''''''item_offse''''new_usersiz';'e''''''u'_'w'e'n' '=' 't''''''_'m'e't'i'.'f'l'e's' ''' }''n 'n ' '{' 'size > self.item_offset' 'n ' 'r.here_ptr();n let item = unsafe { curs'''''.'t's'i'l'or.current_'''''.'t's'i'l'item_mut() };n let old_usersize = C::get_usersize(item)'(''''''.'f'l'')'e's';n modify_fn(item, offset);n let new_usersize = C::get_usersiz''e(item);nn let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta);n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);n }nn notify(std::slice::from_ref(item), ItemMarker {n ptr: e,n // _phantom: PhantomData,n });nn // cursor.update_offsets(self.head.height as usize, new_size as isize - old_size as isize);n }''''unsafe { cursor.current_item_mut() };' 'n ' '=' 't'''''''''f'f'o'_'m'e't'i'.'f'l'e's' ';''h'g'i'e'h'.'d'a'e'h'.'t'.'f'l'e's'(height: u8)''''''n'a'v'd'a'.'r'o's'r'u'c'.'f'l'e's' ''' }''n 'n ' '{' ''l'e's' 't'u'm'&'')'('m'e't'i'_'t'x'e'n' 'n'f' 'b'u'p' 'n ' ')'t'''''''''f'f'o'_'m'e't'i'.'f'l'e's' ','e { curs''o''''r''.''current_item_mut() };''''''''.'r'o's'r'u'c'.'f'l'e's' ''' }''n 'n ' '{' ')'e'z'i's'u' ',''Item'''''m'e't'I':':'C' '>'-' '''''' ','f'l'e's'&'')'('m'e't'i'_'t'n'e'r'r'u'c' 'n'f' 'b'u'p' '''''''n 'n ' ':':''''>'C'<''''''// ''''''''''>'C'<'x'_'i't'''o'N' ',''' '/'''Notify: ''''no_''notify_'''''>'C'<'''x''''''_items: &[C::Item'']'''>'C'<'(_item''s: &[C::Item'>'], _mar''ker: '// 'ItemMarker)''''''o'n'_'o'n''Self::'// 'no_notify''rustc --explain E057'// '3'<''SkipLi't'''''''''''// ''Ski''Sk'// pub struct Edit<'a, C: ListConfig, Notify: Fn'// '''' n''otify: fn(&[C::Item], ItemMarker)n'Mu'''// ''''// 't(&[C::Item], ItemMarker)> {n'// '// list: &'a mut SkipList,n// cursor: Cursor,n// item_offset: usize, // Offset into the current item.n// notify: Notifyn// }''n''// 'ipLis'''''>'C'<'t''''i'k''', Notify: FnMut(&[C::Item], ItemMarker)''''S' 's'a' ''>''''s'''''''''>'C'<':':'t'''''l'i'k'S''''''''// 'FnMut(&[C::I'type''n'f'', Notify: FnMut(&'''// '[C::Item]'// ','' ItemMarker)' Self::n''o_noti'// 'fy'tem], ItemMa''rke''r)'/'nimpl<'a, C: ListConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a, C> {'/ ', '/ ' '' }'n 'n 'nimpl<'a, C: Li'''n n pub fn replace_at(&mut'' self, mut start_userpos: usize, removed_ite'n '''ms: usize, mut inserted_content: I) whe''''re I: ExactSize''''''''''_'m'e't'i'.'f'l'e's'Iterator {n start_userpos = min(start_userpos, self.get_userlen()'n '''''''''''''''''''''''''' ''curso''userpo''''n ';'s'''''r'e's'u''''''r'u'c'.'r'''''s'r'u'c'.'f'l'e's' '=' 's'o'p'r'e's'u'_'t'r'a't's' 't'e'l' ');nn let (mut c'''''t's'i'l'.'ursor, offse'''''.'f'l'e's't) = self.iter_at_userpos(start_userpos);n '''''''''''y'f''''/'''''t's'i'l'.'/ 'i't'o'n'.'''''.'f'l'e''start_userpos''''''.'f'l'e's's''f'l'e's''' assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);n }'stConfig, Notify: FnMut(&[C::Item], ItemMarker)> Edit<'a'', C, Notify> {' '// '''''''y'f'i't'o'N' pu''b fn del_a'// 't(&mu''''t '// 'self,'// ' mut use''''''' 'e'p'y't''Self::no_notify''''impl''''''''o'''' ''''o'e'p'y't'''''''''''''l'p'm'i''''''''''''''''''y'f'i't'o'n'_'o'n''''no_notify(_items: &[C::Item], _marker: ItemMarker)':':'f'l'e'S''''_' ','rpos: usi'n ''''''edit_notify'''''''s''''''''no_notif'''f' ','''''n ''y(_items: &[C::Item], _marker: ItemMarker)':':'f'l'e'S'o'p'r'e's'u'(userpos: usize, notify: Notify, f: F)'''''t'i'd'e'.'f'l'e's' ''' }'n 'ze, n''''''''y'f'i't'o'N' ','um_items:'n pub fn'''''''y'f'item_''i't'o'n'_''''''''''o'n')' '''''''' ','' let mut edit = Edit { list: self, cursor, item_offset, notify };'' let mut edit = Edit { list: self, cursor, item_offset, notify'y'f'i't'o'N'edit(&mut se' list: self, cursor, item_offset, notify'' list: self, cursor, item_offset,'' list: self, cursor,'lf, userpos: u'''''''''''''''''where Notify:'' FnMut(&[C::Item], It''emMa'item_'rker'' ',''''''n ''''''y'f'i't'o'n' ',' ')','y'f'i't'o'N' ':'y'f'i't'o'n' 'size, f: F) -> Rn where F: FnOnce(&mut Edit) -> R {' usize) {n '// ' userpos = min(userpos, self.get_userlen());n '// ' // We can't easily trim num_items.n '// ' '''n ''''''''''n 'n pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn self.dbg_check_cursor_at(&cursor, start_userpos, num_inserted_items);n }' 'n ' ' // num_items = min(length, self.num_chars() - pos);n '// ' if num_items == 0 { return; }nn '// ' let (mut cursor, offset) = self.iter_at_userpos(userpos);n '// ' assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn '// ' unsafe { self.del_at_iter(&mut cursor, num_items); }nn '// ' if cfg!(debug_assertions) {n '// ' let (c2, _) = self.iter_at_userpos(userpos);n '// ' if &cursor != &c2 { panic!('Invalid cursor after dele'''n 'pub fn del_at(&mut self,'''' mut userpos: usize, num_items: usize'''' ''''''''''''''''''''''''''''' ''''''''''''''''''''''';')'s'm'e't'i'_'m'u'n'('t'a'_'l'e'd'.'t'i'd'e' ''' ')'}''n 'n ' '{' '|'t'i'd'e'|' ','s'o'p'r'e's'u'('t'i'd'e'.'f'l'e's' ''' }''n 'n ' '{' ')' 'n ' 'te'); }n '// ' }n '// ' }n''' '&' '{''''''where'' Notify: FnMut(&[C::I'''Notify: FnMut(&[C::Item], ItemMarker)''''''''''''Notify: FnMut(&[C::Item], ItemMarker)' ':'y'f'i't'o'N' ','tem], ItemMarker)' ''']'n')' 'n'i' 'm'n '''''''' ':'y'''f'''i't'o'n''''''''' ':''''Notify: FnMut(&[C::Item], ItemMarker)' ','y'f'i'''''''''y'f'i't'o'N' ','t'o'N' ''e't'i' 't'u'm'&' 'r'o'f' '''''n 'n ' ' // Just trim the node down.n let trailing_items = e_num_items - item_idx - r'''''''''no_not'item'if''''y''''''''''''''''''(_items: &[C::Item], _marker: ItemMarker)'''o'n':':'f'l'e'S' ','emoved_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n '''n ''''''''''''''' ','F'''>'R'<'''''''''''''''','e'z'i's'u' ':'s'o'p'r'e's'u' ''''''F' ':''n'''''R' '>'-' ' 'n '''''''''''''''''''''''''''''iter_at_userpos'''''''s';'''''''' 't'u'm' ''o'p'r'e's'u'(target_userpos: usize)''''''_'r'e't'i'.'f'l'e's' '=' ')''''''''n 'local_of'n '''''''''''''''''''''''''''''''''''''''''''''''?'e'r'e'h' 'p'i'h's'r'e'n'w'o' 's's'a'p' 'd'l'u'o'h's' 'I' 'e'b'y'a'm' 'r'O' ':'O'D'O'T' '/'/' 'fse''''''''t'e's'f'f'''''n ''''''' 't'u'm'&''''*'''''')'t'i'd'e'('f' 'n ' ';'o' ':'t''''''l'a'c'o'l' ','r'o's'r'u'c''t'e's'f'f'o' ','r'o's'r'u'c'(' 't'e'l' ' ' ''''''''''''''''''n ''''''''''''n ''''''''''''''''''''r'u'c'.'f'l'e's'''''''c'.'s'i'h't'''''s'r'u'c' ':'r'o's'r'u'c' ','f'l'e's' ':'t's'i'l' ''' }'n 'item' '{' 't'i'd'E' '=' 't'i'd'e' 't'e'l' '''''''''''FnOnc'''''' 't'u'm''''''' '' '' '''n '' 'n // if cfg!(debug_asserti''ons) {n // ''''''''.'t's'i'l'.' let (c2, _) = ''''''''''''.'r'o's'r'u'''''.'f'l'e's''c'.'f'l'e's'self.iter_at_userpos(use''rpos);n // '' if &cursor != &c2 { panic!('Invalid cursor after delet''e'); }n // }' '''' }''n 'n pub fn del_at(&mut sel''f, mut userpos: usiz' assert_eq!''''''item'''''''_'l'a'c'o'l'.'f'l'e's'(offset, 0, 'Splitting nodes'''''t's'i'l'.' not'''' yet''''''''''''n '''''''''''''''''''''''''''''''''''''''''?'d'i'l'a'v' 'l'l'i't's' 's'i' 'r'o's'r'u'c' 'e'h't' 'k'c'e'h'C' ':'O'D'O'T' '/'/' 'n ' '''r'''o'''s'r'u'c'.'f'l'e's' su'// 'pported');n'''''''e, num_items: usiz'// 'e) {n userp'''''''''t's'i'l'.'f'l'e's'userpos''''''.'f''// 'l'e's''os = min(userpos, self.get_userlen());n // We can't easily '// 'trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n' 'n ' '{' '&''''''''n pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n''''')'>'C'<'t'i'd'E'('e'''''n'O'n'F' ':'F' 'e'r'e'h'w' '''' 'f'''''''''''''R' '>'-' '''''' ','')'f'l'e's' 't'u'm'&'('t'i'd'''''''d'i'e' 'n'f' 'b'u'p' 'n ' ' &mut c[item_idx],n trailing_items);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (''''' 'b'u'p'''''''''''''ListConfig''''s'i'L' ':'C' ',''>'a'''<''''''n '''''''''Curso'''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''.'m''''''''''''''ListConfi'>'g''''''''''''''}''n 'n ' '{' '>'C' ','a'''<''''t's'i'L' ':'C' ','a'''<''''''t'i'd'E' 'l'p'm'i'e't'i' 't'n'e'r'r'u'c' 'e'h't' 'o't'n'i' 't'e's'f'f'O' '/'/' ','e'z'i's'u' ':'t'e's'f'f'o'_'l'a'c'o'l' ','>'C'<'r''''r'u'C' ':'r'o's'r'u'c' ','>'C'<''''' ''' 'a''SkipList'''''l'i'k'S'''''T'D'R'C''' ''''''''''' 't'u'm'&' ':'t's'i'l''''&' '''}''n 'n ' '{''''''''' 't'i'd'E' 't'c'u'r't's'''''n'n'n'n'n'*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nnn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n i';'''f'' removed_items' ''' == 0 && inserted_content.len() == 0 { return; }nn '' // Replace '''' 'b'u'p'as' 'n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);' ' many items from 'n 'n }' }'removed_items as we can with i'n // I hate this.'nserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n '' let use''' unsafe fn replace_item(&mut self, cursor: &mut Cur'''// ''''// 'sor, new_item: C::Item,'' mut notify: Notify)' 'n where Notify: FnMut(&[C::Item], ItemM'n '''''''''''''''n notify(std::slice::from_ref(item), ItemMarker {n ptr: e,n _phantom: PhantomData,n });n'''''''y'l'i's'a'e' '''''''''''''''.'d'e'z'i'm'i't'p'o' 'e'b' 'd'l'u'o'c' 's'i'h'T' '/'/' ''n '' ''''''replace_at_iter''''''r''1'''''' 't'u'm'&''''''''''''''''''''''')'''''''''''y';''f'i't'o'n'm'e't'i'_'w'e'n'('e'c'n'o':':'r'e't'i'''''e'c'n'o'o's'r'u'c'(cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)''''''a'l'p'e'r'.'f'l'e's' 'arker) {'' unsafe fn replace_item(&mut self, cursor: &mut Cursor, new_item: C::Item, mut notify: Notify) where Notify: FnMut(&[C::Item], ItemMarker) {'' ''n ' unsafe ''''m'e't'i'''''f''n'' ''r''e''p''lace_at_iter'''''''''''''''''''m'e't'I':':'C' ':'m'e't'i'_'''''''''''''m'e't'I'w'e'n' ','''(&mut s'' 'n ''' ' '''' ' ' 'elf, cursor: &mut Curs' '' '''or, mut ' ' '''n ' ' ' ' 'removed_ite'''' '''''' ','y'' 'f'i't'o'''''''t'i'N'm'', mut notify: Notif'' '' ''y'''''''''N' ','' where Noti' 'fy: FnMut(&[C::Item], ItemMarker)'', where F' ': FnOnce(&mut'' C::Item'n if usersize_delta != 0 {', ' 'u' 'size) {'''s: usize, inserted_content: &mu'n cursor.update_offsets(self.head.height as usize, usersize_delta);'t I, mut n', mu' 't ','''no''tify: Not' 'ify)' 'n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);' 'n where Notify' ': FnMut(&[C'n }'::''Item], ItemMarker)'otify: ''''''''''''''''_' 't'u'm'*' 's'a' 'N' 'n let item = unsafe { cursor.current_item_mut() };' 'otify)' 'n '' where'''n '''''''''''''std::slice::from_ref(item';')' '=' 'e'c'i'l's' 't'e'l' ' Notify: FnMut(&'n let old_usersize = C::get_usersize(item);''''' '' }'n '''n modify_fn(item, offset);''[C::Item], ItemMa' ''let e = cursor.here_ptr'n let new_usersize = C::get_usersize(item);''''n '();''''{'rker<''C>), 'std::slice::from_ref(item)''''''e'c'i'l's'I: ExactSizeIterator {n' 'n ' 'rsize_''delta ='// ' new_usersi''ze as isize - old_usersize as isize;nn'' '// ' if usersize_del'// 'ta != 0 {n cursor.up'// 'date_offsets(se' '''''''''''''''''''{' 'e'f'a's'n'u' '''''''''''}' ''current_ite''m''_''''r'e's'u'm''u'n ''''''''''''''''''here_ptr(';')'''''e'r'e'h'.'r'o's'r'u'c' '=' 'e' 't'e'l' 't(''''n'}' ''''''''''e'''''':':'d't's'''''''''''''''''('f'')'''e'r'_'m'o'r'f':':'''''''''here_ptr()'''''e'r'e'h'.'r'o's'r'u'c'''e'c'i'l's''''''''''o't'n'i''''''')'('m'o'r'f'.'m'e't'i'''''''['&''''''''' 'modify_fn'''''''y'f'i'd'' ''''''r'''e'''s'''u'''''''''C::get_usersize(item)'''n ''n 'let usersize_delta = new_usersize as i''si' ' '''''' '''n 'n notify(dest, It' 'emMarker {n ' ' ptr: e,n _phantom: Ph' 'antomData,n });' 'n ' '''' ''n 'n ' 'ze - old_usersize as isize;nn ' ' if usersize_delta != 0 {n ';'c''ursor.upd''a''te_offsets(self.head.heig' 'ht as usize, usersize_delta)n }n 'n }' // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);n' ''n '// '''''''''update_offsets'''''''''d'a'e'h'''''''''e''''''''''''''''''''''''''''''''''isize';''''s'i' 's'a' 'e'z''''e'i's'_'d'l'o' '-' 'e'z'i's'i'''''''i'u' 's'a' 'e'z'i's'_'w'e'n'''z'i's'u' 's'a' ''''''''heigh''ts'.'e'd'''o'n'.'f'l'e's'(height: usize, by: isize)'.'r'o's'r'u'c' ';' '=' 'e'z'i's'_'w'e'n' 't'e'l' 'o'm''''''''''''''''''''''n ';')'t'e's'f'f'o' ','m'e't'i'('F' ''''get_usersize''''m''''n ';''e't'i'(_item: &Self::Item)':':'C' '=' 'e'z'i's'_'d'l'o' 't'e'l' ';')''''''e'r'r'u'c'.'r'o's'r'u'c' '=' 'm'e't'i' 't'e'l' 'lf.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize'''n '''''''''''''''''''>'F'<'''''''''''''''''''''','e'z'i's'u' ''n '''''''''''''''''''''''' ':''''''''e'z'i's'u'''''''n'i' ','m'e'' 'let (mut cursor, offset) = self.i''' 'ter_at_userpos(userpos);n' 't'i''' ')'''''''''''''m'e't'I':':'C' 't'u'm'&'('e'c'n'O'n'F' ':'F' 'e'r'e'h'w' '''''''' }''n 'n ' '{' ')'':'s'o'p'''''''i's'r'e's'u' ''''''''''''''''''''F' ':'n'f'_'y'f'i'd'o'm' ','f'l'e's' 't'u'm'&'('t'a'_'y'f'i'd'o''''o'm' 'n'f' 'b'u'p' 'n ' ');nn replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've 'n ''''''dbg_check_cursor_at'''''''r''''''''''''''s'''''''''''''''''''s';''''m'e't'i'_'d'e't'r'e's'n'i'_'m'u'n'o'p'r'e's'u'_'t'r'a't's'o's'r'u'''''''''''''o's'r'y'c'&'(cursor: &Cursor, userpos: usize, plus_items: usize)'''''_'g'b'd'.'f'l'e's'''''_'g'b'd' 'run out o'// 'fn // items to remove, or we''// 've run out of items to insert.n 'n ''''''replace_item''''''''''''''''''t' ''&mut Self::no_noti'''' // TODO: Consider concatenating end into contents then just calln // insert_at_iter once.''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'c'n'o' 'r'e't'i'_'t'a'_'t'r'e's'n'i' 'l'l'a'c' 't's'u'j' 'n'e'h't' '''' ''''.'s't'n'e't'n'o'c' 'o't'n'i'''''''n'o' 'd'n'e' 'g'n'i't'a'n'e't'a'c'n'o'c'''''''g'n'i's'u'f' 'r'e'd'i's'n'o'C' ':'O'D'O'T' '/'/' 'n ' ';'''fy''r'a't's''''' ','r'o's'r'u'c' 't'u'm'&'(cursor: &mut Cursor, new_item: C::Item, notify: Notify)''''''a'l'p'e'r'.'f'l'e's' ' if inserted_cont'// 'ent.len() > '// '0 {n // Insert!n debug_assert!(removed_items == 0'// ');n self.insert_at_iter(cursor, inserted_content, &mut notify);'// 'n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, mut inserted_content: I) where I: ExactSizeIterator {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn let num_inserted_items = inserted_content.len();n unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content, Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(num_inserted_items, self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn replace_at_slice(&mut self, start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n self.replace_at(start_userpos, removed_items, inserted_content.iter().copied());n }nn pub fn insert_at(&mut self, mut userpos: usize, mut contents: I) where I: ExactSizeIterator {n if contents.len() == 0 { return; }n let num_inserted_items = contents.len();n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents, &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor,''' ''n ' // TODO: Don't export this.' '' '''''''''''''''''''''''''':':'t'm'f':':'d't's''''''g'u'b'e'D' ':'m'e't'I':':'C' 'e'r'e'h'w' ' 'n pub fn print(&s' 'elf) {' 'n println!('items: {}tuserlen: {}, height: {}', self.num_items, self.get_userlen(), sel''f.hea' 'd.height);n' 'n' ' ' ' print!('HEAD:');n' ' '' for s in self.head.nexts() {n' ' ' ' ' ' print!(' |{} ', s.skip''_user' 'size);n' ' }n' ' ' ' println!('');n' 'n' ' ' ' use std::collections::HashMap;n' ' let m' 'ut ptr_to_id = HashMap::new();n' ' //' ' ptr_to_id.insert(std::ptr::null()' ', usize::MAX);n' ' for (i, node) in s' 'elf.iter().enumerate() {n' ' ' ' print!('{}:', i);n' ' ' ' ptr_to_id' '.insert(node as *const _, i);n' ' fo' 'r s in node.nexts() {n' ' print!(' |{} ', s.' 'skip_usersize);n' ' }n'' ' ' ' ' print!(' : {:?}', node.content_slice());n' '' ' ' ' if let S' 'ome(id) = ptr_' 'to_id.get(&(node.parent as *const _)) {n' ' print!(' (parent: {})', id);n' ' }n' ' print!(' (pointer: {:?})', node as *const _);n' 'n' ' println!();n' ' }n' ' }' 'n ' ' &mut contents, &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, num_inserted_items);nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn }nn pub fn insert_at_slice(&mut self, userpos: usize, contents: &[C::Item]) where C::Item: Copy {n self.insert_at(userpos, contents.iter().copied())n'' dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn //'' ''T'// ''''// 'he height is at least 1, so this is always valid.n fn first_skip_'// 'entry''<''// 'a>(&self) -> &'a SkipEntry '// '{n ''unsa'// 'fe { &*self.nex'// 'ts.as_'// 'ptr() }n '' }nn'//'' ' '// 'fn'// ' f''impl From> for Ski'// 'pList {n fn from(s: Vec) -> Ski'// 'pList {n SkipList::new_from_iter(s.in'// 'to_ite'// 'r())n }n'n'}n''i''rst_skip_e''''''''Ex'I'actSizeIterato''''''''''''ExactSizeIter'''// ''f''n'''''''I' ':'r'e't'i' from(s: Vec) -> SkipList''''r'''e't'i' {''n// SkipList::new_from_iter(s.into_iter())''n// }'ato''''''='m'e't'I'''''''''' '>'m'e't'I':':'C'<'r''''a'x'E' ':'I' 'e'r'e'h'w'''''''w' ''''''''>'m'e't'I':':'C'<'r''''a'x'E' ':'I'''' let mut rope = Self::new();' '''n rope.insert_at_sl' 'ice(0, s);''n ropen' ','ntry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -''''r'''into_iter()'''''o't'n'i'.'s''''e't'i'''>'' ''u''s''ize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C''> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nn// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my own.nstruct UninitOwnedIter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal data from without droppingn /// content. This is unsafe:n ///n /// - If the iterator isn't fully drained then remaining items will ben /// forgotten (they are not dropped).n /// - The slice passed in here must be initialized or undefined behaviourn /// will hit us.n ///n /// After iterating, the contents are uninit memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n let ptr = slice.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option {n if self.ptr.as_ptr() == self.end {n Nonen } else {n let ptr = self.ptr;n self.ptr = unsafe { NonNull::new_unchecked(self.ptr.as_ptr().offset(1)) };n Some(unsafe { ptr.as_ptr().read() })n }n }nn fn size_hint(&self) -> (usize, Option) {n let size = (self.end as usize - self.ptr.as_ptr() as usize) / mem::size_of::();n (size, Some(size))n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)]nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }n}nn// TODO: Stolen from MaybeUninit::slice_get_ref. Replace when available.n#[inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.n }nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += num_items;n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = num_items;n }nn notify(new_node.content_slice(), ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n // Can't use copy_within because Item doesn't necessarilyn // implement Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old items - they were only moved.n slot.as_mut_ptr().write(item);n }n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_items.len(), false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n &mut c[item_idx],n trailing_items);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nnn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n let usersize_delta = new_usersize as isize - old_usersize as isize;nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn'n '''// '''''''drop_in_place'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'n'a'e'l'c' 's'''' 'i' 's'i'h't' 't'u'b' ','e'r'e'h' 'p'o'r'd' 't'n'e'm'e'l'p'm'i''''''''''t'n'm'e'l'e'p'm'i' 't's'u'j' 'd'l'u'o'c' 'e'W''''''''''''' 'e's'u' 'l'l'''e'W' '/'/' ';''(to_drop: *mut T)''''''_'p'o'r'd':':'r't'p' 'll('''MAX_HEIGHT''''X'A'M' ';')'''e'n':':'y'''''p'i'k'S'e {n items: uninit_items_array(),n num_items: 0,n height: height,n parent: ptr::null_mut(),n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node {n Self::alloc_with_height(random_height(rng))n }nn '''''''''''ListConfi'''''''''''''''''''''' '''''''''''''''''''''' '''''n '''''''''nee'''''''''e''' // Could instead call assume_init() on each item but this isn // friendlier to the optimizer.'n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'z'i'm'i't'p'o' 'e'h't' 'o't' 'r'e'i'l'd'n'e'i'r'f' 's'i' 's'i'h't''''''''''''''''' 's'i' 's'i'h't' 'k'n'i'h't' 'I' 't'u'b' 'm'e't'i' 'h'c'a'e' 'n'o' ')'('t'i'n'i'_'e'm'u's's'a' 'l'l'a'c' 'd'a'e't's'n'i' 'd'l'u'o'C' '/'/' 'z'i's'u' 's'a''''''''' '{' 'e'f'a's'n'u'' 'ds_dro'':':''''''' ''}' ' '''''{' '' '''>'m'e't'I':':'C'<'p()'''''d'e'e'' ''' '''''drop_in_p''l''ace''''''' 't'u'''as_mut_pt'''''')'('r''''''u'm'_'s'a'.'m'&'''''''(to_d''''''''''_';'' 't'u'm'*' 's'a' 'ro')'p: *mut T)':':'r't'p'' ' 'n''':':'m'e'm'''''''e'n''''e'' 'e'n' 'f'i'' '' }'n '' ''n ''''''''''''''''''num_item''{' '''' '' 's''''m'u''''.']'i'[''' }'n ''n'''''''e'l'.'f'l'e's'.'.'0' 'n'i' 'i''''''''''''' 't'e'l' 'r'o'f' ''n ''''''''''s'm'e't'i'.'f'l'e's''''self.nexts.as_ptr(), self.height as usize' ''' }'n '{' ')'f'l'e's' 't'u'm'&'('p'o'r'd''''D' 'n'f' '''}''n 'n ' '{' '>'C'<'e'd'o'N' 'r'o'f' 'p'o'r'D' '>'g'''''t's'i'L' ':'C'<'''' 'l'p'm'i'n'n' unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).''height));n }nn fn content_slice(&self) -> &[C::Item] {n // TODO: Use MaybeUninit::slice_get_ref ''w''hen it lands. This code is stolen from that implementation.nn // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n let slice = &self.items[..self.num_items as usize];n unsafe { maybeinit_slice_get_ref(slice) }n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n let node = &*self.here_ptr();n debug_assert!(node.num_items as usize >= self.local_index);n &*(node.items[self.local_index].as_ptr())n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n ' /// Make a slice we can iterate from and steal''''' 'a't'a'd' from without droppingn //'''''''''''''''''''''':'' /// - If the iterator isn't fully drained then remaining items will ben /// forgotten ''''''''''''t'o'n' 'e'.' /// - The slice passed in here must be initialized or undefined behaviourn /// will hit us.'''r'a' 'y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'u' 't'i'h' 'l'l'i'w' 'r'u'o'i'v'a'h'e'b' ''''''''''''' 's'e'u'l'a'v' 'd'e'n'i'f'e'd'n'u'''''''''''s'e'u'l'a'v' 'e'h't' 'r'o' ''''.'d'e'z'i'l'a'i't'i'n'i' 'e'b' 't's'u'm' 'e'r'e'h' 'n'i' 'd'e's's''''d'a'p' 'e'c'i'l's' 'e'h'T'e'h't'(not dropped)'' /// - If the ''''''''':':'e'z'i'''' -'s'u'''''''intrinsic'''unchecked_sub''(x: T, y: T)'''','''''''h'c'n'u':':'s'''''r't'n'i':':'d't's''''''''l'd'e'k'c'n'u'iterator isn't fully drained then remaining items'''''''' 'e'b' 'l'l'i'w' are forgottenn /// (not dropped)'e'f'a's'n'''''''' 'e'h't' 'f'I'u' 'y'r'e'v' '''''''''''''''''''''''''''''''''''''''''''''''''')'d'e'p'p'o'r'd' 't'o'n'(' 'n'e't't'o'g'r'o'f' 'e'r'a' 's'm'e't'i' 'g'n'i'n'i'a'm'''''''m'a'e'r''''' 'e'h't' 'n'e'h't' 's'i' 's'i'h'T'/ content. Its unsafe if:n ///n /// - The iterator isn't fully drained (then we might not drop contents)n /// - The contents we iterate over aren't initializedn ///' .field('userpos', &self.userpos)n .f'''''''''''''''''''''''''t'n'e't'n'o'c' 'g'n'i'p'p'o'r'd' 't'u'o'h't'i'w' 'ield('local_index', &self.local_index)n .finish()n }n}nn// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned items in a MaybeUninit array. Eh; its easy enough to make my '''''' ':'O'D'O'T'''own.nstru'''''''''''''''f'e'r'_'t'e'g'_'e'c'i'l's':':'ct UninitOwned''''''''''''''''''''''''.'e'l'b'a'l'i'a'v'a''''''''''e'l'b'a'i'l'a'v'a' 'n'e'h'w' 'e'c'a'l'p'e'R' '''Iter<'a, C: ListConfig> {n // Based on the core slice IterMut implementation.n ptr: NonNull,n end: *mut C::Item,n _marker: PhantomData<&'a SkipList>n}nnimpl<'a, C: ListConfig> UninitOwnedIter<'a, C> {n /// Make a slice we can iterate from and steal from. Its'' ''unsafe if:n /// n /// - The iterator isn't fully drained (then we might not drop conten'''Skip'ts)n /''//'' - The con''t''e''X'''MAX'nts we iterate over aren't initializedn /// n /// After iterating, the contents are uninit memory.n unsafe fn from_slice(slice: &[MaybeUninit]) -> Self {n let ptr = sli'SkipEntr'''new_null('''MAX_HEIGHT''''X'A''''X'M' ';')':':'y'''''p'i'k'S'ce.as_ptr() as *mut C::Item; // Safe.n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n ''''''''''''e'c'i'l's'_'t''''_''''''''''''''''i'l's')''n ''''' 'n'f' 'n ' '}n // unsafe fn from_slice(slice: &[C::Item]) -> Self {n // unsafe {n // let ptr = slice.as_mut_ptr();n // let end = ptr.add(slice.len());nn // UninitOwnedIter {n // ptr: NonNull::new_unchecked(ptr),n // end,n // _marker: PhantomDatan // }n // }n // }n}nnimpl<'a, C: ListConfig> Iterator for UninitOwnedIter<'a, C> {n type Item = C::Item;nn fn next(&mut self) -> Option'n ''''''''''''''''''''n '''''''''''''''''''{' 'e'f'a's'n'u' '''Non'''''n '''''''''''''''' 'e'v'o'm'e'R' ':'O'D'O'T' '/''''''' ';'/' 'Nul'''new_unchecked''''''(ptr''}' ': *mut T)':':'l''')''''''l'u'N'n'o'N' ''''''''''''''''''')'('r't'p'_'s'a'.'''''''''(')''t'e's'f'f'o'.'r't'p'.'f'l'e's'''''';'1' '='+' 'r't'p'.'f'l'e's' ';'r't'p'.'f'l'e's' '=' 'r't'''p' 't'e'l' ' {n if self.ptr.as_ptr() == self.end {n Nonen } else {n Some(unsafe { self.ptr.as_'''n ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''('''''''''''''''''''''''''''''''''''')'('r't'p'_'s''''':':'m'e'm''a'.'''''''''''''''''''''''''''''''''''':':'''''n '''''''''''''''''')')'e'z'i's'('e'm'o'S' ','e'z'i's'(' ';')'('>'m'e't'I':':'C'<':':'f'o'_'e'z'i's' '/' ''''.')'''e'z'i's'u' 's'a' 'r't'p'.'f'l'e's' '-' 'e'z'i's'u' 's'a' 'd'n'e'.'f'l'e's''''''''''''''''''('b'u's'.''''''')'''''''''''''as_ptr()'''s'a'.'';'r't'p'.'f'l'e's' '-' 'd'n'e'.'f'l'e's' '=' 'e'z''''e'i's' 't'e'l' '''''' }''n 'n ' ' '{' ')'>'e'z'i's'u'<'n'o'i't'p'O' ','e'z'i'''''''i'e's'u'(' '>'-' ')'f'l'e's'&'('t'n'i'h'_'e'z'i's'''''''z'i' 'n'f' 'n ' 'ptr().read() })n }n }n}nn// TODO: Stolen from MaybeUninit::uninit_array. Replace with the real uninit_array when stable.n#[inline(always)]nfn uninit_items_array() -> [MaybeUninit; NODE_NUM_ITEMS] {n unsafe { MaybeUninit::<[MaybeUninit; NODE_NUM_ITEMS]>::uninit().assume_init() }n}nn// Stolen from core::mem::MaybeUninit. Its just not standardized yet.n#[inline(always)]nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid si'''''''' 't'u'm''''''t'u'm'_''nce it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n &*(slice as *const [MaybeUninit] as *const [T])n}nnnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: uninit_items_array(),n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self where C::Item: Copy {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(n.content_slice());n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(unsafe { &*en.items[index].as_ptr() });n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as ''*const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n '' node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // ''unsafe fn insert_node_at(&mut self, curs'>'''or: '// '&mut Cursor'''''''''''''''('!'g'b'd', contents: ''')'<''''&[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &mut I, num_items: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: Iterator {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n // debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(num_items <= NODE_NUM_ITEMS);n debug_assert!(contents.size_hint().0 >= num_items);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n // let num_items = contents.len();n new_node.num_items = num_items as u8;nn for (slot, item) in new_node.items[..num_items].iter_mut().zip(contents) {n (slot.as_mut_ptr() as *mut C::Item).write(item); // Write makes sure we don't drop the old value.n }n // new_node.items[..contents.len()].copy_from_slice(contents);nn let new_userlen = C::userlen_of_slice(new_node.content_slice());nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // l''azily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n no''''''''''''''''''''''''''''''i' 'y'l'i'r'a's's'e'c'e'''n' 't'''n's'e'o'd' '''m'e't'I'''de: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor ''{n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_n''o''de_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += num_items;n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = num_items;n }nn notify(new_node.content_slice(), ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the de''stination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn '_''' // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n // let num_inserted_usercount = C::userlen_of_slice(contents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node'_' if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n // Can't use copy_within because we aren't sure if the typen // implements Copy. Memmove the existing items.n ptr::copy(n &c[item_idx],n &mut c[item_idx + num_inserted_items],n (*e).num_items as usize - item_idx);n // c[..].copy_within(item_idx..e_num_items,n // item_idx + num_inserted_items);n }nn // Then copy in the new items. Can't memcpy from an iterator, butn // the optimizer should make this fast.n let dest_content_slice = &mut c[item_idx..item_idx + num_inserted_items];n for (slot, item) in dest_content_slice.iter_mut().zip(contents) {n // Do not drop the old items - they w''ere only moved.n slot.as_mut_ptr().write(item);n }n let dest_content_slice = maybeinit_slice_get_ref(dest_content_slice);n // c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n let num_inserted_usercount = C::userlen_of_slice(dest_content_slice);n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(dest_content_slice, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None,'' 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node.n let mut items_remaining = num_inserted_items;n while items_remaining > 0 {n let insert_here = usize::min(items_remaining, NODE_NUM_ITEMS);n self.insert_node_at(cursor, contents, insert_here, true, notify);n items_remaining -= insert_here;n }n // for chunk in contents.take(NODE_NUM_ITEMS) {n // // let userlen = C::userlen_of'''''')'('n'e'l'.'_'''''''''s'm'e't'i'_'d'n'e'slice(chunk);n // self.insert_node_at(cursor, chunk, true, notify);n // }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, &mut UninitOwnedIter::::from_slice(end_items), end_usercount, false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n '' unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = curso''r''.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize'';n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(maybeinit_slice_get_ref(&c[item_idx..item_idx + removed_here]));n if trailing_items > 0 {n ptr::copy(n &c[item_idx + removed_here],n &mut c[item_idx],n trailing_items);n // c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_pt''r(), e);nn 't''''<'''''I'<'t''''''<' ''''''e'c'i'l's'_'''''T'mu' 't'>'''''>'I'''''''>''I'T'''''''' 't'u'm''<' where I: ExactSizeIterator'' where C::Item: Copy''&[C::Item]'' removed_use'I'rlen = (*e).get_userlen();n' where I: ExactSizeIterator' '&[C::Item]' where C:'' }'n ':Item: Copy'n le''num_inserted_item' ''inserted_conten'.len();'t' insert'='s' num_inserted_ite't'''n pub fn replace_at(&mut self, mut start_userpos: usize, removed_item''''''' ''n ' if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n' 'n ' 's: usize, inserted''_content: &[C::Item'''n '''''''n'''mut '''um_inserted_ite''num_inserted_item''''''''insert''inserted_co'.iter().copied()'num_inserted_items'''n self'replace_at'start_userpos'(mut start_userpos: usize,'remov'iter().copied());'ed_items' removed_items: usize,'inserted_content.slic' mut inserted_content: I)'.repl'num_''nten''''''''';')'('n'e'l'.'t'''''''t'r'e's'n'i' '=' 's'''''''''''''''''e't'i'_'d'e't'r'e's'n'i'_'m'u'n' 't'e'l' ']) where C'''' ''''' '' 'n if cfg!(debug_assertions) {n let (mut c2, _) = self.'''''''n 'n pub fn replace_at_slice(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n }' 'n ' '''i' ''''' '''n'ter_at_userpos(userpos);n 'inserted_content.len()''num_' c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n'n'''''''' ''n ' if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n' 'n ' '::Item: Copy {''''n pub fn replace_at(&mut self, mut st'mut '''''art_userpos: usize, removed_''items: usize, inserted_content: &[C::Item]) wher'num_insert''ed_items'''n 'repl' '''''''mut start_userpos: usize'replace_at''''''removed_items: usize'''''''''s'''''''mut inserted_content: I'''''''''s'''''''''slic)'''''''''''''''''''''''''''';')')'('d'e'i'p'o'c'.')'('r'e't'i'''''c'i'l's'.'t'n'e't'n'o'c'_'d'e't'r'e's'n'i'm'e't'i'_'d'e'v'o'm'e'r'o'p'r'e's'u'_'t'r'a't's'(mut start_userpos: usize, removed_items: usize, mut inserted_content: I)'''''l'p'e'r'.'f'l'e's' ''''_'m'u'n'e C::Item: Copy {'' let next = (*e).firs'I't_skip_entr' where I: ExactSizeIterator'y().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].'''''''n 'n pub fn replace_at_slice(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n }' 'n ' 'node).nexts_mu''t()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.''n''um_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entrie''s[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n // dbg!(skip_height);n // dbg!((*n).height as usize);nn n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;nn '' // dbg!((*n).content_slice());n // dbg!((*n).height);n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_heig'''' 't'u'm''''n'ht - 1)'''>'I'<';nn if n_heig'I'ht > p'''C::Item: Copy, '''ar'n '''''num_inserted_item'''''''''''''''''';')'('n'e'l'.'s't'n'e't'n'o'c' '=' 's'''''''''''t'r'e's'n'i'_'m'u'n' 't'e'l' 'ent_height ''' I: ExactSizeIterator' ','{n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_hei'num_inserted_items''num_''contents.len()''num_''num_inserted_items'''''_'m'u'n'ght].noden }n'contents' 'contents.iter().copied()'''''''''s't'n'e't'n'o'c' }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::I'contents'tem], mut notify: Notify)n 'contents.iter().copied()'// wher'num_inserted_items'e 's'N't'o'n't'e'num_''i't'f'contents.len()''n'y'o': FnMut(&[C::'num_'Item],'num_inserted_items' Item'_'M'm'''u'c'arker) {nn'n' unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, inserted_content: &mut I, mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker), I: ExactSizeIterator {n if removed_items == 0 && inserted_content.len() == 0 { return''; }nn // Replace as many items from removed_items as we ca' ''''''inser''''''''''''''''''''''''''''''''''';')')'('d'e'i'p'o'c'.')'('r'e't'i'.'s't'n'e't'n'o'c''''''' ','s'o'p'r'e's'u'('t'a'_'t''insert_at_iter(cursor: &mut Cursor, contents: &mut I, notify: &mut Notify)'''''''t'r'e's'n'i'.'f'l'e's' 'n with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n '''n 'pub fn insert_a''''''e'c'i'l's'_'t(&mut self, mut userpos: usize, contents: &[C::Item]) where '''''' ''' }''n 'n ' '{'''' ' 'C::Item: Copy' 'n ' 'removed_items -= replaced_items;nn while replaced_items > 0 {n debug_assert!(inserted_content.len() >= replaced_items);n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n '' // Move to the next item.n e = cursor.advance_node();n if e.is''_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let dest = &mut (*e).items[index..index + replaced_items_here];n let old_usersize = C::userlen_of''_slice(maybeinit_slice_get_ref(dest));nn // Replace the items themselves. Everything else is commentary.n // Would prefer to use zip() but it wants ownership of inserted_content :/n for slot in dest.iter_mut() {n *slot.as_mut_ptr() = inserted_content.next().unwrap();n }n // for (slot, item) in dest.iter_mut().zip(inserted_content) {n // *slot.as_mut_ptr() = item; // Drop the replaced content.n // }nn let dest = maybeinit_slice_get_ref(dest);n let new_usersize = C::userlen_of_slice(dest);n let usersize_delta = new_usersize as isize - old_usersize as isize;nn // old_items.copy_from_slice(new_items);nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn // inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(dest, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) where C::Item: Copy {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, &mut inserted_content.iter().copied(), Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) where C::Item: Copy {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, &mut conten'n ''''''print(';''''''')'(')''''i'r'p'.'f'l'e's' 'ts.iter().copied(), &mut Self::no_notify);nn self.dbg'n 'self.print();' '_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n 'n 'self.print();' ' // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &mut iter::once(start), &mut Self::no_notify);n self.insert_at_iter(&mut cursor, &mut contents.iter().copied(), &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &mut iter::once(end), &mut Self::no_notify);n }n }nn }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList where C::Item: Copy {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nn// TODO: Remove Item: Copy constraint here.nimpl From> for SkipList where C::Item: Copy {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList where C::Item: Copy {n fn into(self) -> Vec {n let mut content: Vec = Vec::with_capacity(self.num_items);n''use std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min;nuse std::marker::PhantomData;nnuse std::fmt;nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of items in each node. Must fit in a u8 thanks to Node.n#[cfg(debug_assertions)]nconst NODE_NUM_ITEMS: usize = 10;nn#[cfg(not(debug_assertions))]nconst NODE_NUM_ITEMS: usize = 100;nn/// Rope operations will move to linear time after NODE_STR_SIZE * 2 ^n/// MAX_HEIGHT length. (With a smaller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the contents are smaller.n#[cfg(debug_assertions)]nconst MAX_HEIGHT: usize = 5;nn#[cfg(not(debug_assertions))]nconst MAX_HEIGHT: usize = 10;nnnconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.nnpub struct ItemMarker<'a, C: ListConfig> {n ptr: *mut Node,n _phantom: PhantomData<&'a SkipList>n}nn/// The whole list is configured through a single generic trait parameternpub trait ListConfig {n type Item: Default + Copy; //+ std::fmt::Debug;nn /// Applications which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_item: &Self::Item) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n })n }nn fn split_item(_item: &Self::Item, _at: usize) -> (Self::Item, Self::Item) {n unimplemented!('Cannot insert in the middle of an item - split_item is not defined in trait');n }nn // fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker) where Self: Sized {n // }n n}nnpub trait Queryable {n type Query;nn // Returns Some(offset) into the item if its contained. Otherwise None.n fn contains_item(&self, query: &Self::Query) -> Option;n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEntry {n fn clone(&self) -> Self { *self }n}nnimpl SkipEntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on a node's height. Thisn/// results in a lot of `unsafe` blocks. I think the tradeoff is worth it but In/// could be wrong here. You probably wouldn't lose much performance in practicen/// by replacing the inline structure with a smallvec - but that would wasten/// memory in small nodes, and require extra pointer indirection on large nodes.n/// It also wouldn't remove all the unsafe here.n///n/// A different representation (which might be better or worse - I can't tell)n/// would be to have the nodes all be the same size in memory and change then/// *proportion* of the node's memory that is used by the string field vs then/// next pointers. That might be lighter weight for the allocator because then/// struct itself would be a fixed size; but I'm not sure if it would be better.n#[repr(C)] // Prevent parameter reordering.nstruct Node {n /// We start with the items themselves. Only the first `num_items` of thisn /// list is in use. The user specified length of the items in the node isn /// stored in nexts[0].skip_items. This is initialized withn /// Default::default() for the type, but when MaybeUninit completely lands,n /// it will be possible to make this a tiny bit faster by leaving the listn /// initially uninitialized.n items: [C::Item; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn /// With the heads array as is, we have no way to go from a marker back to an /// cursor (which is required to insert at that location in the list). Forn /// that we need to be able to figure out at each level of the nextsn /// pointers which object points to us, and the offset from that element ton /// the current element. Anyway, for markers to work we need this.n parent: *mut Node,nn // #[repr(align(std::align_of::()))]n n /// In reality this array has the size of height, allocated using more orn /// less direct calls to malloc() at runtime based on the randomly generatedn /// size. The size is always at least 1.n nexts: [SkipEntry; 0],n}nn// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)n// This test will fail if this ever stops being true.n#[test]nfn test_align() {n struct TestConfig;n impl ListConfig for TestConfig {n type Item = u8;n fn get_usersize(_item: &Self::Item) -> usize { 1 }n }n #[repr(C)] struct Check([SkipEntry; 0]);n assert!(mem::align_of::() >= mem::align_of::>());n // TODO: It'd be good to also check the alignment of the nexts field in Node.n}nnfn random_height(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and then iterators will be able to outlast a move of then // skiplist parent). But its also very nice having the code run fast forn // small lists. Most lists are small, and it makes sense to optimize forn // that.nn // TODO: For safety, pointers in to this structure should be Pin<> if wen // ever want to hold on to iterators.nn /// The total number of items in the skip list. This is not used internally -n /// just here for bookkeeping.n num_items: usize,n /// Size of the list in user specified units.n num_usercount: usize,nn /// The RNG we use to generate node heights. Specifying it explicitly allowsn /// unit tests and randomizer runs to be predictable, which is very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: Option,nn /// The first node is inline. The height is 1 more than the max height we'ven /// ever used. The highest next entry points to {null, total usersize}.n head: Node,nn /// This is so dirty. The first node is embedded in SkipList; but we need ton /// allocate enough room for height to get arbitrarily large. I could insistn /// on SkipList always getting allocated on the heap, but for small lists itsn /// much better to be on the stack.n ///n /// So this struct is repr(C) and I'm just padding out the struct directly.n /// All accesses should go through head because otherwise I think we violaten /// aliasing rules.n _nexts_padding: [SkipEntry; MAX_HEIGHT],n}nnnnimpl Node {n // Do I need to be explicit about the lifetime of the references being tiedn // to the lifetime of the node?n fn nexts(&self) -> &[SkipEntry] {n unsafe {n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr(), self.height as usize)n }n }nn fn layout_with_height(height: u8) -> Layout {n Layout::from_size_align(n mem::size_of::>() + mem::size_of::>() * (height as usize),n mem::align_of::>()).unwrap()n }nn fn alloc_with_height(height: u8) -> *mut Node {n assert!(height >= 1 && height <= MAX_HEIGHT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut Node;n (*node) = Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: height,n parent: ptr::null_mut(),n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node {n Self::alloc_with_height(random_height(rng))n }nn unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n &self.items[..self.num_items as usize]n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_entry().noden }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be considered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone)]npub struct Cursor {n // TODO: Add a phantom lifetime reference to the skip list root for safety.nnn /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen height increases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///n /// This field isn't strictly necessary - earlier versions tacked this on ton /// the last item in entries... I'm still not sure the cleanest way to don /// this.n userpos: usize,nn /// When the userpos of an entry is 0 (totally valid and useful), a cursorn /// becomes ambiguous with regard to where exactly its pointing in then /// current entry. This is used to resolve that ambiguity.n local_index: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n unsafe {n // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remaining length to get to the start of the next node.n let advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;n self.local_index = 0;nn nextn }n }nn fn is_at_node_end(&self) -> bool {n self.local_index == unsafe { (*self.here_ptr()).num_items } as usizen }nn fn advance_item(&mut self, height: u8) {n if self.is_at_node_end() { self.advance_node(); }n let usersize = C::get_usersize(unsafe { self.current_item() });nn for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }n self.userpos += usersize;n self.local_index += 1;n }nn fn advance_by_items(&mut self, num: usize, height: u8) {n for _ in 0..num { self.advance_item(height); }n }nn fn move_to_item_start(&mut self, height: u8, offset: usize) {n for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize -= offset;n }n self.userpos -= offset;n }nn unsafe fn current_item(&mut self) -> &C::Item {n &(*self.here_ptr()).items[self.local_index]n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userposn || self.local_index != other.local_index {return false; }nn for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl fmt::Debug for Cursor {n fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {n f.debug_struct('Cursor')n .field('userpos', &self.userpos)n .field('local_index', &self.local_index)n .finish()n }n}nnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: None,n head: Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: 1, // Stores max height of list nodesn parent: ptr::null_mut(),n nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn init_rng_from_seed(&mut self, seed: u64) {n self.rng = Some(SmallRng::seed_from_u64(seed));n }nn fn get_rng(&mut self) -> &mut SmallRng {n // I'm sure there's a nicer way to implement this.n if self.rng.is_none() {n // We'll use a stable RNG in debug mode so the tests are stable.n if cfg!(debug_assertions) {n self.init_rng_from_seed(123);n } else {n self.rng = Some(SmallRng::from_entropy());n }n }n self.rng.as_mut().unwrap()n }nn pub fn new_from_slice(s: &[C::Item]) -> Self {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn fn is_head(&self, node: *const Node) -> bool {n node as *const _ == &self.head as *const _n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n // self.print();n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn let head_ptr = &self.head as *const _ as *mut _;n // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut prev: [*const Node; MAX_HEIGHT] = [ptr::null(); MAX_HEIGHT];nn let mut iter = [SkipEntry {n // Bleh.n node: head_ptr,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n }; MAX_HEIGHT];nn let mut num_items = 0;n let mut num_usercount = 0;nn for (_i, n) in self.iter().enumerate() {n // println!('visiting {:?}', n.as_str());n if !self.is_head(n) { assert!(n.num_items > 0); }n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= NODE_NUM_ITEMS);nn // Make sure the number of items matches the countn let local_count = C::userlen_of_slice(&n.items[0..n.num_items as usize]);n assert_eq!(local_count, n.get_userlen());nn let expect_parent = if self.is_head(n) {n ptr::null() // The head's parent is nulln } else if n.height == self.head.height {n &self.head as *const _ // Max height nodes point back to headn } else {n prev[n.height as usize]n };nn // println!('visiting {} {:?}', i, n as *const _);n // dbg!(n as *const _);n // dbg!((n as *const _, (*n).height));n // dbg!(n.parent);n // dbg!(&self.head as *const _);nn assert_eq!(n.parent as *const _, expect_parent, 'invalid parent');n n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const _, n as *const _);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n prev[i] = n;n entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();nn // Check the value returned by the iterator functions matches.n let (mut normal_iter, local_offset) = self.iter_at_userpos(num_usercount);n assert_eq!(local_offset, 0);nn // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at the end...n while normal_iter.here_ptr() != n as *const _ as *mut _ {n normal_iter.advance_node();n }n normal_iter.local_index = n.num_items as usize;n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };n assert_eq!(normal_iter, node_iter);n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // println!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_userlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///n /// Sometimes a call to iter_at_userpos is ambiguous:n ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a node, it is equally valid to returnn /// a position at the start of the next node.n ///n /// Because its impossible to move backwards in the list, iter_at_userposn /// returns the first admissible location with the specified userpos.n /// n /// Returns (cursor, offset into the specified item).n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> (Cursor, usize) {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cursor = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n local_index: 0,n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset > skip {n // Go right.n debug_assert!(e == &self.head || en.num_items > 0);n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n node: e as *mut Node, // This is pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());nn // We've found the node. Now look for the index within the node.n let en = unsafe { &*e };n let mut index = 0;nn while offset > 0 {n assert!(index < en.num_items as usize);n n let usersize = C::get_usersize(&en.items[index]);n if usersize > offset { break; } // We're in the middle of an item.n offset -= usersize;n index += 1;n }n cursor.local_index = index;nn (cursor, offset)n }nn unsafe fn iter_at_node(&self, n: *const Node, mut offset: usize, local_index: usize) -> Cursor {n let mut n = n as *mut Node; // We don't mutate, but we need a mut ptr.nn let mut cursor = Cursor {n userpos: 0, // We'll set this later.n local_index: local_index,n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n };nn let mut h = 0;n loop {n while h < (*n).height as usize {n cursor.entries[h] = SkipEntry {n node: n,n skip_usersize: offsetn };nn h += 1;n }nn let parent = (*n).parent;n // Reached the head.n if parent.is_null() { break; }nn // If we're the same height as the parent its fine.n debug_assert!((*parent).height as usize > hn || (self.is_head(parent) && (*parent).height as usize == h));nn // Walk from parent back to n, figuring out the offset.n let mut c = parent;n // let walk_height = (*parent).height as usize - 2;n let walk_height = (*n).height as usize - 1;n while c != n {n let elem = (*c).nexts()[walk_height];n offset += elem.skip_usersize;n c = elem.node;n }nn n = parent;n }nn cursor.userpos = offset;n cursorn }nn pub fn iter_at_marker(&mut self, marker: ItemMarker, query: &::Query) -> Cursor where C::Item: Queryable {n // The marker gives us a pointer into a node. Find the item.n unsafe {n let n = marker.ptr;nn let mut offset: usize = 0;n let mut local_index = None;n for (i, item) in (*n).content_slice().iter().enumerate() {n if let Some(item_offset) = item.contains_item(query) {n offset += item_offset;n local_index = Some(i);n break;n } else {n offset += C::get_usersize(item);n }n }nn let local_index = local_index.expect('Invalid marker - item not found in node');n self.iter_at_node(n, offset, local_index)n }n }nn // Internal fn to create a new node at the specified iterator filled withn // the specified content. The passed cursor should point at the end of then // previous node. It will be updated to point to the end of the newlyn // inserted content.n // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {nn // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(contents.len() <= NODE_NUM_ITEMS);nn let new_node_ptr = Node::alloc(self.get_rng());n let new_node = &mut *new_node_ptr;n new_node.num_items = contents.len() as u8;n new_node.items[..contents.len()].copy_from_slice(contents);nn let new_height = new_node.height;n let new_height_usize = new_height as usize;nn let mut head_height = self.head.height as usize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn new_node.parent = if new_height_usize == MAX_HEIGHT {n &self.head as *const _ as *mut _n } else { cursor.entries[new_height_usize].node };nn for i in 0..new_height_usize {n let prev_skip = &mut (*cursor.entries[i].node).nexts_mut()[i];n let new_nexts = new_node.nexts_mut();nn // The new node points to the successor (or null)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node_ptr,n skip_usersize: cursor.entries[i].skip_usersizen };nn // Move the iterator to the end of the newly inserted node.n if move_cursor {n cursor.entries[i] = SkipEntry {n node: new_node_ptr,n skip_usersize: new_userlenn };n }n }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n if move_cursor {n cursor.entries[i].skip_usersize += new_userlen;n }n }nn // Update parents.n if new_height_usize > 1 {nn let mut n = new_node_ptr;n let mut skip_height = 0;nn loop {n n = (*n).nexts_mut()[skip_height].node;n if n.is_null() || (*n).height >= new_height { break; }n n (*n).parent = new_node_ptr;n skip_height = usize::max(skip_height, (*n).height as usize - 1);n }n }n n self.num_items += contents.len();n self.num_usercount += new_userlen;n if move_cursor {n cursor.userpos += new_userlen;n cursor.local_index = contents.len();n }nn notify(contents, ItemMarker {n ptr: new_node_ptr,n _phantom: PhantomDatan });n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], notify: &mut Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();nn // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(cursor.local_index <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n let num_inserted_usercount = C::userlen_of_slice(contents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && cursor.local_index == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The insert would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n if next.num_items as usize + num_inserted_items <= NODE_NUM_ITEMS {n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let item_idx = cursor.local_index;n let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n c[..].copy_within(item_idx..e_num_items,n item_idx + num_inserted_items);n }nn // Then copy in the new itemsn c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n self.num_usercount += num_inserted_usercount;nn // .... aaaand update all the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);nn // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content.n for entry in cursor.entries[0..self.head.height as usize].iter_mut() {n entry.skip_usersize += num_inserted_usercount;n }n cursor.userpos += num_inserted_usercount;n cursor.local_index += num_inserted_items;nn notify(contents, ItemMarker {n ptr: e,n _phantom: PhantomDatan });n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a bit more careful here and copy as much asn // possible into the current node - that would decrease the numbern // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, we'll need to removen // the end of the current node's data and reinsert it later.n let num_end_items = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node. That optimization hasn't beenn // added.n n for chunk in contents.chunks(NODE_NUM_ITEMS) {n let userlen = C::userlen_of_slice(chunk);n self.insert_node_at(cursor, chunk, userlen, true, notify);n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the newlyn // inserted content, which is *before* this end bit.n self.insert_node_at(cursor, end_items, end_usercount, false, notify);n }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {n // self.insert_at_iter_and_notify(cursor, contents, Self::no_notify);n // }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut item_idx = cursor.local_index;n let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n // self.print();n // if cfg!(debug_assertions) { self.check(); }n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);n if trailing_items > 0 {n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn // println!('removing {:?} contents {:?} height {}', e, (*e).content_slice(), height);nn for i in 0..height {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn // Update parents.n if height > 1 {n let mut n = e;n // let new_parent = cursor.entries[height - 1].node;nn // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.n let mut parent_height = 1;n let cursor_node = cursor.here_ptr();n let cursor_node_height = (*cursor_node).height as usize;n let mut new_parent = if height >= cursor_node_height {n cursor.entries[parent_height].noden } else {n cursor_noden };nn loop {n // dbg!(skip_height);n // dbg!((*n).height as usize);nn n = (*n).nexts_mut()[parent_height - 1].node;n if n.is_null() || (*n).height >= height as u8 { break; }n let n_height = (*n).height as usize;nn // dbg!((*n).content_slice());n // dbg!((*n).height);n n assert_eq!((*n).parent, e);n assert!(n_height >= parent_height - 1);nn if n_height > parent_height {n parent_height = n_height;n if n_height >= cursor_node_height {n new_parent = cursor.entries[parent_height].noden }n }n n (*n).parent = new_parent;n }n }nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;nn // if cfg!(debug_assertions) { self.check(); }n }n }nn // unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)n // where Notify: FnMut(&[C::Item], ItemMarker) {nn unsafe fn replace_at_iter(&mut self, cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item], mut notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // Replace as many items from removed_items as we can with inserted_content.n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n let mut e = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n }nn let index = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let old_items = &mut (*e).items[index..index + replaced_items_here];n let new_items = &inserted_content[0..replaced_items_here];nn let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn // Replace the items themselves. Everything else is commentary.n old_items.copy_from_slice(new_items);nn if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }n // I hate this.n self.num_usercount = self.num_usercount.wrapping_add(usersize_delta as usize);nn inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n cursor.local_index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;nn notify(new_items, ItemMarker {n ptr: e,n _phantom: PhantomData,n });n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(cursor, inserted_content, &mut notify);n } else if removed_items > 0 {n self.del_at_iter(cursor, removed_items);n }n }nn fn dbg_check_cursor_at(&self, cursor: &Cursor, userpos: usize, plus_items: usize) {n if cfg!(debug_assertions) {n // let (mut c2, _) = self.iter_at_userpos(userpos);n let (mut c2, _) = self.iter_at_userpos(userpos);n c2.advance_by_items(plus_items, self.head.height);n assert_eq!(cursor, &c2);n }n }nn fn no_notify(_items: &[C::Item], _marker: ItemMarker) {}nn pub fn replace_at(&mut self, mut start_userpos: usize, removed_items: usize, inserted_content: &[C::Item]) {n start_userpos = min(start_userpos, self.get_userlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.replace_at_iter(&mut cursor, removed_items, inserted_content, Self::no_notify); }nn if cfg!(debug_assertions) {n let (mut c2, _) = self.iter_at_userpos(start_userpos);n c2.advance_by_items(inserted_content.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after replace'); }n }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let (mut cursor, offset) = self.iter_at_userpos(userpos);nn unsafe {n if offset == 0 {n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);nn self.dbg_check_cursor_at(&cursor, userpos, contents.len());n } else {n let current_item = cursor.current_item();n let (start, end) = C::split_item(current_item, offset);n // Move the cursor back to the start of the item we'ren // splitting.n cursor.move_to_item_start(self.head.height, offset);n // This feels pretty inefficient; but its probably fine.n self.replace_at_iter(&mut cursor, 1, &[start], &mut Self::no_notify);n self.insert_at_iter(&mut cursor, contents, &mut Self::no_notify);nn // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.n self.dbg_check_cursor_at(&cursor, userpos, contents.len());nn self.insert_at_iter(&mut cursor, &[end], &mut Self::no_notify);n }n }nn }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let (mut cursor, offset) = self.iter_at_userpos(userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, num_items); }nn if cfg!(debug_assertions) {n let (c2, _) = self.iter_at_userpos(userpos);n if &cursor != &c2 { panic!('Invalid cursor after delete'); }n }n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nnimpl From> for SkipList {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList {n fn into(self) -> Vec {n let mut content = Vec::with_capacity(self.num_items);n''''''''''''''''MaybeUninit;''''''t''''t'a'm''''MaybeUnini';'t''''y'a'M':':'m'e'm':':'d't's' 'e's'u'''''''e's'n'''''''''''''''''NonNul';'l'''''''''''''''''';'r'e't'i':':'d't's' 'e's'u'n''n'o'N':':'r't'p':':'d't's' 'e's'u'n';nuse std::alloc::{alloc, dealloc, Layout};nuse std::cmp::min'''''''''''''''''''PhantomDat';'a'''''n'a'h'P':':'r'e'k'r'a'm':':'d't's' 'e's'u'n'''''''''''''''';'t'm'f':':'d't's' 'e's'u'n'n';nnuse rand::{RngCore, Rng, SeedableRng};nuse rand::rngs::SmallRng;nn/// The likelyhood a node will have height (n+1) instead of nnconst BIAS: u8 = 100; // out of 256.nn/// The number of items in each node. Must ''0'1''''2'''0'2''''0'0'''''''9'9'1'''fit in a u8 thanks to Node.'#[cfg''''''''''''''''s'n'o'i't'r'e's's'a'_'g'u'b'e'd'(test)]'const NODE_NUM_ITEMS: us's'i'n'z'o'e'i' 't'='r'''e'2's'''s'''a'''_' 'g'''u'''b'''e''''0''d'0'1;'n'n''''''''t'o'n'')'(''''''''''o'n')''''!'!'n''#'''!'[cfg(tes''t)]'const NODE_NUM_ITEMS: usize = 1;n'n'''n// const NO'''_'DE_NUM_ITEMS:'' u''size = 100''#[cfg(test)]'n';nconst'5' NODE_''0'1'''NUM_ITEMS: usize ='1''''''0'0'1''''1''''2''''1' 100;nn/// Rope operations will m's'ove'n' to'o' li'i'nea't'r t'r'ime'e' af's'ter's' NO'a'DE_''s'_'STR'n'''// '''g'_S'o'''I'u'Z'i'E 'b'''a, '''''''''''''''d'e'z'i'S' '+' ''t'''''''''''m'''// '''''''d'e'z'i'S' '+''' '*'// ' 2'e'r'' ^n/'e'// MA's'''''''''''''ListConfi'>'g'''''t's'i'L' ':'C''''''''''''pi''''''i'p'n'U''''I''''':':'n'''i'p':':'d't's' '>'''''n'i'p'n'U''Copy''Clone''Copy''''''e'n'o'l'C''C'<';''''/'/''<'''''''''''''''''''':':'d't's'''''':':'t'm'f''''''g'u'b'e'D' '+' ''ItemMarke'''}'{' 'r'''''m'e't'I' 'r'''o'f' 'd'e'z'i'S' 'l'p'm'i'n'X'''''''' 'b'u'''p'''''// '''''// ''''''''' ','a'''''''Li'&'''SkipLis'''>'C'<'t'''''p'i'k'S' 'stConfi'>'g''''''''n'o'C't's''''''n '''''''''''''''''>'a'''<''''PartialEq''''''''l'a'i't'r'a'P' '+' ''''''''''''a't'a'D'm'o't'n'a'h'P' ':'n'o't'n'a'h'''''''''d'e'z'i'S' '+' 'p'_' ','>'C'<'i'L' ':'C'<''''''''''''''''''''''e'd'o'N' 't'u'm'*' ''''' ':'r't'p' '''}''n 'n ' '{' 'r'e'k'r'a'M'm'e't'I' 't'c'u'r't's''''''''' 'f'e'd'e'p'y't'n'n'_'d''s'HEIGH'a'T len'_'g'#[c'g'fg(te'u'st)]''b'''con'e'st '2'NODE_NUM_IT'd'EMS: u''0'n''1''''1''''2'''s''ize = 1;n'''nconst NODE_NUM_ITEMS: usiz''e = 1;''n#[cfg(not(test))]''nconst 'nconst NODE'// ''''// '''_NUM_ITEMS: usize'// ' = 1;'NODE_NUM_ITEMS: usiz'n#[cfg(not(test))]''nconst MAX_HEIGHT: u'// 'size ''= '// '10;'e'''' =' where '''''''''''''''''''''''e'l'b'a'y'r'e'u'Q''''''''''y''n '''// '''''''''''''''n'// ''' ';''''''' ':'y'r'e'u'Q' 'e'p'y't' 'r'e'u'Q'm'e't'I''''''''''''n '''''''''''''''''''''''''''''''''''''''''''''':':'f'l'e'S''''''y'r'e'u'''''''Q''''''''''''''''''''''''''.'e'n'o'N' 'e's'i'w'r''''''f'l'e's''e'h't'O' '.'d'e'n'i'a't'n'o'c' 's't'i' 'f'i' 'm'e't'i' 'e'h't' 'o't'n'i' ')'t'e's'f'f'o'('e'm'o'S''''''''''''''''('e'm'o'C' 's'n'r'u't'e'R''''T' '/'/' '''''n fn contains_item(item: &''Self::Item, query'''''''''''''>'e'z'i's'u'<'n'o'i't'p'O': &'';''''Self::Item) -> bool {n }'''}''n 'n ' '{' 's'n'i'a't'n'o'C' 't'i'a'r't' 'b'u'p'n'n''n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n 'unimplemented''''''''''''''''''''''''''''''''' 'r'o'f' 'l'p'm'i' 'm'e't'i'_'s'n'i'a't'n'o'c' 'g'n'i's's'i'm''''''a't'n'o'c''''''''''''''''''''''''''''' 'r'o'f' 'm'e't'i'_'s'n'i'a't'n'o'c' ''''s't'n'e'm'e'l'p'm'I''''';')'('!'''''''l'p'm'i'n'u' n '''''''''''''''}' 'e's'l'a'f' '{' 'l'o'o'b''''B' '>'-' ')'m'e't'I':':'f'l'e'S'&' ':'y'r'e'u'q'''' ','m'e't'I':':'f'l'e'S'&' ':'m'e't'i'*''''&'('m'e't'i'_'s'n'i'a't'n'o'c' 'n'f' 'Self: S'//' '' ' 'iz''ed '' ' 100;''n''n''const MAX_HEIGHT: usi'nconst NODE_NUM_ITEMS: usize = 100;'ze 'n'= 10;n''#[cfg(test)]nco's'n'['st NODE_']'N''t'a'''''''o't'''U''M_ITEMS' where Sel'''''It''Item'''t'I':':'f: Sized''': usize = 1;n#[cfg(not(test))]nconst NODE_NUM_ITEMS: u'_'size = 100;n'th. '_'(With a sm'n '''''''''''''''''''''''''''''''''d'e'z'i'S' ':'f'l'e'S' 'e'r'e'h'w' '''''''''''''''''''''''''''''_'t'a''''ItemMarke'''''f'l'e'S'''''>'C'<'''''' }'n '{' ''''{')'r''''''M'm'e't'I''''''' ':'r'e'k'r'a'm' ','m'e't'I':':'f'l'e'S'&' ':'m'e't'i' ','f'l'e's''''S' 't'u'm'&'('y'f'i't'o'n' 'n'f' '''''''''n '''''n 'n ' 'aller constant the higher this is). On the flipn/// side, cursors grow linearly with this number; so smaller is marginallyn/// better when the contents are sma''0''&'1''''2'''''_'''t'a'''''''''''e'z'i's'u' ':''''''''''''''''''''>'T''''&'''''>'T''''>'T' '''''''''''''f'l'e's'&''''''''''''''''y'p'o'C'''''''''''''''' '''''''')'3'('o'o'F''''''''' '=' '''n ''''''''';')'('h'a'l'b'.'x' ';'x' 't'e'l''''''''''''''''<'t'i'n'>''i'n'U'e'b'y'a'M'''')'3'('o'o'F' '''}''n 'n ' '{' ')'('x' 'n'f'n'n'''g'u'b'e'D' ':'T' 'e'r'e'h'w' '''''' }''n 'n ' '{' ')'('h'a'l'b' 'n'f' ''<'<'T''''''''}''n 'n ' '{' 'o'o'F''<''''''''''' 'l'p'm'i'n'n';'''''''n'n')'('''' 'o'o'F' 't'c'u'r't's'n'n'n''s'o'p' ',''ller.nconst MAX_HEIGHT: us'1'ize = 20;nnconst MAX_HEIGHT_U8: u8 = MAX_HEIGHT as u8; // convenience.nn/// The whole list is configured through a single generic trait parameternpub trait ListConfig {n type Item: Default + Copy;nn /// Applications which have custom sizes (or do their ownn /// run-length-encoding) can define their own size function for items. Whenn /// items are inserted or replaced, the position is specified using then /// custom size defined here.n fn get_usersize(_item: &Self::Item) -> usize { 1 }nn fn userlen_of_slice(items: &[Self::Item]) -> usize {n items.iter().fold(0, |acc, item| {n acc + Self::get_usersize(item)n })n }nn fn split_item(_item: Self::Item) -> (Self::Item, Self::Item) {n unimplemented!('Cannot insert in the middle of an item - split_item is not defined in trait');n }nn // type RngType: rand::RngCore = rand::rngs::SmallRng;n // fn get_rng() -> Self::RngType {n // use rand::SeedableRng;n // // rand::rngs::SmallRng::from_seed(SeedableRng::seed_from_u64(10))n // rand::rngs::SmallRng::from_entropy()n // }n}nn/// This represents a single entry in either the nexts pointers list or in ann/// iterator.n#[derive(Debug, PartialEq, Eq)]nstruct SkipEntry {n /// The node being pointed to.n node: *mut Node,nn /// The number of *items* between the start of the current node and then /// start of the next node. That means nexts entry 0 contains the length ofn /// the current node.n skip_usersize: usize,n}nn// We can't use #[derive()] here for Copy and Clone due to a bug in the rustn// compiler: https://github.com/rust-lang/rust/issues/26925nimpl Copy for SkipEntry {}nimpl Clone for SkipEntry {n fn clone(&self) -> Self { *self }n}nnimpl SkipEntry {n fn new_null() -> Self {n SkipEntry { node: ptr::null_mut(), skip_usersize: 0 }n }n}nnn/// The node structure is designed in a very fancy way which would be more atn/// home in C or something like that. The basic idea is that the node structuren/// is fixed size in memory, but the proportion of that space taken up byn/// characters and by the height differ depending on' '/'// With the heads array as is, we have no way to go from a marker back to' /// cursor (which is required to insert at that location in the list). Forn /// that we need to be able to figure out at each level of the nexts' /// pointers which object points to us, and the offset from that element ton /// the current element'''''''''''''''''''''''''''''''''''''''''''n ''''''''''''''''''''','''>'C'<'';'''' 'e'd'o'N' 't'u'm'*' ':'t'n'e'r'a'p''' ''/''/''/ '.'s'i'h't' 'd'e'e'n' 'e'w' 'k'r'o'w' 'o't' 's'r'e'k'r'a'm' ''''m'r'o'f'''''''e'e'n' 'e'w' ','y'a'w'y'n'A' '.'n /// pointers which object points to us, and''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e'm'e'l'e' 't'n'e'r'r'u'c' 'e'h't' 'o't' 't'n'e'm'e'l'e' 't'a'h't' 'm'o'r'f' 't'e's'f'f'o' 'e'h't' how far into the' an '/' // cursor (which is required t'n'''o'''''''''''''''''''''''''''''''''MaybeUnini''''''''''''''''''''''''''''''''.''''''' 'e'f'a's'n'u''t'e'y' 'd'e'z'i'd'r'''''''''>'T'<''''''MaybeUnini''' ''>'T'<'t''''''e'b'y'a'M''''''i'l'd'r'a'd'n'a't's' 't'o'n' 't's'u'j' 's't'I' '.'t'''''''u'e'b' ''y'a'm':':'m'e'm':':'e'r'o'c'''''':':'d't's'''''''t's' 'm'o'r'f' 'n''''''' 'd'e'l'o't'S' '/'/'n'''' '''''''''''''''''''''''''''''' ''n ' pub unsafe fn slice_get_ref(slice: &[Self]) -> &[T] ' '{n // SAFETY: casting slice to a `*const [T]` is s'MaybeUnini'''>'T'<'t''''''e'b'y'a'M'''afe sin' 'ce the caller guarantees thatn // `slice` is initiali''zed, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [Self] as *const [T]) }n }' 'n ' '('f'e'r'_'t'e'g'_'e'c'i'l's'_'t'i'n'i''''m'e'b'y'a'm''''''''_'t'i'n'i'n'u'''''''_'e'c'i'l's' 'n'f'n'n' insert at that location in the list)''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' 'o't'n'i' 'r'a'f' 'w'o'h' 'd'n'a' ','s'u' 'o't' 's't'n'i'o'p' 't'c'e'j'b'o''''''''s't'c'e'j'b'o' 'h'c'i'h'w' 's'r'e't'n'i'o'p' 's't'x'e'n' 'e'h't' 'f'o' 'l'e'v'e'l' 'h'c'a'e' 't'a' 't'u'o' 'e'r'u'g'i'f' 'o't' 'e'l'b'a' 'e'b' 'o't''''' 'd'e'e'n' 'e'w' 't'a'h't' 'r'o'F' '.' a node'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.')'t's'i'l' 'e'h't' 'n'i' 'n''''''''''n'i' 'o'i't'a'c'o'l' 't'a'h't' 't'a' 't'r'e's'n'i' 'o't' 'd'e'r'i'u'q'e'r' 's'i' 'h'c'i'h'w'(' 'r'o's'r'u'c' 'a' 'o'''''''a' 't' 'k'c'a'b' 'r'e'k'r'a'm' 'a' 'm'o'r'f' 'o'g'''''''''''''''' 'm'o'r'f' 'o't' 'y'a'w''''i' 'o'n' 'e'v'a'h' 'e'w' ','s'i' 's'a' ''''''' 's'y'a'r'r'a' 's'd'a'e'h' 'e'h't' '''''''''''''e'h' 't'h't'i'W'''''''''' ','e'n'o'l'A''W''s height. Thi'uninit_items_arra'')'('y's'MaybeUnini'''''''''')'('n ''''''''' '{' 'e'f'a's'n'u''maybeinit_s''}' 'lice_get_ref'''''e'''''c'i'l's''// '(slice: &[MaybeUninit])''''y'a'm' ''t'i'n'i''''i'n'u':':'t''''''e'b'y'a'M'''n/// '''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '+' 'e'd'o'n'(' 'r'e'k'r'a'm' 'a' 'm'o'r'f' 'o'g' 'o't' 'y'a'w' 'o'n' 'e'v'a'h' 'e'w' ','e's'l'e' 'g'n'i'h't'y'r'e'v'e''''' 'e'h't' 'h't'i'W''''''''''''''''''''''''''''''''''''' 'e'v'l'o's' 'd'l'u'o'c' 'I' 's'''' 'y'a'w' 'f'o' 't'o'l' 'a' 's'''e'r'e'h'T' '/'/' 'n ' 'results in a lot of `unsafe` blocks. I think the tradeoff is worth it but In/// could be wrong here. You probably wouldn't lose much performance in practicen/// by replacing the inline s'' '''''''''''''''''''''''''''slice_get_re'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'a't'n'e'm'e'l'p'm'i' 't'a'h't' 'm'o'r'f' 'n''''''' 'd'e'l'o'''''''l'i't's' 's'i' 'e'd'o'c' 's'i'h'T' '''' '' ''n ' // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer'''''''''''''&self.items[..self.num_items as usize';']' '=' 'e'c'i'l's' 't'e'l''n 'MaybeUnini''C::Ite'>'m'<'t''''y'a'M''''Self''C::Item'' 'C::Item'obtained is valid si''n''ce i''t refers to memory owned by `slice''` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [Self] as *const [T]) }' 'n ' '.'s'd'n'a'l' ''''''' 's't'i' 'n'e'h'w' 'f':':'t'i'n'i'n'U'e'b'y'a'M'''''''t'i'n'i'n'U' 'e's'U' ':'O'D'O'T' '/'/' '''''''n 'n ' 'tructure with a smallvec - but that would wasten/// memory in small nodes, and require extra pointer indirection on large nodes.n/// It also wouldn't remove all the unsafe here.n///n/// A different representation (which might be better or worse - I can't tell)n/// would be to have the nodes all be the same size in memory and change then/// *proportion* of the node's memory that is used by the string field vs then/// next pointers. That might be lighter weight for the allocator because then/// struct itself would be a fixed size; but I'm not sure if it would be better.n#[repr(C)] // Prevent parameter reordering.nstruct Node {n /// We start with the items themselves. Only the first `num_items` of thisn /// list is in use. The user specified length of the items in the node isn /// stored in nexts[0].skip_items. This is initialized withn /// Default::default() for the type, but when MaybeUninit completely lands,n /// it will be possible to make this a tiny bit faster by leaving the listn /// initially uninitialized.n items: [C::Item; NODE_NUM_ITEMS],nn /// Number of items in `items` in use / filled.n num_items: u8,nn /// Height of nexts array.n height: u8,nn // #[repr(align(std::align_of::()))]n n /// In reality this array has the size of height, allocated using more orn /// less direct calls to malloc() at runtime based on the randomly generatedn /// size. The size is always at least 1.n nexts: [SkipEntry; 0],n}nn// Make sure nexts uses correct alignment. This should be guaranteed by repr(C)n// This test will fail if this ever stops being true.n#[test]nfn test_align() {n struct TestConfig;n impl ListConfig for TestConfig {n type Item = u8;n fn get_usersize(_item: &Self::Item) -> usize { 1 }n }n #[repr(C)] struct Check([SkipEntry; 0]);n assert!(mem::align_of::() >= mem::align_of::>());n // TOD'n 'paren''''''''null_mut(',')'''''l'l'u'n':':'r't'p' ':'t''''''n'e'r'a'p' 'O: It'd be good to also check the alignment of the nexts field in Node.n}nnfn random_height(rng: &mut R) -> u8 {n let mut h: u8 = 1;n // Should I use a csrng here? Does it matter?n while h < MAX_HEIGHT_U8 && rng.gen::() < BIAS { h+=1; }n hn}nn#[repr(C)]npub struct SkipList {n // TODO: Consider putting the head item on the heap. For the use case heren // its almost certainly fine either way. The code feels a bit cleaner if itsn // on the heap (and '''' 'b'u'p'then iterators will be able to outlast a move of then // skiplist parent). But'''''''<'n'o'i''>'t'p'O' its also very nice having the code run fast forn // small lists. Most lists are small, and it makes sense to optimize forn // that.nn // TODO: For safety, pointers in to this structure should be Pin<> if wen // ever want to hold on to iterators.nn /// The total number of items in the skip list. This is not used internally -n /// just here for bookkeeping.n num_items: usize,n /// Size of the list in user specified units.n num_usercount: usize,nn /// The RNG we use to generate node heights. Specifying it explicitly allowsn /// unit tests and randomizer runs to be predictable, which is very helpfuln /// during debugging. I'm still not sure how the type of this should ben /// specified. Should it be a generic parameter? Box?n /// ??n rng: SmallRng,nn /// The first node is inline. The height is 1 more than the max height we'ven /// ever used. The highest next entry points to {null, total usersize}.n head: Node,nn /// This is so dirty. The first node is embedded in SkipList; but we need ton /// allocate enough room for height to get arbitrarily large. I could insistn /// on SkipList always getting allocated on the heap, but for small lists itsn /// much better to be on the stack.n ///n /// So this struct is repr(C) and I'm just padding out the struct directly.n /// All accesses should go through head because otherwise I think we violaten /// aliasing rules.n _nexts_padding: [SkipEntry; MAX_HEIGHT],n}nnnnimpl Node {n // Do I need to be explicit about the lifetime of the references being tiedn // to the lifetime of the node?n fn nexts(&self) -> &[SkipEntry] {n unsafe {n std::slice::from_raw_parts(self.nexts.as_ptr(), self.height as usize)n }n }nn fn nexts_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.nexts.as_mut_ptr()'''''n '''''''''''''n '''''''''n ''''''''''''''''''''''''''''''''''' 'o't' 'y't's'u'r' 'e'r'o'm' 'e'b' 't'h'g'i'm' 't'I' ':'O'D'O'T' '/'/' '''''''''''&''(*self.here''''''n ''n 'debug_assert'''''''num_item' as usize'''''''''''local_inde'''''''''''e'z'i's'u' 's'a' ''';')'x''''''l'a'c'o'l'.'f'l'e's' '='>' 's'''''''t'i'_'m'u'n'.'e'd'o'n'('!''''''g'u'b'e'd' ''_ptr()';')' '=' 'e'd'o'n' 't'e'l' '.'s's'o'r'''''''e'd'o'n'''''''r'o'g' 'o'n '/''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':''n /'n ///'''T''' '-' '// ''''''''''' 'y'l'l'''''''''''''''''''''''''''''''''')'s't'n'e't''''''''''''''''''''''''''''''''''''''''''''''''n ///'n ///''''''''''''''''''''''''''''''''''''''''''''''''.'y'r'o'm'e'm' 't'i'n'i'n'u' 'e'r'a'''''''''''' '''''d'o'm' 't'''n'''' 'e'r'a' 's't'n'e't'n'o'c' 'e'h'''t' ','g'' 'n'i't'a'r'e't'i' 'r'e't'f'A' ' ''''.'d'e'z'''' ''e'i'l'a'i't'i'n'i' 't'''n'e'r' ''a' 'r'e'v'o' 'e''''''' ''''''' 'e''''o' 't'a'r'e'''''' 't'i' 'e'w' 's't'n'e't' ''n'o'c' 'e'h'T''n'o'c' 'p'o'r'd' 't'o' ''''''''o't'n' 't'h'g'i'm' 'e'w' 'n'e'h't'(' ''u'f'''''''''n ///'' '-' '''''''''''''''''''d'e'n'i'a'r'd' 't'''n's'i' 'r'o't'a'r'e't'i' 'e'h't' 'f'i''''t' 'e'f'a's'n'u' 's't'I'''''''''''''' 'r'o't'a'r'e't'i' 'e'h'T''''''''''''''a' 's'i'''''''i's' 's'i''''''''''''''''''' 'e'b' '*'t's'u'm'*' 'e'd'i's'n'i' 'h'T' '''''''''''''''''''''''''''''''''''''''s'm'e't'i' 'e'h't' ','n'u'r' 's'a'h' 'r'o't'a'r'e't'i' 'e'h't' 'r'e't'f'A' '.'m'o'r'f' 'l'a'e't's' 'd'n'a' 'm'o'r'f' 'e't'a'r'e't'i' 'n'a'c' 'e'w'''''''''' '{' 'e'f'a's'n'u' 'e'c'''}' 'i'l's''''''''''''i'c'l' 'a' 'e'k'a'M' ''''''' '/'/'/' ''' unsafe fn from'''''''e'b'y'a'''''''''i'''n'U'''''''''<'<''>'t'i''''''''''t'n'i'n'I'e'b'y'a'M'm'_slice(slic'''[0]'''''''''''''''''''''''m'''''''''.'e'f'a'S''''s' '/'/' ''e't'I':':'C' 't'u'm'*' 's'a' '''']'0'['e: &[C::Item]) -> Self {n unsafe {n let ptr = slice.as_mut_ptr();n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr),n end,n _marker: PhantomDatan }n }n }n'S''// ''''''''''''''''''.'s's'o'r'g' 'o's' 's'i' 's'i'h'T' '/'// ''/' ', self.hei'''// '('*'ght as usize)n }n }nn fn '// ''''''''''')')'('r't'p'_''''''''''''''''_'t'u''// 'm'_'s'a'.'layout_with_height(h'/''/ 'eight: u8) -> Layout {n Layout::from_s''' }'''i''ze_a'// 'lign(n mem'// '::size_of::>() + mem::size_of'// '::>() * (he'// 'ight as usize),n mem::align_of::>()).unwrap()n }nn fn alloc_with_height(height: u8) -> *mut Node {n assert!(height >= 1 && height <= MAX_HEIGHT_U8);nn unsafe {n let node = alloc(Self::layout_with_height(height)) as *mut Node;n (*node) = Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n ''#[inline(always)]'n'''''''#[inline(always)]'n' num_items: 0,n height: height,n nexts: [],n };nn for next in (*node).nexts_mut() {n *next = SkipEntry::new_null();n ''#[inline(always)]'n' }nn noden }n }nn fn alloc(rng: &mut R) -> *mut Node<'''''n// Stolen from core::mem::MaybeUninit. Its just not standardized yet.nunsafe fn maybeinit_slice_get_ref(slice: &[MaybeUninit]) -> &[T] {n // SAFETY: casting slice to a `*const [T]` is safe since the caller guarantees thatn // `slice` is initialized, and`MaybeUninit` is guaranteed to have the same layout as `T`.n // The pointer obtained is valid since it refers to memory owned by `slice` which is an // reference and thus guaranteed to be valid for reads.n unsafe { &*(slice as *const [MaybeUninit] as *const [T]) }n}n'n'n'C> {n Self::alloc_with_height(random_height(rng))n }nn unsafe fn free(p: *mut Node) {n dealloc(p as *mut u8, Self::layout_with_height((*p).height));n }nn fn content_slice(&self) -> &[C::Item] {n &self.items[..self.num_items as usize]n }nn // The height is at least 1, so this is always valid.n fn first_skip_entry<'a>(&self) -> &'a SkipEntry {n unsafe { &*self.nexts.as_ptr() }n }nn fn first_skip_entry_mut<'a>(&mut self) -> &'a mut SkipEntry {n unsafe { &mut *self.nexts.as_mut_ptr() }n }nn // TODO: Rename to len() ?n fn get_userlen(&self) -> usize {n self.first_skip_entry().skip_usersizen }n n fn get_next_ptr(&self) -> *mut Node {n self.first_skip_ent''r''y().noden }nn /// I dunno where this logic should live, but we want to ''''''''''''''''''''''''''''''''''''':':'t'i'n''''''''''''''''''''''''' 'l'a'e'r' 'e'h't''''''''.'e'l'b'a't's''''MaybeUninit::uninit_arra'''''' 'n'e'h'w' 'y' 'h't'i'w' 'e'c'a'l'p'e'R''''''''''''''''''''s'i'h't' 'n'e'h'w' 't'a'h't' 'l'l'a'C''''R' '.'i'n'U'e'b'y'a'M' '''uninit_array' 'm'o'r'f' 'n'e'l'o't'S' ':'O'D'O'T' '/'/'n'''''''''''p''''''_'s'm'e't'i'ub fn'''>'T'<'''MaybeUnini'''>'T'<'t''''''e'b'y'a'M'' uninit_arr'NODE_NUM_ITEMS''''M'U'N''''X'A'M'ay() -> [Self; 'NODE_NUM_ITEMS'LEN]'M' 'U'{' 'N' 'n'X' 'A' 'M' unsafe { MaybeUninit::<[MaybeUninit; LEN]>::uninit().assume_init() }''n }'o'o'f' 'n'f'n'get the index ofn /// the item at the specified offset i'uninit_items_arra'')'('y'''''n'i'n'u'''nto the node (and the offset into then /// it''// None of the rust builtins give me what I want, which is a copy-free iteratorn// to owned ite''''''''Li'[MaybeUninit::uninit(); NODE_NUM_ITEMS]'stConfig''''''C't's'i'L''''''''''n'o'C' '''':':'C''' ','a'''ms i'n '''''''''''''''''''''m'e't'I':':'C'''''C::Item'''''''' '''e'h't'''''''''''''''''''''''''''.'n'o'i'''t'a't'n'e'm'e'l'p'm'i''''''''e'''>'C'<''m'l'''''C: ListConfig' ','a''''p'e'm'i'''' ','a''''C'''' 't'u'M'r'e't'I''' 'e'r''''''''t''''''''m'e't'I':':'C'''u'M'R'e't'I'''''r'e't'i' ''o'c'''''''''.'e'c'i'l's' 'n'o' 'd'e's'a'B' '/'/' 'n a MaybeUninit array''''''''''''''t'u''''''''''t'u'n'm''''''''''''''''''''''''''.'n'w'o' 'y'm'''''_'''')'''')'t'u'm' 'e'k'a''''k'm' 'o't' 'h'g'u'o'n'e' 'y's'a'e' ''n '_mark'impl<'a, C: ListConfig> 'e'''PhantomData''''a'h'P' ''''''''C' ','a''':'r''''''''''''m'e't'I':':'C''''k'r'a'm'_' ',''s'''''''''''''_' 't'u'm'*' 's'a' 't'i' ';''''.'h'E' '.''''''''''''''''''''''' '''t'''s'u''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'z'i'S' ''':''''>''''>'T'<'T'<'''Unin'''unsaf''' 'e'''''''''''' 'e'f'a's'n'u'itOw''{' ''''''''''''''<'>''t'i'n'i'n'U'e'b'y'a'M'''''''''''''as_ptr()''''_'s'a'.''''''''''.'f'l'e's'''''''n ''''' '' '''''.'f''''''''''.'''''''.',')'('r't''''r'p'_'s'a'''''''')')'('d'a'e'r'l'e's'''''''''n'' '''// ' '' ''''e'n'o'N' 'n ' '''''''''.'r't'p'('e'm'o'S'''' ''' }'n ' '{' 'e's'l'e' '}'n ''''''''''''' '}' 'e'n'o'N' '{' 'd'n'e' '='=' 'r't'p'.'f'l'e's' 'f'i'''''// ' '' 'ne''dIter''U' 'l''''''''' ':'e'c'''''''''''')'('r't'p'_'s'a'.'i'l's''''M' unsafe fn from_slice(slic''e: &[T]) -> Self''''''''>'T'<''''''''''''''''UninitOw'''>'T' '''''''''''''''''n '''''''''''''''''''''''''''''''''''''''''''' ''''e'n'o'N' ''' }''n 'n ' '{' '>'m'e't'I':':'f'l'e'S'<'n'o'i't'p'O' '>'-' ')'f'l'e's' 't'u'm'&'('t'x'e'n' 'n'f' 'n ' ';'T' '=' 'm'e't'I' 'e'p'y't' ''<'nedIte'''''}''n 'n ' '{' 'r'''''n'i'n'U' 'r'o'f' 'r'o't'a'r'e't'I' 'l'p'm'i'n''n' {n '' un''''''''''''''''''''y'p'o'C' ':'m'e't'I':':'C' 'e'r'e'h'w' 'safe {n '' let p''tr = slice.as_ptr();n let end = ptr.add(slice.len());nn UninitOwnedIter {n ptr: NonNull::new_unchecked(ptr as *mut T),n endn }n }n }n'ay'// 'beUnini''''''''''Un'n unsafe fn from''''''f'l'// ''e'S'_slice(slice'// ':'''' &[M'''>'T'<'aybeUninit]) -' '// ' '' unsafe {n l'''''' '// ' let end ='' if me'''''// ''e'c'i'l's'm::size_o'UninitOwnedIter''n ''''U'// ''f:';''':''() == '// '0 {n '// ' 'n '// '''content_slic'')'('e''''''''t'n'e't'n'o'c'.''''''' '''n '''' (pt''}'n 'r a''s *const u8).wrapping_add(self.len()) as *const Tn } else {n'' '' '''''e'c'i'l's''''''' assume(!ptr.is_null());'n'''e''t ptr = self.as_ptr();n assume(!ptr.is_null());nn let end = if mem::size_of::() == 0 {n (ptr as *const u8).wrapping_add(self.len()) as *const Tn } else {n ptr.add(self.len())n };nn Iter { ptr: NonNull::new_unchecked(ptr as *mut T), end, _marker: marker::PhantomData }n }'> UninitOwnedIter {'initOwnedIte''''' }''n 'n ' '{' 'r''''''i'n'i'n'U' '>'''' ''''.'-' ')']'>'T'<'t'''''b'y'a'M'['&'('''p'''''m'''''''''''' '>'-' ''''''i'n''''' u''nsafe fn owned_iter_from_slice'n'''// '''''''Iterator''''''a'r'e't'I' 'l'p'm'i'n'n'''e'e'r'f'-'''''''''''''''''''''''''''''''''''''''''.'y'a'r'r'a' 't'i'n'i'n'U'e'b'y'a'M' ''''''' 'n'a' 'n'i'''''''''''''' 't'''n's'e'o'd' 't'a'h't' 's'm'e't'i' ''''''''''''''''''d'e'n'w'o' 'o't' 'r'o't'a'r'e't'i' 'y'p'o'c'-'o'r'e'z' 'a' 's'i' 'h'c'i'h'w' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''n's'e'o'd' 't'i' 'e'r'e'h'W' '-' '/'/'n's'm'e't'i' 'd'e'n'w'o' 'o't' 'r'e't'I''''''d'e'n'w'O'''''''O'W' '-' '/'/''''''' '-'n':'t'n'a'w' 'I' 't'a'h'w' 'e'm' 'e'v'i'g' 'r'''''''''s'n'i't'l'i'u'b' 'e'h't' 'f'o' 'e'n'o'N''''''''''i'h'T' '/'/'n'em).n /// n /// If'''' th' T: 'a>'', C: ListConfig>'e offset l'n '''''''''''''''''''''''''''''''''''.'s'i'h't' 'o't' 'a't'a'd'm'o't'n'a'h'p' 'a' 'd'd'A' ':'O'D'O'T' '/'/' 'ands '// '''''''''''''''''''''d'e''''''''''''>'a''''' ':'T' ','a'''''''n 'SkipLis'''''''''>'T'<'t'''''p'i'k'S''' '''''''''''''''n '// '''''''''''PhantomDat'''''''>'T' 'a'''&''''*'<'a'''''n'a'h'p''''m' ':'r'e'k'r'a'm'_' ','T' 't's'n'o'c'*' ':'d'n'e' ','>'T'<''''' '''''''''''''<'l'l'u'N'n'o'N' ':'r't'p' '''}''n 'n ' '{'''''''''n '{' 'n'w'O'''''r'e't'I't'i'n'i'n'U''''''''i't'i'n'I' 't'c'u'r't's''n'n'n'between items, we could return either the previous or next item.n /// n /// Returns (index, item_offset).n fn get_iter_idx(&self, mut usersize_of''fset: usize, stick_end: bool) -> (usize, usize) {n if usersize_offset == 0 { return (0, 0); }nn for (i, item) in self.content_slice().iter().enumerate() {n let usersize = C::get_usersize(item);n if usersize > usersize_offset {n return (i, usersize_offset);n } else if usersize == usersize_offset {n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }n } else {n usersize_offset -= usersize;n }n }n panic!('Could not find requested offset within the node');n }n}nnstruct NodeIter<'a, C: ListConfig>(Option<&'a Node>);nimpl<'a, C: ListConfig> Iterator for NodeIter<'a, C> {n type Item = &'a Node;nn fn next(&mut self) -> Option<&'a Node> {n let prev = self.0;n if let Some(n) = self.0 {n *self = NodeIter(unsafe { n.first_skip_entry().node.as_ref() });n }n prevn }n}nn/// This is a set of pointers with metadata into a location in the list neededn/// to skip ahead, delete and insert in items. A cursor is reasonably heavyn/// weight - we fill in and maintain as many entries as the height of the listn/// dictates.n///n/// This is not needed for simply iterating sequentially through nodes and data.n/// For that look at NodeIter.n///n/// Note most/all methods using cursors are unsafe. This is because cursors usen/// raw mutable pointers into the list, so when used the following rules have ton/// be followed:n///n/// - Whenever a write happens (insert/remove/replace), any cursor not passed ton/// the write function is invalid.n/// - While a cursor is held the SkipList struct should be con'''n '''''''''''''''''''''''' '''''t's'n'o'c'':'e'd'o'n'''''' bool''''''''l'o'o'b' '>'-' ''''' ''''e'd'o'n''' ''is_head = n as *const _ == &self.head as *const _''' }''n 'n ' '{' ''''''''''''')'>'C'<'e'd'o'N' 't'n '// '''''''print(';')''''i'r'p'.'f'l'e's' ''u'm''''m'*''''&' ','f'l'e's'&''''*'('d'a'e'h'_'s'i' 'n'f' 'n ' 'sidered pinned andn/// must not be moved or deletedn#[derive(Copy, Clone, Debug)]nstruct Cursor {n // TODO: Add a phantom lifetime reference to the skip list ro''' /// The global user position of the cursor in the entire list. This is usedn /// for when the max seen h'''''''('!'g'b'd'e''ight in')'creases, so we can populate previouslyn /// unused entries in the cursor and in the head node.n ///'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'n'o'N''''if cfg!(debug_assertions''''Some(SmallRng::seed_from_u64(seed)''' '}' ')' '{' ''')''None'''''' 'f'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e'i'r't'n'''''''''''''''' /// When the userpos of an ent'_'ry is 0 (totally valid and'''' ')'','i'(' usefu''enumerate()'''''m'u'n'e'.'l), a cursor' /// becomes ambiguou'n 'paren''''''''nul''''t'','u'm'_'l()'''''l'l'u'n':':'r't'p' ':'t''''''n'e'r'a'p' 's with regard to where exactly its pointing in then '' /// current entr'''''.'f'l'e''')'n'(''s'y. This is use'''''''''''''''''''''''''''.'y't'i'u'g'i''''u'b'm'a' 't'a'h'''self.''t' 'e'v''''''''.'f'l'e''''')'n'(''s'l'o's'e'r'''''''''''a't''n '''''''''''''''''''''''''''''''' '{' 'e'f'a's'n'u''as_pt''''}' ')'('r''''_'s'a''''a'.''''*'''''''''''''''''''.'''''''''''''''''''''''''''n 'if cfg!(debug_assertions'''n ''''''init_rng_from_seed''''''n '3'2'1''''1''' '''''''{' 'e's'l'e' ' ''}'n '''''.'f'l'e''')'n'(''s' ';''2'3'(seed:'=''''''''''d'a'e'h''''''.'e'd'o'n'''''''t'h'g'i'e'h''''''''''''''''''e'z'i's'u' 's'a' ''''''''''''''''u' 's'a' 'd'a'// ''e'h'.'f'n 'println''''''''''''''''''}'?''''n as *const _' ',':'{' ''''''';')'i' ','''}'{' '// ''''g'n'i't'i's'i'v'''('!'''''n'i'r'p' ''l''''.'e's'''''''// '-''''>''' ' dbg!''((n as *con''st _, (*n).height'// '));n'u64)''' '''// ''''// ' }'n ''''''' '// ''(''n'''d'// 'bg!(n.p''''''''''''// '''')'t'h'g'''i'e'// ''h'.')'n'*'('''''''('*' ','arent);n'n ''''&'''''''''''''''''''''n dbg!(n.parent);''n dbg!(&self.head as *const _);'_' 't's'n'o'c'*'''''''*'&' 's'a' '''d'a'e'h'.'f'l'e's''''''''''''''''n ';')'t'n'e'r'a'p'.'n'('!'g'b'd' '''t'i'n'i'.'f'l'e's' '{' ''') { Some(SmallRng::seed_from_u64(seed)) } ' '.'e'l'b'a't's' 'e'r'a' 's't's'e't' 'e'h't' 'o's' 'e'd'o'm' 'g'u'b'e'd' 'n'i' 'G'N'R'''''''R'N' 'e'l'b'a't's' 'a' 'e's'u' 'l'l'''e'W''''''''''''''''''''''''' ','e'd'o'm' 'g'u'b'e'd' 'n'i' 'e'r'''e'w' 'f'I''''W' '/'/' ' 'e'l'v'o's'e'r' 'o't' ''''''' 't'd'n /// becomes ambiguous''''''''''''''o't' '''''''''y'l't'c'a'x'e'''''''''''''''''''''y'r't'n'e' 't'n'e'r'r'u'c' 'e'h't' 'n'i' '' 'd'r'a'g'e'r' 'h't'i'w''''''t'u'o'b'a' in where '''''''''''''d'e's'u' 's'i' 's'i'h'T' 'its pointing.'n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'g'n'i't'n'i'o'p' 's't'i' 'e'r'e'h'w' 'n'i' 's'u'o'u'g'i'b'm'a' 's'e'm'o'c'e'b' 'r'o's'r'u'c' 'a''''' 'e'h't' ',')''''n '''''''''''''''''''''''''''''''''''''''''''','8'u''''8' ':'t'h'g'i'e'h' ''n ''''''''''''''''&self.head as *const _ as *mut ';'_' '=' 'r't'p'_'d'a'e'h' 't'e'l' '''''''''''''''e'''' for entry'''' 't'u'm' in &mut self.entries[0..height as usize] {' ''''''''t'e's'f'f'o' e''''''8''''9'u' 's'a' 'nt'''n 'ry.skip_'' // Dirty hack. If n has 0-sized elements at the end, the normaln // cursor won't be at th' while normal_iter.here_ptr() != ''''''''''''''''''''''_' 't'u'm'*' 's'a' '_' 't's'n'o'c'*' 's'a' 'n {' normal_iter.advance_node();' }n'' 'n'n'' 'e end..'n 'normal_ite''loca''l_''inde''''''num_item'''''n '''''''normal_ite''here_ptr(''''''''n 'normal_ite''advance_nod''''' }'n ';')'('e''''''n'a'v'd'a'.'r'''''''l'a'm'r'o'n' '{' 'n' '='!' '''''get_userle''' ')'('n''''''u'_'t'e'g'.')'.'r''''''a'm'r'o'n''''(' 'e'l'i'h'w' ''''''''';'e'z'i's'u' 's'a' '''' 's'''''_'m'u'n'.'n''''normal_iter''''''a'm'r'o'n' '=' 'x'''''a'c'o'l'.'r'''''m'r'o'n' '.'n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'.'.'d'n'e' 'e'h't' 't'a' 'e'b' 't'''n'o'w' 'r'''' 'o's'r'u'c' 'l'a'm'r'o'n'''''''r'o's'r'u'c' 'e'h't' ','d'n'e' 'e'h't' 't'a' 's't'n'e'm'e'l'e' 'd'e'z'i's'-'0' 's'a'h' 'n' 'f'I''''''''''''' 'e'h'T''''''''o'n' 'a' 'f'I' '.'k'c'a'h' 'y't'''''''t'e'r'i'D' '/'/' 'users'''''t's'n'o'c'ize'-'''n ''''''''''''''''''''''null_mut('''MAX_HEIGHT''''X'A'M'''''''''n ';']''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n '''(''''''''''''''''''''''''t'e's'f'f'o'_'l'a'c'o'l''''')'_' ',''''''n 'a''''''''''''''''')''''>'m'e't'I':':'C'''''''''':'''''n '' ''''''''''''''''''''''''ManuallyDro'''''''''''';')'m'e't'i'('w'e'n':':'p':':''''o'm'e'm':':'d't's''''''''l'l'a'u'n'a'M' '=' 'e'u'l'a'v'.'t'o'l's' '':'T' ','_'(''// ''''_' ':''''('''''''''m'e't'I''''''''''''''''')'m'e't'I':':'''''''''''''''''''''''''''''''''''''''''''''''''.'e'u'l'a'v' 'd'l'o' 'e'h't' 'p'o'r'd' 't'''n'o'd' 'e'w'''''''' 't'''n'o'e'w' 'e'r''''''''''w' 'e'u's' 's'e'k'a'm' 'e't'i'r'W'''''''''''''''''''' 't'''n'o'd' 'e'w' 'e'r'u's' 'e'k'a'M' '/'/' ''''C' 't'u'm'*' 's'a' '':':'C' ':'ssert_eq''''''''''''''''0''''get_userle'''';')')'('n'''''''''''e'l'r'e's'''u''as_mut_pt'')'('r''''':':''''''''''>'m'e't'I':':'C'<''''''''_'t'u'm'_'s'a'.''''''''''''')'''('e't'i'r'w'.''_'''''''u')'t'e'g'.'n' ','t'e's'f'f'o'_'l'a'c'o'l'('!'''s'a' ''''''''''' '{' 'e'f'a's'n'u' '=' 'r'e't'i'_'e'd'o'n' 't'e'l'''''''ite''}'n ''''''''''''''''''''''''iter_at_userpos''''''''''''''n 'assert_eq''''''''''''''''''''''''';')'r'e't'i'_'e'd'o'n' ','r'e't'i'_'l'a'm'r'o'n'('!''''s's'a' 't''n let node_iter = unsafe { self.iter_at_node(n, n.get_userlen(), n.num_items as usize) };';''n'u'o'c'r'e's'u'_'''''''''''''r'e's'u'm'u'n'(target_userpos: usize)'.'f'l'e's' '=' 'r'e't'i'_'l'a'm'r'o'n' 't'e'l' '' 'r_at_nod'''''''''e'z'i's'u' 's'a' 'e'n'''''''''''''''')''''num_items';''''''''t'i'_'m'u'n'.'n'('n'e'l'r'e's'u'''''''o'l'_'t'e'g'.'n'(mut n: *mut Node, mut offset: usize, local_index: usize)'''''r'e't'i'.'f'l'e's' '.'s'e'h'c't'a'm' 's'n'o'i't'c'n'u'f' 'r'o't'a'r'e't'i' 'e'h't' 'y'b' 'd'e'n'r'u't'e'r' 'e'u'l'a'v' 'e'h't' 'k'c'e'h'C' '/'/' 'n ' '''')'_' ';')''''l'u'n':':'r't'p''''''_'l'l'u'n''''''''[''*mut Node'''MAX_HEIGH'''''[' '=' ']'T''''X'A'M' ';'' ':'''' 'v'e'r'p' 't'u''head_ptr''''''_'d'a'e'h'm' 't'e'l' '' += usersize;' }n'' 'n'n'' '' ''''''use''rp''o''''''''''''''' 'n ' for entry in &mut self.entries[0..height as usize] {n entry.skip_usersize += usersize;n }' ';'t'e's'f''''s'f'o' '='-' 's'''''r'e's'u'.'f'l'e's' ''' }''n 'n ' '{' ''z'i's'u' ':'t'e's'f'f'o' ','')'f'l'e's' 't'u'm'&'('t'r'a't's'_'m'e't'i'''''''''''''e'd'o'n'_'o't'_'e'v'o'm' 'n'f' 'n ' 'l'u'f'e's'u' 'd'n'a' 'd'i'l'a'v' 'y'l'l'a't'o't'(' '0' 's'i' 'y'r't'n'e' 'n'a' 'f'o' 's'o'p'r'e's'n ''''''local_inde''''';'0' '=' 'x''''''l'a'c'o'l'.'f'l'e'''n '''''''''''''''''''''''''''''' 't'u'm''' as *const _'''''''''''''''' ''''''''''''''';'m'e't'i' '=''?''' 't'o'l's'''*''' (slot as *mut C::Item).write(item); // Do not call drop() on junk.n'''''' '_''// ' '('''' as *mut C::Item)''('''''''''''''''''''''m'e't'I':':'C''''''''''''''''')'''''''''''''''''''''''''''''''.'k'n'u'j'''''t'n'o'c' 'n'o' ')'('p'o''''a'r'd' 'l'l'a'c' 't'o'n' 'o'D''''N' '/'/' ''''('e't'i'r'w'.')''''('_' 't'u'm'*' 's'a' ' '''_'''f'l'e's''''' ''i''''''''''(''''''here_ptr()'''''e'r'e'h'.'f'l'e's'''''e'r'e'h'''' '{' 'e'f'a's'n'u'''''''''''''''8'u''''''e'z'i's'u''''''''-'e'z'i''''z's' ':'t'h'g'i'e'h' ',''n'f 'se''''''n ''''''''''''''''m'e't'i'_'t'n'e'r'r'u'c'''''''''''''''unsaf'''n ''''''''' 't'u'm'''''y'r''''''''''''''''' '''''''''''''''f: &mut fmt::Formatter<'_'''''''''''Resul'''''v'e'r'p'''' '''''''''d''e''bug_struct'''''''r''' .field('userpos', &self.userpos)n'n ' '''''''''''''''''x'e'd'n'i'_'l'a'c'o'l'''''n ''' '/'/' '''''''x'e'd'n'i'local_index''''''l'a'c'o'l'''''''''_''''''''''''''''''''''''n 'mut ''''' ''finis''h_non_exhaustive('''')''''''''''o'n'_''')'('h's'i'n''''e'n'o'N''''i'f'.' ')'s'o'p'r'e's'u'.'f'l'e's'&' ','''s'o'p'r'e's'u'''('d'l'e'i'f'.' ' 'o's'r'u'C'''(name: &st'''r)'''''u'b'e'd'.'f' ''' }''n 'n ' '{' 't'''''u's'e'''R':'n '// ''''''''''''';'n' '=' ']'i'['v'e'r'p' '':'t'm'f' ''n '''''''''''''''''''''''''''''''''n ''''''nul'''''''''''''''''''''''''''''''l'l'u'n' 's'i' 't'n'e'r'a'p' 's'''d'a'e'h' 'e'h'T' '/'/' 'l''_''m''ut()'''''l'l'u'n':':'r't'p' '''''''''''''''''''''''''''''''''''''''''d'a'e'h' 'o't' 'k'c'a'b' 't'n'i'o'p' 's'e'd'o'n' 't'h'g'i'e'h' 'x'a'M''''''' 't'''n'o'D' '/'/' ''' '{' 'd'a'e'h'_'s'i' 'f'i''' ''''''''''''_' 't's'n'o'c'*''''''''''''''''''''t'n'e'r'a'p''''a' 'd'i'l'a'v'n'i''' ','' 's'a' ' ' ' '''''' 'e'''s'l'e' '}'n '''''''''''''''''MAX_HEIGHT_U'''n '''''''(''''''' ''''&self.''''''n ''''''''n ''''''_' 't'u'm'*' 's'a' 'h'n ''''n ';''''ead as *const'expect_parent' '''e'p'x'_;''''''')'''''as'e'_mut_pt'')'('r''''_'s'a'.''''''''''' '{''iter[n.height as usize].nod''}' 'e' 'e's'l'e' '}' 'd'a'e'h'.'f'l'e's'&' '{' '8'''''''T'H'G'I'E'H'''''''''' '// ' let walk_height = (*parent).height as usize - 2;n''''A'M'_'E'D'O'N' '='=' 't'''''''''''' as usize''''''''''''''''e'z'i's'u' 's'a' '1' '-' 't'h'g'i'e'h'.')'n'*'(''''h'g'i'e'h'.'n' 'f'i' '=' 't'n'e'r'a'p'_'t'c'e'p'x'e' 't'e''maybeinit_slice_get_ref''''''''''''''''''e';''c'i'l's'_'t'n'e't'n'o'c'_'t's'e'd'(slice: &[MaybeUninit])''''''e'b'y'a'm'l' ''n '''// ''a'!''''''''''''''''''''''''''''''''''''''e'd'o'n'.''';')']'e'z'i's'u' 's'a' 't'h'g'i'e'h'.'n'['r'e't'i' ','t'n'e'r'a'p'.''''''''''o't'n'i'.'n'(entry.''n'ssert_eq'''''''.'y'r't'n'e'('!''''''r'e's's'a' ''''''n '''s's'a' '>'-' ')'>' ','f'l'''e's'&'('t'm'f' 'n'f' ''ListConfi'''''''''''''''''''''''''''''''n '''}'n '{' '>'C'<'r'o's'r'u'C' 'r'o'f' 'g'u'b'e'D':'''''''''''' ','f'l'e's' ' ''''''''''''''''('e'm'o'S' '=' 'g'n'r'.'''''d'''';'''''n fn get_rng(&mut self) -> &mut '_'SmallRng {n '''&mut self, '''//'_'n '''''''''''''''''''''''''''''''''''''''''''''''''''.'e'n'i'f' '''''''.'e'n'f'i' 's'''''''s' 't'i' 't'n'e'r'a'p' 'e'h't' 's'a' 't'h''''I' ','g'i'e'h' 'e'm'a's' 'e'h't' 'e'r'''e'w' 'f'&mut '''num_items: usize, ''''num_items: usize, '''&mut '''''''' ''''''''''''''''''''','''e'z'i's'u' ':'s'm'e't'i'_'m'u'n' 't'u'''''''''r'o't'a'r'e't'I''''''''''''' 't'u'i'm'&''''7''I''''I''W''''''''''r'e'h't'i'e' ''''''''''''''''''t'o'l's''''''''''ExactSizeIterator'''''c'a'x'E'''''''''''''''''' ',''n ''''''''''''''''''''''''''''''''''''''''.' '' (slot.as_mut_ptr('') as *mut'' C::Item).w'n '''''dest_content_slic''' '=' 'e'''''t's'e'd' 't'e'l' 'rite(item);n''d'e'v'o'm' 'y'// ''l'n'o' 'e'r'e'w' 'y'e'h't' '-' ''''''''''''''''.'s'm'e't'i' 'd'l'(slot.as_mut_ptr() as *mut C::Item).write(item);''o' 'e'h't' 'p'o'r'd' 't'o'n' 'o'D'''''''''''''''''''''''''''''''''.'m'e't'i' 'd'l'o' 'e'h't' 'p'o'r'd' 'o't' 't'n'a'w' 'o'd' 'e'W' '/'/' 't'n'e'r'a'p' 'e''''''''r'o't'a'r'e't'I''h't' 's'a' 't'h'g'i'e'h''''''''''e'i'h''' '''''''''Exact''size_hint(''0'.')'''''e'z'i's'''// 'Size'// 'Iterato''''''''''''''>'m'e'''t'I':':'C'='m'e't'I'// ''<'r''''a'x'E' ':''''''''// 'I''''''''''n 'n '' '' '''''''''''''''''''''''''''''''''num'';')'('n'''e'l''''NODE_'.'s't'num_item''');''''''''NODE_NUM_ITEM'';')'S''''''_'E'D'O'N' '='<' 's''''m'u'n''n'e't'n'o'c' '=' 's'm'e't'i'_'m'u'n' 't'e'l' ''n ''''''''('!'t'r'e's's'a' ' 'debug_assert''''''''''''''''''''num_item'';')'s''''''''e't'i'_'m'u'n' '='''' '>' ')'('n'e'l'.'s't'n'e't'n'o'c'('!''''''g'u'b'e'd' '''s'm'e't'i'_'m'u'n'' ''''n ','e'm'a's' 'e'h't' 'e'r'''e'n ' ' ' '(''self.is_head(')'';'''''pa'' '// ' '' // debug_assert_eq!(, );'n''''n'ren''''(*parent).height a'// 's usize''='=''' > h' '&'&'t')')'' ''|''| ''''' '|'|' ''w' 'f'I' '/'/' '' I'm s''ure ther'''''''' item' i''new_nod''''''''''''''''''''''''''''t'u'm'_''')'('r'e't'i'.''''''''''''''')'s't'n'e't'n'o''n '''''new_userle''''C::userlen_of_slice(new_node.content_slice('''';''')'''))''// ' '=' 'n' 't'e'l' '// ''c''''''''r'u'''c'('p'''i'z'.']'s'm'e't'i'_'m'u'n'n ''''''''n ''''''''''''''''''''''''''''''''''''''''''''''' 't's'a'e'''''n''''''''''''''''''''''''''''''''''''''n '''!'e't'a't's' 'd'i'l'a'v'''n'i' 'n'a' 'n'i' 'e'r'''''n ''' '' // debug_assert_eq!(new_userlen, C:'new_nod''''''''''''''e'c'i'l's'_'t'n'e't'n'o'c'''''''')'('s'm'e't'i'.'''''''i'.'e':''w'e'userlen_o'n'f_slice(conte''nts));n'e'w' ''n // TODO: Make sure the iterator wrote at least num_items. If not, we're in an invalid state!','t'n''o'n' 'f'I' ''n'.''l' 't'a''''''''''s'm'e't'i'_'m'u'n' 'e't'o'r'w' 'r'o't'a'r'e't'i' 'e'h't' 'e'r'u's' 'e'k'a'M' ':'''''''''' ':'O'O'D'O'T''''D' '/'/' 'n ' ''''''''''''';'m'e't'i' '=' 't'o'l's'*''''(' ''.'.'['s'm'e't'i'.'e'''''_'w'e'n' 'n')''''''''''''''''' 'n'i' ')'m'e't'i' ','t'o'l's'('''''''t's'n''''''is_head''''''t'''|'|' ''n'e'r'a''n '''''num_it''''ms''''''contents.len(';')' '=' 'n'e'l' 't'e'l' 'p''''num_it''''ms''n'e'l'''''''''''''num_items''''''i'_'m'u'n'.'.'0' 'n'i' 'i'''''''''''''next(''unwra'')'('p'''''r'w'n'u'.')'''e'n'.'s't'n'e't'n'o'c''i'''''''''''''t'n'e'r'a'p'('''''''it'''''''''''''s''n '''''''''''''''''''''''' 'new_node.items'0'''''''';'m'e't'i' '=' ''''[..contents.len()]' ''' }''n 'n ' '{' 's't'n'e'''''''''n ''''''''''''''''''''''''''''''''''>'T'<''''('e'c'i'l's'_'m'o'r'f'_'r'e't'i'_'d'e'n'w'o''''O' 'n'f' 'e'f'a's'n'u' 'n ' ''t'n'o'c' 'n'i' 'm'e't'i' 'r'o'f''''''r'o'f' '''''n 'n ' 'iz''size_'// 'hint''''; //contents.len() ''''''n'e'l''size_hint(' '''';')''''z'i's'.'s't'n'e't'n'o'c'''''''t'i' '(''/'/'node: *const Node)'''''h'_'s'i'.'f'l'e's''''p'' ''o'c'e's a nicer way to implement this.n if self.rn'n '''''''' 't''''''''''''>'C'<'e'd'o'N'''''''''''''''''''''''''''''''.'r't'p' 't'u'm' 'a' 'd'e'e'n' 'e'w'''''''''''''''' 't'u'b' 'copy''''''''e'n'o'l'c'''''.clone()''''','''''e't'a't'u'm' 't'''n'''''''''''')'('e'n'o'l'c'.'' '// ' // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_curs''or:'''nd_no''' 'ify'bool, mut notify: Notify)' '' '' unsafe fn insert_node_at(&mut self, cursor:'' &mut C'''' 't'u'm'ursor'&', contents: &[C::Item], new_userlen: usize, move_cursor: 'n 'num_items''''''i'_'m'u'n' // unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut'num_items' notif'i'y'_':'m'maybeinit_slice_get_ref''''''(slice: &[MaybeUninit])''''y'')'a'm'' '' 'u'Notify)'bool) {'n'n'' '' '''' 'n'' ''o'd''' 'e'W' '// ' unsafe fn ins''ert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_u' 'serlen: usiz'// 'e, mo''ve_cursor:'// ' bool)' '' '' 'n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool) {' unsafe'' fn in''sert_node_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool, mut' ' notify: Notify)n where Notify: FnMut(&[C::Item], ItemMarker) {n' {n'' '/'/' ''''n '''' ''''''';'_' 't'u'm'*' ''new_node.content_slice()'s'a' 'n'u'm''''' '''=' 'n' 't'e'l' '''g''.is_no'''n 'ne'n if parent.is_null() { bre';'''ak; }'() {n '' self.rng = ''S'n debug_assert!(('n debug_assert!((*parent).height '''I' ','as usize > h);'*pa'n'rent).height as usize > h);'''''I' 't'u'm''ome'n'(SmallRng::from_entropy());n '''''''''''''')'('t'u'm'_''' ''''''''', I: ExactSizeIterator' ','s't'x'e'n'.''' '' 'n // Reached the head.' }n self.rng.as_mut().unwrap()n }n'n 'SmallRn''''''''''''''''';')'('y'p'o'r't'n'e'_'m'o'r'f':':'g''''''l'l'a'm'S' 'e'e's'''f'''''l''''''n ''''''' 'e'f'a's'n'u'''''''''''''''''' 't'u'm''n''''''''''''''''''''''''' 't'u'm''''''''''''''''''''''''''e'z'i's'u' ':'x'e'd'n'i'_'l'a'c'o'l' ','''''''''e'z'i's'''u''' '''''''''''''''''''''_'e'z'i's' ':'// ''t'e's'f'f'''''''''''''''''''''''''.'r'e't'a'l' 's'i'h't' 't''''''''''''','x'e'd'n'i'_'l'a'c'o'l'''''''''''X''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'n'i' 'd'e's''''e's'a'p'''''n '// '''''''''''''''''''''''n '''''''''''''''n '''''''n '''''''''''(*n).heigh''''''''''''' '' cursor.entries[h] = SkipEntry {' 'n node: n,' 'n '''n ''n '' ''''n ''''''''''n '''''''''''d'l'u''''''''''''o't' 'e'l'b'a' 'e'b' 'o'h'S'''''''n ''''''''''''''''''''.'d'a'''''' '''// ' ''' 'new_nod''''r'''t'p'_'e'''''''o'n'_'w'e'n''' '' '' '// ' ' ' if height > 1 {' 'n '' '// ' let mut n = e;'' ' '' 'n '' '// ' // let new_parent = cursor.ent''''_'w'e'''n'''''r''i''e''s[h' 'eight - 1''].node;n'// '' 'n // If you imagine thi' '' '// ' 's node as a big building, we n''eed to''' '// ' 'n '' /' '// ' '''/ update the pa'// 'rent of all the node''s we cast a shadow'// ' ' 'over.' '' 'n '// ' ' '' // Can't use copy_within because we aren''''' 't'u'm'&''t su'':':''''>'C'<'re if the typen // implements Copy. Memmove the existing items.'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.' ptr::copy(n &c'item_idx'[offset_bytes],n 'item_idx + num_inserted_items' &mut c[offset_byt''''''''UninitOwnedIte'':':'''r''UninitOwnedIt''''''''''''''('e'c'i')''l's'_'m'o'r'f'.'''e'''''''''>'C'<'r''''''i'n'i'n'U' '''''s'm'e's''''''t'''i'_'''''''''x'd'i'_'m'e't'i'm'u'n'.'''e''s + num_inserted_bytes],n (*e).num_bytes as usize - offset_bytes);''s'm'''''''m's'e't' 'n ''''''''''''''''''''''''''''''''''''['c' 't'u'm'&''item_idx..item_idx + num_';'inserted_items]' '=' 'e'c'i'l's'dest_content_slice'''''t's'e'd''_'t'n'e't'n'o'c'''''_'t's'e'd'''''_'w'e'n' 't'u'm''''n''''w'e'n' 't'e'l' ' // Then copy in the new ite'''item_id'''item_id''''num_inserted_items''''m'u'n' '+' ''contents'''''t'n'o'c'x'''''m'e't'i'.'.'']'x'''''m'e't'i'['c'''ms. Can't memcpy from an iterator, butn // the optimizer should make this f'dest_content_slice'''''t's'e'd'ast.''i' 'g'n'i't's'i'x'e' 'e'h't' ''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''n ''''''''''''''''''''''''''''''C::userlen_of_slice'&''''item_idx..item_idx + num_inserted_items]'['c'''(contents);' '=' 't'n'u'o'c'r'e's'u'_'d'e't'r'e's'n'i'_'m'u'n' 't'e'l' ''''''''''''''''''''''.'t's'a'f' 's'i'h't' 'e'k'a'm' 'd'l'u'o'h's' 'r'e'z'i'm'i't'p'o'''''t's'u'r' 'e'h't'''''e'p'o'h' 't'u'b' ','r'o't'a'r'e't'i' 'n'a' 'm'o'r'f' 'y'p'c'm'e'm' 't'''n'a'C' '.'''''' '' ''n 'n for (cell, item) in into.it' 'er_mut' '().zip' '(iter) {n ' ' *cell = item;n }' '' '// ' ''d'a'e't's'n'dest_content_slice'''''t's'e'd''i' ' ptr::copy(' 'n &c[leading_bytes + removed_bytes],' 'n &mut c[leading_bytes],' 'n 'n '''''''''''''''''''''''''''''''''''''''''s't'n'a'w' ''''''''''''''''''''''''''''''''''''''// '''''''''t'''''''''t'u'm'_''')'('r'e't'i'.''o'l's' ''' '' '// ' '*slot.as_mut_ptr() ='inserted_conten''next('''''''''';''''''';'''/')'// ''('p'a'r'w'n'u'.''''(')''''x'e'n'.'t'''''''t'r'e's'n'i''' item;' ''''''''''''''''''''t's''' ''e'd' 'n'i''''''' '=' 't'o'l's' 't'u'm'&'''''''' 'n'i' 'i' 'r'o'f'''''''n '''''' ''' }''n 'n ' '{' ' 'index..index + replaced_items_here' '/':' 't'n'e't'n'o'c'_'d'e't'r'e's'n'i' 'f'o' 'p'i'h's'r'e'n'w'o' 's'e'k'a't''''''s'e'v'i'g' 't'i' 't'u'b' ')'('p'i'z' 'e's'u' 'o't' 'r'e'f'e'r'p' 'd'l'u'o'W' '/'/' ' trailin'// 'g_bytes);''''e'v'o'm'm'e'M''''M' '.'y'p''''&'o'C' 's't'n'e'm'e'l'p'm'i' '// ''e'p'y''maybeinit_slice_get_ref''''')'''(slice: &[MaybeUninit])'''''b''// 'y'a'm'' 't' 'e'h't''''i' 'f'i' 'e'r'u's' 't'''n'e'r'a' 'e'w' 'e's''' ptr::cop'''_'y(n &c'''''('*'''i'as_mut_ptr'''''''''D''''''''p'_'t'u'm'_'s'''''''''d'e'c'a'l'n ''''''''''''maybeinit_slice_get_ref(dest';')' '=' 't's'e'd' 't'e'l' ''p'e'r'a't'''''''''')'('t'u'm'_'t'e'g'.'em_idx + rem''''t's'e'd''maybeinit_slice_get_ref(dest)'''oved_here''leading_bytes + removed_bytes'''item_idx'''''''i'_'m'e't'i'it'trailing_items''''''''n'i'l''maybeinit_slice_get_ref''''')'''(slice: &[MaybeUninit])'''''' 'b'y'a'm'i'a'r't'em_idx + removed_here'[leading_bytes + removed_bytes],n &mut c[leading_bytes],n trailing_bytes);'' 'n ' ptr::copy(' 'n &c[item_idx],' 'n &mut c[item_idx + num_inserted_items],' 'n (*e).num_items as usize - item_idx);' 'u'a'c'e'b' 'n'i'h't'i'// ''w'_'y'p'o'c' 'e's'u' 't'''n'a'C' '/'/' ' ' c[..].copy_within(item_idx..e_num_items,n item_idx + num''_inserted_items);n' '' 'n '' '''// '/''/ So, if'' o't'u's'r'e' height ' '// ' ';' 'd' 'is 3 a'// 'nd the next nodes 'maybeinit_slice_get_ref(dest)'have heights 1' ' '''new_node_ptr'''''''o'n'_'w'e'n''' ' 'n '// ' // and 2, they bo' 't''h need new parents.' '// ' 'n l' '// ' '' 'et mut skip_height = 0;n' '// ''// ' 'n '// ' loop {' ''' ' ''// '// ' 'n ' ' // dbg!(skip_height);' '// ' 'n ' '// ' ' // dbg!((*n).height as usize);n' 'n ' ' n = (*n).nexts_mut()[skip_height].node;' 'n ' ' if n.is_null''('') || (*n).height >= height as u8 { break; }' '.'''''''''e'w' 't'u'b' ',''' 'n ' ''''''''''''num_''insert'ms'ed'r'_ite'aining'm''''num_inserted_item''n '''''''''num_''insert'ms'ed'r'_ite'aining'm'''''''n ''''''''''''''''''''''''''''n'''i'm''''''''n'ms'um'r'_ins'aining'erted_item'''NODE_NUM_ITEM'';')'S''''M'U'N''''''''''X'A'M' ','s'''u'n'('x''insert_here''''''r'e's'n'i'n '''num_''insert'ms'ed'r'_ite'aining'm'''''insert_her';'e''''''r'e's'n'i' '='-' 's''''m'u'n' ''a'm''''M':':'e'z'i's'u' '=' 'e'r'e'h'_''''+'t'r'e's'n'i' 't'e'l' ''' '' ''''''' }' 'content'' ','s''''''''t'n'e't'n'o'c' '''''n '' '// ' 'n 'n' ' '{' '0' '>' 's'''' 'n }' '''''_'m'u'n' 'e''// 'l'i'h'w' ';'s'''''_'m'u'n' '=' 's'''''_'m'u'n' 'n // for chunk in contents.take(NODE_NUM_ITEMS) {' '' 't'u'm' 't'e'l'// ''n // TODO: We could cac'n // ''''''')'('r'e't'i''''t'.' // let userlen = C::userlen_of_slice(chunk);''n // self.insert_node_at(cursor, chunk, true, notify);'he this each time t'// 'he height goes up?' 'n (*n).parent = cursor.entries[(*n).height as usize + 1].node;' 'n skip_height = usize::max(skip_height, (*n).height as usize - 1);' 'n }' 'n }''''''''''n 'n ' 'n ' 'n ' 'n ' ''e'h' 'e'h't' 'd'e'h'c'a'e'R' '/'/' ''''''''''''''''''''''''''''''''''''''''''''}' ';'k'a'e'r'b' '{' ')'('l'l'u'n'_'s'i'.'t'n'e'r'a'p' 'f'i'''n '''n '''''''''''''''''''.'l'l'u'n' 's'i' 'n' 'f'''''''''''t''''e'k'a't''n'e'r'a'p' 't'' '// ' debug_assert!((*parent).height as usize > h);'''''' '' '' ' // Walk fr''om parent back to n, fig'n ''''''''''''''''' offset;''''''''''';'t'e's'f'f'o' '=' 's'o'p'r'e's'u'.'r'o's'r'u'c' 'uring out the of'''' 't'u'm'fset.' let c = parent;n'n'n'n'n'''''''n 'let'''''''''''t'h''2''''1''''2'''g'i'e'h'_'k'l'a'w' p_'''I' ','heig''ht''''''''''''' '''''''''=' 'm'e'l'e' ''n ', mut inserted_co''''''I' 't'u'm''''M'&'''ntent: &[C::Item]'', I: ExactSizeIterator' ''''''''''''''''''''skip_usersiz';'e'''', I: ExactSizeIterator'''''''''', I: ExactSizeIterator' ','''''u'_'p'i'k's'.'m'e'l'e' '='+''' 't'e's'f'f'o' ''n '''''''''''''''';'e'd'o'n'.'''''''.'e'm'e'l'e' '=' 'c' ';''t'e'l' ='' (*parent).height as usize'walk_heigh']'t'''''''''i'e'h'_'k'l'a'w''' - 1;' ''e'l'i'n 'debug_assert''inserted_conten'''''''''''replaced_item'';')'s'''''''c'a'l'p'e'r' '='>' ')'('n'e'l'.'t'''''''''''''n'o'c'_'d'e't'r'e's'n'i'('!'''''u'b'e'd' '' 'k'c'e'h'c' 'd''''''''''''''su''''''''''''''''1'(*parent).height'' '-' 'e' as usize''z'i's'u'''''''u's' 's'a' 'n''a'e't'''''''t'n''''''''n ''''''''''t'h'g'i'''''e'h'_'p' ''''''''''''''''''''''''''''''n'''n '''''local_inde''''local_index.expect('Invalid marker - item not found in'' n'// 'ode'';')' '=' 'x'''''''''n'i'_'l'a'c'o'l' 't'e''local_index''''''l'a'c'o'l''''''''''''o'''l''''='o'l' '''n ' ' ' ' ''' '''' '''c'''' 't'u'm':'''''':''&':'C'''''''''.f''''''''''''t'''' 't'''u'm'&'''''''''''''' ' '' '' ''n ''''''''''''''''''''C::userlen_of_slice''(ol''d_it''em't's';')' '=' 'e'z'i's'r'e's'u'_''''''''''i's'_'d'l'o' 't'e'l' ''''' let new_items = &inserted_content[0''..r''epla''ce't'd_items_here];n''' let new_usersize = C::userlen_of_slice(new_''i''tems);n 'd' 's' let'' usersize_delta = new_usersize as isize - C::use''rle''n_of''_s'd''t's''lic''e(old_items) as isi' let new_items ='old_item';'s''od' '(*e).items''''(*'''&inserted_content[0..replaced_ite'old_usersize''''''u'_'''d'l'o'ms_here];n'ze;nn'''''n // unsafe fn insert_at_iter_and_notify(&mut self,'' 'n ' let new_usersize = C::userlen_of_slice(new_items);n let usersi'// 'ze_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn' ' cursor: ''&mut Cursor, contents: &[C::Item], mut notify: Notify)' '','g'i'f'n'o'c'.'f'l'''''''f'.'e's'''''':'c' ''self.iter_at_node(n, of'n // ' 'w' '' 'he''' let new_items =''inserted_content''''(*'''&(*e).items[0..replaced_items_here];''od''old_item''';'s'''d'o' ''''''''''s'm'e't'i'.')'e'*'('''''''*'(''''inserted_content'''&inserted_content[0..replaced_items_here];n're Notify: FnMut(&[C'd'::'s'Item''], ItemMarker) {'fse'local_index.expect('In'' 'n ' let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;nn' 'valid m'' 'n ' '''''''''s'm'e't'i'_'d'l'o''' for (slot, item) in new_node.items[..num'''''''''''''''''''''''''''''''''''''.'t'n'e't'n'o'c' 'd'e'v'o'm'e'r''''' 'd'l'o' 'e'h't' 's'p'o'r'd' 's'i'h'''''''s'i'T' '/'''''''''''''n'I' '/'/' ''''''' '/'''''''''''''''''''t'n'e't'n'o'c'_'d'e't'r'e's'n'i'_items].iter_mut().zip(contents) {' 'n *slot = item;' 'n // (slot as *mut C::Item).write(item); // Do not call drop() on junk?' 'n }' 'n' 'arker - item '// 'not found in node')'''''t, local_ind'''n 'ex)' d'n // Now we need to make a cursor at''''''''''''''''''''y'p'o'C''''''e'n'o'l'C' ':'m'e't'I':':'C' 'e'r'e'h'w' ' the node/userpos location pair.n let mut cursor = Cursor {n userpos: 0,n '' local_index: local_index.expect('In'''n ''''''''''''''''''ItemMarke'''' ''''''new_nod'''''''' 't'u'm'&''''n '''''''''''''''d'e'i'p'o'c''''''''')'('d'e'n'o'l'c'.')'('r'e't'i'.''''''''''o't'n'i'.'_phanto'''PhantomData''Ph''Phan';'tomD''ata'''h'P' ':''';''m'''nn fn no_notify(_items: &[C::Ite' // unsafe fn insert_at_iter_and_notify(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: Notify)' // where Notify: FnMut(&[C::Item], ItemMarker) {' '' 'n'' 'n'' 'm], ''_marker: ItemMarker) {}'''''h'p'_' ','r't'p'_'e'''''''o'n'_'w'e'n' ':'''r't'p' ''''' '// '')'}''n 'n '_and_notif'(&mut self, cursor: &mut C'&mut''''''''s't'n'e't'n'o'c' inserted_content.iter().copied()'ursor, contents: &[C::Item], mut notify: Notify)n '// ' where Notify: FnMut(&[C::It''_'y''' '' '' '' '' '' '' '' ''''' '''{' 'r'''''m'e't'I''''M' ','s't'n'e't'n'o'c'('y'f'i't'' where Notify: FnMut(&[C::Item], ItemMarker) 'n''''''o'n' 'n ' 'valid marker - item not found in node'),n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n '''''''n 'unsafe fn insert_node''''''''''''''''''>'y'f'i't'o'N'<'y'f'i't'o'n'_'d'n'a''''''''''':':'r'e't'i''' '&mut contents.iter().copied()''t'u'm'&'''''''''''':':'r'e't'i':':'d't's''''''('e'c')''''n'o'''''''''_'''_''at(&mut self, cursor: &mut Cursor, contents: &''[''''''', mut notif'n ' ''where Notify: FnMut(&[C::Item], ItemMarker)'''n ''''''insert_node_at''''''r'''''''''s''''''''''''n''''''''''''r';''o's'r'u'c'_'e'v'o'm'e'l'r'e's'u'_'w'e'n't'n'e't'n'o'c'o's'r'u'c'(cursor: &mu'&mut iter::once'''d'n'e'(start)'t Cursor, contents: &[C::Item], new_userlen: usize, move_cursor: bool)'''''''t'r'e's'n'i'.'f'l'e's''' ' {' 'y:')''' ''N''' }''n 'n ' 'otify' ','C::Item], new_userlen: usize, move_cursor: bool) {' 'n ' ' '''n '''''''''''''''''''':''''' ','s'm'_''''''''' ':'r'e'k'r'a'm''e't'i'_'(&[C::Item], ItemMarker'''}'{' ')''''('y'f'i't'o'n'_'o'n' 'n'f' 'n ' 's'n '''fn notify(&mut self, _items: &[Self::Item], _at_marker: ItemMarker)'/'/' 'kip_u'// 'se''''''i't'o'n''''''''''''y'f'i't'o'n'_'d'n'a'_'rsize: usize::MAXn }; MAX_'''' 't'u'm'HEIGHT],n };nnn for i in 1..self.hea'n uns'''''''y'f'i't'o''''o'N'''''>'F'<'''''''>'F'afe fn insert_at_ite''''''''''''''''y'' 'n ' '''''''''''''''C'''''''ItemMarker'C'' ',''''''':':'c''''''''''''''''''''']'m'e't'I':':'f'l'e'S'['&' ':'s'm'e't'i''''''''''' ')'('t'u'M'n'F' ':'y'f'i't'o'N' '''''''''' ':'y'f'i't'o'n' 'e'r'e'h'w' ''' ''f'i't'o'N' ':'y'f'i't'o'n' ','r(&mut self, cursor: &mut Cursor, contents: &[C::Item]) {'d.height as usize {n n = (*n).parent;n // And find the local offset. Noten }n unimplemented!();''''n ''''''iter_''iter_at_node'mut n: *mut Node''n''mut offset: usize'''''''t''local_index: usize''''''''''''x'nn cursor''''e'd'n'i'_'l'a'c'o'l'e's'f'f'o'(mut n: *mut Node, mut offset: usize, local_index: usize)''''''_'r'e't'i'.'f'l'e's' '''ebug_assert!((*parent).height as usize > h);'''''n';'t'h'g'i'e'h'.')'t'n'e'r'a'p'*'(' '=' 't'h'g'i'e'h'_'p' 't'e'l' 'n ' 'e'r'''''''''''''''''''''y'p'o'C' ':'m'e't'I':':'C' 'e'r'e'h'w' 'a'p'''s'n'i' 'd'l'u'o'C' '?'?' '/'/' 'n ''''''''''''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 't'n'i'a'r't's'n'o'c' 'y'p'o'C' ':'m'e't'I' 'e'v'o'm'e'R' ':'O'D'O'T' '/'/'n''''''''''''''''''''''''''' ','''g'n'i''''n' 'o'''n ' where C::Item: Copy' ''''''''''''''''n '''''''''''''''' '''''''''''''''''''''''''y'p'o'C' ':'m'e't'I':':'C' 'e'r'e'h'w' '''''''''''''''''''''''''''''''''''''>'m'e't'I':':'C''''<'<'c'e'V' ':''''2''''1' '-' 't'h'g'i'e'h'.')'c'*'('[''''''''''''<'''''''''''>'m'e't'I':':'C''''<'<'c'e'V' ':'s't''''s'x'e'n'.')'c'*'(' '=' 'c' ''' }''n 'n ' '{' 'n' '='!' 'c' 'e'l'i'h'w' ';'t'n'e'r'a'p' '=' ''''u'c''''i' 't'e'l' '.'t' 'k'c'a'b' 't'n'e'r'a'p'''''''p'b' 'm'o'r'f' 'k'l'a'W' ' ' ''''''''''''''''''''''''''''''n 'n '// ' ' ''''''''' '// ' 'n ' let mut n = new_node_ptr;n loop {n n = (*n).nexts_mut()[new_height_usize - 2].node;n 'n ''''''print(';')''''i'r'p'.'f'l'e's' ' 'n 'if cfg!(debug_assertions) {'''''''''v'n'''}' 'e' 'f'i'' '''''''check(';')'''''c'e'h'c'.'f'l'e's' ' if n.is_null() || (*n).height >= new_height { break; }nn (*n).parent = new_node_ptr;n }' '.'n' 'o't' 't'n'e'r'a'p' 'm'o'r'f' '''''''n ''''''''''';'t'n'e'r'a'p' '=' 'n' 'n ' ''''''''''''''''''''''.'t'e's'f'f'o' 'e'h't' 't'u'o' 'e'r'u'g'i'f'''''''p'u' 'd'n'A' '/'/' '''''''''''';'1' '='+' 'h' ''''''''' '''' '''''' '''n 'debug_a'n'ssert'''''''''''''''''''''e'z'i'n n = (*n).parent;''s'''''u' 's'a' ''''''''''' 's'a' ''';')'h' '>' 't'h'g''n debug_assert!((*n).height as usize > h);'i'e'n''h''n'.')'n'*'('('!''''''g'u'b'e'd' ' ' ' skip_''' '' n = (*n).''''n '''''n 'n ' ''n ''''''''''''''''_' 't's'n'o'c'''''''''''''''''' '''_' 't's'n'o'c'*' 's'a' '*' '''s'a''n''d_no' 'ify''''''''''' 's'a''''''&''''''''''''''''''''''n '}' ';'k'a'e'r'b' '{' '''d'a'e'h'.'f'l'e's' '='=' 'n' 'f'i' 'parent;''''n 'n ' 'usersize: offset' '// ' 'n };' 'n''' '// ' }''n 'n '// ' ' '{' 'e'z'i's'u''' '''''s'a' ''''n ''''''''''n '''// ''''''''''''ItemMarke'''' ''''''''n '_phant'm'o'''PhantomData' ':'n''';'_''''PhantomData''''a'h'P' ','e' ':'r't'p' ''''' '' 'nd_no' 'ify' ')'}''n '' 'n ' '{' 'r'''''m'e't'I''''''r'a'M' ','s't'n'e't'n'o'c'('''notif'''('y''''''f'i't'o'n' 'y'f'i't'o'N' '/'/' 'n ' 't''// ' '<' 'h' 'e'l'i'h'w''' '''''''n 'println'''''''''''''''''''''''''''''''''''}'{' '''t'h'g'i'e'h'''''''h'e' '}'{' 's't'n'e't''' '// ' 'n ' ''?':' ''?':' println!('remo''''''content_slic''''''''''t'h'g'i'e'h' ',')'('e''''n'o'c'.')'e'*'('vi''ng {} contents {} height {}', e, );n' ''''n 'n'o'c' '}'{'''''''''''''''' '''s't'n'e't'n'o'c''' ',''';')'e'' '''' ','''g'n'i'v'o'm'e'r'''('!'''''n'i'r'p' 'n ' ' }'n ' ''// '{' 'p'o'o'l'''''''l'i'h'w' ';'// ''0' '=' 'h' 't'u''''m'm''''' '=' 'h' 't'e'l' '''// ''''n 'n ' ''''''n '' ''''''''''''''''''''' 't's'u'j' 'n'e'v'e' 'd'l'u'o'C' '/'/' '''''n ''''''''''''''''''''''''''''''''''{'' ' 'e'z'i's'u' 'h''''s'a' '' 't'h'g'i'e'h'.')'n' '' ''*'('.'.'0' 'n'i' 'h'' ''' 'r'o'f''' }'n ''heigh''t''''''i'e'h''''e'''''''h'g' 'n ' ';'0' '=' '' 'n 'for h in 0..(*n).height as usize { ' ' 't'h'g'i'e'h' 't'u'm' 't'e'l' '' 'e'b' 't's'''' 'n cursor.entries[0] = SkipEnt''ry {'arent'' '1''' '0''''1''' 'n node'n ''''''''''''''''''''''''''here_ptr(''n ''''''''''''''''''''''''''''''''e'z'i's'u' 's'a' '''n 'if height >= cursor_node_height '''n '{''''if h'''''''''''''' 'arent' ' } else {n'' els' {'e'}''eight >= cursor_no''d''e_'n cursor_node'heigh'''if'height''''geug''(*n)'n } else {'.height as usize''geug';''''n '''' height >= cursor_node''''1' '-' '_height {'t '''n '' 'arent' '{' ';''' '' '''''''''''{' 'e's'l'e' '}''''''''' 'new_parent = ''' '' ''''''''t'h'g'i'e'h'''''''''''''g'u''''';' '''''n ''e'g''(*n).height as usize' if n_height >= cursor_node_height {' ''''1' '-' ' 'n '' '' '''''' '''''a''r''ent' ne''''1' '-' 'w_par''ent = cursor.ent''r''i''e''s[skip_height + 1].nod''e' 'arent' 'n '' 'arent' }'''''''''''''''''''''''''''';'e'd'o'''''n'''''_'r'o's'r'u'c' '=' 't'n'e'r'a'p'_'w'e'n' 't'u'm' 't'e'l' '''''cursor_nod'''heigh'''''''''''';'e'z'i's'u''' 's'arent''a' 't''''i'e'h'.')'e''''''o's'r'u'c'*'(''''*' ''''''''1' '-' ''=' 't'h'g'i'e'h'_'e'd'o'n'_'r'o's'r'u'c' 't'e'l' ';')'''''e'r'e'h'.'r'o's'r'u'c' '=' 'e'd'o'n'_'r'''''n ''''''''''''''''''''''''''';'t'h'g''''''''''e'z'i's'u' 's'a' 'i'e'h'.')'n'*'(' '' 'n ' let n_height = (*n).height;' ''=' 't'h'g'i'e'h'_''''-'n' 't'e'l' ''o's'r'u'c' 't'e'l' ''n ''''''''1' '-' ' '' '' ''''''''''''''''''''// '''''''e'z'i's'u' 's'a' ''''' '='>' 't'h'';')''g'i'e'h'_'n''skip_height''''// '''p'i'k's'('!'t'r'e's's'a' ': n,' ''// 'n '''''''''''''''''''''''''''''''// ''// '''''''''''''''e'e'r''''n 't' '''''s't'n'e'r'a'p' 'e'// ''h't' 'p''// 'u' 'k'l'a'w''' 'o't' 'd'e'e'n' 'e'w' '// ''w'''''''''t'''h'g'i'e'h'_'n'o'N' '''// '' '/'/' ' '''n '// ' ' 'n 'i'// 'nsert'// ''''// '_''node_''and_no''tif''y(curso'// 'r: &mut Cursor, c'''' no' ' skip_height = n_height - 1;''n'''' - 1''' '' '' '' ' '' '' ' (*n' ').parent = if '''// 'curso''r_' '' ' ' }' 'n }' '' ' ' '' 'n'' ' ' ' '' ' 'node_'/''''1' '-'' - 1''' ''''''' 'n skip_height = n_height - 1;' ''''/ 'height >' ''' (*n).''height '' '// '{' ' '''''1' '-' ' '' '' '' '=''' '// '''cursor_node' ' ' 't' ' + 1''''''h''''''' 'g' '''i' 'e' 'h' '_' } else {' '// ''n' ''''1' '+''''''' '-' ' '// ' '// ' // TODO: ''We should be able to cache this each t't'i'// 'me'h'''n ''''''''''''''''// ''''''''e'z'i's'u'' '' '// ' 'if'n_heigh' 't'''' '='>' cursor_nod' '// ' ''''''''''''''cursor.entries'skip_height'''''''h'_'p'i'k's'[n_height a'// 's usize].node' '=' 't'n'e'r'a''// 'p'_'w'e'n' 'e_heigh''t''''''''='''<''' > ''''' '// ' 'new_paren';'''t'''''''a'p'_'w'e'n''' }''n 'n ' '{' 'n_height' ' 's''''' 'skip_heigh''''''''''''''''''''''''n ';'e'z'i's'u' 's'a''''=' 't'h'g'i'e'h'''''''i'e'_'n' '=' 't''''''_'p'i'k's' ''' }''n 'n ' '{' 'a' '''''skip_height'''''''''i'e'h'_'p'i'k's' '>' 't'h'g'i'e'h'_'n' 'f'i' 'n ''n n '' assert_e'''n 'n ' 'q!((*n).parent, e);n (*n).parent = '// 'if cursor_node_height > n_height {n cursor_noden } else {n // TODO: We should be able to cache this each timen // the height goes up.n cursor.entries[n_height as usize].noden };nn skip_height = usize::max(skip_height, n_height as usize - 1);''g' 'i' 'e' 'h' '_' // the heig'n'ht goes u'.'p'n'n'n'' 't''''''''''''''''''''''c''' 'o't' 'e'l'b'a' 'e'b' 'd'l'u'o'h's' 'e'W'ify','ontents: &[C::Item], new_userlen: u''si''ze, move_cursor: bool, mut n''otify: Notify)' skip''_usersize: offset' 'n };''' 'cursor_n''ode_heigh''''''''''''''''''n '''// ' ' } else {n' '' 'cursor_node'''''''r'o's'r'u'c' ''' 'e''' '' '' '' '' '''''''''''{' 'e's'l'e' '}'n 'n } else {''n cursor.entries[(*n).height as usize + 1].node' '{' 't'h'g'i'e'h'.')'n'*'(' ''' ';' }'n '''='>' 't'''''''r's'o'r'u'c' 'n '' for i in 1..'insert_node'at'_''insert_node_and_notif'(cursor: &mut Cursor, 'C'contents: &[C::Item], new_userlen: u''size, move_curs'n ''' 'f''// 'i''n ' ' ' // TODO: We could cache this each time'''''' }'n ' the height goes up'''n '?'or: bool, mut notify: Notify)'''y(cursor: &mut Cursor, c''''''''''''y'f'i't'o'n' ','ontents: &[C::Item], new_userlen: usize, m'''n 'o''''v''e_cursor: bool, mut notify: Notify)'self.hea'''and_no''tify'''d.''he''i''ght'' a'n's usize {' 'n '' notify',''' '// ' n 'n if n.is_null() || (*n)'// '.height >= height as u8 { break; }'= ('n'*n)''.pa''n n = (*n).nexts_mut()[skip_height].node;'''''''n 'nn fn'' no_notify(_items: &[C::Item], _m'n dbg!((*n).content_slice());'arker: ' dbg!((*n).con'n dbg!((*n).height);'ten'n't_slice());n'ItemMarke'// 'r) {}' 'rent''*''''''t''''n ''''''n ''''''''is_head''''''''t';''n'e'r'a'p'.'n'(nod'e'''e: *const Node)''''_'s'i'.'f'l'e's' 'h'g'i'e'h'''')''(';' 'n ''''''''content_slic'''assert_eq'''''''''''''''n'''''';')'e' ','t'n'e'r'a'p'.')'n'*'('('!''''s's'a'''n '';')')'('e'''''''''_'t'n'e't'n'o'c'.'n'('!'g'b'd' ' 'n '' '' // And find the local offset. Note' '// ' 'n }'''''n 'n ' ''''''n ''''''r'o's'r'u'c'// '' 'n ';' ' 'n ' 'u'j' 'd'l'u'o'h's' ''''''' 's'i'h't' 'e'b'y'a'M'(' '.'r'e'l'l'a'c' 'y'b' 't'e's' 'e'b' 't's'u'm''''t'e's' '/'/' '''n 'if cfg!(debug_assertions) { self.check(); }' 'n ' '''A'M':':'at'''''''''''''y'f'i't'o'n'_'d'n'a''''''e'''''z'i's'u'''e's' 'l'l'''e'W' '/'/' ''o'''''''''''y'f'i't'o'n' ','''''i's' ',''''''''''''''''''' ' ' ''''''''''''''''''';'0' '=' 't'e' ''s'f'f'o' 't'u'm' 't'e'l' ''' 'n // No''';'w we need to make a cursor at the node/userpos location pair.n ' 'let mut cursor = Cursor {n ' ' userpos: 0,n local_index: local_index.exp' 'ect('Invalid marker - item not found in node')' ',n entries: [Skip' 'Entry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MA'// 'X_HEIGHT],n };''''Curso'''>'C'<'r'''''''' // If you imagine this node as a big building, we need ton // update the parent of all the nodes we cast a shadow over.n // So, if our height is 3 and the next nodes have heights 1n // and 2, they both need new parents.'' ''''''''''''''''''''''''''''''''''''''''''''''''''n '// ''dbg''skip_heigh'''n '// '''''''(*n).height as usiz'''''n ';')'e'('!'g'b'd' ';')'t''''''_'p'i'k's''''''''''k's'''('!''''g'b'd' ''''''''''''''''''''''''''''''''''''''''''''''''''skip_height'''''p'i''n '''''''''''''''''d'l'u'o'''''''u'p'c'''''''''''''''''''''''''''''''''''''''''''''?'p'u' 's'e'o'g' 't'h'g'i''''i'e'h''''r'u'c' 'e'h't' 'e'm'i't' 'h'c'a'e' 's'i'h't' 'e'h'c'a'c' 'n'a'c' 'e'W' ':'O'D'O'T' '/'/' 'k's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' (*n).parent'cursor.entries'(*n).height as us'''1' '-'ize''skip_heigh''''1' '+'' ' 't'''''p'i'k's'[height - 1''''''''''''skip_heigh'' ','t''m':':'e'z'i's'u'''].node' = new_parent;n'n'''''''''''''''''''''''''n 'skip_heigh''''skip_heigh'''''''''''''''''''''''''''''e'z'i's'u' 's'a' '''''''''''''''''''u's' 's'a' ''';')'t'h'g'i'e'h'.')'n'*'('('x''''p'a'm'.'t''''''_'p'i'k's'''''''''''x'a'm':':'e'z'i's'u' '=' 't''''''_'p'i'k's' '''''''''''''''''''''''''''' 'e'h'T' '.'s't'n'e'r'a'p' 'w'e'n' 'd'e'e'n' 'h't'o'b' 'y'e'h't' ','2' 'd'n'a' '1' 's't'h'g'i'e'h' 'e'v'a'h' 's'e'd'o'n' 't'x'e'n' 'e'h't' 'd'n'a' '3'''''''''' ','2' 's'i' 't'h'g'i'e'h' 'r'u'o''''w' 'f'i'''''''e'n' 'e'h't' ','o'S' '.'r'e'v'o' 'w'o'd'a'h's''''s' 'a' 't's''''n'a'c' 'e'w' 's'e'd'o'n' 'e'h't' 'l'l'a' 'f'o' 't'n'e'r'a'p' 'e'h't''''''''''''''s'e'd'o'n' 'e'h't' 'l'l'a' 'e't'a'd'p'u' 'o't' 'd'e'e'n' 'e'w' ','g'n'i'd'l'i'u'b' 'g'i'b' 'a'''''''e'b' 's'a' 'e'd'o'n' 's'i'h't' 'e'n'i'g'a'm'i' 'u'o'y' 'f'I'''''''''''''''''''''''''''''''''''''' 't'a'h't' 's'e'd'o'n' 'e'h't' 'l'l'a' 'e't'a'd'p'u' 'o't' 'd'e'e'n' 'e'W' '/'/' ''' '''''''''''''''''''''''';'0''''-''''''';'1' '=' 't'h'g'i'e'h'_'p'i'k's' 't'u'm' 't'e'l' '''''''n 'n ' 'n ' 'n ' ''o's'r'u'C' '>'-' ''''''>'C'<''''''' }''n 'n ' '{' ')'e'd'o'N' 't'u'm'*''''&' ':'e'd'o'n' ','f'l'e's' 't'u'm'&'('e'd'o'n'_'t'a'_'r'e't'i' 'n'f' 'b'u'p' 'n ' ''''''''''''='='='=''')'e's' ''''''<''''Q: Queryable>''''''''Queryabl'>'e'<''''('''''''''''''''>'e'l'b')''''a'y'r'e'u'Q' 's'a' ''''<''''''''''''''''')'''''Queryabl'>''''>'e''''''y'r'e'u'Q' 's'a' ''''''''''''' 's'a' 'm'e't'I':':'C'(''''''''r'e'u'Q' ':'Q'<''SmallRng::seed_fro''''''''Queryable'''''r'e'u'Q''y'r'e'u'Q':':'Q'''m_u64(123)''t'u'm'&':'t'm''''n ''''''''''''''''''''''''''''''''''''''''' }''n 'n ' '{''''-' ')'4'6''''''''''''e'f'a's'n'u'''''''u'p' ''''''' 'e'f'a's'n'u''u' ':'d'e'e's'('d'e'e's'_'m'o'r'f'_'g'n'''''''''''''''''''r'f'_'d'n'a'r'_'t'i'n'i''''I' 'n'f' 'b'u'p' 'n ' 'f' '>'g''''s'n '''n 'unsafe f'mut '''n insert_at_ite''r(&mut self'''' ''''''insert_at_iter_and_notif'''''('y'.''''''''''S''''''''':':'f'l'e's':':'f'l'''''';''F'e'S''insert_at_iter_and_notif''''''''''''''''''''''''''no_notif'''';')'''y''')'(_items: &[C::Item], _marker: ItemMarker)'''o'n' ','s't'n'e't'n'o'c' ','r'o's'r'u'c' ','f'l'e's'('y'''''''''a''' '// ' 'n ' unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, contents: &[C::Item], mut notify: N'// 'otify)' 'n where Notify: FnMut(&[C::Item], ItemMarker) {n'''''''''>'y'f'i't'o'N'<' '_'t'r'e's'n'i' ''' }''n 'n ' '{' ', cursor: &mut Cursor, ''''''''''''''''''''y'n ' ' '''''''Notify: FnMut(&[C::Item], ItemMarker) {''' 'e'r'e'h'w' ' ' ''''f'i't'o'N' ':'y'f'i't'o'n' 't'u'm' ','contents: &[C::Item''], notify: Notify)' 'n ' ' ''''''''t'u'm' '''''{' 'e'f'a' 'n '''''''' 't'u''''''''''''''n ''''''''''''''''''''''''''';'e'n'o'N' '=' 'x'''' ','')'''')'i'(''e'd'n'i'_'l'''''''')'('r'e't'i'.'a'c'o'l''''''''''enumerat'')'('e'''''m'u'n'e'.'''''''''';'e's'l'a'f' '=' 'd'n'u'o'f' 't'u'm' 't'e'l' ';'0' '=' 'e'z'i's'u'''''''i's'''''''s'i' ':'m'''''''''';')'i''''''u'm''t'e's'f'f'o' ''''''_'local_inde''''''''('e'm'o'S' '=' 'x'''''''_'l'a'c'o'l''''m'e't'i't'e'l' ' ''s'n''''''n'u''n '' '' ''''''''''''''''''''''''local_inde''expect''''''(msg: &str)'''''e'p'x'e'.''''''''n''''' 't'u'm'u'.'x''''''l'a'c'o'l''''u' '=' 'x'e'd'n'i'_'0'''''''''t'e's'f'f'o''''l'a'c'o'l' 't'e'l''''''''''''';'local_index.expect('Invalid marker - item not found in node')''[SkipEntry {' 'n node: &self.head as *const _ as *mut _,' 'n skip_usersize: usize::MAX' '''n '''''''''''''''''''''SkipEntr'''' '''''''''n 'skip_usersiz''''''''t'e's'f'f'o' ':'e''''''''''''i'1''''s'r'e's'u'_'p'i'k' '''''''''''''''''n '''''''n '''''''''''''''''''ItemMarke'''' ''''''','e' ':'r't'p' '''n ''' '';'_phanto'''PhantomD','ata''''h'a'P' ':'m''_' ''' ')'}''n 'n ' '{' 'r'''''m'e't'I' ','s'm'e't'i'_'w'e'n'('y'f'i't'o'n' 'n ' ' ''''''''''''''''''''''''''''''''''e't'o'N' '.'t''n 'unimplemented''';')'('!'''n'u''''// ''''''''''''''h'j'f'd'k's'a'h'j'f'''d's'a''// ' 'e's'f'f'o' 'l'a'c'o'l'''''''t'e's'f'f'o' 'e'h't' 'd'n'i'f' 'd'n'A' '/'/' ';''''r't'n'e'r'a'p'.')'n'*'('''''''.'n' '=' 'n' ''s' ','n''' '' ':'''' 'e'''d'o'n''// ' ''' ';'}''n 'n ' '{' 'y'''''p'i'k'S' '=' ']''''n 'n notify(new_items, ItemMarker {n ptr: e,n _phan''tom: PhantomData,n '// ' });' '0'['s'e'i'r't'n'e'.'r'o's'r'u'c' 'n '' ' ''''n '// ' '''''''''''''''''''''''''heigh'''''''''''''// '''' ''' }''n 'n ' '{' 'e'z'i's'u' 's'a' 't''''i'e'h'.'d'a'e'h''''''''''i'e'h'.'f'l'e's'.'.'0''''0' 'n'i' 'i' 'r'o'f' 'n '''' 't'u'm' ' ' '&' 'n ''''''r'o's'r'u'c''''''''''''''r'c' 'n'r'u't'e'r' }; MAX_HEIGHT],'''' 'n node: &self.head as *const _ as *mut _,' 'n '' 'n ' skip_usersize: usize::MAX'''e'u'r't' '=' 'd'n'u'o'f' '''''' '''''''''''y'f'i't'o'n' ','''''''''item_offse''n '''''';'k'a'e'r'b' ';'t'''''m'e't'i' '='+' 't'e's'f'f'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n ''''''''''''''''''''''''''''''''''''''''''''''/'e'd'''''''''' 'n'o'n '''''curso''''''''''''n ''''''''''''n 'local_inde'''','0' ':'x''''''''''d'n'i'_'l'a'c'o'l' ','0' ':'s'o'p'r'e's'u' ''''''''>'C'<''''' ''''''''''']'[' ':'s'e'i'r't'n'e''''en'e't''eprin'n ''''''''''collection'''HashMa';'p'''''h's'''''t'u'''''''u'i'm' 'a'H':':'s''n '// ''ptr_to_i'''''''''''''''''''null(''''''''''''X'A'M':':'e'z'i's'u''''''''';')'1'-' ',')'''''l'l'u'n':':'r't'p':':'d't's''''''''':'r't'p'('t'r'e's'n'i'.'d''pt'''o't'_''''.'r''''r't'p' '''''HashMa'''new(';''''''')'(')''''w'e'n':':'p''''''''p'a'M'h's'a'H''l'l'o'c':':'d't's' 'e's'u' ''''n'n '''''''''''''''''''''' '=' ')'d'i'('e'm'o'S' 't'e'l' 'f'i''ptr_''{' '''' '''to_i''g' 'et''('&'''''''''' print!(' (parent: {})', id);' }n'' 'n''''''''''''r'e''?':''''''''''''''''''_' 't's'n'o'c'*' 's'a' 'e'd'o'n't'n'''i'o'p'''n '''''''''''''''''''''''' '{' 'X'A'M':':'e'z'i's'u' '='=' 'd'i' 'f'i'''''f'i' ''''''''''''' }' '''n if let Some(id) = '''n ''n 'println''';')'('!'''''n'i'r'p' 'ptr_to_id.get(&(node.parent as *const _)) {' ''n ';')'d'i''''n print!('(parent: {})', id);'''''')'''_' 't's'n'o'c'*' 's'a'n }'' '''''''''''''''''_' 't's'n'o'c'*' 's'a' 't';''n'e'r'a''''o'p'.'e'd'o'n'(k: &Q)'''e'g'.'d''''r't'p''' 'ptr_to_i''insert''''''''''''''''_''i';'' 't's'n'o'c'*' 's'a' 'e'd'o'n'(k: K, v: V)''''''r'e's'n'i'.''''''''''e's'.'d''''n '// '''''''''''r't'p' 't'e'l' 'f'i' ''n ''''''''''''''''''''''' ','''';''')''''}'}'{' ':'t'n'e'r'a'p'('''('!'''' 't'n'i'r'p' ''r't'p' ' '''''''''''''''''''d't's' '=' 'd'i'_'o't'_''''T'r't'p' 't'e'l' 't!''''t'n'e' ''' ';'}''n 'n ' '{' 'r'o's'r'u'C' '=' 'r''''''''o's'r'u'c' 't'e'l' ''''''n 'n f'''''''':':'f'l'e'S''n'''''''y'f'i't''''f'o'n'_''''n'o''no_notify(_items: &[C::Item], _marker: ItemMarker)'''o'n' ','n no_notify(_items: &[C::Item], _marker: ItemMarker'''n ') {}' ''i't'a'c'o'l'''''r'i'a'p' ''o'n' ''''''''''.'s'o'p'r'e's'u' 'e'h't' 't'a' 'r'o's'r'u'c' 'a' 'e'k'a'm' 'o't' 'd'e'e'n' 'e'w' 'w'o'N' '/'/' 'n ' 'e'd'o'n' 'n'i' 'd'n'u'o'f' 't'o'n' 'm'e't'i' '-' 'r'e'''''''e' 'k'r'a'm' 'd'i'l'a'v'n'I''''M''' ',''';')'d'n'u'o'f'('!''''('t'r'e's's'a'''' ' ''i'L'''''''''''''' 't'u'n '''''''''''''n '''''''''''''''''''''''''''''''''''''''''''''''t'n'e'r'r'u'C''''T''''' 't'u'm' '.'d'n'u'o'f' '&''t'''''Self::no_notify' ',''''Self::no_notify''n's'i' 'm'e't'i' 'e'h't' 'f'i' 'c'i'n'a'P'''''o'r'h'T' ':'O'D'O'T''''''''''D'O't' '/'/' '''get_usersize''''m';''e't'i'(_item: &Self::Item)':':'C' '='+' 't'e's'f'f'o' ''''''''''''' }'n '{' 'e's'l'e' 'n'*'(''m''')'*'&'''''''''''''''''''''' '=' ')'t'e's'f'f'o'('e'm'''''' ''' }''n 'n ' '{' ''o'S' 't'e'l' 'f'i''''n' ''''''contains_ite''''''')'y'r'e'u'q'('m''contain''''' 'e't'''u't'm''i'_''''('s'''''''&''''s'''Self::no_notify' ',''n'i'a't'n'o'c'.'m'e't' ''i''t' ' 'u' 'm' ''''''''''''''&''''''''Self::no_notify' ',''content_slic'''''''' '''' '' ''' 'unimplemented''';')'('!'''''m'i'n'u' 'n ' 'n ' }''n 'n ' '{' ')'('e'''''''''_'t'n'e't'n'o'c'.'e'd'o'n' 'n'i' 'm'e't'i' 'r'o'f' 'n ' ''' }''''*' ':'C'''pt';'r'' '.'''<'t''l'p''u'm'i'n'm''n'''''''''''''''''.''&'r'e''''Self::no_notify' ','k'r'a'm' '=' 'e'd'o'n''' 't'u'''''''''e'z'i's'u' '''n ''''''''' 't'u'm'&' 't'e'l' '.'s'a' ''m'&''''''''''''''['s'e'i'r'''''''''')'(''''9'r'e't'i'.']''t'n'e'.'f'l'''''''''''''''''Item''''e't'I':':'C''''I'&' ':'y'r'e'u'q' ',''''y'r't'n'e'e's't'n'e''''''''''''''''''''''''s'n'i'''''''''''''''m'e't'i' 'e'h't' 'd'n'i'F' ''''''''''e'W' '.''a't'n'o'C' ':''''''':' 'm'e't'I':':'C' 'e'r'e'h'w'''n 'unimplemented''';')'('!'''n'u' '' '''''''''''''''''''''' ''''''entrie'''''skip_usersiz''''''''''''';'e'z'i's''n ''''''u''8'u'serpo''''''''''''';'e'z'i's'r'e's'u' '='''' '+' 's'''''r'e's'u''''o'l'g'.'f'l'e's' 'r'e's'u' '='+' 'e''''''''s'u'_'p'i'k's'.']'i'['s''''t'n'e'.'f'l'e's'''''''''''''f'l's'e' ''' }''n 'n ' '{' 't'h'g'i'e'h'.'.'0' 'n'''' 'i' '_' 'r'o'f' 'n ' 'e { (*self.here_ptr()).items[self.loc'''''get_usersize''''''(_item: &Self::Item)':':'';')''C' 'a'''''''''''''''current_ite''''}' ')'('m''''''''''i'_'t'n'e'r'r'u'c''Current'''''r'r'u'c'.'f'l'e's' '{' 'e'f'a's'n'u'l_index] };' '=' 'm'e't'i'_'t's'r'i'''f' 't'e'l' ''}' 'lf.entri'''''''''''''''''''''(''*' '{' 'e'f'a'''''''''self.local_inde'''';'}' ']'x'['s'm'e't'i'.')''s'n'u''''''n ''''''' 'e'f'a's'n'u'''''''''''''''''''''''''m'e't'I':':'&''C''''T'&' '>'-' ''''' '(''' ''(*self.he')'re''_ptr()).items[self.local_index]''' }''n 'n ' '{' ')'f'l'e's' 't'u'm''''u'&'('''''''''''''''m'e't'i'_'t'n'e'r'r'u'c''''n ''''''''''''''''''''''''''''''''''''''''''ItemMarke'''>'C'<'''''''''>'C' ''''''''''''''''''''''''''''''''''''''''''''e'd'o'n' 'a' 'o't'n'i' 'r'e't'n'i'o'p' 'a' 's'u' 's'e'v'i'g' 'r'e'k'r'a'm' 'e'h'T' '/'/' ''<''''''''''''' ''' }''n 'n ' '{' 'r'o's'r'u'C' '>'-' ')'r''''''m'm'e't'I'''''k'r'a'M' ':'r'e'k'r'a'm' ','f'l'e's' 't'u'm'&'('r'e'k'r'a'm'_'t'a'_'r'e't'i' 'n'f' 'b'u'p' 'n ' ' 'n'f' 'n ' '''''here_ptr()'''''e'r'e'h'.'f'l'e's' '=' 'e'z'i's'r'e's'u'es[0].node'''cursor.local_ind''e''x ='n ''f'i''''''e'l'i'h'w''''s''''''''''is_'''''''''''''''e'z'i's'u' ':'t'h'g'i'e'h' ','at_node_end'n ''''''t'h'g'i'e'h' '''' 't'e'l'''''''''''''' '=' 'e'z'i's' 't'e'l' ''n ''''''local_inde'''''';'''1''''n '''''''''''''''''''''''''''''''''''''''''e'z'i's'u' ':'m'''''n'i' '_' ''u'n''''''''''''advance_item('''}' ';')''''v'd'a'.'f'l'e's' '{' 'm'u'n'' ','''' '''''' '''''''.'.'0''''''' '_''''0' 'r'o'f' ''' }''n 'n ' '{' ')'f'l'e's' 't'''''''''' 't's'u'm'&'('s'm'e't'i'_'y'b'_'e'c'n'a'v'd'a' 'n'f' 'n ' ' '='+' 'x''''''l'a'c'o'l'.'f'l'e's'''''''''''' 'e'h'T'''''''''''e'd'o'n' 'h'e'T' '/'/' '(''''''''.''' ''f'l'e's''advance_nod''''''''n '}' ';')'('e''advanc''e''_''by'''''a'v'd'a' '{' ')''''_'s'i'.'f'l'e's' 'f'i' '= (*e).num_items as usize {''' }''n 'n ' '{' 'l'o'o'b' '>'-' ')'f'l'e's'&'('d'n'e'_'e'd'o'n'_'t'a'_'s'i' 'n'f' 'n ' ''''n '''''''''''''''''''''''''''''' '// ''if cursor.local_index == (*e).num_items as usize {' ''' }''n 'n ' '{' ')'f'l'e's' 't'u'm'&''''*'('m'e't'i'_'e'c'n'a'v'd'a' 'n'f' 'n ' ''s' ''u' 'e'h't' 'n'e'h'W''''''''''''''''''''a'c'b'e' 'd'e'd'e'e'n' 's'i' 's'i'h'T' '/'/'/' '''n ''''''''''''''''''','e'z'i's'u' ':'x'''':'e'd'n'i'_'l'a'c'o'l' 'n ' '''''''''''' /// Warning: This returns false if one cursor is at the end of a node, andn /// the other at the start of the next node. Almost all code in this libraryn /// leaves cursors at the end of nodes, so this shouldn't matter too much inn /// practice.'n ''''''''''''''''''''''''''''''''''''''' if self.userpos != other.user'' '' 'n ' ' '''''''''''''local_inde'''''''''''local'''n '''n ' '''_index''''a'c'l'''''''''''''r'e's'u'.'r'e'h't'o'''''''e's' '='!' 'x''''''l'a'c'o'l'.'f'l'e's' '|'|' 'p'_ptr'os { return false; }n'''''''''''n ''''''''''''''''r'''''''''''''''''''_ptr'';'e'd'o'n'new''_node_ref''new_nod''new_node_ref''''''''d'o'n'_'w'e'n''''_'w'e'new_node_ref''n'*' 't'u'm'''new'''n '_nod'''*'&'''''new_node_ref'&'''f'e''d'R'o'''''''n'_'_'''''w'''e''' '=' 'new_node_ref''e'd''n'o'n'n''_'w'e'n' 't'e'l''new_nod' ''''''''''''''''''new_node_ref'''n let mut head_height = self.head.height as usize;'''''''''''d'''''o'''''n'''''_'''''w'''''e'''''''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''u'b'n' 'e'c'i't'c'a'r'p' 'n'i' 'h'c'u'm' 'o'o't''''o' 'r'e't't'a'm' 't'''n'd'l'u'o'h's' 's'i'h't' 'o's' ','s'e'd'o'n' 'f'o' 'd'n'e' '''''''n'e'e'h't' 't'a' 's'r'o's'r'u'c' 's'e'v'a'e'l' 'y'r'a'r'b'i'l' 's'i'h't' 'n'i'''''''i''''e'b' 'e'd'o'c' 'l'l'a' 't's'o'm'l'A' '.'e'd'o'n' 't'x'e'n' 'e'h't' 'f'o' 't'r'a't's' 'e'h't' 't'a' 'r'e'h't'o' 'e'h't' 'd'n'a' ','e'd'o'n' 'a' 'f'o''''f' 'd'n'e' ''''''' 'e'e'h't' 't'a' 's'i''n 'new_node.parent = '''''new_height_usiz'''''MAX_HEI'''n '&''''''''''''''''''''''''''''''_' 't'u'm'*' 's'a' '_' 't's'n'o'c'*' 's'a' '''' ''''' } else { cursor.entries[new_height_usize].nod''';'}' '''e;'' '''''''{' 'e's'l'e' '}'n 'd'a'e'h'.'f'l'e's' '{' 'GHT'''''_'X'''A'M' '='=''''''' '>' 'e''''''h'_'w'e'n' 'f'i' ' 'r'o's'r'u'c' 'e'n'o' 'f'i' 'e's'l'a'f' 's'n'r'u't'e'r' 's'''''';'e'd'o'n'.''i'h'T' '']':'g'n'i'n'r'a'W' '/'''/'/' ''''''''n'''''''''entrie''new_height_usize''''''''i'e'n ''''new_height_usiz''''''{' '' '1' '>' 'e''''''h'_'w'e'n' 'f'i'' ' ''h'_'w'e'n'['' 's'''n'e'.'r'o's'r'u'c'''''''u'c'' /// ''''assert_eq!'.''''' '''''''t'h'g'''''n 'new_no'2'''de_ref' '''''''e't'o'N' '/'/' ''i' '' }'n ' ''e'h' 's'''e'd'new_nod''o'n' 'd'a'e'h' '' 'e'h't' 'n''new_node_ref'i' 'd'n'a'e''d' 'd'e'o''s'u''n'n'u' '''_''y'l''w's'u'o'e''i'''''''''''''new_node_ref''l's'u'i'v'e'r'p'''''''''n'''''''''''''''''''''' 'n'i' ''new_nod'd'n'a' 'r'o's'r'u'c' 'e'h't' 'n'i' ''new_node_ref's'd'l'e'''n 'd' '// 'o'''''''''n'''''''''_'''''''''w'' '=' ''e't'n'e'r'a'p'.')'e'd'o'n'_'w'e'n'*'(' 'n ' '''n'i'f' 'e't'a'l'u'p'o'p' 'n'a'c' 'e'w' 'o's' ','s'e's'a'e'r'c'n'i' 't'h'g'i'e'h' 'n'e'e's' 'x'a'm'''''''' 't'h'g'i'e'h' 'e'h'_ptr''t' 'n'e'h'w''''h' 'r'o'f' 'd'e's'u' 's'i' 's'i'h'''''''''' 's'i'T' '.'t's'i'l' 'e'r'i't'n'e' 'e'h't' 'n'i' 'r'''''''''r''''' '''''o'''''s'''''r''''''''n ''''''''''''''''''.'s't'n'e'r'a'p' 'e't'a'd'p'U''''''''''''''''''''''''''''1'-'t'h'g'''''''''''''('*' 't'u'm'&''i'e'h' 't'a' 's'e'd'o'n' 'l'''l'')'a' 't'n'i'o'P''''''''' (*'''''')'''''''''' ''''''''''''''''''''''''''''''''''new_node_pt';'r''''''''d'o'n'_'w'e'n'''''''// ''''''''''''''// '''''''''''''''''' '// ''''''''''''''' '=' 't'n'e'r'a'p'.')'n'*'(''''''''''p'.'n' ''''''''''''''''''''''''''''''''''='''new_height'''''_'w'e'n' '>' 't'h'g'i'e'h''''n'.')'n'*'(' '|'|' '''t'h'g'i'e'h' 'd'e't'c'e'p'x'e' 'e'h't' 't'a' 's'e'd'o'n' '''''''''''''''''' 'e'h't' 't'a' 'n'e'r'd'l'i'h'c' 'l'l'a' ','s'i' 's'i'h'T' ''n '''''''''''''new_nod''''';'''r't'p''''p'o'o'l''''_'''nexts_mu''''new'n ''''''*')''(''n''.ne'n ''''''while !n'''''''''''}'''n '' ';'k'a'e'r'b' '{' '.is_null()' 'f'i' 'xts_mut()[new_height_usize - 1].node;' '=' 'n' '_height_usiz''''''''''e'd'o'n'.'''n ''''''''''is_nul''''''' }''n 'n ' '{' ')'('l''''''''l'l'u'n'_'s'i'.'n'!' 'e'l'i'h'w' ';']'1' '-' 'e'''''_'w'e'n'[''''.')'('t'''''''_'s't'x'e'n'.'''''''n'.'e'''''_'w'e'n' '=' 'n' 't'u'm' 't'e'l''''''' 'r'o'f' '.'n'e'r'd'l'i'h'c' 'w'e'n' 's'''e'd'o'n' 's'i'h't' 'f'o' 's't'n'e'r'a'p' 'e't'a'd'p'U' '/'/' 'n ' 'u'c' 'e'h't' 'f'o''''''''''''t's'i'l' 'e'h't' 'n'i' 'n'o'i't'i's'o'p' 'r'e's'u' 'l'a'b''''a'o'l'g' 'e'h'T' '/'/'/' '_ptr'''' /'/'/ This field isn't s'n '''''''''''''''''(n as *co'_'nst Node == &self.hea';'d as *co'_'nst '''''''''''''' '{' 'd'a'e'''h'_'s'i'!' ' '''''n '''f'i'}''Node)' '=' 'd'a'e'h'_'s'i' 't'e'''l'''''''''' 't'e' 'trictly necessary - earlier versions tacked this on ton /'/'/ the last i''tem in entries... I'm still not sure the cleanest way to don /'/'/ this.''n 'ot fo'''''d'l'e'i'f'r saf' 'ety.nn ''-'e'''' ' // This isn't strictly necessary. Earlier versions tacked this on to then // last item in entries... I'm still not sure the cleanest way to do this.n userpos: usize,nn entries: [SkipEntry; MAX_HEIGHT],n}nnimpl Cursor {n fn update_offsets(&mut self, height: usize, by: isize) {n for i in 0..height {n ' assert!(n.num_items as usize <= NODE_NUM_ITEMS);n' unsafe {n ''''''''''''''''''''''''''''''''d'e'w'o'l'l'a' 't'o'n' 's'e'd''''t'o'n' 'y't'p'm'E''' ','0'''''''''''''''''''s'e'd'd'o'n' 'y't'p'm'e' '/'/' ' '>' // This is weird but makes sense when you realise the nexts inn // the cursor are pointers into the elements that have then // actual pointers.n // Also adding a usize + isize is awful in rust :/n let skip = &mut (*self.entries[i].node).nexts_mut()[i].skip_usersize;n *skip = skip.wrapping_add(by as usize);n }n }n }nn /// Move '''''n '''''''''''''''''''''''''''''''SmallRn'''n ''''''''''''''''''''''''''''''''''''''''''''''''''.'s'i'h't' 't'n'e'm'e'l'p'm'i' 'o't' 'y'a'w' 'r'e'c'i'n' 'a'''' ' 's'''e'r'e'h't' 'e'r'u's' 'm'''I''' '/'/' ''' if self.rng.is_none() {n self.rng = Some(SmallRng::from_entropy());n }nn // rng code here is a bit ugly. n '' let new_node = Node::alloc(&mut self.rng.as_mut().unwrap('')'')'';n''' }''n 'n ' '{' 'g''''a'm'S' 't'u'm'&' '>'-' ')'f'l'e's' 't'u'm'&'('g'n'r'_'t'e'g' 'n'f' 'n ' 'a cursor to the start of the next node. Returns the new node (or an /// nullptr if this is the end of the list).n fn advance_node(&mut self) -> *mut Node {n unsafe {n let SkipEntry { node: e, skip_usersize: offset } = self.entries[0];n // offset tells us how far into the current element we are (inn // usersize). We need to increment the offsets by the entry'sn // remainin''g length to get to the start of t''''''get_rng()''''''''g'n'r'_'t'e'g'.'f'l'e's'''h''e'' ''n''e''x''t'' ''n''o''d''e''.''n'' '' '' '' '' '' '' '' '' '' '' '' ''l''e''t'' ''advance_by = (*e).get_userlen() - offset;n let next = (*e).get_next_ptr();n let height = (*next).height as'n ''''''''''''m'''''' '' '' '' '' '' '' '''' ''n '''''''''''''''''''''''''''''''' '.'y'l'g'u' 't'i'b' 'a' 's'i' 'e'r'e'h' 'e'd'o'c' 'g'n'r' '/'/' '''n '}'n ';')''' SmallRng::from''as''_''d''e''r''e''f_mut(''unwrap()''''''a'r'w'n'u'.')'''s'a'.'''_'''''u''n''w''r''a''p''()'''''r'w'n'u'entropy()'.';'''''is_none('''n ''''''''''''''''('e'n'o'S' '=' 'g'n'r'.'f'l'e's' '{' ''''n')''''_'s'i'.'''' 'g'n'r'.'f'l'e's' 'f'i' ' usize;nn for i in 0..height {n self.entries[i] = SkipEntry {n node: next,n skip_usersize: 0n };n }nn for i in height..self.entries.len() {n self.entries[i].skip_usersize += advance_by;n }nn self.userpos += advance_by;nn nextn }n }nn /// Get the pointer to the cursor's current noden fn here_ptr(&self) -> *mut Node {n self.entries[0].noden }n}nnimpl PartialEq for Cursor {n fn eq(&self, other: &Self) -> bool {n if self.userpos != other.userpos { return false; }n for i in 0..MAX_HEIGHT {n let a = &self.entries[i];n let b = &other.entries[i];n if a.node != b.node || a.skip_usersize != b.skip_usersize { return false; }n }n truen }n}nimpl Eq for Cursor {}nnimpl SkipList {n pub fn new() -> Self {n SkipList:: {n num_items: 0,n num_usercount: 0,n rng: SmallRng::seed_from_u64(123),n head: Node {n items: [C::Item::default(); NODE_NUM_ITEMS],n num_items: 0,n height: 1, // Stores max height of list nodesn nexts: [],n },n _nexts_padding: [SkipEntry::new_null(); MAX_HEIGHT],n }n }nn pub fn new_from_slice(s: &[C::Item]) -> Self {n let mut rope = Self::new();n rope.insert_at(0, s);n ropen }nn pub fn get_userlen(&self) -> usize {n self.num_usercountn }nn fn iter(&self) -> NodeIter { NodeIter(Some(&self.head)) }n n pub fn len_items(&self) -> usize {n self.num_items as usizen }nn fn heads_mut(&mut self) -> &mut [SkipEntry] {n unsafe {n std::slice::from_raw_parts_mut(self.head.nexts.as_mut_ptr(), self._nexts_padding.len())n }n }nn /// Walk the list and validate internal constraints. This is used forn /// testing the structure itself, and should generally not be called byn /// users.n pub fn check(&self) {n // #[cfg(test)]n {n assert!(self.head.height >= 1);n assert!(self.head.height <= MAX_HEIGHT_U8);nn // let skip_over = self.get_top_entry();n // println!('Skip over skip chars {}, num bytes {}', skip_over.skip_items, self.num_bytes);nn let mut iter = [SkipEntry {n // Bleh.n node: &self.head as *const Node as *mut Node,n // The skips will store the total distance travelled since then // start of this traversal at each height. All the entries aboven // head.height are ignored though.n skip_usersize: 0n ' /// skiplist. The returned cursor contains list of nodes which point pastn /// the specified position, as well as offsets of how far into theirn /// character lists the specified characters are.n ///' ''''''''''''''''''''''''''''''''''''''''''''''''''' ///n /// - The item can contain items with zero usersize. The cursor could pointn /// to any of them.n /// - If the location is at the end of a'n '' // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());n' node, it is equally valid to returnn /// a position at ''t''''he start of the next node'''' ///n ///'''''' '' '''n ' ''''''t'h'g''''''n 'i'e'h' 'n ''''''''''''''''''''''''''''''''''''''''''''''''';'e'd'o'n'.']'1' '-' 't'h'g'i'e'h'['s'e'i'r't'n'e'.'r'o's'r'u'c' '=' 't'n'e'r'a'p'_'w'e'n' 't'e'l' ' ''n ''e' '// Update pare' 'nts.n if new_' ''''''t'h'g'new_parent'''''''a'p'_'w'e'n''i'e'h' 'heig' 'ht_usize > 1 {n ''''''''''''8'u' 's'a' 't'h'g'i'e'h' ' ' let mut' ' n = new_node_ptr;n' ' '' loop {n n = (*n).nexts_mut()[new_heigh' ' ' 't_usize - 2].node;n i' 'f n.is_null() || (' '*n).height >= new_' 'height { break; }nn (*n).pare' 'nt = new_node_' 'ptr;n }n }' 'n ' ' Because '''n 'its impossible to move backwards in the list, iter_at_userposn /// returns the firs'n '''''''''n ''''''''''unsafe { &*e ';'''}' '=' '// ''n'e' 't'e'l' '''''''num_item''''''''''n '''''''''''''''''';'0' '=' 'x'e'd'n'i' 't'u'm'n 'asser''''''''''''''num_item' as usize''''' ''''''''''''''n ';')'>''e'z'i'''''''''''''''''''''''''''''''''''''''''''''.'m'e't'i' 'n'a' 'f'o' 'e'l'd'd'i'm' 'e'h't' 'n'i''''''''''''''u'o'n ''''''''local_inde''''''''''''''''''';'''x'e'd'n'i' '=' 'x''''''l'a'c'o'l''''''''' 'x'e'd'n'i'.'r'o's'r'u'c' ''r'h't' 'y'a'w't'r'a'p' 'e'r'''e'W' '/'/' ''''''''''''''''F' '/'/' '''' '''' '}' '' ';'k'a'e'r'b' ''n ''''''''''';'1' '='+' 'x'e'd'n'i' 's'''u' 's'a' 's'''''''t'i'_'m'u'n'''''''.'s'm'e't'i'.'n'e' '<' 'x'e'd'n'i'('!'''t''_''e''q!''''''r'e's's'a' '' 't'e'l''' '''''''''t'e'l' 'e''n ''''&'''''''''''''''''n ''''usersiz'''''''''''''n '''''''''''usersiz''' ''''''''' '''''';'k'a'e'r'b''''''''''''''''''''''''e'r'''e'W' '!'g'i'b' 'o'o'T' '/'/' ''' }''n 'n ' '{' 'e's'l'e' '}'n ';'e'''''''i'z'r'e's'u' '='-' 't'e's'f'f'o' '{' 't'e's'f'f'o' '='<' 'e'''''''i's'r'e's'u' 'f'i' ']'x'e'd'n'i'['s''usersize > offset'''''''''''<''='usersi'''''>'''''''''usersize'''''''i's'r'e's'u' '='<' 't'e's'f'f'o'''m'e't''// 'i'.'n'e''''''''''''''0' '>' 't'e's'f'f'o' 'e'l'i'h'w' for index in 0..=en.num_items as usize {'z'i's'u' 's'a' 's''''m'u'n'.'n'e'''''''''''''''''''''''''=''''.'.'0'[' 'n'i' 'x'e'd'n'i' 'r'o'f''''''''''t'e'l''''''''' 'e'''' 'l'i'h'w''''','0' ':'x'e'd'n'i'_'l'a'c' for (i, item) in unsafe { &*e }.content_slice().iter().enumerate() {n let usersize = C::get_usersize(item);n if usersize > offset {n cursor.local_index = i;n found = true;n break;n } else if usersize == offset {n offset = 0;n cursor.local_index = i + 1;n found = true;n break;n } else {n offset -= usersize;n }n }n''o'l'''// '''''d'n'i' 't admis''''''''' ''' '&'{''}''' 'e'f'a's'n'u'''sible location wit'// 'h the specified userpos'n ///'n ///''''''''''// '('''''''''''''''''''''''''''''''''''// 'd'e'i''.'f'i'c'e'p's' '''''''i''''''''d''// 'e't'n'i'o'p' ''''''''''''''''''// ''')'m'e't'i' 't''' '// ' '''''' 'e's'l'e''i''='='''f u'''' '// ' 'n '''0' '// ' ' ''1'''+' ' ' ''cursor'// '.local_in''d'n '// 'cursor.local_index = i+'// '1;'ex = i;n '// ' '' found 'n foun'// 'd = true;'= tr'// 'ue;n b'n break;'reak;' 'sersize > offse'n } else {''n offset -= usersize;'t {' '}'n 'n'e'r'r'u'c' 'e'h't' 'o't'n'i' 't'e's'f'f'o'''''''h't'g'n'e'l''' ','r'o's'r'u'c' 's'n'r'u't'e'R'''''''r'u't'e'r'@' ' '.'n ///'n ///'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'o'p'r's''e's'u'_'''''''''''e'l'b''''''''''''''''''''''''''''''''.'s'o'p'r'e's'u' 'd'e'i'f'i'c'e'p's' 'e'h't' 'h't'i'w' ''''n'o'i's's'i'm'd'a''''a''''*'t'a'''*''_'r'e't'i'''''''''''''''''''''''''''''''''''n'o'i't'a'c'o'l' 'd'i'l'a'v' 't's'r'i'f' 'e'h't' 'n'r'u't'e'r' 'e'w' ','t's'i'l' 'e'h't' 'n'i' 's'd'r'a'w'k'c'a'b' 'e'v'o'''''''o'v'm' 'o't'''''''t'm' 'e'l'b'i's's'o'p'm'i' 's't'i' 'e's'u'a'c'e'B' ' '.'n ///'n ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' '// ' fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usi''''''n '''''''''''''''''''''';'e's'l'a'f' '=' 'd'n'u'o'f' 't'u'm' 't'e'l' 'n '''''''''' ''''''''''')'e'*'('''t'e''''''r'o's'r'u''''r'c''''s'f'f'o'=' 'e' 't'e'l''' 'ze) {n''''''// '''''n 'n /// I dunn'='o'n ''''''''''''';'e'u'r't' '=' 'd'n'u'o'f' '''''''t''n ''''''''''''''t'e's'f'f'o'local_inde''''';'i' '='''' ' ''''''';'k'a'e'r'b'x''r'''n ''n ''''''''''''''''n ''';')'d'n'u'o'f'('!'t'r'e's's'a' 'eturn (i, usersize_offset'');''b''''''l'a'c'o'l'.'r'o's'r'u'c' 'e's'f'f'o' where this logic should live,'' but we wa'self'''''''r'o's'r'u'c'nt ''(''to ''''''''')'t'e's'f'f'o' ','get the index ofn /// the item at the specified offset into the node (and the offset into then /// item).n /// n /// If the offset lands between items, we could return either the previous or next item.n /// n /// Returns (index, item_offset).n fn get_iter_idx(&self, mut usersize_offset: usize, stick_end: bool) -> (usize, usize) {n if usersize_offset == 0 { return (0, 0);'' '// ' panic!('Could not find requested offset within the ''n''ode')'' }'n';'n''''n ''' ''}nn for (i, item) in self.content_slice().iter().enumerate('')'' {n let usersize = C::get_usersize(item);n if usersize > usersize_offset {n return (i, usersize_offset);n } else if usersize == usersize_offset {n return if stick_end { (i, usersize_offset) } else { (i+1, 0) }n } else {n usersize_offset -= usersize;n }n }n panic!('Could not find requested offset within the node');n }' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'd'o'n' 't'x'e'n' 'e'h'''' 't' 'f'''' 'o' 't'r'a't's''''e' 'e'h't' 't'a' 'n'o'i't'i's'o'p' 'a' 'n'r'u't'e'r' 'o't' 'd'i'l'a'v' 'y'l'l'a'u'q'e' 's'i' 't'i' ','e'd'o'n' 'a' 'f'o' 'd'n'e' 'e'h't' 't'a' 's'i' 'n'o'i't'a'c'o'l' 'e'h't' 'f'I'''''''''''''' 'd'e'n'r'u't'''''''''''''''''''''''' 'f'o'''''''' 'e'h't' 'f'o' 'd'n'e' ''''e'e'h't' 't'a' 'r'e'h't'i'e' 'e'b''e'r'''''''''''''''''''''r'u't'e'r' 's'y'a'w'l'a' 'd'o'h't'e'm' 's'i'h't''''w' 'w'o'n' 'r'o'F' ''n ///''''''''''''''''''''''o' 'd'l'u'o'c' 'r'o's'r'u'c' 'e'h'T' '-''''/' ''''assert_eq!'.'m'e'h't' 'f'o' 'y'n'a''''t' 'o't' 't'n'i'o'p' 'd'l'u'o'c' 'r'o's'r'u'c' 'e'h'T' '.'e'z'i's'r'e's'u' 'o'r'e'z' 'h't'i'w' 's'm'e't'i''''n ''''''''local_inde'''''''' ''+''= contents.len();' '=' 'x'''''a'c'o'l'.'r'o's'r'u'c' ''''i'''''''d'e'z'i's'-'o'r'e'z' 'n'i'a't'n'o'c' 'n'a'c' 'm'e't'i'''''''r'e's'u' 'e'h'T' '-'''n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'd'o'n' 'e'h't' 'n'i'h't'i'w' 'x'e'd'n'i' 'e'h't' 'r'o'f' 'k'o'o'l''''''''''''''''''''''''''''''''''''n'i'h't'i'w'n' 'o'i't'a'c'o'l' 'e'h't' 'd'n'i'f' 'o't' 'd'e'e'n' 'e'w' 'w'o'N' '.'e'd'o'n' 'e'h't' 'd'n'u'o'f' 'e'v'''e'W' '/'/' 'n ' '' ' ''''assert_eq'''n ///'-' '!':'s'u'o'u'g'i'b'm'a' 's'i' 's'o'p'r'e's'u'_'t'a'_'r'e't'i' 'o't' 'l'l'a'c' 'a' 's'e'm'i't'e'm'o'S'''''''''''''''''''''''''''''''''''''''''''' 't's'a'l' 'e'h't' 's'n'r'u't'e'r' 'y'l't'n'e'r'r'u'c' 's'o'p'r'e's'u'_'t'a'_'r'e't'i'''''''h'T''''''e'd' 'y'B' }; MAX_HEIGHT];nn ''''''''s'n'i'a't'n'o'c'let mut num_items = 0;n let mut num_usercount = 0;nn for n in self.iter() {n // println!('visiting {:?}', n.as_str());n assert!((n as *const Node == &self.head as *const Node) || n.num_items > 0);n assert!(n.height <= MAX_HEIGHT_U8);n assert!(n.num_items as usize <= N'('ODE_NUM'''''''')'e'z'i's'u' ','_ITEMS);nn // Make s''u''r''e the number of items matches the countn let l''ocal_coun'// 't = C::userlen_of_slice(&n.ite'n '''''mut item_id'''''''''''local_inde''''n ';'x'''''a'c'o'l'.'r'o's'r'u'c' '=' 'x: usize' 't'''' 'e'l' 'ms[0..n.num_items 'cursor.local_index'as usize]);n assert_eq!(local_count, n.get_userlen());nn // assert_eq!(n.as_str().chars().count(), n.num_chars());n for (i, entry) in iter[0..n.height as usize].iter_mut().enumerate() {n assert_eq!(entry.node as *const Node, n as *const Node);n assert_eq!(entry.skip_usersize, num_usercount);nn // println!('replacing entry {:?} with {:?}', entry, n.nexts()[i].node);n 'cursor.local_index' entry.node = n.nexts()[i].node;n entry.skip_usersize += n.nexts()[i].skip_usersize;n }nn num_items += n.num_items as usize;n num_usercount += n.get_userlen();n }nn for entry in iter[0..self.head.height as usize].iter() {n // println!('{:?}', entry);n assert!(entry.node.is_null());n assert_eq!(entry.skip_usersize, num_usercount);n }n n // pr''i''ntln!('self bytes: {}, count bytes {}', self.num_bytes, num_bytes);n assert_eq!(self.num_items, num_items);n assert_eq!(self.get_u'n 'le''t mut item_idx = cursor.local_index;' 'serlen(), num_usercount);n }n }n n n /// Internal function for creating a cursor at a particular location in then /// skiplist.'n ''''''''local_inde'''''num_inserted_ite'''pub ''''''''' 'b'u'p'''''''''''''e'f'a's'n'u' ''''''''' 'e'f'a's'n'u'm';'s'''''''n'i'_'''''r'e't'''''''r'e'i'_''m'u'n' '='+'cursor: &mut Cursor,'''' '''' 'x''''''l'a'c'o'l'''.'''r'o's' '''''''''''n'' // For validation. This is where the cursor should end up.n '' '' '' let advanced_by = inserted_content.len();n'''''''n 'n ' 'n ' ' ' '''n start_userpos = min(start_us' 'erpos, self.get_userlen());nn le' 't (mut cursor, offset) = self.iter_at_userpos(s' 'tart_userpos);n assert_eq!(offset, 0, 'Splitting nodes not y' 'et supported');nn // Replace as many it' 'ems from removed_items as we can with inserted_' 'content.n unsafe {n let mut replaced_items = min(removed_items, inserted' '_content.len());n ' ' removed_items -= replaced_items;nn ' ' while replaced_items > 0 {n let mut e' ' = cursor.here_ptr();n if cursor.local_index == (*e).num_items as usiz' 'e {n // Move to the next item.n e = cursor.adva' 'nce_node();n if e.is_null() { panic!('Cannot replace past' ' the end of the list'); }n }nn let in' 'dex = cursor.local_index;nn let e_num_items = (*e).num_items as usize;n l' 'et replaced_items_here = min(repl'''''''''''''''''''e'z''''e'i's'u' ':'s'm'e't'i''''''''''d'n'i'_'s'u'l'p' ','aced_items, e_num_items - index);nn ' ' '''' 't'u'm' let old_items = &mut (*e).ite'' ''m''s[index'n ''''plus_ite' ''''advance_by_items''''''''''s''''''''''''height';'''''i'e'h'.'d'a'e'h'''''g'i'e'h'.'f'l'e's'm'e't'i'_'s'u'l'p'(num: usize, height: u8)'.'2'c' 'm'''''''''n '{' '0' '>' 's''''u'l'p''''''s'u'l'p'(' 'f'i' '..index + repl' 'aced_items_here];n let new' '_items'' = &inserted_content[0..replaced_items_here];nn let new_usersize' ' = C::userlen_of_s' 'lice(new_items);n ' ' let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items'''n ''''''''''''''''''''''''''''''''''''''''''''''''>'C'<'''''''''''e'z''''' 'n if cfg!(debug_assertions) {' 'n // let (mut c2, _) = self.iter_at_userpos(userpos);' '' 'n 'assert_eq''''&'''''',''''''''''f'd'S'A''' ',''''('!''a'&'''sser''');'''''asser''assert_eq'''' if '''''''''('!'''' { panic!('Invalid cursor'); }''''';')''''''r'e's's'a'' ' let (c2, _) = self.iter_at_user''pos(userpos + C::userlen_of_slice(contents));' 'n if &cursor != &c2 { panic!('Invalid curs'''''''''''''''')'('n'e'l'.'s't'n'e't'n'o'c' ','''or after insert'); }' 'n }'i's'u' ':'s'o''''''':'s'''''''''' ':'''''''''' 'L's'''''''o'p'r'e's'u' ',''''''' }''n 'n ' '{' ')''''<'r'o's'r'u'C''''''''''r'u'c'&' ''''''''''''''C' ':'r'o's'r'u'c' 't'u'm'&''''m' ','f'l'e's'&'('t'a'_'r'o's'r'u'c'_'k'c'e'h'c'_'g'b'd' 'n'f' 'n ' ') as isize;nn ' ' // Replace the items themselves. Everything else is commentary.n ' ' old_items.copy_from_slice(new_items);nn ' ' if usersize_delta != 0 {n cursor.update_offset' 's(self.head.height as usize, usersize_de' 'lta)n }n // I hate this.n 'self.dbg_check_cursor_at(&cursor, userpos, contents.len());' ' ' self.num_usercount ='''n ' ' ''''''dbg_check_cursor_at'''''''r''userpos + C::userlen_of_slice(contents)';''o's'r'u'c'&'(cursor: &Cursor, userpos: usize)''''g'b'd'.'f'l'e's'''b'd' 'self.num_usercount.wrapp' '' '''ing_add(usersize_delta as usize);nn inserted_content =' ' &inserted_content' '[replaced_items_here..];n replace' 'd_items -= repl' 'aced_items_here;n // We'll hop to the next Node at the start of' ' the next loopn // iteration if needed.n ' ' cursor''' // There's no clean way to keep the cursor steady for the finaln // insert. We'll just make sure the cursor is in the rightn // position before that call for now.'n '''''''''''''''''''' 'n'a'e'l'c'''''''' 'n'a'e'l'o'c'''''''''''''a'e'c'''''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'w'o'n' 'r'o'f' 'l'l'a'c' 't'a'h't' 'e'r'o'f'e'b' 'n'o'i't'i's'o'p' 't'h'g'i'r' 'e'h't' 'n'i' 's'i' 'r'o's'r'u'c' 'e'h't' 'e'r'u's' 'e'k'a'm' 't's'u'j' 'l'l'''e'W' '.'' '''''''''''''''''''''''''''''''''''''''''''''''''''t'r'e's'n'i' 'l'a'n'i'f' 'e'''''''''''''i'f'e' 'h't' 'r'o'f' 'y'd'a'e't's' 'r'o's'r'u'c' 'e'h't' 'p'e'e'k' 'o't' 'y'a'w' 'o'n' 's'''e'r'e'h'T' '/'/' '''n '.local_index += r'self.dbg_check_cursor_at(&cursor, userpos + C::userlen''_''''''of_slice(conten''' '/'/'t'n 's'n '))'''n ''''n ';'eplaced_items_here'';' 'nn for i in ' '0..self.head.height as usize {n ' 'cursor.ent'''''n ''' 'n ' if cfg!(debug_assertions) {' 'n // let (mut c2, _) = self.iter_at_us''erpos(userpos);' 'n let (mut c2, _) = self.it''''''e''r_at_userpos(userpos + C::userlen_of_slice(contents));' 'n' '' 'n // c2.advance_by_items(contents.len(), self.head.height);' 'n '' if &cursor != &c2 { panic!('Invalid cursor after insert'); }' 'n }' 'n' 'ries[i].skip_usersize += new_usersize;n ' ' }n '' cursor.userpos += ne' 'w_usersize;n }nn // Ok now one of t' 'wo things must be t''rue. Either we've run out ofn // items to remove, or we'v''move_to_item_start'''''''''''height''''''''';')'t'e's'f'f'o''''i'e'h'.'d'a'e'h''''''.'e'd'o'n'''''''''''''g'i'e'h'.'f'l'e's'(height: u8, offset: usize)'''''e'v'o'm'.'e run out of items to ins'mut '''ert.n i''f inserted_content.len'n ''''''''''''''''''''''''''''''''''''''''.'y'd'a'e't's' 'r'o's'r'u'c' 'e'h't' 'd'l'o'h' 'o't' 's'd'e'e'n' 's'i'h'T' ''''''' '''''' '/'/'/' '() > 0 {n '' // Inse''rt!n '' debug_assert!(removed_items == 0);n self.insert_at_iter(&mu'// 't cursor, inserted_c' self.insert'n let (mut c2, _) = self.iter_at_userpos(user'''''''userlen_of_slice''''''''s't'n'e't'n'o'c'(items: &[Self::Item])':':'C' '+'''''''+' ' 'pos);''''n '_at_iter(&mut'// ' cursor, contents);' } else {' ''''''''t'''e'// '' // Move '''w'the cursor back to the start of the item we'ren // splitting.'' // Move the cursor back to the start of the item we're splitting.' cursor.userpos -= offset;n'n''s'f'f'o' ',' let current_item = cursor.current_item();' '' '''' // Move the cursor back to the start of the item we're splitting.n'n ''''''''userpo''''''''''''''n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'g'n'i't't'i'l'p's' 'e'r''''''r'e'w' 'm'e't'i' 'e'h't' 'f'o' 't'r'a't's' 'e'h't' 'o't' 'k'c'a'b' 'r'o's'r'u'c' 'e'h't' 'e'v'o'M' '/'/' ';'t'e's'f'f'o' '='-' 's'''''r'e's'u'.'r'o's'r'u''''''''''s'r'j'c''''''''''''''''' 'o't' 'd'e'e'n' 'e'W' '/'/' 'let (start, end) = C::split_item(current_item)'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'n'i'f' 'y'l'b'a'b'o'r'p' 's't'i' 't'''''''''''''''I' 't'u'b' ';''''''''''''''''''' 'm'''I' '.'t'n'e'i'c'i'f'f'e'n'i' 'y't't'e'r'p' 's'l'e'e'f''''''''t'e'r'p' 's'i' 's'i''''''''''i''' 's'h'T' '/'/' ';' self.replace_at_iter''''' 't'u'm'&'(cursor, 1, ' self.insert_at_iter(&mut cursor, contents);n'&[start]);n'n'n'n'n'ontent);n } else'''''']'d'n'e'['&' if ' start_userp''os'' ='' m''in(start_userpos, self.get_use'n '''''''''// '''' '{' 'e'f'a's'n'u'''''''replace_at_iter'''''''''''''r'''''// '''''''''''s'''}' ''''''''''''''' self.replace_at_iter(cursor, 1, &[start]);n'n ''''''replace_at_iter''''''r''1''''''''']';''t'r'a't's'['&'o's'r'u'c'(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])''''''a'l'p'e'r'.''''''':':'f'l'e's''''unimplemented''';')'('!'''''''l'p'm'i'n'u''panic''''''''''''m'e'l'p'm'i' 't'o'n'''('!'''''i'n'a'p' '''''''t''''n '// '''''''replace_at_iter'''''''''''r''1'o's'r'u'c' 't'u'm'&'(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])'''e'r'.'f'l'e's' ''';''n'e't'n'o'c'_'d'e't'r'e's'n'i'm'e't'i'_'d'e'v'o'm'e'r'o's'r'u'c' 't'u'm'&'(cursor: &mut Cursor, mut removed_items: usize, mut inserted_content: &[C::Item])'''''l'p'e'r'.'f'l'e's' 'rlen());nn let (mut cursor, offset) = self.iter_at_userpos(start_userpos);n assert_eq!(offset, 0, 'Splitting nodes not yet s''upported');n'removed_items > 0 {n self.del_at_iter(&mut cursor, remove'inserted_conten'''''')'('n'e'l'.'t''''''r'e's'n'i'd_items);n }n }' ''''''r'u'c' ' The returned cursor is a list of nodes w'n'hich point''' 'n }' 'n''''n '}''n 'n ' ''n pu''b fn replace_a' 't(&mut self, mut start_userpos: usize, mut removed_items: usize, mut ins'n pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {'erted_content: &[C::Item]) {' past then /// specified position, as well as offsets of how far into their charactern /// lists the specified characters are.n /// n /// Note this does not calculate the index and offset in the current node.n ///n /// TODO: This should be Pin<&self>.n fn iter_at_userpos(&self, target_userpos: usize) -> Cursor {n assert!(target_userpos <= self.get_userlen());nn let mut e: *const Node = &self.head;n let mut height = self.head.height as usize - 1;n'' n let mut offset = target_userpos; // How many more items to skipnn // We're populating the head node pointer to simplify the case when then // iterator grows. We could put offset into the skip_usersize but itn // would only be *mostly* correct, not always correct. (Since cursorn // entries above height are not updated by insert.)n let mut cu''rs'''''''''''y'b'''_'d'e'c'n'a'v'd'a'o'''''/'/';'r = Cursor {n entries: [SkipEntry {n node: &self.head as *const _ as *mut _,n skip_usersize: usize::MAXn }; MAX_HEIGHT],n userpos: target_userpos,n };nn loop { // while height >= 0n let en = unsafe { &*e };n let next = en.nexts()[height];n let skip = next.skip_usersize;n if offset 'n '''''>''' ' // And bookkeeping. Bookkeeping forever.' let new_usersize = C::userlen_of_slice(new_items);' let usersize_delta = new_usersize a'''''''''''''''''''''''''''''''.'y'r'a't'n'e'm'm'o'c' 's'i' 'e's'l'e' 'g'n'i'h't'y'r'e'v'E' 's isize - C::userlen_of_slice(old_items) as isize'''n '''n ' ';n'n'n'n' skip {n // Go right.n'n '''''''''''''''.'s'i'h't' 'e't'a'h' 'I' '/'/' ''n '''('''''''num_use'''''''''num_usercoun''wrapping_ad'''''''''('d''''''''''''')'e'z'i's'u' 's'a' '''p'a'r'w'.'t'''''r'e's'u'.'f'l'e's' '=' '''rco''un''uze'''''''''''')'''e'z'i''''''''''e'z'u's'i' 's'a' '''''''''''''''''''';'a't'l'e'd'_'e'z'i's'r'e's'u' '='+' 't'''''r'e's'u'.'f'l'e's' ' '' '' '' '' ' ' // And bookkeeping. Bookkeeping forever.' let new_usersize = C::userlen_of_slice(new_items);' let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;''' if usersize_delta != 0 {' 'n'' 'n'n'n'n' debug_assert!(e == &s'n if usersize_delta != 0 {'elf.head || en.num_i''te''ms'' >'' 0'');n offset -= skip;n e = next.node;n assert!(!e.is_null(), 'Internal constraint violation: Reached rope end prematurely');n } else {n // Record this and go down.n cursor.entries[height] = SkipEntry {n skip_usersize: offset,n ''n''ode: e a'// 's *mut Node, // This is'n '''''''!'' 'f'i' #[cfg(''{' '''d''e''bug_assertions)] {' pretty grossn };nn if height == 0 { break; } else { height -= 1; }n }n };nn // We should always land within the node we're pointing to.n debug_assert!(offset <= unsafe { &*cursor.here_ptr() }.get_userlen());n cursorn }nn // Internal fn to create a new node at the specified iterator filled withn // the spe'''''''n ''''''''''''''''{' '0' '='=' 't'e's'f'f'o' 'f'i' 'n 'n ''''''''{' '' 'e'f'a's'n'u' ' ''n' 'c' 'ified co'// 'ntent. The 'n' '' ' if offset == 0' ' {'passed cursor ' '''s''h' ''''''''''''''''''' '=' ')'d'n'e' ','t'r'a't's''n '''''''''''l'p'e'r'.'f'l'e's' '(' 't'e'l' ''''split_item''''''''''''m';''e't'i'_'t'n'e'r'r'u'c'(_item: Self::Item)':':'C' 'ould point '' '' }'n ' ''''''''' ''''''''' ''''''''''''''''''''current_item(''''n ';')'.''''''''''''''r'r'u'c'_'t'e'g'.'r'o's'r'u'c' '=' 'm'e't'i'_'t'n'e'r'r'u'c' 't'e'l' ''' }''n 'n ' '{' 'e's'l'e' '}'n 'at the end of then // previous node. It will be updated to point to the end of the newlyn // inser'if cfg!(debug_assertions) {'ted content.n unsafe fn insert_node_at(&mut self, cursor: &mut Cursor, contents: &[C::Item], new''''''''''''''''bool'''''l'o'o'b' ':'r'o's'r'u'c'_'e'v'o'm' ','_userlen: usize) {n // println!('Insert_node_at {} len {}', contents.len(), self.num_bytes);n debug_assert_eq!(new_userlen, C::userlen_of_slice(contents));n assert!(contents.len() <= NODE_NUM_ITEMS);nn let new_node = Node::alloc(&mut self.rng);n (*new_node).num_items = contents.len() as u8;n (*new_node).items[..contents.len()].copy_from_slice(contents);n let new_height = (*new_node).height;nn let mut head_height = self.head.height as usize;n let new_height_usize = new_height as us'if cfg!(debug_assertions) {'ize;n while head_height < new_height_usize {n // This seems weird given we're about to overwrite these valuesn // below. What we're doing is retroactively setting up the cursorn // and head pointers *as if* the height had been this high alln // along. This way we only have to populate the higher head valuesn // lazily.n let total_userlen = self.num_usercount;n let nexts = self.heads_mut();n nexts[head_height].skip_usersize = total_userlen;n cursor.entries[head_height].skip_usersize = cursor.userpos;nn head_height += 1; // This is ugly.n self.head.height += 1;n }nn for i in'(''''''''')'_' ',' 't'u'm' 0..new_height_usize {n ''start_userpos'''''r'a't's''expected_final_posit'advanced_by'''''a'v'd'a'''ion''c2.advance_by_items(contents.len(), self.head.height);'' let prev_skip 'n 'c2.advance_by_items(contents.len(), self.head.height);' '= &mut (*curso''r.entries[i].node).nexts_mut()[i];n let new_nexts = (*new_no''de).nexts_mut();nn // The new node points to the successor (or nul''l)n new_nexts[i] = SkipEntry {n node: prev_skip.node,n skip_usersize: new_userlen + prev_skip.skip_usersize - cursor.entries[i].skip_usersizen };nn // The previous node points to the new noden *prev_skip = SkipEntry {n node: new_node,n skip_usersize: cursor.entries[i].skip_usersizen };nn 'n '' ''''move_curso''{' '' 'r''''''_'e'v'o'm' 'f'i''''f' '// Move the' '' ' iterator to the end of the newl' 'y inserted ''n '''t'e'l'', mut '''''''''''local_inde';'x''''''''l'a'c'o'l''''''''''''''''''.'d'a''''''usize''''z's'u' 's'a' 'e'h'''''''a'''e'''''''t'h'g'i'''''''''n 'i'e'h'.'f'l'e's' ',''l'.'.'r'o's'r'u'c' '=' 'item_idx: usize' '' }'n '' for i in new_height_usize..head_height {' (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;' if move_cursor {' cursor.entries[i].skip_usersize += new_userlen;' }' '' 'n ' #[cfg(debug_assertions)] ''''{n let (mut c2, _) = self.iter_at''_userpos(userpos);n c2.advance_by_items(contents''''''e't'e'l'e'd'.len(), self.head.height);n if &cursor != &c2 { panic!('Invalid cursor after in''sert'); }n }n' '}' ' self.num_items += contents.len();' self.num_usercount += new_userlen;' '' 'n'' ' ' 'n'' 'n'' }'n ''' '''n'' '' 'n'' '' 'n'' '' 'n'' '' 'n'' '' 'n'' 'n ''''''move_curso''''{' '' 'r'''''e'v'o' ''m' '''f'i' ' ' ' 'node.n 'n }' ' ' cursor.entries' '[i] = SkipEntry {n node: new_node' ',n skip_usersize: ne'' }'n 'w_userlenn };n' ' }nn for i in new_height_usize..head_height {n (*cursor.entries[i].node).nexts_mut()[i].skip_usersize += new_userlen;n cursor.entries[i].skip_usersize += new_userlen;n }nn self.num_items += co'// 'ntents.len();n self.num_usercount += new_userlen;n cursor.user'n le'''' 't'u'm't (c2, _) = self.iter_at_userpos(user'''n ''''advance_by_items'''''''''''''''';')')'('n'e'l'.'s't'n'e't'n'o'c'(num: usize)''''v'd'a'.'2'c' 'pos + C::userlen_of_slice(contents));'pos += new_userlen;n }nn unsafe fn insert_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, contents: &[C::Item]) {n // iter specifies where to insert.nn let mut e = cursor.here_ptr();n // The insertion offset into the destination node.n assert!(cursor.userpos <= self.num_usercount);n assert!(item_idx <= (*e).num_items as usize);nn // We might be able to insert the new data into the current node, depending onn // how big it is.n let num_inserted_items = contents.len();n let num_inserte'('d_userco''''''''')'t'e's'f'f'o' ','unt = C::userlen_of_slice(cont'// 'ents);nn // Can we insert into the current node?n let mut insert_here = (*e).num_items as usize + num_inserted_items <= NODE_NUM_ITEMS;nn // Can we insert into the start of the successor node?n if !insert_here && item_idx == (*e).num_items as usize && num_inserted_items <= NODE_NUM_ITEMS {n // We can insert into the subsequent node if:n // - We can't insert into the current noden // - There _is_ a next node to insert inton // - The inse''''''''local_inde''x'''''a'c'o'l'.'r'o's'r'u'c'rt would be at the start of the next noden // - There's room in the next noden if let Some(next) = (*e).first_skip_entry_mut().node.as_mut() {n i''f'' next.num_ite'''n ''''''''''''''''''''local_inde';'x''l'.'r'o's'r'u'c' '=' 'x'e'd'n'i' 't'e'l' 'n ' 'ms as usize + num_inserted_items <= NODE_NUM_ITEMS {n item_idx = 0;n cursor.advance_node();n e = next;nn insert_here = true;n }n }n }nn let e_num_items = (*e).num_items as usize; // convenience.nn if insert_here {n // println!('insert_here {}', contents);n // First push the current items later in the arrayn let c = &mut (*e).items;n if item_idx < e_num_items {n c[..].copy_within(item_idx..e_num_items,n item_idx + num_inserted_items);n }nn // Then copy in the new itemsn c[item_idx..item_idx + num_inserted_items].copy_from_slice(contents);nn (*e).num_items += num_inserted_items as u8;n self.num_items += num_inserted_items;n self.num_usercount += num_inserted_usercount;nn // .... aaaand update a'''''''''''''_'l'a'c'o'l'.'r'o's'r'u''''r'c'll the offset amounts.n cursor.update_offsets(self.head.height as usize, num_inserted_usercount as isize);'' // Usually the cursor will be discarded after one change, but forn // consistency of compound edits we'll update the cursor to point ton // the end of the new content'n ''''''''''' 't'u''''''''''''entrie'''''''''''''''''''''''''''''''''''''''t'u'm' '''''''skip_usersiz'''''num_inserted_usercoun';'t' '='+' 'e'''''''u'_'p'i'k's'.'y'r't'n'e' ''_''')'('r'e't'i'.']''''' '' ''')'e'z'i's'u' 's'a' 't'h'g'i'e'h'.'d'a'e'h'''''''e'h'.'f'l'e's'.'.'0'['''''' }''n '' 'n ' '{' 's'.'r'o's'r'u'c' 'n'i' ''m'&''''''y'r't'n'e'''''' 'n'i' '_' 'r'o'f' ''n ''''''''userpo'''''num_inserted_usercoun';'t'''''_'m'u'n' '='+' 's'.'r'o's'r'u'c''''''''''.'r'o's'r'u'c' '.'n '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e't'n'o'c' 'w'e'''''''e'o'n' 'e'h't' 'f'o' 'd'n'e' 'e'h't' ''''''' 't'o't' 't'n'i'o'p' 'o't' 'r'o's'r'u'c' 'e'h't' 'e't'a'd'p'u' 'l'l'''e'w''''''''''''''''''o's'r'u'c' 'e'h't' 'p'e'e'k' '''' 'e'w' 's't'''''''''' 's'r'i'd'e' 'd'n'u'o'p'm'o'c' 'f'o' 'y'c'n'e't's'i's'n'o'c' 'r'o'f'''''''''''''''''''''''''''''''''''(''''')'_' ',''''''''''''''''''r'o's'r'u'c' 'd'e's's'a'p' 'e'h't' 't'n'a't'r'o'p'm'i' 's't'i' 's't'i'd'e' 'd'n'u'o'p'm'o'c' 'r'o'f' 't'u'b' ','e'g'n'a'h'c' 'e'n'o' 'r'e't'f'a' 'd'e'd'r'a'c's'i'd' 'e'b' 'l'l'i'w' 'r'o's'r'u'c' 'e'h't' 'y'l'l'a'u's'U' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'n'a't'r'o'p'm'i' 's't'i' 't'u'b' ','e'v'i's's'e'c'x'e' 't'i'b' 'a' 's'l'e'e'f''''d' 'n'o'i't'a'r'e'p'o' 'e'h't' 'r'e't'f'a' 'r'o's'r'u'c' 'e'h't' 'g'n'i't'a'd'p'U'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''u'b' ',''''''''''''''i'x'e'l'p'm'o'c' 'd'n'a' 'U'P'C' 'f'o' 'e't's'a'w' 'a' 'f'o' 't'i'b' 'a' 'e'k'i'l' 's'l'e'e'f' 't'i' 'o's' ','d'e'd'e'e'n' 't'o'n' 'y'l'l'a'u's'u'''''''u's' 's'i' 's'i'h'T' '/'/' '''n'''''n '' '' '''n // TODO: For consistency we might want to think about updating then // iterator'' true','''''''''''e'u'r't' ',' here.n } else {n // There isn't room. We'll need to add at least one new node to then // list. We could be a b'''''n ''' '/'/' 'it more careful here '' // Passing false to indicate we don't want the cursor updatedn // after this - it should remain at the end of the n' ''(mut cursor, offset) = self.iter_at_userpos(userpos'');'ewlyn // inserted content, which is *before* this end bit.'n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*''''''''''''''''''''.'t'i'b' 'd'n'e'''''''e'a' 's'i'h't' '*'''e'r'o'f'e'b' 's'i' 'h'c'i'h'w' ','t'n'e't'n'o'c' 'd'e't'r'e's'n'i' 'y'l'w'e'n' 'e'h't' 'f'o' 'd'n'e' 'e'h't' 't'a' 'n'i'a'm'e'r' 'd'l'u'o'h's' 't'i' '-' 's'i'h't' 'r'''''''t' 'e't'f'a' 'd'e't'a'd'p'u' 'r'o's'r'u'c' 'e'h't'''' 'o't' 't'n'a'w' 't'''n'o'd' 'e'w' 'e't'a'c'i'd'n'i' 'o't' 'e's'l'a'f' 'g'n'i's's'a'P' '/'/' 'and copy as much asn // possible into the current node - that would decrease the numbe'''''''e's'l'a'f' ','rn // of new nodes in some cases, but I don't think the performancen // difference will be large enough to justify the complexity.nn // If we're not at the end of the current node, w''''' 't'u'm''e'll'(' nee''''''''')'t'e's'f'f'o' ','d ''to removen // the end of the current node's data and reinsert it later.n let num_end_items'' = e_num_items - item_idx;nn let (end_items, end_usercount) = if num_end_items > 0 {n // We'll mark the items as deleted from the node, while leavingn // the data itself there for now to avoid a copy.nn // Note that if we wanted to, it would also be correct (andn // slightly more space efficient) to pack some of the newn // string's characters into this node after trimming it.n let end_items = &(*e).items[item_idx..e_num_items];n (*e).num_items = item_idx as u8;n let end_usercount = (*e).get_userlen() - cursor.entries[0].skip_usersize;nn cursor.update_offsets(self.head.height as usize, -(end_usercount as isize));nn // We need to trim the size off because we'll add the charactersn // back with insert_node_at.n self.num_usercount -= end_usercount;n self.num_items -= num_end_items;nn (Some(end_items), end_usercount)n } else {n (None, 0)n };nn // Now we insert new nodes containing the new character data. Then // data is broken into pieces with a maximum size of NODE_NUM_ITEMS.n // As further optimization, we could try and fit the last piece inton // the start of the subsequent node. That optimization hasn't beenn // added.n n for chunk in contents.chunks(NODE_NUM_ITEMS) {n let userlen = C::userlen_of_slice(chunk);n self.insert_node_at(cursor, chunk, userlen);n }nn // TODO: Consider recursively calling insert_at_iter() here insteadn // of making a whole new node for the remaining content.n if let Some(end_items) = end_items {n self.insert_node_at(cursor, end_items, end_usercount);n }n }n }nn /// Interestingly unlike the original, here we only care about specifyingn /// the number of removed items by counting them. We do not use usersize inn /// the deleted item count.n ///n /// If the deleted content occurs at the start of a node, the cursor passedn /// here must point to the end of the previous node, not the start of then /// current node.n unsafe fn del_at_iter(&mut self, cursor: &mut Cursor, mut item_idx: usize, mut num_deleted_items: usize) {n if num_deleted_items == 0 { return; }nn let mut e = cursor.here_ptr();n while num_deleted_items > 0 {n if item_idx == (*e).num_items as usize {n let entry = (*e).first_skip_entry();n // End of current node. Skip to the start of the next one. We'ren // intentionally not updating the iterator because if we deleten // a whole node we need the iterator to point to the previousn // element. And if we only delete here, the iterator doesn'tn // need to be moved.n e = entry.node;n if e.is_null() { panic!('Cannot delete past the end of the list'); }n item_idx = 0;n }nn let e_num_items = (*e).num_items as usize;n let removed_here = min(num_deleted_items, e_num_items - item_idx);n n let height = (*e).height as usize;n let removed_userlen;nn if removed_here < e_num_items || e as *const _ == &self.head as *const _ {n // Just trim the node down.n let trailing_items = e_num_items - item_idx - removed_here;n n let c = &mut (*e).items;n removed_userlen = C::userlen_of_slice(&c[item_idx..item_idx + removed_here]);n if trailing_items > 0 {n c[..].copy_within(item_idx + removed_here..e_num_items, item_idx);n }nn (*e).num_items -= removed_here as u8;n self.num_items -= removed_here;n self.num_usercount -= removed_userlen;nn for s in (*e).nexts_mut() {n s.skip_usersize -= removed_userlen;n }n } else {n // Remove the node from the skip list entirely. e should be then // next node after the position of the iterator.n assert_ne!(cursor.here_ptr(), e);nn removed_userlen = (*e).get_userlen();n let next = (*e).first_skip_entry().node;nn for i in 0..(*e).height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.node = (*e).nexts_mut()[i].node;n s.skip_usersize += (*e).nexts()[i].skip_usersize - removed_userlen;n }nn self.num_items -= (*e).num_items as usize;n self.num_usercount -= removed_userlen;nn Node::free(e);n e = next;n }nn for i in height..self.head.height as usize {n let s = &mut (*cursor.entries[i].node).nexts_mut()[i];n s.skip_usersize -= removed_userlen;n }nn num_deleted_items -= removed_here;n }n }nn pub fn replace_at(&mut self, mut start_userpos: usize, mut removed_items: usize, mut inserted_content: &[C::Item]) {n if removed_items == 0 && inserted_content.len() == 0 { return; }nn // For validation. This is where the cursor should end up.n // let expected_final_position = start_userpos + inserted_content.len() - removed_items;nn start_userpos = min(start_userpos, self.get_userlen());nn let mut cursor = self.iter_at_userpos(start_userpos);n let (mut index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn // Replace as many items from removed_items as we can with inserted_content.n unsafe {n let mut replaced_items = min(removed_items, inserted_content.len());n removed_items -= replaced_items;nn while replaced_items > 0 {n let mut e = cursor.here_ptr();n if index == (*e).num_items as usize {n // Move to the next item.n e = cursor.advance_node();n if e.is_null() { panic!('Cannot replace past the end of the list'); }n index = 0;n }nn let e_num_items = (*e).num_items as usize;n let replaced_items_here = min(replaced_items, e_num_items - index);nn let old_items = &mut (*e).items[index..index + replaced_items_here];n let new_items = &inserted_content[0..replaced_items_here];nn // Replace the items themselves.n old_items.copy_from_slice(new_items);nn // And bookkeeping. Bookkeeping forever.n let new_usersize = C::userlen_of_slice(new_items);n let usersize_delta = new_usersize as isize - C::userlen_of_slice(old_items) as isize;n if usersize_delta != 0 {n cursor.update_offsets(self.head.height as usize, usersize_delta)n }nn inserted_content = &inserted_content[replaced_items_here..];n replaced_items -= replaced_items_here;n // We'll hop to the next Node at the start of the next loopn // iteration if needed.n index += replaced_items_here;nn for i in 0..self.head.height as usize {n cursor.entries[i].skip_usersize += new_usersize;n }n cursor.userpos += new_usersize;n }nn // Ok now one of two things must be true. Either we've run out ofn // items to remove, or we've run out of items to insert.n if inserted_content.len() > 0 {n // Insert!n debug_assert!(removed_items == 0);n self.insert_at_iter(&mut cursor, index, inserted_content);n } else if removed_items > 0 {n self.del_at_iter(&mut cursor, index, removed_items);n }n }nn // TODO: Assert that the iterator is after replaced content.n // #[cfg(debug_assertions)] {n // let c2 = self.iter_at_userpos(expected_final_position);n // if &cursor != &c2 { panic!('Invalid cursor after replace'); }n // }n }nn pub fn insert_at(&mut self, mut userpos: usize, contents: &[C::Item]) {n if contents.len() == 0 { return; }n n userpos = min(userpos, self.get_userlen());n let mut cursor = self.iter_at_userpos(userpos);n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');n unsafe { self.insert_at_iter(&mut cursor, index, contents); }nn #[cfg(debug_assertions)] {n let c2 = self.iter_at_userpos(userpos + C::userlen_of_slice(contents));n if &cursor != &c2 { panic!('Invalid cursor after insert'); }n }n // TODO: Assert that the iterator now points after removed content.n }nn pub fn del_at(&mut self, mut userpos: usize, num_items: usize) {n userpos = min(userpos, self.get_userlen());n // We can't easily trim num_items.n // num_items = min(length, self.num_chars() - pos);n if num_items == 0 { return; }nn let mut cursor = self.iter_at_userpos(userpos);n let (index, offset) = unsafe { &*cursor.here_ptr() }.get_iter_idx(cursor.entries[0].skip_usersize, false);n assert_eq!(offset, 0, 'Splitting nodes not yet supported');nn unsafe { self.del_at_iter(&mut cursor, index, num_items); }n // TODO: Assert that the iterator remains where it was.n }n}nnnimpl SkipList where C::Item: PartialEq {n pub fn eq_list(&self, other: &[C::Item]) -> bool {n let mut pos = 0;n let other_len = other.len();nn for node in self.iter() {n let my_data = node.content_slice();n let my_len = my_data.len();nn if pos + my_len > other_len || my_data != &other[pos..pos + my_data.len()] {n return falsen }n pos += my_data.len();n }nn return pos == other_len;n }n}nnimpl Drop for SkipList {n fn drop(&mut self) {n let mut node = self.head.first_skip_entry().node;n unsafe {n while !node.is_null() {n let next = (*node).first_skip_entry().node;n Node::free(node);n node = next;n }n }n }n}nnnimpl From<&[C::Item]> for SkipList {n fn from(s: &[C::Item]) -> SkipList {n SkipList::new_from_slice(s)n }n}nnimpl From> for SkipList {n fn from(s: Vec) -> SkipList {n SkipList::new_from_slice(s.as_slice())n }n}nnimpl Into> for &SkipList {n fn into(self) -> Vec {n let mut content = Vec::with_capacity(self.num_items);nn for node in self.iter() {n content.extend(node.content_slice().iter());n }nn contentn }n}nnimpl SkipList where C::Item: std::fmt::Debug {n // TODO: Don't export this.n pub fn print(&self) {n println!('items: {}tuserlen: {}, height: {}', self.num_items, self.get_userlen(), self.head.height);nn print!('HEAD:');n for s in self.head.nexts() {n print!(' |{} ', s.skip_usersize);n }n println!('');nn for (i, node) in self.iter().enumerate() {n print!('{}:', i);n for s in node.nexts() {n print!(' |{} ', s.skip_usersize);n }n println!(' : {:?}', node.content_slice());n }n }n}nn// impl usize> PartialEq for SkipList {n// // This is quite complicated. It would be cleaner to just write a bytesn// // iterator, then iterate over the bytes of both strings comparing along then// // way.n// // However, this should be faster because it can memcmp().nn// // Another way to implement this would be to rewrite it as a comparison withn// // an iterator over &str. Then the rope vs rope comparison would be trivial,n// // but also we could add comparison functions with a single &str and stuffn// // very easily.n// fn eq(&self, other: &SkipList) -> bool {n// if self.num_items != other.num_itemsn// || self.num_chars() != other.num_chars() {n// return falsen// }nn// let mut other_iter = other.iter().map(|n| { n.as_str() });nn// let mut os = other_iter.next();n// let mut opos: usize = 0; // Byte offset in os.n// for n in self.iter() {n// let s = n.as_str();n// let mut pos: usize = 0; // Current byte offset in sn// debug_assert_eq!(s.len(), n.num_bytes as usize);nn// // Walk s.len() bytes through the other ropen// while pos < n.num_bytes as usize {n// if let Some(oss) = os {n// let amt = min(s.len() - pos, oss.len() - opos);n// // println!('iter slen {} pos {} osslen {} amt {}', s.len(), pos, oss.len(), amt);nn// if &s[pos..pos+amt] != &oss[opos..opos+amt] {n// return falsen// }nn// pos += amt;n// opos += amt;n// debug_assert!(opos <= oss.len());nn// if opos == oss.len() {n// os = other_iter.next();n// opos = 0;n// }n// } else {n// panic!('Internal string length does not match');n// }n// }n// }nn// truen// }n// }n// impl usize> Eq for SkipList {}nn// impl Clone for SkipList where F: Fn(&T) -> usize {n// fn clone(&self) -> Self {n// let mut r = SkipList::new(self.get_usersize);n// r.num_items = self.num_items;n// let head_str = self.head.as_str();n// r.head.items[..head_str.len()].copy_from_slice(head_str.as_bytes());n// r.head.num_bytes = self.head.num_bytes;n// r.head.height = self.head.height;n n// {n// // I could just edit the overflow memory directly, but this is safern// // because of aliasing rules.n// let head_nexts = r.head.nexts_mut();n// for i in 0..self.head.height as usize {n// head_nexts[i].skip_items = self.nexts[i].skip_items;n// }n// }nn// let mut nodes = [&mut r.head as *mut Node; MAX_HEIGHT];nn// // The first node the iterator will return is the head. Ignore it.n// let mut iter = self.iter();n// iter.next();n// for other in iter {n// // This also sets height.n// let height = other.height;n// let node = Node::alloc_with_height(height);n// unsafe {n// (*node).num_bytes = other.num_bytes;n// let len = other.num_bytes as usize;n// (*node).items[..len].copy_from_slice(&other.items[..len]);nn// let other_nexts = other.nexts();n// let nexts = (*node).nexts_mut();n// for i in 0..height as usize {n// nexts[i].skip_items = other_nexts[i].skip_items;n// (*nodes[i]).nexts_mut()[i].node = node;n// nodes[i] = node;n// }n// }n// }nn// rn// }n// }n' \ No newline at end of file diff --git a/seph.sml b/seph.sml index 1717ad7..d6f4ed2 100644 --- a/seph.sml +++ b/seph.sml @@ -1,137993 +1,138556 @@ -val seph_arr = #[(0, 0, "'Automerge is too slow and clunky. Martin (its principle architect and programmer) recorded himself typing an academic paper. Running his editing history through automerge (his own code) takes 490 seconds, which is a bit less than 10 minutes. Once processed, the editing trace sits on 1.1 GB of RAM. The newly merged performance branch (designed to fix a lot of these problems) is even slower - taking 750 seconds (12.5 minutes) to process the same editing trace.nI managed to get that 10 minute time down to 70ms (0.07 seconds). Thats the best result I've ever gotten from optimization work, and I'm delighted by it. Let me tell you what I did!nWhat does automerge do?nBefore we can go into detail about how I made automerge fast, we have to spend a moment talking about how automerge itself works.nAn automerge document is actually a tree of inserted characters. Each character in the document has the following properties:nA unique ID, made up of a tuple of (client ID, sequence number)nThe ID (or a pointer to) its parent item, which is the item directly before that character when it was inserted.nThe character itself ('A')nThere's a couple more fields (eg to mark when characters have been deleted), but essentially thats it. When a character is inserted in the document, automerge figures out the ID of the character immediately before the new character, and inserts the new character as one of its predecessor's *children*. If you just type a linear sequence of characters (as I'm doing right now), you'll end up with a big long chain of characters going down like a linked list.nSo why is automerge so slow?nWhen optimizing, I imagine myself manually doing all the work the computer is doing, one step at a time. Then I imagine asking: 'When I get bored, how would I speed this job up?'.nAutomerge is slow for 3 main reasons:nIts written in javascript and uses complex data structures. Javascript is reasonably fast for math, but slow and inefficient when using complex data structures.nAutomerge uses a complex and inefficient data structurenAutomerge makes extremely heavy use of immutablejsnEach of these issues accounts for about an order of magnitude slowdown in performance. You can see all 3 issues showing up in this method from the automerge source tree, which is called on each keystroke. Automerge uses this method to figure out where each new character should be placed in the resulting document:nfunction insertionsAfter(opSet, objectId, parentId, childId) {n let childKey = nulln if (childId) childKey = Map({opId: childId})nn return opSetn .getIn(['byObject', objectId, '_following', parentId], List())n .filter(op => op.get('insert') && (!childKey || lamportCompare(op, childKey) < 0))n .sort(lamportCompare)n .reverse() // descending ordern .map(op => op.get('opId'))n}nWhats wrong with this method?nThis method allocates all over the place. I can spot 5 allocations, not counting any extra nonsense immutablejs is doing. The call to List() has no effect as far as I can tell from reading immutablejs's documentation.nThe document is always kept in a sorted order anyway, so the calls to sort() and reverse() are unnecessary. The algorithm only needs to figure out where the new child should be inserted. Re-sorting all children is entirely avoidable. Sort functions are often fast when the input is sorted already, but in this case because the sorting function is inverted, the computer always has to sort the entire list.nYou can't tell from looking at this method, but insertionsAfter nDespite CRDTs being the 'new hotness' in the collaborative editing game for years, I've been resisting them. As I said in my [recent blog post about CRDTs](https://josephg.com/blog/crdts-are-the-future/), they've been generally unworkable for real world collaborative editing because:nThey take up too much space on disk and in memory. (Automerge takes 1.1GB in RAM to store a 100kb document)nThey consume way too much CPU to process editsnUntil these issues are addressed, I can't recommend CRDTs for use in general computing.n'"), -(0, 0, "'n'"), -(1, 0, "'n'"), -(2, 0, "'n'"), -(3, 0, "'n'"), -(0, 0, "'A'"), -(1, 0, "' '"), -(2, 0, "'f'"), -(3, 0, "'e'"), -(4, 0, "'w'"), -(5, 0, "' '"), -(6, 0, "'y'"), -(7, 0, "'e'"), -(8, 0, "'a'"), -(9, 0, "'r'"), -(10, 0, "'s'"), -(11, 0, "' '"), -(12, 0, "'a'"), -(13, 0, "'g'"), -(14, 0, "'o'"), -(15, 0, "' '"), -(16, 0, "'I'"), -(17, 0, "' '"), -(18, 0, "'w'"), -(19, 0, "'a'"), -(20, 0, "'s'"), -(21, 0, "' '"), -(22, 0, "'r'"), -(23, 0, "'e'"), -(24, 0, "'a'"), -(25, 0, "'l'"), -(26, 0, "'l'"), -(27, 0, "'y'"), -(28, 0, "' '"), -(29, 0, "'b'"), -(30, 0, "'o'"), -(31, 0, "'t'"), -(32, 0, "'h'"), -(33, 0, "'e'"), -(34, 0, "'r'"), -(35, 0, "'e'"), -(36, 0, "'d'"), -(37, 0, "' '"), -(38, 0, "'b'"), -(39, 0, "'y'"), -(40, 0, "' '"), -(41, 0, "'a'"), -(42, 0, "'n'"), -(43, 0, "' '"), -(44, 0, "'a'"), -(45, 0, "'c'"), -(46, 0, "'a'"), -(47, 0, "'d'"), -(48, 0, "'e'"), -(49, 0, "'m'"), -(50, 0, "'i'"), -(51, 0, "'c'"), -(52, 0, "' '"), -(53, 0, "'p'"), -(54, 0, "'a'"), -(55, 0, "'p'"), -(56, 0, "'e'"), -(57, 0, "'r'"), -(58, 0, "'.'"), -(59, 0, "' '"), -(60, 0, "'S'"), -(61, 0, "'o'"), -(62, 0, "'m'"), -(63, 0, "'e'"), -(64, 0, "' '"), -(65, 0, "'g'"), -(66, 0, "'r'"), -(67, 0, "'a'"), -(68, 0, "'d'"), -(69, 0, "'u'"), -(70, 0, "'a'"), -(71, 0, "'t'"), -(72, 0, "'e'"), -(73, 0, "' '"), -(74, 0, "'s'"), -(75, 0, "'t'"), -(76, 0, "'u'"), -(77, 0, "'d'"), -(78, 0, "'e'"), -(79, 0, "'n'"), -(80, 0, "'t'"), -(81, 0, "'s'"), -(82, 0, "' '"), -(83, 0, "'i'"), -(84, 0, "'n'"), -(85, 0, "' '"), -(65, 21, "'r'"), -(66, 0, "'e'"), -(67, 0, "'s'"), -(68, 0, "'e'"), -(69, 0, "'r'"), -(70, 0, "'a'"), -(70, 1, "''"), -(69, 1, "''"), -(68, 1, "''"), -(68, 0, "'e'"), -(69, 0, "'a'"), -(70, 0, "'r'"), -(71, 0, "'c'"), -(72, 0, "'h'"), -(73, 0, "'e'"), -(74, 0, "'r'"), -(75, 0, "'s'"), -(76, 0, "' '"), -(77, 0, "'i'"), -(78, 0, "'n'"), -(79, 0, "' '"), -(80, 0, "'F'"), -(81, 0, "'r'"), -(82, 0, "'a'"), -(83, 0, "'n'"), -(84, 0, "'c'"), -(85, 0, "'e'"), -(86, 0, "' '"), -(87, 0, "'p'"), -(88, 0, "'u'"), -(89, 0, "'t'"), -(90, 0, "' '"), -(91, 0, "'t'"), -(92, 0, "'o'"), -(93, 0, "'g'"), -(94, 0, "'e'"), -(95, 0, "'t'"), -(96, 0, "'h'"), -(97, 0, "'e'"), -(98, 0, "'r'"), -(99, 0, "' '"), -(100, 0, "'a'"), -(101, 0, "' '"), -(102, 0, "'c'"), -(103, 0, "'o'"), -(104, 0, "'m'"), -(105, 0, "'a'"), -(106, 0, "'r'"), -(107, 0, "'i'"), -(108, 0, "'s'"), -(109, 0, "'o'"), -(110, 0, "'n'"), -(104, 0, "'p'"), -(104, 1, "''"), -(105, 0, "'p'"), -(112, 0, "' '"), -(113, 0, "'s'"), -(114, 0, "'h'"), -(115, 0, "'o'"), -(116, 0, "'w'"), -(117, 0, "'i'"), -(118, 0, "'n'"), -(119, 0, "'g'"), -(120, 0, "' '"), -(121, 0, "'l'"), -(122, 0, "'o'"), -(123, 0, "'t'"), -(124, 0, "'s'"), -(125, 0, "' '"), -(126, 0, "'o'"), -(127, 0, "'f'"), -(128, 0, "' '"), -(129, 0, "'w'"), -(130, 0, "'a'"), -(131, 0, "'y'"), -(132, 0, "'s'"), -(133, 0, "' '"), -(134, 0, "'o'"), -(134, 1, "''"), -(134, 0, "'C'"), -(135, 0, "'R'"), -(136, 0, "'D'"), -(137, 0, "'T'"), -(138, 0, "' '"), -(139, 0, "'a'"), -(140, 0, "'n'"), -(141, 0, "'d'"), -(142, 0, "' '"), -(143, 0, "'O'"), -(144, 0, "'T'"), -(145, 0, "' '"), -(146, 0, "'a'"), -(147, 0, "'l'"), -(148, 0, "'g'"), -(149, 0, "'o'"), -(150, 0, "'r'"), -(151, 0, "'i'"), -(152, 0, "'t'"), -(153, 0, "'h'"), -(154, 0, "'m'"), -(155, 0, "'s'"), -(156, 0, "' '"), -(157, 0, "'c'"), -(158, 0, "'o'"), -(159, 0, "'u'"), -(160, 0, "'l'"), -(161, 0, "'d'"), -(162, 0, "' '"), -(163, 0, "'b'"), -(164, 0, "'e'"), -(165, 0, "' '"), -(166, 0, "'i'"), -(167, 0, "'m'"), -(168, 0, "'p'"), -(169, 0, "'l'"), -(170, 0, "'e'"), -(171, 0, "'m'"), -(172, 0, "'e'"), -(173, 0, "'n'"), -(174, 0, "'t'"), -(175, 0, "'e'"), -(176, 0, "'d'"), -(177, 0, "' '"), -(178, 0, "'t'"), -(179, 0, "'o'"), -(180, 0, "' '"), -(181, 0, "'a'"), -(182, 0, "'l'"), -(183, 0, "'l'"), -(184, 0, "'o'"), -(185, 0, "'w'"), -(186, 0, "' '"), -(187, 0, "'f'"), -(188, 0, "'o'"), -(189, 0, "'r'"), -(190, 0, "' '"), -(191, 0, "'c'"), -(192, 0, "'o'"), -(193, 0, "'n'"), -(194, 0, "'c'"), -(195, 0, "'u'"), -(196, 0, "'r'"), -(197, 0, "'r'"), -(198, 0, "'e'"), -(199, 0, "'n'"), -(200, 0, "'t'"), -(201, 0, "' '"), -(202, 0, "'e'"), -(203, 0, "'d'"), -(204, 0, "'i'"), -(205, 0, "'t'"), -(206, 0, "'i'"), -(207, 0, "'n'"), -(208, 0, "'g'"), -(209, 0, "','"), -(210, 0, "' '"), -(211, 0, "'a'"), -(212, 0, "'n'"), -(213, 0, "'d'"), -(214, 0, "' '"), -(215, 0, "'t'"), -(216, 0, "'h'"), -(217, 0, "'e'"), -(218, 0, "'y'"), -(219, 0, "' '"), -(220, 0, "'b'"), -(221, 0, "'e'"), -(222, 0, "'n'"), -(223, 0, "'c'"), -(224, 0, "'h'"), -(225, 0, "'m'"), -(226, 0, "'a'"), -(227, 0, "'r'"), -(228, 0, "'k'"), -(229, 0, "'s'"), -(229, 1, "''"), -(229, 0, "'e'"), -(230, 0, "'d'"), -(231, 0, "' '"), -(232, 0, "'t'"), -(233, 0, "'h'"), -(234, 0, "'e'"), -(235, 0, "'m'"), -(236, 0, "'.'"), -(236, 0, "' '"), -(237, 0, "'a'"), -(238, 0, "'l'"), -(239, 0, "'l'"), -(241, 0, "' '"), -(242, 0, "'T'"), -(243, 0, "'h'"), -(244, 0, "'e'"), -(245, 0, "'i'"), -(246, 0, "'r'"), -(247, 0, "' '"), -(248, 0, "'p'"), -(249, 0, "'a'"), -(250, 0, "'p'"), -(251, 0, "'e'"), -(252, 0, "'r'"), -(253, 0, "' '"), -(254, 0, "'m'"), -(255, 0, "'a'"), -(256, 0, "'d'"), -(257, 0, "'e'"), -(258, 0, "' '"), -(242, 17, "''"), -(242, 0, "'L'"), -(243, 0, "'o'"), -(244, 0, "'t'"), -(245, 0, "'s'"), -(246, 0, "' '"), -(247, 0, "'o'"), -(248, 0, "'f'"), -(249, 0, "' '"), -(250, 0, "'p'"), -(251, 0, "'e'"), -(252, 0, "'o'"), -(253, 0, "'p'"), -(254, 0, "'l'"), -(255, 0, "'e'"), -(256, 0, "' '"), -(257, 0, "'I'"), -(258, 0, "' '"), -(259, 0, "'k'"), -(260, 0, "'n'"), -(261, 0, "'e'"), -(262, 0, "'w'"), -(242, 4, "'A'"), -(243, 0, "' '"), -(244, 0, "'b'"), -(245, 0, "'u'"), -(246, 0, "'n'"), -(247, 0, "'c'"), -(248, 0, "'h'"), -(249, 0, "'o'"), -(250, 0, "'f'"), -(250, 1, "''"), -(249, 1, "''"), -(266, 0, "' '"), -(267, 0, "'a'"), -(268, 0, "'l'"), -(269, 0, "'l'"), -(270, 0, "' '"), -(271, 0, "'s'"), -(272, 0, "'e'"), -(273, 0, "'n'"), -(274, 0, "'t'"), -(275, 0, "' '"), -(276, 0, "'m'"), -(277, 0, "'e'"), -(278, 0, "' '"), -(279, 0, "'l'"), -(280, 0, "'i'"), -(281, 0, "'n'"), -(282, 0, "'k'"), -(283, 0, "'e'"), -(283, 1, "''"), -(283, 0, "'s'"), -(284, 0, "' '"), -(285, 0, "'t'"), -(286, 0, "'o'"), -(287, 0, "' '"), -(288, 0, "'t'"), -(289, 0, "'h'"), -(290, 0, "'e'"), -(291, 0, "' '"), -(292, 0, "'p'"), -(293, 0, "'a'"), -(294, 0, "'p'"), -(295, 0, "'e'"), -(296, 0, "'r'"), -(297, 0, "' '"), -(298, 0, "'a'"), -(299, 0, "'s'"), -(300, 0, "'k'"), -(301, 0, "'i'"), -(302, 0, "'n'"), -(303, 0, "'g'"), -(304, 0, "' '"), -(305, 0, "'w'"), -(306, 0, "'h'"), -(307, 0, "'a'"), -(308, 0, "'t'"), -(309, 0, "' '"), -(310, 0, "'I'"), -(311, 0, "' '"), -(312, 0, "'t'"), -(313, 0, "'h'"), -(314, 0, "'o'"), -(315, 0, "'u'"), -(316, 0, "'g'"), -(317, 0, "'h'"), -(318, 0, "'t'"), -(241, 0, "' '"), -(242, 0, "'I'"), -(243, 0, "'''"), -(244, 0, "'d'"), -(245, 0, "' '"), -(246, 0, "'s'"), -(247, 0, "'t'"), -(248, 0, "'o'"), -(249, 0, "'p'"), -(250, 0, "'p'"), -(251, 0, "'e'"), -(252, 0, "'d'"), -(253, 0, "' '"), -(254, 0, "'w'"), -(255, 0, "'o'"), -(256, 0, "'r'"), -(257, 0, "'k'"), -(258, 0, "'i'"), -(259, 0, "'n'"), -(260, 0, "'g'"), -(261, 0, "' '"), -(262, 0, "'o'"), -(263, 0, "'n'"), -(264, 0, "' '"), -(265, 0, "'G'"), -(266, 0, "'o'"), -(267, 0, "'o'"), -(268, 0, "'g'"), -(269, 0, "'l'"), -(270, 0, "'e'"), -(271, 0, "' '"), -(272, 0, "'W'"), -(273, 0, "'a'"), -(274, 0, "'v'"), -(275, 0, "'e'"), -(276, 0, "' '"), -(277, 0, "'a'"), -(278, 0, "' '"), -(279, 0, "'f'"), -(280, 0, "'e'"), -(281, 0, "'w'"), -(282, 0, "' '"), -(283, 0, "'y'"), -(284, 0, "'e'"), -(285, 0, "'a'"), -(286, 0, "'r'"), -(287, 0, "'s'"), -(288, 0, "' '"), -(289, 0, "'a'"), -(290, 0, "'b'"), -(290, 1, "''"), -(289, 1, "''"), -(289, 0, "'b'"), -(290, 0, "'e'"), -(291, 0, "'f'"), -(292, 0, "'o'"), -(293, 0, "'r'"), -(294, 0, "'e'"), -(295, 0, "' '"), -(296, 0, "'a'"), -(297, 0, "'n'"), -(298, 0, "'d'"), -(299, 0, "' '"), -(300, 0, "'I'"), -(301, 0, "' '"), -(302, 0, "'w'"), -(303, 0, "'a'"), -(304, 0, "'s'"), -(305, 0, "' '"), -(306, 0, "'k'"), -(307, 0, "'n'"), -(308, 0, "'e'"), -(309, 0, "'e'"), -(310, 0, "' '"), -(311, 0, "'d'"), -(312, 0, "'e'"), -(313, 0, "'e'"), -(314, 0, "'p'"), -(315, 0, "' '"), -(316, 0, "'r'"), -(317, 0, "'e'"), -(318, 0, "'i'"), -(319, 0, "'m'"), -(320, 0, "'p'"), -(321, 0, "'l'"), -(322, 0, "'e'"), -(323, 0, "'m'"), -(324, 0, "'e'"), -(325, 0, "'n'"), -(326, 0, "'t'"), -(327, 0, "'i'"), -(328, 0, "'n'"), -(329, 0, "'g'"), -(330, 0, "' '"), -(331, 0, "'S'"), -(332, 0, "'h'"), -(333, 0, "'a'"), -(334, 0, "'r'"), -(335, 0, "'e'"), -(336, 0, "'J'"), -(337, 0, "'S'"), -(338, 0, "' '"), -(339, 0, "'('"), -(340, 0, "'a'"), -(341, 0, "' '"), -(342, 0, "'j'"), -(343, 0, "'a'"), -(344, 0, "'v'"), -(345, 0, "'a'"), -(346, 0, "'s'"), -(347, 0, "'c'"), -(348, 0, "'r'"), -(349, 0, "'i'"), -(350, 0, "'p'"), -(351, 0, "'t'"), -(352, 0, "' '"), -(353, 0, "'l'"), -(354, 0, "'i'"), -(355, 0, "'b'"), -(356, 0, "'r'"), -(357, 0, "'a'"), -(358, 0, "'r'"), -(359, 0, "'y'"), -(360, 0, "' '"), -(361, 0, "'f'"), -(362, 0, "'o'"), -(363, 0, "'r'"), -(364, 0, "' '"), -(365, 0, "'c'"), -(366, 0, "'o'"), -(367, 0, "'l'"), -(368, 0, "'l'"), -(369, 0, "'a'"), -(370, 0, "'b'"), -(371, 0, "'o'"), -(371, 1, "''"), -(370, 1, "''"), -(370, 0, "'b'"), -(371, 0, "'o'"), -(372, 0, "'r'"), -(373, 0, "'a'"), -(374, 0, "'t'"), -(375, 0, "'i'"), -(376, 0, "'v'"), -(377, 0, "'e'"), -(378, 0, "' '"), -(379, 0, "'e'"), -(380, 0, "'i'"), -(381, 0, "'d'"), -(382, 0, "'i'"), -(383, 0, "'n'"), -(384, 0, "'t'"), -(384, 1, "''"), -(383, 1, "''"), -(382, 1, "''"), -(381, 1, "''"), -(380, 1, "''"), -(380, 0, "'d'"), -(381, 0, "'i'"), -(382, 0, "'t'"), -(383, 0, "'i'"), -(384, 0, "'n'"), -(385, 0, "'g'"), -(386, 0, "')'"), -(387, 0, "' '"), -(388, 0, "'u'"), -(389, 0, "'s'"), -(390, 0, "'i'"), -(391, 0, "'n'"), -(392, 0, "'g'"), -(393, 0, "' '"), -(394, 0, "'o'"), -(395, 0, "'n'"), -(396, 0, "'e'"), -(397, 0, "' '"), -(398, 0, "'o'"), -(399, 0, "' '"), -(400, 0, "'t'"), -(400, 1, "''"), -(399, 1, "''"), -(399, 0, "'f'"), -(241, 1, "''"), -(241, 0, "'n'"), -(242, 0, "'n'"), -(241, 0, "' '"), -(242, 0, "'S'"), -(243, 0, "'o'"), -(244, 0, "'m'"), -(245, 0, "'e'"), -(246, 0, "' '"), -(247, 0, "'a'"), -(248, 0, "'l'"), -(249, 0, "'o'"), -(250, 0, "'r'"), -(251, 0, "'i'"), -(251, 1, "''"), -(250, 1, "''"), -(249, 1, "''"), -(249, 0, "'g'"), -(250, 0, "'o'"), -(251, 0, "'r'"), -(252, 0, "'t'"), -(252, 1, "''"), -(252, 0, "'i'"), -(253, 0, "'t'"), -(254, 0, "'h'"), -(255, 0, "'m'"), -(256, 0, "'s'"), -(257, 0, "' '"), -(258, 0, "'w'"), -(259, 0, "'o'"), -(260, 0, "'r'"), -(261, 0, "'k'"), -(262, 0, "'e'"), -(263, 0, "'d'"), -(264, 0, "' '"), -(265, 0, "'r'"), -(266, 0, "'e'"), -(267, 0, "'a'"), -(268, 0, "'s'"), -(269, 0, "'o'"), -(270, 0, "'n'"), -(271, 0, "'a'"), -(272, 0, "'b'"), -(273, 0, "'l'"), -(274, 0, "'y'"), -(275, 0, "' '"), -(276, 0, "'w'"), -(277, 0, "'e'"), -(278, 0, "'l'"), -(279, 0, "'l'"), -(280, 0, "'.'"), -(281, 0, "' '"), -(282, 0, "'A'"), -(283, 0, "'n'"), -(284, 0, "'d'"), -(285, 0, "' '"), -(286, 0, "'o'"), -(287, 0, "'t'"), -(288, 0, "'h'"), -(289, 0, "'e'"), -(290, 0, "'r'"), -(291, 0, "'s'"), -(282, 1, "''"), -(281, 1, "''"), -(280, 1, "''"), -(280, 0, "'.'"), -(281, 0, "' '"), -(282, 0, "'A'"), -(292, 0, "' '"), -(293, 0, "'t'"), -(294, 0, "'o'"), -(295, 0, "'o'"), -(296, 0, "'k'"), -(297, 0, "' '"), -(298, 0, "'u'"), -(299, 0, "'p'"), -(300, 0, "'w'"), -(301, 0, "'a'"), -(302, 0, "'r'"), -(303, 0, "'d'"), -(304, 0, "'s'"), -(305, 0, "' '"), -(306, 0, "'o'"), -(307, 0, "'f'"), -(308, 0, "' '"), -(309, 0, "'3'"), -(310, 0, "'0'"), -(311, 0, "'m'"), -(312, 0, "'x'"), -(312, 1, "''"), -(312, 0, "'s'"), -(313, 0, "' '"), -(310, 0, "'0'"), -(315, 0, "'t'"), -(316, 0, "'o'"), -(317, 0, "' '"), -(318, 0, "'h'"), -(319, 0, "'a'"), -(320, 0, "'n'"), -(321, 0, "'d'"), -(322, 0, "'l'"), -(323, 0, "'e'"), -(324, 0, "' '"), -(325, 0, "'a'"), -(326, 0, "' '"), -(327, 0, "'s'"), -(328, 0, "'i'"), -(329, 0, "'m'"), -(330, 0, "'p'"), -(331, 0, "'l'"), -(332, 0, "'e'"), -(333, 0, "' '"), -(334, 0, "'c'"), -(335, 0, "'o'"), -(336, 0, "'p'"), -(337, 0, "'y'"), -(338, 0, "'+'"), -(339, 0, "'p'"), -(340, 0, "'a'"), -(341, 0, "'s'"), -(342, 0, "'t'"), -(343, 0, "'e'"), -(344, 0, "' '"), -(345, 0, "'o'"), -(346, 0, "'p'"), -(347, 0, "'e'"), -(348, 0, "'r'"), -(349, 0, "'a'"), -(350, 0, "'t'"), -(351, 0, "'i'"), -(352, 0, "'o'"), -(353, 0, "'n'"), -(354, 0, "'.'"), -(318, 7, "'p'"), -(319, 0, "'r'"), -(320, 0, "'o'"), -(321, 0, "'c'"), -(322, 0, "'e'"), -(323, 0, "'s'"), -(324, 0, "'s'"), -(325, 0, "' '"), -(335, 5, "''"), -(281, 4, "' '"), -(282, 0, "'B'"), -(283, 0, "'u'"), -(284, 0, "'t'"), -(281, 4, "' And'"), -(309, 5, "'3'"), -(310, 0, "' '"), -(311, 0, "'s'"), -(312, 0, "'e'"), -(313, 0, "'c'"), -(314, 0, "'o'"), -(315, 0, "'n'"), -(316, 0, "'d'"), -(317, 0, "'s'"), -(354, 0, "' '"), -(355, 0, "'f'"), -(356, 0, "'r'"), -(357, 0, "'o'"), -(358, 0, "'m'"), -(359, 0, "' '"), -(360, 0, "'o'"), -(361, 0, "'n'"), -(362, 0, "'e'"), -(363, 0, "' '"), -(364, 0, "'o'"), -(365, 0, "'f'"), -(366, 0, "' '"), -(367, 0, "'t'"), -(368, 0, "'h'"), -(369, 0, "'e'"), -(370, 0, "'i'"), -(371, 0, "'r'"), -(372, 0, "' '"), -(373, 0, "'r'"), -(374, 0, "'e'"), -(375, 0, "'a'"), -(376, 0, "'l'"), -(377, 0, "' '"), -(378, 0, "'w'"), -(379, 0, "'o'"), -(380, 0, "'r'"), -(381, 0, "'l'"), -(382, 0, "'d'"), -(383, 0, "' '"), -(384, 0, "'e'"), -(385, 0, "'d'"), -(386, 0, "'i'"), -(387, 0, "'t'"), -(388, 0, "'i'"), -(389, 0, "'n'"), -(390, 0, "'g'"), -(391, 0, "' '"), -(392, 0, "'s'"), -(393, 0, "'e'"), -(394, 0, "'s'"), -(395, 0, "'i'"), -(396, 0, "'o'"), -(397, 0, "'n'"), -(397, 1, "''"), -(396, 1, "''"), -(395, 1, "''"), -(395, 0, "'s'"), -(396, 0, "'i'"), -(397, 0, "'o'"), -(398, 0, "'n'"), -(399, 0, "'s'"), -(401, 0, "'n'"), -(402, 0, "'n'"), -(403, 0, "'W'"), -(404, 0, "'h'"), -(405, 0, "'i'"), -(406, 0, "'c'"), -(407, 0, "'h'"), -(408, 0, "' '"), -(409, 0, "'a'"), -(410, 0, "'l'"), -(411, 0, "'g'"), -(412, 0, "'o'"), -(413, 0, "'r'"), -(414, 0, "'i'"), -(415, 0, "'t'"), -(416, 0, "'h'"), -(417, 0, "'m'"), -(418, 0, "' '"), -(419, 0, "'w'"), -(420, 0, "'a'"), -(421, 0, "'s'"), -(422, 0, "' '"), -(423, 0, "'t'"), -(424, 0, "'h'"), -(425, 0, "'a'"), -(426, 0, "'t'"), -(427, 0, "'?'"), -(428, 0, "' '"), -(429, 0, "'I'"), -(429, 1, "''"), -(429, 0, "'M'"), -(430, 0, "'i'"), -(431, 0, "'n'"), -(432, 0, "'e'"), -(433, 0, "'.'"), -(434, 0, "' '"), -(435, 0, "'W'"), -(436, 0, "'e'"), -(437, 0, "'l'"), -(438, 0, "'l'"), -(439, 0, "','"), -(440, 0, "' '"), -(441, 0, "'I'"), -(442, 0, "' '"), -(443, 0, "'d'"), -(444, 0, "'i'"), -(445, 0, "'d'"), -(446, 0, "'n'"), -(447, 0, "'''"), -(448, 0, "'t'"), -(449, 0, "' '"), -(450, 0, "'i'"), -(451, 0, "'n'"), -(452, 0, "'v'"), -(453, 0, "'e'"), -(454, 0, "'n'"), -(455, 0, "'t'"), -(456, 0, "' '"), -(457, 0, "'i'"), -(458, 0, "'t'"), -(459, 0, "' '"), -(460, 0, "'-'"), -(461, 0, "' '"), -(462, 0, "'b'"), -(463, 0, "'u'"), -(464, 0, "'t'"), -(465, 0, "' '"), -(466, 0, "'i'"), -(467, 0, "'t'"), -(468, 0, "' '"), -(469, 0, "'w'"), -(470, 0, "'a'"), -(471, 0, "'s'"), -(472, 0, "' '"), -(473, 0, "'t'"), -(474, 0, "'h'"), -(475, 0, "'e'"), -(476, 0, "' '"), -(477, 0, "'a'"), -(478, 0, "'l'"), -(479, 0, "'g'"), -(480, 0, "'o'"), -(481, 0, "'r'"), -(482, 0, "'i'"), -(483, 0, "'t'"), -(484, 0, "'h'"), -(485, 0, "'m'"), -(486, 0, "' '"), -(487, 0, "'I'"), -(488, 0, "' '"), -(489, 0, "'w'"), -(490, 0, "'a'"), -(491, 0, "'s'"), -(492, 0, "' '"), -(493, 0, "'u'"), -(494, 0, "'s'"), -(495, 0, "'i'"), -(496, 0, "'n'"), -(497, 0, "'g'"), -(498, 0, "' '"), -(499, 0, "'f'"), -(500, 0, "'o'"), -(501, 0, "'r'"), -(502, 0, "' '"), -(503, 0, "'S'"), -(504, 0, "'h'"), -(505, 0, "'a'"), -(506, 0, "'r'"), -(507, 0, "'e'"), -(508, 0, "'D'"), -(508, 1, "''"), -(508, 0, "'J'"), -(509, 0, "'S'"), -(133, 57, "''"), -(129, 4, "'a'"), -(130, 0, "'l'"), -(131, 0, "'g'"), -(132, 0, "'o'"), -(133, 0, "'r'"), -(134, 0, "'i'"), -(135, 0, "'t'"), -(136, 0, "'h'"), -(137, 0, "'m'"), -(138, 0, "'s'"), -(129, 10, "'w'"), -(130, 0, "'a'"), -(131, 0, "'y'"), -(132, 0, "' '"), -(133, 0, "'y'"), -(134, 0, "'o'"), -(134, 1, "''"), -(133, 1, "''"), -(132, 1, "''"), -(132, 0, "'s'"), -(133, 0, "' '"), -(134, 0, "'y'"), -(135, 0, "'o'"), -(136, 0, "'u'"), -(137, 0, "' '"), -(138, 0, "'c'"), -(139, 0, "'o'"), -(140, 0, "'u'"), -(141, 0, "'l'"), -(142, 0, "'d'"), -(143, 0, "' '"), -(144, 0, "'i'"), -(145, 0, "'m'"), -(146, 0, "'p'"), -(147, 0, "'l'"), -(148, 0, "'e'"), -(149, 0, "'m'"), -(150, 0, "'e'"), -(151, 0, "'n'"), -(152, 0, "'t'"), -(172, 0, "' '"), -(173, 0, "'('"), -(174, 0, "'w'"), -(175, 0, "'i'"), -(176, 0, "'t'"), -(177, 0, "'h'"), -(178, 0, "' '"), -(179, 0, "'C'"), -(180, 0, "'R'"), -(181, 0, "'D'"), -(182, 0, "'T'"), -(183, 0, "' '"), -(184, 0, "'a'"), -(185, 0, "'n'"), -(186, 0, "'d'"), -(187, 0, "' '"), -(188, 0, "'O'"), -(189, 0, "'T'"), -(190, 0, "' '"), -(191, 0, "'a'"), -(192, 0, "'l'"), -(193, 0, "'g'"), -(194, 0, "'o'"), -(195, 0, "'r'"), -(196, 0, "'i'"), -(197, 0, "'t'"), -(198, 0, "'h'"), -(199, 0, "'m'"), -(200, 0, "'s'"), -(201, 0, "')'"), -(394, 0, "' '"), -(395, 0, "'Y'"), -(396, 0, "'i'"), -(397, 0, "'k'"), -(398, 0, "'e'"), -(399, 0, "'s'"), -(400, 0, "'!'"), -(394, 1, "''"), -(394, 0, "'n'"), -(395, 0, "'n'"), -(403, 1, "''"), -(403, 0, "' '"), -(403, 1, "''"), -(402, 1, "''"), -(402, 0, "' '"), -(429, 0, "'W'"), -(430, 0, "'e'"), -(431, 0, "'l'"), -(432, 0, "'l'"), -(433, 0, "','"), -(434, 0, "' '"), -(435, 0, "'i'"), -(436, 0, "'t'"), -(437, 0, "' '"), -(438, 0, "'w'"), -(439, 0, "'a'"), -(440, 0, "'s'"), -(441, 0, "' '"), -(442, 1, "''"), -(442, 0, "'m'"), -(448, 5, "'I'"), -(449, 0, "' '"), -(450, 0, "'m'"), -(451, 0, "'e'"), -(452, 0, "'a'"), -(453, 0, "'n'"), -(454, 0, "','"), -(525, 0, "' '"), -(525, 1, "''"), -(525, 0, "'.'"), -(526, 0, "' '"), -(527, 0, "'T'"), -(528, 0, "'h'"), -(529, 0, "'e'"), -(530, 0, "' '"), -(531, 0, "'a'"), -(532, 0, "'l'"), -(533, 0, "'g'"), -(534, 0, "'o'"), -(535, 0, "'r'"), -(536, 0, "'i'"), -(537, 0, "'t'"), -(538, 0, "'h'"), -(539, 0, "'m'"), -(540, 0, "' '"), -(541, 0, "'w'"), -(542, 0, "'e'"), -(543, 0, "' '"), -(544, 0, "'u'"), -(545, 0, "'s'"), -(546, 0, "'e'"), -(547, 0, "'d'"), -(548, 0, "' '"), -(549, 0, "'f'"), -(550, 0, "'o'"), -(551, 0, "'r'"), -(552, 0, "' '"), -(553, 0, "'G'"), -(554, 0, "'o'"), -(555, 0, "'o'"), -(556, 0, "'g'"), -(557, 0, "'l'"), -(558, 0, "'e'"), -(559, 0, "' '"), -(560, 0, "'W'"), -(561, 0, "'a'"), -(562, 0, "'v'"), -(563, 0, "'e'"), -(275, 3, "'B'"), -(276, 0, "'u'"), -(277, 0, "'t'"), -(323, 8, "''"), -(322, 1, "''"), -(322, 0, "' '"), -(323, 0, "'s'"), -(324, 0, "'i'"), -(325, 0, "'m'"), -(326, 0, "'p'"), -(327, 0, "'l'"), -(328, 0, "'e'"), -(345, 0, "'s'"), -(351, 7, "''"), -(358, 10, "''"), -(357, 1, "''"), -(376, 1, "''"), -(375, 1, "''"), -(375, 0, "' '"), -(382, 1, "''"), -(382, 0, "'n'"), -(383, 0, "'n'"), -(545, 0, "'.'"), -(546, 0, "' '"), -(547, 0, "'T'"), -(548, 0, "'h'"), -(549, 0, "'e'"), -(550, 0, "' '"), -(551, 0, "'a'"), -(552, 0, "'l'"), -(553, 0, "'g'"), -(554, 0, "'o'"), -(555, 0, "'r'"), -(556, 0, "'i'"), -(557, 0, "'t'"), -(558, 0, "'h'"), -(559, 0, "'m'"), -(560, 0, "' '"), -(561, 0, "'I'"), -(562, 0, "' '"), -(563, 0, "'k'"), -(564, 0, "'n'"), -(565, 0, "'e'"), -(566, 0, "'w'"), -(567, 0, "' '"), -(568, 0, "'f'"), -(569, 0, "'o'"), -(570, 0, "'r'"), -(571, 0, "' '"), -(572, 0, "'a'"), -(573, 0, "' '"), -(574, 0, "'f'"), -(575, 0, "'a'"), -(576, 0, "'c'"), -(577, 0, "'t'"), -(578, 0, "' '"), -(579, 0, "'d'"), -(580, 0, "'i'"), -(581, 0, "'d'"), -(582, 0, "'n'"), -(583, 0, "'''"), -(584, 0, "'t'"), -(585, 0, "' '"), -(586, 0, "'t'"), -(587, 0, "'a'"), -(588, 0, "'k'"), -(589, 0, "'e'"), -(590, 0, "' '"), -(591, 0, "'3'"), -(592, 0, "' '"), -(593, 0, "'s'"), -(594, 0, "'e'"), -(595, 0, "'c'"), -(596, 0, "'o'"), -(597, 0, "'n'"), -(598, 0, "'d'"), -(599, 0, "'s'"), -(600, 0, "' '"), -(601, 0, "'t'"), -(602, 0, "'o'"), -(603, 0, "' '"), -(604, 0, "'p'"), -(605, 0, "'r'"), -(606, 0, "'o'"), -(607, 0, "'c'"), -(608, 0, "'e'"), -(609, 0, "'s'"), -(610, 0, "'s'"), -(611, 0, "' '"), -(612, 0, "'l'"), -(613, 0, "'a'"), -(614, 0, "'r'"), -(615, 0, "'g'"), -(616, 0, "'e'"), -(617, 0, "' '"), -(618, 0, "'p'"), -(619, 0, "'a'"), -(620, 0, "'s'"), -(621, 0, "'t'"), -(622, 0, "'e'"), -(623, 0, "' '"), -(624, 0, "'e'"), -(625, 0, "'v'"), -(626, 0, "'e'"), -(627, 0, "'n'"), -(628, 0, "'t'"), -(629, 0, "'s'"), -(630, 0, "'.'"), -(631, 0, "' '"), -(632, 0, "'W'"), -(633, 0, "'h'"), -(634, 0, "'a'"), -(635, 0, "'t'"), -(636, 0, "' '"), -(637, 0, "'w'"), -(638, 0, "'a'"), -(639, 0, "'s'"), -(640, 0, "' '"), -(641, 0, "'g'"), -(642, 0, "'o'"), -(643, 0, "'i'"), -(644, 0, "'n'"), -(645, 0, "'g'"), -(646, 0, "' '"), -(647, 0, "'o'"), -(648, 0, "'n'"), -(649, 0, "'?'"), -(650, 0, "'n'"), -(651, 0, "'n'"), -(652, 0, "'I'"), -(653, 0, "' '"), -(654, 0, "'l'"), -(655, 0, "'o'"), -(652, 4, "'L'"), -(653, 0, "'u'"), -(654, 0, "'c'"), -(655, 0, "'k'"), -(656, 0, "'i'"), -(657, 0, "'l'"), -(658, 0, "'y'"), -(659, 0, "' '"), -(652, 8, "'I'"), -(653, 0, "' '"), -(654, 0, "'t'"), -(655, 0, "'o'"), -(656, 0, "'o'"), -(657, 0, "'k'"), -(658, 0, "' '"), -(659, 0, "'a'"), -(660, 0, "' '"), -(661, 0, "'c'"), -(662, 0, "'l'"), -(663, 0, "'o'"), -(664, 0, "'s'"), -(665, 0, "'e'"), -(666, 0, "'r'"), -(667, 0, "' '"), -(668, 0, "'l'"), -(669, 0, "'o'"), -(670, 0, "'o'"), -(671, 0, "'k'"), -(672, 0, "' '"), -(673, 0, "'a'"), -(674, 0, "'d'"), -(674, 1, "''"), -(674, 0, "'n'"), -(675, 0, "'d'"), -(676, 0, "' '"), -(677, 0, "'i'"), -(678, 0, "'t'"), -(679, 0, "' '"), -(680, 0, "'s'"), -(681, 0, "'e'"), -(682, 0, "'e'"), -(683, 0, "'m'"), -(684, 0, "'e'"), -(685, 0, "'d'"), -(686, 0, "' '"), -(687, 0, "'l'"), -(688, 0, "'i'"), -(689, 0, "'k'"), -(690, 0, "'e'"), -(691, 0, "' '"), -(692, 0, "'i'"), -(693, 0, "'t'"), -(694, 0, "' '"), -(695, 0, "'w'"), -(696, 0, "'a'"), -(697, 0, "'s'"), -(698, 0, "' '"), -(699, 0, "'a'"), -(700, 0, "'m'"), -(701, 0, "'a'"), -(702, 0, "'t'"), -(703, 0, "'e'"), -(704, 0, "'u'"), -(705, 0, "'r'"), -(706, 0, "' '"), -(707, 0, "'h'"), -(708, 0, "'o'"), -(709, 0, "'u'"), -(710, 0, "'r'"), -(711, 0, "' '"), -(712, 0, "'i'"), -(713, 0, "'n'"), -(714, 0, "' '"), -(715, 0, "'t'"), -(716, 0, "'h'"), -(717, 0, "'i'"), -(718, 0, "'e'"), -(719, 0, "'r'"), -(720, 0, "' '"), -(721, 0, "'i'"), -(722, 0, "'m'"), -(715, 8, "'t'"), -(716, 0, "'h'"), -(717, 0, "'e'"), -(718, 0, "'i'"), -(719, 0, "'r'"), -(720, 0, "' '"), -(721, 0, "'i'"), -(722, 0, "'m'"), -(723, 0, "'p'"), -(724, 0, "'l'"), -(725, 0, "'e'"), -(726, 0, "'m'"), -(727, 0, "'e'"), -(728, 0, "'n'"), -(729, 0, "'t'"), -(730, 0, "'a'"), -(731, 0, "'t'"), -(732, 0, "'i'"), -(733, 0, "'o'"), -(734, 0, "'n'"), -(735, 0, "'.'"), -(736, 0, "' '"), -(652, 85, "'I took a closer look and it seemed like it was amateur hour in their implementation.'"), -(637, 0, "'o'"), -(638, 0, "'n'"), -(639, 0, "' '"), -(640, 0, "'e'"), -(641, 0, "'a'"), -(642, 0, "'r'"), -(643, 0, "'t'"), -(644, 0, "'h'"), -(645, 0, "' '"), -(637, 9, "''"), -(736, 0, "' '"), -(737, 0, "'W'"), -(738, 0, "'h'"), -(739, 0, "'e'"), -(740, 0, "'n'"), -(741, 0, "' '"), -(742, 0, "'a'"), -(743, 0, "' '"), -(744, 0, "'l'"), -(745, 0, "'a'"), -(746, 0, "'r'"), -(747, 0, "'g'"), -(748, 0, "'e'"), -(749, 0, "' '"), -(750, 0, "'p'"), -(751, 0, "'a'"), -(752, 0, "'s'"), -(753, 0, "'t'"), -(754, 0, "' '"), -(755, 0, "'e'"), -(756, 0, "'v'"), -(757, 0, "'e'"), -(758, 0, "'n'"), -(754, 1, "''"), -(755, 0, "' '"), -(756, 0, "'e'"), -(760, 0, "'t'"), -(761, 0, "' '"), -(762, 0, "'h'"), -(763, 0, "'a'"), -(764, 0, "'p'"), -(765, 0, "'p'"), -(766, 0, "'e'"), -(767, 0, "'n'"), -(768, 0, "'e'"), -(769, 0, "'d'"), -(770, 0, "','"), -(771, 0, "' '"), -(772, 0, "'i'"), -(773, 0, "'n'"), -(774, 0, "'s'"), -(775, 0, "'t'"), -(776, 0, "'e'"), -(777, 0, "'a'"), -(778, 0, "'d'"), -(779, 0, "' '"), -(780, 0, "'o'"), -(781, 0, "'f'"), -(782, 0, "' '"), -(783, 0, "'i'"), -(784, 0, "'n'"), -(785, 0, "'s'"), -(786, 0, "'e'"), -(787, 0, "'r'"), -(788, 0, "'t'"), -(789, 0, "'i'"), -(790, 0, "'n'"), -(791, 0, "'g'"), -(792, 0, "' '"), -(793, 0, "'o'"), -(794, 0, "'n'"), -(795, 0, "'e'"), -(796, 0, "' '"), -(797, 0, "'b'"), -(798, 0, "'l'"), -(799, 0, "'o'"), -(800, 0, "'c'"), -(801, 0, "'k'"), -(802, 0, "' '"), -(803, 0, "'o'"), -(804, 0, "'f'"), -(805, 0, "' '"), -(806, 0, "'t'"), -(807, 0, "'e'"), -(808, 0, "'x'"), -(809, 0, "'t'"), -(810, 0, "','"), -(811, 0, "' '"), -(812, 0, "'t'"), -(813, 0, "'h'"), -(814, 0, "'e'"), -(815, 0, "'i'"), -(816, 0, "'r'"), -(817, 0, "' '"), -(818, 0, "'a'"), -(819, 0, "'l'"), -(820, 0, "'g'"), -(821, 0, "'o'"), -(822, 0, "'r'"), -(823, 0, "'i'"), -(824, 0, "'t'"), -(825, 0, "'h'"), -(826, 0, "'m'"), -(827, 0, "' '"), -(828, 0, "'w'"), -(829, 0, "'a'"), -(830, 0, "'s'"), -(831, 0, "' '"), -(818, 10, "'c'"), -(819, 0, "'o'"), -(820, 0, "'d'"), -(821, 0, "'e'"), -(822, 0, "' '"), -(827, 0, "'t'"), -(828, 0, "'a'"), -(829, 0, "'k'"), -(830, 0, "'i'"), -(831, 0, "'n'"), -(832, 0, "'g'"), -(833, 0, "' '"), -(834, 0, "'e'"), -(835, 0, "'a'"), -(836, 0, "'c'"), -(837, 0, "'h'"), -(838, 0, "' '"), -(839, 0, "'c'"), -(840, 0, "'h'"), -(841, 0, "'a'"), -(842, 0, "'r'"), -(843, 0, "'a'"), -(844, 0, "'c'"), -(845, 0, "'t'"), -(846, 0, "'e'"), -(847, 0, "'r'"), -(839, 0, "'i'"), -(840, 0, "'n'"), -(841, 0, "'s'"), -(842, 0, "'e'"), -(843, 0, "'r'"), -(844, 0, "'t'"), -(845, 0, "'e'"), -(846, 0, "'d'"), -(847, 0, "' '"), -(857, 0, "' '"), -(858, 0, "'o'"), -(859, 0, "'n'"), -(860, 0, "'e'"), -(861, 0, "' '"), -(862, 0, "'b'"), -(863, 0, "'y'"), -(864, 0, "' '"), -(865, 0, "'o'"), -(866, 0, "'n'"), -(867, 0, "'e'"), -(868, 0, "' '"), -(869, 0, "'a'"), -(870, 0, "'n'"), -(871, 0, "'d'"), -(872, 0, "' '"), -(873, 0, "'i'"), -(874, 0, "'n'"), -(875, 0, "'s'"), -(876, 0, "'e'"), -(877, 0, "'r'"), -(878, 0, "'t'"), -(879, 0, "'e'"), -(880, 0, "'d'"), -(880, 1, "''"), -(879, 1, "''"), -(879, 0, "'i'"), -(880, 0, "'n'"), -(881, 0, "'g'"), -(882, 0, "' '"), -(883, 0, "'t'"), -(884, 0, "'h'"), -(885, 0, "'e'"), -(886, 0, "'m'"), -(839, 48, "'n'"), -(840, 0, "'e'"), -(841, 0, "'w'"), -(842, 0, "' '"), -(843, 0, "'c'"), -(844, 0, "'h'"), -(845, 0, "'a'"), -(846, 0, "'r'"), -(847, 0, "'a'"), -(848, 0, "'c'"), -(849, 0, "'t'"), -(850, 0, "'e'"), -(851, 0, "'r'"), -(852, 0, "' '"), -(853, 0, "'o'"), -(854, 0, "'n'"), -(855, 0, "'e'"), -(856, 0, "' '"), -(857, 0, "'b'"), -(858, 0, "'y'"), -(859, 0, "' '"), -(860, 0, "'o'"), -(861, 0, "'n'"), -(862, 0, "'e'"), -(863, 0, "' '"), -(864, 0, "'a'"), -(865, 0, "'n'"), -(866, 0, "'d'"), -(867, 0, "' '"), -(868, 0, "'i'"), -(869, 0, "'n'"), -(870, 0, "'s'"), -(871, 0, "'e'"), -(872, 0, "'r'"), -(873, 0, "'t'"), -(874, 0, "'e'"), -(874, 1, "''"), -(874, 0, "'i'"), -(875, 0, "'n'"), -(876, 0, "'g'"), -(877, 0, "' '"), -(878, 0, "'t'"), -(879, 0, "'h'"), -(880, 0, "'e'"), -(881, 0, "'m'"), -(882, 0, "' '"), -(883, 0, "'i'"), -(884, 0, "'n'"), -(885, 0, "'t'"), -(886, 0, "'i'"), -(886, 1, "''"), -(886, 0, "'o'"), -(887, 0, "' '"), -(888, 0, "'t'"), -(889, 0, "'h'"), -(890, 0, "'e'"), -(891, 0, "'i'"), -(892, 0, "'r'"), -(893, 0, "' '"), -(894, 0, "'o'"), -(895, 0, "'b'"), -(896, 0, "'v'"), -(897, 0, "'i'"), -(898, 0, "'o'"), -(899, 0, "'u'"), -(894, 6, "'c'"), -(895, 0, "'a'"), -(895, 1, "''"), -(895, 0, "'r'"), -(896, 0, "'a'"), -(897, 0, "'z'"), -(898, 0, "'y'"), -(899, 0, "' '"), -(900, 0, "'l'"), -(901, 0, "'s'"), -(902, 0, "'o'"), -(903, 0, "'w'"), -(904, 0, "' '"), -(900, 5, "'s'"), -(901, 0, "'l'"), -(902, 0, "'o'"), -(903, 0, "'w'"), -(904, 0, "' '"), -(905, 0, "'d'"), -(906, 0, "'a'"), -(907, 0, "'t'"), -(908, 0, "'a'"), -(909, 0, "' '"), -(910, 0, "'s'"), -(911, 0, "'t'"), -(912, 0, "'r'"), -(913, 0, "'u'"), -(914, 0, "'c'"), -(915, 0, "'t'"), -(916, 0, "'u'"), -(917, 0, "'r'"), -(918, 0, "'e'"), -(919, 0, "'.'"), -(920, 0, "' '"), -(921, 0, "'G'"), -(922, 0, "'a'"), -(923, 0, "'h'"), -(924, 0, "' '"), -(925, 0, "'-'"), -(926, 0, "' '"), -(926, 1, "''"), -(925, 1, "''"), -(925, 0, "'~'"), -(926, 0, "' '"), -(927, 0, "'t'"), -(928, 0, "'h'"), -(929, 0, "'i'"), -(930, 0, "'s'"), -(931, 0, "' '"), -(932, 0, "'i'"), -(933, 0, "'s'"), -(934, 0, "'n'"), -(935, 0, "'''"), -(936, 0, "'t'"), -(937, 0, "' '"), -(938, 0, "'a'"), -(939, 0, "' '"), -(940, 0, "'p'"), -(941, 0, "'r'"), -(942, 0, "'o'"), -(943, 0, "'b'"), -(944, 0, "'l'"), -(945, 0, "'e'"), -(946, 0, "'m'"), -(920, 0, "' '"), -(921, 0, "'I'"), -(922, 0, "' '"), -(923, 0, "'m'"), -(924, 0, "'e'"), -(925, 0, "'a'"), -(926, 0, "'n'"), -(927, 0, "','"), -(928, 0, "' '"), -(929, 0, "'y'"), -(930, 0, "'e'"), -(931, 0, "'a'"), -(932, 0, "'h'"), -(933, 0, "'-'"), -(934, 0, "' '"), -(934, 1, "''"), -(933, 1, "''"), -(933, 0, "' '"), -(934, 0, "'-'"), -(935, 0, "' '"), -(936, 0, "'o'"), -(937, 0, "'f'"), -(938, 0, "' '"), -(939, 0, "'c'"), -(940, 0, "'o'"), -(941, 0, "'u'"), -(942, 0, "'r'"), -(943, 0, "'s'"), -(944, 0, "'e'"), -(945, 0, "' '"), -(946, 0, "'i'"), -(947, 0, "'t'"), -(948, 0, "'''"), -(949, 0, "'l'"), -(950, 0, "'l'"), -(951, 0, "' '"), -(952, 0, "'b'"), -(953, 0, "'e'"), -(954, 0, "' '"), -(955, 0, "'s'"), -(956, 0, "'l'"), -(957, 0, "'o'"), -(958, 0, "'w'"), -(959, 0, "' '"), -(960, 0, "'i'"), -(961, 0, "'f'"), -(962, 0, "' '"), -(963, 0, "'y'"), -(964, 0, "'o'"), -(965, 0, "'u'"), -(966, 0, "' '"), -(967, 0, "'d'"), -(968, 0, "'o'"), -(969, 0, "' '"), -(970, 0, "'t'"), -(971, 0, "'h'"), -(972, 0, "'a'"), -(973, 0, "'t'"), -(974, 0, "'!'"), -(975, 0, "' '"), -(976, 0, "'B'"), -(977, 0, "'u'"), -(978, 0, "'t'"), -(980, 1, "''"), -(980, 0, "'g'"), -(1006, 0, "' '"), -(1007, 0, "'w'"), -(1008, 0, "'i'"), -(1009, 0, "'t'"), -(1010, 0, "'h'"), -(1011, 0, "' '"), -(1012, 0, "'t'"), -(1013, 0, "'h'"), -(1014, 0, "'e'"), -(1015, 0, "' '"), -(1016, 0, "'a'"), -(1017, 0, "'l'"), -(1018, 0, "'g'"), -(1019, 0, "'o'"), -(1020, 0, "'r'"), -(1021, 0, "'i'"), -(1022, 0, "'t'"), -(1023, 0, "'h'"), -(1024, 0, "'m'"), -(1025, 0, "'.'"), -(1026, 0, "' '"), -(1027, 0, "'T'"), -(1028, 0, "'h'"), -(1029, 0, "'i'"), -(1030, 0, "'s'"), -(1031, 0, "'i'"), -(1032, 0, "'s'"), -(1032, 1, "''"), -(1031, 1, "''"), -(1031, 0, "' '"), -(1032, 0, "'i'"), -(1033, 0, "'s'"), -(1034, 0, "' '"), -(1035, 0, "'a'"), -(1036, 0, "' '"), -(1016, 9, "'a'"), -(1017, 0, "'p'"), -(1018, 0, "'p'"), -(1019, 0, "'r'"), -(1020, 0, "'o'"), -(1021, 0, "'a'"), -(1022, 0, "'c'"), -(1023, 0, "'h'"), -(1036, 0, "'p'"), -(1037, 0, "'r'"), -(1038, 0, "'o'"), -(1039, 0, "'b'"), -(1040, 0, "'l'"), -(1041, 0, "'e'"), -(1042, 0, "'m'"), -(1043, 0, "' '"), -(1044, 0, "'w'"), -(1045, 0, "'i'"), -(1046, 0, "'t'"), -(1047, 0, "'h'"), -(1048, 0, "'i'"), -(1049, 0, "' '"), -(1049, 1, "''"), -(1048, 1, "''"), -(1048, 0, "' '"), -(1049, 0, "'*'"), -(1050, 0, "'y'"), -(1051, 0, "'o'"), -(1052, 0, "'u'"), -(1053, 0, "'r'"), -(1054, 0, "' '"), -(1055, 0, "'c'"), -(1056, 0, "'o'"), -(1057, 0, "'d'"), -(1058, 0, "'e'"), -(1059, 0, "'*'"), -(1060, 0, "'.'"), -(742, 1, "'a'"), -(743, 0, "' '"), -(744, 0, "'u'"), -(745, 0, "'s'"), -(746, 0, "'e'"), -(747, 0, "'r'"), -(748, 0, "' '"), -(749, 0, "'p'"), -(750, 0, "'a'"), -(751, 0, "'s'"), -(752, 0, "'t'"), -(753, 0, "'e'"), -(754, 0, "'d'"), -(755, 0, "' '"), -(756, 0, "'a'"), -(757, 0, "' '"), -(758, 0, "'b'"), -(759, 0, "'l'"), -(760, 0, "'o'"), -(761, 0, "'c'"), -(762, 0, "'k'"), -(763, 0, "' '"), -(764, 0, "'f'"), -(765, 0, "'o'"), -(766, 0, "' '"), -(766, 1, "''"), -(765, 1, "''"), -(764, 1, "''"), -(764, 0, "'f'"), -(765, 0, "'o'"), -(766, 0, "' '"), -(767, 0, "'c'"), -(767, 1, "''"), -(766, 1, "''"), -(765, 1, "''"), -(764, 1, "''"), -(764, 0, "'o'"), -(765, 0, "'f'"), -(766, 0, "' '"), -(767, 0, "'c'"), -(768, 0, "'o'"), -(769, 0, "'d'"), -(770, 0, "'e'"), -(771, 27, "''"), -(758, 0, "'b'"), -(759, 0, "'i'"), -(760, 0, "'g'"), -(761, 0, "' '"), -(762, 5, "'c'"), -(763, 0, "'h'"), -(764, 0, "'u'"), -(765, 0, "'n'"), -(766, 0, "'k'"), -(798, 17, "'t'"), -(799, 0, "'h'"), -(800, 0, "'a'"), -(801, 0, "'t'"), -(802, 0, "' '"), -(803, 0, "'s'"), -(804, 0, "'t'"), -(805, 0, "'r'"), -(806, 0, "'o'"), -(807, 0, "'n'"), -(807, 1, "''"), -(806, 1, "''"), -(806, 0, "'i'"), -(807, 0, "'n'"), -(808, 0, "'g'"), -(809, 0, "' '"), -(810, 0, "'i'"), -(811, 0, "'n'"), -(812, 0, "' '"), -(813, 0, "'o'"), -(814, 0, "'n'"), -(815, 0, "'e'"), -(816, 0, "' '"), -(817, 0, "'o'"), -(818, 0, "'p'"), -(819, 0, "'e'"), -(820, 0, "'r'"), -(821, 0, "'a'"), -(822, 0, "'t'"), -(823, 0, "'o'"), -(824, 0, "'i'"), -(825, 0, "'n'"), -(825, 1, "''"), -(824, 1, "''"), -(823, 1, "''"), -(823, 0, "'i'"), -(824, 0, "'o'"), -(825, 0, "'n'"), -(771, 4, "'t'"), -(772, 0, "'e'"), -(773, 0, "'x'"), -(774, 0, "'t'"), -(797, 0, "' '"), -(798, 0, "'a'"), -(799, 0, "'l'"), -(800, 0, "'l'"), -(801, 0, "' '"), -(802, 0, "'o'"), -(803, 0, "'f'"), -(804, 0, "' '"), -(805, 0, "'t'"), -(806, 0, "'h'"), -(807, 0, "'a'"), -(808, 0, "'t'"), -(809, 0, "' '"), -(810, 0, "'c'"), -(811, 0, "'o'"), -(812, 0, "'n'"), -(813, 0, "'t'"), -(814, 0, "'e'"), -(815, 0, "'n'"), -(816, 0, "'t'"), -(817, 12, "''"), -(834, 1, "''"), -(901, 4, "'e'"), -(902, 0, "'a'"), -(903, 0, "'c'"), -(904, 0, "'h'"), -(905, 0, "' '"), -(906, 0, "'o'"), -(907, 0, "'n'"), -(908, 0, "'e'"), -(920, 6, "''"), -(775, 0, "' '"), -(776, 0, "'('"), -(777, 0, "'s'"), -(778, 0, "'a'"), -(779, 0, "'y'"), -(780, 0, "','"), -(781, 0, "' '"), -(782, 0, "'1'"), -(783, 0, "'0'"), -(784, 0, "'0'"), -(785, 0, "'0'"), -(786, 0, "' '"), -(787, 0, "'c'"), -(788, 0, "'h'"), -(789, 0, "'a'"), -(790, 0, "'r'"), -(791, 0, "'a'"), -(792, 0, "'c'"), -(793, 0, "'t'"), -(794, 0, "'e'"), -(795, 0, "'r'"), -(796, 0, "'s'"), -(797, 0, "')'"), -(821, 22, "'t'"), -(822, 0, "'h'"), -(823, 0, "'o'"), -(824, 0, "'s'"), -(825, 0, "'e'"), -(826, 0, "' '"), -(827, 0, "'1'"), -(828, 0, "'0'"), -(829, 0, "'0'"), -(830, 0, "'0'"), -(831, 0, "' '"), -(832, 0, "'c'"), -(833, 0, "'h'"), -(834, 0, "'a'"), -(835, 0, "'r'"), -(836, 0, "'a'"), -(837, 0, "'c'"), -(838, 0, "'t'"), -(839, 0, "'e'"), -(840, 0, "'r'"), -(841, 0, "'s'"), -(842, 0, "' '"), -(843, 0, "'i'"), -(844, 0, "'n'"), -(875, 55, "''"), -(875, 0, "'s'"), -(876, 0, "'p'"), -(877, 0, "'l'"), -(878, 0, "'i'"), -(879, 0, "'t'"), -(880, 0, "'t'"), -(881, 0, "'i'"), -(882, 0, "'n'"), -(883, 0, "'g'"), -(884, 0, "' '"), -(885, 0, "'e'"), -(886, 0, "'a'"), -(887, 0, "'c'"), -(888, 0, "'h'"), -(889, 0, "' '"), -(890, 0, "'c'"), -(891, 0, "'h'"), -(892, 0, "'a'"), -(893, 0, "'r'"), -(894, 0, "'a'"), -(895, 0, "'c'"), -(896, 0, "'t'"), -(897, 0, "'e'"), -(898, 0, "'r'"), -(899, 4, "''"), -(904, 0, "' '"), -(905, 0, "'i'"), -(906, 0, "'t'"), -(907, 0, "'s'"), -(908, 0, "' '"), -(909, 0, "'o'"), -(910, 0, "'w'"), -(911, 0, "'n'"), -(912, 0, "' '"), -(913, 0, "'e'"), -(914, 0, "'d'"), -(915, 0, "'i'"), -(916, 0, "'t'"), -(917, 26, "''"), -(917, 0, "'i'"), -(918, 0, "'n'"), -(919, 0, "'g'"), -(920, 0, "' '"), -(921, 0, "'o'"), -(922, 0, "'p'"), -(923, 0, "'e'"), -(924, 0, "'r'"), -(925, 0, "'a'"), -(926, 0, "'t'"), -(927, 0, "'i'"), -(928, 0, "'o'"), -(929, 0, "'n'"), -(930, 0, "'.'"), -(931, 0, "' '"), -(932, 0, "'T'"), -(933, 0, "'h'"), -(934, 0, "'e'"), -(935, 0, "'y'"), -(936, 0, "' '"), -(937, 0, "'w'"), -(938, 0, "'e'"), -(939, 0, "'r'"), -(940, 0, "'e'"), -(941, 0, "' '"), -(942, 0, "'p'"), -(943, 0, "'r'"), -(944, 0, "'o'"), -(945, 0, "'c'"), -(946, 0, "'e'"), -(947, 0, "'s'"), -(948, 0, "'s'"), -(949, 0, "'i'"), -(950, 0, "'n'"), -(951, 0, "'g'"), -(952, 0, "' '"), -(953, 0, "'1'"), -(954, 0, "'0'"), -(955, 0, "'0'"), -(956, 0, "'0'"), -(957, 0, "' '"), -(958, 0, "'o'"), -(959, 0, "'p'"), -(960, 0, "'e'"), -(961, 0, "'r'"), -(962, 0, "'a'"), -(963, 0, "'t'"), -(964, 0, "'i'"), -(965, 0, "'o'"), -(966, 0, "'n'"), -(967, 0, "'s'"), -(968, 0, "' '"), -(969, 0, "'r'"), -(970, 0, "'a'"), -(971, 0, "'t'"), -(972, 0, "'h'"), -(973, 0, "'e'"), -(974, 0, "'r'"), -(975, 0, "' '"), -(976, 0, "'t'"), -(977, 0, "'h'"), -(978, 0, "'a'"), -(979, 0, "'n'"), -(980, 0, "' '"), -(981, 0, "'1'"), -(982, 0, "' '"), -(983, 0, "'a'"), -(984, 0, "'n'"), -(985, 0, "'d'"), -(1058, 39, "''"), -(1058, 0, "'i'"), -(1059, 0, "'s'"), -(1060, 0, "'n'"), -(1061, 0, "'''"), -(1062, 0, "'t'"), -(1063, 0, "' '"), -(1064, 0, "'s'"), -(1065, 0, "'c'"), -(1066, 0, "'i'"), -(1067, 0, "'e'"), -(1068, 0, "'n'"), -(1069, 0, "'c'"), -(1070, 0, "'e'"), -(1071, 0, "'.'"), -(1072, 0, "' '"), -(1073, 0, "'Y'"), -(1074, 0, "'o'"), -(1075, 0, "'u'"), -(1076, 0, "' '"), -(1077, 0, "'j'"), -(1078, 0, "'u'"), -(1079, 0, "'s'"), -(1080, 0, "'t'"), -(1081, 0, "' '"), -(1082, 0, "'w'"), -(1083, 0, "'r'"), -(1084, 0, "'o'"), -(1085, 0, "'t'"), -(1086, 0, "'e'"), -(1087, 18, "''"), -(1089, 4, "'b'"), -(1090, 0, "'a'"), -(1091, 0, "'d'"), -(1099, 0, "' '"), -(1100, 0, "'I'"), -(1101, 0, "' '"), -(1102, 0, "'c'"), -(1103, 0, "'a'"), -(1104, 0, "'n'"), -(1105, 0, "'''"), -(1106, 0, "'t'"), -(1107, 0, "' '"), -(1108, 0, "'l'"), -(1109, 0, "'e'"), -(1100, 10, "'T'"), -(1101, 0, "'h'"), -(1102, 0, "'a'"), -(1103, 0, "'t'"), -(1104, 0, "' '"), -(1105, 0, "'d'"), -(1106, 0, "'o'"), -(1107, 0, "'e'"), -(1108, 0, "'s'"), -(1109, 0, "'n'"), -(1110, 0, "'''"), -(1111, 0, "'t'"), -(1112, 0, "' '"), -(1113, 0, "'t'"), -(1114, 0, "'e'"), -(1115, 0, "'l'"), -(1116, 0, "'l'"), -(1117, 0, "' '"), -(1118, 0, "'u'"), -(1119, 0, "'s'"), -(1120, 0, "' '"), -(1121, 0, "'a'"), -(1122, 0, "'n'"), -(1123, 0, "'y'"), -(1124, 0, "'t'"), -(1125, 0, "'h'"), -(1126, 0, "'i'"), -(1127, 0, "'n'"), -(1128, 0, "'g'"), -(1129, 0, "' '"), -(1130, 0, "'a'"), -(1131, 0, "'b'"), -(1132, 0, "'o'"), -(1133, 0, "'u'"), -(1134, 0, "'t'"), -(1135, 0, "' '"), -(1136, 0, "'w'"), -(1137, 0, "'h'"), -(1138, 0, "'a'"), -(1139, 0, "'t'"), -(1140, 0, "' '"), -(1141, 0, "'y'"), -(1142, 0, "'o'"), -(1143, 0, "'u'"), -(1144, 0, "'''"), -(1145, 0, "'r'"), -(1146, 0, "'e'"), -(1147, 0, "' '"), -(1148, 0, "'t'"), -(1149, 0, "'r'"), -(1150, 0, "'y'"), -(1151, 0, "'i'"), -(1152, 0, "'n'"), -(1153, 0, "'g'"), -(1154, 0, "' '"), -(1155, 0, "'t'"), -(1156, 0, "'o'"), -(1157, 0, "' '"), -(1158, 0, "'t'"), -(1159, 0, "'e'"), -(1160, 0, "'s'"), -(1161, 0, "'t'"), -(1162, 0, "'.'"), -(1163, 0, "' '"), -(1164, 0, "'I'"), -(1165, 0, "'t'"), -(1166, 0, "' '"), -(1167, 0, "'j'"), -(1168, 0, "'u'"), -(1169, 0, "'s'"), -(1170, 0, "'t'"), -(1171, 0, "' '"), -(1172, 0, "'t'"), -(1173, 0, "'e'"), -(1174, 0, "'l'"), -(1175, 0, "'l'"), -(1176, 0, "'s'"), -(1177, 0, "' '"), -(1178, 0, "'u'"), -(1179, 0, "'s'"), -(1180, 0, "' '"), -(1181, 0, "'s'"), -(1182, 0, "'o'"), -(1183, 0, "'m'"), -(1184, 0, "'e'"), -(1185, 0, "'t'"), -(1186, 0, "'h'"), -(1187, 0, "'i'"), -(1188, 0, "'n'"), -(1189, 0, "'g'"), -(1190, 0, "' '"), -(1191, 0, "'a'"), -(1192, 0, "'b'"), -(1193, 0, "'o'"), -(1194, 0, "'u'"), -(1195, 0, "'t'"), -(1196, 0, "' '"), -(1197, 0, "'*'"), -(1198, 0, "'y'"), -(1199, 0, "'o'"), -(1200, 0, "'u'"), -(1201, 0, "'*'"), -(1202, 0, "'.'"), -(811, 15, "'c'"), -(812, 0, "'r'"), -(813, 0, "'e'"), -(814, 0, "'a'"), -(815, 0, "'t'"), -(816, 0, "'i'"), -(817, 0, "'n'"), -(818, 0, "'g'"), -(819, 0, "' '"), -(820, 0, "'1'"), -(821, 0, "' '"), -(822, 0, "'o'"), -(823, 0, "'p'"), -(824, 0, "'e'"), -(825, 0, "'r'"), -(826, 0, "'a'"), -(827, 0, "'t'"), -(828, 0, "'i'"), -(829, 0, "'o'"), -(830, 0, "'n'"), -(831, 0, "' '"), -(832, 0, "'w'"), -(833, 0, "'i'"), -(834, 0, "'t'"), -(835, 0, "'h'"), -(852, 23, "''"), -(852, 0, "','"), -(853, 0, "' '"), -(854, 0, "'t'"), -(855, 0, "'h'"), -(856, 0, "'e'"), -(857, 0, "'i'"), -(858, 0, "'r'"), -(864, 4, "''"), -(873, 1, "''"), -(872, 1, "''"), -(871, 1, "''"), -(870, 1, "''"), -(870, 0, "' '"), -(871, 0, "'t'"), -(872, 0, "'h'"), -(873, 0, "'e'"), -(874, 0, "' '"), -(875, 0, "'i'"), -(876, 0, "'n'"), -(877, 0, "'s'"), -(878, 0, "'e'"), -(879, 0, "'r'"), -(880, 0, "'t'"), -(881, 0, "' '"), -(882, 0, "'i'"), -(883, 0, "'n'"), -(884, 0, "'t'"), -(885, 0, "'o'"), -(886, 24, "' '"), -(887, 0, "'1'"), -(888, 0, "'0'"), -(889, 0, "'0'"), -(890, 0, "'0'"), -(891, 0, "'0'"), -(891, 1, "''"), -(891, 0, "' '"), -(892, 0, "'o'"), -(893, 0, "'p'"), -(894, 0, "'e'"), -(895, 0, "'r'"), -(896, 0, "'a'"), -(897, 0, "'t'"), -(898, 0, "'i'"), -(899, 0, "'o'"), -(900, 0, "'n'"), -(901, 0, "'s'"), -(902, 0, "' '"), -(903, 0, "'-'"), -(904, 0, "' '"), -(905, 0, "'e'"), -(906, 0, "'a'"), -(907, 0, "'c'"), -(908, 0, "'h'"), -(909, 0, "' '"), -(910, 0, "'w'"), -(911, 0, "'i'"), -(912, 0, "'t'"), -(913, 0, "'h'"), -(914, 0, "' '"), -(915, 0, "'i'"), -(916, 0, "'t'"), -(917, 0, "'s'"), -(910, 30, "'w'"), -(911, 0, "'h'"), -(912, 0, "'i'"), -(913, 0, "'c'"), -(914, 0, "'h'"), -(915, 0, "' '"), -(916, 0, "'n'"), -(917, 0, "'e'"), -(918, 0, "'e'"), -(919, 0, "'d'"), -(920, 0, "'e'"), -(921, 0, "'d'"), -(922, 0, "' '"), -(923, 0, "'t'"), -(924, 0, "'o'"), -(925, 0, "' '"), -(926, 0, "'p'"), -(926, 1, "''"), -(926, 0, "'b'"), -(927, 0, "'e'"), -(928, 0, "' '"), -(929, 0, "'p'"), -(930, 0, "'r'"), -(931, 0, "'o'"), -(932, 0, "'c'"), -(933, 0, "'e'"), -(934, 0, "'s'"), -(935, 0, "'s'"), -(936, 0, "'e'"), -(937, 0, "'d'"), -(938, 0, "' '"), -(939, 0, "'s'"), -(940, 0, "'e'"), -(941, 0, "'p'"), -(942, 0, "'a'"), -(943, 0, "'r'"), -(944, 0, "'a'"), -(945, 0, "'t'"), -(946, 0, "'e'"), -(947, 0, "'l'"), -(948, 0, "'y'"), -(950, 56, "''"), -(1010, 3, "''"), -(1009, 1, "''"), -(1010, 6, "'w'"), -(1011, 0, "'e'"), -(1012, 0, "' '"), -(1013, 0, "'c'"), -(1014, 0, "'a'"), -(1015, 0, "'n'"), -(1016, 0, "'''"), -(1017, 0, "'t'"), -(1018, 0, "' '"), -(1019, 0, "'l'"), -(1020, 0, "'e'"), -(1021, 0, "'a'"), -(1022, 0, "'r'"), -(1023, 0, "'n'"), -(1024, 0, "' '"), -(1025, 0, "'a'"), -(1026, 0, "'n'"), -(1027, 0, "'y'"), -(1028, 0, "'t'"), -(1029, 0, "'h'"), -(1030, 0, "'i'"), -(1031, 0, "'n'"), -(1032, 0, "'g'"), -(1033, 0, "' '"), -(1034, 0, "'f'"), -(1035, 0, "'r'"), -(1036, 0, "'o'"), -(1037, 0, "'m'"), -(1038, 0, "' '"), -(1039, 0, "'t'"), -(1040, 0, "'h'"), -(1041, 0, "'a'"), -(1042, 0, "'t'"), -(1043, 15, "''"), -(1043, 0, "'!'"), -(1034, 0, "'a'"), -(1035, 0, "'b'"), -(1036, 0, "'o'"), -(1037, 0, "'u'"), -(1038, 0, "'t'"), -(1039, 0, "' '"), -(1040, 0, "'t'"), -(1041, 0, "'h'"), -(1042, 0, "'e'"), -(1043, 0, "' '"), -(1044, 0, "'a'"), -(1045, 0, "'l'"), -(1046, 0, "'g'"), -(1047, 0, "'o'"), -(1048, 0, "'r'"), -(1049, 0, "'i'"), -(1050, 0, "'t'"), -(1051, 0, "'h'"), -(1052, 0, "'m'"), -(1053, 0, "' '"), -(1064, 0, "' '"), -(1064, 1, "''"), -(1006, 58, "''"), -(1006, 0, "'T'"), -(1007, 0, "'h'"), -(1008, 0, "'i'"), -(1009, 0, "'s'"), -(1010, 0, "' '"), -(1011, 0, "'i'"), -(1012, 0, "'s'"), -(1013, 0, "'n'"), -(1014, 0, "'''"), -(1015, 0, "'t'"), -(1016, 0, "' '"), -(1017, 0, "'a'"), -(1018, 0, "' '"), -(1019, 0, "'p'"), -(1020, 0, "'r'"), -(1021, 0, "'o'"), -(1022, 0, "'b'"), -(1023, 0, "'l'"), -(1024, 0, "'e'"), -(1025, 0, "'m'"), -(1026, 0, "' '"), -(1027, 0, "'w'"), -(1028, 0, "'i'"), -(1029, 0, "'t'"), -(1030, 0, "'h'"), -(1031, 0, "' '"), -(1032, 0, "'t'"), -(1033, 0, "'h'"), -(1034, 0, "'e'"), -(1035, 0, "'i'"), -(1035, 1, "''"), -(1034, 1, "''"), -(1034, 0, "'e'"), -(1035, 0, "' '"), -(1036, 0, "'a'"), -(1037, 0, "'l'"), -(1038, 0, "'g'"), -(1039, 0, "'o'"), -(1040, 0, "'r'"), -(1041, 0, "'i'"), -(1042, 0, "'t'"), -(1043, 0, "'h'"), -(1044, 0, "'m'"), -(1045, 0, "'.'"), -(1046, 0, "' '"), -(1047, 0, "'T'"), -(1048, 0, "'h'"), -(1049, 0, "'i'"), -(1050, 0, "'s'"), -(1051, 0, "' '"), -(1052, 0, "'i'"), -(1053, 0, "'s'"), -(1054, 0, "' '"), -(1055, 0, "'j'"), -(1056, 0, "'u'"), -(1057, 0, "'s'"), -(1058, 0, "'t'"), -(1059, 0, "' '"), -(1060, 0, "'a'"), -(1061, 0, "' '"), -(1062, 0, "'p'"), -(1063, 0, "'r'"), -(1064, 0, "'o'"), -(1065, 0, "'b'"), -(1066, 0, "'l'"), -(1067, 0, "'e'"), -(1068, 0, "'m'"), -(1069, 0, "' '"), -(1070, 0, "'w'"), -(1071, 0, "'i'"), -(1072, 0, "'t'"), -(1073, 0, "'h'"), -(1074, 15, "''"), -(1074, 0, "' '"), -(1075, 0, "'y'"), -(1076, 0, "'o'"), -(1077, 0, "'u'"), -(1078, 0, "'r'"), -(1075, 0, "'*'"), -(1080, 5, "''"), -(1086, 0, "' '"), -(1087, 0, "'m'"), -(1088, 0, "'r'"), -(1089, 0, "' '"), -(1090, 0, "'r'"), -(1091, 0, "'e'"), -(1092, 0, "'s'"), -(1093, 0, "'e'"), -(1094, 0, "'a'"), -(1095, 0, "'r'"), -(1096, 0, "'c'"), -(1097, 0, "'h'"), -(1098, 0, "'e'"), -(1099, 0, "'r'"), -(1086, 14, "''"), -(1081, 0, "'d'"), -(1082, 0, "'o'"), -(1083, 0, "'d'"), -(1084, 0, "'g'"), -(1085, 0, "'y'"), -(1086, 0, "' '"), -(1093, 104, "''"), -(1093, 0, "' '"), -(1094, 0, "'I'"), -(1095, 0, "' '"), -(1096, 0, "'w'"), -(1097, 0, "'o'"), -(1098, 0, "'u'"), -(1099, 0, "'l'"), -(1100, 0, "'d'"), -(1101, 0, "'n'"), -(1102, 0, "'''"), -(1103, 0, "'t'"), -(1104, 0, "' '"), -(1105, 0, "'m'"), -(1106, 0, "'i'"), -(1107, 0, "'n'"), -(1108, 0, "'d'"), -(1109, 0, "' '"), -(1110, 0, "'s'"), -(1111, 0, "'o'"), -(1112, 0, "' '"), -(1113, 0, "'m'"), -(1114, 0, "'u'"), -(1115, 0, "'c'"), -(1116, 0, "'h'"), -(1117, 0, "' '"), -(1118, 0, "'i'"), -(1119, 0, "'f'"), -(1120, 0, "' '"), -(1121, 0, "'p'"), -(1122, 0, "'e'"), -(1123, 0, "'o'"), -(1124, 0, "'p'"), -(1125, 0, "'l'"), -(1126, 0, "'e'"), -(1127, 0, "' '"), -(1128, 0, "'I'"), -(1129, 0, "' '"), -(1121, 0, "'I'"), -(1122, 0, "' '"), -(1123, 0, "'d'"), -(1124, 0, "'i'"), -(1125, 0, "'d'"), -(1126, 0, "'n'"), -(1127, 0, "'''"), -(1128, 0, "'t'"), -(1129, 0, "' '"), -(1130, 0, "'h'"), -(1131, 0, "'a'"), -(1132, 0, "'v'"), -(1133, 0, "'e'"), -(1134, 0, "' '"), -(1135, 0, "'p'"), -(1136, 0, "'e'"), -(1137, 0, "'o'"), -(1138, 0, "'p'"), -(1139, 0, "'l'"), -(1140, 0, "'e'"), -(1141, 0, "' '"), -(1142, 0, "'I'"), -(1143, 0, "' '"), -(1144, 0, "'r'"), -(1145, 0, "'e'"), -(1146, 0, "'s'"), -(1147, 0, "'p'"), -(1148, 0, "'e'"), -(1149, 0, "'c'"), -(1150, 0, "'t'"), -(1151, 0, "'e'"), -(1152, 0, "'d'"), -(1153, 9, "' '"), -(1154, 0, "'r'"), -(1155, 0, "'e'"), -(1156, 0, "'a'"), -(1157, 0, "'d'"), -(1158, 0, "'i'"), -(1159, 0, "'n'"), -(1160, 0, "'g'"), -(1161, 0, "' '"), -(1162, 0, "'t'"), -(1163, 0, "'h'"), -(1164, 0, "'e'"), -(1165, 0, "' '"), -(1166, 0, "'p'"), -(1167, 0, "'a'"), -(1168, 0, "'p'"), -(1169, 0, "'e'"), -(1170, 0, "'r'"), -(1171, 0, "' '"), -(1172, 0, "'a'"), -(1173, 0, "'n'"), -(1174, 0, "'d'"), -(1175, 0, "' '"), -(1176, 0, "'a'"), -(1177, 0, "'s'"), -(1178, 0, "'k'"), -(1179, 0, "'i'"), -(1180, 0, "'n'"), -(1181, 0, "'g'"), -(1182, 0, "' '"), -(1183, 0, "'m'"), -(1184, 0, "'e'"), -(1185, 0, "' '"), -(1186, 0, "'a'"), -(1187, 0, "'b'"), -(1188, 0, "'o'"), -(1189, 0, "'u'"), -(1190, 0, "'t'"), -(1191, 0, "' '"), -(1192, 0, "'i'"), -(1193, 0, "'t'"), -(1194, 0, "'.'"), -(1093, 1, "''"), -(1093, 0, "'n'"), -(1094, 0, "'n'"), -(1153, 1, "''"), -(1152, 1, "''"), -(1153, 7, "'f'"), -(1154, 0, "'l'"), -(1155, 0, "'i'"), -(1156, 0, "'p'"), -(1157, 0, "'p'"), -(1158, 0, "'i'"), -(1159, 0, "'n'"), -(1160, 0, "'g'"), -(1161, 0, "' '"), -(1162, 0, "'t'"), -(1163, 0, "'h'"), -(1164, 0, "'r'"), -(1165, 0, "'o'"), -(1166, 0, "'u'"), -(1167, 0, "'h'"), -(1168, 0, "'g'"), -(1168, 1, "''"), -(1167, 1, "''"), -(1166, 1, "''"), -(1166, 0, "'u'"), -(1167, 0, "'g'"), -(1168, 0, "'h'"), -(1203, 0, "'n'"), -(1204, 0, "'n'"), -(1204, 1, "''"), -(1203, 1, "''"), -(1202, 1, "''"), -(1202, 0, "'.'"), -(1203, 0, "' '"), -(1204, 0, "'A'"), -(1205, 0, "'r'"), -(1206, 0, "'g'"), -(1207, 0, "'h'"), -(1208, 0, "'!'"), -(1209, 0, "'n'"), -(1210, 0, "'n'"), -(1211, 0, "'W'"), -(1212, 0, "'h'"), -(1213, 0, "'e'"), -(1214, 0, "'n'"), -(1215, 0, "' '"), -(1216, 0, "'w'"), -(1217, 0, "'e'"), -(1218, 0, "' '"), -(1219, 0, "'t'"), -(1220, 0, "'h'"), -(1221, 0, "'i'"), -(1222, 0, "'n'"), -(1223, 0, "'k'"), -(1224, 0, "' '"), -(1225, 0, "'a'"), -(1226, 0, "'b'"), -(1227, 0, "'o'"), -(1228, 0, "'u'"), -(1229, 0, "'t'"), -(1230, 0, "' '"), -(1231, 0, "'C'"), -(1232, 0, "'R'"), -(1233, 0, "'D'"), -(1234, 0, "'T'"), -(1235, 0, "'s'"), -(1236, 0, "' '"), -(1237, 0, "'a'"), -(1238, 0, "'n'"), -(1239, 0, "'d'"), -(1240, 0, "' '"), -(1241, 0, "'o'"), -(1242, 0, "'t'"), -(1243, 0, "'h'"), -(1244, 0, "'e'"), -(1245, 0, "'r'"), -(1246, 0, "' '"), -(1247, 0, "'c'"), -(1248, 0, "'o'"), -(1249, 0, "'n'"), -(1250, 0, "'c'"), -(1251, 0, "'u'"), -(1252, 0, "'r'"), -(1253, 0, "'r'"), -(1254, 0, "'e'"), -(1255, 0, "'n'"), -(1256, 0, "'t'"), -(1257, 0, "'i'"), -(1258, 0, "'n'"), -(1259, 0, "'g'"), -(1259, 1, "''"), -(1258, 1, "''"), -(1257, 1, "''"), -(1257, 0, "' '"), -(1258, 0, "'e'"), -(1259, 0, "'d'"), -(1260, 0, "'i'"), -(1261, 0, "'t'"), -(1262, 0, "'i'"), -(1263, 0, "'n'"), -(1264, 0, "'g'"), -(1265, 0, "' '"), -(1247, 19, "'c'"), -(1248, 0, "'o'"), -(1249, 0, "'l'"), -(1250, 0, "'l'"), -(1251, 0, "'a'"), -(1252, 0, "'b'"), -(1253, 0, "'o'"), -(1254, 0, "'r'"), -(1255, 0, "'a'"), -(1256, 0, "'t'"), -(1257, 0, "'i'"), -(1258, 0, "'v'"), -(1259, 0, "'e'"), -(1260, 0, "' '"), -(1261, 0, "'e'"), -(1262, 0, "'d'"), -(1263, 0, "'i'"), -(1264, 0, "'t'"), -(1265, 0, "'i'"), -(1266, 0, "'n'"), -(1267, 0, "'g'"), -(1268, 0, "' '"), -(1269, 0, "'s'"), -(1270, 0, "'y'"), -(1271, 0, "'t'"), -(1272, 0, "'s'"), -(1273, 0, "'t'"), -(1273, 1, "''"), -(1272, 1, "''"), -(1271, 1, "''"), -(1271, 0, "'s'"), -(1272, 0, "'e'"), -(1272, 1, "''"), -(1272, 0, "'t'"), -(1273, 0, "'e'"), -(1274, 0, "'m'"), -(1275, 0, "'s'"), -(1276, 0, "' '"), -(1277, 0, "'w'"), -(1278, 0, "'e'"), -(1279, 0, "' '"), -(1280, 0, "'h'"), -(1281, 0, "'a'"), -(1282, 0, "'v'"), -(1283, 0, "'e'"), -(1284, 0, "' '"), -(1285, 0, "' '"), -(1286, 0, "'a'"), -(1286, 1, "''"), -(1285, 1, "''"), -(1285, 0, "'a'"), -(1286, 0, "' '"), -(1287, 0, "'p'"), -(1288, 0, "'r'"), -(1289, 0, "'o'"), -(1290, 0, "'b'"), -(1291, 0, "'l'"), -(1292, 0, "'e'"), -(1293, 0, "'m'"), -(1294, 0, "' '"), -(1295, 0, "'w'"), -(1296, 0, "'i'"), -(1297, 0, "'t'"), -(1298, 0, "'h'"), -(1299, 0, "' '"), -(1300, 0, "'w'"), -(1301, 0, "'o'"), -(1302, 0, "'r'"), -(1303, 0, "'d'"), -(1304, 0, "'s'"), -(1305, 0, "'.'"), -(1306, 0, "' '"), -(1307, 0, "'W'"), -(1308, 0, "'e'"), -(1309, 0, "' '"), -(1310, 0, "'d'"), -(1311, 0, "'e'"), -(1312, 0, "'s'"), -(1313, 0, "'c'"), -(1314, 0, "'r'"), -(1315, 0, "'i'"), -(1316, 0, "'b'"), -(1317, 0, "'e'"), -(1318, 0, "' '"), -(1319, 0, "'e'"), -(1320, 0, "'a'"), -(1321, 0, "'c'"), -(1322, 0, "'h'"), -(1323, 0, "' '"), -(1324, 0, "'s'"), -(1325, 0, "'y'"), -(1326, 0, "'s'"), -(1327, 0, "'t'"), -(1328, 0, "'e'"), -(1329, 0, "'m'"), -(1330, 0, "' '"), -(1331, 0, "'a'"), -(1332, 0, "'s'"), -(1333, 0, "' '"), -(1334, 0, "'a'"), -(1335, 0, "'n'"), -(1336, 0, "' '"), -(1337, 0, "'''"), -(1338, 0, "'a'"), -(1339, 0, "'l'"), -(1340, 0, "'g'"), -(1341, 0, "'o'"), -(1342, 0, "'r'"), -(1343, 0, "'i'"), -(1344, 0, "'t'"), -(1345, 0, "'h'"), -(1346, 0, "'m'"), -(1347, 0, "'''"), -(1348, 0, "' '"), -(1349, 0, "'-'"), -(1350, 0, "' '"), -(1351, 0, "'b'"), -(1352, 0, "'u'"), -(1353, 0, "'t'"), -(1354, 0, "' '"), -(1355, 0, "'r'"), -(1356, 0, "'e'"), -(1357, 0, "'a'"), -(1358, 0, "'l'"), -(1359, 0, "'l'"), -(1360, 0, "'y'"), -(1361, 0, "' '"), -(1362, 0, "'t'"), -(1363, 0, "'h'"), -(1364, 0, "'e'"), -(1365, 0, "'r'"), -(1366, 0, "'e'"), -(1367, 0, "'''"), -(1368, 0, "'s'"), -(1369, 0, "' '"), -(1370, 0, "'t'"), -(1371, 0, "'w'"), -(1372, 0, "'o'"), -(1373, 0, "' '"), -(1374, 0, "'t'"), -(1375, 0, "'h'"), -(1376, 0, "'i'"), -(1377, 0, "'n'"), -(1378, 0, "'g'"), -(1379, 0, "'s'"), -(1380, 0, "' '"), -(1381, 0, "'g'"), -(1382, 0, "'o'"), -(1383, 0, "'i'"), -(1384, 0, "'n'"), -(1385, 0, "'g'"), -(1386, 0, "' '"), -(1387, 0, "'o'"), -(1388, 0, "'n'"), -(1374, 0, "'v'"), -(1375, 0, "'e'"), -(1376, 0, "'r'"), -(1377, 0, "'y'"), -(1378, 0, "' '"), -(1379, 0, "'s'"), -(1380, 0, "'e'"), -(1381, 0, "'p'"), -(1382, 0, "'a'"), -(1383, 0, "'r'"), -(1384, 0, "'a'"), -(1385, 0, "'t'"), -(1386, 0, "'e'"), -(1387, 0, "' '"), -(1388, 6, "'p'"), -(1389, 0, "'a'"), -(1390, 0, "'r'"), -(1391, 0, "'t'"), -(1392, 0, "'s'"), -(1393, 9, "''"), -(1393, 0, "':'"), -(1394, 0, "'n'"), -(1395, 0, "'n'"), -(1396, 0, "'1'"), -(1397, 0, "'.'"), -(1398, 0, "' '"), -(1399, 0, "'T'"), -(1400, 0, "'h'"), -(1401, 0, "'e'"), -(1402, 0, "' '"), -(1403, 0, "'s'"), -(1404, 0, "'e'"), -(1405, 0, "'m'"), -(1406, 0, "'a'"), -(1407, 0, "'n'"), -(1408, 0, "'t'"), -(1409, 0, "'i'"), -(1410, 0, "'c'"), -(1411, 0, "'s'"), -(1412, 0, "' '"), -(1413, 0, "'o'"), -(1414, 0, "'f'"), -(1415, 0, "' '"), -(1416, 0, "'t'"), -(1417, 0, "'h'"), -(1418, 0, "'e'"), -(1419, 0, "' '"), -(1420, 0, "'s'"), -(1421, 0, "'y'"), -(1422, 0, "'s'"), -(1423, 0, "'t'"), -(1424, 0, "'e'"), -(1425, 0, "'m'"), -(1426, 0, "','"), -(1427, 0, "' '"), -(1428, 0, "'w'"), -(1429, 0, "'h'"), -(1430, 0, "'i'"), -(1431, 0, "'c'"), -(1432, 0, "'h'"), -(1433, 0, "' '"), -(1434, 0, "'w'"), -(1435, 0, "'e'"), -(1436, 0, "' '"), -(1437, 0, "'c'"), -(1438, 0, "'a'"), -(1439, 0, "'n'"), -(1440, 0, "' '"), -(1441, 0, "'d'"), -(1442, 0, "'e'"), -(1443, 0, "'s'"), -(1444, 0, "'c'"), -(1445, 0, "'r'"), -(1446, 0, "'i'"), -(1447, 0, "'b'"), -(1448, 0, "'e'"), -(1449, 0, "' '"), -(1426, 24, "'.'"), -(1427, 0, "' '"), -(1428, 0, "'W'"), -(1429, 0, "'h'"), -(1430, 0, "'e'"), -(1431, 0, "'n'"), -(1432, 0, "' '"), -(1433, 0, "'c'"), -(1434, 0, "'o'"), -(1435, 0, "'n'"), -(1436, 0, "'c'"), -(1437, 0, "'u'"), -(1438, 0, "'r'"), -(1439, 0, "'r'"), -(1440, 0, "'e'"), -(1441, 0, "'n'"), -(1442, 0, "'t'"), -(1443, 0, "' '"), -(1444, 0, "'e'"), -(1445, 0, "'d'"), -(1446, 0, "'i'"), -(1447, 0, "'t'"), -(1448, 0, "'s'"), -(1449, 0, "' '"), -(1450, 0, "'h'"), -(1451, 0, "'a'"), -(1452, 0, "'p'"), -(1453, 0, "'p'"), -(1454, 0, "'e'"), -(1455, 0, "'n'"), -(1456, 0, "' '"), -(1457, 0, "'i'"), -(1458, 0, "'n'"), -(1459, 0, "' '"), -(1460, 0, "'t'"), -(1461, 0, "'h'"), -(1462, 0, "'e'"), -(1463, 0, "' '"), -(1464, 0, "'s'"), -(1465, 0, "'a'"), -(1466, 0, "'m'"), -(1467, 0, "'e'"), -(1468, 0, "' '"), -(1469, 0, "'p'"), -(1470, 0, "'l'"), -(1471, 0, "'a'"), -(1472, 0, "'c'"), -(1473, 0, "'e'"), -(1474, 0, "','"), -(1475, 0, "' '"), -(1476, 0, "'h'"), -(1477, 0, "'o'"), -(1478, 0, "'w'"), -(1479, 0, "' '"), -(1480, 0, "'d'"), -(1480, 1, "''"), -(1480, 0, "'c'"), -(1481, 0, "'a'"), -(1482, 0, "'n'"), -(1483, 0, "' '"), -(1484, 0, "'w'"), -(1485, 0, "'e'"), -(1486, 0, "' '"), -(1487, 0, "'t'"), -(1488, 0, "'e'"), -(1489, 0, "'l'"), -(1490, 0, "'l'"), -(1491, 0, "'?'"), -(1492, 0, "' '"), -(1493, 0, "'W'"), -(1494, 0, "'h'"), -(1495, 0, "'a'"), -(1496, 0, "'t'"), -(1497, 0, "' '"), -(1476, 22, "'w'"), -(1477, 0, "'h'"), -(1478, 0, "'a'"), -(1479, 0, "'t'"), -(1480, 0, "' '"), -(1481, 0, "'h'"), -(1482, 0, "'a'"), -(1483, 0, "'p'"), -(1484, 0, "'p'"), -(1485, 0, "'e'"), -(1486, 0, "'n'"), -(1487, 0, "'s'"), -(1488, 0, "'?'"), -(1474, 0, "' '"), -(1475, 0, "'i'"), -(1476, 0, "'n'"), -(1477, 0, "' '"), -(1478, 0, "'t'"), -(1479, 0, "'h'"), -(1480, 0, "'e'"), -(1481, 0, "' '"), -(1482, 0, "'d'"), -(1483, 0, "'o'"), -(1484, 0, "'c'"), -(1485, 0, "'u'"), -(1486, 0, "'m'"), -(1487, 0, "'e'"), -(1488, 0, "'n'"), -(1489, 0, "'t'"), -(1497, 8, "'h'"), -(1498, 0, "'o'"), -(1497, 2, "'happens?'"), -(1505, 0, "' '"), -(1506, 0, "'H'"), -(1507, 0, "'o'"), -(1508, 0, "'w'"), -(1509, 0, "' '"), -(1510, 0, "'d'"), -(1511, 0, "'o'"), -(1512, 0, "'e'"), -(1513, 0, "'s'"), -(1514, 0, "' '"), -(1515, 0, "'i'"), -(1516, 0, "'t'"), -(1517, 0, "' '"), -(1518, 0, "'k'"), -(1519, 0, "'n'"), -(1520, 0, "'o'"), -(1521, 0, "'w'"), -(1522, 0, "'?'"), -(1523, 0, "' '"), -(1524, 0, "'H'"), -(1525, 0, "'o'"), -(1526, 0, "'w'"), -(1527, 0, "' '"), -(1528, 0, "'d'"), -(1529, 0, "'o'"), -(1530, 0, "'e'"), -(1531, 0, "'s'"), -(1532, 0, "' '"), -(1533, 0, "'i'"), -(1534, 0, "'t'"), -(1535, 0, "' '"), -(1536, 0, "'r'"), -(1537, 0, "'e'"), -(1538, 0, "'s'"), -(1539, 0, "'o'"), -(1540, 0, "'l'"), -(1541, 0, "'v'"), -(1542, 0, "'e'"), -(1543, 0, "' '"), -(1544, 0, "'i'"), -(1545, 0, "'t'"), -(1544, 2, "'t'"), -(1545, 0, "'h'"), -(1546, 0, "'e'"), -(1547, 0, "' '"), -(1548, 0, "'s'"), -(1549, 0, "'i'"), -(1550, 0, "'t'"), -(1551, 0, "'u'"), -(1552, 0, "'a'"), -(1553, 0, "'t'"), -(1554, 0, "'i'"), -(1555, 0, "'o'"), -(1556, 0, "'n'"), -(1557, 0, "'?'"), -(1403, 0, "'*'"), -(1413, 0, "'*'"), -(1413, 1, "''"), -(1413, 0, "'*'"), -(1413, 1, "' '"), -(1413, 1, "'*'"), -(1471, 6, "'l'"), -(1472, 0, "'o'"), -(1473, 0, "'c'"), -(1474, 0, "'a'"), -(1475, 0, "'t'"), -(1476, 0, "'o'"), -(1477, 0, "'i'"), -(1478, 0, "'n'"), -(1479, 0, "' '"), -(1479, 1, "''"), -(1478, 1, "''"), -(1477, 1, "''"), -(1476, 1, "''"), -(1476, 0, "'i'"), -(1477, 0, "'o'"), -(1478, 0, "'n'"), -(1479, 0, "' '"), -(1510, 18, "''"), -(1545, 0, "'n'"), -(1546, 0, "'n'"), -(1547, 0, "'2'"), -(1548, 0, "'.'"), -(1548, 1, "''"), -(1547, 1, "''"), -(1546, 1, "''"), -(1546, 0, "'2'"), -(1547, 0, "'.'"), -(1548, 0, "' '"), -(1549, 0, "'T'"), -(1550, 0, "'h'"), -(1551, 0, "'e'"), -(1552, 0, "' '"), -(1553, 0, "'*'"), -(1554, 0, "'i'"), -(1555, 0, "'m'"), -(1556, 0, "'p'"), -(1557, 0, "'l'"), -(1558, 0, "'e'"), -(1559, 0, "'m'"), -(1560, 0, "'e'"), -(1561, 0, "'n'"), -(1562, 0, "'t'"), -(1563, 0, "'a'"), -(1564, 0, "'t'"), -(1565, 0, "'o'"), -(1566, 0, "'i'"), -(1567, 0, "'n'"), -(1568, 0, "' '"), -(1568, 1, "''"), -(1567, 1, "''"), -(1566, 1, "''"), -(1565, 1, "''"), -(1565, 0, "'i'"), -(1566, 0, "'o'"), -(1567, 0, "'n'"), -(1568, 0, "'*'"), -(1569, 0, "' '"), -(1570, 0, "'o'"), -(1571, 0, "'f'"), -(1572, 0, "' '"), -(1573, 0, "'t'"), -(1574, 0, "'h'"), -(1575, 0, "'e'"), -(1576, 0, "' '"), -(1577, 0, "'s'"), -(1578, 0, "'y'"), -(1579, 0, "'s'"), -(1580, 0, "'t'"), -(1581, 0, "'e'"), -(1582, 0, "'m'"), -(1583, 0, "'.'"), -(1584, 0, "' '"), -(1585, 0, "'W'"), -(1586, 0, "'h'"), -(1587, 0, "'a'"), -(1588, 0, "'t'"), -(1589, 0, "' '"), -(1590, 0, "'l'"), -(1591, 0, "'a'"), -(1592, 0, "'n'"), -(1593, 0, "'g'"), -(1594, 0, "'u'"), -(1595, 0, "'e'"), -(1595, 1, "''"), -(1595, 0, "'a'"), -(1595, 1, "''"), -(1595, 0, "'a'"), -(1596, 0, "'g'"), -(1597, 0, "'e'"), -(1598, 0, "'?'"), -(1599, 0, "' '"), -(1600, 0, "'W'"), -(1601, 0, "'h'"), -(1602, 0, "'a'"), -(1603, 0, "'t'"), -(1604, 0, "' '"), -(1605, 0, "'d'"), -(1606, 0, "'a'"), -(1607, 0, "'t'"), -(1608, 0, "'a'"), -(1609, 0, "' '"), -(1610, 0, "'s'"), -(1611, 0, "'t'"), -(1612, 0, "'r'"), -(1613, 0, "'u'"), -(1614, 0, "'c'"), -(1615, 0, "'t'"), -(1616, 0, "'u'"), -(1617, 0, "'r'"), -(1618, 0, "'e'"), -(1619, 0, "'s'"), -(1620, 0, "'?'"), -(1621, 0, "' '"), -(1621, 1, "''"), -(1598, 0, "' '"), -(1599, 0, "'a'"), -(1600, 0, "'r'"), -(1601, 0, "'e'"), -(1602, 0, "' '"), -(1603, 0, "'w'"), -(1604, 0, "'e'"), -(1605, 0, "' '"), -(1606, 0, "'u'"), -(1607, 0, "'s'"), -(1608, 0, "'i'"), -(1609, 0, "'n'"), -(1610, 0, "'g'"), -(1634, 0, "' '"), -(1635, 0, "'H'"), -(1636, 0, "'o'"), -(1637, 0, "'w'"), -(1638, 0, "' '"), -(1639, 0, "'w'"), -(1640, 0, "'e'"), -(1641, 0, "'l'"), -(1642, 0, "'l'"), -(1643, 0, "' '"), -(1644, 0, "'o'"), -(1645, 0, "'p'"), -(1646, 0, "'t'"), -(1647, 0, "'i'"), -(1648, 0, "'m'"), -(1649, 0, "'i'"), -(1650, 0, "'z'"), -(1651, 0, "'e'"), -(1652, 0, "'d'"), -(1653, 0, "' '"), -(1654, 0, "'i'"), -(1655, 0, "'s'"), -(1656, 0, "' '"), -(1657, 0, "'i'"), -(1658, 0, "'t'"), -(1659, 0, "','"), -(1660, 0, "' '"), -(1661, 0, "'f'"), -(1662, 0, "'o'"), -(1663, 0, "'r'"), -(1664, 0, "' '"), -(1661, 4, "'a'"), -(1662, 0, "'n'"), -(1663, 0, "'d'"), -(1664, 0, "' '"), -(1665, 0, "'f'"), -(1666, 0, "'o'"), -(1667, 0, "'r'"), -(1668, 0, "' '"), -(1669, 0, "'w'"), -(1670, 0, "'h'"), -(1671, 0, "'a'"), -(1672, 0, "'t'"), -(1673, 0, "' '"), -(1674, 0, "'s'"), -(1675, 0, "'c'"), -(1676, 0, "'e'"), -(1677, 0, "'n'"), -(1678, 0, "'a'"), -(1679, 0, "'r'"), -(1680, 0, "'i'"), -(1681, 0, "'o'"), -(1682, 0, "'s'"), -(1683, 0, "'?'"), -(1684, 0, "'n'"), -(1685, 0, "'n'"), -(1686, 0, "'I'"), -(1687, 0, "'f'"), -(1688, 0, "' '"), -(1689, 0, "'t'"), -(1690, 0, "'h'"), -(1691, 0, "'e'"), -(1692, 0, "' '"), -(1693, 0, "'s'"), -(1694, 0, "'e'"), -(1695, 0, "'m'"), -(1696, 0, "'a'"), -(1697, 0, "'n'"), -(1698, 0, "'t'"), -(1699, 0, "'i'"), -(1700, 0, "'c'"), -(1701, 0, "'s'"), -(1702, 0, "' '"), -(1703, 0, "'a'"), -(1704, 0, "'r'"), -(1705, 0, "'e'"), -(1706, 0, "' '"), -(1707, 0, "'c'"), -(1708, 0, "'o'"), -(1709, 0, "'r'"), -(1710, 0, "'r'"), -(1711, 0, "'e'"), -(1712, 0, "'c'"), -(1713, 0, "'t'"), -(1707, 7, "'i'"), -(1708, 0, "'n'"), -(1709, 0, "'c'"), -(1710, 0, "'o'"), -(1711, 0, "'r'"), -(1712, 0, "'r'"), -(1713, 0, "'e'"), -(1714, 0, "'c'"), -(1715, 0, "'t'"), -(1716, 0, "','"), -(1717, 0, "' '"), -(1718, 0, "'u'"), -(1719, 0, "'s'"), -(1720, 0, "'e'"), -(1721, 0, "'r'"), -(1722, 0, "'s'"), -(1723, 0, "'''"), -(1724, 0, "' '"), -(1725, 0, "'e'"), -(1726, 0, "'d'"), -(1727, 0, "'i'"), -(1728, 0, "'t'"), -(1729, 0, "'s'"), -(1730, 0, "' '"), -(1731, 0, "'w'"), -(1732, 0, "'o'"), -(1733, 0, "'n'"), -(1734, 0, "'''"), -(1735, 0, "'t'"), -(1736, 0, "' '"), -(1737, 0, "'c'"), -(1738, 0, "'o'"), -(1739, 0, "'n'"), -(1740, 0, "'v'"), -(1741, 0, "'e'"), -(1742, 0, "'r'"), -(1743, 0, "'g'"), -(1744, 0, "'e'"), -(1745, 0, "'.'"), -(1746, 0, "' '"), -(1747, 0, "'I'"), -(1748, 0, "'''"), -(1749, 0, "'l'"), -(1750, 0, "'l'"), -(1751, 0, "' '"), -(1752, 0, "'e'"), -(1753, 0, "'n'"), -(1754, 0, "'d'"), -(1755, 0, "' '"), -(1756, 0, "'u'"), -(1757, 0, "'p'"), -(1758, 0, "' '"), -(1759, 0, "'l'"), -(1760, 0, "'o'"), -(1761, 0, "'o'"), -(1762, 0, "'i'"), -(1763, 0, "'n'"), -(1764, 0, "'g'"), -(1765, 0, "' '"), -(1765, 1, "''"), -(1764, 1, "''"), -(1763, 1, "''"), -(1762, 1, "''"), -(1762, 0, "'k'"), -(1763, 0, "'i'"), -(1764, 0, "'n'"), -(1765, 0, "'g'"), -(1766, 0, "' '"), -(1767, 0, "'a'"), -(1768, 0, "'t'"), -(1769, 0, "' '"), -(1770, 0, "'a'"), -(1771, 0, "' '"), -(1772, 0, "'d'"), -(1773, 0, "'i'"), -(1774, 0, "'f'"), -(1775, 0, "'f'"), -(1776, 0, "'e'"), -(1777, 0, "'r'"), -(1778, 0, "'e'"), -(1779, 0, "'n'"), -(1780, 0, "'t'"), -(1781, 0, "' '"), -(1782, 0, "'f'"), -(1783, 0, "'r'"), -(1783, 1, "''"), -(1782, 1, "''"), -(1782, 0, "'v'"), -(1783, 0, "'e'"), -(1784, 0, "'r'"), -(1685, 100, "''"), -(1684, 1, "''"), -(1684, 0, "'n'"), -(1685, 0, "'n'"), -(1209, 0, "' '"), -(1210, 0, "'N'"), -(1211, 0, "'o'"), -(1212, 0, "'!'"), -(1213, 0, "' '"), -(1214, 0, "'S'"), -(1215, 0, "'t'"), -(1216, 0, "'o'"), -(1217, 0, "'p'"), -(1218, 0, "' '"), -(1219, 0, "'i'"), -(1220, 0, "'t'"), -(1221, 0, "'!'"), -(1300, 18, "'l'"), -(1301, 0, "'a'"), -(1302, 0, "'n'"), -(1303, 0, "'g'"), -(1304, 0, "'u'"), -(1305, 0, "'a'"), -(1306, 0, "'g'"), -(1307, 0, "'e'"), -(1308, 0, "' '"), -(1309, 0, "'p'"), -(1310, 0, "'r'"), -(1311, 0, "'o'"), -(1312, 0, "'b'"), -(1313, 0, "'l'"), -(1314, 0, "'e'"), -(1315, 0, "'m'"), -(1433, 0, "'c'"), -(1434, 0, "'o'"), -(1435, 0, "'n'"), -(1436, 0, "'c'"), -(1437, 0, "'u'"), -(1438, 0, "'r'"), -(1439, 0, "'r'"), -(1440, 0, "'e'"), -(1441, 0, "'n'"), -(1442, 0, "'t'"), -(1443, 0, "' '"), -(1444, 0, "'e'"), -(1445, 0, "'d'"), -(1446, 0, "'i'"), -(1447, 0, "'t'"), -(1448, 0, "'i'"), -(1449, 0, "'n'"), -(1450, 0, "'g'"), -(1451, 0, "' '"), -(1603, 4, "'t'"), -(1604, 0, "'h'"), -(1605, 0, "'a'"), -(1606, 0, "'t'"), -(1607, 6, "''"), -(1606, 1, "''"), -(1605, 1, "''"), -(1604, 1, "''"), -(1603, 1, "''"), -(1602, 1, "''"), -(1601, 1, "''"), -(1600, 1, "''"), -(1599, 1, "''"), -(1702, 0, "'M'"), -(1703, 0, "'y'"), -(1704, 0, "' '"), -(1705, 0, "'t'"), -(1706, 0, "'e'"), -(1707, 0, "'x'"), -(1708, 0, "'t'"), -(1709, 0, "' '"), -(1710, 0, "'O'"), -(1711, 0, "'T'"), -(1712, 0, "' '"), -(1713, 0, "'a'"), -(1714, 0, "'l'"), -(1715, 0, "'g'"), -(1716, 0, "'o'"), -(1717, 0, "'r'"), -(1718, 0, "'i'"), -(1719, 0, "'t'"), -(1720, 0, "'h'"), -(1721, 0, "'m'"), -(1722, 0, "' '"), -(1723, 0, "'f'"), -(1724, 0, "'r'"), -(1725, 0, "'o'"), -(1726, 0, "'m'"), -(1727, 0, "' '"), -(1728, 0, "'a'"), -(1729, 0, "' '"), -(1730, 0, "'f'"), -(1731, 0, "'e'"), -(1732, 0, "'w'"), -(1733, 0, "' '"), -(1734, 0, "'y'"), -(1735, 0, "'e'"), -(1736, 0, "'a'"), -(1737, 0, "'r'"), -(1738, 0, "'s'"), -(1739, 0, "' '"), -(1740, 0, "'a'"), -(1741, 0, "'g'"), -(1742, 0, "'o'"), -(1702, 0, "'I'"), -(1703, 0, "'''"), -(1704, 0, "'v'"), -(1705, 0, "'e'"), -(1706, 0, "' '"), -(1707, 0, "'i'"), -(1708, 0, "'m'"), -(1709, 0, "'p'"), -(1710, 0, "'l'"), -(1711, 0, "'e'"), -(1712, 0, "'m'"), -(1713, 0, "'e'"), -(1714, 0, "'n'"), -(1715, 0, "'t'"), -(1716, 0, "'e'"), -(1717, 0, "'d'"), -(1718, 0, "' '"), -(1719, 3, "''"), -(1719, 0, "'p'"), -(1720, 0, "'l'"), -(1721, 0, "'a'"), -(1722, 0, "'i'"), -(1723, 0, "'n'"), -(1724, 0, "'-'"), -(1743, 20, "''"), -(1743, 0, "'i'"), -(1744, 0, "'n'"), -(1745, 0, "' '"), -(1746, 0, "'a'"), -(1747, 0, "' '"), -(1748, 0, "'b'"), -(1749, 0, "'u'"), -(1750, 0, "'n'"), -(1751, 0, "'c'"), -(1752, 0, "'h'"), -(1753, 0, "' '"), -(1754, 0, "'o'"), -(1755, 0, "'f'"), -(1756, 0, "' '"), -(1757, 0, "'d'"), -(1758, 0, "'i'"), -(1759, 0, "'f'"), -(1760, 0, "'f'"), -(1761, 0, "'e'"), -(1762, 0, "'r'"), -(1763, 0, "'e'"), -(1764, 0, "'n'"), -(1765, 0, "'t'"), -(1766, 0, "' '"), -(1767, 0, "'l'"), -(1768, 0, "'a'"), -(1769, 0, "'n'"), -(1770, 0, "'g'"), -(1771, 0, "'u'"), -(1772, 0, "'a'"), -(1773, 0, "'g'"), -(1774, 0, "'e'"), -(1775, 0, "'s'"), -(1776, 0, "' '"), -(1776, 1, "''"), -(1776, 0, "' '"), -(1777, 0, "'-'"), -(1778, 0, "' '"), -(1779, 0, "'I'"), -(1780, 0, "' '"), -(1781, 0, "'u'"), -(1782, 0, "'s'"), -(1783, 0, "'e'"), -(1784, 0, "' '"), -(1785, 0, "'i'"), -(1786, 0, "'t'"), -(1787, 0, "' '"), -(1788, 0, "'a'"), -(1789, 0, "'s'"), -(1790, 0, "' '"), -(1791, 0, "'a'"), -(1792, 0, "' '"), -(1793, 0, "'w'"), -(1794, 0, "'a'"), -(1795, 0, "'y'"), -(1796, 0, "' '"), -(1797, 0, "'t'"), -(1798, 0, "'o'"), -(1799, 0, "' '"), -(1800, 0, "'g'"), -(1801, 0, "'u'"), -(1802, 0, "'a'"), -(1803, 0, "'g'"), -(1804, 0, "'e'"), -(1800, 5, "'g'"), -(1801, 0, "'e'"), -(1802, 0, "'t'"), -(1803, 0, "' '"), -(1804, 0, "'a'"), -(1805, 0, "' '"), -(1806, 0, "'s'"), -(1807, 0, "'e'"), -(1808, 0, "'n'"), -(1809, 0, "'s'"), -(1810, 0, "'e'"), -(1811, 0, "' '"), -(1812, 0, "'o'"), -(1813, 0, "'f'"), -(1814, 0, "' '"), -(1815, 0, "'a'"), -(1816, 0, "' '"), -(1817, 0, "'l'"), -(1818, 0, "'a'"), -(1819, 0, "'n'"), -(1820, 0, "'g'"), -(1821, 0, "'u'"), -(1822, 0, "'a'"), -(1823, 0, "'g'"), -(1824, 0, "'e'"), -(1825, 0, "' '"), -(1826, 0, "'w'"), -(1826, 1, "''"), -(1826, 0, "'I'"), -(1827, 0, "' '"), -(1828, 0, "'w'"), -(1829, 0, "'a'"), -(1830, 0, "'n'"), -(1831, 0, "'t'"), -(1832, 0, "' '"), -(1833, 0, "'t'"), -(1834, 0, "'o'"), -(1835, 0, "' '"), -(1836, 0, "'l'"), -(1837, 0, "'e'"), -(1838, 0, "'a'"), -(1839, 0, "'r'"), -(1840, 0, "'n'"), -(1724, 1, "''"), -(1724, 0, "' '"), -(1732, 10, "''"), -(1719, 0, "'a'"), -(1720, 0, "' '"), -(1721, 0, "'s'"), -(1722, 0, "'i'"), -(1723, 0, "'m'"), -(1724, 0, "'p'"), -(1725, 0, "'l'"), -(1726, 0, "'e'"), -(1727, 0, "' '"), -(1741, 0, "' '"), -(1742, 0, "'a'"), -(1743, 0, "'l'"), -(1744, 0, "'g'"), -(1745, 0, "'o'"), -(1746, 0, "'r'"), -(1747, 0, "'i'"), -(1748, 0, "'t'"), -(1749, 0, "'h'"), -(1750, 0, "'m'"), -(1786, 1, "''"), -(1785, 1, "''"), -(1785, 0, "'.'"), -(1849, 0, "'.'"), -(1850, 0, "' '"), -(1785, 66, "','"), -(1786, 0, "' '"), -(1787, 0, "'b'"), -(1788, 0, "'e'"), -(1789, 0, "'c'"), -(1790, 0, "'a'"), -(1791, 0, "'u'"), -(1792, 0, "'s'"), -(1793, 0, "'e'"), -(1794, 0, "' '"), -(1795, 0, "'I'"), -(1796, 0, "' '"), -(1797, 0, "'g'"), -(1798, 0, "'o'"), -(1799, 0, "'t'"), -(1800, 0, "' '"), -(1801, 0, "'c'"), -(1802, 0, "'u'"), -(1803, 0, "'r'"), -(1804, 0, "'i'"), -(1805, 0, "'o'"), -(1806, 0, "'u'"), -(1807, 0, "'s'"), -(1808, 0, "' '"), -(1809, 0, "'w'"), -(1810, 0, "'h'"), -(1811, 0, "'a'"), -(1812, 0, "'t'"), -(1813, 0, "' '"), -(1814, 0, "'i'"), -(1815, 0, "'t'"), -(1816, 0, "' '"), -(1817, 0, "'w'"), -(1818, 0, "'o'"), -(1819, 0, "'u'"), -(1820, 0, "'l'"), -(1821, 0, "'d'"), -(1822, 0, "' '"), -(1823, 0, "'l'"), -(1824, 0, "'o'"), -(1825, 0, "'o'"), -(1826, 0, "'k'"), -(1827, 0, "' '"), -(1828, 0, "'l'"), -(1814, 15, "'t'"), -(1815, 0, "'h'"), -(1816, 0, "'e'"), -(1817, 0, "' '"), -(1818, 0, "'s'"), -(1819, 0, "'a'"), -(1820, 0, "'m'"), -(1821, 0, "'e'"), -(1822, 0, "' '"), -(1823, 0, "'c'"), -(1824, 0, "'o'"), -(1825, 0, "'d'"), -(1826, 0, "'e'"), -(1827, 0, "' '"), -(1828, 0, "'w'"), -(1829, 0, "'o'"), -(1830, 0, "'u'"), -(1831, 0, "'l'"), -(1832, 0, "'d'"), -(1833, 0, "' '"), -(1834, 0, "'l'"), -(1835, 0, "'o'"), -(1836, 0, "'o'"), -(1837, 0, "'k'"), -(1838, 0, "' '"), -(1839, 0, "'l'"), -(1840, 0, "'i'"), -(1841, 0, "'k'"), -(1842, 0, "'e'"), -(1843, 0, "' '"), -(1844, 0, "'i'"), -(1845, 0, "'n'"), -(1846, 0, "' '"), -(1847, 0, "'C'"), -(1848, 0, "','"), -(1849, 0, "' '"), -(1850, 0, "'a'"), -(1851, 0, "'n'"), -(1852, 0, "'d'"), -(1853, 0, "' '"), -(1854, 0, "'J'"), -(1855, 0, "'a'"), -(1856, 0, "'v'"), -(1857, 0, "'a'"), -(1858, 0, "'s'"), -(1859, 0, "'c'"), -(1860, 0, "'r'"), -(1861, 0, "'i'"), -(1862, 0, "'p'"), -(1863, 0, "'t'"), -(1864, 0, "','"), -(1865, 0, "' '"), -(1866, 0, "'a'"), -(1867, 0, "'n'"), -(1868, 0, "'d'"), -(1869, 0, "' '"), -(1870, 0, "'T'"), -(1871, 0, "'y'"), -(1872, 0, "'p'"), -(1873, 0, "'e'"), -(1874, 0, "'s'"), -(1875, 0, "'c'"), -(1876, 0, "'r'"), -(1877, 0, "'i'"), -(1878, 0, "'p'"), -(1879, 0, "'t'"), -(1880, 0, "','"), -(1881, 0, "' '"), -(1882, 0, "'a'"), -(1883, 0, "'n'"), -(1884, 0, "'d'"), -(1870, 15, "'s'"), -(1871, 0, "'w'"), -(1872, 0, "'i'"), -(1873, 0, "'f'"), -(1870, 4, "'S'"), -(1871, 0, "'w'"), -(1872, 0, "'i'"), -(1873, 0, "'f'"), -(1874, 0, "'t'"), -(1875, 0, "' '"), -(1876, 0, "'a'"), -(1877, 0, "'n'"), -(1878, 0, "'d'"), -(1879, 0, "' '"), -(1880, 0, "'G'"), -(1881, 0, "'o'"), -(1882, 0, "' '"), -(1883, 0, "'a'"), -(1884, 0, "'n'"), -(1885, 0, "'d'"), -(1886, 0, "' '"), -(1887, 0, "'r'"), -(1888, 0, "'u'"), -(1870, 10, "''"), -(1879, 0, "'s'"), -(1880, 0, "'t'"), -(1877, 1, "''"), -(1877, 0, "'R'"), -(1881, 0, "'.'"), -(1882, 0, "' '"), -(1883, 0, "'S'"), -(1884, 0, "'a'"), -(1885, 0, "'m'"), -(1886, 0, "'e'"), -(1887, 0, "' '"), -(1888, 0, "'a'"), -(1889, 0, "'l'"), -(1890, 0, "'g'"), -(1891, 0, "'o'"), -(1892, 0, "'r'"), -(1893, 0, "'i'"), -(1894, 0, "'t'"), -(1895, 0, "'h'"), -(1896, 0, "'m'"), -(1883, 14, "'T'"), -(1884, 0, "'h'"), -(1885, 0, "'e'"), -(1886, 0, "' '"), -(1887, 0, "'s'"), -(1888, 0, "'a'"), -(1889, 0, "'m'"), -(1890, 0, "'e'"), -(1891, 0, "' '"), -(1883, 9, "'I'"), -(1884, 0, "'t'"), -(1885, 0, "'s'"), -(1886, 0, "' '"), -(1887, 0, "'t'"), -(1888, 0, "'h'"), -(1889, 0, "'e'"), -(1890, 0, "' '"), -(1891, 0, "'s'"), -(1892, 0, "'a'"), -(1893, 0, "'m'"), -(1894, 0, "'e'"), -(1895, 0, "' '"), -(1896, 0, "'a'"), -(1897, 0, "'l'"), -(1898, 0, "'g'"), -(1899, 0, "'o'"), -(1900, 0, "'r'"), -(1901, 0, "'i'"), -(1902, 0, "'t'"), -(1903, 0, "'h'"), -(1904, 0, "'m'"), -(1905, 0, "' '"), -(1906, 0, "'i'"), -(1907, 0, "'n'"), -(1908, 0, "' '"), -(1909, 0, "'e'"), -(1910, 0, "'a'"), -(1911, 0, "'c'"), -(1912, 0, "'h'"), -(1913, 0, "' '"), -(1914, 0, "'p'"), -(1915, 0, "'l'"), -(1916, 0, "'a'"), -(1917, 0, "'c'"), -(1918, 0, "'e'"), -(1919, 0, "'.'"), -(1920, 0, "' '"), -(1921, 0, "'T'"), -(1922, 0, "'h'"), -(1923, 0, "'e'"), -(1924, 0, "' '"), -(1925, 0, "'t'"), -(1926, 0, "'r'"), -(1927, 0, "'a'"), -(1928, 0, "'n'"), -(1929, 0, "'s'"), -(1930, 0, "'f'"), -(1931, 0, "'o'"), -(1932, 0, "'r'"), -(1933, 0, "'m'"), -(1700, 0, "'n'"), -(1701, 0, "'n'"), -(1702, 0, "'W'"), -(1703, 0, "'h'"), -(1704, 0, "'e'"), -(1705, 0, "'n'"), -(1706, 0, "' '"), -(1707, 0, "'w'"), -(1708, 0, "'e'"), -(1709, 0, "' '"), -(1710, 0, "'s'"), -(1711, 0, "'a'"), -(1712, 0, "'y'"), -(1713, 0, "' '"), -(1714, 0, "'a'"), -(1715, 0, "' '"), -(1716, 0, "'s'"), -(1717, 0, "'y'"), -(1718, 0, "'s'"), -(1719, 0, "'t'"), -(1720, 0, "'e'"), -(1721, 0, "'m'"), -(1722, 0, "' '"), -(1723, 0, "'i'"), -(1724, 0, "'s'"), -(1725, 0, "' '"), -(1716, 10, "''"), -(1715, 1, "''"), -(1715, 0, "'n'"), -(1716, 0, "' '"), -(1717, 0, "'''"), -(1718, 0, "'O'"), -(1718, 1, "''"), -(1717, 1, "''"), -(1716, 1, "''"), -(1716, 0, "' '"), -(1717, 0, "'''"), -(1718, 0, "'a'"), -(1719, 0, "'l'"), -(1720, 0, "'g'"), -(1721, 0, "'o'"), -(1722, 0, "'r'"), -(1723, 0, "'i'"), -(1724, 0, "'t'"), -(1725, 0, "'h'"), -(1726, 0, "'m'"), -(1727, 0, "'''"), -(1728, 0, "' '"), -(1729, 0, "'i'"), -(1730, 0, "'s'"), -(1731, 0, "' '"), -(1732, 0, "'s'"), -(1733, 0, "'l'"), -(1734, 0, "'o'"), -(1735, 0, "'w'"), -(1736, 0, "','"), -(1737, 0, "' '"), -(1738, 0, "'w'"), -(1739, 0, "'h'"), -(1740, 0, "'a'"), -(1741, 0, "'t'"), -(1742, 0, "' '"), -(1743, 0, "'a'"), -(1744, 0, "'r'"), -(1745, 0, "'e'"), -(1746, 0, "' '"), -(1747, 0, "'w'"), -(1748, 0, "'e'"), -(1749, 0, "' '"), -(1750, 0, "'e'"), -(1751, 0, "'v'"), -(1752, 0, "'e'"), -(1753, 0, "'n'"), -(1754, 0, "' '"), -(1755, 0, "'t'"), -(1756, 0, "'a'"), -(1757, 0, "'l'"), -(1758, 0, "'k'"), -(1759, 0, "'i'"), -(1760, 0, "'n'"), -(1761, 0, "'g'"), -(1762, 0, "' '"), -(1763, 0, "'a'"), -(1764, 0, "'b'"), -(1765, 0, "'o'"), -(1766, 0, "'u'"), -(1767, 0, "'t'"), -(1768, 0, "'?'"), -(1771, 4, "'I'"), -(1771, 0, "'A'"), -(1772, 0, "' '"), -(1773, 0, "'f'"), -(1774, 0, "'e'"), -(1775, 0, "'w'"), -(1776, 0, "' '"), -(1777, 0, "'y'"), -(1778, 0, "'e'"), -(1779, 0, "'a'"), -(1780, 0, "'r'"), -(1781, 0, "'s'"), -(1782, 0, "' '"), -(1783, 0, "'a'"), -(1784, 0, "'g'"), -(1785, 0, "'o'"), -(1786, 0, "' '"), -(1801, 1, "'t'"), -(1802, 0, "'h'"), -(1801, 2, "'a'"), -(1869, 7, "'a'"), -(1870, 0, "'f'"), -(1871, 0, "'t'"), -(1872, 0, "'e'"), -(1873, 0, "'r'"), -(1874, 2, "''"), -(1874, 4, "'g'"), -(1875, 0, "' '"), -(1875, 1, "''"), -(1874, 1, "''"), -(1874, 0, "' '"), -(1875, 0, "'g'"), -(1876, 0, "'e'"), -(1877, 0, "'t'"), -(1878, 0, "'t'"), -(1879, 0, "'i'"), -(1880, 0, "'n'"), -(1881, 0, "'g'"), -(1896, 3, "'t'"), -(1897, 0, "'h'"), -(1898, 0, "'e'"), -(1898, 1, "''"), -(1898, 0, "'a'"), -(1899, 0, "'t'"), -(1900, 5, "''"), -(1921, 3, "' '"), -(1922, 0, "'t'"), -(1923, 0, "'r'"), -(1924, 0, "'a'"), -(1925, 0, "'n'"), -(1926, 0, "'s'"), -(1927, 0, "'l'"), -(1928, 0, "'a'"), -(1929, 0, "'t'"), -(1930, 0, "'e'"), -(1931, 0, "'d'"), -(1932, 0, "' '"), -(1933, 0, "'i'"), -(1934, 0, "'n'"), -(1935, 0, "'t'"), -(1936, 0, "'o'"), -(1974, 51, "''"), -(1974, 0, "'T'"), -(1975, 0, "'h'"), -(1976, 0, "'e'"), -(1977, 0, "' '"), -(1978, 0, "'s'"), -(1979, 0, "'e'"), -(1980, 0, "'m'"), -(1981, 0, "'a'"), -(1982, 0, "'n'"), -(1983, 0, "'t'"), -(1984, 0, "'i'"), -(1985, 0, "'c'"), -(1986, 0, "'s'"), -(1987, 0, "' '"), -(1988, 0, "'a'"), -(1989, 0, "'r'"), -(1990, 0, "'e'"), -(1991, 0, "' '"), -(1992, 0, "'t'"), -(1993, 0, "'h'"), -(1994, 0, "'e'"), -(1995, 0, "' '"), -(1996, 0, "'s'"), -(1997, 0, "'a'"), -(1998, 0, "'m'"), -(1999, 0, "'e'"), -(2000, 0, "'.'"), -(2001, 0, "' '"), -(2002, 0, "'T'"), -(2003, 0, "'h'"), -(2004, 0, "'e'"), -(2005, 0, "' '"), -(2006, 0, "'p'"), -(2007, 0, "'e'"), -(2008, 0, "'r'"), -(2009, 0, "'f'"), -(2010, 0, "'o'"), -(2011, 0, "'r'"), -(2012, 0, "'m'"), -(2013, 0, "'a'"), -(2014, 0, "'n'"), -(2015, 0, "'c'"), -(2016, 0, "'e'"), -(2017, 0, "' '"), -(2018, 0, "'w'"), -(2019, 0, "'a'"), -(2020, 0, "'s'"), -(2021, 0, "' '"), -(2022, 0, "'a'"), -(2023, 0, "'b'"), -(2024, 0, "'s'"), -(2025, 0, "'o'"), -(2026, 0, "'l'"), -(2027, 0, "'u'"), -(2028, 0, "'t'"), -(2029, 0, "'e'"), -(2030, 0, "'l'"), -(2031, 0, "'y'"), -(2032, 0, "' '"), -(2033, 0, "'n'"), -(2034, 0, "'o'"), -(2035, 0, "'t'"), -(2036, 0, "'.'"), -(2037, 0, "' '"), -(2038, 0, "'I'"), -(2039, 0, "'n'"), -(2040, 0, "' '"), -(2041, 0, "'j'"), -(2042, 0, "'a'"), -(2043, 0, "'v'"), -(2044, 0, "'s'"), -(2044, 1, "''"), -(2044, 0, "'a'"), -(2045, 0, "'s'"), -(2046, 0, "'c'"), -(2047, 0, "'r'"), -(2048, 0, "'i'"), -(2049, 0, "'p'"), -(2050, 0, "'t'"), -(2051, 0, "' '"), -(2052, 0, "'I'"), -(2053, 0, "' '"), -(2054, 0, "'c'"), -(2055, 0, "'o'"), -(2056, 0, "'u'"), -(2057, 0, "'l'"), -(2058, 0, "'d'"), -(2059, 0, "' '"), -(2060, 0, "'r'"), -(2061, 0, "'u'"), -(2062, 0, "'n'"), -(2063, 0, "' '"), -(2064, 0, "'m'"), -(2065, 0, "'y'"), -(2066, 0, "' '"), -(2067, 0, "'t'"), -(2068, 0, "'r'"), -(2069, 0, "'a'"), -(2070, 0, "'n'"), -(2071, 0, "'s'"), -(2072, 0, "'f'"), -(2073, 0, "'o'"), -(2074, 0, "'r'"), -(2075, 0, "'m'"), -(2076, 0, "' '"), -(2077, 0, "'f'"), -(2078, 0, "'u'"), -(2079, 0, "'n'"), -(2080, 0, "'c'"), -(2081, 0, "'t'"), -(2082, 0, "'i'"), -(2083, 0, "'o'"), -(2084, 0, "'n'"), -(2085, 0, "' '"), -(2086, 0, "'a'"), -(2087, 0, "'b'"), -(2088, 0, "'u'"), -(2089, 0, "'o'"), -(2090, 0, "'t'"), -(2090, 1, "''"), -(2089, 1, "''"), -(2088, 1, "''"), -(2088, 0, "'o'"), -(2089, 0, "'u'"), -(2090, 0, "'t'"), -(2091, 0, "' '"), -(2092, 0, "'1'"), -(2093, 0, "'0'"), -(2094, 0, "'0'"), -(2095, 0, "'0'"), -(2095, 1, "''"), -(2095, 0, "' '"), -(2096, 0, "'0'"), -(2097, 0, "'0'"), -(2098, 0, "'0'"), -(2099, 0, "' '"), -(2100, 0, "'t'"), -(2101, 0, "'i'"), -(2102, 0, "'m'"), -(2103, 0, "'e'"), -(2104, 0, "'s'"), -(2105, 0, "' '"), -(2106, 0, "'p'"), -(2107, 0, "'e'"), -(2108, 0, "'r'"), -(2109, 0, "' '"), -(2110, 0, "'s'"), -(2111, 0, "'e'"), -(2112, 0, "'c'"), -(2113, 0, "'o'"), -(2114, 0, "'n'"), -(2115, 0, "'d'"), -(2116, 0, "'.'"), -(2117, 0, "' '"), -(2118, 0, "'N'"), -(2119, 0, "'o'"), -(2120, 0, "'t'"), -(2121, 0, "' '"), -(2122, 0, "'b'"), -(2123, 0, "'a'"), -(2124, 0, "'d'"), -(2125, 0, "'!'"), -(2126, 0, "' '"), -(2127, 0, "'B'"), -(2128, 0, "'u'"), -(2129, 0, "'t'"), -(2130, 0, "' '"), -(2131, 0, "'t'"), -(2132, 0, "'h'"), -(2133, 0, "'e'"), -(2134, 0, "' '"), -(2135, 0, "'s'"), -(2136, 0, "'a'"), -(2137, 0, "'m'"), -(2138, 0, "'e'"), -(2139, 0, "' '"), -(2140, 0, "'c'"), -(2141, 0, "'o'"), -(2142, 0, "'d'"), -(2143, 0, "'e'"), -(2140, 4, "'f'"), -(2141, 0, "'u'"), -(2142, 0, "'n'"), -(2143, 0, "'c'"), -(2144, 0, "'t'"), -(2145, 0, "'i'"), -(2146, 0, "'o'"), -(2147, 0, "'n'"), -(2148, 0, "' '"), -(2149, 0, "'i'"), -(2150, 0, "'n'"), -(2151, 0, "' '"), -(2152, 0, "'C'"), -(2153, 0, "' '"), -(2154, 0, "'r'"), -(2155, 0, "'a'"), -(2156, 0, "'n'"), -(2157, 0, "' '"), -(2158, 0, "'a'"), -(2159, 0, "'t'"), -(2160, 0, "' '"), -(2161, 0, "'a'"), -(2162, 0, "' '"), -(2163, 0, "'r'"), -(2164, 0, "'a'"), -(2165, 0, "'t'"), -(2166, 0, "'e'"), -(2167, 0, "' '"), -(2168, 0, "'o'"), -(2169, 0, "'f'"), -(2170, 0, "' '"), -(2171, 0, "'2'"), -(2172, 0, "'0'"), -(2173, 0, "'M'"), -(2174, 0, "'/'"), -(2175, 0, "'s'"), -(2176, 0, "'e'"), -(2177, 0, "'c'"), -(2178, 0, "'o'"), -(2179, 0, "'n'"), -(2180, 0, "'d'"), -(2181, 0, "'.'"), -(2154, 0, "'c'"), -(2155, 0, "'o'"), -(2156, 0, "'u'"), -(2157, 0, "'l'"), -(2158, 0, "'d'"), -(2159, 0, "' '"), -(2160, 16, "''"), -(2160, 0, "'d'"), -(2161, 0, "'o'"), -(2160, 3, "'r'"), -(2161, 0, "'u'"), -(2162, 0, "'n'"), -(2163, 0, "' '"), -(2167, 0, "' '"), -(2168, 0, "'t'"), -(2169, 0, "'i'"), -(2170, 0, "'m'"), -(2171, 0, "'e'"), -(2172, 0, "'s'"), -(2173, 1, "''"), -(2173, 0, "' '"), -(2174, 0, "'p'"), -(2175, 0, "'e'"), -(2176, 0, "'r'"), -(2177, 0, "' '"), -(2185, 0, "' '"), -(2186, 0, "'2'"), -(2187, 0, "'0'"), -(2188, 0, "'0'"), -(2189, 0, "'x'"), -(2190, 0, "' '"), -(2191, 0, "'f'"), -(2192, 0, "'a'"), -(2193, 0, "'s'"), -(2194, 0, "'t'"), -(2195, 0, "'e'"), -(2196, 0, "'r'"), -(2197, 0, "'.'"), -(2198, 0, "' '"), -(2199, 0, "'W'"), -(2200, 0, "'o'"), -(2201, 0, "'w'"), -(2202, 0, "'.'"), -(1769, 0, "' '"), -(1770, 0, "'M'"), -(1771, 0, "'r'"), -(1772, 0, "' '"), -(1770, 3, "''"), -(1769, 1, "''"), -(1702, 0, "'S'"), -(1703, 0, "'o'"), -(1704, 0, "' '"), -(1705, 1, "''"), -(1705, 0, "'w'"), -(1705, 1, "''"), -(1705, 0, "'W'"), -(1704, 1, "''"), -(1702, 2, "''"), -(1769, 0, "' '"), -(1770, 0, "'('"), -(1771, 0, "'I'"), -(1772, 0, "'''"), -(1772, 1, "''"), -(1772, 0, "'''"), -(1773, 0, "'m'"), -(1774, 0, "' '"), -(1775, 0, "'l'"), -(1776, 0, "'o'"), -(1777, 0, "'o'"), -(1778, 0, "'k'"), -(1779, 0, "'i'"), -(1780, 0, "'n'"), -(1781, 0, "'g'"), -(1782, 0, "' '"), -(1783, 0, "'a'"), -(1784, 0, "'t'"), -(1785, 0, "' '"), -(1786, 0, "'*'"), -(1787, 0, "'y'"), -(1788, 0, "'o'"), -(1789, 0, "'u'"), -(1790, 0, "'*'"), -(1791, 0, "' '"), -(1792, 0, "'m'"), -(1793, 0, "'r'"), -(1794, 0, "' '"), -(1794, 1, "''"), -(1793, 1, "''"), -(1792, 1, "''"), -(1792, 0, "'M'"), -(1793, 0, "'r'"), -(1794, 0, "' '"), -(1795, 0, "'F'"), -(1796, 0, "'r'"), -(1797, 0, "'e'"), -(1798, 0, "'n'"), -(1799, 0, "'c'"), -(1800, 0, "'h'"), -(1801, 0, "' '"), -(1802, 0, "'S'"), -(1803, 0, "'i'"), -(1804, 0, "'c'"), -(1805, 0, "'n'"), -(1805, 1, "''"), -(1804, 1, "''"), -(1803, 1, "''"), -(1803, 0, "'c'"), -(1804, 0, "'i'"), -(1805, 0, "'e'"), -(1806, 0, "'n'"), -(1807, 0, "'t'"), -(1808, 0, "'i'"), -(1809, 0, "'s'"), -(1810, 0, "'t'"), -(1811, 0, "')'"), -(1812, 0, "'.'"), -(1802, 9, "'C'"), -(1803, 0, "'S'"), -(1804, 0, "' '"), -(1805, 0, "'R'"), -(1806, 0, "'e'"), -(1807, 0, "'s'"), -(1808, 0, "'e'"), -(1809, 0, "'a'"), -(1810, 0, "'r'"), -(1811, 0, "'c'"), -(1812, 0, "'h'"), -(1813, 0, "'e'"), -(1814, 0, "'r'"), -(1815, 0, "'!'"), -(1819, 0, "'n'"), -(1820, 0, "'W'"), -(1821, 0, "'h'"), -(1822, 0, "'e'"), -(1823, 0, "'n'"), -(1824, 0, "' '"), -(1820, 5, "'S'"), -(1821, 0, "'o'"), -(1822, 0, "'m'"), -(1823, 0, "'e'"), -(1824, 0, "'t'"), -(1825, 0, "'i'"), -(1826, 0, "'m'"), -(1827, 0, "'e'"), -(1828, 0, "'s'"), -(1829, 0, "' '"), -(1830, 0, "'w'"), -(1831, 0, "'h'"), -(1832, 0, "'e'"), -(1833, 0, "'n'"), -(1834, 0, "' '"), -(1835, 0, "'I'"), -(1836, 0, "' '"), -(1837, 0, "'p'"), -(1838, 0, "'i'"), -(1839, 0, "'c'"), -(1840, 0, "'k'"), -(1841, 0, "' '"), -(1842, 0, "'u'"), -(1843, 0, "'p'"), -(1844, 0, "' '"), -(1845, 0, "'a'"), -(1846, 0, "' '"), -(1847, 0, "'n'"), -(1848, 0, "'e'"), -(1849, 0, "'w'"), -(1850, 0, "' '"), -(1851, 0, "'l'"), -(1852, 0, "'a'"), -(1853, 0, "'n'"), -(1854, 0, "'g'"), -(1855, 0, "'u'"), -(1856, 0, "'a'"), -(1857, 0, "'g'"), -(1858, 0, "'e'"), -(1859, 0, "' '"), -(1860, 0, "'I'"), -(1861, 0, "' '"), -(1862, 0, "'w'"), -(1863, 0, "'a'"), -(1864, 0, "'n'"), -(1865, 0, "'t'"), -(1866, 0, "' '"), -(1867, 0, "'t'"), -(1868, 0, "'o'"), -(1869, 0, "' '"), -(1870, 0, "'p'"), -(1871, 0, "'r'"), -(1872, 0, "'o'"), -(1873, 0, "'g'"), -(1874, 0, "'r'"), -(1875, 0, "'a'"), -(1876, 0, "'m'"), -(1877, 0, "' '"), -(1878, 0, "'s'"), -(1879, 0, "'o'"), -(1880, 0, "'m'"), -(1881, 0, "'e'"), -(1882, 0, "'t'"), -(1883, 0, "'h'"), -(1884, 0, "'i'"), -(1885, 0, "'n'"), -(1886, 0, "'g'"), -(1887, 0, "' '"), -(1888, 0, "'I'"), -(1889, 0, "' '"), -(1890, 0, "'a'"), -(1891, 0, "'l'"), -(1892, 0, "'r'"), -(1893, 0, "'e'"), -(1894, 0, "'a'"), -(1895, 0, "'d'"), -(1896, 0, "'y'"), -(1897, 0, "' '"), -(1898, 0, "'u'"), -(1899, 0, "'n'"), -(1900, 0, "'d'"), -(1901, 0, "'e'"), -(1902, 0, "'r'"), -(1903, 0, "'s'"), -(1904, 0, "'t'"), -(1905, 0, "'a'"), -(1906, 0, "'n'"), -(1907, 0, "'d'"), -(1908, 0, "' '"), -(1908, 1, "''"), -(1908, 0, "','"), -(1909, 0, "' '"), -(1910, 0, "'i'"), -(1911, 0, "'n'"), -(1912, 0, "' '"), -(1913, 0, "'o'"), -(1914, 0, "'r'"), -(1915, 0, "'d'"), -(1916, 0, "'e'"), -(1917, 0, "'r'"), -(1918, 0, "' '"), -(1919, 0, "'t'"), -(1920, 0, "'o'"), -(1921, 0, "' '"), -(1922, 0, "'g'"), -(1923, 0, "'e'"), -(1924, 0, "'t'"), -(1925, 0, "' '"), -(1926, 0, "'a'"), -(1927, 0, "' '"), -(1928, 0, "'s'"), -(1929, 0, "'e'"), -(1930, 0, "'n'"), -(1931, 0, "'s'"), -(1932, 0, "'e'"), -(1933, 0, "' '"), -(1934, 0, "'o'"), -(1935, 0, "'f'"), -(1936, 0, "' '"), -(1937, 0, "'t'"), -(1938, 0, "'h'"), -(1939, 0, "'i'"), -(1940, 0, "'n'"), -(1941, 0, "'g'"), -(1942, 0, "'s'"), -(1943, 0, "'.'"), -(1944, 0, "' '"), -(1945, 0, "'I'"), -(1946, 0, "' '"), -(1947, 0, "'t'"), -(1948, 0, "'r'"), -(1949, 0, "'a'"), -(1950, 0, "'n'"), -(1951, 0, "'s'"), -(1952, 0, "'l'"), -(1953, 0, "'a'"), -(1954, 0, "'t'"), -(1955, 0, "'e'"), -(1956, 0, "'d'"), -(1957, 0, "' '"), -(1820, 138, "'Sometimes when I pick up a new language I want to program something I already understand, in order to get a sense of things. I translated'"), -(1957, 31, "''"), -(1957, 0, "' '"), -(1958, 1, "'m'"), -(1959, 0, "'y'"), -(1945, 0, "'S'"), -(1946, 0, "'o'"), -(1947, 0, "' '"), -(1948, 0, "'I'"), -(1949, 0, "' '"), -(1949, 1, "''"), -(1948, 1, "''"), -(1949, 0, "' '"), -(1950, 0, "'e'"), -(1951, 0, "'n'"), -(1952, 0, "'d'"), -(1953, 0, "'e'"), -(1954, 0, "'d'"), -(1955, 0, "' '"), -(1956, 0, "'u'"), -(1957, 0, "'p'"), -(1968, 1, "''"), -(1967, 1, "''"), -(1967, 0, "'i'"), -(1968, 0, "'n'"), -(1969, 0, "'g'"), -(1995, 9, "'c'"), -(1996, 0, "'o'"), -(1997, 0, "'d'"), -(1998, 0, "'e'"), -(1999, 0, "' '"), -(2000, 0, "'i'"), -(2001, 0, "'n'"), -(2002, 0, "'t'"), -(2003, 0, "'o'"), -(2004, 3, "''"), -(2005, 101, "''"), -(2006, 1, "''"), -(2006, 4, "''"), -(2006, 0, "','"), -(2019, 4, "''"), -(2022, 4, "''"), -(2022, 0, "','"), -(2028, 0, "' '"), -(2029, 0, "'a'"), -(2030, 0, "'n'"), -(2031, 0, "'d'"), -(2032, 0, "' '"), -(2033, 0, "'S'"), -(2034, 0, "'w'"), -(2035, 0, "'i'"), -(2036, 0, "'f'"), -(2037, 0, "'t'"), -(2040, 26, "'S'"), -(2041, 0, "'a'"), -(2042, 0, "'m'"), -(2043, 0, "'e'"), -(2044, 0, "' '"), -(2045, 0, "'*'"), -(2046, 0, "'s'"), -(2047, 0, "'e'"), -(2048, 0, "'m'"), -(2049, 0, "'a'"), -(2050, 0, "'n'"), -(2051, 0, "'t'"), -(2052, 0, "'i'"), -(2053, 0, "'c'"), -(2054, 0, "'s'"), -(2055, 0, "'*'"), -(2056, 1, "''"), -(2056, 0, "'.'"), -(2057, 0, "' '"), -(2058, 0, "'S'"), -(2059, 0, "'a'"), -(2060, 0, "'m'"), -(2061, 0, "'e'"), -(2062, 0, "' '"), -(2063, 0, "'a'"), -(2064, 0, "'l'"), -(2065, 0, "'g'"), -(2066, 0, "'r'"), -(2067, 0, "'i'"), -(2067, 1, "''"), -(2066, 1, "''"), -(2045, 21, "'a'"), -(2046, 0, "'l'"), -(2047, 0, "'g'"), -(2048, 0, "'o'"), -(2049, 0, "'r'"), -(2050, 0, "'i'"), -(2051, 0, "'t'"), -(2052, 0, "'h'"), -(2053, 0, "'m'"), -(2054, 0, "' '"), -(2055, 0, "'-'"), -(2056, 0, "' '"), -(2057, 0, "'b'"), -(2058, 0, "'u'"), -(2059, 0, "'t'"), -(2061, 1, "''"), -(2061, 0, "'t'"), -(2080, 11, "''"), -(2084, 0, "' '"), -(2085, 0, "'e'"), -(2086, 0, "'v'"), -(2087, 0, "'e'"), -(2088, 0, "'n'"), -(2089, 0, "' '"), -(2090, 0, "'c'"), -(2091, 0, "'l'"), -(2092, 0, "'o'"), -(2093, 0, "'s'"), -(2094, 0, "'e'"), -(2155, 3, "''"), -(2154, 1, "''"), -(2154, 0, "'k'"), -(2154, 1, "''"), -(2154, 0, "' '"), -(2155, 0, "'0'"), -(2156, 0, "'0'"), -(2157, 0, "'0'"), -(2244, 0, "' '"), -(2245, 0, "'T'"), -(2246, 0, "'h'"), -(2247, 0, "'a'"), -(2248, 0, "'t'"), -(2249, 0, "'s'"), -(2267, 1, "''"), -(2267, 0, "'!'"), -(2268, 238, "''"), -(2268, 0, "'n'"), -(2269, 0, "'n'"), -(2270, 0, "'S'"), -(2270, 1, "''"), -(2270, 0, "'-'"), -(2271, 0, "'-'"), -(2272, 0, "'-'"), -(2273, 0, "'n'"), -(2274, 0, "'n'"), -(2275, 0, "'s'"), -(2276, 0, "'o'"), -(2277, 0, "' '"), -(2277, 1, "''"), -(2276, 1, "''"), -(2275, 1, "''"), -(2274, 1, "''"), -(2274, 0, "'n'"), -(2275, 0, "'S'"), -(2276, 0, "'o'"), -(2277, 0, "' '"), -(2277, 1, "''"), -(2276, 1, "''"), -(2275, 1, "''"), -(2275, 0, "'#'"), -(2276, 0, "'#'"), -(2277, 0, "' '"), -(2278, 0, "'A'"), -(2279, 0, "'u'"), -(2280, 0, "'t'"), -(2281, 0, "'o'"), -(2282, 0, "'m'"), -(2283, 0, "'e'"), -(2284, 0, "'r'"), -(2285, 0, "'g'"), -(2286, 0, "'e'"), -(2287, 0, "'n'"), -(2288, 0, "'n'"), -(2289, 0, "'S'"), -(2290, 0, "'o'"), -(2291, 0, "' '"), -(2292, 0, "'a'"), -(2293, 0, "'s'"), -(2294, 0, "' '"), -(2295, 0, "'y'"), -(2296, 0, "'o'"), -(2297, 0, "'u'"), -(2298, 0, "' '"), -(2299, 0, "'m'"), -(2300, 0, "'a'"), -(2301, 0, "'y'"), -(2302, 0, "' '"), -(2303, 0, "'n'"), -(2303, 1, "''"), -(2303, 0, "'k'"), -(2304, 0, "'n'"), -(2305, 0, "'o'"), -(2306, 0, "'w'"), -(2295, 0, "'['"), -(2308, 0, "']'"), -(2309, 0, "'('"), -(2310, 0, "')'"), -(2311, 0, "','"), -(2312, 0, "' '"), -(2313, 0, "'I'"), -(2314, 0, "'''"), -(2315, 0, "'v'"), -(2316, 0, "'e'"), -(2317, 0, "' '"), -(2318, 0, "'b'"), -(2319, 0, "'e'"), -(2320, 0, "'e'"), -(2321, 0, "'n'"), -(2322, 0, "' '"), -(2323, 0, "'p'"), -(2324, 0, "'l'"), -(2325, 0, "'a'"), -(2326, 0, "'y'"), -(2327, 0, "'i'"), -(2328, 0, "'n'"), -(2329, 0, "'g'"), -(2330, 0, "' '"), -(2331, 0, "'w'"), -(2332, 0, "'i'"), -(2333, 0, "'t'"), -(2334, 0, "'h'"), -(2335, 0, "' '"), -(2323, 13, "'g'"), -(2324, 0, "'e'"), -(2325, 0, "'t'"), -(2326, 0, "'t'"), -(2327, 0, "'i'"), -(2328, 0, "'n'"), -(2329, 0, "'g'"), -(2330, 0, "' '"), -(2331, 0, "'i'"), -(2332, 0, "'n'"), -(2333, 0, "'t'"), -(2334, 0, "'e'"), -(2335, 0, "'r'"), -(2336, 0, "'e'"), -(2337, 0, "'s'"), -(2338, 0, "'t'"), -(2339, 0, "'e'"), -(2340, 0, "'d'"), -(2341, 0, "' '"), -(2342, 0, "'i'"), -(2343, 0, "'n'"), -(2344, 0, "' '"), -(2345, 0, "'C'"), -(2346, 0, "'R'"), -(2347, 0, "'D'"), -(2348, 0, "'T'"), -(2349, 0, "' '"), -(2349, 1, "''"), -(2349, 0, "'s'"), -(2350, 0, "' '"), -(2351, 0, "'l'"), -(2352, 0, "'a'"), -(2353, 0, "'t'"), -(2354, 0, "'e'"), -(2355, 0, "'l'"), -(2356, 0, "'y'"), -(2357, 0, "'.'"), -(2358, 0, "' '"), -(2359, 0, "'M'"), -(2360, 0, "'o'"), -(2361, 0, "'s'"), -(2362, 0, "'t'"), -(2363, 0, "' '"), -(2364, 0, "'c'"), -(2364, 1, "''"), -(2364, 0, "'C'"), -(2365, 0, "'R'"), -(2366, 0, "'D'"), -(2367, 0, "'T'"), -(2368, 0, "'s'"), -(2369, 0, "' '"), -(2370, 0, "'a'"), -(2371, 0, "'r'"), -(2372, 0, "'e'"), -(2373, 0, "' '"), -(2374, 0, "'s'"), -(2375, 0, "'u'"), -(2376, 0, "'p'"), -(2377, 0, "'e'"), -(2378, 0, "'r'"), -(2379, 0, "' '"), -(2380, 0, "'s'"), -(2381, 0, "'l'"), -(2382, 0, "'o'"), -(2383, 0, "'w'"), -(2384, 0, "','"), -(2385, 0, "' '"), -(2386, 0, "'a'"), -(2387, 0, "'n'"), -(2388, 0, "'d'"), -(2389, 0, "' '"), -(2390, 0, "'I'"), -(2391, 0, "' '"), -(2392, 0, "'a'"), -(2393, 0, "'l'"), -(2394, 0, "'w'"), -(2395, 0, "'a'"), -(2396, 0, "'y'"), -(2397, 0, "'s'"), -(2398, 0, "' '"), -(2399, 0, "'c'"), -(2400, 0, "'h'"), -(2401, 0, "'a'"), -(2402, 0, "'l'"), -(2403, 0, "'k'"), -(2404, 0, "'e'"), -(2405, 0, "'d'"), -(2406, 0, "' '"), -(2407, 0, "'t'"), -(2408, 0, "'h'"), -(2409, 0, "'a'"), -(2410, 0, "'t'"), -(2411, 0, "' '"), -(2412, 0, "'u'"), -(2413, 0, "'p'"), -(2414, 0, "' '"), -(2415, 0, "'t'"), -(2416, 0, "'o'"), -(2417, 0, "' '"), -(2399, 19, "'a'"), -(2400, 0, "'s'"), -(2401, 0, "'s'"), -(2402, 0, "'u'"), -(2403, 0, "'m'"), -(2404, 0, "'e'"), -(2405, 0, "'d'"), -(2406, 0, "' '"), -(2407, 0, "'t'"), -(2408, 0, "'h'"), -(2409, 0, "'a'"), -(2410, 0, "'t'"), -(2411, 0, "' '"), -(2412, 0, "'a'"), -(2413, 0, "'w'"), -(2413, 1, "''"), -(2412, 1, "''"), -(2412, 0, "'w'"), -(2413, 0, "'a'"), -(2414, 0, "'s'"), -(2415, 0, "' '"), -(2416, 0, "'s'"), -(2417, 0, "'o'"), -(2418, 0, "'m'"), -(2419, 0, "'e'"), -(2420, 0, "' '"), -(2421, 0, "'i'"), -(2422, 0, "'n'"), -(2423, 0, "'h'"), -(2424, 0, "'e'"), -(2425, 0, "'r'"), -(2426, 0, "'e'"), -(2427, 0, "'n'"), -(2428, 0, "'t'"), -(2429, 0, "' '"), -(2430, 0, "'p'"), -(2431, 0, "'r'"), -(2432, 0, "'o'"), -(2433, 0, "'b'"), -(2434, 0, "'l'"), -(2435, 0, "'e'"), -(2436, 0, "'m'"), -(2437, 0, "'w'"), -(2438, 0, "' '"), -(2439, 0, "'t'"), -(2440, 0, "'i'"), -(2441, 0, "'h'"), -(2442, 0, "' '"), -(2443, 0, "'t'"), -(2443, 1, "''"), -(2442, 1, "''"), -(2441, 1, "''"), -(2440, 1, "''"), -(2439, 1, "''"), -(2438, 1, "''"), -(2437, 1, "''"), -(2437, 0, "' '"), -(2438, 0, "'w'"), -(2439, 0, "'i'"), -(2440, 0, "'t'"), -(2441, 0, "'h'"), -(2442, 0, "' '"), -(2443, 0, "'''"), -(2444, 0, "'t'"), -(2445, 0, "'h'"), -(2446, 0, "'e'"), -(2447, 0, "' '"), -(2448, 0, "'a'"), -(2449, 0, "'l'"), -(2450, 0, "'g'"), -(2451, 0, "'o'"), -(2452, 0, "'r'"), -(2453, 0, "'i'"), -(2454, 0, "'t'"), -(2455, 0, "'h'"), -(2456, 0, "'m'"), -(2457, 0, "'''"), -(2458, 0, "'.'"), -(2459, 0, "' '"), -(2460, 0, "'('"), -(2460, 1, "''"), -(2459, 1, "''"), -(2458, 1, "''"), -(2458, 0, "' '"), -(2459, 0, "'('"), -(2460, 0, "'o'"), -(2461, 0, "'o'"), -(2462, 0, "'p'"), -(2463, 0, "'s'"), -(2464, 0, "')'"), -(2465, 0, "'.'"), -(2466, 0, "' '"), -(2467, 0, "'A'"), -(2468, 0, "'n'"), -(2469, 0, "'y'"), -(2470, 0, "'w'"), -(2471, 0, "'a'"), -(2472, 0, "'y'"), -(2473, 0, "','"), -(2474, 0, "' '"), -(2475, 0, "'s'"), -(2476, 0, "'u'"), -(2477, 0, "'r'"), -(2478, 0, "'p'"), -(2479, 0, "'r'"), -(2480, 0, "'i'"), -(2475, 6, "'i'"), -(2476, 0, "'n'"), -(2477, 0, "' '"), -(2478, 0, "'a'"), -(2479, 0, "' '"), -(2480, 0, "'s'"), -(2481, 0, "'u'"), -(2482, 0, "'r'"), -(2483, 0, "'p'"), -(2484, 0, "'r'"), -(2485, 0, "'i'"), -(2486, 0, "'s'"), -(2487, 0, "'i'"), -(2488, 0, "'n'"), -(2489, 0, "'g'"), -(2490, 0, "' '"), -(2491, 0, "'t'"), -(2492, 0, "'u'"), -(2493, 0, "'r'"), -(2494, 0, "'n'"), -(2495, 0, "' '"), -(2496, 0, "'o'"), -(2497, 0, "'f'"), -(2498, 0, "' '"), -(2499, 0, "'e'"), -(2500, 0, "'v'"), -(2501, 0, "'e'"), -(2502, 0, "'n'"), -(2503, 0, "'t'"), -(2504, 0, "'s'"), -(2505, 0, "','"), -(2506, 0, "' '"), -(2507, 0, "'I'"), -(2508, 0, "' '"), -(2509, 0, "'w'"), -(2510, 0, "'a'"), -(2511, 0, "'s'"), -(2512, 0, "' '"), -(2513, 0, "'m'"), -(2514, 0, "'a'"), -(2515, 0, "'k'"), -(2516, 0, "'i'"), -(2517, 0, "'n'"), -(2518, 0, "'g'"), -(2519, 0, "' '"), -(2520, 0, "'t'"), -(2521, 0, "'h'"), -(2522, 0, "'e'"), -(2523, 0, "' '"), -(2524, 0, "'s'"), -(2525, 0, "'a'"), -(2526, 0, "'m'"), -(2527, 0, "'e'"), -(2528, 0, "' '"), -(2529, 0, "'m'"), -(2530, 0, "'i'"), -(2531, 0, "'s'"), -(2532, 0, "'t'"), -(2533, 0, "'a'"), -(2534, 0, "'k'"), -(2535, 0, "'e'"), -(2536, 0, "'s'"), -(2537, 0, "' '"), -(2538, 0, "'a'"), -(2539, 0, "'s'"), -(2540, 0, "' '"), -(2541, 0, "'t'"), -(2542, 0, "'h'"), -(2543, 0, "'o'"), -(2544, 0, "'s'"), -(2545, 0, "'e'"), -(2546, 0, "' '"), -(2547, 0, "'r'"), -(2548, 0, "'e'"), -(2549, 0, "'s'"), -(2550, 0, "'e'"), -(2551, 0, "'a'"), -(2552, 0, "'r'"), -(2553, 0, "'c'"), -(2554, 0, "'h'"), -(2555, 0, "'e'"), -(2556, 0, "'r'"), -(2557, 0, "'s'"), -(2558, 0, "'.'"), -(2559, 0, "' '"), -(2560, 0, "'I'"), -(2561, 0, "' '"), -(2562, 0, "'w'"), -(2563, 0, "'a'"), -(2564, 0, "'s'"), -(2565, 0, "' '"), -(2566, 0, "'a'"), -(2567, 0, "'s'"), -(2568, 0, "'s'"), -(2569, 0, "'u'"), -(2570, 0, "'m'"), -(2571, 0, "'i'"), -(2572, 0, "'n'"), -(2573, 0, "'g'"), -(2574, 0, "' '"), -(2566, 9, "'r'"), -(2567, 0, "'e'"), -(2568, 0, "'a'"), -(2569, 0, "'d'"), -(2570, 0, "'i'"), -(2571, 0, "'n'"), -(2572, 0, "'g'"), -(2573, 0, "' '"), -(2574, 0, "'p'"), -(2575, 0, "'a'"), -(2576, 0, "'p'"), -(2577, 0, "'e'"), -(2578, 0, "'r'"), -(2579, 0, "'s'"), -(2580, 0, "' '"), -(2581, 0, "'t'"), -(2582, 0, "'a'"), -(2583, 0, "'l'"), -(2584, 0, "'k'"), -(2585, 0, "'i'"), -(2586, 0, "'n'"), -(2587, 0, "' '"), -(2588, 0, "'g'"), -(2588, 1, "''"), -(2587, 1, "''"), -(2587, 0, "'g'"), -(2588, 0, "' '"), -(2589, 0, "'a'"), -(2590, 0, "'b'"), -(2591, 0, "'o'"), -(2592, 0, "'u'"), -(2593, 0, "'t'"), -(2594, 0, "' '"), -(2595, 0, "'h'"), -(2596, 0, "'e'"), -(2596, 1, "''"), -(2595, 1, "''"), -(2595, 0, "'t'"), -(2596, 0, "'h'"), -(2597, 0, "'e'"), -(2598, 0, "' '"), -(2599, 0, "'*'"), -(2600, 0, "'s'"), -(2601, 0, "'e'"), -(2602, 0, "'m'"), -(2603, 0, "'a'"), -(2604, 0, "'n'"), -(2605, 0, "'t'"), -(2606, 0, "'i'"), -(2607, 0, "'c'"), -(2608, 0, "'s'"), -(2609, 0, "'*'"), -(2610, 0, "' '"), -(2611, 0, "'a'"), -(2612, 0, "'n'"), -(2613, 0, "'d'"), -(2614, 0, "' '"), -(2615, 0, "'a'"), -(2616, 0, "'s'"), -(2617, 0, "'s'"), -(2618, 0, "'m'"), -(2618, 1, "''"), -(2618, 0, "'u'"), -(2619, 0, "'m'"), -(2620, 0, "'i'"), -(2621, 0, "'n'"), -(2622, 0, "'g'"), -(2623, 0, "' '"), -(2624, 0, "'t'"), -(2625, 0, "'h'"), -(2626, 0, "'a'"), -(2627, 0, "'t'"), -(2628, 0, "' '"), -(2629, 0, "'m'"), -(2630, 0, "'e'"), -(2631, 0, "'a'"), -(2632, 0, "'n'"), -(2633, 0, "'t'"), -(2634, 0, "' '"), -(2635, 0, "'t'"), -(2636, 0, "'h'"), -(2637, 0, "'o'"), -(2638, 0, "'s'"), -(2639, 0, "'e'"), -(2640, 0, "' '"), -(2641, 0, "'a'"), -(2642, 0, "'l'"), -(2643, 0, "'g'"), -(2644, 0, "'o'"), -(2645, 0, "'r'"), -(2646, 0, "'i'"), -(2647, 0, "'t'"), -(2648, 0, "'h'"), -(2649, 0, "'m'"), -(2650, 0, "'s'"), -(2651, 0, "' '"), -(2652, 0, "'n'"), -(2653, 0, "'e'"), -(2654, 0, "'e'"), -(2655, 0, "'d'"), -(2656, 0, "'e'"), -(2657, 0, "'d'"), -(2658, 0, "' '"), -(2659, 0, "'t'"), -(2660, 0, "'o'"), -(2661, 0, "' '"), -(2662, 0, "'b'"), -(2663, 0, "'e'"), -(2664, 0, "' '"), -(2665, 0, "'i'"), -(2666, 0, "'m'"), -(2667, 0, "'p'"), -(2668, 0, "'l'"), -(2669, 0, "'e'"), -(2670, 0, "'m'"), -(2671, 0, "'e'"), -(2672, 0, "'n'"), -(2673, 0, "'t'"), -(2674, 0, "'e'"), -(2675, 0, "'d'"), -(2676, 0, "' '"), -(2677, 0, "'a'"), -(2678, 0, "' '"), -(2679, 0, "'c'"), -(2680, 0, "'e'"), -(2681, 0, "'r'"), -(2682, 0, "'t'"), -(2683, 0, "'a'"), -(2684, 0, "'i'"), -(2685, 0, "'n'"), -(2686, 0, "' '"), -(2687, 0, "'w'"), -(2688, 0, "'a'"), -(2689, 0, "'y'"), -(2690, 0, "'.'"), -(2691, 0, "' '"), -(2692, 0, "'A'"), -(2693, 0, "' '"), -(2694, 0, "'s'"), -(2695, 0, "'l'"), -(2696, 0, "'o'"), -(2697, 0, "'w'"), -(2698, 0, "' '"), -(2699, 0, "'w'"), -(2700, 0, "'a'"), -(2701, 0, "'y'"), -(2702, 0, "'.'"), -(2703, 0, "' '"), -(2704, 0, "'B'"), -(2705, 0, "'e'"), -(2706, 0, "'c'"), -(2707, 0, "'a'"), -(2708, 0, "'u'"), -(2709, 0, "'s'"), -(2710, 0, "'e'"), -(2711, 0, "' '"), -(2712, 0, "'t'"), -(2713, 0, "'h'"), -(2714, 0, "'e'"), -(2715, 0, "' '"), -(2716, 0, "'a'"), -(2717, 0, "'l'"), -(2718, 0, "'g'"), -(2719, 0, "'o'"), -(2720, 0, "'r'"), -(2721, 0, "'i'"), -(2722, 0, "'t'"), -(2723, 0, "'h'"), -(2724, 0, "'m'"), -(2712, 0, "'''"), -(2726, 0, "' '"), -(2727, 0, "'i'"), -(2728, 0, "'s'"), -(2729, 0, "' '"), -(2730, 0, "'s'"), -(2731, 0, "'l'"), -(2732, 0, "'o'"), -(2733, 0, "'w'"), -(2734, 0, "'''"), -(2735, 0, "'.'"), -(2736, 0, "' '"), -(2737, 0, "'B'"), -(2738, 0, "'u'"), -(2739, 0, "'t'"), -(2740, 0, "' '"), -(2741, 0, "'I'"), -(2742, 0, "' '"), -(2743, 0, "'w'"), -(2744, 0, "'a'"), -(2745, 0, "'s'"), -(2746, 0, "' '"), -(2747, 0, "'s'"), -(2748, 0, "'o'"), -(2749, 0, "' '"), -(2750, 0, "'w'"), -(2751, 0, "'r'"), -(2752, 0, "'o'"), -(2753, 0, "'n'"), -(2754, 0, "'g'"), -(2755, 0, "'.'"), -(2756, 0, "'n'"), -(2757, 0, "'n'"), -(2757, 1, "''"), -(2756, 1, "''"), -(2213, 5, "''"), -(2212, 1, "''"), -(2213, 3, "'r'"), -(2214, 0, "'a'"), -(2215, 0, "'n'"), -(2190, 0, "'b'"), -(2191, 0, "'y'"), -(2192, 0, "' '"), -(2193, 0, "'u'"), -(2194, 0, "'s'"), -(2195, 0, "'i'"), -(2196, 0, "'n'"), -(2197, 0, "'g'"), -(2198, 0, "' '"), -(2199, 0, "'a'"), -(2200, 0, "' '"), -(2201, 0, "'f'"), -(2202, 0, "'e'"), -(2203, 0, "'w'"), -(2204, 0, "' '"), -(2205, 0, "'i'"), -(2206, 0, "'m'"), -(2207, 0, "'p'"), -(2208, 0, "'l'"), -(2209, 0, "'e'"), -(2210, 0, "'m'"), -(2210, 1, "''"), -(2209, 1, "''"), -(2209, 0, "'e'"), -(2210, 0, "'m'"), -(2211, 0, "'e'"), -(2212, 0, "'n'"), -(2213, 0, "'t'"), -(2214, 0, "'a'"), -(2215, 0, "'t'"), -(2216, 0, "'i'"), -(2217, 0, "'o'"), -(2218, 0, "'n'"), -(2219, 0, "' '"), -(2220, 0, "'t'"), -(2221, 0, "'r'"), -(2222, 0, "'a'"), -(2223, 0, "'i'"), -(2224, 0, "'c'"), -(2224, 1, "''"), -(2223, 1, "''"), -(2222, 1, "''"), -(2222, 0, "'i'"), -(2223, 0, "'c'"), -(2224, 0, "'k'"), -(2225, 0, "'s'"), -(2226, 0, "','"), -(2227, 0, "' '"), -(2236, 12, "''"), -(2238, 0, "' '"), -(2239, 0, "'c'"), -(2240, 0, "'o'"), -(2241, 0, "'d'"), -(2242, 0, "'e'"), -(2238, 5, "''"), -(2236, 0, "' function in'"), -(2253, 1, "''"), -(2252, 1, "''"), -(2252, 0, "'r'"), -(2253, 0, "'u'"), -(2253, 1, "''"), -(2252, 1, "''"), -(2252, 0, "'u'"), -(2253, 0, "'n'"), -(2254, 0, "'s'"), -(2255, 0, "' '"), -(2256, 0, "'i'"), -(2256, 1, "''"), -(2255, 1, "''"), -(2251, 4, "'d'"), -(2252, 0, "'o'"), -(2253, 0, "'e'"), -(2254, 0, "'s'"), -(2251, 4, "'r'"), -(2252, 0, "'u'"), -(2253, 0, "'n'"), -(2254, 0, "'s'"), -(2259, 6, "' '"), -(2260, 0, "'i'"), -(2261, 0, "'n'"), -(2262, 0, "'t'"), -(2263, 0, "'e'"), -(2264, 0, "'r'"), -(2265, 0, "'a'"), -(2266, 0, "'t'"), -(2267, 0, "'i'"), -(2268, 0, "'o'"), -(2269, 0, "'n'"), -(2270, 0, "'s'"), -(2260, 11, "'i'"), -(2261, 0, "'t'"), -(2262, 0, "'e'"), -(2263, 0, "'r'"), -(2264, 0, "'a'"), -(2265, 0, "'t'"), -(2266, 0, "'i'"), -(2267, 0, "'o'"), -(2268, 0, "'n'"), -(2269, 0, "'s'"), -(2306, 0, "'!'"), -(2306, 1, "''"), -(2412, 5, "'c'"), -(2413, 0, "'r'"), -(2414, 0, "'a'"), -(2415, 0, "'z'"), -(2416, 0, "'y'"), -(2449, 4, "' '"), -(2450, 0, "'t'"), -(2451, 0, "'h'"), -(2452, 0, "'e'"), -(2453, 0, "'r'"), -(2454, 0, "'e'"), -(2455, 0, "' '"), -(2456, 0, "'w'"), -(2457, 0, "'a'"), -(2458, 0, "'s'"), -(2502, 7, "''"), -(2503, 0, "' '"), -(2504, 0, "'O'"), -(2505, 0, "'o'"), -(2506, 0, "'p'"), -(2507, 0, "'s'"), -(2508, 0, "'!'"), -(2509, 40, "''"), -(2511, 0, "'''"), -(2512, 0, "'v'"), -(2513, 0, "'e'"), -(2514, 0, "' '"), -(2515, 0, "'b'"), -(2516, 0, "'e'"), -(2517, 0, "'e'"), -(2518, 0, "'n'"), -(2519, 4, "''"), -(2631, 66, "''"), -(2631, 0, "'w'"), -(2632, 0, "'e'"), -(2633, 0, "' '"), -(2634, 0, "'k'"), -(2635, 0, "'n'"), -(2636, 0, "'e'"), -(2637, 0, "'w'"), -(2638, 0, "' '"), -(2639, 0, "'h'"), -(2640, 0, "'o'"), -(2641, 0, "'w'"), -(2639, 3, "'w'"), -(2640, 0, "'h'"), -(2641, 0, "'a'"), -(2642, 0, "'t'"), -(2643, 0, "' '"), -(2644, 0, "'t'"), -(2645, 0, "'h'"), -(2646, 0, "'o'"), -(2647, 0, "'s'"), -(2648, 0, "'e'"), -(2649, 0, "' '"), -(2639, 11, "'h'"), -(2640, 0, "'o'"), -(2641, 0, "'w'"), -(2642, 0, "' '"), -(2643, 0, "'t'"), -(2644, 0, "'h'"), -(2645, 0, "'o'"), -(2646, 0, "'s'"), -(2647, 0, "'e'"), -(2648, 0, "' '"), -(2649, 0, "'*'"), -(2650, 0, "'i'"), -(2651, 0, "'m'"), -(2652, 0, "'p'"), -(2653, 0, "'l'"), -(2654, 0, "'e'"), -(2655, 0, "'m'"), -(2656, 0, "'e'"), -(2657, 0, "'n'"), -(2658, 0, "'t'"), -(2659, 0, "'a'"), -(2660, 0, "'t'"), -(2661, 0, "'i'"), -(2662, 0, "'o'"), -(2663, 0, "'n'"), -(2664, 0, "'s'"), -(2665, 0, "'*'"), -(2666, 0, "' '"), -(2667, 0, "'s'"), -(2668, 0, "'h'"), -(2669, 0, "'o'"), -(2670, 0, "'u'"), -(2671, 0, "'l'"), -(2672, 0, "'d'"), -(2673, 0, "' '"), -(2674, 0, "'w'"), -(2675, 0, "'o'"), -(2676, 0, "'r'"), -(2677, 0, "'k'"), -(2680, 0, "'T'"), -(2681, 0, "'h'"), -(2682, 0, "'a'"), -(2683, 0, "'t'"), -(2684, 0, "' '"), -(2685, 0, "'i'"), -(2686, 0, "'s'"), -(2687, 0, "','"), -(2688, 0, "' '"), -(2689, 0, "'t'"), -(2690, 0, "'h'"), -(2691, 0, "'e'"), -(2692, 0, "'y'"), -(2693, 0, "' '"), -(2694, 0, "'s'"), -(2695, 0, "'h'"), -(2696, 0, "'o'"), -(2697, 0, "'u'"), -(2698, 0, "'l'"), -(2699, 0, "'d'"), -(2700, 0, "' '"), -(2701, 0, "'w'"), -(2702, 0, "'o'"), -(2703, 0, "'r'"), -(2704, 0, "'k'"), -(2705, 0, "' '"), -(2706, 0, "'*'"), -(2707, 0, "'s'"), -(2708, 0, "'l'"), -(2709, 0, "'o'"), -(2710, 0, "'w'"), -(2711, 0, "'l'"), -(2712, 0, "'y'"), -(2713, 0, "'*'"), -(2714, 0, "' '"), -(2714, 1, "''"), -(2714, 0, "'.'"), -(2715, 0, "' '"), -(2716, 0, "'B'"), -(2717, 0, "'u'"), -(2718, 0, "'t'"), -(2719, 0, "' '"), -(2720, 20, "''"), -(2720, 44, "'i'"), -(2721, 0, "'t'"), -(2722, 0, "' '"), -(2723, 0, "'t'"), -(2724, 0, "'u'"), -(2725, 0, "'r'"), -(2726, 0, "'n'"), -(2727, 0, "'s'"), -(2728, 0, "' '"), -(2729, 0, "'o'"), -(2730, 0, "'u'"), -(2731, 0, "'t'"), -(2732, 0, "' '"), -(2733, 0, "'I'"), -(2734, 0, "' '"), -(2735, 0, "'w'"), -(2736, 0, "'a'"), -(2737, 0, "'s'"), -(2738, 0, "' '"), -(2739, 0, "'s'"), -(2740, 0, "'u'"), -(2741, 0, "'p'"), -(2742, 0, "'e'"), -(2743, 0, "'r'"), -(2744, 0, "' '"), -(2745, 0, "'w'"), -(2746, 0, "'r'"), -(2747, 0, "'o'"), -(2748, 0, "'n'"), -(2749, 0, "'g'"), -(2750, 0, "'.'"), -(2751, 0, "' '"), -(2752, 0, "'T'"), -(2752, 1, "''"), -(2751, 1, "''"), -(2751, 0, "'n'"), -(2752, 0, "'n'"), -(2753, 0, "'H'"), -(2754, 0, "'o'"), -(2755, 0, "'w'"), -(2756, 0, "' '"), -(2757, 0, "'w'"), -(2758, 0, "'r'"), -(2759, 0, "'o'"), -(2760, 0, "'n'"), -(2761, 0, "'g'"), -(2762, 0, "'?'"), -(2763, 0, "' '"), -(2763, 1, "''"), -(2763, 0, "'n'"), -(2763, 1, "''"), -(2763, 0, "' '"), -(2764, 0, "'A'"), -(2765, 0, "'u'"), -(2766, 0, "'t'"), -(2767, 0, "'o'"), -(2768, 0, "'m'"), -(2769, 0, "'e'"), -(2770, 0, "'r'"), -(2771, 0, "'g'"), -(2772, 0, "'e'"), -(2764, 0, "'T'"), -(2765, 0, "'o'"), -(2766, 0, "' '"), -(2767, 0, "'r'"), -(2768, 0, "'u'"), -(2769, 0, "'n'"), -(2770, 0, "' '"), -(2771, 0, "'['"), -(2772, 0, "'t'"), -(2773, 0, "'h'"), -(2774, 0, "'i'"), -(2775, 0, "'s'"), -(2776, 0, "' '"), -(2777, 0, "'e'"), -(2778, 0, "'d'"), -(2779, 0, "'i'"), -(2780, 0, "'t'"), -(2781, 0, "'i'"), -(2782, 0, "'n'"), -(2783, 0, "'g'"), -(2784, 0, "' '"), -(2785, 0, "'t'"), -(2786, 0, "'r'"), -(2787, 0, "'a'"), -(2788, 0, "'c'"), -(2789, 0, "'e'"), -(2790, 0, "'('"), -(2791, 0, "')'"), -(2791, 1, "''"), -(2790, 1, "''"), -(2790, 0, "']'"), -(2791, 0, "'('"), -(2792, 0, "')'"), -(2793, 0, "','"), -(2794, 0, "' '"), -(2804, 0, "' '"), -(2805, 0, "'('"), -(2806, 0, "'a'"), -(2807, 0, "' '"), -(2808, 0, "'p'"), -(2809, 0, "'o'"), -(2810, 0, "'p'"), -(2811, 0, "'u'"), -(2812, 0, "'l'"), -(2813, 0, "'a'"), -(2814, 0, "'r'"), -(2815, 0, "' '"), -(2816, 0, "'C'"), -(2817, 0, "'R'"), -(2818, 0, "'D'"), -(2819, 0, "'T'"), -(2820, 0, "')'"), -(2821, 0, "' '"), -(2822, 0, "'t'"), -(2823, 0, "'a'"), -(2824, 0, "'k'"), -(2825, 0, "'e'"), -(2826, 0, "'s'"), -(2827, 0, "' '"), -(2828, 0, "'2'"), -(2829, 0, "'7'"), -(2830, 0, "'0'"), -(2831, 0, "' '"), -(2832, 0, "'s'"), -(2833, 0, "'e'"), -(2834, 0, "'c'"), -(2835, 0, "'o'"), -(2836, 0, "'n'"), -(2837, 0, "'d'"), -(2838, 0, "'s'"), -(2839, 0, "'.'"), -(2840, 0, "' '"), -(2841, 0, "'I'"), -(2842, 0, "'''"), -(2843, 0, "'v'"), -(2844, 0, "'e'"), -(2845, 0, "' '"), -(2842, 4, "' '"), -(2843, 0, "'c'"), -(2844, 0, "'a'"), -(2845, 0, "'n'"), -(2846, 0, "' '"), -(2847, 0, "'r'"), -(2848, 0, "'u'"), -(2849, 0, "'n'"), -(2850, 0, "' '"), -(2851, 0, "'t'"), -(2852, 0, "'h'"), -(2853, 0, "'e'"), -(2854, 0, "' '"), -(2855, 0, "'s'"), -(2856, 0, "'a'"), -(2857, 0, "'m'"), -(2858, 0, "'e'"), -(2859, 0, "' '"), -(2860, 0, "'e'"), -(2861, 0, "'d'"), -(2862, 0, "'i'"), -(2863, 0, "'t'"), -(2864, 0, "'i'"), -(2865, 0, "'n'"), -(2866, 0, "'g'"), -(2867, 0, "' '"), -(2868, 0, "'t'"), -(2869, 0, "'r'"), -(2870, 0, "'a'"), -(2871, 0, "'c'"), -(2872, 0, "'e'"), -(2843, 0, "'h'"), -(2844, 0, "'a'"), -(2845, 0, "'v'"), -(2846, 0, "'e'"), -(2847, 0, "' '"), -(2848, 0, "'a'"), -(2849, 0, "' '"), -(2850, 0, "'n'"), -(2851, 0, "'e'"), -(2852, 0, "'w'"), -(2853, 0, "' '"), -(2854, 0, "'e'"), -(2854, 1, "''"), -(2854, 0, "'i'"), -(2855, 0, "'m'"), -(2856, 0, "'p'"), -(2857, 0, "'l'"), -(2858, 0, "'e'"), -(2859, 0, "'m'"), -(2860, 0, "'e'"), -(2861, 0, "'n'"), -(2862, 0, "'t'"), -(2863, 0, "'a'"), -(2864, 0, "'t'"), -(2865, 0, "'i'"), -(2866, 0, "'o'"), -(2867, 0, "'n'"), -(2868, 0, "' '"), -(2869, 0, "'t'"), -(2870, 0, "'h'"), -(2871, 0, "'a'"), -(2872, 0, "'t'"), -(2873, 0, "' '"), -(2904, 0, "' '"), -(2905, 0, "'i'"), -(2906, 0, "'n'"), -(2907, 0, "' '"), -(2841, 67, "''"), -(2841, 0, "'I have a new implementation that can run the same editing trace in '"), -(2908, 0, "'6'"), -(2909, 0, "'5'"), -(2910, 0, "'m'"), -(2911, 0, "'s'"), -(2911, 1, "''"), -(2910, 1, "''"), -(2909, 1, "''"), -(2908, 1, "''"), -(2908, 0, "'0'"), -(2909, 0, "'.'"), -(2910, 0, "'0'"), -(2911, 0, "'6'"), -(2912, 0, "'5'"), -(2913, 0, "' '"), -(2914, 0, "'s'"), -(2915, 0, "'e'"), -(2916, 0, "'c'"), -(2917, 0, "'o'"), -(2918, 0, "'n'"), -(2919, 0, "'d'"), -(2920, 0, "'s'"), -(2921, 0, "'.'"), -(2878, 3, "'p'"), -(2879, 0, "'r'"), -(2880, 0, "'o'"), -(2881, 0, "'c'"), -(2882, 0, "'e'"), -(2883, 0, "'s'"), -(2884, 0, "'s'"), -(2926, 0, "' '"), -(2927, 0, "'W'"), -(2928, 0, "'e'"), -(2929, 0, "'l'"), -(2930, 0, "'l'"), -(2915, 16, "''"), -(2915, 0, "'3'"), -(2916, 0, "'2'"), -(2917, 0, "' '"), -(2917, 1, "''"), -(2916, 1, "''"), -(2915, 1, "''"), -(2915, 0, "'2'"), -(2916, 0, "'3'"), -(2917, 0, "' '"), -(2918, 0, "'s'"), -(2919, 0, "'e'"), -(2920, 0, "'c'"), -(2921, 0, "'o'"), -(2922, 0, "'n'"), -(2923, 0, "'d'"), -(2924, 0, "'s'"), -(2925, 0, "'.'"), -(2926, 0, "' '"), -(2927, 0, "'T'"), -(2928, 0, "'h'"), -(2929, 0, "'a'"), -(2930, 0, "'t'"), -(2931, 0, "'s'"), -(2932, 0, "' '"), -(2933, 0, "'a'"), -(2934, 0, "'b'"), -(2935, 0, "'o'"), -(2936, 0, "'u'"), -(2937, 0, "'t'"), -(2938, 0, "' '"), -(2939, 0, "'1'"), -(2940, 0, "'0'"), -(2941, 0, "' '"), -(2942, 0, "'0'"), -(2943, 0, "'0'"), -(2944, 0, "'0'"), -(2945, 0, "' '"), -(2945, 1, "''"), -(2945, 0, "'x'"), -(2946, 0, "' '"), -(2941, 1, "''"), -(2941, 0, "' '"), -(2939, 8, "'t'"), -(2940, 0, "'e'"), -(2941, 0, "'n'"), -(2942, 0, "' '"), -(2943, 0, "'t'"), -(2944, 0, "'h'"), -(2945, 0, "'o'"), -(2946, 0, "'u'"), -(2947, 0, "'s'"), -(2948, 0, "'a'"), -(2949, 0, "'n'"), -(2950, 0, "'d'"), -(2951, 0, "' '"), -(2952, 0, "'t'"), -(2953, 0, "'i'"), -(2954, 0, "'m'"), -(2955, 0, "'e'"), -(2956, 0, "'s'"), -(2957, 0, "' '"), -(2958, 0, "'f'"), -(2959, 0, "'a'"), -(2960, 0, "'s'"), -(2961, 0, "'t'"), -(2962, 0, "'e'"), -(2963, 0, "'r'"), -(2964, 0, "'.'"), -(2965, 0, "' '"), -(2966, 0, "'T'"), -(2966, 1, "''"), -(2965, 1, "''"), -(2965, 0, "' '"), -(2966, 0, "'I'"), -(2967, 0, "'t'"), -(2968, 0, "'s'"), -(2969, 0, "' '"), -(2970, 0, "'t'"), -(2971, 0, "'h'"), -(2972, 0, "'e'"), -(2973, 0, "' '"), -(2974, 0, "'l'"), -(2975, 0, "'a'"), -(2976, 0, "'r'"), -(2977, 0, "'g'"), -(2978, 0, "'e'"), -(2979, 0, "'s'"), -(2980, 0, "'t'"), -(2981, 0, "' '"), -(2982, 0, "'s'"), -(2983, 0, "'p'"), -(2984, 0, "'e'"), -(2985, 0, "'e'"), -(2986, 0, "'d'"), -(2987, 0, "' '"), -(2988, 0, "'u'"), -(2989, 0, "'p'"), -(2990, 0, "' '"), -(2991, 0, "'I'"), -(2992, 0, "'''"), -(2993, 0, "'v'"), -(2994, 0, "'e'"), -(2995, 0, "' '"), -(2996, 0, "'e'"), -(2997, 0, "'v'"), -(2998, 0, "'e'"), -(2999, 0, "'r'"), -(3000, 0, "' '"), -(3001, 0, "'g'"), -(3002, 0, "'o'"), -(3003, 0, "'t'"), -(3004, 0, "'t'"), -(3005, 0, "'e'"), -(3006, 0, "'n'"), -(3007, 0, "' '"), -(3008, 0, "'f'"), -(3009, 0, "'r'"), -(3010, 0, "'o'"), -(3011, 0, "'m'"), -(3012, 0, "' '"), -(3013, 0, "'o'"), -(3014, 0, "'p'"), -(3015, 0, "'t'"), -(3016, 0, "'i'"), -(3017, 0, "'m'"), -(3018, 0, "'i'"), -(3019, 0, "'z'"), -(3020, 0, "'a'"), -(3021, 0, "'t'"), -(3022, 0, "'i'"), -(3023, 0, "'o'"), -(3024, 0, "'n'"), -(3025, 0, "' '"), -(3026, 0, "'w'"), -(3027, 0, "'o'"), -(3028, 0, "'r'"), -(3029, 0, "'k'"), -(3030, 0, "' '"), -(3031, 0, "'-'"), -(3032, 0, "' '"), -(3033, 0, "'a'"), -(3034, 0, "'n'"), -(3035, 0, "'d'"), -(3036, 0, "' '"), -(3037, 0, "'i'"), -(3038, 0, "'t'"), -(3039, 0, "'s'"), -(3040, 0, "' '"), -(3041, 0, "'*'"), -(3042, 0, "'d'"), -(3043, 0, "'e'"), -(3044, 0, "'l'"), -(3045, 0, "'i'"), -(3046, 0, "'g'"), -(3047, 0, "'h'"), -(3048, 0, "'t'"), -(3049, 0, "'f'"), -(3050, 0, "'u'"), -(3051, 0, "'l'"), -(3052, 0, "'*'"), -(3053, 0, "'!'"), -(3053, 1, "''"), -(3052, 0, "'!'"), -(3037, 17, "'I'"), -(3038, 0, "'''"), -(3039, 0, "'m'"), -(3040, 0, "' '"), -(3041, 0, "'u'"), -(3042, 0, "'t'"), -(3043, 0, "'t'"), -(3044, 0, "'e'"), -(3045, 0, "'r'"), -(3046, 0, "'l'"), -(3047, 0, "'y'"), -(3048, 0, "' '"), -(3049, 0, "'d'"), -(3050, 0, "'e'"), -(3051, 0, "'l'"), -(3052, 0, "'i'"), -(3053, 0, "'g'"), -(3054, 0, "'h'"), -(3055, 0, "'t'"), -(3056, 0, "'e'"), -(3057, 0, "'d'"), -(3058, 0, "' '"), -(3059, 0, "'b'"), -(3060, 0, "'y'"), -(3061, 0, "' '"), -(3062, 0, "'i'"), -(3063, 0, "'t'"), -(3064, 0, "'.'"), -(2504, 0, "'H'"), -(2505, 0, "'a'"), -(2506, 0, "'h'"), -(2507, 0, "'a'"), -(2508, 0, "' '"), -(2509, 0, "'w'"), -(2509, 1, "''"), -(2509, 0, "'a'"), -(2510, 0, "'w'"), -(2511, 0, "'k'"), -(2512, 0, "'w'"), -(2513, 0, "'a'"), -(2514, 0, "'r'"), -(2515, 0, "'d'"), -(2516, 4, "''"), -(2516, 1, "''"), -(2516, 0, "' '"), -(2517, 0, "'-'"), -(2504, 5, "''"), -(2504, 1, "''"), -(2504, 0, "'H'"), -(2505, 0, "'a'"), -(2506, 0, "'h'"), -(2507, 0, "' '"), -(2508, 0, "'a'"), -(2625, 0, "' '"), -(2626, 0, "'o'"), -(2627, 0, "'f'"), -(2628, 0, "' '"), -(2629, 0, "'d'"), -(2630, 0, "'i'"), -(2631, 0, "'f'"), -(2632, 0, "'f'"), -(2633, 0, "'e'"), -(2634, 0, "'r'"), -(2635, 0, "'e'"), -(2636, 0, "'n'"), -(2637, 0, "'t'"), -(2638, 0, "' '"), -(2639, 0, "'a'"), -(2640, 0, "'l'"), -(2641, 0, "'g'"), -(2642, 0, "'o'"), -(2643, 0, "'r'"), -(2644, 0, "'i'"), -(2645, 0, "'t'"), -(2646, 0, "'h'"), -(2647, 0, "'m'"), -(2648, 0, "'s'"), -(2671, 9, "'a'"), -(2672, 0, "'n'"), -(2673, 0, "'y'"), -(2674, 0, "'t'"), -(2675, 0, "'h'"), -(2676, 0, "'i'"), -(2677, 0, "'n'"), -(2678, 0, "'g'"), -(2679, 0, "' '"), -(2680, 0, "'a'"), -(2681, 0, "'b'"), -(2682, 0, "'o'"), -(2683, 0, "'u'"), -(2684, 0, "'t'"), -(2685, 0, "' '"), -(2686, 0, "'h'"), -(2687, 0, "'o'"), -(2688, 0, "'w'"), -(2689, 0, "' '"), -(2690, 0, "'t'"), -(2691, 0, "'h'"), -(2692, 0, "'e'"), -(2725, 35, "''"), -(2690, 35, "'t'"), -(2691, 0, "'o'"), -(2692, 0, "' '"), -(2693, 0, "'m'"), -(2694, 0, "'a'"), -(2695, 0, "'k'"), -(2696, 0, "'e'"), -(2697, 0, "' '"), -(2698, 0, "'t'"), -(2699, 0, "'h'"), -(2700, 0, "'e'"), -(2701, 0, "' '"), -(2702, 0, "'*'"), -(2703, 0, "'i'"), -(2704, 0, "'m'"), -(2705, 0, "'p'"), -(2706, 0, "'l'"), -(2707, 0, "'e'"), -(2708, 0, "'m'"), -(2709, 0, "'e'"), -(2710, 0, "'n'"), -(2711, 0, "'t'"), -(2712, 0, "'a'"), -(2713, 0, "'t'"), -(2714, 0, "'i'"), -(2715, 0, "'o'"), -(2716, 0, "'n'"), -(2717, 0, "'s'"), -(2718, 0, "'*'"), -(2719, 0, "' '"), -(2720, 0, "'e'"), -(2721, 0, "'f'"), -(2722, 0, "'f'"), -(2723, 0, "'i'"), -(2724, 0, "'c'"), -(2725, 0, "'i'"), -(2726, 0, "'e'"), -(2727, 0, "'n'"), -(2728, 0, "'t'"), -(2729, 0, "'.'"), -(2670, 15, "''"), -(2751, 0, "' '"), -(2752, 0, "'M'"), -(2753, 0, "'o'"), -(2754, 0, "'s'"), -(2755, 0, "'t'"), -(2756, 0, "' '"), -(2752, 5, "'L'"), -(2753, 0, "'o'"), -(2754, 0, "'t'"), -(2755, 0, "'s'"), -(2756, 0, "' '"), -(2757, 0, "'o'"), -(2758, 0, "'f'"), -(2759, 0, "' '"), -(2760, 0, "'C'"), -(2761, 0, "'S'"), -(2762, 0, "' '"), -(2763, 0, "'r'"), -(2764, 0, "'e'"), -(2765, 0, "'s'"), -(2766, 0, "'e'"), -(2767, 0, "'a'"), -(2768, 0, "'r'"), -(2769, 0, "'c'"), -(2770, 0, "'h'"), -(2771, 0, "'e'"), -(2772, 0, "'r'"), -(2773, 0, "'s'"), -(2774, 0, "' '"), -(2775, 0, "'d'"), -(2776, 0, "'o'"), -(2777, 0, "'n'"), -(2778, 0, "'''"), -(2779, 0, "'t'"), -(2752, 8, "''"), -(2752, 0, "'A'"), -(2753, 0, "'c'"), -(2754, 0, "'t'"), -(2755, 0, "'u'"), -(2756, 0, "'a'"), -(2757, 0, "'l'"), -(2758, 0, "'l'"), -(2759, 0, "'y'"), -(2760, 0, "' '"), -(2776, 5, "'a'"), -(2777, 0, "'r'"), -(2778, 0, "'e'"), -(2779, 0, "'n'"), -(2780, 0, "'''"), -(2781, 0, "'t'"), -(2782, 0, "' '"), -(2783, 0, "'s'"), -(2784, 0, "'u'"), -(2785, 0, "'p'"), -(2786, 0, "'e'"), -(2787, 0, "'r'"), -(2788, 0, "' '"), -(2789, 0, "'g'"), -(2790, 0, "'e'"), -(2791, 0, "'n'"), -(2792, 0, "'i'"), -(2793, 0, "'u'"), -(2794, 0, "'s'"), -(2795, 0, "'e'"), -(2796, 0, "'s'"), -(2797, 0, "' '"), -(2798, 0, "'w'"), -(2799, 0, "'h'"), -(2800, 0, "'o'"), -(2801, 0, "'''"), -(2802, 0, "'v'"), -(2803, 0, "'e'"), -(2804, 0, "' '"), -(2805, 0, "'s'"), -(2806, 0, "'p'"), -(2807, 0, "'e'"), -(2808, 0, "'n'"), -(2809, 0, "'t'"), -(2810, 0, "' '"), -(2811, 0, "'d'"), -(2812, 0, "'e'"), -(2813, 0, "'c'"), -(2814, 0, "'a'"), -(2815, 0, "'d'"), -(2816, 0, "'e'"), -(2817, 0, "'s'"), -(2818, 0, "' '"), -(2819, 0, "'t'"), -(2820, 0, "'h'"), -(2821, 0, "'i'"), -(2822, 0, "'n'"), -(2823, 0, "'k'"), -(2824, 0, "'i'"), -(2825, 0, "'n'"), -(2826, 0, "'g'"), -(2804, 0, "' '"), -(2805, 0, "'a'"), -(2806, 0, "'l'"), -(2807, 0, "'s'"), -(2808, 0, "'o'"), -(2809, 0, "'*'"), -(2805, 0, "'*'"), -(2834, 0, "' '"), -(2835, 0, "'a'"), -(2836, 0, "'b'"), -(2837, 0, "'o'"), -(2838, 0, "'u'"), -(2839, 0, "'t'"), -(2840, 0, "' '"), -(2841, 0, "'o'"), -(2842, 0, "'p'"), -(2843, 0, "'t'"), -(2844, 0, "'i'"), -(2845, 0, "'m'"), -(2846, 0, "'i'"), -(2847, 0, "'z'"), -(2848, 0, "'a'"), -(2849, 0, "'t'"), -(2850, 0, "'i'"), -(2851, 0, "'o'"), -(2852, 0, "'n'"), -(2841, 0, "'c'"), -(2841, 1, "''"), -(2841, 0, "'h'"), -(2842, 0, "'o'"), -(2843, 0, "'w'"), -(2844, 0, "' '"), -(2845, 0, "'y'"), -(2846, 0, "'o'"), -(2847, 0, "'u'"), -(2848, 0, "' '"), -(2849, 0, "'c'"), -(2850, 0, "'a'"), -(2851, 0, "'n'"), -(2852, 0, "' '"), -(2864, 1, "''"), -(2863, 1, "''"), -(2862, 1, "''"), -(2861, 1, "''"), -(2860, 1, "''"), -(2860, 0, "'e'"), -(2861, 0, "' '"), -(2862, 0, "'c'"), -(2863, 0, "'o'"), -(2864, 0, "'d'"), -(2865, 0, "'e'"), -(2866, 0, "'.'"), -(2751, 116, "''"), -(2663, 0, "'t'"), -(2664, 0, "'h'"), -(2665, 0, "'a'"), -(2666, 0, "'t'"), -(2667, 0, "' '"), -(2668, 0, "'m'"), -(2669, 0, "'e'"), -(2670, 0, "'a'"), -(2671, 0, "'n'"), -(2672, 0, "'t'"), -(2673, 0, "' '"), -(2831, 0, "','"), -(2832, 0, "' '"), -(2833, 0, "'w'"), -(2834, 0, "'r'"), -(2835, 0, "'i'"), -(2836, 0, "'t'"), -(2837, 0, "'t'"), -(2838, 0, "'e'"), -(2839, 0, "'n'"), -(2840, 0, "' '"), -(2841, 0, "'b'"), -(2842, 0, "'y'"), -(2843, 0, "' '"), -(2844, 0, "'['"), -(2845, 0, "'a'"), -(2846, 0, "' '"), -(2847, 0, "'p'"), -(2848, 0, "'o'"), -(2849, 0, "'p'"), -(2850, 0, "'u'"), -(2851, 0, "'l'"), -(2852, 0, "'a'"), -(2853, 0, "'r'"), -(2854, 0, "' '"), -(2855, 0, "'r'"), -(2856, 0, "'e'"), -(2857, 0, "'s'"), -(2858, 0, "'e'"), -(2859, 0, "'a'"), -(2860, 0, "'r'"), -(2861, 0, "'c'"), -(2862, 0, "'h'"), -(2863, 0, "'e'"), -(2864, 0, "'r'"), -(2865, 0, "']'"), -(2866, 0, "'('"), -(2867, 0, "')'"), -(2981, 5, "'a'"), -(2981, 2, "''"), -(3006, 0, "' '"), -(3007, 0, "'-'"), -(3008, 0, "' '"), -(3009, 0, "'1'"), -(3010, 0, "'0'"), -(3011, 0, "'0'"), -(3012, 0, "'0'"), -(3013, 0, "'0'"), -(3014, 0, "'x'"), -(3015, 0, "' '"), -(3016, 0, "'('"), -(3017, 0, "'Y'"), -(3017, 1, "''"), -(3016, 1, "''"), -(3015, 1, "''"), -(3117, 0, "'n'"), -(3118, 0, "'L'"), -(3119, 0, "'e'"), -(3120, 0, "'t'"), -(3121, 0, "'s'"), -(3122, 0, "' '"), -(3123, 0, "'t'"), -(3124, 0, "'a'"), -(3125, 0, "'l'"), -(3126, 0, "'k'"), -(3127, 0, "' '"), -(3128, 0, "'a'"), -(3129, 0, "'b'"), -(3130, 0, "'o'"), -(3131, 0, "'u'"), -(3132, 0, "'t'"), -(3133, 0, "' '"), -(3134, 0, "'w'"), -(3135, 0, "'h'"), -(3136, 0, "'y'"), -(3137, 0, "' '"), -(3138, 0, "'a'"), -(3139, 0, "'u'"), -(3140, 0, "'t'"), -(3141, 0, "'o'"), -(3142, 0, "'m'"), -(3143, 0, "'e'"), -(3144, 0, "'r'"), -(3145, 0, "'g'"), -(3146, 0, "'e'"), -(3147, 0, "' '"), -(3148, 0, "'i'"), -(3149, 0, "'s'"), -(3150, 0, "' '"), -(3151, 0, "'s'"), -(3152, 0, "'l'"), -(3153, 0, "'o'"), -(3154, 0, "'w'"), -(3155, 0, "','"), -(3156, 0, "' '"), -(3157, 0, "'a'"), -(3158, 0, "'n'"), -(3159, 0, "'d'"), -(3160, 0, "' '"), -(3161, 0, "'a'"), -(3162, 0, "'l'"), -(3163, 0, "'l'"), -(3164, 0, "' '"), -(3165, 0, "'t'"), -(3166, 0, "'h'"), -(3167, 0, "'e'"), -(3168, 0, "'s'"), -(3169, 0, "' '"), -(3170, 0, "'e'"), -(3170, 1, "''"), -(3169, 1, "''"), -(3168, 1, "''"), -(3168, 0, "' '"), -(3169, 0, "'s'"), -(3170, 0, "'t'"), -(3171, 0, "'e'"), -(3172, 0, "'p'"), -(3173, 0, "'s'"), -(3174, 0, "' '"), -(3175, 0, "'t'"), -(3176, 0, "'a'"), -(3177, 0, "'t'"), -(3178, 0, "' '"), -(3178, 1, "''"), -(3177, 1, "''"), -(3176, 1, "''"), -(3176, 0, "'h'"), -(3177, 0, "'a'"), -(3178, 0, "'t'"), -(3179, 0, "' '"), -(3180, 0, "'m'"), -(3181, 0, "'a'"), -(3182, 0, "'k'"), -(3183, 0, "'e'"), -(3184, 0, "' '"), -(3185, 0, "'i'"), -(3186, 0, "'t'"), -(3187, 0, "' '"), -(3188, 0, "'f'"), -(3189, 0, "'a'"), -(3190, 0, "'s'"), -(3191, 0, "'t'"), -(3192, 0, "'.'"), -(3193, 0, "'n'"), -(3194, 0, "'n'"), -(3195, 0, "'W'"), -(3196, 0, "'e'"), -(3197, 0, "'l'"), -(3198, 0, "'l'"), -(3199, 0, "' '"), -(3200, 0, "'a'"), -(3201, 0, "'c'"), -(3202, 0, "'t'"), -(3203, 0, "'u'"), -(3204, 0, "'a'"), -(3205, 0, "'l'"), -(3206, 0, "'l'"), -(3207, 0, "'y'"), -(3208, 0, "','"), -(3209, 0, "' '"), -(3210, 0, "'l'"), -(3211, 0, "'e'"), -(3212, 0, "'t'"), -(3213, 0, "'s'"), -(3214, 0, "' '"), -(3215, 0, "'s'"), -(3216, 0, "'t'"), -(3217, 0, "'a'"), -(3218, 0, "'r'"), -(3219, 0, "'t'"), -(3220, 0, "' '"), -(3221, 0, "'w'"), -(3222, 0, "'i'"), -(3223, 0, "'t'"), -(3224, 0, "'h'"), -(3225, 0, "'n'"), -(3226, 0, "'n'"), -(3227, 0, "'#'"), -(3228, 0, "'#'"), -(3229, 0, "' '"), -(3230, 0, "'W'"), -(3231, 0, "'h'"), -(3232, 0, "'a'"), -(3233, 0, "'t'"), -(3234, 0, "' '"), -(3235, 0, "'a'"), -(3235, 1, "''"), -(3235, 0, "'o'"), -(3236, 0, "'n'"), -(3237, 0, "' '"), -(3238, 0, "'e'"), -(3239, 0, "'a'"), -(3240, 0, "'r'"), -(3241, 0, "'t'"), -(3242, 0, "'h'"), -(3243, 0, "' '"), -(3244, 0, "'i'"), -(3245, 0, "'s'"), -(3246, 0, "' '"), -(3247, 0, "'a'"), -(3248, 0, "'n'"), -(3249, 0, "' '"), -(3250, 0, "'a'"), -(3251, 0, "'u'"), -(3252, 0, "'t'"), -(3253, 0, "'o'"), -(3254, 0, "'m'"), -(3255, 0, "'e'"), -(3256, 0, "'r'"), -(3257, 0, "'g'"), -(3258, 0, "'e'"), -(3259, 0, "'?'"), -(3247, 3, "''"), -(3257, 0, "'n'"), -(3258, 0, "'n'"), -(3234, 9, "''"), -(3247, 0, "' '"), -(3248, 0, "'a'"), -(3249, 0, "'n'"), -(3250, 0, "'y'"), -(3251, 0, "'w'"), -(3252, 0, "'a'"), -(3253, 0, "'y'"), -(3257, 0, "'A'"), -(3258, 0, "'u'"), -(3259, 0, "'t'"), -(3260, 0, "'o'"), -(3261, 0, "'m'"), -(3262, 0, "'e'"), -(3263, 0, "'r'"), -(3264, 0, "'g'"), -(3265, 0, "'e'"), -(3266, 0, "' '"), -(3267, 0, "'i'"), -(3268, 0, "'s'"), -(3269, 0, "' '"), -(3270, 0, "'a'"), -(3271, 0, "'n'"), -(3272, 0, "' '"), -(3273, 0, "'a'"), -(3274, 0, "'l'"), -(3275, 0, "'g'"), -(3276, 0, "'o'"), -(3277, 0, "'r'"), -(3278, 0, "'i'"), -(3279, 0, "'t'"), -(3280, 0, "'h'"), -(3281, 0, "'m'"), -(3273, 0, "'i'"), -(3274, 0, "'m'"), -(3275, 0, "'p'"), -(3276, 0, "'l'"), -(3277, 0, "'e'"), -(3278, 0, "'m'"), -(3279, 0, "'e'"), -(3280, 0, "'n'"), -(3281, 0, "'t'"), -(3282, 0, "'a'"), -(3283, 0, "'t'"), -(3284, 0, "'i'"), -(3285, 0, "'o'"), -(3286, 0, "'n'"), -(3287, 0, "' '"), -(3288, 0, "'o'"), -(3289, 0, "'f'"), -(3290, 0, "' '"), -(3291, 0, "'t'"), -(3292, 0, "'h'"), -(3293, 0, "'e'"), -(3294, 0, "' '"), -(3295, 0, "'R'"), -(3296, 0, "'G'"), -(3297, 0, "'A'"), -(3298, 0, "' '"), -(3299, 9, "'C'"), -(3300, 0, "'R'"), -(3301, 0, "'D'"), -(3302, 0, "'T'"), -(3303, 0, "'.'"), -(3304, 0, "' '"), -(3305, 0, "'S'"), -(3305, 1, "''"), -(3305, 0, "'O'"), -(3306, 0, "'o'"), -(3307, 0, "'p'"), -(3308, 0, "'s'"), -(3309, 0, "' '"), -(3310, 0, "'t'"), -(3311, 0, "'h'"), -(3312, 0, "'a'"), -(3313, 0, "'t'"), -(3314, 0, "' '"), -(3315, 0, "'d'"), -(3316, 0, "'o'"), -(3317, 0, "'e'"), -(3318, 0, "'s'"), -(3319, 0, "'n'"), -(3320, 0, "'''"), -(3321, 0, "'t'"), -(3322, 0, "' '"), -(3323, 0, "'h'"), -(3324, 0, "'e'"), -(3325, 0, "'l'"), -(3326, 0, "'p'"), -(3327, 0, "'.'"), -(3328, 0, "' '"), -(3329, 0, "'A'"), -(3330, 0, "'u'"), -(3331, 0, "'t'"), -(3332, 0, "'o'"), -(3333, 0, "'m'"), -(3334, 0, "'e'"), -(3335, 0, "'r'"), -(3336, 0, "'g'"), -(3337, 0, "'e'"), -(3270, 68, "'a'"), -(3271, 0, "' '"), -(3272, 0, "'l'"), -(3273, 0, "'i'"), -(3274, 0, "'b'"), -(3275, 0, "'r'"), -(3276, 0, "'a'"), -(3277, 0, "'r'"), -(3278, 0, "'y'"), -(3279, 0, "' '"), -(3280, 0, "'t'"), -(3281, 0, "'o'"), -(3282, 0, "' '"), -(3283, 0, "'h'"), -(3284, 0, "'e'"), -(3285, 0, "'l'"), -(3286, 0, "'p'"), -(3287, 0, "' '"), -(3288, 0, "'y'"), -(3289, 0, "'o'"), -(3290, 0, "'u'"), -(3291, 0, "' '"), -(3292, 0, "'d'"), -(3293, 0, "'o'"), -(3294, 0, "' '"), -(3295, 0, "'c'"), -(3296, 0, "'o'"), -(3297, 0, "'n'"), -(3298, 0, "'c'"), -(3295, 4, "'c'"), -(3296, 0, "'o'"), -(3297, 0, "'l'"), -(3298, 0, "'l'"), -(3299, 0, "'a'"), -(3300, 0, "'b'"), -(3301, 0, "'o'"), -(3302, 0, "'r'"), -(3303, 0, "'a'"), -(3304, 0, "'t'"), -(3305, 0, "'i'"), -(3306, 0, "'v'"), -(3307, 0, "'e'"), -(3308, 0, "' '"), -(3309, 0, "'e'"), -(3310, 0, "'d'"), -(3311, 0, "'i'"), -(3312, 0, "'t'"), -(3313, 0, "'i'"), -(3314, 0, "'n'"), -(3315, 0, "'g'"), -(3316, 0, "'.'"), -(3317, 0, "' '"), -(3318, 0, "'I'"), -(3319, 0, "'t'"), -(3320, 0, "'s'"), -(3321, 0, "' '"), -(3322, 0, "'b'"), -(3323, 0, "'a'"), -(3324, 0, "'s'"), -(3325, 0, "'e'"), -(3326, 0, "'d'"), -(3327, 0, "' '"), -(3328, 0, "'o'"), -(3329, 0, "'n'"), -(3330, 0, "' '"), -(3331, 0, "'R'"), -(3332, 0, "'G'"), -(3333, 0, "'A'"), -(3322, 0, "'w'"), -(3323, 0, "'r'"), -(3324, 0, "'t'"), -(3324, 1, "''"), -(3324, 0, "'i'"), -(3325, 0, "'t'"), -(3326, 0, "'t'"), -(3327, 0, "'e'"), -(3328, 0, "'n'"), -(3329, 0, "' '"), -(3330, 0, "'b'"), -(3331, 0, "'y'"), -(3332, 0, "' '"), -(3333, 0, "'M'"), -(3334, 0, "'a'"), -(3335, 0, "'r'"), -(3336, 0, "'t'"), -(3337, 0, "'i'"), -(3338, 0, "'n'"), -(3339, 0, "' '"), -(3340, 0, "'K'"), -(3341, 0, "'l'"), -(3342, 0, "'e'"), -(3343, 0, "'p'"), -(3344, 0, "'p'"), -(3345, 0, "'m'"), -(3346, 0, "'a'"), -(3347, 0, "'n'"), -(3348, 0, "'n'"), -(3349, 0, "','"), -(3350, 0, "' '"), -(3351, 0, "'w'"), -(3352, 0, "'h'"), -(3353, 0, "'o'"), -(3354, 0, "'''"), -(3355, 0, "'s'"), -(3356, 0, "' '"), -(3357, 0, "'a'"), -(3358, 0, "' '"), -(3359, 0, "'l'"), -(3360, 0, "'i'"), -(3361, 0, "'t'"), -(3362, 0, "'t'"), -(3363, 0, "'l'"), -(3364, 0, "'e'"), -(3365, 0, "' '"), -(3366, 0, "'b'"), -(3367, 0, "'i'"), -(3368, 0, "'t'"), -(3369, 0, "' '"), -(3370, 0, "'f'"), -(3371, 0, "'a'"), -(3372, 0, "'m'"), -(3373, 0, "'o'"), -(3374, 0, "'u'"), -(3375, 0, "'s'"), -(3376, 0, "' '"), -(3377, 0, "'f'"), -(3378, 0, "'r'"), -(3379, 0, "'o'"), -(3380, 0, "'m'"), -(3381, 0, "' '"), -(3382, 0, "'h'"), -(3383, 0, "'i'"), -(3384, 0, "'s'"), -(3385, 0, "' '"), -(3386, 0, "'B'"), -(3387, 0, "'o'"), -(3388, 0, "'o'"), -(3389, 0, "'k'"), -(3389, 1, "''"), -(3388, 1, "''"), -(3387, 1, "''"), -(3386, 1, "''"), -(3386, 0, "'b'"), -(3387, 0, "'o'"), -(3388, 0, "'o'"), -(3389, 0, "'k'"), -(3390, 0, "' '"), -(3391, 0, "'a'"), -(3392, 0, "'n'"), -(3393, 0, "'d'"), -(3394, 0, "' '"), -(3395, 0, "'e'"), -(3396, 0, "'x'"), -(3397, 0, "'c'"), -(3398, 0, "'e'"), -(3399, 0, "'l'"), -(3400, 0, "'l'"), -(3401, 0, "'e'"), -(3402, 0, "'n'"), -(3403, 0, "'t'"), -(3404, 0, "' '"), -(3405, 0, "'t'"), -(3406, 0, "'a'"), -(3407, 0, "'l'"), -(3408, 0, "'k'"), -(3409, 0, "'s'"), -(3410, 0, "'.'"), -(3411, 0, "' '"), -(3412, 0, "'I'"), -(3413, 0, "'t'"), -(3414, 0, "'s'"), -(3415, 0, "' '"), -(3424, 0, "' '"), -(3425, 0, "'a'"), -(3426, 0, "'n'"), -(3427, 0, "' '"), -(3428, 0, "'a'"), -(3429, 0, "'l'"), -(3430, 0, "'g'"), -(3431, 0, "'o'"), -(3428, 4, "''"), -(3427, 1, "''"), -(3426, 1, "''"), -(3426, 0, "' '"), -(3426, 1, "''"), -(3426, 1, "''"), -(3426, 0, "'n'"), -(3427, 0, "' '"), -(3428, 0, "'a'"), -(3429, 0, "'l'"), -(3430, 0, "'g'"), -(3431, 0, "'o'"), -(3432, 0, "'r'"), -(3433, 0, "'i'"), -(3434, 0, "'t'"), -(3435, 0, "'h'"), -(3436, 0, "'m'"), -(3437, 0, "' '"), -(3438, 0, "'c'"), -(3439, 0, "'a'"), -(3440, 0, "'l'"), -(3441, 0, "'l'"), -(3442, 0, "'e'"), -(3443, 0, "'d'"), -(3444, 0, "' '"), -(3448, 0, "','"), -(3449, 0, "' '"), -(3450, 0, "'w'"), -(3451, 0, "'h'"), -(3452, 0, "'i'"), -(3453, 0, "'c'"), -(3454, 0, "'h'"), -(3455, 0, "' '"), -(3456, 0, "'c'"), -(3456, 1, "''"), -(3456, 0, "'y'"), -(3457, 0, "'o'"), -(3458, 0, "'u'"), -(3459, 0, "' '"), -(3460, 0, "'c'"), -(3461, 0, "'a'"), -(3462, 0, "'n'"), -(3463, 0, "' '"), -(3464, 0, "'r'"), -(3465, 0, "'e'"), -(3466, 0, "'a'"), -(3467, 0, "'d'"), -(3468, 0, "' '"), -(3469, 0, "'a'"), -(3470, 0, "'b'"), -(3471, 0, "'o'"), -(3472, 0, "'u'"), -(3473, 0, "'t'"), -(3474, 0, "' '"), -(3475, 0, "'i'"), -(3476, 0, "'n'"), -(3477, 0, "' '"), -(3478, 0, "'a'"), -(3479, 0, "' '"), -(3480, 0, "'p'"), -(3481, 0, "'a'"), -(3482, 0, "'p'"), -(3483, 0, "'e'"), -(3484, 0, "'r'"), -(3485, 0, "' '"), -(3486, 0, "'i'"), -(3487, 0, "'f'"), -(3488, 0, "' '"), -(3489, 0, "'y'"), -(3490, 0, "'o'"), -(3491, 0, "'u'"), -(3492, 0, "'''"), -(3493, 0, "'r'"), -(3494, 0, "'e'"), -(3495, 0, "' '"), -(3496, 0, "'i'"), -(3497, 0, "'n'"), -(3498, 0, "'t'"), -(3499, 0, "'o'"), -(3500, 0, "' '"), -(3501, 0, "'t'"), -(3502, 0, "'h'"), -(3503, 0, "'a'"), -(3504, 0, "'t'"), -(3505, 0, "' '"), -(3506, 0, "'s'"), -(3507, 0, "'o'"), -(3508, 0, "'r'"), -(3509, 0, "'t'"), -(3510, 0, "' '"), -(3511, 0, "'o'"), -(3512, 0, "'f'"), -(3513, 0, "' '"), -(3514, 0, "'t'"), -(3515, 0, "'h'"), -(3516, 0, "'i'"), -(3517, 0, "'n'"), -(3518, 0, "'g'"), -(3519, 0, "'.'"), -(3520, 0, "'n'"), -(3521, 0, "'n'"), -(3522, 0, "'W'"), -(3523, 0, "'h'"), -(3524, 0, "'e'"), -(3525, 0, "'n'"), -(3526, 0, "' '"), -(3527, 0, "'p'"), -(3528, 0, "'r'"), -(3529, 0, "'o'"), -(3530, 0, "'c'"), -(3531, 0, "'e'"), -(3532, 0, "'s'"), -(3533, 0, "'s'"), -(3534, 0, "'i'"), -(3535, 0, "'n'"), -(3536, 0, "'g'"), -(3527, 10, "'d'"), -(3528, 0, "'o'"), -(3529, 0, "'i'"), -(3530, 0, "'n'"), -(3531, 0, "'g'"), -(3532, 0, "' '"), -(3522, 11, "'C'"), -(3522, 1, "''"), -(3522, 0, "'C'"), -(3523, 0, "'o'"), -(3524, 0, "'l'"), -(3525, 0, "'l'"), -(3526, 0, "'a'"), -(3527, 0, "'b'"), -(3528, 0, "'o'"), -(3529, 0, "'r'"), -(3530, 0, "'a'"), -(3531, 0, "'t'"), -(3532, 0, "'i'"), -(3533, 0, "'v'"), -(3534, 0, "'e'"), -(3535, 0, "' '"), -(3536, 0, "'t'"), -(3537, 0, "'e'"), -(3538, 0, "'x'"), -(3539, 0, "'t'"), -(3540, 0, "' '"), -(3541, 0, "'e'"), -(3542, 0, "'d'"), -(3543, 0, "'i'"), -(3544, 0, "'t'"), -(3545, 0, "'i'"), -(3546, 0, "'n'"), -(3547, 0, "'g'"), -(3548, 0, "' '"), -(3549, 0, "'w'"), -(3550, 0, "'o'"), -(3551, 0, "'r'"), -(3552, 0, "'k'"), -(3553, 0, "'s'"), -(3554, 0, "' '"), -(3555, 0, "'b'"), -(3556, 0, "'y'"), -(3557, 0, "' '"), -(3558, 0, "'t'"), -(3559, 0, "'h'"), -(3560, 0, "'i'"), -(3561, 0, "'n'"), -(3562, 0, "'k'"), -(3563, 0, "'i'"), -(3564, 0, "'n'"), -(3565, 0, "'g'"), -(3566, 0, "' '"), -(3567, 0, "'a'"), -(3568, 0, "'b'"), -(3569, 0, "'o'"), -(3570, 0, "'u'"), -(3571, 0, "'t'"), -(3572, 0, "' '"), -(3573, 0, "'a'"), -(3574, 0, "' '"), -(3575, 0, "'s'"), -(3576, 0, "'t'"), -(3577, 0, "'r'"), -(3578, 0, "'i'"), -(3579, 0, "'n'"), -(3580, 0, "'g'"), -(3581, 0, "' '"), -(3582, 0, "'a'"), -(3583, 0, "'s'"), -(3584, 0, "' '"), -(3585, 0, "'a'"), -(3586, 0, "' '"), -(3587, 0, "'l'"), -(3588, 0, "'i'"), -(3589, 0, "'s'"), -(3590, 0, "'t'"), -(3548, 0, "' '"), -(3549, 0, "'i'"), -(3550, 0, "'n'"), -(3551, 0, "' '"), -(3552, 0, "'a'"), -(3553, 0, "'u'"), -(3554, 0, "'t'"), -(3555, 0, "'o'"), -(3556, 0, "'m'"), -(3557, 0, "'e'"), -(3558, 0, "'r'"), -(3559, 0, "'g'"), -(3560, 0, "'e'"), -(3522, 39, "''"), -(3522, 0, "'L'"), -(3523, 0, "'i'"), -(3524, 0, "'k'"), -(3525, 0, "'e'"), -(3525, 1, "''"), -(3524, 1, "''"), -(3523, 1, "''"), -(3522, 1, "''"), -(3522, 0, "'A'"), -(3523, 0, "'u'"), -(3524, 0, "'t'"), -(3525, 0, "'o'"), -(3526, 0, "'m'"), -(3527, 0, "'e'"), -(3528, 0, "'r'"), -(3529, 0, "'g'"), -(3530, 0, "'e'"), -(3531, 0, "' '"), -(3532, 0, "'('"), -(3533, 0, "'a'"), -(3534, 0, "'n'"), -(3535, 0, "'d'"), -(3536, 0, "' '"), -(3537, 0, "'o'"), -(3538, 0, "'t'"), -(3539, 0, "'h'"), -(3540, 0, "'e'"), -(3541, 0, "'r'"), -(3542, 0, "' '"), -(3543, 0, "'C'"), -(3544, 0, "'R'"), -(3545, 0, "'D'"), -(3546, 0, "'T'"), -(3547, 0, "'s'"), -(3548, 0, "' '"), -(3548, 1, "''"), -(3548, 0, "')'"), -(3549, 0, "' '"), -(3550, 0, "'t'"), -(3551, 0, "'h'"), -(3552, 0, "'i'"), -(3553, 0, "'n'"), -(3554, 0, "'k'"), -(3555, 0, "' '"), -(3556, 0, "'o'"), -(3557, 0, "'f'"), -(3558, 0, "' '"), -(3559, 0, "'a'"), -(3560, 0, "' '"), -(3561, 0, "'s'"), -(3562, 0, "'t'"), -(3562, 1, "''"), -(3561, 1, "''"), -(3560, 1, "''"), -(3560, 0, "' '"), -(3561, 0, "'s'"), -(3562, 0, "'h'"), -(3563, 0, "'a'"), -(3564, 0, "'r'"), -(3565, 0, "'e'"), -(3566, 0, "'d'"), -(3567, 0, "' '"), -(3568, 0, "'d'"), -(3569, 0, "'o'"), -(3570, 0, "'c'"), -(3571, 0, "'u'"), -(3572, 0, "'m'"), -(3573, 0, "'e'"), -(3574, 0, "'n'"), -(3575, 0, "'t'"), -(3576, 0, "' '"), -(3577, 0, "'a'"), -(3578, 0, "'s'"), -(3579, 0, "' '"), -(3580, 0, "'a'"), -(3581, 0, "' '"), -(3582, 0, "'l'"), -(3583, 0, "'i'"), -(3584, 0, "'s'"), -(3585, 0, "'t'"), -(3586, 0, "' '"), -(3587, 0, "'o'"), -(3588, 0, "'f'"), -(3589, 0, "' '"), -(3590, 0, "'c'"), -(3591, 0, "'h'"), -(3592, 0, "'a'"), -(3593, 0, "'r'"), -(3594, 0, "'a'"), -(3595, 0, "'c'"), -(3596, 0, "'t'"), -(3597, 0, "'e'"), -(3598, 0, "'r'"), -(3599, 0, "'s'"), -(3600, 0, "'.'"), -(3601, 0, "' '"), -(3602, 43, "''"), -(3602, 0, "'W'"), -(3603, 0, "'h'"), -(3604, 0, "'e'"), -(3605, 0, "'n'"), -(3606, 0, "' '"), -(3607, 0, "'u'"), -(3608, 0, "'s'"), -(3609, 0, "'e'"), -(3610, 0, "'r'"), -(3611, 0, "'s'"), -(3602, 10, "'E'"), -(3603, 0, "'a'"), -(3604, 0, "'c'"), -(3605, 0, "'h'"), -(3606, 0, "' '"), -(3607, 0, "'i'"), -(3608, 0, "'n'"), -(3609, 0, "'s'"), -(3610, 0, "'e'"), -(3611, 0, "'r'"), -(3612, 0, "'t'"), -(3613, 0, "'e'"), -(3614, 0, "'d'"), -(3615, 0, "' '"), -(3616, 0, "'i'"), -(3617, 0, "'t'"), -(3618, 0, "'e'"), -(3619, 0, "'m'"), -(3620, 0, "' '"), -(3621, 0, "'i'"), -(3622, 0, "'n'"), -(3623, 0, "' '"), -(3624, 0, "'t'"), -(3625, 0, "'h'"), -(3626, 0, "'e'"), -(3627, 0, "' '"), -(3628, 0, "'d'"), -(3629, 0, "'o'"), -(3630, 0, "'c'"), -(3631, 0, "'u'"), -(3632, 0, "'m'"), -(3633, 0, "'e'"), -(3634, 0, "'n'"), -(3635, 0, "'t'"), -(3636, 0, "' '"), -(3606, 9, "''"), -(3607, 4, "'c'"), -(3608, 0, "'h'"), -(3609, 0, "'a'"), -(3610, 0, "'r'"), -(3611, 0, "'a'"), -(3612, 0, "'c'"), -(3613, 0, "'t'"), -(3614, 0, "'e'"), -(3615, 0, "'r'"), -(3633, 0, "'i'"), -(3634, 0, "'s'"), -(3635, 0, "' '"), -(3636, 0, "'i'"), -(3637, 0, "'n'"), -(3638, 0, "'s'"), -(3639, 0, "'e'"), -(3640, 0, "'r'"), -(3641, 0, "'t'"), -(3642, 0, "'e'"), -(3643, 0, "'d'"), -(3644, 0, "' '"), -(3645, 0, "'i'"), -(3646, 0, "'n'"), -(3647, 0, "'t'"), -(3648, 0, "'o'"), -(3649, 0, "' '"), -(3650, 0, "'a'"), -(3651, 0, "' '"), -(3633, 19, "'g'"), -(3634, 0, "'e'"), -(3635, 0, "'t'"), -(3636, 0, "'s'"), -(3637, 0, "' '"), -(3638, 0, "'a'"), -(3639, 0, "' '"), -(3640, 0, "'u'"), -(3641, 0, "'n'"), -(3642, 0, "'i'"), -(3643, 0, "'q'"), -(3644, 0, "'u'"), -(3645, 0, "'e'"), -(3646, 0, "' '"), -(3647, 0, "'I'"), -(3648, 0, "'D'"), -(3649, 0, "' '"), -(3650, 0, "'('"), -(3650, 1, "''"), -(3650, 0, "'b'"), -(3651, 0, "'a'"), -(3652, 0, "'s'"), -(3653, 0, "'e'"), -(3654, 0, "'d'"), -(3655, 0, "' '"), -(3656, 0, "'o'"), -(3657, 0, "'n'"), -(3658, 0, "' '"), -(3650, 9, "''"), -(3649, 1, "''"), -(3649, 0, "' '"), -(3650, 0, "'-'"), -(3651, 0, "' '"), -(3652, 0, "'w'"), -(3653, 0, "'h'"), -(3654, 0, "'i'"), -(3655, 0, "'c'"), -(3656, 0, "'h'"), -(3657, 0, "' '"), -(3658, 0, "'i'"), -(3659, 0, "'s'"), -(3660, 0, "'n'"), -(3661, 0, "'''"), -(3662, 0, "'t'"), -(3663, 0, "' '"), -(3664, 0, "'a'"), -(3665, 0, "'s'"), -(3666, 0, "' '"), -(3667, 0, "'b'"), -(3668, 0, "'a'"), -(3669, 0, "'d'"), -(3670, 0, "' '"), -(3671, 0, "'a'"), -(3672, 0, "'s'"), -(3673, 0, "' '"), -(3674, 0, "'y'"), -(3675, 0, "'o'"), -(3676, 0, "'u'"), -(3677, 0, "' '"), -(3678, 0, "'t'"), -(3679, 0, "'h'"), -(3680, 0, "'i'"), -(3681, 0, "'n'"), -(3682, 0, "'k'"), -(3683, 0, "','"), -(3657, 27, "' '"), -(3658, 0, "'w'"), -(3659, 0, "'e'"), -(3660, 0, "' '"), -(3661, 0, "'c'"), -(3662, 0, "'a'"), -(3660, 3, "''"), -(3657, 3, "' isn't as bad as you think,'"), -(3657, 27, "''"), -(3650, 7, "''"), -(3649, 1, "''"), -(3649, 0, "' '"), -(3650, 0, "'b'"), -(3651, 0, "'a'"), -(3652, 0, "'s'"), -(3653, 0, "'e'"), -(3654, 0, "'d'"), -(3655, 0, "' '"), -(3656, 0, "'o'"), -(3657, 0, "'n'"), -(3658, 0, "' '"), -(3649, 10, "''"), -(3649, 0, "','"), -(3650, 0, "' '"), -(3651, 0, "'a'"), -(3652, 0, "'n'"), -(3653, 0, "'d'"), -(3654, 0, "' '"), -(3655, 0, "'e'"), -(3656, 0, "'a'"), -(3657, 0, "'c'"), -(3658, 0, "'h'"), -(3659, 0, "' '"), -(3660, 0, "'i'"), -(3661, 0, "'n'"), -(3662, 0, "'s'"), -(3663, 0, "'e'"), -(3664, 0, "'r'"), -(3665, 0, "'t'"), -(3666, 0, "' '"), -(3667, 0, "'s'"), -(3668, 0, "'p'"), -(3669, 0, "'e'"), -(3670, 0, "'c'"), -(3671, 0, "'i'"), -(3672, 0, "'f'"), -(3673, 0, "'i'"), -(3674, 0, "'e'"), -(3675, 0, "'s'"), -(3676, 0, "' '"), -(3677, 0, "'t'"), -(3678, 0, "'h'"), -(3679, 0, "'a'"), -(3680, 0, "'t'"), -(3681, 0, "' '"), -(3682, 0, "'i'"), -(3683, 0, "'t'"), -(3684, 0, "' '"), -(3685, 0, "'i'"), -(3686, 0, "'n'"), -(3682, 5, "'w'"), -(3667, 16, "'n'"), -(3668, 0, "'a'"), -(3669, 0, "'m'"), -(3670, 0, "'e'"), -(3671, 0, "'s'"), -(3672, 0, "' '"), -(3673, 0, "'w'"), -(3674, 0, "'h'"), -(3675, 0, "'i'"), -(3676, 0, "'c'"), -(3677, 0, "'h'"), -(3655, 0, "'w'"), -(3656, 0, "'h'"), -(3657, 0, "'n'"), -(3658, 0, "'e'"), -(3659, 0, "'e'"), -(3660, 0, "'v'"), -(3661, 0, "'e'"), -(3662, 0, "'r'"), -(3655, 8, "'w'"), -(3656, 0, "'h'"), -(3657, 0, "'e'"), -(3658, 0, "'n'"), -(3659, 0, "'e'"), -(3660, 0, "'v'"), -(3661, 0, "'e'"), -(3662, 0, "'r'"), -(3663, 0, "' '"), -(3664, 0, "'y'"), -(3665, 0, "'o'"), -(3666, 0, "'u'"), -(3667, 0, "' '"), -(3667, 1, "''"), -(3666, 1, "''"), -(3665, 1, "''"), -(3664, 1, "''"), -(3664, 0, "'i'"), -(3665, 0, "'n'"), -(3666, 0, "'s'"), -(3667, 0, "'e'"), -(3668, 0, "'r'"), -(3669, 0, "'t'"), -(3670, 0, "' '"), -(3671, 0, "'s'"), -(3672, 0, "'o'"), -(3673, 0, "'m'"), -(3674, 0, "'e'"), -(3675, 0, "'t'"), -(3676, 0, "'h'"), -(3677, 0, "'i'"), -(3678, 0, "'n'"), -(3679, 0, "'g'"), -(3680, 0, "','"), -(3681, 0, "' '"), -(3682, 0, "'y'"), -(3683, 0, "'o'"), -(3684, 0, "'u'"), -(3685, 0, "' '"), -(3686, 0, "'n'"), -(3687, 0, "'a'"), -(3688, 0, "'m'"), -(3689, 0, "'e'"), -(3690, 23, "' '"), -(3691, 0, "'w'"), -(3692, 0, "'h'"), -(3693, 0, "'a'"), -(3694, 0, "'t'"), -(3695, 0, "' '"), -(3696, 0, "'y'"), -(3697, 0, "'o'"), -(3698, 0, "'u'"), -(3699, 0, "'''"), -(3700, 0, "'r'"), -(3701, 0, "'e'"), -(3702, 0, "' '"), -(3703, 0, "'i'"), -(3704, 0, "'n'"), -(3705, 0, "'s'"), -(3706, 0, "'e'"), -(3707, 0, "'r'"), -(3708, 0, "'t'"), -(3709, 0, "'i'"), -(3710, 0, "'n'"), -(3711, 0, "'g'"), -(3712, 0, "' '"), -(3713, 0, "'a'"), -(3714, 0, "'f'"), -(3715, 0, "'t'"), -(3716, 0, "'e'"), -(3717, 0, "'r'"), -(3718, 0, "'.'"), -(3719, 0, "' '"), -(3720, 0, "'E'"), -(3721, 0, "'g'"), -(3722, 0, "' '"), -(3723, 0, "'i'"), -(3724, 0, "'f'"), -(3725, 0, "' '"), -(3726, 0, "'I'"), -(3727, 0, "' '"), -(3728, 0, "'t'"), -(3729, 0, "'y'"), -(3730, 0, "'p'"), -(3731, 0, "'e'"), -(3732, 0, "' '"), -(3733, 0, "'''"), -(3734, 0, "'a'"), -(3735, 0, "'b'"), -(3736, 0, "'c'"), -(3737, 0, "'''"), -(3738, 0, "','"), -(3739, 0, "' '"), -(3740, 0, "'a'"), -(3741, 0, "'u'"), -(3742, 0, "'t'"), -(3743, 0, "'o'"), -(3744, 0, "'m'"), -(3745, 0, "'e'"), -(3746, 0, "'r'"), -(3747, 0, "'g'"), -(3748, 0, "'e'"), -(3749, 0, "' '"), -(3750, 0, "'c'"), -(3751, 0, "'r'"), -(3752, 0, "'e'"), -(3753, 0, "'a'"), -(3754, 0, "'t'"), -(3755, 0, "'e'"), -(3756, 0, "'s'"), -(3757, 0, "' '"), -(3758, 0, "'3'"), -(3759, 0, "' '"), -(3760, 0, "'i'"), -(3761, 0, "'t'"), -(3762, 0, "'m'"), -(3763, 0, "'e'"), -(3763, 1, "''"), -(3763, 0, "'e'"), -(3763, 1, "''"), -(3762, 1, "''"), -(3762, 0, "'e'"), -(3763, 0, "'m'"), -(3764, 0, "'s'"), -(3765, 0, "':'"), -(3766, 0, "'n'"), -(3767, 0, "'n'"), -(3768, 0, "'-'"), -(3769, 0, "' '"), -(3770, 0, "'I'"), -(3771, 0, "'n'"), -(3772, 0, "'s'"), -(3773, 0, "'e'"), -(3774, 0, "'r'"), -(3775, 0, "' '"), -(3775, 1, "''"), -(3775, 0, "'t'"), -(3776, 0, "' '"), -(3777, 0, "'''"), -(3778, 0, "'a'"), -(3779, 0, "'''"), -(3780, 0, "' '"), -(3781, 0, "'i'"), -(3782, 0, "'d'"), -(3783, 0, "' '"), -(3784, 0, "'('"), -(3785, 0, "'s'"), -(3786, 0, "'e'"), -(3787, 0, "'p'"), -(3788, 0, "'h'"), -(3789, 0, "','"), -(3790, 0, "' '"), -(3791, 0, "'0'"), -(3792, 0, "')'"), -(3793, 0, "'`'"), -(3784, 0, "'`'"), -(3795, 0, "' '"), -(3796, 0, "'a'"), -(3797, 0, "'f'"), -(3798, 0, "'t'"), -(3799, 0, "'e'"), -(3800, 0, "'r'"), -(3801, 0, "' '"), -(3802, 0, "'('"), -(3803, 0, "'R'"), -(3804, 0, "'O'"), -(3805, 0, "'O'"), -(3806, 0, "'T'"), -(3807, 0, "')'"), -(3807, 1, "''"), -(3807, 0, "'`'"), -(3802, 1, "''"), -(3802, 0, "'`'"), -(3768, 0, "'- Insert 'a' id `(seph, 0)` after `ROOT`n'"), -(3819, 1, "''"), -(3819, 0, "'b'"), -(3833, 1, "''"), -(3833, 0, "'1'"), -(3844, 4, "''"), -(3844, 0, "'('"), -(3845, 0, "'s'"), -(3846, 0, "'e'"), -(3847, 0, "'p'"), -(3848, 0, "'h'"), -(3849, 0, "','"), -(3850, 0, "' '"), -(3851, 0, "'0'"), -(3852, 0, "')'"), -(3809, 0, "'- Insert 'b' id `(seph, 1)` after `(seph, 0)`n'"), -(3865, 1, "''"), -(3865, 0, "'c'"), -(3879, 1, "''"), -(3879, 0, "'2'"), -(3897, 1, "''"), -(3897, 0, "'1'"), -(3900, 0, "'n'"), -(3901, 0, "'n'"), -(3902, 0, "'H'"), -(3903, 0, "'o'"), -(3904, 0, "'w'"), -(3905, 0, "' '"), -(3906, 0, "'w'"), -(3906, 1, "''"), -(3906, 0, "'s'"), -(3907, 0, "'h'"), -(3908, 0, "'o'"), -(3909, 0, "'u'"), -(3910, 0, "'l'"), -(3911, 0, "'d'"), -(3912, 0, "' '"), -(3913, 0, "'y'"), -(3914, 0, "'o'"), -(3915, 0, "'u'"), -(3916, 0, "' '"), -(3902, 15, "'How should you'"), -(2867, 0, "'https://martin.kleppmann.com/'"), -(3945, 0, "' '"), -(3946, 0, "'r'"), -(3947, 0, "'e'"), -(3948, 0, "'p'"), -(3949, 0, "'r'"), -(3950, 0, "'e'"), -(3951, 0, "'s'"), -(3952, 0, "'e'"), -(3953, 0, "'n'"), -(3954, 0, "'t'"), -(3955, 0, "' '"), -(3956, 0, "'t'"), -(3957, 0, "'h'"), -(3958, 0, "'a'"), -(3959, 0, "'t'"), -(3960, 0, "'?'"), -(3961, 0, "' '"), -(3962, 0, "'A'"), -(3963, 0, "' '"), -(3964, 0, "'t'"), -(3965, 0, "'r'"), -(3966, 0, "'e'"), -(3967, 0, "'e'"), -(3968, 0, "' '"), -(3969, 0, "'o'"), -(3970, 0, "'f'"), -(3971, 0, "' '"), -(3972, 0, "'c'"), -(3973, 0, "'o'"), -(3974, 0, "'u'"), -(3975, 0, "'r'"), -(3976, 0, "'s'"), -(3977, 0, "'e'"), -(3978, 0, "'!'"), -(3979, 0, "'n'"), -(3980, 0, "'n'"), -(3981, 0, "'>'"), -(3982, 0, "' '"), -(3983, 0, "'D'"), -(3984, 0, "'i'"), -(3985, 0, "'a'"), -(3986, 0, "'g'"), -(3987, 0, "'r'"), -(3988, 0, "'a'"), -(3989, 0, "'m'"), -(3990, 0, "' '"), -(3991, 0, "'h'"), -(3992, 0, "'e'"), -(3993, 0, "'r'"), -(3994, 0, "'e'"), -(3961, 0, "' '"), -(3962, 0, "'W'"), -(3963, 0, "'e'"), -(3964, 0, "'l'"), -(3965, 0, "'l'"), -(3966, 0, "','"), -(3967, 0, "' '"), -(3968, 0, "'i'"), -(3969, 0, "'t'"), -(3970, 0, "'s'"), -(3971, 0, "' '"), -(3972, 0, "'a'"), -(3973, 0, "' '"), -(3961, 13, "''"), -(3930, 0, "'n'"), -(3930, 0, "'n'"), -(3931, 0, "'L'"), -(3932, 0, "'e'"), -(3933, 0, "'t'"), -(3934, 0, "' '"), -(3935, 0, "'s'"), -(3935, 1, "''"), -(3934, 1, "''"), -(3934, 0, "'s'"), -(3935, 0, "' '"), -(3936, 0, "'s'"), -(3937, 0, "'a'"), -(3938, 0, "'y'"), -(3939, 0, "' '"), -(3940, 0, "' '"), -(3940, 1, "''"), -(3940, 0, "'I'"), -(3941, 0, "' '"), -(3942, 0, "'u'"), -(3943, 0, "'n'"), -(3944, 0, "'d'"), -(3944, 1, "''"), -(3943, 1, "''"), -(3942, 1, "''"), -(3942, 0, "'i'"), -(3943, 0, "'n'"), -(3944, 0, "'s'"), -(3945, 0, "'e'"), -(3946, 0, "'r'"), -(3947, 0, "'t'"), -(3948, 0, "' '"), -(3949, 0, "'a'"), -(3950, 0, "' '"), -(3951, 0, "'''"), -(3951, 1, "''"), -(3950, 1, "''"), -(3950, 0, "'n'"), -(3951, 0, "' '"), -(3952, 0, "'''"), -(3953, 0, "'x'"), -(3954, 0, "'''"), -(3955, 0, "' '"), -(3956, 0, "'b'"), -(3957, 0, "'e'"), -(3958, 0, "'t'"), -(3959, 0, "'w'"), -(3960, 0, "'e'"), -(3961, 0, "'e'"), -(3962, 0, "'n'"), -(3963, 0, "' '"), -(3964, 0, "'''"), -(3964, 1, "''"), -(3964, 0, "'a'"), -(3965, 0, "' '"), -(3966, 0, "'a'"), -(3967, 0, "'n'"), -(3968, 0, "'d'"), -(3969, 0, "' '"), -(3970, 0, "'b'"), -(3971, 0, "'''"), -(3970, 0, "'''"), -(3964, 0, "'''"), -(3966, 0, "'''"), -(3966, 1, "''"), -(3964, 1, "''"), -(3964, 0, "'*'"), -(3966, 0, "'*'"), -(3974, 1, "''"), -(3974, 0, "'*'"), -(3973, 1, "''"), -(3972, 1, "''"), -(3972, 0, "'*'"), -(3973, 0, "'b'"), -(3975, 0, "','"), -(3976, 0, "' '"), -(3977, 0, "'s'"), -(3978, 0, "'o'"), -(3979, 0, "' '"), -(3980, 0, "'I'"), -(3981, 0, "' '"), -(3982, 0, "'g'"), -(3983, 0, "'e'"), -(3984, 0, "'t'"), -(3985, 0, "' '"), -(3986, 0, "'''"), -(3987, 0, "'a'"), -(3988, 0, "'b'"), -(3988, 1, "''"), -(3988, 0, "'X'"), -(3989, 0, "'b'"), -(3990, 0, "'c'"), -(3991, 0, "'''"), -(3992, 0, "'.'"), -(3993, 0, "' '"), -(3994, 0, "'I'"), -(3995, 0, "' '"), -(3996, 0, "'g'"), -(3997, 0, "'e'"), -(3998, 0, "'t'"), -(3999, 0, "' '"), -(4000, 0, "'t'"), -(4001, 0, "'h'"), -(4002, 0, "'e'"), -(4003, 0, "'s'"), -(4004, 0, "'e'"), -(4005, 0, "' '"), -(4006, 0, "'i'"), -(4007, 0, "'t'"), -(4008, 0, "'e'"), -(4009, 0, "'m'"), -(4010, 0, "'s'"), -(4011, 0, "':'"), -(3994, 18, "'W'"), -(3995, 0, "'h'"), -(3995, 1, "''"), -(3994, 1, "''"), -(3994, 0, "'T'"), -(3995, 0, "'h'"), -(3996, 0, "'e'"), -(3997, 0, "'n'"), -(3998, 0, "' '"), -(3999, 0, "'w'"), -(4000, 0, "'e'"), -(4001, 0, "' '"), -(4002, 0, "'h'"), -(4003, 0, "'a'"), -(4004, 0, "'v'"), -(4005, 0, "'e'"), -(4006, 0, "':'"), -(4007, 0, "'n'"), -(4008, 0, "'n'"), -(4009, 0, "'n- Insert 'a' id `(seph, 0)` after `ROOT`n- Insert 'b' id `(seph, 1)` after `(seph, 0)`n- Insert 'c' id `(seph, 2)` after `(seph, 1)`'"), -(4008, 1, "''"), -(4009, 0, "'- Insert 'a' id `(seph, 0)` after `ROOT`n'"), -(4060, 1, "''"), -(4060, 0, "'x'"), -(4074, 1, "''"), -(4074, 0, "'3'"), -(4089, 0, "')'"), -(4085, 0, "'('"), -(4086, 4, "'s'"), -(4087, 0, "'e'"), -(4088, 0, "'p'"), -(4089, 0, "'h'"), -(4090, 0, "','"), -(4091, 0, "' '"), -(4092, 0, "'0'"), -(4188, 0, "'n'"), -(4188, 0, "'n'"), -(4189, 0, "'T'"), -(4190, 0, "'h'"), -(4191, 0, "'i'"), -(4192, 0, "'s'"), -(4193, 0, "' '"), -(4194, 0, "'i'"), -(4195, 0, "'s'"), -(4196, 0, "'n'"), -(4197, 0, "'''"), -(4198, 0, "'t'"), -(4199, 0, "' '"), -(4200, 0, "'g'"), -(4201, 0, "'o'"), -(4202, 0, "'o'"), -(4189, 14, "'N'"), -(4190, 0, "'o'"), -(4191, 0, "'t'"), -(4192, 0, "'e'"), -(4193, 0, "' '"), -(4194, 0, "'t'"), -(4195, 0, "'h'"), -(4196, 0, "'e'"), -(4197, 0, "' '"), -(4198, 0, "'''"), -(4199, 0, "'x'"), -(4200, 0, "'''"), -(4201, 0, "' '"), -(4202, 0, "'a'"), -(4203, 0, "'n'"), -(4204, 0, "'d'"), -(4205, 0, "' '"), -(4206, 0, "'''"), -(4207, 0, "'b'"), -(4208, 0, "'''"), -(4209, 0, "' '"), -(4210, 0, "'b'"), -(4211, 0, "'o'"), -(4212, 0, "'t'"), -(4213, 0, "'h'"), -(4214, 0, "' '"), -(4189, 26, "'Note the 'x' and 'b' both'"), -(4216, 65, "''"), -(3930, 0, "'n'"), -(3930, 0, "'n'"), -(3931, 0, "'How should you represent that? A tree of course!nn> Diagram heren'"), -(3995, 1, "''"), -(4280, 0, "' '"), -(4281, 0, "'i'"), -(4282, 0, "'n'"), -(4283, 0, "'s'"), -(4284, 0, "'e'"), -(4285, 0, "'r'"), -(4286, 0, "'t'"), -(4287, 0, "' '"), -(4288, 0, "'a'"), -(4289, 0, "'t'"), -(4290, 0, "' '"), -(4291, 0, "'t'"), -(4292, 0, "'h'"), -(4293, 0, "'e'"), -(4294, 0, "' '"), -(4295, 0, "'s'"), -(4296, 0, "'a'"), -(4297, 0, "'m'"), -(4298, 0, "'e'"), -(4299, 0, "' '"), -(4300, 0, "'l'"), -(4301, 0, "'o'"), -(4302, 0, "'c'"), -(4303, 0, "'a'"), -(4304, 0, "'t'"), -(4305, 0, "'i'"), -(4306, 0, "'o'"), -(4307, 0, "'n'"), -(4308, 0, "'.'"), -(4309, 0, "' '"), -(4310, 0, "'S'"), -(4310, 1, "''"), -(4310, 0, "'T'"), -(4311, 0, "'h'"), -(4312, 0, "'i'"), -(4313, 0, "'s'"), -(4314, 0, "' '"), -(4315, 0, "'w'"), -(4316, 0, "'i'"), -(4317, 0, "'l'"), -(4318, 0, "'l'"), -(4319, 0, "' '"), -(4320, 0, "'h'"), -(4321, 0, "'a'"), -(4322, 0, "'p'"), -(4323, 0, "'p'"), -(4324, 0, "'e'"), -(4325, 0, "'n'"), -(4326, 0, "' '"), -(4327, 0, "'w'"), -(4328, 0, "'h'"), -(4329, 0, "'e'"), -(4330, 0, "'n'"), -(4331, 0, "' '"), -(4332, 0, "'c'"), -(4332, 1, "''"), -(4332, 0, "'u'"), -(4333, 0, "'s'"), -(4334, 0, "'e'"), -(4335, 0, "'r'"), -(4336, 0, "'t'"), -(4336, 1, "''"), -(4336, 0, "'s'"), -(4337, 0, "' '"), -(4338, 0, "'t'"), -(4339, 0, "'y'"), -(4340, 0, "'p'"), -(4341, 0, "'e'"), -(4342, 0, "' '"), -(4343, 0, "'i'"), -(4344, 0, "'n'"), -(4345, 0, "' '"), -(4346, 0, "'t'"), -(4347, 0, "'h'"), -(4348, 0, "'e'"), -(4349, 0, "' '"), -(4350, 0, "'s'"), -(4351, 0, "'a'"), -(4352, 0, "'m'"), -(4353, 0, "'e'"), -(4354, 0, "' '"), -(4355, 0, "'l'"), -(4356, 0, "'o'"), -(4357, 0, "'c'"), -(4358, 0, "'a'"), -(4359, 0, "'t'"), -(4360, 0, "'i'"), -(4361, 0, "'o'"), -(4362, 0, "'n'"), -(4363, 0, "','"), -(4364, 0, "' '"), -(4365, 0, "'a'"), -(4366, 0, "'n'"), -(4367, 0, "'d'"), -(4368, 0, "' '"), -(4369, 0, "'w'"), -(4370, 0, "'e'"), -(4371, 0, "' '"), -(4372, 0, "'n'"), -(4373, 0, "'o'"), -(4374, 0, "'r'"), -(4375, 0, "'m'"), -(4376, 0, "'a'"), -(4377, 0, "'l'"), -(4378, 0, "'l'"), -(4379, 0, "'y'"), -(4380, 0, "' '"), -(4381, 0, "'c'"), -(4382, 0, "'o'"), -(4383, 0, "'m'"), -(4384, 0, "'p'"), -(4385, 0, "'a'"), -(4386, 0, "'r'"), -(4387, 0, "'e'"), -(4388, 0, "' '"), -(4389, 0, "'t'"), -(4390, 0, "'h'"), -(4391, 0, "'e'"), -(4392, 0, "' '"), -(4393, 0, "'i'"), -(4394, 0, "'t'"), -(4395, 0, "'e'"), -(4396, 0, "'m'"), -(4397, 0, "' '"), -(4398, 0, "'I'"), -(4399, 0, "'D'"), -(4400, 0, "'s'"), -(4401, 0, "' '"), -(4402, 0, "'t'"), -(4403, 0, "'o'"), -(4404, 0, "' '"), -(4405, 0, "'f'"), -(4406, 0, "'i'"), -(4407, 0, "'g'"), -(4408, 0, "'u'"), -(4409, 0, "'r'"), -(4410, 0, "'e'"), -(4411, 0, "' '"), -(4412, 0, "'o'"), -(4413, 0, "'u'"), -(4414, 0, "'t'"), -(4415, 0, "' '"), -(4416, 0, "'w'"), -(4417, 0, "'h'"), -(4418, 0, "'i'"), -(4419, 0, "'c'"), -(4420, 0, "'h'"), -(4421, 0, "' '"), -(4422, 0, "'i'"), -(4423, 0, "'n'"), -(4423, 1, "''"), -(4422, 1, "''"), -(4416, 6, "'w'"), -(4417, 0, "'h'"), -(4365, 53, "''"), -(4364, 1, "''"), -(4363, 1, "''"), -(4338, 4, "'c'"), -(4339, 0, "'o'"), -(4340, 0, "'n'"), -(4341, 0, "'c'"), -(4342, 0, "'u'"), -(4343, 0, "'r'"), -(4344, 0, "'r'"), -(4345, 0, "'e'"), -(4346, 0, "'n'"), -(4347, 0, "'t'"), -(4348, 0, "'l'"), -(4349, 0, "'y'"), -(4350, 0, "' '"), -(4351, 0, "'t'"), -(4352, 0, "'y'"), -(4353, 0, "'p'"), -(4354, 0, "'e'"), -(4376, 0, "'.'"), -(4281, 27, "'s'"), -(4282, 0, "'h'"), -(4283, 0, "'a'"), -(4284, 0, "'r'"), -(4285, 0, "'e'"), -(4286, 0, "' '"), -(4287, 0, "'t'"), -(4288, 0, "'h'"), -(4289, 0, "'e'"), -(4290, 0, "' '"), -(4291, 0, "'s'"), -(4292, 0, "'a'"), -(4293, 0, "'m'"), -(4294, 0, "'e'"), -(4295, 0, "'r'"), -(4295, 1, "''"), -(4295, 0, "' '"), -(4296, 0, "'p'"), -(4297, 0, "'a'"), -(4298, 0, "'r'"), -(4299, 0, "'e'"), -(4300, 0, "'n'"), -(4301, 0, "'t'"), -(4313, 0, "' '"), -(4314, 0, "'s'"), -(4315, 0, "'o'"), -(4316, 0, "'m'"), -(4317, 0, "'e'"), -(4318, 0, "'t'"), -(4319, 0, "'i'"), -(4320, 0, "'m'"), -(4321, 0, "'e'"), -(4322, 0, "'s'"), -(4380, 1, "''"), -(4380, 0, "','"), -(4381, 0, "' '"), -(4382, 0, "'a'"), -(4383, 0, "'n'"), -(4384, 0, "'d'"), -(4385, 0, "' '"), -(4386, 0, "'w'"), -(4387, 0, "'e'"), -(4388, 0, "' '"), -(4389, 0, "'c'"), -(4390, 0, "'a'"), -(4391, 0, "'n'"), -(4392, 0, "' '"), -(4393, 0, "'r'"), -(4394, 0, "'e'"), -(4395, 0, "'s'"), -(4396, 0, "'o'"), -(4397, 0, "'l'"), -(4398, 0, "'v'"), -(4399, 0, "'e'"), -(4400, 0, "' '"), -(4401, 0, "'t'"), -(4402, 0, "'h'"), -(4403, 0, "'a'"), -(4404, 0, "'t'"), -(4405, 0, "' '"), -(4406, 0, "'b'"), -(4407, 0, "'y'"), -(4408, 0, "' '"), -(4409, 0, "'c'"), -(4410, 0, "'o'"), -(4411, 0, "'m'"), -(4412, 0, "'p'"), -(4413, 0, "'a'"), -(4414, 0, "'r'"), -(4415, 0, "'i'"), -(4416, 0, "'n'"), -(4417, 0, "'g'"), -(4418, 0, "' '"), -(4419, 0, "'t'"), -(4420, 0, "'h'"), -(4421, 0, "'e'"), -(4422, 0, "'i'"), -(4423, 0, "'r'"), -(4424, 0, "' '"), -(4425, 0, "'i'"), -(4426, 0, "'t'"), -(4427, 0, "'e'"), -(4428, 0, "'m'"), -(4429, 0, "' '"), -(4430, 0, "'I'"), -(4431, 0, "'D'"), -(4432, 0, "'s'"), -(4433, 0, "'.'"), -(4434, 0, "' '"), -(4435, 0, "'B'"), -(4436, 0, "'u'"), -(4437, 0, "'t'"), -(4438, 0, "' '"), -(4439, 0, "'n'"), -(4440, 0, "'o'"), -(4441, 0, "'t'"), -(4442, 0, "' '"), -(4443, 0, "'i'"), -(4444, 0, "'n'"), -(4445, 0, "' '"), -(4446, 0, "'t'"), -(4447, 0, "'h'"), -(4448, 0, "'i'"), -(4449, 0, "'s'"), -(4450, 0, "' '"), -(4451, 0, "'c'"), -(4452, 0, "'a'"), -(4453, 0, "'s'"), -(4454, 0, "'e'"), -(4455, 0, "'!'"), -(4456, 0, "' '"), -(4457, 0, "'I'"), -(4458, 0, "'n'"), -(4459, 0, "' '"), -(4460, 0, "'t'"), -(4461, 0, "'h'"), -(4462, 0, "'i'"), -(4463, 0, "'s'"), -(4464, 0, "' '"), -(4465, 0, "'c'"), -(4466, 0, "'a'"), -(4467, 0, "'s'"), -(4468, 0, "'e'"), -(4469, 0, "' '"), -(4470, 0, "'I'"), -(4471, 0, "' '"), -(4471, 1, "''"), -(4470, 1, "''"), -(4470, 0, "'m'"), -(4471, 0, "'y'"), -(4472, 0, "' '"), -(4473, 0, "'n'"), -(4474, 0, "'e'"), -(4475, 0, "'w'"), -(4476, 0, "' '"), -(4477, 0, "'i'"), -(4478, 0, "'t'"), -(4479, 0, "'e'"), -(4480, 0, "'m'"), -(4481, 0, "' '"), -(4482, 0, "'s'"), -(4483, 0, "'h'"), -(4484, 0, "'o'"), -(4485, 0, "'u'"), -(4486, 0, "'l'"), -(4487, 0, "'d'"), -(4488, 0, "' '"), -(4470, 19, "''"), -(4470, 0, "'n'"), -(4471, 0, "'o'"), -(4472, 0, "' '"), -(4473, 0, "'m'"), -(4474, 0, "'a'"), -(4475, 0, "'t'"), -(4476, 0, "'t'"), -(4477, 0, "'e'"), -(4478, 0, "'r'"), -(4479, 0, "' '"), -(4480, 0, "'w'"), -(4481, 0, "'h'"), -(4482, 0, "'a'"), -(4483, 0, "'t'"), -(4484, 0, "' '"), -(4485, 0, "'t'"), -(4486, 0, "'h'"), -(4487, 0, "'e'"), -(4488, 0, "' '"), -(4489, 0, "'I'"), -(4490, 0, "'D'"), -(4491, 0, "'s'"), -(4492, 0, "' '"), -(4493, 0, "'a'"), -(4494, 0, "'r'"), -(4495, 0, "'e'"), -(4496, 0, "' '"), -(4497, 0, "'w'"), -(4498, 0, "'e'"), -(4499, 0, "' '"), -(4500, 0, "'s'"), -(4501, 0, "'h'"), -(4502, 0, "'o'"), -(4503, 0, "'u'"), -(4504, 0, "'l'"), -(4505, 0, "'d'"), -(4506, 0, "' '"), -(4507, 0, "'a'"), -(4508, 0, "'l'"), -(4509, 0, "'w'"), -(4510, 0, "'a'"), -(4511, 0, "'y'"), -(4512, 0, "'s'"), -(4513, 0, "' '"), -(4514, 0, "'e'"), -(4515, 0, "'n'"), -(4516, 0, "'d'"), -(4517, 0, "' '"), -(4518, 0, "'u'"), -(4519, 0, "'p'"), -(4520, 0, "' '"), -(4521, 0, "'w'"), -(4522, 0, "'i'"), -(4523, 0, "'t'"), -(4524, 0, "'h'"), -(4525, 0, "' '"), -(4526, 0, "'''"), -(4527, 0, "'a'"), -(4019, 1, "''"), -(4019, 0, "'X'"), -(4126, 1, "''"), -(4126, 0, "'X'"), -(4005, 2, "' '"), -(4006, 0, "'M'"), -(4007, 0, "'i'"), -(4008, 0, "'k'"), -(4009, 0, "'e'"), -(4017, 0, "'s'"), -(4050, 1, "'w'"), -(4051, 0, "'e'"), -(4064, 0, "' '"), -(4064, 1, "''"), -(4139, 7, "'m'"), -(4140, 0, "'i'"), -(4141, 0, "'k'"), -(4142, 0, "'e'"), -(4143, 0, "','"), -(4144, 0, "' '"), -(4145, 0, "'0'"), -(4443, 4, "' '"), -(4444, 0, "'w'"), -(4445, 0, "'e'"), -(4446, 0, "' '"), -(4447, 0, "'d'"), -(4448, 0, "'o'"), -(4449, 0, "'n'"), -(4450, 0, "'''"), -(4451, 0, "'t'"), -(4452, 0, "' '"), -(4453, 0, "'w'"), -(4454, 0, "'a'"), -(4455, 0, "'n'"), -(4456, 0, "'t'"), -(4457, 0, "' '"), -(4458, 0, "'t'"), -(4459, 0, "'o'"), -(4460, 0, "' '"), -(4461, 0, "'d'"), -(4462, 0, "'o'"), -(4463, 0, "' '"), -(4464, 0, "'t'"), -(4465, 0, "'h'"), -(4466, 0, "'a'"), -(4467, 0, "'t'"), -(4496, 0, "'*'"), -(4511, 0, "'*'"), -(4496, 1, "''"), -(4510, 1, "''"), -(4554, 0, "'X'"), -(4555, 0, "'b'"), -(4556, 0, "'c'"), -(4557, 0, "'''"), -(4558, 0, "'.'"), -(4559, 0, "' '"), -(4560, 0, "'R'"), -(4561, 0, "'G'"), -(4562, 0, "'A'"), -(4563, 0, "' '"), -(4564, 0, "'s'"), -(4565, 0, "'o'"), -(4566, 0, "'l'"), -(4567, 0, "'v'"), -(4568, 0, "'e'"), -(4569, 0, "'s'"), -(4570, 0, "' '"), -(4571, 0, "'t'"), -(4572, 0, "'h'"), -(4573, 0, "'i'"), -(4574, 0, "'s'"), -(4575, 0, "' '"), -(4576, 0, "'b'"), -(4577, 0, "'y'"), -(4578, 0, "' '"), -(4579, 0, "'a'"), -(4580, 0, "'d'"), -(4581, 0, "'d'"), -(4582, 0, "'i'"), -(4583, 0, "'n'"), -(4584, 0, "'g'"), -(4585, 0, "' '"), -(4586, 0, "'m'"), -(4587, 0, "'o'"), -(4588, 0, "'r'"), -(4589, 0, "'e'"), -(4590, 0, "' '"), -(4591, 0, "'i'"), -(4592, 0, "'n'"), -(4593, 0, "'f'"), -(4594, 0, "'o'"), -(4595, 0, "'r'"), -(4596, 0, "'m'"), -(4597, 0, "'a'"), -(4598, 0, "'t'"), -(4599, 0, "'i'"), -(4600, 0, "'o'"), -(4601, 0, "'n'"), -(4586, 16, "'a'"), -(4587, 0, "' '"), -(4588, 0, "'s'"), -(4589, 0, "'e'"), -(4590, 0, "'q'"), -(4591, 0, "'u'"), -(4588, 4, "''"), -(4587, 1, "''"), -(4587, 0, "'n'"), -(4588, 0, "' '"), -(4589, 0, "'e'"), -(4590, 0, "'x'"), -(4591, 0, "'t'"), -(4592, 0, "'r'"), -(4593, 0, "'a'"), -(4594, 0, "' '"), -(4595, 0, "'i'"), -(4596, 0, "'t'"), -(4597, 0, "'e'"), -(4598, 0, "'m'"), -(4599, 0, "' '"), -(4600, 0, "'t'"), -(4601, 0, "'o'"), -(4602, 0, "' '"), -(4586, 17, "'a'"), -(4587, 0, "' '"), -(4588, 0, "'t'"), -(4589, 0, "'i'"), -(4590, 0, "'n'"), -(4591, 0, "'y'"), -(4592, 0, "' '"), -(4593, 0, "'b'"), -(4594, 0, "'i'"), -(4595, 0, "'t'"), -(4596, 0, "' '"), -(4597, 0, "'m'"), -(4598, 0, "'o'"), -(4599, 0, "'r'"), -(4600, 0, "'e'"), -(4601, 0, "' '"), -(4602, 0, "'d'"), -(4603, 0, "'a'"), -(4604, 0, "'t'"), -(4605, 0, "'a'"), -(4606, 0, "' '"), -(4607, 0, "'t'"), -(4608, 0, "'o'"), -(4609, 0, "' '"), -(4610, 0, "'e'"), -(4611, 0, "'a'"), -(4612, 0, "'c'"), -(4613, 0, "'h'"), -(4614, 0, "' '"), -(4615, 0, "'i'"), -(4616, 0, "'t'"), -(4617, 0, "'e'"), -(4618, 0, "'m'"), -(4619, 0, "'.'"), -(4620, 0, "' '"), -(4260, 361, "'Note the 'x' and 'b' both share the same parent. This will sometimes happen when users concurrently type in the same location, and we can resolve that by comparing their item IDs. But we don't want to do that in this case! In this case no matter what the IDs are we should always end up with 'aXbc'. RGA solves this by adding a tiny bit more data to each item.'"), -(4587, 0, "'n'"), -(4588, 0, "' '"), -(4589, 0, "'e'"), -(4590, 0, "'x'"), -(4591, 0, "'t'"), -(4592, 0, "'r'"), -(4593, 0, "'a'"), -(4594, 0, "' '"), -(4595, 0, "'i'"), -(4596, 0, "'n'"), -(4597, 0, "'t'"), -(4598, 0, "'e'"), -(4599, 0, "'g'"), -(4600, 0, "'e'"), -(4601, 0, "'r'"), -(4602, 19, "''"), -(4615, 1, "''"), -(4615, 0, "','"), -(4615, 1, "''"), -(4615, 0, "' '"), -(4616, 0, "'c'"), -(4617, 0, "'a'"), -(4618, 0, "'l'"), -(4619, 0, "'l'"), -(4620, 0, "' '"), -(4620, 1, "''"), -(4620, 0, "'e'"), -(4621, 0, "'d'"), -(4622, 0, "' '"), -(4623, 0, "'a'"), -(4624, 0, "' '"), -(4625, 0, "'*'"), -(4626, 0, "'s'"), -(4627, 0, "'e'"), -(4628, 0, "'q'"), -(4629, 0, "'u'"), -(4630, 0, "'e'"), -(4631, 0, "'n'"), -(4632, 0, "'c'"), -(4633, 0, "'e'"), -(4634, 0, "' '"), -(4635, 0, "'n'"), -(4636, 0, "'u'"), -(4637, 0, "'m'"), -(4638, 0, "'b'"), -(4639, 0, "'e'"), -(4640, 0, "'r'"), -(4641, 0, "'*'"), -(4642, 0, "':'"), -(4644, 0, "'n- Insert 'a' id `(seph, 0)` after `ROOT`n- Insert 'X' id `(mike, 0)` after `(seph, 0)`n- Insert 'b' id `(seph, 1)` after `(seph, 0)`n- Insert 'c' id `(seph, 2)` after `(seph, 1)`n'"), -(4685, 0, "','"), -(4686, 0, "' '"), -(4687, 0, "'s'"), -(4688, 0, "'e'"), -(4689, 0, "'q'"), -(4690, 0, "':'"), -(4691, 0, "' '"), -(4692, 0, "'0'"), -(4693, 0, "'*'"), -(4692, 0, "'*'"), -(4741, 0, "', seq: *0*'"), -(4797, 0, "', seq: *0*'"), -(4853, 0, "', seq: *0*'"), -(4805, 1, "''"), -(4805, 0, "'1'"), -(4861, 1, "''"), -(4861, 0, "'2'"), -(4749, 1, "''"), -(4749, 0, "'3'"), -(4642, 1, "''"), -(4642, 0, "'.'"), -(4643, 0, "' '"), -(4644, 0, "'I'"), -(4644, 1, "''"), -(4643, 1, "''"), -(4642, 1, "''"), -(4642, 0, "':'"), -(4865, 0, "'A'"), -(4866, 0, "'u'"), -(4867, 0, "'t'"), -(4868, 0, "'o'"), -(4869, 0, "'m'"), -(4870, 0, "'e'"), -(4871, 0, "'r'"), -(4872, 0, "'g'"), -(4873, 0, "'e'"), -(4874, 0, "'''"), -(4875, 0, "'s'"), -(4876, 0, "' '"), -(4877, 0, "'*'"), -(4878, 0, "'s'"), -(4879, 0, "'e'"), -(4880, 0, "'m'"), -(4881, 0, "'a'"), -(4882, 0, "'n'"), -(4883, 0, "'t'"), -(4884, 0, "'i'"), -(4885, 0, "'c'"), -(4886, 0, "'s'"), -(4887, 0, "'*'"), -(4888, 0, "' '"), -(4889, 0, "'a'"), -(4890, 0, "'r'"), -(4891, 0, "'e'"), -(4892, 0, "':'"), -(4893, 0, "'n'"), -(4894, 0, "'n'"), -(4895, 0, "'-'"), -(4896, 0, "' '"), -(4897, 0, "'E'"), -(4898, 0, "'v'"), -(4899, 0, "'e'"), -(4900, 0, "'r'"), -(4901, 0, "'y'"), -(4902, 0, "'t'"), -(4903, 0, "'h'"), -(4904, 0, "'i'"), -(4905, 0, "'n'"), -(4906, 0, "'g'"), -(4907, 0, "' '"), -(4908, 0, "'g'"), -(4909, 0, "'o'"), -(4910, 0, "'e'"), -(4911, 0, "'s'"), -(4912, 0, "' '"), -(4913, 0, "'a'"), -(4914, 0, "'f'"), -(4915, 0, "'t'"), -(4916, 0, "'e'"), -(4917, 0, "'r'"), -(4918, 0, "' '"), -(4919, 0, "'i'"), -(4920, 0, "'t'"), -(4921, 0, "'s'"), -(4913, 9, "'r'"), -(4914, 0, "'i'"), -(4915, 0, "'g'"), -(4916, 0, "'h'"), -(4917, 0, "'t'"), -(4918, 0, "' '"), -(4919, 0, "'a'"), -(4920, 0, "'f'"), -(4921, 0, "'t'"), -(4922, 0, "'e'"), -(4923, 0, "'r'"), -(4924, 0, "' '"), -(4925, 0, "'i'"), -(4926, 0, "'t'"), -(4927, 0, "'s'"), -(4928, 0, "'e'"), -(4929, 0, "' '"), -(4929, 1, "''"), -(4928, 1, "''"), -(4928, 0, "' '"), -(4929, 0, "'p'"), -(4930, 0, "'a'"), -(4931, 0, "'r'"), -(4932, 0, "'e'"), -(4933, 0, "'n'"), -(4934, 0, "'t'"), -(4897, 38, "'I'"), -(4898, 0, "'m'"), -(4899, 0, "'a'"), -(4900, 0, "'g'"), -(4901, 0, "'i'"), -(4902, 0, "'n'"), -(4903, 0, "'e'"), -(4904, 0, "' '"), -(4905, 0, "'t'"), -(4906, 0, "'h'"), -(4907, 0, "'e'"), -(4908, 0, "' '"), -(4909, 0, "'t'"), -(4910, 0, "'r'"), -(4911, 0, "'e'"), -(4912, 0, "'e'"), -(4897, 16, "'B'"), -(4898, 0, "'u'"), -(4899, 0, "'i'"), -(4900, 0, "'l'"), -(4901, 0, "'d'"), -(4902, 0, "' '"), -(4903, 0, "'t'"), -(4904, 0, "'h'"), -(4905, 0, "'e'"), -(4906, 0, "' '"), -(4907, 0, "'t'"), -(4908, 0, "'r'"), -(4909, 0, "'e'"), -(4910, 0, "'e'"), -(4911, 0, "'n'"), -(4912, 0, "'-'"), -(4913, 0, "' '"), -(4914, 0, "'I'"), -(4915, 0, "'f'"), -(4916, 0, "' '"), -(4912, 5, "'- If'"), -(4911, 0, "' '"), -(4912, 0, "'f'"), -(4913, 0, "'r'"), -(4914, 0, "'o'"), -(4915, 0, "'m'"), -(4916, 0, "' '"), -(4917, 0, "'e'"), -(4918, 0, "'a'"), -(4919, 0, "'c'"), -(4920, 0, "'h'"), -(4921, 0, "' '"), -(4922, 0, "'i'"), -(4923, 0, "'t'"), -(4924, 0, "'e'"), -(4925, 0, "'m'"), -(4926, 0, "' '"), -(4927, 0, "'t'"), -(4928, 0, "'o'"), -(4929, 0, "' '"), -(4930, 0, "'i'"), -(4931, 0, "'t'"), -(4932, 0, "'s'"), -(4933, 0, "' '"), -(4934, 0, "'p'"), -(4935, 0, "'a'"), -(4936, 0, "'r'"), -(4937, 0, "'e'"), -(4938, 0, "'n'"), -(4939, 0, "'t'"), -(4940, 0, "'s'"), -(4941, 0, "','"), -(4942, 0, "' '"), -(4943, 0, "'a'"), -(4944, 0, "'l'"), -(4945, 0, "'l'"), -(4946, 0, "' '"), -(4947, 0, "'t'"), -(4948, 0, "'h'"), -(4949, 0, "'e'"), -(4950, 0, "' '"), -(4951, 0, "'w'"), -(4952, 0, "'a'"), -(4953, 0, "'y'"), -(4954, 0, "' '"), -(4955, 0, "'u'"), -(4956, 0, "'p'"), -(4957, 0, "'.'"), -(4963, 0, "' '"), -(4964, 0, "'t'"), -(4965, 0, "'w'"), -(4966, 0, "'o'"), -(4967, 0, "' '"), -(4968, 0, "'i'"), -(4969, 0, "'t'"), -(4970, 0, "'e'"), -(4971, 0, "'m'"), -(4972, 0, "'s'"), -(4973, 0, "' '"), -(4974, 0, "'h'"), -(4975, 0, "'a'"), -(4976, 0, "'v'"), -(4977, 0, "'e'"), -(4961, 17, "'W'"), -(4962, 0, "'h'"), -(4963, 0, "'e'"), -(4964, 0, "'n'"), -(4965, 0, "'e'"), -(4966, 0, "'v'"), -(4967, 0, "'e'"), -(4968, 0, "'r'"), -(4969, 0, "' '"), -(4970, 0, "'y'"), -(4971, 0, "'o'"), -(4972, 0, "'u'"), -(4973, 0, "' '"), -(4974, 0, "'h'"), -(4970, 5, "'a'"), -(4971, 0, "'n'"), -(4972, 0, "' '"), -(4973, 0, "'i'"), -(4974, 0, "'t'"), -(4975, 0, "'e'"), -(4976, 0, "'m'"), -(4977, 0, "' '"), -(4978, 0, "'h'"), -(4979, 0, "'a'"), -(4980, 0, "'s'"), -(4981, 0, "' '"), -(4982, 0, "'c'"), -(4983, 0, "'h'"), -(4984, 0, "'i'"), -(4985, 0, "'l'"), -(4986, 0, "'d'"), -(4987, 0, "'r'"), -(4988, 0, "'e'"), -(4989, 0, "'n'"), -(4990, 0, "','"), -(4991, 0, "' '"), -(4992, 0, "'p'"), -(4993, 0, "'u'"), -(4994, 0, "'t'"), -(4995, 0, "' '"), -(4996, 0, "'a'"), -(4997, 0, "'l'"), -(4998, 0, "'l'"), -(4999, 0, "' '"), -(5000, 0, "'t'"), -(5001, 0, "'h'"), -(5002, 0, "'e'"), -(5003, 0, "' '"), -(4959, 45, "'- Whenever an item has children, put all the'"), -(4864, 0, "'n'"), -(4864, 0, "'n'"), -(4865, 0, "'Y'"), -(4866, 0, "'j'"), -(4867, 0, "'s'"), -(4865, 3, "'T'"), -(4866, 0, "'h'"), -(4867, 0, "'i'"), -(4868, 0, "'s'"), -(4869, 0, "' '"), -(4870, 0, "'i'"), -(4871, 0, "'s'"), -(4872, 0, "'n'"), -(4873, 0, "'''"), -(4874, 0, "'t'"), -(4875, 0, "' '"), -(4876, 0, "'t'"), -(4877, 0, "'h'"), -(4878, 0, "'e'"), -(4879, 0, "' '"), -(4880, 0, "'o'"), -(4881, 0, "'n'"), -(4882, 0, "'l'"), -(4883, 0, "'y'"), -(4884, 0, "' '"), -(4885, 0, "'a'"), -(4886, 0, "'p'"), -(4887, 0, "'p'"), -(4888, 0, "'r'"), -(4889, 0, "'o'"), -(4890, 0, "'a'"), -(4891, 0, "'c'"), -(4892, 0, "'h'"), -(4893, 0, "'.'"), -(4894, 0, "' '"), -(4895, 0, "'Y'"), -(4896, 0, "'j'"), -(4897, 0, "'s'"), -(4898, 0, "' '"), -(4899, 0, "'s'"), -(4900, 0, "'o'"), -(4901, 0, "'l'"), -(4902, 0, "'v'"), -(4903, 0, "'e'"), -(4904, 0, "'s'"), -(4905, 0, "' '"), -(4906, 0, "'t'"), -(4907, 0, "'h'"), -(4908, 0, "'i'"), -(4909, 0, "'s'"), -(4910, 0, "' '"), -(4911, 0, "'b'"), -(4912, 0, "'y'"), -(4913, 0, "' '"), -(4865, 49, "''"), -(4864, 1, "''"), -(4863, 1, "''"), -(4911, 0, "','"), -(4912, 0, "' '"), -(4913, 0, "'c'"), -(4914, 0, "'o'"), -(4915, 0, "'n'"), -(4916, 0, "'n'"), -(4917, 0, "'e'"), -(4918, 0, "'c'"), -(4919, 0, "'t'"), -(4920, 0, "'i'"), -(4921, 0, "'n'"), -(4922, 0, "'g'"), -(4923, 5, "''"), -(4947, 1, "''"), -(4947, 17, "''"), -(4970, 0, "' '"), -(4971, 0, "'m'"), -(4972, 0, "'u'"), -(4973, 0, "'l'"), -(4974, 0, "'t'"), -(4975, 0, "'i'"), -(4976, 0, "'p'"), -(4977, 0, "'l'"), -(4978, 0, "'e'"), -(4990, 11, "'s'"), -(4991, 0, "'o'"), -(4992, 0, "'r'"), -(4993, 0, "'t'"), -(4994, 0, "' '"), -(4995, 0, "'t'"), -(4996, 0, "'h'"), -(4997, 0, "'e'"), -(4998, 0, "'m'"), -(4999, 0, "' '"), -(5000, 0, "'f'"), -(5001, 0, "'i'"), -(5002, 0, "'r'"), -(5003, 0, "'s'"), -(5004, 0, "'t'"), -(5005, 0, "' '"), -(5006, 0, "'b'"), -(5007, 0, "'y'"), -(5008, 0, "' '"), -(5009, 0, "'s'"), -(5010, 0, "'e'"), -(5011, 0, "'q'"), -(5012, 0, "'u'"), -(5013, 0, "'e'"), -(5014, 0, "'n'"), -(5015, 0, "'c'"), -(5016, 0, "'e'"), -(5017, 0, "' '"), -(5018, 0, "'n'"), -(5019, 0, "'u'"), -(5020, 0, "'m'"), -(5021, 0, "'b'"), -(5022, 0, "'e'"), -(5023, 0, "'r'"), -(5024, 0, "' '"), -(5025, 0, "'t'"), -(5026, 0, "'h'"), -(5027, 0, "'e'"), -(5028, 0, "'n'"), -(5029, 0, "' '"), -(5030, 0, "'b'"), -(5031, 0, "'y'"), -(5032, 0, "' '"), -(5033, 0, "'I'"), -(5034, 0, "'D'"), -(5035, 0, "'.'"), -(5036, 0, "'n'"), -(5037, 0, "'n'"), -(5037, 0, "'-'"), -(5038, 0, "' '"), -(5039, 0, "'T'"), -(5040, 0, "'h'"), -(5041, 0, "'e'"), -(5042, 0, "' '"), -(5043, 0, "'l'"), -(5044, 0, "'i'"), -(5045, 0, "'s'"), -(5046, 0, "'t'"), -(5047, 0, "' '"), -(5047, 1, "''"), -(5047, 0, "'''"), -(5048, 0, "'s'"), -(5049, 0, "' '"), -(5050, 0, "'v'"), -(5051, 0, "'a'"), -(5052, 0, "'l'"), -(5053, 0, "'u'"), -(5054, 0, "'e'"), -(5055, 0, "' '"), -(5056, 0, "'i'"), -(5057, 0, "'s'"), -(5058, 0, "' '"), -(5047, 12, "' '"), -(5048, 0, "'i'"), -(5049, 0, "'s'"), -(5050, 0, "' '"), -(5051, 0, "'w'"), -(5052, 0, "'h'"), -(5053, 0, "'a'"), -(5054, 0, "'t'"), -(5055, 0, "'e'"), -(5056, 0, "'v'"), -(5057, 0, "'e'"), -(5058, 0, "'r'"), -(5059, 0, "' '"), -(5060, 0, "'y'"), -(5061, 0, "'o'"), -(5062, 0, "'u'"), -(5063, 0, "' '"), -(5064, 0, "'g'"), -(5065, 0, "'e'"), -(5066, 0, "'t'"), -(5067, 0, "' '"), -(5068, 0, "'f'"), -(5069, 0, "'r'"), -(5070, 0, "'o'"), -(5071, 0, "'m'"), -(5072, 0, "' '"), -(5073, 0, "'f'"), -(5074, 0, "'l'"), -(5075, 0, "'a'"), -(5076, 0, "'t'"), -(5077, 0, "'t'"), -(5078, 0, "'e'"), -(5079, 0, "'n'"), -(5080, 0, "'i'"), -(5081, 0, "'n'"), -(5082, 0, "'g'"), -(5083, 0, "' '"), -(5084, 0, "'t'"), -(5085, 0, "'h'"), -(5086, 0, "'e'"), -(5087, 0, "' '"), -(5088, 0, "'t'"), -(5089, 0, "'r'"), -(5090, 0, "'e'"), -(5091, 0, "'e'"), -(5092, 0, "' '"), -(5093, 0, "'w'"), -(5094, 0, "'i'"), -(5095, 0, "'t'"), -(5096, 0, "'h'"), -(5097, 0, "' '"), -(5098, 0, "'a'"), -(5099, 0, "' '"), -(5100, 0, "'d'"), -(5101, 0, "'e'"), -(5102, 0, "'p'"), -(5103, 0, "'t'"), -(5104, 0, "'h'"), -(5105, 0, "'-'"), -(5106, 0, "'f'"), -(5107, 0, "'i'"), -(5108, 0, "'r'"), -(5109, 0, "'s'"), -(5110, 0, "'t'"), -(5111, 0, "' '"), -(5112, 0, "'s'"), -(5113, 0, "'o'"), -(5113, 1, "''"), -(5113, 0, "'e'"), -(5114, 0, "'a'"), -(5115, 0, "'r'"), -(5116, 0, "'c'"), -(5117, 0, "'h'"), -(5118, 0, "'.'"), -(5111, 8, "' '"), -(5112, 0, "'t'"), -(5113, 0, "'r'"), -(5114, 0, "'a'"), -(5115, 0, "'v'"), -(5116, 0, "'e'"), -(5117, 0, "'r'"), -(5118, 0, "'s'"), -(5119, 0, "'a'"), -(5120, 0, "'l'"), -(5121, 0, "'.'"), -(5123, 0, "'n'"), -(4874, 0, "' '"), -(4875, 0, "'('"), -(4876, 0, "'R'"), -(4877, 0, "'G'"), -(4878, 0, "'A'"), -(4879, 0, "')'"), -(5130, 0, "'S'"), -(5131, 0, "'o'"), -(5132, 0, "' '"), -(5133, 0, "'h'"), -(5134, 0, "'o'"), -(5135, 0, "'w'"), -(5136, 0, "' '"), -(5137, 0, "'s'"), -(5138, 0, "'h'"), -(5139, 0, "'o'"), -(5140, 0, "'u'"), -(5141, 0, "'l'"), -(5142, 0, "'d'"), -(5143, 0, "' '"), -(5144, 0, "'y'"), -(5145, 0, "'o'"), -(5146, 0, "'u'"), -(5147, 0, "' '"), -(5148, 0, "'i'"), -(5149, 0, "'m'"), -(5150, 0, "'p'"), -(5151, 0, "'l'"), -(5152, 0, "'e'"), -(5153, 0, "'m'"), -(5154, 0, "'e'"), -(5155, 0, "'n'"), -(5156, 0, "'t'"), -(3931, 48, "'W'"), -(3932, 0, "'e'"), -(3933, 0, "' '"), -(3934, 0, "'c'"), -(3935, 0, "'a'"), -(3936, 0, "'n'"), -(3937, 0, "' '"), -(3938, 0, "'d'"), -(3939, 0, "'r'"), -(3940, 0, "'a'"), -(3941, 0, "'w'"), -(3942, 0, "' '"), -(3943, 0, "'t'"), -(3943, 1, "''"), -(3943, 0, "'t'"), -(3944, 0, "'h'"), -(3945, 0, "'a'"), -(3946, 0, "'t'"), -(3947, 0, "' '"), -(3948, 0, "'l'"), -(3949, 0, "'i'"), -(3950, 0, "'k'"), -(3951, 0, "'e'"), -(3952, 0, "' '"), -(3953, 0, "'a'"), -(3954, 0, "' '"), -(3948, 7, "'a'"), -(3949, 0, "'s'"), -(3950, 0, "' '"), -(3951, 0, "'a'"), -(3952, 0, "' '"), -(3953, 0, "'t'"), -(3954, 0, "'r'"), -(3955, 0, "'e'"), -(3956, 0, "'e'"), -(3957, 0, "'!'"), -(5127, 0, "'*'"), -(5137, 0, "'*'"), -(5138, 0, "' '"), -(5139, 0, "'a'"), -(5140, 0, "'u'"), -(5141, 0, "'t'"), -(5142, 0, "'o'"), -(5143, 0, "'m'"), -(5144, 0, "'e'"), -(5145, 0, "'r'"), -(5146, 0, "'g'"), -(5147, 0, "'e'"), -(5148, 0, "'?'"), -(5149, 0, "' '"), -(5150, 0, "'T'"), -(5151, 0, "'h'"), -(5152, 0, "'e'"), -(5153, 0, "' '"), -(5154, 0, "'a'"), -(5155, 0, "'u'"), -(5156, 0, "'t'"), -(5157, 0, "'o'"), -(5158, 0, "'m'"), -(5159, 0, "'e'"), -(5160, 0, "'r'"), -(5161, 0, "'g'"), -(5162, 0, "'e'"), -(5163, 0, "' '"), -(5164, 0, "'l'"), -(5165, 0, "'i'"), -(5166, 0, "'b'"), -(5167, 0, "'r'"), -(5168, 0, "'a'"), -(5169, 0, "'r'"), -(5170, 0, "'y'"), -(5171, 0, "' '"), -(5172, 0, "'d'"), -(5173, 0, "'o'"), -(5174, 0, "'e'"), -(5175, 0, "'s'"), -(5176, 0, "' '"), -(5177, 0, "'i'"), -(5178, 0, "'t'"), -(5179, 0, "' '"), -(5180, 0, "'i'"), -(5181, 0, "'n'"), -(5182, 0, "' '"), -(5183, 0, "'t'"), -(5184, 0, "'h'"), -(5185, 0, "'e'"), -(5186, 0, "' '"), -(5187, 0, "'o'"), -(5188, 0, "'b'"), -(5189, 0, "'v'"), -(5190, 0, "'i'"), -(5191, 0, "'o'"), -(5192, 0, "'u'"), -(5193, 0, "'s'"), -(5194, 0, "' '"), -(5195, 0, "'t'"), -(5196, 0, "'r'"), -(5197, 0, "'e'"), -(5198, 0, "'e'"), -(5199, 0, "' '"), -(5200, 0, "'b'"), -(5201, 0, "'a'"), -(5202, 0, "'s'"), -(5203, 0, "'e'"), -(5204, 0, "'d'"), -(5205, 0, "' '"), -(5206, 0, "'w'"), -(5207, 0, "'a'"), -(5208, 0, "'y'"), -(5209, 0, "'.'"), -(5210, 0, "' '"), -(5211, 0, "'E'"), -(5212, 0, "'a'"), -(5213, 0, "'c'"), -(5214, 0, "'h'"), -(5215, 0, "' '"), -(5216, 0, "'t'"), -(5217, 0, "'i'"), -(5218, 0, "'m'"), -(5219, 0, "'e'"), -(5220, 0, "' '"), -(5221, 0, "'a'"), -(5222, 0, "'n'"), -(5223, 0, "' '"), -(5224, 0, "'i'"), -(5225, 0, "'n'"), -(5226, 0, "'s'"), -(5227, 0, "'e'"), -(5228, 0, "'r'"), -(5229, 0, "'t'"), -(5230, 0, "' '"), -(5231, 0, "'h'"), -(5232, 0, "'a'"), -(5233, 0, "'p'"), -(5234, 0, "'p'"), -(5235, 0, "'e'"), -(5236, 0, "'n'"), -(5237, 0, "'s'"), -(5238, 0, "','"), -(5239, 0, "' '"), -(5240, 0, "'w'"), -(5241, 0, "'e'"), -(5242, 0, "' '"), -(5243, 0, "'l'"), -(5244, 0, "'o'"), -(5245, 0, "'o'"), -(5246, 0, "'k'"), -(5247, 0, "' '"), -(5248, 0, "'u'"), -(5249, 0, "'p'"), -(5211, 39, "''"), -(5210, 1, "''"), -(5210, 0, "' '"), -(5211, 0, "'A'"), -(5212, 0, "'c'"), -(5212, 1, "''"), -(5212, 0, "'t'"), -(5213, 0, "' '"), -(5214, 0, "'l'"), -(5215, 0, "'e'"), -(5216, 0, "'a'"), -(5217, 0, "'s'"), -(5218, 0, "'t'"), -(5219, 0, "' '"), -(5220, 0, "'I'"), -(5221, 0, "' '"), -(5222, 0, "'t'"), -(5223, 0, "'h'"), -(5224, 0, "'i'"), -(5225, 0, "'n'"), -(5226, 0, "'k'"), -(5227, 0, "' '"), -(5228, 0, "'s'"), -(5229, 0, "'o'"), -(5230, 0, "' '"), -(5231, 0, "'-'"), -(5232, 0, "' '"), -(5109, 124, "'So how should you *implement* automerge? The automerge library does it in the obvious tree based way. At least I think so -'"), -(5232, 0, "' '"), -(5233, 0, "'I'"), -(5234, 0, "' '"), -(5235, 0, "'h'"), -(5235, 1, "''"), -(5235, 0, "'h'"), -(5236, 0, "'o'"), -(5237, 0, "'n'"), -(5238, 0, "'e'"), -(5239, 0, "'s'"), -(5240, 0, "'t'"), -(5241, 0, "'l'"), -(5242, 0, "'y'"), -(5243, 0, "' '"), -(5244, 0, "'h'"), -(5245, 0, "'a'"), -(5246, 0, "'v'"), -(5247, 0, "'e'"), -(5233, 15, "'t'"), -(5234, 0, "'h'"), -(5235, 0, "'i'"), -(5236, 0, "'s'"), -(5237, 0, "' '"), -(5238, 0, "'i'"), -(5239, 0, "'s'"), -(5240, 0, "' '"), -(5241, 0, "'a'"), -(5242, 0, "'u'"), -(5243, 0, "'t'"), -(5244, 0, "'o'"), -(5245, 0, "'m'"), -(5246, 0, "'e'"), -(5247, 0, "'r'"), -(5248, 0, "'g'"), -(5249, 0, "'e'"), -(5250, 0, "'s'"), -(5250, 1, "''"), -(5250, 0, "'''"), -(5251, 0, "'s'"), -(5252, 0, "' '"), -(5253, 0, "'i'"), -(5254, 0, "'n'"), -(5255, 0, "'t'"), -(5256, 0, "'e'"), -(5257, 0, "'r'"), -(5258, 0, "'n'"), -(5259, 0, "'a'"), -(5260, 0, "'l'"), -(5261, 0, "' '"), -(5262, 0, "'s'"), -(5263, 0, "'t'"), -(5264, 0, "'a'"), -(5265, 0, "'t'"), -(5266, 0, "'e'"), -(5267, 0, "' '"), -(5268, 0, "'a'"), -(5269, 0, "'f'"), -(5270, 0, "'t'"), -(5271, 0, "'e'"), -(5272, 0, "'r'"), -(5273, 0, "' '"), -(5274, 0, "'t'"), -(5275, 0, "'y'"), -(5276, 0, "'p'"), -(5277, 0, "'i'"), -(5278, 0, "'n'"), -(5279, 0, "'g'"), -(5280, 0, "' '"), -(5281, 0, "'''"), -(5282, 0, "'a'"), -(5283, 0, "'b'"), -(5284, 0, "'c'"), -(5285, 0, "'''"), -(5233, 0, "'['"), -(5268, 0, "']'"), -(5269, 0, "'('"), -(5270, 0, "'https://gist.github.com/josephg/0522c4aec5021cc1dddb60e778828dbe'"), -(5334, 0, "')'"), -(5354, 0, "'.'"), -(5355, 0, "' '"), -(5356, 0, "'Y'"), -(5357, 0, "'i'"), -(5358, 0, "'k'"), -(5359, 0, "'e'"), -(5360, 0, "'s'"), -(5361, 0, "'!'"), -(5826, 0, "'n'"), -(6009, 0, "'n'"), -(6035, 0, "'n'"), -(6496, 0, "'n'"), -(6956, 0, "'n'"), -(6986, 0, "'n'"), -(7167, 0, "'n'"), -(7206, 0, "'n'"), -(7368, 0, "'n'"), -(7425, 0, "'n'"), -(7477, 0, "'n'"), -(5363, 0, "'n'"), -(5364, 0, "'n'"), -(5365, 0, "'n'"), -(5366, 0, "'n'"), -(5367, 0, "'n'"), -(5364, 0, "'W'"), -(5365, 0, "'e'"), -(5366, 0, "' '"), -(5366, 1, "''"), -(5365, 1, "''"), -(5364, 1, "''"), -(5364, 0, "'F'"), -(5365, 0, "'o'"), -(5366, 0, "'r'"), -(5367, 0, "' '"), -(5368, 0, "'b'"), -(5369, 0, "'e'"), -(5370, 0, "'n'"), -(5371, 0, "'c'"), -(5372, 0, "'h'"), -(5373, 0, "'m'"), -(5374, 0, "'a'"), -(5375, 0, "'r'"), -(5376, 0, "'k'"), -(5377, 0, "'i'"), -(5378, 0, "'n'"), -(5379, 0, "'g'"), -(5380, 0, "','"), -(5381, 0, "' '"), -(5382, 0, "'I'"), -(5383, 0, "'''"), -(5384, 0, "'m'"), -(5385, 0, "' '"), -(5386, 0, "'u'"), -(5387, 0, "'s'"), -(5388, 0, "'i'"), -(5389, 0, "'n'"), -(5390, 0, "'g'"), -(5391, 0, "' '"), -(5392, 0, "'['"), -(5393, 0, "'M'"), -(5394, 0, "'a'"), -(5395, 0, "'r'"), -(5396, 0, "'i'"), -(5397, 0, "'n'"), -(5397, 1, "''"), -(5396, 1, "''"), -(5396, 0, "'t'"), -(5397, 0, "'i'"), -(5398, 0, "'n'"), -(5399, 0, "'''"), -(5400, 0, "'s'"), -(5401, 0, "' '"), -(5402, 0, "'e'"), -(5403, 0, "'d'"), -(5404, 0, "'i'"), -(5405, 0, "'t'"), -(5406, 0, "'i'"), -(5407, 0, "'n'"), -(5408, 0, "'g'"), -(5409, 0, "' '"), -(5410, 0, "'t'"), -(5411, 0, "'r'"), -(5412, 0, "'a'"), -(5413, 0, "'c'"), -(5414, 0, "'e'"), -(5415, 0, "']'"), -(5416, 0, "'('"), -(5417, 0, "'https://github.com/automerge/automerge-perf/'"), -(5461, 0, "')'"), -(5401, 0, "' '"), -(5402, 0, "'a'"), -(5403, 0, "'t'"), -(5404, 0, "'u'"), -(5405, 0, "'o'"), -(5406, 0, "'m'"), -(5407, 0, "'e'"), -(5408, 0, "'r'"), -(5409, 0, "'a'"), -(5402, 8, "'a'"), -(5403, 0, "'u'"), -(5404, 0, "'t'"), -(5405, 0, "'o'"), -(5406, 0, "'m'"), -(5407, 0, "'e'"), -(5408, 0, "'r'"), -(5409, 0, "'g'"), -(5410, 0, "'e'"), -(5411, 0, "'-'"), -(5412, 0, "'p'"), -(5413, 0, "'e'"), -(5414, 0, "'r'"), -(5415, 0, "'f'"), -(5477, 0, "'.'"), -(5478, 0, "' '"), -(5479, 0, "'M'"), -(5480, 0, "'a'"), -(5481, 0, "'r'"), -(5482, 0, "'t'"), -(5483, 0, "'i'"), -(5484, 0, "'n'"), -(5485, 0, "' '"), -(5486, 0, "'r'"), -(5487, 0, "'e'"), -(5488, 0, "'c'"), -(5479, 10, "'T'"), -(5480, 0, "'h'"), -(5481, 0, "'i'"), -(5482, 0, "'s'"), -(5483, 0, "' '"), -(5484, 0, "'i'"), -(5485, 0, "'s'"), -(5486, 0, "' '"), -(5487, 0, "'a'"), -(5488, 0, "'n'"), -(5489, 0, "' '"), -(5490, 0, "'e'"), -(5491, 0, "'d'"), -(5492, 0, "'i'"), -(5493, 0, "'t'"), -(5494, 0, "'i'"), -(5495, 0, "'n'"), -(5496, 0, "'g'"), -(5497, 0, "' '"), -(5498, 0, "'h'"), -(5499, 0, "'i'"), -(5500, 0, "'s'"), -(5501, 0, "'t'"), -(5502, 0, "'o'"), -(5503, 0, "'r'"), -(5504, 0, "'y'"), -(5505, 0, "' '"), -(5506, 0, "'w'"), -(5507, 0, "'h'"), -(5508, 0, "'e'"), -(5509, 0, "'r'"), -(5510, 0, "'e'"), -(5511, 0, "' '"), -(5512, 0, "'m'"), -(5512, 1, "''"), -(5512, 0, "'M'"), -(5513, 0, "'a'"), -(5514, 0, "'r'"), -(5515, 0, "'t'"), -(5516, 0, "'i'"), -(5517, 0, "'n'"), -(5518, 0, "' '"), -(5519, 0, "'j'"), -(5520, 0, "'u'"), -(5521, 0, "'s'"), -(5522, 0, "'t'"), -(5518, 5, "' '"), -(5519, 0, "'r'"), -(5520, 0, "'e'"), -(5521, 0, "'c'"), -(5522, 0, "'o'"), -(5523, 0, "'r'"), -(5524, 0, "'d'"), -(5525, 0, "'e'"), -(5526, 0, "'d'"), -(5527, 0, "' '"), -(5528, 0, "'e'"), -(5529, 0, "'a'"), -(5530, 0, "'c'"), -(5531, 0, "'h'"), -(5532, 0, "' '"), -(5533, 0, "'k'"), -(5534, 0, "'e'"), -(5535, 0, "'y'"), -(5536, 0, "'s'"), -(5537, 0, "'t'"), -(5538, 0, "'r'"), -(5539, 0, "'o'"), -(5540, 0, "'k'"), -(5541, 0, "'e'"), -(5542, 0, "' '"), -(5543, 0, "'w'"), -(5544, 0, "'h'"), -(5545, 0, "'i'"), -(5546, 0, "'l'"), -(5547, 0, "'e'"), -(5548, 0, "' '"), -(5549, 0, "'w'"), -(5550, 0, "'r'"), -(5551, 0, "'i'"), -(5552, 0, "'t'"), -(5553, 0, "'i'"), -(5554, 0, "'n'"), -(5555, 0, "'g'"), -(5556, 0, "' '"), -(5557, 0, "'a'"), -(5558, 0, "'n'"), -(5559, 0, "' '"), -(5560, 0, "'a'"), -(5561, 0, "'c'"), -(5562, 0, "'a'"), -(5563, 0, "'d'"), -(5564, 0, "'e'"), -(5565, 0, "'m'"), -(5566, 0, "'i'"), -(5567, 0, "'c'"), -(5568, 0, "' '"), -(5569, 0, "'p'"), -(5570, 0, "'a'"), -(5571, 0, "'p'"), -(5572, 0, "'e'"), -(5573, 0, "'r'"), -(5574, 0, "'.'"), -(5575, 0, "' '"), -(5575, 1, "''"), -(5575, 0, "' '"), -(5576, 0, "'H'"), -(5577, 0, "'o'"), -(5578, 0, "'w'"), -(5579, 0, "' '"), -(5580, 0, "'d'"), -(5581, 0, "'o'"), -(5582, 0, "'e'"), -(5583, 0, "'s'"), -(5584, 0, "' '"), -(5585, 0, "'i'"), -(5586, 0, "'t'"), -(5587, 0, "' '"), -(5588, 0, "'d'"), -(5589, 0, "'o'"), -(5590, 0, "'?'"), -(5591, 0, "'n'"), -(5592, 0, "'n'"), -(5356, 6, "'Y'"), -(5357, 0, "'e'"), -(5358, 0, "'a'"), -(5359, 0, "'h'"), -(5360, 0, "','"), -(5361, 0, "' '"), -(5362, 0, "'I'"), -(5363, 0, "' '"), -(5364, 0, "'h'"), -(5365, 0, "'a'"), -(5366, 0, "'v'"), -(5367, 0, "'e'"), -(5368, 0, "' '"), -(5369, 0, "'n'"), -(5370, 0, "'o'"), -(5371, 0, "' '"), -(5372, 0, "'i'"), -(5373, 0, "'d'"), -(5374, 0, "'e'"), -(5375, 0, "'a'"), -(5376, 0, "' '"), -(5377, 0, "'w'"), -(5378, 0, "'h'"), -(5379, 0, "'a'"), -(5380, 0, "'t'"), -(5381, 0, "'s'"), -(5382, 0, "' '"), -(5383, 0, "'g'"), -(5384, 0, "'o'"), -(5385, 0, "'i'"), -(5386, 0, "'n'"), -(5387, 0, "'g'"), -(5388, 0, "' '"), -(5389, 0, "'o'"), -(5390, 0, "'n'"), -(5391, 0, "' '"), -(5392, 0, "'h'"), -(5393, 0, "'e'"), -(5394, 0, "'r'"), -(5395, 0, "'e'"), -(5396, 0, "'.'"), -(5356, 6, "''"), -(5241, 0, "' '"), -(5242, 0, "'s'"), -(5243, 0, "'s'"), -(5243, 1, "''"), -(5242, 1, "''"), -(5242, 0, "'*'"), -(5243, 0, "'s'"), -(5244, 0, "'o'"), -(5245, 0, "'m'"), -(5246, 0, "'e'"), -(5247, 0, "' '"), -(5248, 0, "'o'"), -(5248, 1, "''"), -(5247, 1, "''"), -(5247, 0, "'*'"), -(5247, 1, "''"), -(5247, 0, "' '"), -(5248, 0, "'o'"), -(5249, 0, "'f'"), -(5250, 0, "'*'"), -(5250, 1, "''"), -(5242, 1, "''"), -(5613, 15, "''"), -(5612, 1, "''"), -(5612, 0, "' How does it do?'"), -(5622, 2, "''"), -(5622, 0, "'a'"), -(5623, 0, "'u'"), -(5624, 0, "'t'"), -(5625, 0, "'o'"), -(5626, 0, "'m'"), -(5627, 0, "'e'"), -(5628, 0, "'r'"), -(5629, 0, "'g'"), -(5630, 0, "'e'"), -(5613, 0, "'S'"), -(5614, 0, "'o'"), -(5615, 0, "' '"), -(5616, 1, "''"), -(5616, 0, "'h'"), -(5639, 0, "'n'"), -(5640, 0, "'T'"), -(5641, 0, "'e'"), -(5642, 0, "'s'"), -(5643, 0, "'t'"), -(5640, 0, "'|'"), -(5641, 0, "' '"), -(5646, 0, "' '"), -(5647, 0, "' '"), -(5648, 0, "' '"), -(5649, 0, "' '"), -(5650, 0, "'|'"), -(5651, 0, "' '"), -(5652, 0, "'T'"), -(5653, 0, "'i'"), -(5654, 0, "'m'"), -(5655, 0, "'e'"), -(5656, 0, "' '"), -(5657, 0, "'t'"), -(5658, 0, "'a'"), -(5659, 0, "'k'"), -(5660, 0, "'e'"), -(5661, 0, "'n'"), -(5662, 0, "' '"), -(5663, 0, "'|'"), -(5664, 0, "'n'"), -(5665, 0, "'|'"), -(5666, 0, "' '"), -(5667, 0, "'-'"), -(5668, 0, "'-'"), -(5669, 0, "'-'"), -(5670, 0, "'-'"), -(5671, 0, "'-'"), -(5672, 0, "'-'"), -(5673, 0, "'-'"), -(5674, 0, "' '"), -(5675, 0, "'|'"), -(5676, 0, "' '"), -(5677, 0, "'-'"), -(5678, 0, "'-'"), -(5679, 0, "'-'"), -(5680, 0, "'-'"), -(5681, 0, "'-'"), -(5682, 0, "'-'"), -(5683, 0, "'-'"), -(5684, 0, "'-'"), -(5685, 0, "'-'"), -(5686, 0, "'-'"), -(5687, 0, "' '"), -(5688, 0, "'|'"), -(5665, 0, "'| ------- | ---------- |n'"), -(5692, 7, "'a'"), -(5693, 0, "'u'"), -(5694, 0, "'t'"), -(5695, 0, "'o'"), -(5696, 0, "'m'"), -(5697, 0, "'e'"), -(5698, 0, "'r'"), -(5699, 0, "'g'"), -(5700, 0, "'e'"), -(5704, 10, "''"), -(5704, 0, "'2'"), -(5705, 0, "'6'"), -(5705, 1, "''"), -(5705, 0, "'7'"), -(5706, 0, "'0'"), -(5707, 0, "'s'"), -(5232, 0, "' '"), -(5233, 0, "'a'"), -(5234, 0, "'f'"), -(5235, 0, "'t'"), -(5236, 0, "'e'"), -(5237, 0, "'r'"), -(5238, 0, "' '"), -(5239, 0, "'t'"), -(5240, 0, "'y'"), -(5241, 0, "'p'"), -(5242, 0, "'i'"), -(5243, 0, "'n'"), -(5244, 0, "'g'"), -(5245, 0, "'''"), -(5245, 1, "''"), -(5245, 0, "' '"), -(5246, 0, "'''"), -(5247, 0, "'a'"), -(5248, 0, "'b'"), -(5249, 0, "'c'"), -(5250, 0, "'''"), -(5362, 19, "''"), -(5612, 0, "' '"), -(5613, 0, "'T'"), -(5614, 0, "'h'"), -(5615, 0, "'e'"), -(5616, 0, "'r'"), -(5617, 0, "'e'"), -(5618, 0, "'''"), -(5619, 0, "'s'"), -(5620, 0, "' '"), -(5621, 0, "'n'"), -(5622, 0, "'o'"), -(5623, 0, "' '"), -(5624, 0, "'c'"), -(5625, 0, "'o'"), -(5626, 0, "'n'"), -(5627, 0, "'c'"), -(5628, 0, "'u'"), -(5629, 0, "'r'"), -(5630, 0, "'r'"), -(5631, 0, "'e'"), -(5632, 0, "'n'"), -(5633, 0, "'t'"), -(5634, 0, "' '"), -(5635, 0, "'e'"), -(5636, 0, "'d'"), -(5637, 0, "'i'"), -(5638, 0, "'t'"), -(5639, 0, "'s'"), -(5640, 0, "' '"), -(5641, 0, "'i'"), -(5642, 0, "'n'"), -(5643, 0, "' '"), -(5644, 0, "'t'"), -(5645, 0, "'h'"), -(5646, 0, "'i'"), -(5647, 0, "'s'"), -(5648, 0, "' '"), -(5649, 0, "'t'"), -(5650, 0, "'r'"), -(5651, 0, "'a'"), -(5652, 0, "'c'"), -(5653, 0, "'e'"), -(5654, 0, "' '"), -(5655, 0, "'('"), -(5656, 0, "'i'"), -(5657, 0, "'t'"), -(5658, 0, "'s'"), -(5659, 0, "' '"), -(5660, 0, "'j'"), -(5661, 0, "'u'"), -(5662, 0, "'s'"), -(5663, 0, "'t'"), -(5664, 0, "' '"), -(5665, 0, "'a'"), -(5666, 0, "' '"), -(5667, 0, "'s'"), -(5668, 0, "'i'"), -(5669, 0, "'n'"), -(5670, 0, "'g'"), -(5671, 0, "'l'"), -(5672, 0, "'e'"), -(5673, 0, "' '"), -(5674, 0, "'u'"), -(5675, 0, "'s'"), -(5676, 0, "'e'"), -(5677, 0, "'r'"), -(5678, 0, "')'"), -(5679, 0, "','"), -(5680, 0, "' '"), -(5681, 0, "'b'"), -(5682, 0, "'u'"), -(5683, 0, "'t'"), -(5684, 0, "' '"), -(5685, 0, "'i'"), -(5686, 0, "'t'"), -(5687, 0, "'s'"), -(5688, 0, "' '"), -(5688, 1, "''"), -(5687, 1, "''"), -(5686, 1, "''"), -(5685, 1, "''"), -(5685, 0, "'c'"), -(5686, 0, "'o'"), -(5687, 0, "'n'"), -(5688, 0, "'c'"), -(5689, 0, "'u'"), -(5690, 0, "'r'"), -(5691, 0, "'r'"), -(5692, 0, "'e'"), -(5693, 0, "'n'"), -(5694, 0, "'t'"), -(5695, 0, "' '"), -(5696, 0, "'e'"), -(5697, 0, "'d'"), -(5698, 0, "'i'"), -(5699, 0, "'t'"), -(5700, 0, "'s'"), -(5701, 0, "' '"), -(5685, 17, "'t'"), -(5686, 0, "'h'"), -(5687, 0, "'a'"), -(5688, 0, "'t'"), -(5689, 0, "'s'"), -(5690, 0, "' '"), -(5691, 0, "'p'"), -(5692, 0, "'r'"), -(5693, 0, "'o'"), -(5694, 0, "'b'"), -(5695, 0, "'a'"), -(5696, 0, "'b'"), -(5697, 0, "'l'"), -(5698, 0, "'y'"), -(5699, 0, "' '"), -(5700, 0, "'f'"), -(5701, 0, "'i'"), -(5702, 0, "'n'"), -(5703, 0, "'e'"), -(5704, 0, "' '"), -(5705, 0, "'f'"), -(5706, 0, "'o'"), -(5707, 0, "'r'"), -(5708, 0, "' '"), -(5709, 0, "'n'"), -(5710, 0, "'o'"), -(5711, 0, "'w'"), -(5712, 0, "'.'"), -(5714, 25, "''"), -(5714, 0, "'A'"), -(5715, 0, "'s'"), -(5716, 0, "' '"), -(5717, 0, "'I'"), -(5718, 0, "' '"), -(5719, 0, "'s'"), -(5720, 0, "'a'"), -(5721, 0, "'i'"), -(5722, 0, "'d'"), -(5723, 0, "' '"), -(5724, 0, "'b'"), -(5725, 0, "'e'"), -(5726, 0, "'f'"), -(5727, 0, "'o'"), -(5728, 0, "'r'"), -(5729, 0, "'e'"), -(5730, 0, "','"), -(5731, 0, "' '"), -(5732, 0, "'a'"), -(5733, 0, "'u'"), -(5734, 0, "'t'"), -(5735, 0, "'o'"), -(5736, 0, "'m'"), -(5737, 0, "'e'"), -(5738, 0, "'r'"), -(5739, 0, "'g'"), -(5740, 0, "'e'"), -(5741, 0, "' '"), -(5742, 0, "'t'"), -(5743, 0, "'a'"), -(5744, 0, "'k'"), -(5745, 0, "'e'"), -(5746, 0, "'s'"), -(5747, 0, "' '"), -(5748, 0, "'a'"), -(5749, 0, "' '"), -(5750, 0, "'l'"), -(5751, 0, "'i'"), -(5752, 0, "'t'"), -(5753, 0, "'t'"), -(5754, 0, "'l'"), -(5755, 0, "'e'"), -(5756, 0, "' '"), -(5757, 0, "'u'"), -(5758, 0, "'n'"), -(5759, 0, "'d'"), -(5760, 0, "'e'"), -(5761, 0, "'r'"), -(5762, 0, "' '"), -(5763, 0, "'5'"), -(5764, 0, "' '"), -(5765, 0, "'m'"), -(5766, 0, "'i'"), -(5767, 0, "'n'"), -(5768, 0, "'u'"), -(5769, 0, "'t'"), -(5770, 0, "'e'"), -(5771, 0, "'s'"), -(5772, 0, "' '"), -(5773, 0, "'t'"), -(5774, 0, "'o'"), -(5775, 0, "' '"), -(5776, 0, "'p'"), -(5777, 0, "'r'"), -(5778, 0, "'o'"), -(5779, 0, "'c'"), -(5780, 0, "'e'"), -(5781, 0, "'s'"), -(5782, 0, "'s'"), -(5783, 0, "' '"), -(5784, 0, "'t'"), -(5785, 0, "'h'"), -(5786, 0, "'i'"), -(5787, 0, "'s'"), -(5788, 0, "' '"), -(5789, 0, "'e'"), -(5790, 0, "'d'"), -(5791, 0, "'i'"), -(5792, 0, "'t'"), -(5793, 0, "'i'"), -(5794, 0, "'n'"), -(5795, 0, "'g'"), -(5796, 0, "' '"), -(5797, 0, "'t'"), -(5798, 0, "'r'"), -(5799, 0, "'a'"), -(5800, 0, "'c'"), -(5801, 0, "'e'"), -(5802, 0, "':'"), -(5802, 1, "''"), -(5802, 0, "'.'"), -(5803, 0, "' '"), -(5804, 0, "'I'"), -(5805, 0, "'''"), -(5806, 0, "'m'"), -(5807, 0, "' '"), -(5808, 0, "'a'"), -(5809, 0, "'l'"), -(5810, 0, "'s'"), -(5811, 0, "'o'"), -(5812, 0, "' '"), -(5813, 0, "'g'"), -(5814, 0, "'o'"), -(5815, 0, "'i'"), -(5816, 0, "'n'"), -(5817, 0, "'g'"), -(5818, 0, "' '"), -(5819, 0, "'t'"), -(5820, 0, "'o'"), -(5821, 0, "' '"), -(5822, 0, "'i'"), -(5823, 0, "'n'"), -(5824, 0, "' '"), -(5825, 0, "'c'"), -(5825, 1, "''"), -(5824, 1, "''"), -(5824, 0, "'c'"), -(5825, 0, "'l'"), -(5826, 0, "'u'"), -(5827, 0, "'d'"), -(5828, 0, "'e'"), -(5829, 0, "' '"), -(5830, 0, "'a'"), -(5831, 0, "' '"), -(5832, 0, "'s'"), -(5833, 0, "'i'"), -(5834, 0, "'m'"), -(5835, 0, "'p'"), -(5836, 0, "'l'"), -(5837, 0, "'e'"), -(5838, 0, "' '"), -(5839, 0, "'b'"), -(5840, 0, "'a'"), -(5841, 0, "'s'"), -(5842, 0, "'e'"), -(5843, 0, "'o'"), -(5843, 1, "''"), -(5843, 0, "'l'"), -(5844, 0, "'i'"), -(5845, 0, "'n'"), -(5846, 0, "'e'"), -(5847, 0, "' '"), -(5848, 0, "'c'"), -(5849, 0, "'o'"), -(5850, 0, "'m'"), -(5851, 0, "'p'"), -(5852, 0, "'a'"), -(5853, 0, "'r'"), -(5854, 0, "'i'"), -(5855, 0, "'s'"), -(5856, 0, "'o'"), -(5857, 0, "'n'"), -(5858, 0, "','"), -(5859, 0, "' '"), -(5860, 0, "'w'"), -(5861, 0, "'h'"), -(5862, 0, "'e'"), -(5863, 0, "'r'"), -(5864, 0, "'e'"), -(5865, 0, "' '"), -(5866, 0, "'w'"), -(5867, 0, "'e'"), -(5868, 0, "' '"), -(5869, 0, "'j'"), -(5870, 0, "'u'"), -(5871, 0, "'s'"), -(5872, 0, "'t'"), -(5873, 0, "' '"), -(5874, 0, "'s'"), -(5875, 0, "'p'"), -(5876, 0, "'l'"), -(5877, 0, "'i'"), -(5878, 0, "'c'"), -(5879, 0, "'e'"), -(5880, 0, "'('"), -(5881, 0, "')'"), -(5882, 0, "' '"), -(5874, 0, "'u'"), -(5875, 0, "'s'"), -(5876, 0, "'e'"), -(5877, 0, "' '"), -(5878, 0, "'j'"), -(5879, 0, "'a'"), -(5880, 0, "'v'"), -(5881, 0, "'a'"), -(5882, 0, "'s'"), -(5883, 0, "'c'"), -(5884, 0, "'r'"), -(5885, 0, "'i'"), -(5886, 0, "'p'"), -(5887, 0, "'t'"), -(5888, 0, "'s'"), -(5889, 0, "'''"), -(5889, 1, "''"), -(5888, 1, "''"), -(5888, 0, "'''"), -(5889, 0, "'s'"), -(5890, 0, "' '"), -(5874, 26, "'c'"), -(5875, 0, "'r'"), -(5876, 0, "'e'"), -(5877, 0, "'a'"), -(5878, 0, "'t'"), -(5879, 0, "'e'"), -(5880, 0, "' '"), -(5881, 0, "'a'"), -(5882, 0, "' '"), -(5883, 0, "'j'"), -(5884, 0, "'a'"), -(5885, 0, "'v'"), -(5886, 0, "'a'"), -(5887, 0, "'s'"), -(5888, 0, "'c'"), -(5889, 0, "'r'"), -(5890, 0, "'i'"), -(5891, 0, "'p'"), -(5892, 0, "'t'"), -(5893, 0, "' '"), -(5894, 0, "'s'"), -(5959, 0, "'@'"), -(5960, 0, "' '"), -(5961, 0, "'1'"), -(5962, 0, "'.'"), -(5963, 0, "'0'"), -(5964, 0, "'.'"), -(5965, 0, "'0'"), -(5966, 0, "'-'"), -(5967, 0, "'p'"), -(5968, 0, "'r'"), -(5969, 0, "'e'"), -(5970, 0, "'v'"), -(5971, 0, "'i'"), -(5972, 0, "'e'"), -(5973, 0, "'w'"), -(5974, 0, "'2'"), -(5975, 0, "' '"), -(5704, 8, "''"), -(5705, 0, "' '"), -(5706, 0, "'U'"), -(5707, 0, "'s'"), -(5708, 0, "'e'"), -(5709, 0, "'r'"), -(5710, 0, "'s'"), -(5711, 0, "' '"), -(5712, 0, "'t'"), -(5713, 0, "'y'"), -(5714, 0, "'p'"), -(5715, 0, "'i'"), -(5716, 0, "'n'"), -(5717, 0, "'g'"), -(5718, 0, "' '"), -(5712, 7, "'c'"), -(5713, 0, "'o'"), -(5714, 0, "'n'"), -(5715, 0, "'c'"), -(5716, 0, "'u'"), -(5717, 0, "'r'"), -(5718, 0, "'r'"), -(5719, 0, "'e'"), -(5720, 0, "'n'"), -(5721, 0, "'t'"), -(5722, 0, "'l'"), -(5723, 0, "'y'"), -(5724, 0, "' '"), -(5725, 0, "'t'"), -(5726, 0, "'y'"), -(5727, 0, "'p'"), -(5728, 0, "'i'"), -(5729, 0, "'n'"), -(5730, 0, "'g'"), -(5731, 0, "' '"), -(5732, 0, "'i'"), -(5733, 0, "'n'"), -(5734, 0, "' '"), -(5735, 0, "'t'"), -(5736, 0, "'h'"), -(5737, 0, "'e'"), -(5738, 0, "' '"), -(5739, 0, "'s'"), -(5740, 0, "'a'"), -(5741, 0, "'m'"), -(5742, 0, "'e'"), -(5743, 0, "' '"), -(5744, 0, "'l'"), -(5745, 0, "'o'"), -(5746, 0, "'c'"), -(5747, 0, "'a'"), -(5748, 0, "'t'"), -(5749, 0, "'i'"), -(5750, 0, "'o'"), -(5751, 0, "'n'"), -(5752, 0, "' '"), -(5753, 0, "'i'"), -(5754, 0, "'s'"), -(5755, 0, "' '"), -(5756, 0, "'s'"), -(5757, 0, "'u'"), -(5758, 0, "'p'"), -(5759, 0, "'e'"), -(5760, 0, "'r'"), -(5761, 0, "' '"), -(5762, 0, "'r'"), -(5763, 0, "'a'"), -(5764, 0, "'r'"), -(5765, 0, "'e'"), -(5766, 0, "' '"), -(5767, 0, "'a'"), -(5768, 0, "'n'"), -(5769, 0, "'y'"), -(5770, 0, "'w'"), -(5771, 0, "'a'"), -(5772, 0, "'y'"), -(5773, 0, "'.'"), -(5774, 1, "''"), -(5774, 0, "'n'"), -(5775, 0, "'n'"), -(5957, 0, "'t'"), -(5958, 0, "'r'"), -(5959, 0, "'i'"), -(5960, 0, "'n'"), -(5961, 0, "'g'"), -(5962, 0, "' '"), -(5963, 0, "'a'"), -(5964, 0, "'n'"), -(5965, 0, "'d'"), -(5966, 0, "' '"), -(5967, 0, "'s'"), -(5968, 0, "'p'"), -(5969, 0, "'l'"), -(5970, 0, "'i'"), -(5971, 0, "'t'"), -(5971, 1, "''"), -(5963, 0, "'i'"), -(5964, 0, "'n'"), -(5965, 0, "' '"), -(5966, 0, "'t'"), -(5967, 0, "'h'"), -(5968, 0, "'e'"), -(5969, 0, "' '"), -(5970, 0, "'o'"), -(5971, 0, "'b'"), -(5972, 0, "'v'"), -(5973, 0, "'i'"), -(5974, 0, "'o'"), -(5975, 0, "'u'"), -(5976, 0, "'s'"), -(5977, 0, "' '"), -(5978, 0, "'w'"), -(5979, 0, "'a'"), -(5980, 0, "'y'"), -(5981, 0, "' '"), -(5990, 0, "'c'"), -(5991, 0, "'e'"), -(5992, 0, "' '"), -(5993, 0, "'i'"), -(5994, 0, "'n'"), -(5995, 0, "'t'"), -(5996, 0, "'o'"), -(5997, 0, "' '"), -(5998, 0, "'i'"), -(5999, 0, "'t'"), -(6000, 0, "':'"), -(6053, 0, "'| automerge @ 1.0.0-preview2 | 270s |n'"), -(6084, 3, "'2'"), -(6085, 0, "'9'"), -(6086, 0, "'1'"), -(6122, 3, "''"), -(6093, 26, "''"), -(6093, 0, "'b'"), -(6094, 0, "'a'"), -(6095, 0, "'s'"), -(6096, 0, "'e'"), -(6097, 0, "'l'"), -(6098, 0, "'i'"), -(6099, 0, "'n'"), -(6100, 0, "'e'"), -(6093, 0, "'J'"), -(6094, 0, "'S'"), -(6095, 0, "' '"), -(6107, 0, "'0'"), -(6108, 0, "'.'"), -(6109, 0, "'6'"), -(6110, 0, "'1'"), -(6010, 0, "' '"), -(6011, 0, "' '"), -(6012, 0, "' '"), -(6013, 0, "' '"), -(6014, 0, "' '"), -(6015, 0, "' '"), -(6016, 0, "' '"), -(6017, 0, "' '"), -(6018, 0, "' '"), -(6019, 0, "' '"), -(6020, 0, "' '"), -(6021, 0, "' '"), -(6022, 0, "' '"), -(6023, 0, "' '"), -(6024, 0, "' '"), -(6025, 0, "' '"), -(6026, 0, "' '"), -(6027, 0, "' '"), -(6028, 0, "' '"), -(6056, 0, "' '"), -(6056, 1, "''"), -(6056, 0, "'-'"), -(6057, 0, "'-'"), -(6058, 0, "'-'"), -(6059, 0, "'-'"), -(6060, 0, "'-'"), -(6061, 0, "'-'"), -(6062, 0, "'-'"), -(6063, 0, "'-'"), -(6064, 0, "'-'"), -(6065, 0, "'-'"), -(6066, 0, "'-'"), -(6067, 0, "'-'"), -(6068, 0, "'-'"), -(6069, 0, "'-'"), -(6070, 0, "'-'"), -(6071, 0, "'-'"), -(6072, 0, "'-'"), -(6073, 0, "'-'"), -(6074, 0, "'-'"), -(6143, 0, "' '"), -(6144, 0, "' '"), -(6145, 0, "' '"), -(6146, 0, "' '"), -(6147, 0, "' '"), -(6148, 0, "' '"), -(6149, 0, "' '"), -(6150, 0, "' '"), -(6151, 0, "' '"), -(6152, 0, "' '"), -(6153, 0, "' '"), -(6154, 0, "' '"), -(6155, 0, "' '"), -(6156, 0, "' '"), -(6157, 0, "' '"), -(6165, 0, "' '"), -(6166, 0, "' '"), -(6167, 0, "' '"), -(6168, 0, "' '"), -(6169, 0, "' '"), -(6127, 0, "' '"), -(6128, 0, "' '"), -(6129, 0, "' '"), -(6130, 0, "' '"), -(6131, 0, "' '"), -(6132, 0, "' '"), -(6180, 0, "'#'"), -(6181, 0, "'#'"), -(6182, 0, "'#'"), -(6183, 0, "' '"), -(6184, 0, "'W'"), -(6185, 0, "'h'"), -(6186, 0, "'y'"), -(6187, 0, "' '"), -(6188, 0, "'i'"), -(6189, 0, "'s'"), -(6190, 0, "' '"), -(6191, 0, "'a'"), -(6192, 0, "'t'"), -(6193, 0, "'u'"), -(6194, 0, "'o'"), -(6195, 0, "'m'"), -(6196, 0, "'e'"), -(6197, 0, "'r'"), -(6191, 7, "'a'"), -(6192, 0, "'u'"), -(6193, 0, "'t'"), -(6194, 0, "'o'"), -(6195, 0, "'m'"), -(6196, 0, "'e'"), -(6197, 0, "'r'"), -(6198, 0, "'g'"), -(6199, 0, "'e'"), -(6200, 0, "' '"), -(6201, 0, "'s'"), -(6202, 0, "'l'"), -(6203, 0, "'o'"), -(6204, 0, "'w'"), -(6205, 0, "'?'"), -(6179, 0, "'n'"), -(6208, 0, "'n'"), -(6209, 0, "'A'"), -(6209, 1, "''"), -(6209, 0, "'A'"), -(6210, 0, "'u'"), -(6211, 0, "'t'"), -(6212, 0, "'o'"), -(6213, 0, "'m'"), -(6214, 0, "'e'"), -(6215, 0, "'r'"), -(6216, 0, "'g'"), -(6217, 0, "'e'"), -(6218, 0, "' '"), -(6219, 0, "'i'"), -(6220, 0, "'s'"), -(6221, 0, "' '"), -(6222, 0, "'s'"), -(6223, 0, "'l'"), -(6224, 0, "'o'"), -(6225, 0, "'w'"), -(6226, 0, "' '"), -(6227, 0, "'f'"), -(6228, 0, "'o'"), -(6229, 0, "'r'"), -(6230, 0, "' '"), -(6231, 0, "'3'"), -(6232, 0, "' '"), -(6233, 0, "'r'"), -(6234, 0, "'e'"), -(6235, 0, "'a'"), -(6236, 0, "'s'"), -(6237, 0, "'o'"), -(6238, 0, "'n'"), -(6239, 0, "'s'"), -(6240, 0, "':'"), -(6241, 0, "'n'"), -(6242, 0, "'n'"), -(6243, 0, "'1'"), -(6244, 0, "'.'"), -(6245, 0, "' '"), -(6246, 0, "'A'"), -(6247, 0, "'u'"), -(6248, 0, "'t'"), -(6249, 0, "'o'"), -(6250, 0, "'m'"), -(6251, 0, "'e'"), -(6252, 0, "'r'"), -(6253, 0, "'g'"), -(6254, 0, "'e'"), -(6255, 0, "' '"), -(6256, 0, "'u'"), -(6257, 0, "'s'"), -(6258, 0, "'e'"), -(6259, 0, "'s'"), -(6260, 0, "' '"), -(6256, 5, "'m'"), -(6257, 0, "'a'"), -(6258, 0, "'k'"), -(6259, 0, "'e'"), -(6260, 0, "'s'"), -(6261, 0, "' '"), -(6262, 0, "'h'"), -(6263, 0, "'e'"), -(6264, 0, "'a'"), -(6265, 0, "'v'"), -(6266, 0, "'y'"), -(6267, 0, "' '"), -(6268, 0, "'u'"), -(6269, 0, "'s'"), -(6270, 0, "'e'"), -(6271, 0, "' '"), -(6272, 0, "'o'"), -(6273, 0, "'f'"), -(6274, 0, "' '"), -(6275, 0, "'i'"), -(6276, 0, "'m'"), -(6277, 0, "'m'"), -(6278, 0, "'u'"), -(6279, 0, "'t'"), -(6280, 0, "'a'"), -(6281, 0, "'b'"), -(6282, 0, "'l'"), -(6283, 0, "'e'"), -(6284, 0, "'.'"), -(6285, 0, "'j'"), -(6286, 0, "'s'"), -(6287, 0, "'.'"), -(6288, 0, "' '"), -(6289, 0, "'I'"), -(6290, 0, "'m'"), -(6291, 0, "'m'"), -(6292, 0, "'u'"), -(6293, 0, "'t'"), -(6294, 0, "'a'"), -(6295, 0, "'b'"), -(6296, 0, "'l'"), -(6297, 0, "'e'"), -(6298, 0, "'j'"), -(6299, 0, "'s'"), -(6300, 0, "' '"), -(6301, 0, "'i'"), -(6302, 0, "'s'"), -(6303, 0, "' '"), -(6304, 0, "'a'"), -(6305, 0, "' '"), -(6306, 0, "'l'"), -(6307, 0, "'i'"), -(6308, 0, "'b'"), -(6309, 0, "'r'"), -(6310, 0, "'a'"), -(6311, 0, "'r'"), -(6312, 0, "'y'"), -(6313, 0, "' '"), -(6314, 0, "'w'"), -(6315, 0, "'h'"), -(6316, 0, "'i'"), -(6317, 0, "'c'"), -(6318, 0, "'h'"), -(6319, 0, "' '"), -(6320, 0, "'g'"), -(6321, 0, "'i'"), -(6322, 0, "'v'"), -(6323, 0, "'e'"), -(6324, 0, "'s'"), -(6325, 0, "' '"), -(6326, 0, "'y'"), -(6327, 0, "'o'"), -(6328, 0, "'u'"), -(6329, 0, "' '"), -(6330, 0, "'c'"), -(6331, 0, "'l'"), -(6332, 0, "'o'"), -(6333, 0, "'s'"), -(6334, 0, "'u'"), -(6335, 0, "'r'"), -(6336, 0, "'e'"), -(6337, 0, "'-'"), -(6338, 0, "'l'"), -(6339, 0, "'i'"), -(6340, 0, "'k'"), -(6341, 0, "'e'"), -(6342, 0, "' '"), -(6333, 1, "''"), -(6333, 0, "'j'"), -(6343, 0, "'s'"), -(6344, 0, "'e'"), -(6345, 0, "'m'"), -(6346, 0, "'a'"), -(6347, 0, "'n'"), -(6348, 0, "'t'"), -(6349, 0, "'i'"), -(6350, 0, "'s'"), -(6351, 0, "' '"), -(6351, 1, "''"), -(6350, 1, "''"), -(6350, 0, "'c'"), -(6351, 0, "'s'"), -(6352, 0, "' '"), -(6353, 0, "'i'"), -(6354, 0, "'n'"), -(6355, 0, "' '"), -(6356, 0, "'j'"), -(6357, 0, "'a'"), -(6358, 0, "'v'"), -(6359, 0, "'a'"), -(6360, 0, "'s'"), -(6361, 0, "'c'"), -(6362, 0, "'r'"), -(6363, 0, "'i'"), -(6364, 0, "'p'"), -(6365, 0, "'t'"), -(6352, 3, "' '"), -(6353, 0, "'f'"), -(6354, 0, "'o'"), -(6355, 0, "'r'"), -(6367, 0, "' '"), -(6368, 0, "'o'"), -(6369, 0, "'b'"), -(6370, 0, "'j'"), -(6371, 0, "'e'"), -(6372, 0, "'c'"), -(6373, 0, "'t'"), -(6374, 0, "'s'"), -(6343, 0, "'c'"), -(6344, 0, "'o'"), -(6345, 0, "'p'"), -(6346, 0, "'y'"), -(6347, 0, "'-'"), -(6348, 0, "'o'"), -(6349, 0, "'n'"), -(6350, 0, "'-'"), -(6351, 0, "'w'"), -(6352, 0, "'r'"), -(6353, 0, "'i'"), -(6354, 0, "'t'"), -(6355, 0, "'e'"), -(6356, 0, "' '"), -(6389, 0, "'.'"), -(6390, 0, "' '"), -(6391, 0, "'T'"), -(6392, 0, "'h'"), -(6393, 0, "'e'"), -(6394, 0, "' '"), -(6391, 4, "'T'"), -(6392, 0, "'h'"), -(6393, 0, "'i'"), -(6394, 0, "'s'"), -(6395, 0, "' '"), -(6396, 0, "'i'"), -(6397, 0, "'s'"), -(6398, 0, "' '"), -(6399, 0, "'a'"), -(6400, 0, "' '"), -(6401, 0, "'c'"), -(6402, 0, "'o'"), -(6403, 0, "'o'"), -(6404, 0, "'l'"), -(6405, 0, "' '"), -(6406, 0, "'s'"), -(6407, 0, "'e'"), -(6408, 0, "'t'"), -(6409, 0, "' '"), -(6410, 0, "'o'"), -(6411, 0, "'f'"), -(6412, 0, "' '"), -(6413, 0, "'f'"), -(6414, 0, "'u'"), -(6415, 0, "'n'"), -(6416, 0, "'c'"), -(6417, 0, "'t'"), -(6418, 0, "'i'"), -(6419, 0, "'o'"), -(6420, 0, "'n'"), -(6421, 0, "'a'"), -(6422, 0, "'l'"), -(6423, 0, "'i'"), -(6424, 0, "'t'"), -(6425, 0, "'y'"), -(6426, 0, "','"), -(6427, 0, "' '"), -(6428, 0, "'b'"), -(6429, 0, "'u'"), -(6430, 0, "'t'"), -(6431, 0, "' '"), -(6432, 0, "'t'"), -(6433, 0, "'h'"), -(6434, 0, "'e'"), -(6435, 0, "' '"), -(6436, 0, "'o'"), -(6437, 0, "'p'"), -(6438, 0, "'t'"), -(6439, 0, "'i'"), -(6440, 0, "'m'"), -(6441, 0, "'i'"), -(6442, 0, "'z'"), -(6443, 0, "'e'"), -(6444, 0, "'r'"), -(6445, 0, "' '"), -(6446, 0, "'*'"), -(6447, 0, "'h'"), -(6448, 0, "'a'"), -(6449, 0, "'t'"), -(6450, 0, "'e'"), -(6451, 0, "'s'"), -(6452, 0, "'*'"), -(6453, 0, "' '"), -(6454, 0, "'t'"), -(6455, 0, "'h'"), -(6456, 0, "'i'"), -(6457, 0, "'s'"), -(6446, 12, "'g'"), -(6447, 0, "'e'"), -(6448, 0, "'t'"), -(6449, 0, "'s'"), -(6436, 0, "'v'"), -(6437, 0, "'8'"), -(6438, 0, "' '"), -(6436, 1, "''"), -(6436, 0, "'V'"), -(6453, 0, "' '"), -(6454, 0, "'r'"), -(6455, 0, "'e'"), -(6456, 0, "'a'"), -(6457, 0, "'l'"), -(6458, 0, "'l'"), -(6459, 0, "'y'"), -(6460, 0, "' '"), -(6461, 0, "'c'"), -(6462, 0, "'o'"), -(6463, 0, "'n'"), -(6464, 0, "'f'"), -(6465, 0, "'u'"), -(6466, 0, "'s'"), -(6467, 0, "'e'"), -(6468, 0, "'d'"), -(6469, 0, "' '"), -(6470, 0, "'b'"), -(6471, 0, "'y'"), -(6472, 0, "' '"), -(6473, 0, "'i'"), -(6474, 0, "'m'"), -(6475, 0, "'m'"), -(6476, 0, "'u'"), -(6477, 0, "'t'"), -(6478, 0, "'a'"), -(6479, 0, "'b'"), -(6480, 0, "'l'"), -(6481, 0, "'e'"), -(6482, 0, "'j'"), -(6483, 0, "'s'"), -(6484, 0, "' '"), -(6485, 0, "'a'"), -(6486, 0, "'n'"), -(6487, 0, "'d'"), -(6488, 0, "' '"), -(6489, 0, "'i'"), -(6490, 0, "'t'"), -(6491, 0, "' '"), -(6492, 0, "'d'"), -(6493, 0, "'r'"), -(6494, 0, "'a'"), -(6495, 0, "'m'"), -(6496, 0, "'a'"), -(6497, 0, "'t'"), -(6498, 0, "'i'"), -(6499, 0, "'c'"), -(6500, 0, "'s'"), -(6501, 0, "' '"), -(6501, 1, "''"), -(6500, 1, "''"), -(6500, 0, "'a'"), -(6501, 0, "'l'"), -(6502, 0, "'l'"), -(6503, 0, "'y'"), -(6504, 0, "' '"), -(6505, 0, "'d'"), -(6506, 0, "'e'"), -(6507, 0, "'c'"), -(6508, 0, "'r'"), -(6509, 0, "'e'"), -(6510, 0, "'a'"), -(6511, 0, "'s'"), -(6512, 0, "'e'"), -(6513, 0, "'s'"), -(6514, 0, "' '"), -(6504, 0, "' '"), -(6492, 13, "'i'"), -(6493, 0, "'n'"), -(6494, 0, "'c'"), -(6495, 0, "'r'"), -(6496, 0, "'e'"), -(6497, 0, "'a'"), -(6498, 0, "'s'"), -(6499, 0, "'e'"), -(6500, 0, "'s'"), -(6501, 0, "' '"), -(6502, 0, "'m'"), -(6503, 0, "'e'"), -(6504, 0, "'m'"), -(6505, 0, "'o'"), -(6506, 0, "'r'"), -(6507, 0, "'y'"), -(6508, 0, "' '"), -(6509, 0, "'u'"), -(6510, 0, "'s'"), -(6511, 0, "'a'"), -(6512, 0, "'g'"), -(6513, 0, "'e'"), -(6514, 0, "' '"), -(6515, 0, "'a'"), -(6516, 0, "'n'"), -(6517, 0, "'d'"), -(6529, 0, "'p'"), -(6530, 0, "'e'"), -(6531, 0, "'r'"), -(6532, 0, "'f'"), -(6533, 0, "'o'"), -(6534, 0, "'r'"), -(6535, 0, "'m'"), -(6536, 0, "'a'"), -(6537, 0, "'n'"), -(6538, 0, "'c'"), -(6539, 0, "'e'"), -(6540, 0, "'n'"), -(6541, 0, "'2'"), -(6542, 0, "'.'"), -(6543, 0, "' '"), -(6544, 0, "'A'"), -(6545, 0, "'u'"), -(6546, 0, "'t'"), -(6547, 0, "'o'"), -(6548, 0, "'m'"), -(6549, 0, "'e'"), -(6550, 0, "'r'"), -(6551, 0, "'g'"), -(6552, 0, "'e'"), -(6553, 0, "'''"), -(6540, 0, "'.'"), -(6555, 0, "'d'"), -(6556, 0, "' '"), -(6556, 1, "''"), -(6555, 1, "''"), -(6555, 0, "'s'"), -(6556, 0, "' '"), -(6557, 0, "'d'"), -(6558, 0, "'a'"), -(6559, 0, "'t'"), -(6560, 0, "'a'"), -(6561, 0, "' '"), -(6562, 0, "'s'"), -(6563, 0, "'t'"), -(6564, 0, "'r'"), -(6565, 0, "'u'"), -(6566, 0, "'c'"), -(6567, 0, "'t'"), -(6568, 0, "'u'"), -(6569, 0, "'r'"), -(6570, 0, "'e'"), -(6571, 0, "'s'"), -(6571, 1, "''"), -(6571, 0, "'s'"), -(6572, 0, "' '"), -(6573, 0, "'a'"), -(6574, 0, "'r'"), -(6575, 0, "'e'"), -(6576, 0, "'n'"), -(6577, 0, "'''"), -(6578, 0, "'t'"), -(6579, 0, "' '"), -(6580, 0, "'v'"), -(6581, 0, "'e'"), -(6582, 0, "'r'"), -(6583, 0, "'y'"), -(6584, 0, "' '"), -(6585, 0, "'g'"), -(6586, 0, "'o'"), -(6587, 0, "'o'"), -(6588, 0, "'d'"), -(6589, 0, "'.'"), -(6449, 35, "'h'"), -(6450, 0, "'a'"), -(6451, 0, "'s'"), -(6452, 0, "' '"), -(6453, 0, "'n'"), -(6454, 0, "'o'"), -(6455, 0, "' '"), -(6456, 0, "'i'"), -(6457, 0, "'d'"), -(6458, 0, "'e'"), -(6459, 0, "'a'"), -(6460, 0, "' '"), -(6461, 0, "'h'"), -(6462, 0, "'o'"), -(6463, 0, "'w'"), -(6464, 0, "' '"), -(6465, 0, "'t'"), -(6466, 0, "'o'"), -(6467, 0, "' '"), -(6468, 0, "'o'"), -(6469, 0, "'p'"), -(6470, 0, "'t'"), -(6471, 0, "'i'"), -(6472, 0, "'m'"), -(6473, 0, "'i'"), -(6474, 0, "'z'"), -(6475, 0, "'e'"), -(6476, 0, "' '"), -(6477, 0, "'i'"), -(6478, 0, "'m'"), -(6479, 0, "'m'"), -(6480, 0, "'u'"), -(6481, 0, "'t'"), -(6482, 0, "'a'"), -(6483, 0, "'b'"), -(6484, 0, "'l'"), -(6485, 0, "'e'"), -(6486, 0, "'j'"), -(6487, 0, "'s'"), -(6477, 0, "'c'"), -(6478, 0, "'o'"), -(6479, 0, "'d'"), -(6480, 0, "'e'"), -(6481, 0, "' '"), -(6482, 0, "'t'"), -(6483, 0, "'h'"), -(6484, 0, "'a'"), -(6485, 0, "'t'"), -(6486, 0, "' '"), -(6487, 0, "'m'"), -(6488, 0, "'a'"), -(6489, 0, "'k'"), -(6490, 0, "'e'"), -(6491, 0, "'s'"), -(6492, 0, "' '"), -(6493, 0, "'h'"), -(6494, 0, "'e'"), -(6495, 0, "'a'"), -(6496, 0, "'v'"), -(6497, 0, "'y'"), -(6498, 0, "' '"), -(6499, 0, "'u'"), -(6500, 0, "'s'"), -(6501, 0, "'e'"), -(6502, 0, "' '"), -(6503, 0, "'o'"), -(6504, 0, "'f'"), -(6505, 0, "' '"), -(6517, 0, "'.'"), -(6518, 4, "' '"), -(6519, 0, "'A'"), -(6520, 0, "'s'"), -(6521, 0, "' '"), -(6522, 0, "'a'"), -(6523, 0, "' '"), -(6524, 0, "'r'"), -(6525, 0, "'e'"), -(6526, 0, "'s'"), -(6527, 0, "'u'"), -(6528, 0, "'l'"), -(6529, 0, "'t'"), -(6530, 0, "','"), -(6531, 0, "' '"), -(6531, 1, "''"), -(6448, 0, "' '"), -(6449, 0, "'&'"), -(6450, 0, "' '"), -(6451, 0, "'G'"), -(6452, 0, "'C'"), -(6602, 36, "' '"), -(6603, 0, "'n'"), -(6604, 0, "'e'"), -(6605, 0, "'e'"), -(6606, 0, "'d'"), -(6607, 0, "'s'"), -(6608, 0, "' '"), -(6609, 0, "'t'"), -(6610, 0, "'o'"), -(6611, 0, "' '"), -(6612, 0, "'d'"), -(6613, 0, "'o'"), -(6614, 0, "' '"), -(6615, 0, "'a'"), -(6616, 0, "' '"), -(6617, 0, "'l'"), -(6618, 0, "'o'"), -(6619, 0, "'t'"), -(6620, 0, "' '"), -(6621, 0, "'o'"), -(6622, 0, "'f'"), -(6623, 0, "' '"), -(6624, 0, "'d'"), -(6625, 0, "'a'"), -(6626, 0, "'t'"), -(6627, 0, "'a'"), -(6628, 0, "' '"), -(6628, 1, "''"), -(6623, 5, "''"), -(6620, 3, "''"), -(6616, 4, "''"), -(6614, 2, "''"), -(6611, 3, "''"), -(6608, 3, "''"), -(6602, 6, "''s data structures aren't very good.'"), -(6602, 36, "''"), -(6602, 0, "' '"), -(6603, 0, "'u'"), -(6604, 0, "'s'"), -(6605, 0, "'e'"), -(6606, 0, "'s'"), -(6607, 0, "' '"), -(6608, 0, "'t'"), -(6609, 0, "'h'"), -(6610, 0, "'e'"), -(6611, 0, "' '"), -(6612, 0, "'w'"), -(6613, 0, "'r'"), -(6614, 0, "'o'"), -(6615, 0, "'n'"), -(6616, 0, "'g'"), -(6617, 0, "' '"), -(6618, 0, "'d'"), -(6619, 0, "'a'"), -(6620, 0, "'t'"), -(6621, 0, "'a'"), -(6622, 0, "' '"), -(6623, 0, "'s'"), -(6624, 0, "'t'"), -(6625, 0, "'r'"), -(6626, 0, "'u'"), -(6627, 0, "'c'"), -(6628, 0, "'t'"), -(6629, 0, "'u'"), -(6630, 0, "'r'"), -(6631, 0, "'e'"), -(6632, 0, "' '"), -(6633, 0, "'f'"), -(6634, 0, "'o'"), -(6635, 0, "'r'"), -(6636, 0, "' '"), -(6637, 0, "'R'"), -(6638, 0, "'G'"), -(6639, 0, "'A'"), -(6640, 0, "' '"), -(6641, 0, "'('"), -(6642, 0, "'!'"), -(6643, 0, "'!'"), -(6644, 0, "')'"), -(6632, 0, "'s'"), -(6633, 8, "''"), -(6638, 0, "'n'"), -(6639, 0, "'3'"), -(6640, 0, "'.'"), -(6641, 0, "' '"), -(6642, 0, "'A'"), -(6643, 0, "'t'"), -(6644, 0, "'u'"), -(6645, 0, "'o'"), -(6646, 0, "'m'"), -(6647, 0, "'e'"), -(6648, 0, "'r'"), -(6649, 0, "'g'"), -(6642, 8, "'A'"), -(6643, 0, "'u'"), -(6644, 0, "'t'"), -(6645, 0, "'o'"), -(6646, 0, "'m'"), -(6647, 0, "'e'"), -(6648, 0, "'r'"), -(6649, 0, "'g'"), -(6650, 0, "'e'"), -(6651, 0, "' '"), -(6652, 0, "'i'"), -(6653, 0, "'s'"), -(6654, 0, "' '"), -(6655, 0, "'s'"), -(6655, 1, "''"), -(6655, 0, "'w'"), -(6656, 0, "'r'"), -(6657, 0, "'i'"), -(6658, 0, "'t'"), -(6659, 0, "'t'"), -(6660, 0, "'e'"), -(6661, 0, "'n'"), -(6662, 0, "' '"), -(6639, 24, "'3. Automerge is written'"), -(6231, 2, "'a'"), -(6232, 0, "' '"), -(6233, 0, "'h'"), -(6234, 0, "'a'"), -(6235, 0, "'n'"), -(6236, 0, "'d'"), -(6237, 0, "'f'"), -(6238, 0, "'u'"), -(6239, 0, "'l'"), -(6240, 0, "' '"), -(6241, 0, "'o'"), -(6242, 0, "'f'"), -(6243, 0, "' '"), -(6663, 10, "'t'"), -(6664, 0, "'r'"), -(6665, 0, "'e'"), -(6666, 0, "'a'"), -(6667, 0, "'t'"), -(6668, 0, "'s'"), -(6669, 0, "' '"), -(6670, 0, "'e'"), -(6671, 0, "'a'"), -(6672, 0, "'c'"), -(6673, 0, "'h'"), -(6674, 0, "' '"), -(6675, 0, "'i'"), -(6676, 0, "'n'"), -(6677, 0, "'s'"), -(6678, 0, "'e'"), -(6679, 0, "'r'"), -(6680, 0, "'t'"), -(6681, 0, "'e'"), -(6682, 0, "'d'"), -(6683, 0, "' '"), -(6684, 0, "'c'"), -(6685, 0, "'h'"), -(6686, 0, "'a'"), -(6687, 0, "'r'"), -(6688, 0, "'a'"), -(6689, 0, "'c'"), -(6690, 0, "'t'"), -(6691, 0, "'e'"), -(6692, 0, "'r'"), -(6693, 0, "' '"), -(6694, 0, "'a'"), -(6695, 0, "'s'"), -(6696, 0, "' '"), -(6697, 0, "'a'"), -(6698, 0, "' '"), -(6699, 0, "'s'"), -(6700, 0, "'e'"), -(6701, 0, "'p'"), -(6702, 0, "'a'"), -(6703, 0, "'r'"), -(6704, 0, "'a'"), -(6705, 0, "'t'"), -(6706, 0, "'e'"), -(6707, 0, "' '"), -(6708, 0, "'i'"), -(6709, 0, "'t'"), -(6710, 0, "'e'"), -(6711, 0, "'m'"), -(6712, 0, "'.'"), -(6713, 0, "' '"), -(6714, 0, "'R'"), -(6715, 0, "'e'"), -(6716, 0, "'m'"), -(6717, 0, "'e'"), -(6718, 0, "'m'"), -(6719, 0, "'b'"), -(6720, 0, "'e'"), -(6721, 0, "'r'"), -(6722, 0, "' '"), -(6723, 0, "'t'"), -(6724, 0, "'h'"), -(6725, 0, "'a'"), -(6726, 0, "'t'"), -(6727, 0, "' '"), -(6728, 0, "'p'"), -(6729, 0, "'a'"), -(6730, 0, "'p'"), -(6731, 0, "'e'"), -(6732, 0, "'r'"), -(6733, 0, "' '"), -(6734, 0, "'I'"), -(6735, 0, "' '"), -(6736, 0, "'t'"), -(6737, 0, "'a'"), -(6738, 0, "'l'"), -(6739, 0, "'k'"), -(6740, 0, "'e'"), -(6741, 0, "'d'"), -(6742, 0, "' '"), -(6743, 0, "'a'"), -(6744, 0, "'b'"), -(6745, 0, "'o'"), -(6746, 0, "'u'"), -(6747, 0, "'t'"), -(6748, 0, "' '"), -(6749, 0, "'e'"), -(6750, 0, "'a'"), -(6751, 0, "'r'"), -(6752, 0, "'l'"), -(6753, 0, "'i'"), -(6754, 0, "'e'"), -(6755, 0, "'r'"), -(6756, 0, "'?'"), -(6757, 0, "' '"), -(6758, 0, "'A'"), -(6759, 0, "'u'"), -(6760, 0, "'t'"), -(6761, 0, "'o'"), -(6762, 0, "'m'"), -(6763, 0, "'e'"), -(6764, 0, "'r'"), -(6765, 0, "'g'"), -(6766, 0, "'e'"), -(6767, 0, "' '"), -(6768, 0, "'m'"), -(6769, 0, "'a'"), -(6770, 0, "'k'"), -(6771, 0, "'e'"), -(6772, 0, "'s'"), -(6773, 0, "' '"), -(6774, 0, "'t'"), -(6775, 0, "'h'"), -(6776, 0, "'e'"), -(6777, 0, "' '"), -(6778, 0, "'s'"), -(6779, 0, "'a'"), -(6780, 0, "'m'"), -(6781, 0, "'e'"), -(6782, 0, "' '"), -(6783, 0, "'m'"), -(6784, 0, "'i'"), -(6785, 0, "'s'"), -(6786, 0, "'t'"), -(6787, 0, "'a'"), -(6788, 0, "'k'"), -(6789, 0, "'e'"), -(6790, 0, "'!'"), -(6790, 1, "''"), -(6790, 0, "'.'"), -(6791, 0, "'n'"), -(6792, 0, "'n'"), -(6792, 1, "''"), -(6792, 0, "'4'"), -(6793, 0, "'.'"), -(6794, 0, "' '"), -(6795, 0, "'J'"), -(6796, 0, "'a'"), -(6797, 0, "'v'"), -(6798, 0, "'a'"), -(6799, 0, "'s'"), -(6800, 0, "'c'"), -(6801, 0, "'r'"), -(6802, 0, "'i'"), -(6803, 0, "'p'"), -(6804, 0, "'t'"), -(6502, 19, "' '"), -(6503, 0, "'u'"), -(6504, 0, "'s'"), -(6505, 0, "'e'"), -(6506, 0, "'s'"), -(6465, 18, "'s'"), -(6466, 0, "'t'"), -(6467, 0, "'r'"), -(6468, 0, "'u'"), -(6469, 0, "'g'"), -(6470, 0, "'g'"), -(6471, 0, "'l'"), -(6472, 0, "'e'"), -(6473, 0, "'s'"), -(6474, 0, "' '"), -(6475, 0, "'t'"), -(6476, 0, "'o'"), -(6736, 0, "' '"), -(6736, 1, "''"), -(6736, 0, "','"), -(6737, 0, "' '"), -(6738, 0, "'w'"), -(6739, 0, "'h'"), -(6740, 0, "'e'"), -(6741, 0, "'r'"), -(6742, 0, "'e'"), -(6743, 0, "' '"), -(6744, 0, "'c'"), -(6745, 0, "'o'"), -(6746, 0, "'p'"), -(6747, 0, "'y'"), -(6748, 0, "'+'"), -(6749, 0, "'p'"), -(6750, 0, "'a'"), -(6751, 0, "'s'"), -(6752, 0, "'t'"), -(6753, 0, "'e'"), -(6754, 0, "' '"), -(6755, 0, "'o'"), -(6756, 0, "'p'"), -(6757, 0, "'e'"), -(6758, 0, "'r'"), -(6759, 0, "'a'"), -(6760, 0, "'t'"), -(6761, 0, "'i'"), -(6762, 0, "'o'"), -(6763, 0, "'n'"), -(6764, 0, "'s'"), -(6765, 0, "' '"), -(6766, 0, "'a'"), -(6767, 0, "'r'"), -(6768, 0, "'e'"), -(6769, 0, "' '"), -(6770, 0, "'s'"), -(6771, 0, "'l'"), -(6772, 0, "'o'"), -(6773, 0, "'w'"), -(6808, 1, "''"), -(6808, 0, "'!'"), -(6823, 0, "' '"), -(6824, 0, "'j'"), -(6825, 0, "'u'"), -(6826, 0, "'s'"), -(6827, 0, "'t'"), -(6828, 0, "' '"), -(6829, 0, "'i'"), -(6830, 0, "'s'"), -(6831, 0, "'n'"), -(6831, 1, "''"), -(6831, 0, "'n'"), -(6832, 0, "'n'"), -(6833, 0, "'''"), -(6834, 0, "'t'"), -(6835, 0, "' '"), -(6835, 1, "''"), -(6834, 1, "''"), -(6833, 1, "''"), -(6832, 1, "''"), -(6832, 0, "'''"), -(6833, 0, "'t'"), -(6834, 0, "' '"), -(6835, 0, "'v'"), -(6836, 0, "'e'"), -(6837, 0, "'r'"), -(6838, 0, "'y'"), -(6839, 0, "' '"), -(6840, 0, "'f'"), -(6841, 0, "'a'"), -(6842, 0, "'s'"), -(6843, 0, "'t'"), -(6844, 0, "'e'"), -(6845, 0, "' '"), -(6845, 1, "''"), -(6844, 1, "''"), -(6844, 0, "' '"), -(6845, 0, "'a'"), -(6846, 0, "'n'"), -(6847, 0, "'y'"), -(6848, 0, "'w'"), -(6849, 0, "'a'"), -(6850, 0, "'y'"), -(6824, 27, "''"), -(6823, 1, "''"), -(6813, 0, "'C'"), -(6814, 0, "'o'"), -(6815, 0, "'m'"), -(6816, 0, "'p'"), -(6817, 0, "'l'"), -(6818, 0, "'e'"), -(6819, 0, "'x'"), -(6820, 0, "' '"), -(6821, 0, "'d'"), -(6822, 0, "'a'"), -(6823, 0, "'t'"), -(6824, 0, "'a'"), -(6825, 0, "' '"), -(6826, 0, "'s'"), -(6827, 0, "'t'"), -(6828, 0, "'r'"), -(6829, 0, "'u'"), -(6830, 0, "'c'"), -(6831, 0, "'t'"), -(6832, 0, "'u'"), -(6833, 0, "'r'"), -(6834, 0, "'e'"), -(6835, 0, "'s'"), -(6836, 0, "' '"), -(6837, 0, "'a'"), -(6838, 0, "'r'"), -(6839, 0, "'e'"), -(6840, 0, "' '"), -(6841, 0, "'e'"), -(6842, 0, "'x'"), -(6843, 0, "'t'"), -(6844, 0, "'r'"), -(6845, 0, "'a'"), -(6846, 0, "' '"), -(6847, 0, "'s'"), -(6848, 0, "'l'"), -(6849, 0, "'o'"), -(6850, 0, "'w'"), -(6851, 0, "' '"), -(6852, 0, "'b'"), -(6853, 0, "'e'"), -(6854, 0, "'c'"), -(6855, 0, "'a'"), -(6856, 0, "'u'"), -(6857, 0, "'s'"), -(6858, 0, "'e'"), -(6859, 0, "' '"), -(6860, 0, "'o'"), -(6861, 0, "'f'"), -(6862, 0, "' '"), -(6873, 0, "'n'"), -(6874, 0, "'n'"), -(6875, 0, "'Y'"), -(6876, 0, "'o'"), -(6877, 0, "'u'"), -(6878, 0, "' '"), -(6879, 0, "'c'"), -(6880, 0, "'a'"), -(6881, 0, "'n'"), -(6882, 0, "' '"), -(6883, 0, "'s'"), -(6884, 0, "'e'"), -(6885, 0, "'e'"), -(6886, 0, "' '"), -(6887, 0, "'m'"), -(6888, 0, "'o'"), -(6889, 0, "'s'"), -(6890, 0, "'t'"), -(6891, 0, "' '"), -(6892, 0, "'o'"), -(6893, 0, "'f'"), -(6894, 0, "' '"), -(6895, 0, "'t'"), -(6896, 0, "'h'"), -(6897, 0, "'e'"), -(6898, 0, "'s'"), -(6899, 0, "'e'"), -(6887, 13, "'s'"), -(6888, 0, "'o'"), -(6889, 0, "'m'"), -(6890, 0, "'e'"), -(6891, 0, "' '"), -(6892, 0, "'o'"), -(6893, 0, "'f'"), -(6894, 0, "' '"), -(6895, 0, "'t'"), -(6896, 0, "'h'"), -(6897, 0, "'e'"), -(6898, 0, "'s'"), -(6899, 0, "'e'"), -(6900, 0, "' '"), -(6901, 0, "'i'"), -(6902, 0, "'s'"), -(6903, 0, "'s'"), -(6904, 0, "'u'"), -(6905, 0, "'e'"), -(6906, 0, "'s'"), -(6907, 0, "' '"), -(6908, 0, "'l'"), -(6909, 0, "'o'"), -(6910, 0, "'o'"), -(6911, 0, "'k'"), -(6912, 0, "'i'"), -(6913, 0, "'n'"), -(6914, 0, "'g'"), -(6915, 0, "' '"), -(6916, 0, "'a'"), -(6917, 0, "'t'"), -(6918, 0, "' '"), -(6887, 32, "'a'"), -(6888, 0, "' '"), -(6889, 0, "'l'"), -(6890, 0, "'o'"), -(6891, 0, "'t'"), -(6892, 0, "' '"), -(6893, 0, "'o'"), -(6894, 0, "'f'"), -(6895, 0, "' '"), -(6896, 0, "'t'"), -(6897, 0, "'h'"), -(6898, 0, "'i'"), -(6899, 0, "'s'"), -(6900, 0, "' '"), -(6901, 0, "'s'"), -(6902, 0, "'t'"), -(6903, 0, "'u'"), -(6904, 0, "'f'"), -(6905, 0, "'f'"), -(6906, 0, "' '"), -(6907, 0, "'o'"), -(6907, 1, "''"), -(6907, 0, "'g'"), -(6908, 0, "'o'"), -(6909, 0, "'i'"), -(6910, 0, "'n'"), -(6911, 0, "'g'"), -(6912, 0, "' '"), -(6913, 0, "'o'"), -(6914, 0, "'n'"), -(6915, 0, "' '"), -(6916, 0, "'i'"), -(6917, 0, "'n'"), -(6918, 0, "' '"), -(6919, 0, "'t'"), -(6920, 0, "'h'"), -(6921, 0, "'i'"), -(6922, 0, "'s'"), -(6923, 0, "' '"), -(6924, 0, "'f'"), -(6925, 0, "'u'"), -(6926, 0, "'n'"), -(6927, 0, "'c'"), -(6928, 0, "'t'"), -(6929, 0, "'i'"), -(6930, 0, "'o'"), -(6931, 0, "'n'"), -(6932, 0, "' '"), -(6933, 0, "'f'"), -(6934, 0, "'r'"), -(6935, 0, "'o'"), -(6936, 0, "'m'"), -(6937, 0, "' '"), -(6938, 0, "'a'"), -(6939, 0, "'u'"), -(6940, 0, "'t'"), -(6941, 0, "'o'"), -(6942, 0, "'m'"), -(6943, 0, "'e'"), -(6944, 0, "'r'"), -(6945, 0, "'g'"), -(6946, 0, "'e'"), -(6947, 0, "':'"), -(6948, 0, "'n'"), -(6949, 0, "'n'"), -(6950, 0, "'`'"), -(6951, 0, "'`'"), -(6952, 0, "'`'"), -(6953, 0, "'j'"), -(6954, 0, "'a'"), -(6955, 0, "'v'"), -(6956, 0, "'a'"), -(6957, 0, "'s'"), -(6958, 0, "'c'"), -(6959, 0, "'r'"), -(6960, 0, "'i'"), -(6961, 0, "'p'"), -(6962, 0, "'t'"), -(6963, 0, "'n'"), -(6964, 0, "'n'"), -(6964, 1, "''"), -(6964, 0, "'function insertionsAfter(opSet, objectId, parentId, childId) {n let childKey = nulln if (childId) childKey = Map({opId: childId})nn return opSetn .getIn(['byObject', objectId, '_following', parentId], List())n .filter(op => op.get('insert') && (!childKey || lamportCompare(op, childKey) < 0))n .sort(lamportCompare)n .reverse() // descending ordern .map(op => op.get('opId'))n}n'"), -(7360, 0, "'`'"), -(7361, 0, "'`'"), -(7362, 0, "'`'"), -(6924, 13, "''"), -(6923, 1, "''"), -(6933, 0, "' '"), -(6934, 0, "'f'"), -(6935, 0, "'u'"), -(6936, 0, "'n'"), -(6937, 0, "'c'"), -(6938, 0, "'t'"), -(6939, 0, "'o'"), -(6940, 0, "'i'"), -(6941, 0, "'n'"), -(6941, 1, "''"), -(6940, 1, "''"), -(6939, 1, "''"), -(6939, 0, "'i'"), -(6940, 0, "'o'"), -(6941, 0, "'n'"), -(7358, 0, "'n'"), -(7359, 0, "'n'"), -(7360, 0, "'T'"), -(7361, 0, "'h'"), -(7362, 0, "'i'"), -(7363, 0, "'s'"), -(7364, 0, "' '"), -(7365, 0, "'i'"), -(7366, 0, "'s'"), -(7367, 0, "' '"), -(7368, 0, "'c'"), -(7369, 0, "'a'"), -(7370, 0, "'l'"), -(7371, 0, "'l'"), -(7372, 0, "'e'"), -(7373, 0, "'d'"), -(7374, 0, "' '"), -(7375, 0, "'o'"), -(7376, 0, "'n'"), -(7377, 0, "' '"), -(7378, 0, "'e'"), -(7379, 0, "'a'"), -(7380, 0, "'c'"), -(7381, 0, "'h'"), -(7382, 0, "' '"), -(7383, 0, "'i'"), -(7384, 0, "'n'"), -(7385, 0, "'s'"), -(7386, 0, "'e'"), -(7387, 0, "'r'"), -(7388, 0, "'t'"), -(7389, 0, "','"), -(7390, 0, "' '"), -(7391, 0, "'t'"), -(7392, 0, "'o'"), -(7393, 0, "' '"), -(7394, 0, "'f'"), -(7395, 0, "'i'"), -(7396, 0, "'g'"), -(7397, 0, "'u'"), -(7398, 0, "'r'"), -(7399, 0, "'e'"), -(7400, 0, "' '"), -(7401, 0, "'o'"), -(7402, 0, "'u'"), -(7403, 0, "'t'"), -(7404, 0, "' '"), -(7405, 0, "'h'"), -(7406, 0, "'o'"), -(7407, 0, "'w'"), -(7408, 0, "' '"), -(7409, 0, "'t'"), -(7410, 0, "'o'"), -(7411, 0, "' '"), -(7412, 0, "'s'"), -(7413, 0, "'o'"), -(7414, 0, "'r'"), -(7415, 0, "'t'"), -(7411, 5, "''"), -(7409, 2, "'t'"), -(7410, 0, "'h'"), -(7411, 0, "'e'"), -(7412, 0, "' '"), -(7413, 0, "'c'"), -(7414, 0, "'h'"), -(7415, 0, "'i'"), -(7416, 0, "'l'"), -(7417, 0, "'d'"), -(7418, 0, "'r'"), -(7419, 0, "'e'"), -(7420, 0, "'n'"), -(7421, 0, "' '"), -(7422, 0, "'o'"), -(7423, 0, "'n'"), -(7424, 0, "'f'"), -(7424, 1, "''"), -(7423, 1, "''"), -(7423, 0, "'f'"), -(7424, 0, "' '"), -(7425, 0, "'a'"), -(7426, 0, "'n'"), -(7427, 0, "' '"), -(7428, 0, "'i'"), -(7429, 0, "'t'"), -(7430, 0, "'e'"), -(7431, 0, "'m'"), -(7432, 0, "' '"), -(7433, 0, "'s'"), -(7434, 0, "'h'"), -(7435, 0, "'o'"), -(7436, 0, "'u'"), -(7437, 0, "'l'"), -(7438, 0, "'d'"), -(7439, 0, "' '"), -(7440, 0, "'b'"), -(7441, 0, "'e'"), -(7442, 0, "' '"), -(7443, 0, "'s'"), -(7444, 0, "'o'"), -(7445, 0, "'r'"), -(7446, 0, "'t'"), -(7447, 0, "'e'"), -(7448, 0, "'d'"), -(7449, 0, "'.'"), -(6599, 4, "''"), -(6594, 5, "'p'"), -(6595, 0, "'i'"), -(6596, 0, "'c'"), -(6597, 0, "'k'"), -(6598, 0, "'s'"), -(6599, 0, "' '"), -(6600, 0, "'t'"), -(6601, 0, "'h'"), -(6602, 0, "'e'"), -(6603, 0, "' '"), -(6604, 0, "'w'"), -(6605, 0, "'r'"), -(6606, 0, "'o'"), -(6607, 0, "'n'"), -(6608, 0, "'g'"), -(6609, 0, "' '"), -(6604, 6, "''"), -(6629, 0, "' '"), -(6630, 0, "'w'"), -(6631, 0, "'e'"), -(6632, 0, "'''"), -(6633, 0, "'l'"), -(6634, 0, "'l'"), -(6635, 0, "' '"), -(6636, 0, "'t'"), -(6637, 0, "'a'"), -(6638, 0, "'l'"), -(6639, 0, "'k'"), -(6640, 0, "' '"), -(6641, 0, "'a'"), -(6642, 0, "'b'"), -(6643, 0, "'o'"), -(6644, 0, "'u'"), -(6645, 0, "'t'"), -(6646, 0, "' '"), -(6647, 0, "'t'"), -(6648, 0, "'h'"), -(6649, 0, "'i'"), -(6650, 0, "'s'"), -(6651, 0, "' '"), -(6652, 0, "'s'"), -(6653, 0, "'o'"), -(6654, 0, "'o'"), -(6655, 0, "'n'"), -(6656, 0, "'!'"), -(6842, 60, "'J'"), -(6843, 0, "'a'"), -(6844, 0, "'v'"), -(6845, 0, "'a'"), -(6846, 0, "'s'"), -(6847, 0, "'c'"), -(6848, 0, "'r'"), -(6849, 0, "'i'"), -(6850, 0, "'p'"), -(6851, 0, "'t'"), -(6842, 10, "'C'"), -(6843, 0, "'o'"), -(6844, 0, "'m'"), -(6845, 0, "'p'"), -(6846, 0, "'l'"), -(6847, 0, "'e'"), -(6848, 0, "'x'"), -(6849, 0, "' '"), -(6850, 0, "'d'"), -(6851, 0, "'a'"), -(6852, 0, "'t'"), -(6853, 0, "'a'"), -(6854, 0, "' '"), -(6855, 0, "'s'"), -(6856, 0, "'t'"), -(6857, 0, "'r'"), -(6858, 0, "'u'"), -(6859, 0, "'c'"), -(6860, 0, "'t'"), -(6861, 0, "'u'"), -(6862, 0, "'r'"), -(6863, 0, "'e'"), -(6864, 0, "'s'"), -(6865, 0, "' '"), -(6866, 0, "'a'"), -(6867, 0, "'r'"), -(6868, 0, "'e'"), -(6869, 0, "' '"), -(6870, 0, "'e'"), -(6871, 0, "'x'"), -(6872, 0, "'t'"), -(6873, 0, "'r'"), -(6874, 0, "'a'"), -(6875, 0, "' '"), -(6876, 0, "'s'"), -(6877, 0, "'l'"), -(6878, 0, "'o'"), -(6879, 0, "'w'"), -(6880, 0, "' '"), -(6881, 0, "'i'"), -(6882, 0, "'n'"), -(6883, 0, "' '"), -(6884, 0, "'a'"), -(6885, 0, "'j'"), -(6886, 0, "'v'"), -(6887, 0, "'a'"), -(6888, 0, "'s'"), -(6884, 5, "'j'"), -(6885, 0, "'a'"), -(6886, 0, "'v'"), -(6887, 0, "'a'"), -(6888, 0, "'s'"), -(6889, 0, "'c'"), -(6890, 0, "'r'"), -(6891, 0, "'i'"), -(6892, 0, "'p'"), -(6893, 0, "'t'"), -(6894, 0, "'.'"), -(6894, 1, "''"), -(6896, 68, "'L'"), -(6897, 0, "'o'"), -(6898, 0, "'o'"), -(6899, 0, "'k'"), -(6900, 0, "' '"), -(6901, 0, "'a'"), -(6902, 0, "'t'"), -(6903, 0, "' '"), -(6904, 0, "'t'"), -(6905, 0, "'h'"), -(6906, 0, "'i'"), -(6907, 0, "'s'"), -(6908, 0, "' '"), -(6909, 0, "'f'"), -(6910, 0, "'u'"), -(6911, 0, "'n'"), -(6912, 0, "'c'"), -(6913, 0, "'t'"), -(6914, 0, "'i'"), -(6915, 0, "'o'"), -(6916, 0, "'n'"), -(6917, 0, "' '"), -(6918, 0, "'f'"), -(6919, 0, "'r'"), -(6920, 0, "'o'"), -(6921, 0, "'m'"), -(6922, 0, "' '"), -(6923, 0, "'a'"), -(6924, 0, "'u'"), -(6925, 0, "'t'"), -(6926, 0, "'o'"), -(6927, 0, "'m'"), -(6928, 0, "'e'"), -(6929, 0, "'r'"), -(6930, 0, "'g'"), -(6931, 0, "'e'"), -(6932, 0, "':'"), -(7440, 0, "' '"), -(7441, 0, "'T'"), -(7442, 0, "'h'"), -(7443, 0, "'e'"), -(7444, 0, "'r'"), -(7445, 0, "'e'"), -(7446, 0, "' '"), -(7447, 0, "'a'"), -(7448, 0, "'r'"), -(7449, 0, "'e'"), -(7450, 0, "' '"), -(7451, 0, "'s'"), -(7452, 0, "'o'"), -(7453, 0, "' '"), -(7454, 0, "'m'"), -(7455, 0, "'a'"), -(7456, 0, "'n'"), -(7457, 0, "'y'"), -(7458, 0, "' '"), -(7459, 0, "'t'"), -(7460, 0, "'h'"), -(7461, 0, "'i'"), -(7462, 0, "'n'"), -(7463, 0, "'g'"), -(7464, 0, "'s'"), -(7465, 0, "' '"), -(7466, 0, "'s'"), -(7467, 0, "'l'"), -(7468, 0, "'o'"), -(7469, 0, "'w'"), -(7470, 0, "' '"), -(7471, 0, "'a'"), -(7472, 0, "'b'"), -(7473, 0, "'o'"), -(7474, 0, "'u'"), -(7475, 0, "'t'"), -(7476, 0, "' '"), -(7477, 0, "'t'"), -(7478, 0, "'h'"), -(7479, 0, "'i'"), -(7480, 0, "'s'"), -(7481, 0, "':'"), -(7482, 0, "'n'"), -(7483, 0, "'n'"), -(7484, 0, "'-'"), -(7485, 0, "' '"), -(7486, 0, "'T'"), -(7487, 0, "'h'"), -(7488, 0, "'e'"), -(7489, 0, "'r'"), -(7490, 0, "'e'"), -(7491, 0, "' '"), -(7492, 0, "'a'"), -(7493, 0, "'r'"), -(7494, 0, "'e'"), -(7495, 0, "' '"), -(7496, 0, "'5'"), -(7497, 0, "' '"), -(7498, 0, "'o'"), -(7499, 0, "'b'"), -(7500, 0, "'j'"), -(7501, 0, "'e'"), -(7502, 0, "'c'"), -(7503, 0, "'t'"), -(7504, 0, "'s'"), -(7496, 1, "''"), -(7496, 0, "'6'"), -(7497, 8, "' '"), -(7498, 0, "'a'"), -(7499, 0, "'l'"), -(7500, 0, "'l'"), -(7501, 0, "'o'"), -(7502, 0, "'c'"), -(7503, 0, "'a'"), -(7504, 0, "'t'"), -(7505, 0, "'i'"), -(7506, 0, "'o'"), -(7507, 0, "'n'"), -(7508, 0, "'s'"), -(7509, 0, "' '"), -(7510, 0, "'i'"), -(7511, 0, "'n'"), -(7512, 0, "' '"), -(7513, 0, "'t'"), -(7514, 0, "'h'"), -(7515, 0, "'i'"), -(7516, 0, "'s'"), -(7517, 0, "' '"), -(7518, 0, "'f'"), -(7519, 0, "'u'"), -(7520, 0, "'n'"), -(7521, 0, "'c'"), -(7522, 0, "'t'"), -(7523, 0, "'i'"), -(7524, 0, "'o'"), -(7525, 0, "'n'"), -(7526, 0, "'.'"), -(7527, 0, "' '"), -(7528, 0, "'C'"), -(7529, 0, "'a'"), -(7530, 0, "'n'"), -(7531, 0, "' '"), -(7532, 0, "'y'"), -(7533, 0, "'o'"), -(7534, 0, "'u'"), -(7528, 0, "'('"), -(7536, 0, "' '"), -(7537, 0, "'s'"), -(7538, 0, "'p'"), -(7539, 0, "'o'"), -(7540, 0, "'t'"), -(7541, 0, "' '"), -(7542, 0, "'t'"), -(7543, 0, "'h'"), -(7544, 0, "'e'"), -(7545, 0, "'m'"), -(7546, 0, "' '"), -(7547, 0, "'a'"), -(7548, 0, "'l'"), -(7549, 0, "'l'"), -(7550, 0, "'?'"), -(7551, 0, "')'"), -(7485, 11, "'I'"), -(7486, 0, "' '"), -(7486, 1, "''"), -(7485, 1, "''"), -(7485, 0, "' '"), -(7486, 0, "'I'"), -(7487, 0, "' '"), -(7488, 0, "'c'"), -(7489, 0, "'a'"), -(7490, 0, "'n'"), -(7491, 0, "' '"), -(7492, 0, "'s'"), -(7493, 0, "'p'"), -(7494, 0, "'o'"), -(7495, 0, "'t'"), -(7496, 0, "' '"), -(7497, 1, "''"), -(7497, 0, "'6'"), -(7497, 1, "''"), -(7497, 0, "'7'"), -(7527, 0, "' '"), -(7527, 1, "''"), -(7527, 0, "'.'"), -(7528, 0, "' '"), -(7529, 0, "'5'"), -(7530, 0, "' '"), -(7531, 0, "'i'"), -(7532, 0, "'f'"), -(7533, 0, "' '"), -(7534, 0, "'y'"), -(7535, 0, "'o'"), -(7536, 0, "'u'"), -(7537, 0, "' '"), -(7538, 0, "'d'"), -(7539, 0, "'o'"), -(7540, 0, "'n'"), -(7541, 0, "'''"), -(7542, 0, "'t'"), -(7543, 0, "' '"), -(7544, 0, "'i'"), -(7545, 0, "'n'"), -(7546, 0, "'c'"), -(7547, 0, "'l'"), -(7548, 0, "'u'"), -(7549, 0, "'d'"), -(7550, 0, "'e'"), -(7551, 0, "' '"), -(7552, 0, "'t'"), -(7553, 0, "'h'"), -(7554, 0, "'e'"), -(7555, 0, "' '"), -(7556, 0, "'t'"), -(7557, 0, "'w'"), -(7558, 0, "'o'"), -(7559, 0, "' '"), -(7560, 0, "'c'"), -(7561, 0, "'l'"), -(7562, 0, "'o'"), -(7563, 0, "'s'"), -(7564, 0, "'u'"), -(7565, 0, "'r'"), -(7566, 0, "'e'"), -(7567, 0, "'s'"), -(7570, 1, "''"), -(7570, 0, "'('"), -(7579, 4, "'f'"), -(7580, 0, "'i'"), -(7581, 0, "'n'"), -(7582, 0, "'d'"), -(7528, 41, "''"), -(7528, 0, "' '"), -(7529, 0, "'('"), -(7530, 0, "'T'"), -(7531, 0, "'h'"), -(7532, 0, "'o'"), -(7533, 0, "'u'"), -(7534, 0, "'g'"), -(7535, 0, "'h'"), -(7536, 0, "' '"), -(7537, 0, "'2'"), -(7538, 0, "' '"), -(7539, 0, "'s'"), -(7540, 0, "'h'"), -(7541, 0, "'o'"), -(7542, 0, "'u'"), -(7543, 0, "'l'"), -(7544, 0, "'d'"), -(7545, 0, "' '"), -(7546, 0, "'b'"), -(7547, 0, "'e'"), -(7548, 0, "' '"), -(7549, 0, "'h'"), -(7550, 0, "'o'"), -(7551, 0, "'i'"), -(7552, 0, "'s'"), -(7553, 0, "'t'"), -(7554, 0, "'e'"), -(7555, 0, "'d'"), -(7556, 0, "')'"), -(7557, 0, "'.'"), -(7530, 0, "'t'"), -(7530, 1, "''"), -(7536, 0, "' '"), -(7537, 0, "'t'"), -(7538, 0, "'h'"), -(7539, 0, "'e'"), -(7540, 0, "' '"), -(7541, 0, "'2'"), -(7542, 0, "' '"), -(7543, 0, "'c'"), -(7544, 0, "'l'"), -(7545, 0, "'o'"), -(7546, 0, "'s'"), -(7547, 0, "'u'"), -(7548, 0, "'r'"), -(7549, 0, "'e'"), -(7550, 0, "'s'"), -(7551, 2, "''"), -(7572, 1, "''"), -(7594, 1, "''"), -(7594, 0, "')'"), -(7572, 0, "'('"), -(7596, 0, "'n'"), -(7597, 0, "'-'"), -(7598, 0, "' '"), -(7599, 0, "'T'"), -(7600, 0, "'h'"), -(7601, 0, "'e'"), -(7602, 0, "' '"), -(7603, 0, "'i'"), -(7604, 0, "'t'"), -(7605, 0, "'e'"), -(7606, 0, "'m'"), -(7607, 0, "'s'"), -(7608, 0, "' '"), -(7609, 0, "'a'"), -(7610, 0, "'r'"), -(7611, 0, "'e'"), -(7612, 0, "' '"), -(7613, 0, "'a'"), -(7614, 0, "'l'"), -(7615, 0, "'r'"), -(7616, 0, "'e'"), -(7617, 0, "'a'"), -(7618, 0, "'d'"), -(7619, 0, "'y'"), -(7620, 0, "' '"), -(7621, 0, "'s'"), -(7622, 0, "'o'"), -(7623, 0, "'r'"), -(7624, 0, "'t'"), -(7625, 0, "'e'"), -(7626, 0, "'d'"), -(7627, 0, "' '"), -(7628, 0, "'b'"), -(7629, 0, "'y'"), -(7630, 0, "' '"), -(7631, 0, "'l'"), -(7632, 0, "'a'"), -(7633, 0, "'m'"), -(7634, 0, "'p'"), -(7635, 0, "'o'"), -(7636, 0, "'r'"), -(7637, 0, "'t'"), -(7638, 0, "'C'"), -(7639, 0, "'o'"), -(7640, 0, "'m'"), -(7641, 0, "'p'"), -(7642, 0, "'a'"), -(7643, 0, "'r'"), -(7644, 0, "'e'"), -(7613, 8, "''"), -(7637, 0, "' '"), -(7638, 0, "'b'"), -(7639, 0, "'e'"), -(7640, 0, "'f'"), -(7641, 0, "'o'"), -(7642, 0, "'r'"), -(7643, 0, "'e'"), -(7644, 0, "' '"), -(7645, 0, "'t'"), -(7646, 0, "'h'"), -(7647, 0, "'i'"), -(7648, 0, "'s'"), -(7649, 0, "' '"), -(7650, 0, "'m'"), -(7651, 0, "'e'"), -(7652, 0, "'t'"), -(7653, 0, "'h'"), -(7654, 0, "'o'"), -(7655, 0, "'d'"), -(7656, 0, "' '"), -(7657, 0, "'i'"), -(7658, 0, "'s'"), -(7659, 0, "' '"), -(7660, 0, "'c'"), -(7661, 0, "'a'"), -(7662, 0, "'l'"), -(7663, 0, "'l'"), -(7664, 0, "'e'"), -(7665, 0, "'d'"), -(7622, 0, "' '"), -(7622, 1, "''"), -(7622, 0, "' '"), -(7623, 0, "'t'"), -(7624, 0, "'h'"), -(7625, 0, "'e'"), -(7626, 0, "' '"), -(7627, 0, "'i'"), -(7628, 0, "'n'"), -(7629, 0, "'v'"), -(7630, 0, "'e'"), -(7631, 0, "'r'"), -(7632, 0, "'s'"), -(7633, 0, "'e'"), -(7634, 0, "' '"), -(7635, 0, "'o'"), -(7636, 0, "'f'"), -(7681, 0, "'.'"), -(7682, 0, "' '"), -(7683, 0, "'S'"), -(7684, 0, "'o'"), -(7685, 0, "'r'"), -(7686, 0, "'t'"), -(7687, 0, "'i'"), -(7688, 0, "'n'"), -(7689, 0, "'g'"), -(7690, 0, "' '"), -(7691, 0, "'a'"), -(7692, 0, "' '"), -(7693, 0, "'l'"), -(7694, 0, "'i'"), -(7695, 0, "'s'"), -(7696, 0, "'t'"), -(7596, 0, "'n'"), -(7597, 0, "'-'"), -(7598, 0, "' '"), -(7599, 0, "'T'"), -(7600, 0, "'h'"), -(7601, 0, "'e'"), -(7602, 0, "' '"), -(7603, 0, "'L'"), -(7604, 0, "'i'"), -(7605, 0, "'s'"), -(7606, 0, "'t'"), -(7607, 0, "'('"), -(7608, 0, "')'"), -(7609, 0, "'`'"), -(7603, 0, "'`'"), -(7611, 0, "' '"), -(7612, 0, "'a'"), -(7613, 0, "'r'"), -(7614, 0, "'g'"), -(7615, 0, "'u'"), -(7616, 0, "'m'"), -(7617, 0, "'e'"), -(7618, 0, "'n'"), -(7619, 0, "'t'"), -(7620, 0, "' '"), -(7621, 0, "'h'"), -(7622, 0, "'a'"), -(7623, 0, "'s'"), -(7624, 0, "' '"), -(7625, 0, "'n'"), -(7626, 0, "'o'"), -(7627, 0, "' '"), -(7628, 0, "'e'"), -(7629, 0, "'f'"), -(7630, 0, "'f'"), -(7631, 0, "'e'"), -(7632, 0, "'c'"), -(7633, 0, "'t'"), -(7621, 0, "'t'"), -(7622, 0, "'o'"), -(7623, 0, "' '"), -(7624, 0, "'`'"), -(7625, 0, "'g'"), -(7626, 0, "'e'"), -(7627, 0, "'t'"), -(7628, 0, "'O'"), -(7628, 1, "''"), -(7628, 0, "'I'"), -(7629, 0, "'n'"), -(7630, 0, "'`'"), -(7597, 47, "''"), -(7596, 1, "''"), -(6909, 8, "'c'"), -(6910, 0, "'o'"), -(6911, 0, "'d'"), -(6912, 0, "'e'"), -(6913, 0, "' '"), -(6914, 0, "'i'"), -(6915, 0, "'n'"), -(6916, 5, "''"), -(6914, 2, "'r'"), -(6914, 1, "''"), -(6914, 0, "'f'"), -(6915, 0, "'r'"), -(6916, 0, "'o'"), -(6917, 0, "'m'"), -(6944, 0, "'n'"), -(6945, 0, "'function lamportCompare(op1, op2) {n return opIdCompare(op1.get('opId'), op2.get('opId'))n}n'"), -(7702, 0, "' '"), -(7703, 0, "'a'"), -(7704, 0, "'l'"), -(7705, 0, "'r'"), -(7706, 0, "'e'"), -(7707, 0, "'a'"), -(7708, 0, "'d'"), -(7709, 0, "'y'"), -(7717, 19, "''"), -(7717, 0, "' '"), -(7718, 0, "'-'"), -(7733, 0, "')'"), -(7733, 1, "''"), -(7733, 0, "'('"), -(7734, 0, "')'"), -(7718, 0, "'r'"), -(7719, 0, "'e'"), -(7720, 0, "'v'"), -(7721, 0, "'e'"), -(7722, 0, "'r'"), -(7723, 0, "'s'"), -(7724, 0, "'e'"), -(7725, 0, "'-'"), -(7725, 1, "''"), -(7741, 1, "''"), -(7740, 1, "''"), -(6207, 0, "'n'"), -(6208, 0, "'n'"), -(6209, 0, "'w'"), -(6210, 0, "'h'"), -(6211, 0, "'e'"), -(6212, 0, "'n'"), -(6213, 0, "'e'"), -(6214, 0, "'v'"), -(6215, 0, "'e'"), -(6209, 7, "'W'"), -(6210, 0, "'h'"), -(6211, 0, "'e'"), -(6212, 0, "'n'"), -(6213, 0, "'e'"), -(6214, 0, "'v'"), -(6215, 0, "'e'"), -(6216, 0, "'r'"), -(6209, 8, "'T'"), -(6210, 0, "'h'"), -(6211, 0, "'e'"), -(6212, 0, "' '"), -(6213, 0, "'p'"), -(6209, 5, "'M'"), -(6210, 0, "'y'"), -(6211, 0, "' '"), -(6212, 0, "'p'"), -(6213, 0, "'h'"), -(6214, 0, "'i'"), -(6215, 0, "'l'"), -(6216, 0, "'o'"), -(6217, 0, "'s'"), -(6218, 0, "'o'"), -(6219, 0, "'p'"), -(6220, 0, "'h'"), -(6221, 0, "'y'"), -(6222, 0, "' '"), -(6223, 0, "'w'"), -(6224, 0, "'i'"), -(6225, 0, "'t'"), -(6226, 0, "'h'"), -(6227, 0, "' '"), -(6228, 0, "'p'"), -(6229, 0, "'e'"), -(6230, 0, "'r'"), -(6231, 0, "'f'"), -(6232, 0, "'o'"), -(6233, 0, "'r'"), -(6234, 0, "'m'"), -(6235, 0, "'a'"), -(6236, 0, "'n'"), -(6237, 0, "'c'"), -(6238, 0, "'e'"), -(6239, 0, "' '"), -(6240, 0, "'t'"), -(6241, 0, "'u'"), -(6242, 0, "'n'"), -(6243, 0, "'i'"), -(6244, 0, "'n'"), -(6245, 0, "'g'"), -(6209, 37, "'T'"), -(6210, 0, "'h'"), -(6211, 0, "'e'"), -(6212, 0, "'r'"), -(6213, 0, "'e'"), -(6214, 0, "'''"), -(6215, 0, "'s'"), -(6216, 0, "' '"), -(6217, 0, "'a'"), -(6218, 0, "'n'"), -(6219, 0, "' '"), -(6220, 0, "'o'"), -(6221, 0, "'l'"), -(6222, 0, "'d'"), -(6223, 0, "' '"), -(6224, 0, "'s'"), -(6225, 0, "'a'"), -(6226, 0, "'y'"), -(6227, 0, "'i'"), -(6228, 0, "'n'"), -(6229, 0, "'g'"), -(6230, 0, "' '"), -(6231, 0, "'w'"), -(6232, 0, "'i'"), -(6233, 0, "'t'"), -(6234, 0, "'h'"), -(6235, 0, "' '"), -(6236, 0, "'p'"), -(6237, 0, "'e'"), -(6238, 0, "'r'"), -(6239, 0, "'f'"), -(6240, 0, "'o'"), -(6241, 0, "'r'"), -(6242, 0, "'m'"), -(6243, 0, "'a'"), -(6244, 0, "'n'"), -(6245, 0, "'c'"), -(6246, 0, "'e'"), -(6247, 0, "' '"), -(6248, 0, "'t'"), -(6249, 0, "'u'"), -(6250, 0, "'n'"), -(6251, 0, "'i'"), -(6252, 0, "'n'"), -(6253, 0, "'g'"), -(6254, 0, "':'"), -(6255, 0, "' '"), -(6255, 1, "''"), -(6255, 0, "'n'"), -(6256, 0, "'n'"), -(6257, 0, "'>'"), -(6258, 0, "' '"), -(6259, 0, "'Y'"), -(6260, 0, "'o'"), -(6261, 0, "'u'"), -(6262, 0, "' '"), -(6263, 0, "'c'"), -(6264, 0, "'a'"), -(6265, 0, "'n'"), -(6266, 0, "'''"), -(6267, 0, "'t'"), -(6268, 0, "' '"), -(6269, 0, "'m'"), -(6270, 0, "'a'"), -(6271, 0, "'k'"), -(6272, 0, "'e'"), -(6273, 0, "' '"), -(6274, 0, "'a'"), -(6275, 0, "' '"), -(6276, 0, "'p'"), -(6277, 0, "'r'"), -(6278, 0, "'o'"), -(6279, 0, "'g'"), -(6280, 0, "'r'"), -(6281, 0, "'a'"), -(6282, 0, "'m'"), -(6283, 0, "' '"), -(6284, 0, "'f'"), -(6285, 0, "'a'"), -(6286, 0, "'s'"), -(6287, 0, "'t'"), -(6288, 0, "'e'"), -(6289, 0, "'r'"), -(6290, 0, "'.'"), -(6291, 0, "' '"), -(6292, 0, "'Y'"), -(6293, 0, "'o'"), -(6294, 0, "'u'"), -(6295, 0, "' '"), -(6296, 0, "'c'"), -(6297, 0, "'a'"), -(6298, 0, "'n'"), -(6299, 0, "' '"), -(6300, 0, "'o'"), -(6301, 0, "'n'"), -(6302, 0, "'l'"), -(6303, 0, "'y'"), -(6304, 0, "' '"), -(6305, 0, "'m'"), -(6306, 0, "'a'"), -(6307, 0, "'k'"), -(6308, 0, "'e'"), -(6309, 0, "' '"), -(6310, 0, "'i'"), -(6311, 0, "'t'"), -(6312, 0, "' '"), -(6313, 0, "'d'"), -(6314, 0, "'o'"), -(6315, 0, "' '"), -(6316, 0, "'l'"), -(6317, 0, "'e'"), -(6318, 0, "'s'"), -(6319, 0, "'s'"), -(6320, 0, "' '"), -(6321, 0, "'w'"), -(6322, 0, "'o'"), -(6323, 0, "'r'"), -(6324, 0, "'k'"), -(6325, 0, "'.'"), -(6209, 119, "''"), -(6895, 0, "'n'"), -(6896, 0, "'n'"), -(6896, 0, "'T'"), -(6897, 0, "'h'"), -(6898, 0, "'e'"), -(6899, 0, "'r'"), -(6900, 0, "'e'"), -(6896, 5, "''"), -(6896, 1, "''"), -(6895, 1, "''"), -(6209, 0, "'There's an old saying with performance tuning:nn> You can't make a program faster. You can only make it do less work.nn'"), -(6209, 119, "''"), -(6895, 0, "'n'"), -(6896, 0, "'There's an old saying with performance tuning:nn> You can't make a program faster. You can only make it do less work.nn'"), -(7014, 1, "''"), -(7014, 0, "'n'"), -(7015, 0, "'S'"), -(7016, 0, "'o'"), -(7017, 0, "' '"), -(7018, 0, "'w'"), -(7019, 0, "'e'"), -(7020, 0, "' '"), -(7021, 0, "'w'"), -(7022, 0, "'a'"), -(7023, 0, "'n'"), -(7018, 6, "'h'"), -(7019, 0, "'o'"), -(7020, 0, "'w'"), -(7021, 0, "' '"), -(7022, 0, "'d'"), -(7023, 0, "'o'"), -(7024, 0, "' '"), -(7025, 0, "'w'"), -(7026, 0, "'e'"), -(7027, 0, "' '"), -(7028, 0, "'m'"), -(7029, 0, "'a'"), -(7030, 0, "'k'"), -(7031, 0, "'e'"), -(7032, 0, "' '"), -(7033, 0, "'t'"), -(7034, 0, "'h'"), -(7035, 0, "'e'"), -(7036, 0, "' '"), -(7037, 0, "'c'"), -(7038, 0, "'o'"), -(7039, 0, "'m'"), -(7040, 0, "'p'"), -(7041, 0, "'u'"), -(7042, 0, "'t'"), -(7043, 0, "'e'"), -(7044, 0, "'r'"), -(7045, 0, "' '"), -(7046, 0, "'*'"), -(7047, 0, "'d'"), -(7048, 0, "'o'"), -(7049, 0, "' '"), -(7050, 0, "'*'"), -(7050, 1, "''"), -(7049, 1, "''"), -(7046, 3, "'d'"), -(7047, 0, "'o'"), -(7048, 0, "' '"), -(7049, 0, "'l'"), -(7049, 1, "''"), -(7048, 1, "''"), -(7047, 1, "''"), -(7046, 1, "''"), -(7046, 0, "'c'"), -(7046, 1, "''"), -(7046, 0, "'d'"), -(7047, 0, "'o'"), -(7048, 0, "' '"), -(7049, 0, "'a'"), -(7050, 0, "'l'"), -(7051, 0, "'l'"), -(7052, 0, "' '"), -(7053, 0, "'t'"), -(7054, 0, "'h'"), -(7055, 0, "'e'"), -(7056, 0, "' '"), -(7057, 0, "'w'"), -(7058, 0, "'o'"), -(7059, 0, "'r'"), -(7060, 0, "'k'"), -(7061, 0, "' '"), -(7062, 0, "'o'"), -(7063, 0, "'f'"), -(7064, 0, "' '"), -(7049, 16, "'l'"), -(7050, 0, "'e'"), -(7051, 0, "'s'"), -(7052, 0, "'s'"), -(7053, 0, "' '"), -(7054, 0, "'w'"), -(7055, 0, "'o'"), -(7056, 0, "'r'"), -(7057, 0, "'k'"), -(7058, 0, "' '"), -(7059, 0, "'h'"), -(7060, 0, "'e'"), -(7061, 0, "'r'"), -(7062, 0, "'e'"), -(7063, 0, "'?'"), -(7064, 0, "'n'"), -(7066, 0, "'T'"), -(7066, 1, "''"), -(7066, 0, "'E'"), -(7067, 0, "'x'"), -(7068, 0, "'h'"), -(7069, 0, "'i'"), -(7070, 0, "'b'"), -(7071, 0, "'i'"), -(7072, 0, "'t'"), -(7073, 0, "' '"), -(7074, 0, "'A'"), -(7075, 0, "':'"), -(7076, 0, "' '"), -(7077, 0, "'T'"), -(7078, 0, "'a'"), -(7079, 0, "'k'"), -(7080, 0, "'e'"), -(7081, 0, "' '"), -(7082, 0, "'a'"), -(7083, 0, "' '"), -(7084, 0, "'l'"), -(7085, 0, "'o'"), -(7086, 0, "'o'"), -(7087, 0, "'k'"), -(7088, 0, "' '"), -(7089, 5, "''"), -(7116, 1, "''"), -(7116, 0, "':'"), -(7729, 0, "'*'"), -(7744, 0, "'*'"), -(7718, 0, "' '"), -(7719, 0, "'I'"), -(7720, 0, "' '"), -(7721, 0, "'d'"), -(7722, 0, "'o'"), -(7723, 0, "'n'"), -(7724, 0, "'''"), -(7725, 0, "'t'"), -(7726, 0, "' '"), -(7727, 0, "'k'"), -(7728, 0, "'n'"), -(7729, 0, "'o'"), -(7730, 0, "'w'"), -(7731, 0, "' '"), -(7732, 0, "'h'"), -(7733, 0, "'o'"), -(7734, 0, "'w'"), -(7735, 0, "' '"), -(7736, 0, "'h'"), -(7737, 0, "'o'"), -(7738, 0, "'t'"), -(7739, 0, "' '"), -(7740, 0, "'i'"), -(7741, 0, "'t'"), -(7742, 0, "' '"), -(7743, 0, "'i'"), -(7744, 0, "'s'"), -(7745, 0, "','"), -(7746, 0, "' '"), -(7747, 0, "'b'"), -(7748, 0, "'u'"), -(7749, 0, "'t'"), -(7751, 1, "''"), -(7751, 0, "'t'"), -(8007, 0, "' '"), -(8008, 0, "'i'"), -(8009, 0, "'s'"), -(8010, 0, "' '"), -(8003, 8, "''"), -(8002, 1, "''"), -(8002, 0, "'n'"), -(8003, 0, "' '"), -(8004, 0, "'a'"), -(8005, 0, "'n'"), -(8006, 0, "'t'"), -(8007, 0, "'i'"), -(8008, 0, "'-'"), -(8009, 0, "'s'"), -(8010, 0, "'o'"), -(8011, 0, "'r'"), -(8012, 0, "'t'"), -(8013, 0, "'e'"), -(8014, 0, "'d'"), -(8015, 0, "' '"), -(8016, 0, "'l'"), -(8017, 0, "'i'"), -(8018, 0, "'s'"), -(8019, 0, "'t'"), -(8020, 0, "' '"), -(8021, 0, "'i'"), -(8022, 0, "'s'"), -(8023, 0, "' '"), -(8024, 0, "'s'"), -(8025, 0, "'l'"), -(8026, 0, "'o'"), -(8027, 0, "'w'"), -(8024, 4, "'t'"), -(8025, 0, "'h'"), -(8026, 0, "'e'"), -(8027, 0, "' '"), -(8028, 0, "'s'"), -(8029, 0, "'l'"), -(8030, 0, "'o'"), -(8031, 0, "'w'"), -(8032, 0, "'e'"), -(8033, 0, "'s'"), -(8034, 0, "'t'"), -(8035, 0, "' '"), -(8036, 0, "'s'"), -(8037, 0, "'o'"), -(8038, 0, "'r'"), -(8039, 0, "'t'"), -(8040, 0, "'.'"), -(8041, 0, "' '"), -(8042, 0, "'Y'"), -(8043, 0, "'o'"), -(8044, 0, "'u'"), -(8045, 0, "' '"), -(8046, 0, "'c'"), -(8047, 0, "'o'"), -(8048, 0, "'u'"), -(8049, 0, "'l'"), -(8050, 0, "'d'"), -(8051, 0, "' '"), -(8052, 0, "'e'"), -(8053, 0, "'a'"), -(8054, 0, "'s'"), -(8055, 0, "'i'"), -(8056, 0, "'l'"), -(8057, 0, "'y'"), -(8058, 0, "' '"), -(8059, 0, "'j'"), -(8060, 0, "'u'"), -(8061, 0, "'s'"), -(8062, 0, "'t'"), -(8042, 21, "'T'"), -(8043, 0, "'h'"), -(8044, 0, "'e'"), -(8045, 0, "' '"), -(8046, 0, "'c'"), -(8047, 0, "'o'"), -(8048, 0, "'d'"), -(8049, 0, "'e'"), -(8050, 0, "' '"), -(8051, 0, "'c'"), -(8052, 0, "'o'"), -(8053, 0, "'u'"), -(8054, 0, "'l'"), -(8055, 0, "'d'"), -(8056, 0, "' '"), -(8057, 0, "'e'"), -(8058, 0, "'a'"), -(8059, 0, "'s'"), -(8060, 0, "'i'"), -(8061, 0, "'l'"), -(8062, 0, "'y'"), -(8063, 0, "' '"), -(8064, 0, "'j'"), -(8065, 0, "'u'"), -(8066, 0, "'s'"), -(8067, 0, "'t'"), -(8068, 0, "' '"), -(8069, 0, "'s'"), -(8070, 0, "'w'"), -(8071, 0, "'a'"), -(8072, 0, "'p'"), -(8073, 0, "' '"), -(8074, 0, "'t'"), -(8075, 0, "'h'"), -(8076, 0, "'e'"), -(8077, 0, "' '"), -(8078, 0, "'j'"), -(8078, 1, "''"), -(8035, 0, "' '"), -(8036, 0, "'w'"), -(8037, 0, "'a'"), -(8038, 0, "'y'"), -(8039, 0, "' '"), -(8040, 0, "'t'"), -(8041, 0, "'o'"), -(8047, 0, "' '"), -(8048, 0, "'a'"), -(8049, 0, "'n'"), -(8050, 0, "'y'"), -(8051, 0, "'t'"), -(8052, 0, "'h'"), -(8053, 0, "'i'"), -(8054, 0, "'n'"), -(8055, 0, "'g'"), -(8058, 36, "''"), -(8058, 0, "'R'"), -(8059, 0, "'a'"), -(8060, 0, "'t'"), -(8061, 0, "'h'"), -(8062, 0, "'e'"), -(8063, 0, "'r'"), -(8064, 0, "' '"), -(8065, 0, "'t'"), -(8066, 0, "'h'"), -(8067, 0, "'a'"), -(8068, 0, "'n'"), -(8069, 0, "' '"), -(8070, 0, "'s'"), -(8071, 0, "'o'"), -(8072, 0, "'r'"), -(8073, 0, "'t'"), -(8074, 0, "'i'"), -(8075, 0, "'n'"), -(8076, 0, "'g'"), -(8077, 0, "','"), -(8078, 0, "' '"), -(8079, 0, "'t'"), -(8080, 0, "'h'"), -(8081, 0, "'e'"), -(8082, 0, "'n'"), -(8083, 0, "' '"), -(8084, 0, "'r'"), -(8085, 0, "'e'"), -(8086, 0, "'v'"), -(8087, 0, "'e'"), -(8088, 0, "'r'"), -(8089, 0, "'s'"), -(8090, 0, "'e'"), -(8091, 0, "'('"), -(8092, 0, "')'"), -(8093, 0, "'''"), -(8094, 0, "'i'"), -(8095, 0, "'n'"), -(8096, 0, "'g'"), -(8097, 0, "','"), -(8098, 0, "' '"), -(8099, 0, "'t'"), -(8100, 0, "'h'"), -(8101, 0, "'i'"), -(8102, 0, "'s'"), -(8103, 0, "' '"), -(8104, 0, "'c'"), -(8105, 0, "'o'"), -(8106, 0, "'u'"), -(8107, 0, "'l'"), -(8108, 0, "'d'"), -(8109, 0, "' '"), -(8110, 0, "'j'"), -(8110, 1, "''"), -(8109, 1, "''"), -(8104, 5, "'c'"), -(8105, 0, "'o'"), -(8106, 0, "'d'"), -(8107, 0, "'e'"), -(8108, 0, "' '"), -(8109, 0, "'s'"), -(8110, 0, "'h'"), -(8111, 0, "'o'"), -(8112, 0, "'u'"), -(8113, 0, "'l'"), -(8114, 0, "'d'"), -(8115, 0, "' '"), -(8116, 0, "'j'"), -(8117, 0, "'u'"), -(8118, 0, "'s'"), -(8119, 0, "'t'"), -(8120, 0, "' '"), -(8121, 0, "'i'"), -(8122, 0, "'n'"), -(8123, 0, "'v'"), -(8124, 0, "'e'"), -(8125, 0, "'r'"), -(8126, 0, "'t'"), -(8127, 0, "' '"), -(8128, 0, "'t'"), -(8129, 0, "'h'"), -(8130, 0, "'e'"), -(8131, 0, "' '"), -(8132, 0, "'a'"), -(8133, 0, "'r'"), -(8134, 0, "'g'"), -(8135, 0, "'u'"), -(8136, 0, "'m'"), -(8137, 0, "'e'"), -(8138, 0, "'n'"), -(8139, 0, "'t'"), -(8140, 0, "'s'"), -(8141, 0, "' '"), -(8142, 0, "'o'"), -(8143, 0, "'f'"), -(8144, 0, "' '"), -(8145, 0, "'`'"), -(8146, 0, "'l'"), -(8147, 0, "'a'"), -(8148, 0, "'m'"), -(8149, 0, "'p'"), -(8150, 0, "'o'"), -(8151, 0, "'r'"), -(8152, 0, "'t'"), -(8153, 0, "'C'"), -(8154, 0, "'o'"), -(8155, 0, "'m'"), -(8156, 0, "'p'"), -(8157, 0, "'a'"), -(8158, 0, "'r'"), -(8159, 0, "'e'"), -(8160, 0, "'`'"), -(8161, 0, "' '"), -(8162, 0, "'('"), -(8163, 0, "'o'"), -(8164, 0, "'r'"), -(8165, 0, "' '"), -(8166, 0, "'n'"), -(8167, 0, "'e'"), -(8168, 0, "'g'"), -(8169, 0, "'a'"), -(8170, 0, "'t'"), -(8171, 0, "' '"), -(8172, 0, "'e'"), -(8172, 1, "''"), -(8171, 1, "''"), -(8171, 0, "'e'"), -(8172, 0, "' '"), -(8173, 0, "'t'"), -(8174, 0, "'h'"), -(8175, 0, "'e'"), -(8176, 0, "' '"), -(8177, 0, "'r'"), -(8178, 0, "'e'"), -(8179, 0, "'t'"), -(8180, 0, "'u'"), -(8181, 0, "'r'"), -(8182, 0, "'n'"), -(8183, 0, "' '"), -(8184, 0, "'v'"), -(8185, 0, "'a'"), -(8186, 0, "'l'"), -(8187, 0, "'u'"), -(8188, 0, "'e'"), -(8189, 0, "')'"), -(8190, 0, "'.'"), -(8141, 3, "' '"), -(8142, 0, "'i'"), -(8143, 0, "'n'"), -(8161, 0, "','"), -(8162, 0, "' '"), -(8163, 0, "'o'"), -(8164, 0, "'r'"), -(8165, 0, "' '"), -(8166, 0, "'m'"), -(8167, 0, "'a'"), -(8168, 0, "'k'"), -(8169, 0, "'e'"), -(8170, 0, "' '"), -(8162, 9, "''"), -(8161, 1, "''"), -(8191, 0, "'n'"), -(8192, 0, "'-'"), -(8193, 0, "' '"), -(8194, 0, "'T'"), -(8195, 0, "'h'"), -(8196, 0, "'e'"), -(8197, 0, "' '"), -(8198, 0, "'g'"), -(8199, 0, "'o'"), -(8200, 0, "'a'"), -(8201, 0, "'l'"), -(8202, 0, "' '"), -(8203, 0, "'i'"), -(8204, 0, "'s'"), -(8205, 0, "' '"), -(8206, 0, "'t'"), -(8207, 0, "'o'"), -(8208, 0, "' '"), -(8209, 0, "'i'"), -(8210, 0, "'n'"), -(8211, 0, "'s'"), -(8212, 0, "'e'"), -(8213, 0, "'r'"), -(8214, 0, "'t'"), -(8215, 0, "' '"), -(8216, 0, "'t'"), -(8217, 0, "'h'"), -(8218, 0, "'e'"), -(8219, 0, "' '"), -(8220, 0, "'n'"), -(8221, 0, "'e'"), -(8222, 0, "'w'"), -(8223, 0, "' '"), -(8224, 0, "'i'"), -(8225, 0, "'t'"), -(8226, 0, "'e'"), -(8227, 0, "'m'"), -(8228, 0, "' '"), -(8229, 0, "'i'"), -(8230, 0, "'n'"), -(8231, 0, "'t'"), -(8232, 0, "'o'"), -(8233, 0, "' '"), -(8234, 0, "'t'"), -(8235, 0, "'h'"), -(8236, 0, "'e'"), -(8237, 0, "' '"), -(8238, 0, "'l'"), -(8239, 0, "'i'"), -(8240, 0, "'s'"), -(8241, 0, "'t'"), -(8194, 0, "'I'"), -(8195, 0, "'f'"), -(8196, 0, "' '"), -(8197, 1, "''"), -(8197, 0, "'t'"), -(8244, 1, "''"), -(8244, 0, "'t'"), -(8245, 0, "','"), -(8246, 0, "' '"), -(8247, 0, "'y'"), -(8248, 0, "'o'"), -(8249, 0, "'u'"), -(8250, 0, "' '"), -(8251, 0, "'c'"), -(8252, 0, "'a'"), -(8253, 0, "'n'"), -(8254, 0, "' '"), -(8255, 0, "'d'"), -(8256, 0, "'o'"), -(8257, 0, "' '"), -(8258, 0, "'t'"), -(8259, 0, "'h'"), -(8260, 0, "'a'"), -(8261, 0, "'t'"), -(8262, 0, "' '"), -(8263, 0, "'w'"), -(8264, 0, "'i'"), -(8265, 0, "'t'"), -(8266, 0, "'h'"), -(8267, 0, "' '"), -(8268, 0, "'a'"), -(8269, 0, "' '"), -(8270, 0, "'f'"), -(8271, 0, "'o'"), -(8272, 0, "'r'"), -(8273, 0, "' '"), -(8274, 0, "'l'"), -(8275, 0, "'o'"), -(8276, 0, "'o'"), -(8277, 0, "'p'"), -(8278, 0, "'.'"), -(8263, 0, "'m'"), -(8264, 0, "'u'"), -(8265, 0, "'c'"), -(8266, 0, "'h'"), -(8267, 0, "' '"), -(8268, 0, "'f'"), -(8269, 0, "'a'"), -(8270, 0, "'s'"), -(8271, 0, "'t'"), -(8272, 0, "'e'"), -(8273, 0, "'r'"), -(8274, 0, "' '"), -(8237, 3, "'a'"), -(8238, 0, "'n'"), -(8239, 0, "' '"), -(8240, 0, "'a'"), -(8241, 0, "'l'"), -(8242, 0, "'r'"), -(8243, 0, "'e'"), -(8244, 0, "'a'"), -(8245, 0, "'d'"), -(8246, 0, "'y'"), -(8247, 0, "' '"), -(8248, 0, "'s'"), -(8249, 0, "'o'"), -(8250, 0, "'r'"), -(8251, 0, "'t'"), -(8252, 0, "'e'"), -(8253, 0, "'d'"), -(8296, 0, "'s'"), -(8297, 0, "'i'"), -(8298, 0, "'n'"), -(8299, 0, "'g'"), -(8300, 0, "'l'"), -(8301, 0, "'e'"), -(8302, 0, "' '"), -(8194, 4, "'T'"), -(8216, 4, "'a'"), -(8217, 0, "' '"), -(8254, 1, "''"), -(8254, 0, "'.'"), -(8256, 1, "''"), -(8256, 0, "'Y'"), -(8291, 7, "''"), -(8300, 0, "'n'"), -(8301, 0, "'-'"), -(8302, 0, "' '"), -(8303, 0, "'T'"), -(8304, 0, "'h'"), -(8305, 0, "'i'"), -(8306, 0, "'s'"), -(8307, 0, "' '"), -(8308, 0, "'c'"), -(8309, 0, "'o'"), -(8310, 0, "'d'"), -(8311, 0, "'e'"), -(8312, 0, "' '"), -(8313, 0, "'w'"), -(8314, 0, "'r'"), -(8315, 0, "'a'"), -(8316, 0, "'p'"), -(8317, 0, "'p'"), -(8318, 0, "'e'"), -(8319, 0, "'d'"), -(8319, 1, "''"), -(8318, 1, "''"), -(8317, 1, "''"), -(8317, 0, "'s'"), -(8318, 0, "' '"), -(8319, 0, "'c'"), -(8320, 0, "'h'"), -(8321, 0, "'i'"), -(8322, 0, "'l'"), -(8323, 0, "'d'"), -(8324, 0, "'I'"), -(8325, 0, "'d'"), -(8326, 0, "' '"), -(8327, 0, "'w'"), -(8328, 0, "'i'"), -(8329, 0, "'t'"), -(8330, 0, "'h'"), -(8331, 0, "' '"), -(8327, 5, "'i'"), -(8328, 0, "'n'"), -(8329, 0, "'t'"), -(8330, 0, "'o'"), -(8331, 0, "' '"), -(8332, 0, "'a'"), -(8333, 0, "' '"), -(8333, 1, "''"), -(8333, 0, "'n'"), -(8334, 0, "' '"), -(8335, 0, "'i'"), -(8336, 0, "'m'"), -(8337, 0, "'m'"), -(8338, 0, "'u'"), -(8339, 0, "'t'"), -(8340, 0, "'a'"), -(8341, 0, "'b'"), -(8342, 0, "'l'"), -(8343, 0, "'e'"), -(8344, 0, "'j'"), -(8345, 0, "'s'"), -(8346, 0, "' '"), -(8347, 0, "'M'"), -(8348, 0, "'a'"), -(8349, 0, "'p'"), -(8350, 0, "','"), -(8351, 0, "' '"), -(8352, 0, "'j'"), -(8353, 0, "'u'"), -(8354, 0, "'s'"), -(8355, 0, "'t'"), -(8356, 0, "' '"), -(8357, 0, "'s'"), -(8358, 0, "'o'"), -(8359, 0, "' '"), -(8360, 0, "'t'"), -(8361, 0, "'h'"), -(8362, 0, "'e'"), -(8363, 0, "' '"), -(8364, 0, "'a'"), -(8365, 0, "'r'"), -(8366, 0, "'g'"), -(8367, 0, "'u'"), -(8368, 0, "'m'"), -(8369, 0, "'e'"), -(8370, 0, "'n'"), -(8371, 0, "'t'"), -(8372, 0, "' '"), -(8373, 0, "'m'"), -(8374, 0, "'a'"), -(8375, 0, "'t'"), -(8376, 0, "'c'"), -(8377, 0, "'h'"), -(8378, 0, "'e'"), -(8379, 0, "'s'"), -(8380, 0, "' '"), -(8381, 0, "'l'"), -(8382, 0, "'a'"), -(8383, 0, "'m'"), -(8384, 0, "'p'"), -(8385, 0, "'o'"), -(8386, 0, "'r'"), -(8387, 0, "'t'"), -(8388, 0, "'C'"), -(8389, 0, "'o'"), -(8390, 0, "'m'"), -(8391, 0, "'p'"), -(8392, 0, "'a'"), -(8393, 0, "'r'"), -(8394, 0, "'e'"), -(8395, 0, "'`'"), -(8381, 0, "'`'"), -(8397, 0, "' '"), -(8398, 0, "'-'"), -(8399, 0, "' '"), -(8400, 0, "'w'"), -(8401, 0, "'h'"), -(8402, 0, "'i'"), -(8403, 0, "'c'"), -(8404, 0, "'h'"), -(8405, 0, "' '"), -(8406, 0, "'j'"), -(8407, 0, "'u'"), -(8408, 0, "'s'"), -(8409, 0, "'t'"), -(8410, 0, "' '"), -(8406, 5, "'u'"), -(8407, 0, "'n'"), -(8408, 0, "'w'"), -(8409, 0, "'r'"), -(8410, 0, "'a'"), -(8411, 0, "'p'"), -(8412, 0, "'s'"), -(8413, 0, "' '"), -(8414, 0, "'i'"), -(8415, 0, "'t'"), -(8416, 0, "' '"), -(8417, 0, "'a'"), -(8418, 0, "'g'"), -(8419, 0, "'a'"), -(8420, 0, "'i'"), -(8421, 0, "'n'"), -(8422, 0, "'.'"), -(8423, 0, "' '"), -(8423, 1, "''"), -(8423, 0, "' '"), -(8424, 0, "'T'"), -(8425, 0, "'h'"), -(8426, 0, "'i'"), -(8427, 0, "'s'"), -(8428, 0, "' '"), -(8429, 0, "'w'"), -(8430, 0, "'o'"), -(8431, 0, "'r'"), -(8432, 0, "'k'"), -(8433, 0, "' '"), -(8434, 0, "'i'"), -(8435, 0, "'s'"), -(8436, 0, "' '"), -(8437, 0, "'a'"), -(8438, 0, "'l'"), -(8439, 0, "'l'"), -(8440, 0, "' '"), -(8441, 0, "'a'"), -(8442, 0, "'v'"), -(8443, 0, "'o'"), -(8444, 0, "'i'"), -(8445, 0, "'d'"), -(8446, 0, "'a'"), -(8447, 0, "'b'"), -(8448, 0, "'l'"), -(8449, 0, "'e'"), -(8450, 0, "'.'"), -(8440, 0, "' '"), -(8441, 0, "'c'"), -(8442, 0, "'o'"), -(8443, 0, "'m'"), -(8444, 0, "'p'"), -(8445, 0, "'u'"), -(8446, 0, "'t'"), -(8447, 0, "'a'"), -(8448, 0, "'t'"), -(8440, 9, "''"), -(8453, 0, "'n'"), -(8454, 0, "'n'"), -(8455, 0, "'n'"), -(8405, 0, "' '"), -(8406, 0, "'t'"), -(8407, 0, "'h'"), -(8408, 0, "'e'"), -(8409, 0, "'n'"), -(8429, 27, "'D'"), -(8430, 0, "'o'"), -(8431, 0, "'n'"), -(8432, 0, "'''"), -(8433, 0, "'t'"), -(8434, 0, "' '"), -(8435, 0, "'d'"), -(8436, 0, "'o'"), -(8437, 0, "' '"), -(8438, 0, "'t'"), -(8439, 0, "'h'"), -(8440, 0, "'a'"), -(8441, 0, "'t'"), -(8442, 0, "'!'"), -(8429, 0, "'N'"), -(8430, 0, "'o'"), -(8431, 0, "'o'"), -(8432, 0, "'o'"), -(8433, 0, "'!'"), -(8434, 0, "' '"), -(8435, 14, "'S'"), -(8436, 0, "'t'"), -(8437, 0, "'o'"), -(8438, 0, "'p'"), -(8439, 0, "'p'"), -(8439, 1, "''"), -(8439, 0, "'!'"), -(8440, 0, "'!'"), -(8441, 0, "'!'"), -(8441, 1, "''"), -(8440, 1, "''"), -(8440, 0, "'n'"), -(8441, 0, "'n'"), -(8442, 0, "'#'"), -(8443, 0, "'#'"), -(8444, 0, "'#'"), -(8445, 0, "' '"), -(8445, 1, "''"), -(8445, 0, "'#'"), -(8446, 0, "' '"), -(8447, 0, "'A'"), -(8448, 0, "'l'"), -(8449, 0, "'g'"), -(8447, 3, "'D'"), -(8448, 0, "'a'"), -(8449, 0, "'t'"), -(8450, 0, "'a'"), -(8451, 0, "' '"), -(8452, 0, "'s'"), -(8453, 0, "'t'"), -(8454, 0, "'r'"), -(8455, 0, "'u'"), -(8456, 0, "'c'"), -(8457, 0, "'t'"), -(8458, 0, "'u'"), -(8459, 0, "'r'"), -(8460, 0, "'e'"), -(8461, 0, "'s'"), -(8462, 0, "'n'"), -(8463, 0, "'n'"), -(8441, 0, "'n'"), -(8465, 0, "'B'"), -(8466, 0, "'u'"), -(8467, 0, "'t'"), -(8468, 0, "' '"), -(8469, 0, "'t'"), -(8470, 0, "'h'"), -(8471, 0, "'e'"), -(8472, 0, "' '"), -(8473, 0, "'m'"), -(8474, 0, "'u'"), -(8475, 0, "'c'"), -(8476, 0, "'h'"), -(8477, 0, "' '"), -(8478, 0, "'b'"), -(8479, 0, "'i'"), -(8480, 0, "'g'"), -(8481, 0, "'g'"), -(8482, 0, "'e'"), -(8483, 0, "'r'"), -(8484, 0, "' '"), -(8485, 0, "'r'"), -(8486, 0, "'e'"), -(8487, 0, "'a'"), -(8488, 0, "'s'"), -(8489, 0, "'o'"), -(8490, 0, "'n'"), -(8465, 26, "'T'"), -(8466, 0, "'h'"), -(8467, 0, "'e'"), -(8468, 0, "' '"), -(8469, 0, "'b'"), -(8470, 0, "'i'"), -(8471, 0, "'g'"), -(8472, 0, "'g'"), -(8473, 0, "'e'"), -(8474, 0, "'s'"), -(8475, 0, "'t'"), -(8476, 0, "' '"), -(8477, 0, "'r'"), -(8478, 0, "'e'"), -(8479, 0, "'a'"), -(8480, 0, "'s'"), -(8481, 0, "'o'"), -(8482, 0, "'n'"), -(8483, 0, "' '"), -(8484, 0, "'a'"), -(8485, 0, "'t'"), -(8486, 0, "'u'"), -(8486, 1, "''"), -(8485, 1, "''"), -(8485, 0, "'u'"), -(8486, 0, "'t'"), -(8487, 0, "'o'"), -(8488, 0, "'m'"), -(8489, 0, "'e'"), -(8490, 0, "'r'"), -(8491, 0, "'g'"), -(8492, 0, "'e'"), -(8493, 0, "' '"), -(8494, 0, "'i'"), -(8495, 0, "'s'"), -(8496, 0, "' '"), -(8497, 0, "'s'"), -(8498, 0, "'l'"), -(8499, 0, "'o'"), -(8500, 0, "'w'"), -(8501, 0, "' '"), -(8502, 0, "'i'"), -(8503, 0, "'s'"), -(8504, 0, "' '"), -(8505, 0, "'t'"), -(8506, 0, "'h'"), -(8507, 0, "'a'"), -(8508, 0, "'t'"), -(2504, 3, "'B'"), -(2505, 0, "'u'"), -(2506, 0, "'t'"), -(2507, 0, "' '"), -(2508, 0, "'t'"), -(2509, 0, "'h'"), -(2510, 0, "'i'"), -(2511, 0, "'s'"), -(2512, 0, "' '"), -(2513, 0, "'i'"), -(2514, 0, "'s'"), -(2581, 1, "''"), -(2581, 0, "'!'"), -(2782, 0, "' '"), -(2783, 0, "'S'"), -(2784, 0, "'u'"), -(2785, 0, "'p'"), -(2786, 0, "'e'"), -(2787, 0, "'r'"), -(2788, 0, "' '"), -(2789, 0, "'w'"), -(2790, 0, "'r'"), -(2791, 0, "'o'"), -(2792, 0, "'n'"), -(2793, 0, "'g'"), -(2794, 0, "'.'"), -(2796, 6, "'R'"), -(2797, 0, "'u'"), -(2798, 0, "'n'"), -(2799, 0, "'n'"), -(2800, 0, "'i'"), -(2801, 0, "'n'"), -(2802, 0, "'g'"), -(2927, 3, "'2'"), -(2928, 0, "'9'"), -(2929, 0, "'1'"), -(3031, 0, "' '"), -(3032, 0, "'o'"), -(3033, 0, "'v'"), -(3034, 0, "'e'"), -(3035, 0, "'r'"), -(3066, 1, "''"), -(3066, 0, "'2'"), -(3067, 1, "''"), -(3067, 0, "'5'"), -(3067, 1, "''"), -(3067, 0, "'6'"), -(3067, 1, "''"), -(3066, 1, "''"), -(3066, 0, "'2'"), -(3067, 0, "'6'"), -(3067, 1, "''"), -(3067, 0, "'7'"), -(6259, 0, "' '"), -(6260, 0, "'w'"), -(6261, 0, "'h'"), -(6262, 0, "'o'"), -(6263, 0, "'l'"), -(6264, 0, "'e'"), -(6265, 0, "' '"), -(6266, 0, "'s'"), -(6267, 0, "'l'"), -(6268, 0, "'e'"), -(6269, 0, "'w'"), -(6270, 8, "''"), -(6924, 0, "'n'"), -(6925, 0, "'n'"), -(6926, 0, "'R'"), -(6927, 0, "'e'"), -(6928, 0, "'a'"), -(6929, 0, "'l'"), -(6930, 0, "'l'"), -(6931, 0, "'y'"), -(6932, 0, "','"), -(6933, 0, "' '"), -(6934, 0, "'i'"), -(6935, 0, "'t'"), -(6936, 0, "' '"), -(6937, 0, "'w'"), -(6938, 0, "'a'"), -(6939, 0, "'s'"), -(6940, 0, "' '"), -(6941, 0, "'j'"), -(6942, 0, "'u'"), -(6943, 0, "'s'"), -(6944, 0, "'t'"), -(6945, 0, "' '"), -(6946, 0, "'n'"), -(6947, 0, "'e'"), -(6948, 0, "'v'"), -(6949, 0, "'e'"), -(6950, 0, "'r'"), -(6951, 0, "' '"), -(6952, 0, "'w'"), -(6953, 0, "'r'"), -(6954, 0, "'i'"), -(6955, 0, "'t'"), -(6956, 0, "'t'"), -(6957, 0, "'e'"), -(6958, 0, "'n'"), -(6959, 0, "' '"), -(6960, 0, "'w'"), -(6961, 0, "'t'"), -(6962, 0, "'i'"), -(6963, 0, "'h'"), -(6964, 0, "' '"), -(6964, 1, "''"), -(6963, 1, "''"), -(6962, 1, "''"), -(6961, 1, "''"), -(6961, 0, "'i'"), -(6962, 0, "'t'"), -(6963, 0, "'h'"), -(6964, 0, "' '"), -(6965, 0, "'p'"), -(6966, 0, "'e'"), -(6967, 0, "'r'"), -(6968, 0, "'f'"), -(6969, 0, "'o'"), -(6970, 0, "'r'"), -(6971, 0, "'m'"), -(6972, 0, "'a'"), -(6973, 0, "'n'"), -(6974, 0, "'c'"), -(6975, 0, "'e'"), -(6976, 0, "' '"), -(6977, 0, "'i'"), -(6978, 0, "'n'"), -(6979, 0, "' '"), -(6980, 0, "'m'"), -(6981, 0, "'i'"), -(6982, 0, "'n'"), -(6983, 0, "'d'"), -(6984, 0, "'.'"), -(8556, 44, "'B'"), -(8557, 0, "'u'"), -(8558, 0, "'t'"), -(8559, 0, "' '"), -(8560, 0, "'a'"), -(8561, 0, "'l'"), -(8562, 0, "'l'"), -(8563, 0, "' '"), -(8564, 0, "'t'"), -(8565, 0, "'h'"), -(8566, 0, "'i'"), -(8567, 0, "'s'"), -(8568, 0, "' '"), -(8569, 0, "'i'"), -(8570, 0, "'s'"), -(8571, 0, "' '"), -(8572, 0, "'w'"), -(8573, 0, "'i'"), -(8574, 0, "'n'"), -(8575, 0, "'d'"), -(8576, 0, "'o'"), -(8577, 0, "'w'"), -(8578, 0, "' '"), -(8579, 0, "'d'"), -(8580, 0, "'r'"), -(8581, 0, "'e'"), -(8582, 0, "'s'"), -(8583, 0, "'s'"), -(8584, 0, "'i'"), -(8585, 0, "'n'"), -(8586, 0, "'g'"), -(8587, 0, "'.'"), -(8588, 0, "' '"), -(8589, 0, "'T'"), -(8590, 0, "'h'"), -(8591, 0, "'e'"), -(8592, 0, "' '"), -(8593, 0, "'r'"), -(8594, 0, "'e'"), -(8595, 0, "'a'"), -(8596, 0, "'l'"), -(8597, 0, "' '"), -(8598, 0, "'r'"), -(8599, 0, "'e'"), -(8600, 0, "'a'"), -(8601, 0, "'d'"), -(8601, 1, "''"), -(8601, 0, "'s'"), -(8602, 0, "'o'"), -(8556, 47, "'T'"), -(8557, 0, "'h'"), -(8558, 0, "'e'"), -(8559, 0, "' '"), -(8560, 0, "'f'"), -(8561, 0, "'i'"), -(8562, 0, "'r'"), -(8563, 0, "'s'"), -(8564, 0, "'t'"), -(8556, 0, "'B'"), -(8557, 0, "'u'"), -(8558, 0, "'t'"), -(8559, 0, "' '"), -(8560, 0, "'t'"), -(8561, 0, "'h'"), -(8562, 0, "'e'"), -(8563, 0, "' '"), -(8564, 0, "'r'"), -(8565, 0, "'e'"), -(8566, 0, "'a'"), -(8567, 0, "'l'"), -(8568, 3, "''"), -(8574, 0, "' '"), -(8575, 0, "'t'"), -(8576, 0, "'h'"), -(8577, 0, "'i'"), -(8578, 0, "'n'"), -(8579, 0, "'g'"), -(8580, 0, "' '"), -(8581, 0, "'t'"), -(8582, 0, "'o'"), -(8583, 0, "' '"), -(8584, 0, "'f'"), -(8585, 0, "'i'"), -(8586, 0, "'x'"), -(8587, 0, "' '"), -(8588, 0, "'h'"), -(8589, 0, "'e'"), -(8590, 0, "'r'"), -(8591, 0, "'e'"), -(8592, 0, "' '"), -(8593, 0, "'i'"), -(8594, 0, "'s'"), -(8595, 0, "' '"), -(8596, 0, "'t'"), -(8597, 0, "'h'"), -(8598, 0, "'e'"), -(8599, 0, "' '"), -(8600, 0, "'a'"), -(8560, 41, "'t'"), -(8561, 0, "'h'"), -(8562, 0, "'i'"), -(8563, 0, "'s'"), -(8564, 0, "' '"), -(8565, 0, "'i'"), -(8566, 0, "'s'"), -(8567, 0, "' '"), -(8568, 0, "'a'"), -(8569, 0, "'l'"), -(8570, 0, "'l'"), -(8571, 0, "' '"), -(8572, 0, "'a'"), -(8573, 0, "' '"), -(8574, 0, "'b'"), -(8575, 0, "'i'"), -(8576, 0, "'g'"), -(8577, 0, "' '"), -(8578, 0, "'d'"), -(8579, 0, "'i'"), -(8580, 0, "'s'"), -(8581, 0, "'t'"), -(8582, 0, "'r'"), -(8583, 0, "'a'"), -(8584, 0, "'c'"), -(8585, 0, "'t'"), -(8586, 0, "'i'"), -(8587, 0, "'o'"), -(8588, 0, "'n'"), -(8589, 0, "'.'"), -(8590, 0, "' '"), -(8591, 0, "'T'"), -(8592, 0, "'h'"), -(8593, 0, "'e'"), -(8594, 0, "' '"), -(8595, 0, "'b'"), -(8596, 0, "'i'"), -(8597, 0, "'g'"), -(8598, 0, "' '"), -(8598, 1, "''"), -(8598, 0, "'g'"), -(8599, 0, "'e'"), -(8600, 0, "'s'"), -(8601, 0, "'t'"), -(8602, 0, "' '"), -(8603, 0, "'t'"), -(8604, 0, "'h'"), -(8605, 0, "'i'"), -(8606, 0, "'n'"), -(8607, 0, "'g'"), -(8608, 0, "' '"), -(8609, 0, "'t'"), -(8610, 0, "'o'"), -(8611, 0, "' '"), -(8612, 0, "'f'"), -(8613, 0, "'i'"), -(8614, 0, "' '"), -(8615, 0, "'i'"), -(8615, 1, "''"), -(8614, 1, "''"), -(8614, 0, "'x'"), -(8615, 0, "' '"), -(8616, 0, "'i'"), -(8617, 0, "'s'"), -(8618, 0, "' '"), -(8619, 0, "'t'"), -(8620, 0, "'h'"), -(8621, 0, "'e'"), -(8622, 0, "' '"), -(8623, 0, "'a'"), -(8624, 0, "'l'"), -(8625, 0, "'g'"), -(8626, 0, "'o'"), -(8627, 0, "'r'"), -(8628, 0, "'i'"), -(8629, 0, "'t'"), -(8630, 0, "'h'"), -(8631, 0, "'m'"), -(8632, 0, "'.'"), -(8633, 0, "' '"), -(8634, 0, "'T'"), -(8635, 0, "'h'"), -(8635, 1, "''"), -(8634, 1, "''"), -(8633, 1, "''"), -(8632, 1, "''"), -(8603, 0, "'a'"), -(8604, 0, "'n'"), -(8605, 0, "'d'"), -(8606, 0, "' '"), -(8607, 0, "'f'"), -(8608, 0, "'i'"), -(8609, 0, "'r'"), -(8610, 0, "'s'"), -(8611, 0, "'t'"), -(8612, 0, "' '"), -(8633, 0, "'c'"), -(8634, 0, "'o'"), -(8635, 0, "'r'"), -(8636, 0, "'e'"), -(8637, 0, "' '"), -(8647, 0, "' '"), -(8648, 0, "'&'"), -(8649, 0, "' '"), -(8650, 0, "'d'"), -(8651, 0, "'a'"), -(8652, 0, "'t'"), -(8653, 0, "'a'"), -(8654, 0, "' '"), -(8655, 0, "'s'"), -(8656, 0, "'t'"), -(8657, 0, "'r'"), -(8658, 0, "'u'"), -(8658, 1, "''"), -(8658, 0, "'c'"), -(8659, 0, "'u'"), -(8659, 1, "''"), -(8658, 1, "''"), -(8658, 0, "'u'"), -(8659, 0, "'c'"), -(8660, 0, "'t'"), -(8661, 0, "'u'"), -(8662, 0, "'r'"), -(8663, 0, "'e'"), -(8664, 0, "'.'"), -(8665, 0, "' '"), -(8638, 12, "''"), -(8654, 0, "'I'"), -(8655, 0, "'n'"), -(8656, 0, "' '"), -(8657, 0, "'a'"), -(8658, 0, "'u'"), -(8659, 0, "'t'"), -(8660, 0, "'o'"), -(8661, 0, "'m'"), -(8662, 0, "'e'"), -(8663, 0, "'r'"), -(8664, 0, "'g'"), -(8665, 0, "'e'"), -(8654, 12, "'A'"), -(8655, 0, "'u'"), -(8656, 0, "'t'"), -(8657, 0, "'o'"), -(8658, 0, "'m'"), -(8659, 0, "'e'"), -(8660, 0, "'r'"), -(8661, 0, "'g'"), -(8662, 0, "'e'"), -(8663, 0, "' '"), -(8664, 0, "'s'"), -(8665, 0, "'e'"), -(8666, 0, "'e'"), -(8667, 0, "'m'"), -(8668, 0, "'s'"), -(8669, 0, "' '"), -(8670, 0, "'t'"), -(8671, 0, "'o'"), -(8672, 0, "' '"), -(8673, 0, "'s'"), -(8674, 0, "'t'"), -(8675, 0, "'o'"), -(8676, 0, "'r'"), -(8677, 0, "'e'"), -(8678, 0, "' '"), -(8679, 0, "'a'"), -(8680, 0, "' '"), -(8681, 0, "'b'"), -(8682, 0, "'u'"), -(8683, 0, "'n'"), -(8684, 0, "'c'"), -(8685, 0, "'h'"), -(8686, 0, "' '"), -(8687, 0, "'o'"), -(8688, 0, "'f'"), -(8689, 0, "' '"), -(8690, 0, "'n'"), -(8691, 0, "'e'"), -(8692, 0, "'s'"), -(8693, 0, "'t'"), -(8694, 0, "'e'"), -(8695, 0, "'d'"), -(8696, 0, "' '"), -(8697, 0, "'l'"), -(8698, 0, "'i'"), -(8699, 0, "'s'"), -(8700, 0, "'t'"), -(8701, 0, "'s'"), -(8702, 0, "','"), -(8703, 0, "' '"), -(8704, 0, "'b'"), -(8705, 0, "'u'"), -(8706, 0, "'t'"), -(8707, 0, "' '"), -(8708, 0, "'t'"), -(8709, 0, "'h'"), -(8710, 0, "'e'"), -(8711, 0, "'r'"), -(8712, 0, "'e'"), -(8713, 0, "'''"), -(8714, 0, "'s'"), -(8715, 0, "' '"), -(8716, 0, "'a'"), -(8717, 0, "' '"), -(8718, 0, "'b'"), -(8719, 0, "'e'"), -(8720, 0, "'t'"), -(8721, 0, "'t'"), -(8722, 0, "'e'"), -(8723, 0, "'r'"), -(8724, 0, "' '"), -(8725, 0, "'w'"), -(8726, 0, "'a'"), -(8727, 0, "'y'"), -(8728, 0, "' '"), -(8729, 0, "'t'"), -(8730, 0, "'o'"), -(8731, 0, "' '"), -(8732, 0, "'d'"), -(8733, 0, "'o'"), -(8734, 0, "' '"), -(8735, 0, "'t'"), -(8736, 0, "'h'"), -(8737, 0, "'i'"), -(8738, 0, "'s'"), -(8739, 0, "'.'"), -(6688, 0, "'n1. Automerge makes heavy use of immutable.js. Immutablejs is a library which gives you clojure-like copy-on-write semantics for javascript objects. This is a cool set of functionality, but the V8 optimizer & GC struggles to optimize code that uses immutablejs. As a result, it increases memory usage and decreases performance.'"), -(6284, 327, "''"), -(6284, 1, "''"), -(6284, 0, "'1'"), -(6362, 1, "''"), -(6362, 0, "'2'"), -(7156, 0, "'n'"), -(7157, 0, "'n'"), -(7158, 0, "'n'"), -(7159, 0, "'n'"), -(7157, 0, "'n'"), -(7157, 0, "'n'"), -(7157, 1, "''"), -(7157, 0, "'T'"), -(7158, 0, "'h'"), -(7159, 0, "'e'"), -(7160, 0, "' '"), -(7161, 0, "'m'"), -(7162, 0, "'o'"), -(7163, 0, "'s'"), -(7164, 0, "'t'"), -(7165, 0, "' '"), -(7166, 0, "'i'"), -(7167, 0, "'m'"), -(7168, 0, "'p'"), -(7169, 0, "'o'"), -(7170, 0, "'r'"), -(7171, 0, "'t'"), -(7172, 0, "'a'"), -(7173, 0, "'n'"), -(7174, 0, "'t'"), -(7157, 18, "'i'"), -(7157, 1, "''"), -(7157, 0, "'W'"), -(7158, 0, "'i'"), -(7159, 0, "'t'"), -(7160, 0, "'h'"), -(7161, 0, "' '"), -(7162, 0, "'t'"), -(7163, 0, "'h'"), -(7164, 0, "'i'"), -(7165, 0, "'s'"), -(7166, 0, "' '"), -(7167, 0, "'s'"), -(7168, 0, "'o'"), -(7169, 0, "'r'"), -(7170, 0, "'t'"), -(7171, 0, "' '"), -(7172, 0, "'o'"), -(7173, 0, "'f'"), -(7174, 0, "' '"), -(7175, 0, "'t'"), -(7176, 0, "'h'"), -(7177, 0, "'i'"), -(7178, 0, "'n'"), -(7179, 0, "'g'"), -(7180, 0, "' '"), -(7181, 0, "'t'"), -(7182, 0, "'h'"), -(7183, 0, "'e'"), -(7184, 0, "' '"), -(7185, 0, "'f'"), -(7186, 0, "'i'"), -(7187, 0, "'r'"), -(7188, 0, "'s'"), -(7189, 0, "'t'"), -(7190, 0, "' '"), -(7191, 0, "'s'"), -(7192, 0, "'t'"), -(7193, 0, "'e'"), -(7194, 0, "'p'"), -(7195, 0, "' '"), -(7196, 0, "'a'"), -(7197, 0, "'l'"), -(7198, 0, "'w'"), -(7199, 0, "'a'"), -(7200, 0, "'y'"), -(7201, 0, "'s'"), -(7202, 0, "' '"), -(7203, 0, "'h'"), -(7204, 0, "'a'"), -(7205, 0, "'s'"), -(7181, 25, "'w'"), -(7182, 0, "'e'"), -(7183, 0, "' '"), -(7184, 0, "'a'"), -(7185, 0, "'l'"), -(7186, 0, "'w'"), -(7187, 0, "'a'"), -(7188, 0, "'y'"), -(7189, 0, "'s'"), -(7190, 0, "' '"), -(7191, 0, "'h'"), -(7192, 0, "'a'"), -(7193, 0, "'v'"), -(7194, 0, "'e'"), -(7195, 0, "' '"), -(7196, 0, "'t'"), -(7197, 0, "'o'"), -(7198, 0, "' '"), -(7199, 0, "'s'"), -(7200, 0, "'t'"), -(7201, 0, "'a'"), -(7202, 0, "'r'"), -(7203, 0, "'t'"), -(7204, 0, "' '"), -(7205, 0, "'w'"), -(7206, 0, "'i'"), -(7207, 0, "'t'"), -(7208, 0, "'h'"), -(7209, 0, "' '"), -(7210, 0, "'m'"), -(7211, 0, "'a'"), -(7212, 0, "'c'"), -(7213, 0, "'r'"), -(7214, 0, "'o'"), -(7215, 0, "' '"), -(7216, 0, "'o'"), -(7217, 0, "'p'"), -(7218, 0, "'t'"), -(7219, 0, "'i'"), -(7220, 0, "'m'"), -(7221, 0, "'i'"), -(7222, 0, "'z'"), -(7223, 0, "'a'"), -(7224, 0, "'t'"), -(7225, 0, "'i'"), -(7226, 0, "'o'"), -(7227, 0, "'n'"), -(7228, 0, "'s'"), -(7229, 0, "'.'"), -(7230, 0, "' '"), -(7231, 0, "'A'"), -(7232, 0, "'s'"), -(7233, 0, "' '"), -(7234, 0, "'i'"), -(7235, 0, "'n'"), -(7236, 0, "' '"), -(7231, 6, "'A'"), -(7232, 0, "'n'"), -(7233, 0, "'d'"), -(7234, 0, "' '"), -(7235, 0, "'i'"), -(7236, 0, "'n'"), -(7237, 0, "' '"), -(7238, 0, "'t'"), -(7239, 0, "'h'"), -(7240, 0, "'i'"), -(7241, 0, "'s'"), -(7242, 0, "' '"), -(7243, 0, "'c'"), -(7244, 0, "'a'"), -(7245, 0, "'s'"), -(7246, 0, "'e'"), -(7247, 0, "','"), -(7248, 0, "' '"), -(7249, 0, "'t'"), -(7250, 0, "'h'"), -(7251, 0, "'e'"), -(7252, 0, "' '"), -(7253, 0, "'b'"), -(7254, 0, "'i'"), -(7255, 0, "'g'"), -(7256, 0, "'g'"), -(7257, 0, "'e'"), -(7258, 0, "'s'"), -(7259, 0, "'t'"), -(7260, 0, "' '"), -(7261, 0, "'p'"), -(7262, 0, "'r'"), -(7263, 0, "'o'"), -(7264, 0, "'b'"), -(7265, 0, "'l'"), -(7266, 0, "'e'"), -(7267, 0, "'m'"), -(7268, 0, "' '"), -(7269, 0, "'i'"), -(7270, 0, "'s'"), -(7271, 0, "' '"), -(7272, 0, "'A'"), -(7273, 0, "'u'"), -(7274, 0, "'t'"), -(7275, 0, "'o'"), -(7276, 0, "'m'"), -(7277, 0, "'e'"), -(7278, 0, "'r'"), -(7279, 0, "'g'"), -(7280, 0, "'e'"), -(7272, 9, "'a'"), -(7273, 0, "'u'"), -(7274, 0, "'t'"), -(7275, 0, "'o'"), -(7276, 0, "'m'"), -(7277, 0, "'e'"), -(7278, 0, "'r'"), -(7279, 0, "'g'"), -(7280, 0, "'e'"), -(7281, 0, "'''"), -(7282, 0, "'s'"), -(7283, 0, "' '"), -(7284, 0, "'c'"), -(7285, 0, "'o'"), -(7286, 0, "'m'"), -(7287, 0, "'p'"), -(7288, 0, "'l'"), -(7289, 0, "'e'"), -(7290, 0, "'x'"), -(7291, 0, "' '"), -(7292, 0, "'t'"), -(7293, 0, "'r'"), -(7294, 0, "'e'"), -(7295, 0, "'e'"), -(7296, 0, "' '"), -(7297, 0, "'b'"), -(7298, 0, "'a'"), -(7299, 0, "'s'"), -(7300, 0, "'e'"), -(7301, 0, "'d'"), -(7302, 0, "' '"), -(7303, 0, "'d'"), -(7304, 0, "'a'"), -(7305, 0, "'t'"), -(7306, 0, "'a'"), -(7307, 0, "' '"), -(7308, 0, "'s'"), -(7309, 0, "'t'"), -(7310, 0, "'r'"), -(7311, 0, "'u'"), -(7312, 0, "'c'"), -(7313, 0, "'t'"), -(7314, 0, "'u'"), -(7315, 0, "'r'"), -(7316, 0, "'e'"), -(7317, 0, "'.'"), -(7318, 0, "'n'"), -(7319, 0, "'n'"), -(7320, 0, "'I'"), -(7321, 0, "' '"), -(7322, 0, "'w'"), -(7323, 0, "'i'"), -(7324, 0, "'s'"), -(7325, 0, "'h'"), -(7326, 0, "' '"), -(7327, 0, "'I'"), -(7328, 0, "' '"), -(7329, 0, "'c'"), -(7330, 0, "'o'"), -(7331, 0, "'u'"), -(7332, 0, "'l'"), -(7333, 0, "'d'"), -(7334, 0, "' '"), -(7335, 0, "'t'"), -(7336, 0, "'a'"), -(7337, 0, "'k'"), -(7338, 0, "'e'"), -(7339, 0, "' '"), -(7340, 0, "'c'"), -(7341, 0, "'r'"), -(7342, 0, "'e'"), -(7343, 0, "'d'"), -(7344, 0, "'i'"), -(7345, 0, "'t'"), -(7346, 0, "' '"), -(7347, 0, "'f'"), -(7348, 0, "'o'"), -(7349, 0, "'r'"), -(7350, 0, "' '"), -(7351, 0, "'t'"), -(7352, 0, "'h'"), -(7353, 0, "'i'"), -(7354, 0, "'s'"), -(7355, 0, "' '"), -(7356, 0, "'i'"), -(7357, 0, "'n'"), -(7358, 0, "'s'"), -(7359, 0, "'i'"), -(7360, 0, "'g'"), -(7361, 0, "'h'"), -(7362, 0, "'t'"), -(7363, 0, "'.'"), -(7364, 0, "' '"), -(7365, 0, "'K'"), -(7366, 0, "'e'"), -(7367, 0, "'v'"), -(7368, 0, "'i'"), -(7369, 0, "'n'"), -(7370, 0, "' '"), -(7371, 0, "'J'"), -(7372, 0, "'a'"), -(7373, 0, "'h'"), -(7374, 0, "'n'"), -(7375, 0, "'s'"), -(7376, 0, "' '"), -(7377, 0, "'-'"), -(7378, 0, "' '"), -(7379, 0, "'w'"), -(7380, 0, "'h'"), -(7381, 0, "'o'"), -(7382, 0, "' '"), -(7383, 0, "'w'"), -(7384, 0, "'r'"), -(7385, 0, "'o'"), -(7386, 0, "'t'"), -(7387, 0, "'e'"), -(7388, 0, "' '"), -(7389, 0, "'a'"), -(7390, 0, "' '"), -(7390, 1, "''"), -(7390, 0, "' '"), -(7391, 0, "'('"), -(7391, 1, "''"), -(7390, 1, "''"), -(7390, 0, "'n'"), -(7391, 0, "'o'"), -(7392, 0, "'h'"), -(7393, 0, "'t'"), -(7394, 0, "'e'"), -(7395, 0, "'r'"), -(7396, 0, "' '"), -(7397, 0, "'('"), -(7389, 9, "'a'"), -(7390, 0, "'n'"), -(7391, 0, "'o'"), -(7392, 0, "'t'"), -(7393, 0, "'h'"), -(7394, 0, "'e'"), -(7395, 0, "'r'"), -(7396, 0, "' '"), -(7397, 0, "'('"), -(7398, 0, "'m'"), -(7399, 0, "'u'"), -(7400, 0, "'c'"), -(7401, 0, "'h'"), -(7402, 0, "' '"), -(7403, 0, "'b'"), -(7404, 0, "'e'"), -(7405, 0, "'t'"), -(7406, 0, "'t'"), -(7407, 0, "'e'"), -(7408, 0, "'r'"), -(7409, 0, "')'"), -(7410, 0, "' '"), -(7411, 0, "'C'"), -(7412, 0, "'R'"), -(7413, 0, "'D'"), -(7414, 0, "'T'"), -(7320, 95, "''"), -(7320, 0, "'T'"), -(7321, 0, "'h'"), -(7322, 0, "'e'"), -(7323, 0, "'r'"), -(7324, 0, "'e'"), -(7325, 0, "'''"), -(7326, 0, "'s'"), -(7327, 0, "' '"), -(7328, 0, "'a'"), -(7329, 0, "' '"), -(7330, 0, "'b'"), -(7331, 0, "'e'"), -(7332, 0, "'t'"), -(7333, 0, "'t'"), -(7334, 0, "'e'"), -(7335, 0, "'r'"), -(7336, 0, "' '"), -(7320, 17, "''"), -(7320, 0, "'T'"), -(7321, 0, "'h'"), -(7322, 0, "'e'"), -(7323, 0, "' '"), -(7324, 0, "'f'"), -(7325, 0, "'i'"), -(7326, 0, "'r'"), -(7327, 0, "'s'"), -(7328, 0, "'t'"), -(7329, 0, "' '"), -(7330, 0, "'c'"), -(7331, 0, "'h'"), -(7332, 0, "'a'"), -(7333, 0, "'n'"), -(7334, 0, "'g'"), -(7335, 0, "'e'"), -(7318, 0, "' '"), -(7319, 0, "'C'"), -(7320, 0, "'o'"), -(7321, 0, "'m'"), -(7322, 0, "'p'"), -(7323, 0, "'l'"), -(7324, 0, "'e'"), -(7325, 0, "'x'"), -(7326, 0, "' '"), -(7327, 0, "'d'"), -(7328, 0, "'a'"), -(7329, 0, "'t'"), -(7330, 0, "'a'"), -(7331, 0, "' '"), -(7332, 0, "'s'"), -(7333, 0, "'t'"), -(7334, 0, "'r'"), -(7335, 0, "'u'"), -(7336, 0, "'c'"), -(7337, 0, "'t'"), -(7338, 0, "'u'"), -(7339, 0, "'r'"), -(7340, 0, "'e'"), -(7341, 0, "'s'"), -(7342, 0, "' '"), -(7343, 0, "'a'"), -(7344, 0, "'r'"), -(7345, 0, "'e'"), -(7346, 0, "' '"), -(7319, 28, "''"), -(7318, 1, "''"), -(7336, 0, "' '"), -(7337, 0, "'w'"), -(7338, 0, "'e'"), -(7339, 0, "'''"), -(7340, 0, "'l'"), -(7341, 0, "'l'"), -(7342, 0, "' '"), -(7343, 0, "'m'"), -(7344, 0, "'a'"), -(7345, 0, "'k'"), -(7346, 0, "'e'"), -(7347, 0, "' '"), -(7348, 0, "'h'"), -(7349, 0, "'e'"), -(7350, 0, "'r'"), -(7351, 0, "'e'"), -(7352, 0, "' '"), -(7353, 0, "'i'"), -(7354, 0, "'s'"), -(7355, 0, "' '"), -(7356, 0, "'r'"), -(7357, 0, "'e'"), -(7358, 0, "'p'"), -(7359, 0, "'l'"), -(7360, 0, "'a'"), -(7361, 0, "'c'"), -(7362, 0, "'i'"), -(7363, 0, "'n'"), -(7364, 0, "'g'"), -(7365, 0, "' '"), -(7366, 0, "'A'"), -(7367, 0, "'u'"), -(7368, 0, "'t'"), -(7369, 0, "'o'"), -(7370, 0, "'m'"), -(7371, 0, "'e'"), -(7372, 0, "'r'"), -(7366, 7, "'a'"), -(7367, 0, "'u'"), -(7368, 0, "'t'"), -(7369, 0, "'o'"), -(7370, 0, "'m'"), -(7371, 0, "'e'"), -(7372, 0, "'r'"), -(7373, 0, "'g'"), -(7374, 0, "'e'"), -(7375, 0, "'''"), -(7376, 0, "'s'"), -(7377, 0, "' '"), -(7378, 0, "'t'"), -(7379, 0, "'r'"), -(7380, 0, "'e'"), -(7381, 0, "'e'"), -(7382, 0, "' '"), -(7383, 0, "'w'"), -(7384, 0, "'i'"), -(7385, 0, "'t'"), -(7386, 0, "'h'"), -(7387, 0, "' '"), -(7388, 0, "'a'"), -(7389, 0, "' '"), -(7390, 0, "'l'"), -(7391, 0, "'i'"), -(7392, 0, "'s'"), -(7393, 0, "'t'"), -(7394, 0, "'.'"), -(7395, 0, "' '"), -(7396, 0, "'S'"), -(7397, 0, "'o'"), -(7398, 0, "' '"), -(7399, 0, "'i'"), -(7400, 0, "'n'"), -(7401, 0, "'s'"), -(7402, 0, "'t'"), -(7403, 0, "'e'"), -(7404, 0, "'a'"), -(7405, 0, "'d'"), -(7406, 0, "' '"), -(7407, 0, "'o'"), -(7408, 0, "'f'"), -(7409, 0, "':'"), -(7410, 0, "'n'"), -(7411, 0, "'n'"), -(7412, 0, "'`'"), -(7413, 0, "'`'"), -(7414, 0, "'`'"), -(7415, 0, "'n'"), -(7416, 0, "'n'"), -(7417, 0, "'n'"), -(7418, 0, "'`'"), -(7419, 0, "'`'"), -(7420, 0, "'`'"), -(7416, 0, "'s'"), -(7417, 0, "'t'"), -(7418, 0, "'a'"), -(7419, 0, "'t'"), -(7420, 0, "'e'"), -(7421, 0, "' '"), -(7422, 0, "'='"), -(7423, 0, "' '"), -(7424, 0, "'{'"), -(7425, 0, "'n '"), -(7428, 0, "'n '"), -(7426, 2, "''"), -(7427, 2, "'}'"), -(7428, 1, "''"), -(7426, 0, "' '"), -(7428, 0, "'{'"), -(7429, 0, "'i'"), -(7429, 1, "''"), -(7429, 0, "'n '"), -(7432, 2, "''"), -(7430, 2, "''"), -(7429, 1, "''"), -(7429, 0, "' '"), -(7430, 0, "'i'"), -(7431, 0, "'t'"), -(7432, 0, "'e'"), -(7433, 0, "'m'"), -(7434, 0, "':'"), -(7435, 0, "' '"), -(7436, 0, "'''"), -(7437, 0, "'a'"), -(7438, 0, "'''"), -(7439, 0, "','"), -(7440, 0, "' '"), -(7441, 0, "'c'"), -(7442, 0, "'h'"), -(7443, 0, "'i'"), -(7444, 0, "'l'"), -(7445, 0, "'d'"), -(7446, 0, "'r'"), -(7447, 0, "'e'"), -(7448, 0, "'n'"), -(7449, 0, "':'"), -(7441, 0, "'i'"), -(7442, 0, "'d'"), -(7443, 0, "','"), -(7444, 0, "' '"), -(7445, 0, "'s'"), -(7446, 0, "'e'"), -(7447, 0, "'q'"), -(7448, 0, "','"), -(7449, 0, "' '"), -(7459, 0, "' '"), -(7460, 0, "'['"), -(7461, 0, "'n '"), -(7466, 0, "'n '"), -(7462, 4, "''"), -(7463, 4, "' ]'"), -(7466, 0, "'}'"), -(7426, 0, "' { item: 'a', id, seq, children: [n'"), -(7464, 0, "' '"), -(7475, 1, "''"), -(7475, 0, "'b'"), -(7462, 0, "' { item: 'b', id, seq, children: [n'"), -(7504, 0, "' '"), -(7515, 1, "''"), -(7515, 0, "'c'"), -(7540, 0, "' ]'"), -(7500, 47, "' { item: 'c', id, seq, children: [ ]'"), -(7539, 1, "''"), -(7540, 0, "'}'"), -(7541, 0, "'n '"), -(7542, 6, "' ]'"), -(7547, 0, "')'"), -(7547, 1, "''"), -(7547, 0, "'}'"), -(7409, 0, "' '"), -(7410, 0, "'s'"), -(7411, 0, "'o'"), -(7412, 0, "'m'"), -(7413, 0, "'e'"), -(7414, 0, "'t'"), -(7415, 0, "'h'"), -(7416, 0, "'i'"), -(7417, 0, "'n'"), -(7418, 0, "'g'"), -(7419, 0, "'l'"), -(7420, 0, "' '"), -(7421, 0, "'i'"), -(7422, 0, "'k'"), -(7423, 0, "'e'"), -(7423, 1, "''"), -(7422, 1, "''"), -(7421, 1, "''"), -(7420, 1, "''"), -(7419, 1, "''"), -(7419, 0, "' '"), -(7420, 0, "'l'"), -(7421, 0, "'i'"), -(7422, 0, "'k'"), -(7423, 0, "'e'"), -(7253, 19, "''"), -(7264, 0, "' '"), -(7265, 0, "'b'"), -(7266, 0, "'i'"), -(7267, 0, "'g'"), -(7268, 0, "'g'"), -(7269, 0, "'e'"), -(7270, 0, "'s'"), -(7271, 0, "'t'"), -(7272, 0, "' '"), -(7273, 0, "'p'"), -(7274, 0, "'r'"), -(7275, 0, "'o'"), -(7276, 0, "'b'"), -(7277, 0, "'l'"), -(7278, 0, "'e'"), -(7279, 0, "'m'"), -(7280, 0, "' '"), -(7281, 0, "'i'"), -(7282, 0, "'s'"), -(7283, 0, "' '"), -(7284, 0, "'i'"), -(7285, 0, "'t'"), -(7286, 0, "'s'"), -(7324, 0, "'S'"), -(7325, 0, "'o'"), -(7326, 0, "' '"), -(7327, 1, "''"), -(7327, 0, "'t'"), -(7563, 0, "'n { item: 'c', id, seq, children: []}'"), -(7563, 0, "'n { item: 'b', id, seq, children: ['"), -(7484, 38, "''"), -(7484, 6, "' '"), -(7437, 0, "'j'"), -(7438, 0, "'a'"), -(7439, 0, "'v'"), -(7440, 0, "'a'"), -(7441, 0, "'s'"), -(7442, 0, "'c'"), -(7443, 0, "'r'"), -(7444, 0, "'i'"), -(7445, 0, "'p'"), -(7446, 0, "'t'"), -(7507, 1, "''"), -(7507, 0, "'X'"), -(7533, 0, "','"), -(7632, 0, "'n'"), -(7633, 0, "'n'"), -(7634, 0, "'W'"), -(7635, 0, "'e'"), -(7636, 0, "'''"), -(7637, 0, "'l'"), -(7638, 0, "'l'"), -(7639, 0, "' '"), -(7640, 0, "'p'"), -(7641, 0, "'u'"), -(7642, 0, "'t'"), -(7643, 0, "' '"), -(7644, 0, "'a'"), -(7645, 0, "'l'"), -(7646, 0, "'l'"), -(7647, 0, "' '"), -(7648, 0, "'t'"), -(7649, 0, "'h'"), -(7650, 0, "'e'"), -(7651, 0, "' '"), -(7652, 0, "'i'"), -(7653, 0, "'t'"), -(7654, 0, "'e'"), -(7655, 0, "'m'"), -(7656, 0, "'s'"), -(7657, 0, "' '"), -(7658, 0, "'i'"), -(7659, 0, "'n'"), -(7660, 0, "' '"), -(7661, 0, "'a'"), -(7662, 0, "' '"), -(7663, 0, "'s'"), -(7664, 0, "'i'"), -(7665, 0, "'n'"), -(7666, 0, "'g'"), -(7667, 0, "'l'"), -(7668, 0, "'e'"), -(7669, 0, "' '"), -(7670, 0, "'f'"), -(7671, 0, "'l'"), -(7672, 0, "'a'"), -(7673, 0, "'t'"), -(7674, 0, "' '"), -(7675, 0, "'l'"), -(7676, 0, "'i'"), -(7677, 0, "'s'"), -(7678, 0, "'t'"), -(7679, 0, "':'"), -(7682, 0, "'```javascriptnstate = {n { item: 'a', id, seq, children: [n { item: 'X', id, seq, children: []},n { item: 'b', id, seq, children: [n { item: 'c', id, seq, children: []}n ]}n ]}n}n```n'"), -(7704, 1, "''"), -(7704, 0, "'['"), -(7875, 1, "''"), -(7875, 0, "']'"), -(7730, 11, "'p'"), -(7731, 0, "'a'"), -(7732, 0, "'r'"), -(7733, 0, "'e'"), -(7734, 0, "'n'"), -(7735, 0, "'t'"), -(7730, 6, "'children: ['"), -(7849, 11, "'p'"), -(7809, 11, "'p'"), -(7768, 11, "'p'"), -(7730, 11, "'p'"), -(7820, 0, "'a'"), -(7790, 0, "'a'"), -(7759, 0, "'a'"), -(7731, 0, "'a'"), -(7824, 0, "'r'"), -(7793, 0, "'r'"), -(7761, 0, "'r'"), -(7732, 0, "'r'"), -(7828, 0, "'e'"), -(7796, 0, "'e'"), -(7763, 0, "'e'"), -(7733, 0, "'e'"), -(7832, 0, "'n'"), -(7799, 0, "'n'"), -(7765, 0, "'n'"), -(7734, 0, "'n'"), -(7836, 0, "'t'"), -(7802, 0, "'t'"), -(7767, 0, "'t'"), -(7735, 0, "'t'"), -(7840, 0, "':'"), -(7805, 0, "':'"), -(7769, 0, "':'"), -(7736, 0, "':'"), -(7844, 0, "' '"), -(7808, 0, "' '"), -(7771, 0, "' '"), -(7737, 0, "' '"), -(7847, 1, "''"), -(7810, 1, "''"), -(7772, 1, "''"), -(7737, 1, "''"), -(7843, 1, "''"), -(7807, 1, "''"), -(7770, 1, "''"), -(7736, 1, "''"), -(7840, 0, "' '"), -(7805, 0, "' '"), -(7769, 0, "' '"), -(7736, 0, "' '"), -(7844, 0, "'}'"), -(7808, 0, "'}'"), -(7771, 0, "'}'"), -(7737, 0, "'}'"), -(7773, 3, "''"), -(7809, 6, "' '"), -(7774, 4, "' '"), -(7739, 4, "' '"), -(7805, 4, "' '"), -(7840, 12, "''"), -(7475, 0, "':'"), -(7476, 0, "' '"), -(7477, 0, "'{'"), -(7478, 0, "'}'"), -(7478, 1, "''"), -(7477, 1, "''"), -(7477, 0, "'['"), -(7478, 0, "']'"), -(7478, 0, "'''"), -(7479, 0, "'s'"), -(7480, 0, "'e'"), -(7481, 0, "'p'"), -(7482, 0, "'h'"), -(7483, 0, "'''"), -(7484, 0, "','"), -(7485, 0, "' '"), -(7486, 0, "'0'"), -(7493, 0, "':'"), -(7494, 0, "' '"), -(7495, 0, "'0'"), -(7529, 0, "':'"), -(7530, 0, "' '"), -(7531, 0, "'['"), -(7532, 0, "'.'"), -(7533, 0, "'.'"), -(7534, 0, "']'"), -(7576, 0, "':'"), -(7577, 0, "' '"), -(7578, 0, "'['"), -(7579, 0, "'.'"), -(7580, 0, "'.'"), -(7581, 0, "']'"), -(7622, 0, "':'"), -(7623, 0, "' '"), -(7624, 0, "'['"), -(7625, 0, "'.'"), -(7626, 0, "'.'"), -(7627, 0, "']'"), -(7872, 1, "''"), -(7871, 1, "''"), -(7772, 0, "','"), -(7806, 0, "','"), -(7840, 0, "','"), -(7874, 0, "','"), -(7874, 1, "''"), -(7324, 25, "'T'"), -(7325, 0, "'h'"), -(7326, 0, "'e'"), -(7327, 0, "'r'"), -(7328, 0, "'''"), -(7329, 0, "'s'"), -(7330, 0, "' '"), -(7331, 0, "'a'"), -(7331, 1, "''"), -(7330, 1, "''"), -(7329, 1, "''"), -(7328, 1, "''"), -(7328, 0, "'e'"), -(7329, 0, "'''"), -(7330, 0, "'s'"), -(7331, 0, "' '"), -(7332, 0, "'a'"), -(7333, 0, "' '"), -(7334, 0, "'b'"), -(7335, 0, "'e'"), -(7336, 0, "'t'"), -(7337, 0, "'t'"), -(7338, 0, "'e'"), -(7339, 0, "'r'"), -(7340, 0, "' '"), -(7341, 0, "'w'"), -(7342, 0, "'a'"), -(7343, 0, "'y'"), -(7344, 0, "' '"), -(6332, 28, "''"), -(7127, 0, "' '"), -(7128, 0, "'T'"), -(7129, 0, "'h'"), -(7130, 0, "'e'"), -(7131, 0, "'r'"), -(7132, 0, "'e'"), -(7133, 0, "'''"), -(7134, 0, "'s'"), -(7135, 0, "' '"), -(7136, 0, "'l'"), -(7137, 0, "'o'"), -(7138, 0, "'t'"), -(7139, 0, "'s'"), -(7140, 0, "' '"), -(7141, 0, "'o'"), -(7142, 0, "'f'"), -(7143, 0, "' '"), -(7144, 0, "'p'"), -(7145, 0, "'e'"), -(7146, 0, "'r'"), -(7147, 0, "'f'"), -(7148, 0, "'o'"), -(7149, 0, "'r'"), -(7150, 0, "'m'"), -(7151, 0, "'a'"), -(7152, 0, "'n'"), -(7153, 0, "'c'"), -(7154, 0, "'e'"), -(7155, 0, "' '"), -(7156, 0, "'w'"), -(7157, 0, "'i'"), -(7158, 0, "'n'"), -(7159, 0, "'s'"), -(7160, 0, "' '"), -(7161, 0, "'t'"), -(7162, 0, "'o'"), -(7163, 0, "' '"), -(7164, 0, "'b'"), -(7165, 0, "'e'"), -(7166, 0, "' '"), -(7167, 0, "'h'"), -(7168, 0, "'a'"), -(7169, 0, "'d'"), -(7170, 0, "','"), -(7171, 0, "' '"), -(7172, 0, "'b'"), -(7173, 0, "'u'"), -(7174, 0, "'t'"), -(7175, 3, "' '"), -(7176, 0, "'w'"), -(7200, 17, "'i'"), -(7201, 0, "'t'"), -(7202, 0, "'s'"), -(7203, 0, "' '"), -(7204, 0, "'a'"), -(7205, 0, "'l'"), -(7206, 0, "'w'"), -(7207, 0, "'a'"), -(7208, 0, "'y'"), -(7209, 0, "'s'"), -(7210, 0, "' '"), -(7211, 0, "'b'"), -(7212, 0, "'e'"), -(7213, 0, "'s'"), -(7214, 0, "'t'"), -(7215, 0, "' '"), -(7216, 0, "'t'"), -(7217, 0, "'o'"), -(7249, 0, "','"), -(7250, 0, "' '"), -(7251, 0, "'s'"), -(7252, 0, "'i'"), -(7253, 0, "'n'"), -(7254, 0, "'c'"), -(7255, 0, "'e'"), -(7256, 0, "' '"), -(7257, 0, "'t'"), -(7258, 0, "'h'"), -(7259, 0, "'e'"), -(7260, 0, "' '"), -(7261, 0, "'m'"), -(7262, 0, "'m'"), -(7263, 0, "'i'"), -(7264, 0, "'c'"), -(7265, 0, "'r'"), -(7257, 9, "'t'"), -(7258, 0, "'h'"), -(7259, 0, "'e'"), -(7260, 0, "'r'"), -(7261, 0, "'e'"), -(7262, 0, "'''"), -(7263, 0, "'s'"), -(7264, 0, "' '"), -(7265, 0, "'n'"), -(7266, 0, "'o'"), -(7267, 0, "' '"), -(7268, 0, "'p'"), -(7269, 0, "'o'"), -(7270, 0, "'i'"), -(7271, 0, "'n'"), -(7272, 0, "'t'"), -(7273, 0, "' '"), -(7274, 0, "'o'"), -(7275, 0, "'p'"), -(7276, 0, "'t'"), -(7277, 0, "'i'"), -(7278, 0, "'m'"), -(7279, 0, "'i'"), -(7280, 0, "'z'"), -(7281, 0, "'i'"), -(7282, 0, "'n'"), -(7283, 0, "'g'"), -(7284, 0, "' '"), -(7285, 0, "'c'"), -(7286, 0, "'o'"), -(7287, 0, "'d'"), -(7288, 0, "'e'"), -(7289, 0, "' '"), -(7290, 0, "'y'"), -(7291, 0, "'o'"), -(7292, 0, "'u'"), -(7293, 0, "' '"), -(7294, 0, "'m'"), -(7295, 0, "'i'"), -(7296, 0, "'g'"), -(7297, 0, "'h'"), -(7298, 0, "'t'"), -(7299, 0, "' '"), -(7300, 0, "'b'"), -(7301, 0, "'e'"), -(7302, 0, "' '"), -(7303, 0, "'a'"), -(7304, 0, "'b'"), -(7305, 0, "'o'"), -(7306, 0, "'u'"), -(7307, 0, "'t'"), -(7308, 0, "' '"), -(7309, 0, "'t'"), -(7310, 0, "'o'"), -(7311, 0, "' '"), -(7312, 0, "'t'"), -(7313, 0, "'h'"), -(7314, 0, "'r'"), -(7315, 0, "'o'"), -(7316, 0, "'w'"), -(7317, 0, "' '"), -(7318, 0, "'o'"), -(7319, 0, "'u'"), -(7320, 0, "'t'"), -(7321, 0, "' '"), -(7322, 0, "'a'"), -(7323, 0, "'n'"), -(7324, 0, "'y'"), -(7325, 0, "'w'"), -(7326, 0, "'a'"), -(7327, 0, "'y'"), -(7330, 5, "'I'"), -(7419, 0, "'L'"), -(7420, 0, "'u'"), -(7421, 0, "'c'"), -(7422, 0, "'k'"), -(7423, 0, "'i'"), -(7424, 0, "'l'"), -(7425, 0, "'y'"), -(7426, 0, "','"), -(7427, 0, "' '"), -(7428, 1, "''"), -(7428, 0, "'t'"), -(7449, 0, "'t'"), -(7450, 0, "'o'"), -(7451, 0, "' '"), -(7452, 0, "'i'"), -(7453, 0, "'m'"), -(7454, 0, "'p'"), -(7455, 0, "'l'"), -(7456, 0, "'e'"), -(7457, 0, "'m'"), -(7458, 0, "'e'"), -(7459, 0, "'n'"), -(7460, 0, "'t'"), -(7461, 0, "' '"), -(7462, 0, "'C'"), -(7463, 0, "'R'"), -(7464, 0, "'D'"), -(7465, 0, "'T'"), -(7466, 0, "'s'"), -(7467, 0, "' '"), -(7468, 0, "'w'"), -(7469, 0, "'h'"), -(7470, 0, "'i'"), -(7471, 0, "'c'"), -(7472, 0, "'h'"), -(7473, 0, "' '"), -(7474, 0, "'w'"), -(7475, 0, "'e'"), -(7476, 0, "' '"), -(7477, 0, "'c'"), -(7478, 0, "'a'"), -(7479, 0, "'n'"), -(7480, 0, "' '"), -(7481, 0, "'s'"), -(7482, 0, "'t'"), -(7483, 0, "'e'"), -(7484, 0, "'a'"), -(7485, 0, "'l'"), -(7486, 0, "' '"), -(7487, 0, "'f'"), -(7488, 0, "'r'"), -(7489, 0, "'o'"), -(7490, 0, "'m'"), -(7491, 0, "' '"), -(7492, 0, "'Y'"), -(7493, 0, "'j'"), -(7494, 0, "'s'"), -(7495, 0, "' '"), -(7496, 0, "'-'"), -(7497, 0, "' '"), -(7492, 6, "'m'"), -(7493, 0, "'t'"), -(7494, 0, "' '"), -(7494, 1, "''"), -(7493, 1, "''"), -(7493, 0, "'y'"), -(7494, 0, "' '"), -(7495, 0, "'f'"), -(7496, 0, "'a'"), -(7497, 0, "'v'"), -(7498, 0, "'o'"), -(7499, 0, "'r'"), -(7500, 0, "'i'"), -(7501, 0, "'t'"), -(7502, 0, "'e'"), -(7503, 0, "' '"), -(7504, 0, "'C'"), -(7505, 0, "'R'"), -(7506, 0, "'D'"), -(7507, 0, "'T'"), -(7508, 0, "' '"), -(7509, 0, "'i'"), -(7510, 0, "'m'"), -(7511, 0, "'p'"), -(7512, 0, "'l'"), -(7513, 0, "'e'"), -(7514, 0, "'m'"), -(7515, 0, "'e'"), -(7516, 0, "'n'"), -(7517, 0, "'t'"), -(7518, 0, "'a'"), -(7519, 0, "'t'"), -(7520, 0, "'i'"), -(7521, 0, "'o'"), -(7522, 0, "'n'"), -(7523, 0, "' '"), -(7524, 0, "'-'"), -(7525, 0, "' '"), -(7526, 0, "'Y'"), -(7527, 0, "'j'"), -(7528, 0, "'s'"), -(7529, 0, "'.'"), -(7530, 0, "' '"), -(7531, 0, "'Y'"), -(7532, 0, "'j'"), -(7533, 0, "'s'"), -(7534, 0, "' '"), -(7467, 0, "'.'"), -(7468, 0, "' '"), -(7469, 0, "'I'"), -(7470, 0, "' '"), -(7471, 0, "'w'"), -(7472, 0, "'i'"), -(7473, 0, "'s'"), -(7474, 0, "'h'"), -(7475, 0, "' '"), -(7476, 0, "'I'"), -(7477, 0, "' '"), -(7478, 0, "'c'"), -(7479, 0, "'o'"), -(7480, 0, "'u'"), -(7481, 0, "'l'"), -(7482, 0, "'d'"), -(7483, 0, "' '"), -(7484, 0, "'c'"), -(7485, 0, "'l'"), -(7486, 0, "'a'"), -(7487, 0, "'i'"), -(7488, 0, "'m'"), -(7489, 0, "' '"), -(7490, 0, "'I'"), -(7491, 0, "' '"), -(7492, 0, "'i'"), -(7493, 0, "'n'"), -(7494, 0, "'v'"), -(7495, 0, "'e'"), -(7496, 0, "'n'"), -(7497, 0, "'t'"), -(7498, 0, "'e'"), -(7499, 0, "'d'"), -(7500, 0, "' '"), -(7501, 0, "'t'"), -(7502, 0, "'h'"), -(7503, 0, "'i'"), -(7504, 0, "'s'"), -(7505, 0, "','"), -(7506, 0, "' '"), -(7507, 0, "'b'"), -(7469, 39, "''"), -(7468, 1, "''"), -(7467, 1, "''"), -(7467, 0, "','"), -(7468, 0, "' '"), -(7469, 0, "'w'"), -(7470, 0, "'h'"), -(7471, 0, "'i'"), -(7472, 0, "'c'"), -(7473, 0, "'h'"), -(7474, 0, "' '"), -(7475, 0, "'w'"), -(7476, 0, "'e'"), -(7477, 0, "' '"), -(7478, 0, "'c'"), -(7479, 0, "'a'"), -(7480, 0, "'n'"), -(7481, 0, "' '"), -(7482, 0, "'s'"), -(7483, 0, "'e'"), -(7484, 0, "'e'"), -(7485, 0, "' '"), -(7486, 0, "'i'"), -(7487, 0, "'n'"), -(7488, 0, "' '"), -(7489, 0, "'m'"), -(7490, 0, "'y'"), -(7491, 0, "' '"), -(7492, 0, "'f'"), -(7493, 0, "'a'"), -(7494, 0, "'v'"), -(7495, 0, "'o'"), -(7496, 0, "'r'"), -(7497, 0, "'i'"), -(7498, 0, "'t'"), -(7499, 0, "'e'"), -(7500, 0, "' '"), -(7501, 0, "'C'"), -(7502, 0, "'R'"), -(7503, 0, "'D'"), -(7504, 0, "'T'"), -(7505, 0, "' '"), -(7506, 42, "''"), -(7520, 0, "':'"), -(7521, 2, "''"), -(7531, 0, "'m'"), -(7532, 0, "'a'"), -(7533, 0, "'k'"), -(7534, 0, "'e'"), -(7535, 0, "' '"), -(7536, 0, "'a'"), -(7537, 0, "' '"), -(7537, 1, "''"), -(7536, 1, "''"), -(7535, 1, "''"), -(7535, 0, "'s'"), -(7536, 0, "' '"), -(7537, 0, "'a'"), -(7538, 0, "' '"), -(7539, 0, "'c'"), -(7540, 0, "'l'"), -(7541, 0, "'e'"), -(7542, 0, "'v'"), -(7543, 0, "'e'"), -(7544, 0, "'r'"), -(7545, 0, "','"), -(7546, 0, "' '"), -(7547, 0, "'o'"), -(7548, 0, "'b'"), -(7549, 0, "'v'"), -(7550, 0, "'i'"), -(7551, 0, "'o'"), -(7552, 0, "'u'"), -(7553, 0, "'s'"), -(7554, 0, "' '"), -(7555, 0, "'t'"), -(7556, 0, "'r'"), -(7557, 0, "'i'"), -(7558, 0, "'c'"), -(7559, 0, "'k'"), -(7560, 0, "' '"), -(7561, 0, "'t'"), -(7562, 0, "'h'"), -(7563, 0, "'a'"), -(7564, 0, "'t'"), -(7565, 83, "' '"), -(7566, 0, "'I'"), -(7567, 0, "' '"), -(7568, 0, "'d'"), -(7569, 0, "'o'"), -(7570, 0, "'n'"), -(7571, 0, "'''"), -(7572, 0, "'t'"), -(7573, 0, "' '"), -(7574, 0, "'t'"), -(7575, 0, "'h'"), -(7576, 0, "'i'"), -(7577, 0, "'n'"), -(7578, 0, "'k'"), -(7579, 0, "' '"), -(7580, 0, "'a'"), -(7581, 0, "'n'"), -(7582, 0, "'y'"), -(7583, 0, "'o'"), -(7584, 0, "'n'"), -(7585, 0, "'e'"), -(7586, 0, "' '"), -(7587, 0, "'e'"), -(7588, 0, "'l'"), -(7589, 0, "'s'"), -(7590, 0, "'e'"), -(7591, 0, "' '"), -(7592, 0, "'n'"), -(7593, 0, "'o'"), -(7594, 0, "'t'"), -(7595, 0, "'i'"), -(7596, 0, "'c'"), -(7597, 0, "'e'"), -(7598, 0, "'d'"), -(7599, 0, "'.'"), -(7600, 0, "' '"), -(7601, 0, "'I'"), -(7602, 0, "'n'"), -(7603, 0, "'s'"), -(7604, 0, "'t'"), -(7605, 0, "'e'"), -(7606, 0, "'a'"), -(7607, 0, "'d'"), -(7608, 0, "' '"), -(7609, 0, "'o'"), -(7610, 0, "'f'"), -(7611, 0, "' '"), -(7612, 0, "'i'"), -(7613, 0, "'m'"), -(7614, 0, "'p'"), -(7615, 0, "'l'"), -(7616, 0, "'e'"), -(7617, 0, "'m'"), -(7618, 0, "'e'"), -(7619, 0, "'n'"), -(7620, 0, "'t'"), -(7621, 0, "'i'"), -(7622, 0, "'n'"), -(7623, 0, "'g'"), -(7624, 0, "' '"), -(7625, 0, "'t'"), -(7626, 0, "'h'"), -(7627, 0, "'e'"), -(7628, 0, "' '"), -(7629, 0, "'C'"), -(7630, 0, "'R'"), -(7631, 0, "'D'"), -(7632, 0, "'T'"), -(7633, 0, "' '"), -(7634, 0, "'a'"), -(7635, 0, "'s'"), -(7636, 0, "' '"), -(7637, 0, "'a'"), -(7638, 0, "' '"), -(7639, 0, "'t'"), -(7640, 0, "'r'"), -(7641, 0, "'e'"), -(7642, 0, "'e'"), -(7643, 0, "' '"), -(7644, 0, "'l'"), -(7645, 0, "'i'"), -(7646, 0, "'k'"), -(7647, 0, "'e'"), -(7648, 0, "' '"), -(7649, 0, "'t'"), -(7650, 0, "'h'"), -(7651, 0, "'i'"), -(7652, 0, "'s'"), -(7653, 0, "':'"), -(7890, 5, "'Y'"), -(7891, 0, "'j'"), -(7892, 0, "'s'"), -(7897, 0, "'s'"), -(7925, 5, "''"), -(7986, 0, "':'"), -(7987, 0, "' '"), -(7988, 0, "'n'"), -(7989, 0, "'u'"), -(7990, 0, "'l'"), -(7991, 0, "'l'"), -(8026, 0, "':'"), -(8027, 0, "' '"), -(8028, 0, "'n'"), -(8029, 0, "'u'"), -(8030, 0, "'l'"), -(8031, 0, "'l'"), -(8031, 1, "''"), -(8030, 1, "''"), -(8029, 1, "''"), -(8028, 1, "''"), -(7973, 0, "':'"), -(7974, 0, "' '"), -(7975, 0, "'['"), -(7976, 0, "'''"), -(7977, 0, "'s'"), -(7978, 0, "'e'"), -(7979, 0, "'p'"), -(7980, 0, "'h'"), -(7981, 0, "'''"), -(7982, 0, "','"), -(7983, 0, "' '"), -(7984, 0, "'0'"), -(7985, 0, "']'"), -(8041, 0, "'['"), -(8042, 0, "'''"), -(8043, 0, "'s'"), -(8044, 0, "'e'"), -(8045, 0, "'p'"), -(8046, 0, "'h'"), -(8047, 0, "'''"), -(8048, 0, "','"), -(8049, 0, "' '"), -(8050, 0, "'0'"), -(8051, 0, "']'"), -(8086, 0, "': ['seph', 0]'"), -(8133, 0, "':'"), -(8134, 0, "' '"), -(8135, 0, "'.'"), -(8136, 0, "'.'"), -(8137, 0, "'.'"), -(8137, 1, "''"), -(8136, 1, "''"), -(8135, 1, "''"), -(8134, 1, "''"), -(8134, 0, "' '"), -(8135, 0, "'['"), -(8136, 0, "'.'"), -(8137, 0, "'.'"), -(8138, 0, "']'"), -(8148, 0, "'n'"), -(8149, 0, "'Y'"), -(8150, 0, "'j'"), -(8151, 0, "'s'"), -(8152, 0, "' '"), -(8153, 0, "'i'"), -(8154, 0, "'m'"), -(8155, 0, "'p'"), -(8156, 0, "'l'"), -(8157, 0, "'e'"), -(8158, 0, "'m'"), -(8159, 0, "'e'"), -(8160, 0, "'n'"), -(8161, 0, "'t'"), -(8162, 0, "'s'"), -(8163, 0, "' '"), -(8164, 0, "'a'"), -(8165, 0, "' '"), -(8166, 0, "'d'"), -(8167, 0, "'i'"), -(8168, 0, "'f'"), -(8169, 0, "'f'"), -(8170, 0, "'e'"), -(8171, 0, "'r'"), -(8172, 0, "'e'"), -(8173, 0, "'n'"), -(8174, 0, "'t'"), -(8152, 0, "' '"), -(8153, 0, "'a'"), -(8154, 0, "'c'"), -(8155, 0, "'t'"), -(8156, 0, "'u'"), -(8157, 0, "'a'"), -(8158, 0, "'l'"), -(8159, 0, "'l'"), -(8160, 0, "'y'"), -(8161, 0, "' '"), -(8162, 0, "'d'"), -(8163, 0, "'o'"), -(8164, 0, "'e'"), -(8165, 0, "'s'"), -(8166, 0, "' '"), -(8167, 0, "'a'"), -(8168, 0, "' '"), -(8169, 0, "'f'"), -(8170, 0, "'e'"), -(8171, 0, "'w'"), -(8172, 0, "' '"), -(8173, 0, "'t'"), -(8174, 0, "'h'"), -(8175, 0, "'i'"), -(8176, 0, "'n'"), -(8177, 0, "'g'"), -(8178, 0, "'s'"), -(8179, 0, "' '"), -(8180, 0, "'d'"), -(8181, 0, "'i'"), -(8182, 0, "'f'"), -(8183, 0, "'f'"), -(8184, 0, "'e'"), -(8185, 0, "'r'"), -(8186, 0, "'e'"), -(8187, 0, "'n'"), -(8188, 0, "'t'"), -(8189, 0, "'l'"), -(8190, 0, "'y'"), -(8191, 0, "'.'"), -(8192, 0, "' '"), -(8193, 0, "'I'"), -(8194, 0, "'t'"), -(8207, 11, "'l'"), -(8208, 0, "'g'"), -(8208, 1, "''"), -(8207, 1, "''"), -(8207, 0, "'a'"), -(8208, 0, "' '"), -(8209, 0, "'d'"), -(8210, 0, "'i'"), -(8211, 0, "'f'"), -(8212, 0, "'f'"), -(8213, 0, "'e'"), -(8214, 0, "'r'"), -(8215, 0, "'e'"), -(8216, 0, "'n'"), -(8217, 0, "'t'"), -(8218, 0, "' '"), -(8219, 0, "'C'"), -(8220, 0, "'R'"), -(8221, 0, "'D'"), -(8222, 0, "'T'"), -(8223, 0, "' '"), -(8224, 0, "'('"), -(8225, 0, "'s'"), -(8226, 0, "'o'"), -(8227, 0, "' '"), -(8228, 0, "'d'"), -(8228, 1, "''"), -(8228, 0, "'i'"), -(8229, 0, "'t'"), -(8230, 0, "' '"), -(8231, 0, "'h'"), -(8232, 0, "'a'"), -(8233, 0, "'s'"), -(8234, 0, "' '"), -(8235, 0, "'d'"), -(8236, 0, "'i'"), -(8237, 0, "'f'"), -(8238, 0, "'f'"), -(8239, 0, "'e'"), -(8240, 0, "'r'"), -(8241, 0, "'e'"), -(8242, 0, "'n'"), -(8243, 0, "'t'"), -(8244, 0, "' '"), -(8245, 0, "'s'"), -(8246, 0, "'e'"), -(8247, 0, "'m'"), -(8248, 0, "'a'"), -(8249, 0, "'n'"), -(8250, 0, "'t'"), -(8251, 0, "'i'"), -(8252, 0, "'c'"), -(8253, 0, "'s'"), -(8254, 0, "')'"), -(8254, 0, "' '"), -(8255, 0, "'t'"), -(8256, 0, "'h'"), -(8257, 0, "'a'"), -(8258, 0, "'n'"), -(8259, 0, "' '"), -(8260, 0, "'R'"), -(8261, 0, "'G'"), -(8262, 0, "'A'"), -(8244, 0, "','"), -(8245, 0, "' '"), -(8246, 0, "'b'"), -(8246, 1, "''"), -(8246, 0, "'s'"), -(8247, 0, "'l'"), -(8248, 0, "'i'"), -(8249, 0, "'g'"), -(8250, 0, "'h'"), -(8251, 0, "'t'"), -(8244, 8, "''"), -(8234, 0, "' '"), -(8235, 0, "'s'"), -(8236, 0, "'l'"), -(8237, 0, "'i'"), -(8238, 0, "'g'"), -(8239, 0, "'h'"), -(8240, 0, "'t'"), -(8241, 0, "'l'"), -(8242, 0, "'y'"), -(8273, 0, "'.'"), -(8274, 0, "' '"), -(8275, 0, "'B'"), -(8276, 0, "'u'"), -(8277, 0, "'t'"), -(8275, 3, "''"), -(8275, 0, "'A'"), -(8276, 0, "'n'"), -(8277, 0, "'d'"), -(8278, 0, "' '"), -(8279, 0, "'i'"), -(8280, 0, "'t'"), -(8281, 0, "' '"), -(8282, 0, "'u'"), -(8283, 0, "'s'"), -(8284, 0, "'e'"), -(8285, 0, "'s'"), -(8286, 0, "' '"), -(8287, 0, "'a'"), -(8288, 0, "' '"), -(8289, 0, "'l'"), -(8290, 0, "'i'"), -(8291, 0, "'n'"), -(8292, 0, "'k'"), -(8293, 0, "'e'"), -(8294, 0, "'d'"), -(8295, 0, "' '"), -(8296, 0, "'l'"), -(8297, 0, "'i'"), -(8298, 0, "'s'"), -(8299, 0, "'t'"), -(8300, 0, "','"), -(8301, 0, "' '"), -(8301, 1, "''"), -(8300, 1, "''"), -(8300, 0, "' '"), -(8301, 0, "'i'"), -(8302, 0, "'n'"), -(8303, 0, "'s'"), -(8304, 0, "'t'"), -(8305, 0, "'e'"), -(8306, 0, "'a'"), -(8307, 0, "'d'"), -(8308, 0, "' '"), -(8309, 0, "'o'"), -(8310, 0, "'f'"), -(8311, 0, "' '"), -(8312, 0, "'a'"), -(8313, 0, "'n'"), -(8314, 0, "' '"), -(8315, 0, "'a'"), -(8316, 0, "'r'"), -(8317, 0, "'r'"), -(8318, 0, "'a'"), -(8319, 0, "'y'"), -(8320, 0, "','"), -(8321, 0, "' '"), -(8322, 0, "'b'"), -(8323, 0, "'u'"), -(8324, 0, "'t'"), -(8325, 0, "' '"), -(8326, 0, "'w'"), -(8327, 0, "'e'"), -(8328, 0, "'''"), -(8329, 0, "'r'"), -(8330, 0, "'e'"), -(8331, 0, "' '"), -(8332, 0, "'j'"), -(8333, 0, "'u'"), -(8334, 0, "'m'"), -(8335, 0, "'p'"), -(8336, 0, "'i'"), -(8337, 0, "'n'"), -(8338, 0, "'g'"), -(8339, 0, "' '"), -(8340, 0, "'a'"), -(8341, 0, "'h'"), -(8342, 0, "'e'"), -(8343, 0, "'a'"), -(8344, 0, "'d'"), -(8345, 0, "'.'"), -(8149, 0, "'('"), -(8150, 0, "'A'"), -(8151, 0, "'c'"), -(8152, 0, "'t'"), -(8153, 0, "'u'"), -(8154, 0, "'a'"), -(8155, 0, "'l'"), -(8156, 0, "'l'"), -(8157, 0, "'y'"), -(8158, 0, "' '"), -(8162, 9, "''"), -(8346, 1, "''"), -(8346, 0, "'!'"), -(8347, 0, "')'"), -(8348, 0, "'n'"), -(8349, 0, "'n'"), -(7527, 0, "'Y'"), -(7528, 0, "'h'"), -(7529, 0, "'s'"), -(7529, 1, "''"), -(7528, 1, "''"), -(7528, 0, "'h'"), -(7529, 0, "'s'"), -(7530, 0, "' '"), -(7531, 0, "'d'"), -(7532, 0, "'o'"), -(7533, 0, "'e'"), -(7534, 0, "'s'"), -(7527, 8, "'Y'"), -(7528, 0, "'j'"), -(7529, 0, "'s'"), -(7530, 0, "' '"), -(7531, 0, "'d'"), -(7532, 0, "'o'"), -(7533, 0, "'e'"), -(7534, 0, "'s'"), -(7535, 0, "'n'"), -(7536, 0, "'''"), -(7537, 0, "'t'"), -(7538, 0, "' '"), -(7539, 0, "'n'"), -(7540, 0, "'e'"), -(7541, 0, "'e'"), -(7542, 0, "'d'"), -(7543, 0, "' '"), -(7544, 0, "'a'"), -(7545, 0, "' '"), -(7546, 0, "'w'"), -(7547, 0, "'h'"), -(7548, 0, "'o'"), -(7549, 0, "'l'"), -(7550, 0, "'e'"), -(7551, 0, "' '"), -(7552, 0, "'b'"), -(7553, 0, "'l'"), -(7554, 0, "'o'"), -(7555, 0, "'g'"), -(7556, 0, "' '"), -(7557, 0, "'p'"), -(7558, 0, "'o'"), -(7559, 0, "'s'"), -(7560, 0, "'t'"), -(7561, 0, "' '"), -(7562, 0, "'a'"), -(7563, 0, "'b'"), -(7564, 0, "'o'"), -(7565, 0, "'u'"), -(7566, 0, "'t'"), -(7567, 0, "' '"), -(7568, 0, "'h'"), -(7569, 0, "'o'"), -(7570, 0, "'w'"), -(7571, 0, "' '"), -(7572, 0, "'t'"), -(7573, 0, "'o'"), -(7574, 0, "' '"), -(7575, 0, "'m'"), -(7576, 0, "'a'"), -(7577, 0, "'k'"), -(7578, 0, "'e'"), -(7579, 0, "' '"), -(7580, 0, "'i'"), -(7581, 0, "'t'"), -(7582, 0, "' '"), -(7583, 0, "'f'"), -(7584, 0, "'a'"), -(7585, 0, "'s'"), -(7586, 0, "'t'"), -(7587, 0, "'e'"), -(7588, 0, "'r'"), -(7589, 0, "' '"), -(7590, 0, "'b'"), -(7591, 0, "'e'"), -(7592, 0, "'c'"), -(7593, 0, "'a'"), -(7594, 0, "'u'"), -(7595, 0, "'s'"), -(7596, 0, "'e'"), -(7597, 0, "' '"), -(7598, 0, "'i'"), -(7599, 0, "'t'"), -(7600, 0, "'s'"), -(7601, 0, "' '"), -(7602, 0, "'a'"), -(7603, 0, "'l'"), -(7604, 0, "'r'"), -(7605, 0, "'e'"), -(7606, 0, "'a'"), -(7607, 0, "'d'"), -(7608, 0, "'t'"), -(7609, 0, "' '"), -(7609, 1, "''"), -(7608, 1, "''"), -(7608, 0, "'y'"), -(7609, 0, "' '"), -(7610, 0, "'f'"), -(7611, 0, "'a'"), -(7612, 0, "'s'"), -(7613, 0, "'t'"), -(7614, 0, "'.'"), -(7615, 0, "' '"), -(7616, 0, "'I'"), -(7617, 0, "'t'"), -(7618, 0, "' '"), -(7619, 0, "'g'"), -(7620, 0, "'o'"), -(7621, 0, "'t'"), -(7622, 0, "' '"), -(7623, 0, "'t'"), -(7624, 0, "'h'"), -(7625, 0, "'e'"), -(7626, 0, "'r'"), -(7627, 0, "'e'"), -(7628, 0, "' '"), -(7629, 0, "'b'"), -(7630, 0, "'y'"), -(7631, 0, "' '"), -(7632, 0, "'u'"), -(7633, 0, "'s'"), -(7634, 0, "'i'"), -(7635, 0, "'n'"), -(7636, 0, "'g'"), -(7637, 9, "''"), -(7995, 0, "'j'"), -(7996, 0, "'u'"), -(7997, 0, "'s'"), -(7998, 0, "'t'"), -(7999, 0, "' '"), -(8302, 0, "' '"), -(8303, 0, "'a'"), -(8304, 0, "'l'"), -(8305, 0, "'s'"), -(8306, 0, "'o'"), -(8335, 50, "''"), -(8411, 0, "'T'"), -(8412, 0, "'h'"), -(8413, 0, "'e'"), -(8414, 0, "' '"), -(8415, 0, "'q'"), -(8416, 0, "'u'"), -(8417, 0, "'e'"), -(8418, 0, "'s'"), -(8419, 0, "'t'"), -(8420, 0, "'i'"), -(8421, 0, "'o'"), -(8422, 0, "'n'"), -(8423, 0, "' '"), -(8424, 0, "'i'"), -(8425, 0, "'s'"), -(8426, 0, "','"), -(8427, 0, "' '"), -(8428, 0, "'h'"), -(8429, 0, "'o'"), -(8430, 0, "'w'"), -(8431, 0, "' '"), -(8432, 0, "'d'"), -(8433, 0, "'o'"), -(8434, 0, "' '"), -(8435, 0, "'y'"), -(8436, 0, "'o'"), -(8437, 0, "'u'"), -(8438, 0, "' '"), -(8439, 0, "'i'"), -(8440, 0, "'n'"), -(8441, 0, "'s'"), -(8442, 0, "'e'"), -(8443, 0, "'r'"), -(8444, 0, "'t'"), -(8445, 0, "' '"), -(8446, 0, "'a'"), -(8447, 0, "' '"), -(8448, 0, "'n'"), -(8449, 0, "'e'"), -(8450, 0, "'w'"), -(8451, 0, "' '"), -(8452, 0, "'i'"), -(8453, 0, "'t'"), -(8454, 0, "'e'"), -(8455, 0, "'m'"), -(8456, 0, "' '"), -(8457, 0, "'i'"), -(8458, 0, "'n'"), -(8459, 0, "'t'"), -(8460, 0, "'o'"), -(8461, 0, "' '"), -(8462, 0, "'a'"), -(8463, 0, "' '"), -(8464, 0, "'l'"), -(8465, 0, "'i'"), -(8466, 0, "'s'"), -(8467, 0, "'t'"), -(8468, 0, "' '"), -(8469, 0, "'l'"), -(8470, 0, "'i'"), -(8471, 0, "'k'"), -(8472, 0, "'e'"), -(8473, 0, "' '"), -(8474, 0, "'t'"), -(8475, 0, "'h'"), -(8476, 0, "'i'"), -(8477, 0, "'s'"), -(8478, 0, "'?'"), -(8479, 0, "' '"), -(8480, 0, "'W'"), -(8481, 0, "'i'"), -(8482, 0, "'t'"), -(8483, 0, "'h'"), -(8484, 0, "' '"), -(8485, 0, "'a'"), -(8486, 0, "'u'"), -(8487, 0, "'t'"), -(8488, 0, "'o'"), -(8489, 0, "'m'"), -(8490, 0, "'e'"), -(8491, 0, "'r'"), -(8492, 0, "'g'"), -(8493, 0, "'e'"), -(8494, 0, "' '"), -(8495, 0, "'t'"), -(8496, 0, "'h'"), -(8497, 0, "'e'"), -(8498, 0, "' '"), -(8499, 0, "'a'"), -(8500, 0, "'n'"), -(8501, 0, "'s'"), -(8502, 0, "'e'"), -(8502, 1, "''"), -(8502, 0, "'w'"), -(8503, 0, "'e'"), -(8504, 0, "'r'"), -(8505, 0, "' '"), -(8506, 0, "'i'"), -(8507, 0, "'s'"), -(8508, 0, "':'"), -(8509, 0, "'n'"), -(8510, 0, "'n'"), -(8511, 0, "'-'"), -(8512, 0, "' '"), -(8513, 0, "'F'"), -(8514, 0, "'i'"), -(8515, 0, "'n'"), -(8516, 0, "'d'"), -(8517, 0, "' '"), -(8518, 0, "'t'"), -(8511, 1, "''"), -(8511, 0, "'1'"), -(8512, 0, "'.'"), -(8520, 0, "'h'"), -(8521, 0, "'e'"), -(8522, 0, "' '"), -(8523, 0, "'p'"), -(8524, 0, "'a'"), -(8525, 0, "'r'"), -(8526, 0, "'e'"), -(8527, 0, "'n'"), -(8528, 0, "'t'"), -(8529, 0, "' '"), -(8530, 0, "'i'"), -(8531, 0, "'t'"), -(8532, 0, "'e'"), -(8533, 0, "'m'"), -(8534, 0, "'n'"), -(8535, 0, "'2'"), -(8536, 0, "'.'"), -(8537, 0, "' '"), -(8538, 0, "'A'"), -(8539, 0, "'d'"), -(8540, 0, "'d'"), -(8538, 3, "'F'"), -(8539, 0, "'i'"), -(8540, 0, "'n'"), -(8541, 0, "'d'"), -(8538, 4, "'A'"), -(8539, 0, "'d'"), -(8540, 0, "'d'"), -(8541, 0, "' '"), -(8542, 0, "'t'"), -(8543, 0, "'h'"), -(8544, 0, "'e'"), -(8545, 0, "' '"), -(8546, 0, "'n'"), -(8547, 0, "'e'"), -(8548, 0, "'w'"), -(8549, 0, "' '"), -(8550, 0, "'i'"), -(8551, 0, "'t'"), -(8552, 0, "'e'"), -(8553, 0, "'m'"), -(8554, 0, "' '"), -(8555, 0, "'t'"), -(8556, 0, "'o'"), -(8557, 0, "' '"), -(8558, 0, "'t'"), -(8559, 0, "'h'"), -(8560, 0, "'e'"), -(8561, 0, "' '"), -(8562, 0, "'p'"), -(8563, 0, "'a'"), -(8564, 0, "'r'"), -(8565, 0, "'e'"), -(8566, 0, "'n'"), -(8567, 0, "'t'"), -(8568, 0, "'s'"), -(8569, 0, "'''"), -(8570, 0, "' '"), -(8571, 0, "'c'"), -(8572, 0, "'h'"), -(8573, 0, "'i'"), -(8574, 0, "'l'"), -(8575, 0, "'d'"), -(8576, 0, "'r'"), -(8577, 0, "'e'"), -(8578, 0, "'n'"), -(8579, 0, "' '"), -(8580, 0, "'i'"), -(8581, 0, "'n'"), -(8582, 0, "' '"), -(8583, 0, "'t'"), -(8584, 0, "'h'"), -(8585, 0, "'e'"), -(8586, 0, "' '"), -(8587, 0, "'a'"), -(8588, 0, "'p'"), -(8589, 0, "'p'"), -(8590, 0, "'r'"), -(8591, 0, "'o'"), -(8592, 0, "'p'"), -(8587, 6, "'r'"), -(8588, 0, "'i'"), -(8589, 0, "'g'"), -(8590, 0, "'h'"), -(8591, 0, "'t'"), -(8592, 0, "' '"), -(8593, 0, "'s'"), -(8594, 0, "'p'"), -(8595, 0, "'o'"), -(8596, 0, "'t'"), -(8597, 0, "'n'"), -(8598, 0, "'n'"), -(8599, 0, "'W'"), -(8600, 0, "'t'"), -(8600, 1, "''"), -(8600, 0, "'i'"), -(8601, 0, "'t'"), -(8602, 0, "'h'"), -(8603, 0, "' '"), -(8604, 0, "'t'"), -(8605, 0, "'h'"), -(8606, 0, "'e'"), -(8607, 0, "' '"), -(8608, 0, "'l'"), -(8609, 0, "'i'"), -(8610, 0, "'s'"), -(8611, 0, "'t'"), -(8612, 0, "' '"), -(8613, 0, "'a'"), -(8614, 0, "'p'"), -(8615, 0, "'p'"), -(8616, 0, "'r'"), -(8617, 0, "'o'"), -(8618, 0, "'a'"), -(8619, 0, "'c'"), -(8620, 0, "'h'"), -(8253, 0, "'n'"), -(8254, 0, "'n'"), -(8255, 0, "'S'"), -(8256, 0, "'o'"), -(8257, 0, "','"), -(8258, 0, "' '"), -(8259, 0, "'p'"), -(8260, 0, "'u'"), -(8261, 0, "'t'"), -(8262, 0, "' '"), -(8263, 0, "'t'"), -(8264, 0, "'h'"), -(8265, 0, "'e'"), -(8255, 11, "''"), -(8254, 1, "''"), -(8253, 1, "''"), -(8621, 0, "' '"), -(8622, 0, "'i'"), -(8623, 0, "'t'"), -(8624, 0, "'s'"), -(8625, 0, "':'"), -(8626, 0, "'n'"), -(8627, 0, "'n'"), -(8628, 0, "'1'"), -(8629, 0, "'.'"), -(8630, 0, "' '"), -(8631, 0, "'F'"), -(8632, 0, "'i'"), -(8633, 0, "'n'"), -(8634, 0, "'d'"), -(8635, 0, "' '"), -(8636, 0, "'t'"), -(8637, 0, "'h'"), -(8638, 0, "'e'"), -(8639, 0, "' '"), -(8640, 0, "'p'"), -(8641, 0, "'a'"), -(8642, 0, "'r'"), -(8643, 0, "'e'"), -(8644, 0, "'n'"), -(8645, 0, "'t'"), -(8646, 0, "' '"), -(8647, 0, "'i'"), -(8648, 0, "'t'"), -(8649, 0, "'e'"), -(8650, 0, "'m'"), -(8651, 0, "'n'"), -(8652, 0, "'2'"), -(8653, 0, "'.'"), -(8654, 0, "' '"), -(8655, 0, "'S'"), -(8656, 0, "'c'"), -(8657, 0, "'a'"), -(8658, 0, "'n'"), -(8659, 0, "' '"), -(8655, 5, "'S'"), -(8656, 0, "'k'"), -(8657, 0, "'i'"), -(8658, 0, "'p'"), -(8659, 0, "' '"), -(8660, 0, "'o'"), -(8661, 0, "'v'"), -(8662, 0, "'e'"), -(8663, 0, "'r'"), -(8664, 0, "' '"), -(8665, 0, "'i'"), -(8666, 0, "'t'"), -(8667, 0, "'e'"), -(8668, 0, "'m'"), -(8669, 0, "'s'"), -(8655, 0, "'I'"), -(8656, 0, "'t'"), -(8657, 0, "'e'"), -(8658, 0, "'r'"), -(8659, 0, "'a'"), -(8660, 0, "'t'"), -(8661, 0, "'e'"), -(8662, 0, "' '"), -(8663, 0, "'t'"), -(8664, 0, "'h'"), -(8665, 0, "'r'"), -(8666, 0, "'o'"), -(8667, 0, "'u'"), -(8668, 0, "'g'"), -(8669, 0, "'h'"), -(8670, 0, "' '"), -(8671, 0, "'t'"), -(8672, 0, "'h'"), -(8673, 0, "'e'"), -(8674, 0, "' '"), -(8675, 0, "'l'"), -(8676, 0, "'i'"), -(8677, 0, "'s'"), -(8678, 0, "'t'"), -(8679, 0, "','"), -(8680, 0, "' '"), -(8681, 1, "''"), -(8681, 0, "'s'"), -(8685, 0, "'p'"), -(8686, 0, "'i'"), -(8687, 0, "'n'"), -(8688, 0, "'g'"), -(8700, 0, "' '"), -(8701, 0, "'w'"), -(8702, 0, "'h'"), -(8703, 0, "'i'"), -(8704, 0, "'h'"), -(8705, 0, "' '"), -(8705, 1, "''"), -(8704, 1, "''"), -(8704, 0, "'c'"), -(8705, 0, "'h'"), -(8706, 0, "' '"), -(8707, 0, "'s'"), -(8708, 0, "'h'"), -(8709, 0, "'o'"), -(8710, 0, "'u'"), -(8711, 0, "'l'"), -(8712, 0, "'d'"), -(8713, 0, "' '"), -(8714, 0, "'o'"), -(8715, 0, "'m'"), -(8715, 1, "''"), -(8714, 1, "''"), -(8714, 0, "'c'"), -(8715, 0, "'o'"), -(8716, 0, "'m'"), -(8717, 0, "'e'"), -(8718, 0, "' '"), -(8719, 0, "'b'"), -(8720, 0, "'e'"), -(8721, 0, "'f'"), -(8722, 0, "'o'"), -(8723, 0, "'r'"), -(8724, 0, "'e'"), -(8725, 0, "' '"), -(8726, 0, "'t'"), -(8726, 1, "''"), -(8726, 0, "'t'"), -(8727, 0, "'h'"), -(8728, 0, "'e'"), -(8729, 0, "' '"), -(8730, 0, "'n'"), -(8731, 0, "'e'"), -(8732, 0, "'w'"), -(8733, 0, "' '"), -(8734, 0, "'i'"), -(8735, 0, "'t'"), -(8736, 0, "'e'"), -(8737, 0, "'m'"), -(8738, 0, "'n'"), -(8739, 0, "'3'"), -(8740, 0, "'.'"), -(8741, 0, "' '"), -(8742, 0, "'I'"), -(8743, 0, "'n'"), -(8744, 0, "'s'"), -(8745, 0, "'e'"), -(8746, 0, "'r'"), -(8747, 0, "'t'"), -(8538, 3, "'I'"), -(8539, 0, "'n'"), -(8540, 0, "'s'"), -(8541, 0, "'e'"), -(8542, 0, "'r'"), -(8543, 0, "'t'"), -(8557, 3, "' '"), -(8558, 0, "'i'"), -(8559, 0, "'n'"), -(8560, 0, "'t'"), -(8561, 0, "'o'"), -(8576, 8, "'l'"), -(8577, 0, "'i'"), -(8578, 0, "'s'"), -(8579, 0, "'t'"), -(8580, 0, "' '"), -(8581, 0, "'o'"), -(8582, 0, "'f'"), -(8583, 0, "' '"), -(8584, 0, "'c'"), -(8585, 0, "'h'"), -(8586, 0, "'i'"), -(8587, 0, "'l'"), -(8588, 0, "'d'"), -(8589, 0, "'r'"), -(8590, 0, "'e'"), -(8591, 0, "'n'"), -(8761, 0, "' '"), -(8762, 0, "'i'"), -(8763, 0, "'t'"), -(8764, 0, "' '"), -(8765, 0, "'t'"), -(8766, 0, "'h'"), -(8767, 0, "'e'"), -(8768, 0, "'r'"), -(8769, 0, "'e'"), -(8770, 0, "'n'"), -(8771, 0, "'n'"), -(8772, 0, "'B'"), -(8773, 0, "'a'"), -(8774, 0, "'s'"), -(8775, 0, "'i'"), -(8776, 0, "'c'"), -(8777, 0, "'a'"), -(8778, 0, "'l'"), -(8779, 0, "'l'"), -(8780, 0, "'y'"), -(8781, 0, "' '"), -(8782, 0, "'w'"), -(8783, 0, "'e'"), -(8784, 0, "'''"), -(8785, 0, "'r'"), -(8786, 0, "'e'"), -(8787, 0, "' '"), -(8788, 0, "'d'"), -(8789, 0, "'o'"), -(8790, 0, "'i'"), -(8791, 0, "'n'"), -(8792, 0, "'g'"), -(8793, 0, "' '"), -(8794, 0, "'a'"), -(8795, 0, "'n'"), -(8796, 0, "' '"), -(8797, 0, "'i'"), -(8798, 0, "'n'"), -(8799, 0, "'s'"), -(8800, 0, "'e'"), -(8801, 0, "'r'"), -(8802, 0, "'t'"), -(8803, 0, "'i'"), -(8804, 0, "'o'"), -(8805, 0, "'n'"), -(8806, 0, "' '"), -(8807, 0, "'s'"), -(8808, 0, "'o'"), -(8809, 0, "'r'"), -(8810, 0, "'t'"), -(8811, 0, "'.'"), -(8788, 5, "'i'"), -(8789, 0, "'m'"), -(8790, 0, "'p'"), -(8791, 0, "'l'"), -(8792, 0, "'e'"), -(8793, 0, "'m'"), -(8794, 0, "'e'"), -(8795, 0, "'n'"), -(8796, 0, "'t'"), -(8797, 0, "'i'"), -(8798, 0, "'n'"), -(8799, 0, "'g'"), -(8801, 2, "'a'"), -(8802, 0, "' '"), -(8803, 0, "'f'"), -(8804, 0, "'a'"), -(8805, 0, "'n'"), -(8806, 0, "'c'"), -(8807, 0, "'y'"), -(8824, 0, "'n'"), -(8825, 0, "'n'"), -(8826, 0, "'n'"), -(8827, 0, "'n'"), -(6841, 55, "''"), -(6840, 1, "''"), -(8731, 0, "' '"), -(8732, 0, "'g'"), -(8733, 0, "'o'"), -(8734, 0, "'i'"), -(8735, 0, "'n'"), -(8736, 0, "'g'"), -(8737, 0, "' '"), -(8738, 0, "'t'"), -(8739, 0, "'o'"), -(8740, 0, "' '"), -(8741, 0, "'r'"), -(8742, 0, "'e'"), -(8743, 0, "'p'"), -(8744, 0, "'l'"), -(8745, 0, "'a'"), -(8746, 0, "'c'"), -(8747, 0, "'e'"), -(8748, 0, "' '"), -(8749, 0, "'A'"), -(8750, 0, "'u'"), -(8751, 0, "'t'"), -(8752, 0, "'o'"), -(8753, 0, "'m'"), -(8754, 0, "'e'"), -(8755, 0, "'r'"), -(8756, 0, "'g'"), -(8757, 0, "'e'"), -(8758, 0, "'''"), -(8759, 0, "'s'"), -(8760, 0, "' '"), -(8761, 0, "'t'"), -(8762, 0, "'r'"), -(8763, 0, "'e'"), -(8764, 0, "'e'"), -(8777, 1, "''"), -(8776, 1, "''"), -(8775, 1, "''"), -(8775, 0, "'a'"), -(8776, 0, "'t'"), -(8777, 0, "'i'"), -(8778, 0, "'o'"), -(8779, 0, "'n'"), -(8780, 0, "' '"), -(8781, 0, "'w'"), -(8782, 0, "'i'"), -(8783, 0, "'t'"), -(8784, 0, "'h'"), -(8554, 0, "'n'"), -(8555, 0, "'3'"), -(8556, 0, "'.'"), -(8557, 0, "'W'"), -(8557, 1, "''"), -(8557, 0, "' '"), -(8558, 0, "'W'"), -(8559, 0, "'a'"), -(8560, 0, "'l'"), -(8561, 0, "'k'"), -(8562, 0, "' '"), -(8563, 0, "'u'"), -(8564, 0, "'p'"), -(8565, 0, "' '"), -(8566, 0, "'t'"), -(8567, 0, "'h'"), -(8568, 0, "'e'"), -(8569, 0, "' '"), -(8570, 0, "'t'"), -(8571, 0, "'r'"), -(8572, 0, "'e'"), -(8573, 0, "'e'"), -(8574, 0, "' '"), -(8575, 0, "'t'"), -(8576, 0, "'o'"), -(8577, 0, "' '"), -(8578, 0, "'f'"), -(8579, 0, "'i'"), -(8580, 0, "'g'"), -(8581, 0, "'u'"), -(8582, 0, "'r'"), -(8583, 0, "'e'"), -(8584, 0, "' '"), -(8585, 0, "'o'"), -(8586, 0, "'u'"), -(8587, 0, "'t'"), -(8588, 0, "' '"), -(8589, 0, "'t'"), -(8590, 0, "'h'"), -(8591, 0, "'e'"), -(8592, 0, "' '"), -(8593, 0, "'i'"), -(8594, 0, "'n'"), -(8593, 2, "'p'"), -(8594, 0, "'o'"), -(8595, 0, "'s'"), -(8596, 0, "'i'"), -(8597, 0, "'t'"), -(8598, 0, "'i'"), -(8599, 0, "'o'"), -(8600, 0, "'n'"), -(8601, 0, "'a'"), -(8602, 0, "'l'"), -(8603, 0, "' '"), -(8604, 0, "'i'"), -(8605, 0, "'n'"), -(8606, 0, "'s'"), -(8607, 0, "'e'"), -(8608, 0, "'r'"), -(8609, 0, "'t'"), -(8610, 0, "' '"), -(8611, 0, "'l'"), -(8612, 0, "'o'"), -(8613, 0, "'c'"), -(8614, 0, "'a'"), -(8615, 0, "'t'"), -(8616, 0, "'i'"), -(8617, 0, "'o'"), -(8618, 0, "'n'"), -(8555, 64, "''"), -(8554, 1, "''"), -(8554, 0, "'n'"), -(8555, 0, "'3. Walk up the tree to figure out the positional insert location'"), -(8589, 30, "'w'"), -(8590, 0, "'h'"), -(8591, 0, "'e'"), -(8592, 0, "'r'"), -(8593, 0, "'e'"), -(8594, 0, "' '"), -(8595, 0, "'w'"), -(8596, 0, "'e'"), -(8597, 0, "'''"), -(8598, 0, "'r'"), -(8599, 0, "'e'"), -(8600, 0, "' '"), -(8601, 0, "'a'"), -(8602, 0, "'c'"), -(8603, 0, "'t'"), -(8604, 0, "'u'"), -(8605, 0, "'a'"), -(8606, 0, "'l'"), -(8607, 0, "'l'"), -(8608, 0, "'y'"), -(8609, 0, "' '"), -(8610, 0, "'i'"), -(8611, 0, "'n'"), -(8612, 0, "'s'"), -(8613, 0, "'e'"), -(8614, 0, "'r'"), -(8615, 0, "'t'"), -(8616, 0, "'i'"), -(8617, 0, "'n'"), -(8618, 0, "'g'"), -(8589, 30, "'t'"), -(8590, 0, "'h'"), -(8591, 0, "'e'"), -(8592, 0, "' '"), -(8593, 0, "'i'"), -(8594, 0, "'n'"), -(8595, 0, "'d'"), -(8596, 0, "'e'"), -(8597, 0, "'x'"), -(8598, 0, "' '"), -(8599, 0, "'w'"), -(8600, 0, "'h'"), -(8601, 0, "'e'"), -(8602, 0, "'r'"), -(8603, 0, "'e'"), -(8604, 0, "' '"), -(8605, 0, "'w'"), -(8606, 0, "'e'"), -(8607, 0, "'''"), -(8608, 0, "'r'"), -(8609, 0, "'e'"), -(8610, 0, "' '"), -(8611, 0, "'a'"), -(8612, 0, "'c'"), -(8613, 0, "'t'"), -(8614, 0, "'u'"), -(8615, 0, "'a'"), -(8616, 0, "'l'"), -(8617, 0, "'l'"), -(8618, 0, "'y'"), -(8619, 0, "' '"), -(8620, 0, "'i'"), -(8621, 0, "'n'"), -(8622, 0, "'s'"), -(8623, 0, "'e'"), -(8624, 0, "'r'"), -(8625, 0, "'t'"), -(8626, 0, "'i'"), -(8627, 0, "'n'"), -(8628, 0, "'g'"), -(8555, 74, "''"), -(8554, 1, "''"), -(8695, 0, "' '"), -(8696, 0, "'('"), -(8696, 1, "''"), -(8695, 1, "''"), -(8810, 0, "'n'"), -(8811, 0, "'T'"), -(8812, 0, "'h'"), -(8813, 0, "'i'"), -(8814, 0, "'s'"), -(8815, 0, "' '"), -(8816, 0, "'c'"), -(8817, 0, "'o'"), -(8818, 0, "'d'"), -(8819, 0, "'e'"), -(8820, 0, "' '"), -(8821, 0, "'s'"), -(8822, 0, "'o'"), -(8823, 0, "'u'"), -(8824, 0, "'n'"), -(8825, 0, "'d'"), -(8826, 0, "'s'"), -(8827, 0, "' '"), -(8828, 0, "'c'"), -(8829, 0, "'o'"), -(8830, 0, "'m'"), -(8831, 0, "'p'"), -(8832, 0, "'l'"), -(8833, 0, "'e'"), -(8834, 0, "'x'"), -(8835, 0, "','"), -(8836, 0, "' '"), -(8837, 0, "'b'"), -(8838, 0, "'u'"), -(8839, 0, "'t'"), -(8840, 0, "' '"), -(8841, 0, "'i'"), -(8842, 0, "'t'"), -(8843, 0, "'s'"), -(8841, 3, "'i'"), -(8842, 0, "'t'"), -(8843, 0, "' '"), -(8844, 0, "'e'"), -(8845, 0, "'n'"), -(8846, 0, "'d'"), -(8847, 0, "'s'"), -(8848, 0, "' '"), -(8849, 0, "'u'"), -(8850, 0, "'p'"), -(8851, 0, "' '"), -(8852, 0, "'b'"), -(8853, 0, "'e'"), -(8854, 0, "'i'"), -(8855, 0, "'n'"), -(8856, 0, "'g'"), -(8857, 0, "' '"), -(8858, 0, "'a'"), -(8859, 0, "'b'"), -(8860, 0, "'o'"), -(8861, 0, "'u'"), -(8862, 0, "'t'"), -(8863, 0, "' '"), -(8864, 0, "'2'"), -(8865, 0, "'0'"), -(8866, 0, "' '"), -(8867, 0, "'l'"), -(8868, 0, "'i'"), -(8869, 0, "'n'"), -(8870, 0, "'e'"), -(8871, 0, "'s'"), -(8872, 0, "' '"), -(8873, 0, "'o'"), -(8874, 0, "'f'"), -(8875, 0, "' '"), -(8876, 0, "'c'"), -(8877, 0, "'o'"), -(8878, 0, "'d'"), -(8879, 0, "'e'"), -(8880, 0, "','"), -(8881, 0, "' '"), -(8882, 0, "'r'"), -(8883, 0, "'i'"), -(8883, 1, "''"), -(8882, 1, "''"), -(8882, 0, "'w'"), -(8883, 0, "'r'"), -(8884, 0, "'i'"), -(8885, 0, "'t'"), -(8886, 0, "'t'"), -(8887, 0, "'e'"), -(8888, 0, "'n'"), -(8889, 0, "' '"), -(8890, 0, "'u'"), -(8891, 0, "'s'"), -(8892, 0, "'i'"), -(8893, 0, "'n'"), -(8894, 0, "'g'"), -(8895, 0, "' '"), -(8890, 6, "'i'"), -(8891, 0, "'n'"), -(8892, 0, "' '"), -(8893, 0, "'l'"), -(8894, 0, "'o'"), -(8895, 0, "'n'"), -(8896, 0, "'g'"), -(8897, 0, "' '"), -(8898, 0, "'f'"), -(8899, 0, "'o'"), -(8900, 0, "'r'"), -(8901, 0, "'m'"), -(8882, 0, "'['"), -(8903, 0, "']'"), -(8903, 1, "''"), -(8903, 0, "' '"), -(8904, 0, "'h'"), -(8905, 0, "'e'"), -(8906, 0, "'r'"), -(8907, 0, "'e'"), -(8908, 0, "']'"), -(8909, 0, "'('"), -(8910, 0, "'https://github.com/josephg/reference-crdts/blob/fed747255df9d457e11f36575de555b39f07e909/crdts.ts#L401-L459'"), -(9017, 0, "')'"), -(9018, 0, "'.'"), -(9019, 0, "' '"), -(9020, 0, "'T'"), -(9021, 0, "'h'"), -(9022, 0, "'i'"), -(9023, 0, "'s'"), -(9024, 0, "' '"), -(9025, 0, "'c'"), -(9026, 0, "'o'"), -(9027, 0, "'d'"), -(9028, 0, "'e'"), -(9020, 9, "''"), -(8811, 209, "'This code sounds complex, but it ends up being about 20 lines of code, [written in long form here](https://github.com/josephg/reference-crdts/blob/fed747255df9d457e11f36575de555b39f07e909/crdts.ts#L401-L459).'"), -(8731, 9, "''"), -(8726, 5, "'I'"), -(8727, 0, "'''"), -(8728, 0, "'m'"), -(8729, 0, "' '"), -(8730, 0, "'p'"), -(8731, 0, "'r'"), -(8732, 0, "'o'"), -(8733, 0, "'m'"), -(8734, 0, "'p'"), -(8735, 0, "'o'"), -(8735, 1, "''"), -(8734, 1, "''"), -(8733, 1, "''"), -(8733, 0, "'p'"), -(8734, 0, "'o'"), -(8735, 0, "'s'"), -(8736, 0, "'i'"), -(8737, 0, "'i'"), -(8737, 1, "''"), -(8737, 0, "'n'"), -(8738, 0, "'g'"), -(8746, 1, "''"), -(8746, 0, "'i'"), -(8747, 0, "'n'"), -(8748, 0, "'g'"), -(8750, 1, "''"), -(8750, 0, "'a'"), -(8821, 23, "''"), -(8817, 4, "''"), -(8812, 5, "'Y'"), -(8813, 0, "'o'"), -(8814, 0, "'u'"), -(8815, 0, "' '"), -(8816, 0, "'c'"), -(8817, 0, "'a'"), -(8818, 0, "'n'"), -(8819, 0, "' '"), -(8820, 0, "'w'"), -(8821, 0, "'r'"), -(8822, 0, "'i'"), -(8823, 0, "'t'"), -(8824, 0, "'e'"), -(8825, 0, "' '"), -(8826, 0, "'t'"), -(8827, 0, "'h'"), -(8828, 0, "'e'"), -(8829, 0, "' '"), -(8830, 0, "'w'"), -(8831, 0, "'h'"), -(8832, 0, "'o'"), -(8833, 0, "'l'"), -(8834, 0, "'e'"), -(8835, 0, "' '"), -(8836, 0, "'a'"), -(8837, 0, "'l'"), -(8838, 0, "'g'"), -(8839, 0, "'o'"), -(8840, 0, "'r'"), -(8841, 0, "'i'"), -(8842, 0, "'t'"), -(8843, 0, "'h'"), -(8844, 0, "'m'"), -(8836, 9, "'i'"), -(8837, 0, "'m'"), -(8838, 0, "'p'"), -(8839, 0, "'l'"), -(8840, 0, "'e'"), -(8841, 0, "'m'"), -(8842, 0, "'e'"), -(8843, 0, "'n'"), -(8844, 0, "'t'"), -(8845, 0, "'a'"), -(8846, 0, "'t'"), -(8847, 0, "'i'"), -(8848, 0, "'o'"), -(8849, 0, "'n'"), -(8850, 15, "' '"), -(8851, 0, "'i'"), -(8852, 0, "'n'"), -(8853, 0, "' '"), -(8836, 14, "'i'"), -(8837, 0, "'n'"), -(8838, 0, "'s'"), -(8839, 0, "'e'"), -(8840, 0, "'r'"), -(8841, 0, "'t'"), -(8842, 0, "'i'"), -(8843, 0, "'o'"), -(8844, 0, "'n'"), -(8844, 1, "''"), -(8843, 1, "''"), -(8842, 1, "''"), -(8842, 0, "' '"), -(8843, 0, "'f'"), -(8844, 0, "'u'"), -(8845, 0, "'n'"), -(8846, 0, "'c'"), -(8847, 0, "'t'"), -(8848, 0, "'i'"), -(8849, 0, "'o'"), -(8850, 0, "'n'"), -(8877, 1, "''"), -(8877, 0, "'.'"), -(8880, 25, "'O'"), -(8881, 0, "'r'"), -(8882, 0, "' '"), -(8883, 0, "'5'"), -(8884, 0, "'0'"), -(8885, 0, "' '"), -(8886, 0, "'l'"), -(8887, 0, "'i'"), -(8888, 0, "'n'"), -(8889, 0, "'e'"), -(8890, 0, "'s'"), -(8891, 0, "' '"), -(8891, 1, "''"), -(8891, 0, "' '"), -(8892, 0, "'i'"), -(8893, 0, "'f'"), -(8894, 0, "' '"), -(8895, 0, "'y'"), -(8896, 0, "'o'"), -(8897, 0, "'u'"), -(8898, 0, "' '"), -(8899, 0, "'w'"), -(8900, 0, "'a'"), -(8901, 0, "'n'"), -(8902, 0, "'t'"), -(8903, 0, "' '"), -(8904, 0, "'t'"), -(8905, 0, "'o'"), -(8906, 0, "' '"), -(8907, 0, "'b'"), -(8908, 0, "'e'"), -(8909, 0, "' '"), -(8910, 0, "'v'"), -(8904, 7, "'c'"), -(8905, 0, "'o'"), -(8906, 0, "'m'"), -(8892, 15, "''"), -(8891, 1, "''"), -(8891, 0, "' '"), -(8892, 0, "'i'"), -(8893, 0, "'f'"), -(8894, 0, "' '"), -(8895, 0, "'I'"), -(8896, 0, "' '"), -(8897, 0, "'f'"), -(8898, 0, "'e'"), -(8899, 0, "'e'"), -(8900, 0, "'l'"), -(8901, 0, "' '"), -(8902, 0, "'l'"), -(8903, 0, "'i'"), -(8904, 0, "'k'"), -(8905, 0, "'e'"), -(8906, 0, "' '"), -(8907, 0, "'i'"), -(8908, 0, "'t'"), -(8909, 0, "'.'"), -(8910, 0, "' '"), -(8911, 0, "'Y'"), -(8912, 0, "'o'"), -(8913, 0, "'u'"), -(8914, 0, "'''"), -(8915, 0, "'r'"), -(8916, 0, "'e'"), -(8917, 0, "' '"), -(8918, 0, "'n'"), -(8919, 0, "'o'"), -(8920, 0, "'t'"), -(8921, 0, "' '"), -(8922, 0, "'t'"), -(8923, 0, "'h'"), -(8924, 0, "'e'"), -(8925, 0, "' '"), -(8926, 0, "'b'"), -(8927, 0, "'o'"), -(8928, 0, "'s'"), -(8929, 0, "'s'"), -(8930, 0, "' '"), -(8931, 0, "'o'"), -(8932, 0, "'f'"), -(8933, 0, "' '"), -(8934, 0, "'m'"), -(8935, 0, "'e'"), -(8936, 0, "'.'"), -(8810, 0, "' '"), -(8811, 0, "'T'"), -(8812, 0, "'h'"), -(8813, 0, "'e'"), -(8814, 0, "' '"), -(8815, 0, "'s'"), -(8816, 0, "'e'"), -(8817, 0, "'m'"), -(8818, 0, "'a'"), -(8819, 0, "'n'"), -(8820, 0, "'t'"), -(8821, 0, "'i'"), -(8822, 0, "'c'"), -(8823, 0, "'s'"), -(8824, 0, "' '"), -(8825, 0, "'a'"), -(8826, 0, "'r'"), -(8827, 0, "'e'"), -(8828, 0, "' '"), -(8829, 0, "'t'"), -(8830, 0, "'h'"), -(8831, 0, "'e'"), -(8832, 0, "' '"), -(8833, 0, "'s'"), -(8834, 0, "'a'"), -(8835, 0, "'m'"), -(8836, 0, "'e'"), -(8837, 0, "','"), -(8838, 0, "' '"), -(8839, 0, "'t'"), -(8840, 0, "'h'"), -(8841, 0, "'e'"), -(8842, 0, "' '"), -(8843, 0, "'i'"), -(8844, 0, "'m'"), -(8845, 0, "'p'"), -(8846, 0, "'l'"), -(8847, 0, "'e'"), -(8848, 0, "'m'"), -(8849, 0, "'e'"), -(8850, 0, "'n'"), -(8851, 0, "'t'"), -(8852, 0, "'a'"), -(8853, 0, "'t'"), -(8854, 0, "'i'"), -(8855, 0, "'o'"), -(8856, 0, "'n'"), -(8857, 0, "' '"), -(8858, 0, "'i'"), -(8859, 0, "'s'"), -(8860, 0, "' '"), -(8861, 0, "'d'"), -(8862, 0, "'i'"), -(8863, 0, "'f'"), -(8864, 0, "'f'"), -(8865, 0, "'e'"), -(8866, 0, "'r'"), -(8867, 0, "'e'"), -(8868, 0, "'n'"), -(8869, 0, "'t'"), -(8870, 0, "'.'"), -(8810, 61, "''"), -(9050, 0, "'T'"), -(9051, 0, "'h'"), -(9052, 0, "'i'"), -(9053, 0, "'s'"), -(9054, 0, "' '"), -(9055, 0, "'i'"), -(9056, 0, "'m'"), -(9057, 0, "'p'"), -(9058, 0, "'l'"), -(9059, 0, "'e'"), -(9060, 0, "'m'"), -(9055, 6, "'i'"), -(9056, 0, "'s'"), -(9057, 0, "' '"), -(9058, 0, "'s'"), -(9059, 0, "'e'"), -(9060, 0, "'m'"), -(9061, 0, "'a'"), -(9062, 0, "'n'"), -(9063, 0, "'t'"), -(9064, 0, "'i'"), -(9065, 0, "'c'"), -(9066, 0, "'a'"), -(9067, 0, "'l'"), -(9068, 0, "'l'"), -(9069, 0, "'y'"), -(9070, 0, "' '"), -(9071, 0, "'t'"), -(9072, 0, "'h'"), -(9073, 0, "'e'"), -(9074, 0, "' '"), -(9075, 0, "'s'"), -(9076, 0, "'a'"), -(9077, 0, "'m'"), -(9078, 0, "'e'"), -(9058, 0, "'*'"), -(9071, 0, "'*'"), -(9048, 0, "'n'"), -(9049, 0, "'n'"), -(9050, 0, "'T'"), -(9051, 0, "'h'"), -(9052, 0, "'e'"), -(9053, 0, "' '"), -(9054, 0, "'b'"), -(9055, 0, "'e'"), -(9056, 0, "'a'"), -(9057, 0, "'u'"), -(9058, 0, "'t'"), -(9059, 0, "'i'"), -(9059, 1, "''"), -(9058, 1, "''"), -(9057, 1, "''"), -(9057, 0, "'u'"), -(9058, 0, "'t'"), -(9059, 0, "'i'"), -(9060, 0, "'f'"), -(9061, 0, "'u'"), -(9062, 0, "'l'"), -(9063, 0, "' '"), -(9064, 0, "'t'"), -(9065, 0, "'h'"), -(9066, 0, "'i'"), -(9067, 0, "'n'"), -(9068, 0, "'g'"), -(9050, 19, "'T'"), -(9051, 0, "'h'"), -(9052, 0, "'e'"), -(9053, 0, "'r'"), -(9054, 0, "'e'"), -(9055, 0, "'''"), -(9056, 0, "'s'"), -(9057, 0, "' '"), -(9058, 0, "'a'"), -(9059, 0, "' '"), -(9060, 0, "'f'"), -(9061, 0, "'e'"), -(9062, 0, "'w'"), -(9063, 0, "' '"), -(9064, 0, "'b'"), -(9065, 0, "'e'"), -(9066, 0, "'a'"), -(9067, 0, "'u'"), -(9068, 0, "'t'"), -(9069, 0, "'i'"), -(9070, 0, "'f'"), -(9071, 0, "'u'"), -(9072, 0, "'l'"), -(9073, 0, "' '"), -(9074, 0, "'t'"), -(9075, 0, "'h'"), -(9076, 0, "'i'"), -(9077, 0, "'n'"), -(9078, 0, "'g'"), -(9079, 0, "'s'"), -(9080, 0, "' '"), -(9081, 0, "'a'"), -(9082, 0, "'b'"), -(9083, 0, "'o'"), -(9084, 0, "'u'"), -(9085, 0, "'t'"), -(9086, 0, "' '"), -(9087, 0, "'t'"), -(9088, 0, "'h'"), -(9089, 0, "'i'"), -(9090, 0, "'s'"), -(9091, 0, "' '"), -(9092, 0, "'a'"), -(9093, 0, "'p'"), -(9094, 0, "'p'"), -(9095, 0, "'r'"), -(9096, 0, "'o'"), -(9097, 0, "'a'"), -(9098, 0, "'c'"), -(9099, 0, "'h'"), -(9100, 0, "':'"), -(9101, 0, "'n'"), -(9102, 0, "'n'"), -(9103, 0, "'1'"), -(9104, 0, "'.'"), -(9105, 0, "' '"), -(9106, 0, "'Y'"), -(9107, 0, "'o'"), -(9108, 0, "'u'"), -(9109, 0, "' '"), -(9110, 0, "'c'"), -(9111, 0, "'a'"), -(9112, 0, "'n'"), -(9113, 0, "' '"), -(9114, 0, "'i'"), -(9115, 0, "'m'"), -(9116, 0, "'p'"), -(9117, 0, "'l'"), -(9118, 0, "'e'"), -(9119, 0, "'m'"), -(9120, 0, "'e'"), -(9121, 0, "'n'"), -(9122, 0, "'t'"), -(9123, 0, "' '"), -(9124, 0, "'C'"), -(9124, 1, "''"), -(9124, 0, "'Y'"), -(9125, 0, "'j'"), -(9126, 0, "'s'"), -(9127, 0, "','"), -(9128, 0, "' '"), -(9129, 0, "'A'"), -(9130, 0, "'u'"), -(9131, 0, "'t'"), -(9132, 0, "'o'"), -(9133, 0, "'m'"), -(9134, 0, "'e'"), -(9135, 0, "'r'"), -(9136, 0, "'g'"), -(9137, 0, "'e'"), -(9138, 0, "' '"), -(9139, 0, "'a'"), -(9140, 0, "'n'"), -(9141, 0, "'d'"), -(9142, 0, "' '"), -(9143, 0, "'S'"), -(9144, 0, "'y'"), -(9145, 0, "'n'"), -(9146, 0, "'c'"), -(9147, 0, "'9'"), -(9148, 0, "' '"), -(9149, 0, "'a'"), -(9150, 0, "'n'"), -(9138, 4, "''"), -(9138, 0, "','"), -(9148, 0, "'d'"), -(9149, 0, "' '"), -(9150, 0, "'o'"), -(9151, 0, "'t'"), -(9152, 0, "'h'"), -(9153, 0, "'e'"), -(9154, 0, "'r'"), -(9155, 0, "' '"), -(9156, 0, "'s'"), -(9157, 0, "'e'"), -(9158, 0, "'m'"), -(9159, 0, "'a'"), -(9160, 0, "'n'"), -(9161, 0, "'t'"), -(9162, 0, "'i'"), -(9163, 0, "'c'"), -(9164, 0, "'s'"), -(9165, 0, "' '"), -(9166, 0, "'i'"), -(9167, 0, "'n'"), -(9168, 0, "' '"), -(9169, 0, "'t'"), -(9170, 0, "'h'"), -(9171, 0, "'e'"), -(9172, 0, "' '"), -(9173, 0, "'s'"), -(9174, 0, "'a'"), -(9175, 0, "'m'"), -(9176, 0, "'e'"), -(9177, 0, "' '"), -(9178, 0, "'c'"), -(9179, 0, "'o'"), -(9180, 0, "'d'"), -(9181, 0, "'e'"), -(9182, 0, "'b'"), -(9183, 0, "'a'"), -(9184, 0, "'s'"), -(9185, 0, "'e'"), -(9186, 0, "'.'"), -(9187, 0, "' '"), -(9188, 0, "'T'"), -(9189, 0, "'h'"), -(9190, 0, "'a'"), -(9191, 0, "'t'"), -(9192, 0, "' '"), -(9193, 0, "'g'"), -(9194, 0, "'i'"), -(9195, 0, "'t'"), -(9196, 0, "'h'"), -(9197, 0, "'u'"), -(9198, 0, "'b'"), -(9199, 0, "' '"), -(9200, 0, "'p'"), -(9201, 0, "'r'"), -(9202, 0, "'o'"), -(9203, 0, "'j'"), -(9204, 0, "'e'"), -(9205, 0, "'c'"), -(9206, 0, "'t'"), -(9207, 0, "' '"), -(9208, 0, "'h'"), -(9209, 0, "'a'"), -(9188, 22, "'M'"), -(9189, 0, "'y'"), -(9190, 0, "' '"), -(9191, 0, "'['"), -(9192, 0, "'r'"), -(9193, 0, "'e'"), -(9194, 0, "'f'"), -(9195, 0, "'e'"), -(9196, 0, "'r'"), -(9197, 0, "'e'"), -(9198, 0, "'n'"), -(9199, 0, "'c'"), -(9200, 0, "'e'"), -(9201, 0, "'-'"), -(9202, 0, "'c'"), -(9203, 0, "'r'"), -(9204, 0, "'d'"), -(9205, 0, "'t'"), -(9206, 0, "'s'"), -(9207, 0, "']'"), -(9208, 0, "'('"), -(9209, 0, "'https://github.com/josephg/reference-crdts'"), -(9251, 0, "')'"), -(9252, 0, "' '"), -(9253, 0, "'p'"), -(9254, 0, "'r'"), -(9255, 0, "'o'"), -(9256, 0, "'j'"), -(9257, 0, "'e'"), -(9258, 0, "'c'"), -(9259, 0, "'t'"), -(9260, 0, "' '"), -(9261, 0, "'i'"), -(9262, 0, "'m'"), -(9263, 0, "'p'"), -(9264, 0, "'l'"), -(9265, 0, "'e'"), -(9266, 0, "'m'"), -(9267, 0, "'e'"), -(9268, 0, "'n'"), -(9269, 0, "'t'"), -(9270, 0, "'s'"), -(9271, 0, "' '"), -(9272, 0, "'a'"), -(9273, 0, "'l'"), -(9274, 0, "'l'"), -(9275, 0, "' '"), -(9276, 0, "'3'"), -(9277, 0, "' '"), -(9278, 0, "'o'"), -(9279, 0, "'f'"), -(9280, 0, "' '"), -(9281, 0, "'t'"), -(9282, 0, "'h'"), -(9283, 0, "'o'"), -(9284, 0, "'s'"), -(9285, 0, "'e'"), -(9286, 0, "' '"), -(9287, 0, "'a'"), -(9288, 0, "'l'"), -(9289, 0, "'g'"), -(9290, 0, "'o'"), -(9291, 0, "'r'"), -(9292, 0, "'i'"), -(9293, 0, "'t'"), -(9294, 0, "'h'"), -(9295, 0, "'m'"), -(9296, 0, "'s'"), -(9297, 0, "' '"), -(9298, 0, "'u'"), -(9299, 0, "'s'"), -(9300, 0, "'i'"), -(9301, 0, "'n'"), -(9302, 0, "'g'"), -(9303, 0, "' '"), -(9304, 0, "'t'"), -(9305, 0, "'h'"), -(9306, 0, "'e'"), -(9307, 0, "' '"), -(9308, 0, "'s'"), -(9309, 0, "'a'"), -(9310, 0, "'m'"), -(9311, 0, "'e'"), -(9312, 0, "' '"), -(9297, 16, "','"), -(9298, 0, "' '"), -(9299, 0, "'j'"), -(9300, 0, "'u'"), -(9301, 0, "'s'"), -(9302, 0, "'t'"), -(9303, 0, "' '"), -(9299, 5, "'m'"), -(9300, 0, "'o'"), -(9301, 0, "'s'"), -(9302, 0, "'t'"), -(9303, 0, "'l'"), -(9304, 0, "'y'"), -(9305, 0, "' '"), -(9306, 0, "'j'"), -(9307, 0, "'u'"), -(9308, 0, "'s'"), -(9309, 0, "'t'"), -(9310, 0, "' '"), -(9311, 0, "'s'"), -(9312, 0, "'w'"), -(9313, 0, "'a'"), -(9314, 0, "'p'"), -(9315, 0, "'p'"), -(9316, 0, "'i'"), -(9317, 0, "'n'"), -(9318, 0, "'g'"), -(9319, 0, "' '"), -(9320, 0, "'o'"), -(9321, 0, "'u'"), -(9322, 0, "'t'"), -(9323, 0, "' '"), -(9324, 0, "'t'"), -(9325, 0, "'h'"), -(9326, 0, "'e'"), -(9327, 0, "' '"), -(9328, 0, "'i'"), -(9329, 0, "'n'"), -(9330, 0, "'s'"), -(9331, 0, "'e'"), -(9332, 0, "'r'"), -(9333, 0, "'t'"), -(9334, 0, "' '"), -(9335, 0, "'f'"), -(9336, 0, "'u'"), -(9337, 0, "'n'"), -(9338, 0, "'c'"), -(9339, 0, "'t'"), -(9340, 0, "'i'"), -(9341, 0, "'o'"), -(9342, 0, "'n'"), -(9343, 0, "'.'"), -(9334, 0, "' '"), -(9335, 0, "'('"), -(9336, 0, "'i'"), -(9337, 0, "'n'"), -(9338, 0, "'t'"), -(9339, 0, "'e'"), -(9340, 0, "'g'"), -(9341, 0, "'r'"), -(9342, 0, "'a'"), -(9343, 0, "'t'"), -(9344, 0, "'e'"), -(9345, 0, "')'"), -(9356, 0, "'n'"), -(9357, 0, "'2'"), -(9358, 0, "'.'"), -(9359, 0, "' '"), -(9360, 0, "'I'"), -(9361, 0, "'t'"), -(9362, 0, "'s'"), -(9363, 0, "' '"), -(9364, 0, "'f'"), -(9365, 0, "'a'"), -(9366, 0, "'s'"), -(9367, 0, "'t'"), -(9368, 0, "'e'"), -(9369, 0, "'r'"), -(9370, 0, "'n'"), -(9371, 0, "'3'"), -(9372, 0, "'.'"), -(9373, 0, "' '"), -(9371, 3, "''"), -(9370, 1, "''"), -(9360, 10, "'T'"), -(9361, 0, "'h'"), -(9362, 0, "'i'"), -(9363, 0, "'s'"), -(9364, 0, "' '"), -(9365, 0, "'i'"), -(9366, 0, "'s'"), -(9367, 0, "' '"), -(9368, 0, "'s'"), -(9369, 0, "'e'"), -(9370, 0, "'m'"), -(9371, 0, "'a'"), -(9372, 0, "'n'"), -(9373, 0, "'t'"), -(9368, 6, "''"), -(9357, 12, "'2. This is '"), -(9357, 43, "'2. This is This is *semantically* the same'"), -(9360, 8, "''"), -(9383, 8, "'i'"), -(9384, 0, "'d'"), -(9385, 0, "'e'"), -(9386, 0, "'n'"), -(9387, 0, "'t'"), -(9388, 0, "'i'"), -(9389, 0, "'c'"), -(9390, 0, "'a'"), -(9391, 0, "'l'"), -(9392, 0, "' '"), -(9393, 0, "'t'"), -(9394, 0, "'o'"), -(9395, 0, "' '"), -(9396, 0, "'t'"), -(9397, 0, "'h'"), -(9398, 0, "'e'"), -(9399, 0, "' '"), -(9400, 0, "'r'"), -(9401, 0, "'e'"), -(9402, 0, "'a'"), -(9403, 0, "'l'"), -(9404, 0, "' '"), -(9405, 0, "'a'"), -(9406, 0, "'u'"), -(9407, 0, "'t'"), -(9408, 0, "'o'"), -(9409, 0, "'m'"), -(9410, 0, "'e'"), -(9411, 0, "'r'"), -(9412, 0, "'g'"), -(9413, 0, "'e'"), -(9414, 0, "'.'"), -(9415, 0, "' '"), -(9416, 0, "'('"), -(9417, 0, "'I'"), -(9418, 0, "' '"), -(9419, 0, "'c'"), -(9420, 0, "'h'"), -(9421, 0, "'e'"), -(9422, 0, "'c'"), -(9423, 0, "'k'"), -(9424, 0, "'e'"), -(9425, 0, "'d'"), -(9426, 0, "' '"), -(9427, 0, "'w'"), -(9428, 0, "'i'"), -(9429, 0, "'t'"), -(9430, 0, "'h'"), -(9431, 0, "' '"), -(9432, 0, "'a'"), -(9433, 0, "' '"), -(9434, 0, "'f'"), -(9435, 0, "'u'"), -(9436, 0, "'z'"), -(9437, 0, "'z'"), -(9438, 0, "'e'"), -(9439, 0, "'r'"), -(9440, 0, "')'"), -(9426, 0, "' '"), -(9427, 0, "'i'"), -(9428, 0, "'t'"), -(9444, 0, "'.'"), -(9445, 0, "'T'"), -(9445, 1, "''"), -(9445, 0, "' '"), -(9360, 4, "'E'"), -(9361, 0, "'v'"), -(9362, 0, "'e'"), -(9363, 0, "'n'"), -(9364, 0, "' '"), -(9365, 0, "'t'"), -(9366, 0, "'h'"), -(9367, 0, "'o'"), -(9368, 0, "'u'"), -(9369, 0, "'g'"), -(9370, 0, "'h'"), -(9371, 0, "' '"), -(9372, 0, "'t'"), -(9373, 0, "'h'"), -(9374, 0, "'i'"), -(9375, 0, "'s'"), -(9376, 0, "' '"), -(9377, 0, "'i'"), -(9378, 0, "'m'"), -(9379, 0, "'p'"), -(9380, 0, "'l'"), -(9381, 0, "'e'"), -(9382, 0, "'m'"), -(9383, 0, "'e'"), -(9384, 0, "'n'"), -(9385, 0, "'t'"), -(9386, 0, "'a'"), -(9387, 0, "'t'"), -(9388, 0, "'i'"), -(9389, 0, "'o'"), -(9390, 0, "'n'"), -(9391, 0, "' '"), -(9392, 0, "'i'"), -(9393, 0, "'s'"), -(9394, 0, "' '"), -(9395, 0, "'d'"), -(9396, 0, "'i'"), -(9396, 1, "''"), -(9395, 1, "''"), -(9395, 0, "'v'"), -(9396, 0, "'e'"), -(9397, 0, "'r'"), -(9398, 0, "'y'"), -(9399, 0, "' '"), -(9400, 0, "'d'"), -(9401, 0, "'i'"), -(9402, 0, "'f'"), -(9403, 0, "'f'"), -(9404, 0, "'e'"), -(9405, 0, "'r'"), -(9406, 0, "'e'"), -(9407, 0, "','"), -(9407, 1, "''"), -(9407, 0, "'n'"), -(9408, 0, "'t'"), -(9409, 0, "','"), -(9410, 0, "' '"), -(9411, 0, "'t'"), -(9412, 0, "'h'"), -(9413, 0, "'i'"), -(9414, 0, "'s'"), -(9497, 0, "'S'"), -(9498, 0, "'o'"), -(9499, 0, "' '"), -(9500, 0, "'i'"), -(9501, 0, "'s'"), -(9500, 2, "'a'"), -(9501, 0, "'r'"), -(9502, 0, "'e'"), -(9503, 0, "' '"), -(9504, 0, "'t'"), -(9505, 0, "'h'"), -(9506, 0, "'e'"), -(9507, 0, "' '"), -(9497, 11, "''"), -(9496, 1, "''"), -(9416, 2, "'a'"), -(9417, 0, "'p'"), -(9418, 0, "'p'"), -(9419, 0, "'r'"), -(9420, 0, "'o'"), -(9421, 0, "'a'"), -(9422, 0, "'c'"), -(9423, 0, "'h'"), -(9449, 22, "''"), -(9482, 0, "'n'"), -(9483, 0, "'n'"), -(9484, 0, "'n'"), -(9485, 0, "'n'"), -(9486, 0, "'-'"), -(9487, 0, "'-'"), -(9488, 0, "'-'"), -(9484, 0, "'n'"), -(9485, 0, "'n'"), -(9486, 0, "'n'"), -(9482, 0, "'n| Test | Time taken |n| -------------------------- | ---------- |n| automerge @ 1.0.0-preview2 | 291s |n| JS baseline | 0.61s |nn'"), -(9481, 0, "'n'"), -(9482, 0, "'H'"), -(9483, 0, "'o'"), -(9484, 0, "'w'"), -(9485, 0, "' '"), -(9486, 0, "'m'"), -(9487, 0, "'u'"), -(9488, 0, "'c'"), -(9489, 0, "'h'"), -(9490, 0, "' '"), -(9491, 0, "'b'"), -(9492, 0, "'e'"), -(9493, 0, "'t'"), -(9494, 0, "'t'"), -(9495, 0, "'e'"), -(9496, 0, "'r'"), -(9497, 0, "'?'"), -(9588, 0, "'| automerge @ 1.0.0-preview2 | 291s |n'"), -(9634, 9, "'r'"), -(9635, 0, "'e'"), -(9636, 0, "'f'"), -(9637, 0, "'e'"), -(9638, 0, "'r'"), -(9639, 0, "'e'"), -(9640, 0, "'n'"), -(9641, 0, "'c'"), -(9642, 0, "'e'"), -(9643, 0, "'-'"), -(9644, 0, "'c'"), -(9645, 0, "'r'"), -(9646, 0, "'d'"), -(9647, 0, "'t'"), -(9648, 0, "'s'"), -(9650, 17, "' '"), -(9651, 0, "' '"), -(9652, 0, "' '"), -(9653, 0, "' '"), -(9654, 0, "' '"), -(9655, 0, "' '"), -(9656, 0, "' '"), -(9657, 0, "' '"), -(9658, 0, "' '"), -(9659, 0, "' '"), -(9660, 0, "' '"), -(9663, 3, "'3'"), -(9664, 0, "'1'"), -(9664, 1, "''"), -(9663, 1, "''"), -(9663, 0, "'3'"), -(9664, 0, "'1'"), -(9666, 0, "' '"), -(9498, 0, "' '"), -(9499, 0, "'I'"), -(9500, 0, "'t'"), -(9501, 0, "' '"), -(9502, 0, "'t'"), -(9503, 0, "'a'"), -(9504, 0, "'k'"), -(9499, 6, "'A'"), -(9500, 0, "'b'"), -(9501, 0, "'o'"), -(9502, 0, "'u'"), -(9503, 0, "'t'"), -(9504, 0, "' '"), -(9505, 0, "'1'"), -(9506, 0, "'0'"), -(9506, 1, "''"), -(9506, 0, "'0'"), -(9507, 0, "'x'"), -(9508, 0, "' '"), -(9509, 0, "'b'"), -(9510, 0, "'e'"), -(9511, 0, "'t'"), -(9512, 0, "'t'"), -(9513, 0, "'e'"), -(9514, 0, "'r'"), -(9515, 0, "'.'"), -(9497, 0, "' '"), -(9498, 0, "'i'"), -(9499, 0, "'s'"), -(9500, 0, "' '"), -(9501, 0, "'t'"), -(9502, 0, "'h'"), -(9503, 0, "'i'"), -(9504, 0, "'s'"), -(9505, 0, "' '"), -(9506, 0, "'a'"), -(9507, 0, "'p'"), -(9508, 0, "'p'"), -(9509, 0, "'r'"), -(9510, 0, "'o'"), -(9511, 0, "'a'"), -(9512, 0, "'c'"), -(9513, 0, "'h'"), -(9685, 10, "''"), -(9685, 0, "'('"), -(9686, 0, "'a'"), -(9687, 0, "'u'"), -(9688, 0, "'t'"), -(9689, 0, "'o'"), -(9690, 0, "'m'"), -(9691, 0, "'e'"), -(9692, 0, "'r'"), -(9693, 0, "'g'"), -(9694, 0, "'e'"), -(9695, 0, "' '"), -(9696, 0, "'/'"), -(9697, 0, "' '"), -(9698, 0, "'y'"), -(9699, 0, "'j'"), -(9700, 0, "'s'"), -(9701, 0, "')'"), -(9686, 10, "'A'"), -(9687, 0, "'M'"), -(9688, 0, "' '"), -(9686, 3, "'a'"), -(9687, 0, "'u'"), -(9688, 0, "'t'"), -(9689, 0, "'o'"), -(9690, 0, "'m'"), -(9691, 0, "'e'"), -(9692, 0, "'r'"), -(9693, 0, "'g'"), -(9694, 0, "'e'"), -(9695, 0, "' '"), -(9491, 7, "'f'"), -(9492, 0, "'a'"), -(9493, 0, "'s'"), -(9494, 0, "'t'"), -(9495, 0, "'e'"), -(9496, 0, "'r'"), -(9497, 0, "' '"), -(9526, 6, "'f'"), -(9527, 0, "'a'"), -(9528, 0, "'s'"), -(9529, 0, "'t'"), -(9530, 0, "'e'"), -(9531, 0, "'r'"), -(9533, 0, "' '"), -(9534, 0, "'I'"), -(9535, 0, "'t'"), -(9536, 0, "'s'"), -(9537, 0, "' '"), -(9538, 0, "'a'"), -(9539, 0, "'l'"), -(9540, 0, "'s'"), -(9541, 0, "'o'"), -(9542, 0, "' '"), -(9543, 0, "'m'"), -(9544, 0, "'u'"), -(9545, 0, "'c'"), -(9546, 0, "'h'"), -(9547, 0, "' '"), -(9548, 0, "'m'"), -(9549, 0, "'o'"), -(9550, 0, "'r'"), -(9551, 0, "'e'"), -(9552, 0, "' '"), -(9553, 0, "'e'"), -(9554, 0, "'m'"), -(9554, 1, "''"), -(9553, 1, "''"), -(9553, 0, "'m'"), -(9554, 0, "'e'"), -(9555, 0, "'m'"), -(9556, 0, "'o'"), -(9557, 0, "'r'"), -(9558, 0, "'y'"), -(9559, 0, "'-'"), -(9560, 0, "'e'"), -(9561, 0, "'f'"), -(9562, 0, "'f'"), -(9563, 0, "'i'"), -(9564, 0, "'c'"), -(9565, 0, "'i'"), -(9566, 0, "'e'"), -(9567, 0, "'n'"), -(9568, 0, "'t'"), -(9569, 0, "' '"), -(9570, 0, "'a'"), -(9571, 0, "'n'"), -(9572, 0, "'d'"), -(9573, 0, "' '"), -(9574, 0, "'s'"), -(9575, 0, "'m'"), -(9576, 0, "'a'"), -(9577, 0, "'l'"), -(9578, 0, "'l'"), -(9579, 0, "'e'"), -(9580, 0, "'r'"), -(9581, 0, "'.'"), -(9569, 13, "''"), -(9569, 0, "'.'"), -(9615, 44, "''"), -(9572, 0, "'| -------------------------- | ---------- |n'"), -(9659, 44, "''"), -(9616, 0, "'| automerge @ 1.0.0-preview2 | 291s |n'"), -(9703, 0, "'n| automerge @ 1.0.0-preview2 | 291s |'"), -(9616, 44, "''"), -(9659, 0, "'n| -------------------------- | ---------- |'"), -(9572, 44, "''"), -(9689, 0, "' '"), -(9645, 0, "' '"), -(9601, 0, "' '"), -(9692, 0, "' '"), -(9647, 0, "' '"), -(9602, 0, "' '"), -(9695, 0, "' '"), -(9649, 0, "' '"), -(9603, 0, "' '"), -(9698, 0, "' '"), -(9651, 0, "' '"), -(9604, 0, "' '"), -(9701, 0, "' '"), -(9653, 0, "' '"), -(9605, 0, "' '"), -(9704, 0, "' '"), -(9655, 0, "' '"), -(9606, 0, "' '"), -(9707, 0, "' '"), -(9657, 0, "' '"), -(9607, 0, "' '"), -(9804, 0, "' '"), -(9805, 0, "' '"), -(9806, 0, "' '"), -(9807, 0, "' '"), -(9808, 0, "' '"), -(9809, 0, "' '"), -(9810, 0, "' '"), -(9772, 1, "''"), -(9763, 0, "' '"), -(9764, 0, "' '"), -(9712, 0, "' '"), -(9713, 0, "' '"), -(9712, 1, "''"), -(9723, 1, "''"), -(9773, 1, "''"), -(7361, 0, "'n'"), -(7362, 0, "'n'"), -(7363, 0, "'n'"), -(7364, 0, "'#'"), -(7365, 0, "'#'"), -(7366, 0, "'#'"), -(7367, 0, "' '"), -(7368, 0, "'A'"), -(7369, 0, "'l'"), -(7370, 0, "'g'"), -(7371, 0, "'o'"), -(7372, 0, "'r'"), -(7373, 0, "'i'"), -(7374, 0, "'t'"), -(7375, 0, "'h'"), -(7376, 0, "'m'"), -(7377, 0, "'i'"), -(7378, 0, "'c'"), -(7379, 0, "' '"), -(7380, 0, "'i'"), -(7381, 0, "'m'"), -(7382, 0, "'p'"), -(7383, 0, "'r'"), -(7384, 0, "'o'"), -(7385, 0, "'v'"), -(7386, 0, "'e'"), -(7387, 0, "'m'"), -(7388, 0, "'e'"), -(7389, 0, "'n'"), -(7390, 0, "'t'"), -(7391, 0, "'s'"), -(7379, 0, "' '"), -(7380, 0, "'/'"), -(7381, 0, "' '"), -(7382, 0, "'d'"), -(7383, 0, "'a'"), -(7384, 0, "'t'"), -(7385, 0, "'a'"), -(7386, 0, "' '"), -(7387, 0, "'s'"), -(7388, 0, "'t'"), -(7389, 0, "'r'"), -(7390, 0, "'u'"), -(7391, 0, "'c'"), -(7392, 0, "'t'"), -(7393, 0, "'u'"), -(7394, 0, "'r'"), -(7395, 0, "'e'"), -(7368, 28, "'I'"), -(7369, 0, "'m'"), -(7370, 0, "'p'"), -(7371, 0, "'r'"), -(7372, 0, "'o'"), -(7373, 0, "'v'"), -(7374, 0, "'i'"), -(7375, 0, "'n'"), -(7376, 0, "'g'"), -(7377, 0, "' '"), -(7378, 0, "'t'"), -(7379, 0, "'h'"), -(7380, 0, "'e'"), -(7381, 0, "' '"), -(7382, 0, "'d'"), -(7383, 0, "'a'"), -(7384, 0, "'t'"), -(7385, 0, "'a'"), -(7386, 0, "' '"), -(7387, 0, "'s'"), -(7388, 0, "'t'"), -(7389, 0, "'r'"), -(7390, 0, "'u'"), -(7391, 0, "'c'"), -(7392, 0, "'t'"), -(7393, 0, "'u'"), -(7394, 0, "'r'"), -(7395, 0, "'e'"), -(7396, 13, "''"), -(9391, 0, "'n'"), -(9392, 0, "'3'"), -(9393, 0, "'.'"), -(9394, 0, "' '"), -(9394, 1, "''"), -(9393, 1, "''"), -(9392, 1, "''"), -(9392, 0, "'2'"), -(9393, 0, "'.'"), -(9394, 0, "' '"), -(9395, 0, "'W'"), -(9396, 0, "'h'"), -(9397, 0, "'e'"), -(9398, 0, "'n'"), -(9399, 0, "' '"), -(9400, 0, "'t'"), -(9401, 0, "'h'"), -(9402, 0, "'e'"), -(9403, 0, "'r'"), -(9404, 0, "'e'"), -(9405, 0, "' '"), -(9406, 0, "'a'"), -(9407, 0, "'r'"), -(9408, 0, "'e'"), -(9409, 0, "' '"), -(9410, 0, "'n'"), -(9411, 0, "'o'"), -(9412, 0, "' '"), -(9413, 0, "'c'"), -(9414, 0, "'o'"), -(9415, 0, "'n'"), -(9416, 0, "'c'"), -(9417, 0, "'u'"), -(9418, 0, "'r'"), -(9419, 0, "'r'"), -(9420, 0, "'e'"), -(9421, 0, "'n'"), -(9422, 0, "'t'"), -(9423, 0, "' '"), -(9424, 0, "'e'"), -(9425, 0, "'d'"), -(9426, 0, "'i'"), -(9427, 0, "'t'"), -(9428, 0, "'s'"), -(9429, 0, "' '"), -(9430, 0, "'i'"), -(9431, 0, "'n'"), -(9432, 0, "' '"), -(9433, 0, "'t'"), -(9434, 0, "'h'"), -(9435, 0, "'a'"), -(9436, 0, "' '"), -(9437, 0, "'t'"), -(9438, 0, "'l'"), -(9439, 0, "'o'"), -(9439, 1, "''"), -(9438, 1, "''"), -(9437, 1, "''"), -(9436, 1, "''"), -(9436, 0, "'t'"), -(9437, 0, "' '"), -(9438, 0, "'l'"), -(9439, 0, "'o'"), -(9440, 0, "'c'"), -(9441, 0, "'a'"), -(9442, 0, "'t'"), -(9443, 0, "'i'"), -(9444, 0, "'o'"), -(9445, 0, "'n'"), -(9446, 0, "','"), -(9447, 0, "' '"), -(9448, 0, "'y'"), -(9449, 0, "'o'"), -(9450, 0, "'u'"), -(9451, 0, "' '"), -(9452, 0, "'d'"), -(9453, 0, "'o'"), -(9454, 0, "'n'"), -(9455, 0, "'''"), -(9456, 0, "'t'"), -(9457, 0, "' '"), -(9458, 0, "'h'"), -(9459, 0, "'a'"), -(9460, 0, "'v'"), -(9461, 0, "'e'"), -(9462, 0, "' '"), -(9463, 0, "'t'"), -(9464, 0, "'o'"), -(9465, 0, "' '"), -(9466, 0, "'i'"), -(9467, 0, "'t'"), -(9468, 0, "'e'"), -(9469, 0, "'r'"), -(9470, 0, "'a'"), -(9471, 0, "'t'"), -(9472, 0, "'e'"), -(9473, 0, "' '"), -(9395, 79, "'Y'"), -(9396, 0, "'o'"), -(9397, 0, "'u'"), -(9398, 0, "' '"), -(9399, 0, "'a'"), -(9400, 0, "'l'"), -(9401, 0, "'m'"), -(9402, 0, "'o'"), -(9403, 0, "'s'"), -(9404, 0, "'t'"), -(9405, 0, "' '"), -(9406, 0, "'a'"), -(9407, 0, "'l'"), -(9408, 0, "'w'"), -(9409, 0, "'a'"), -(9410, 0, "'y'"), -(9411, 0, "'s'"), -(9412, 0, "' '"), -(9413, 0, "'j'"), -(9414, 0, "'u'"), -(9415, 0, "'s'"), -(9416, 0, "'t'"), -(9417, 0, "' '"), -(9418, 0, "'i'"), -(9419, 0, "'n'"), -(9420, 0, "'s'"), -(9421, 0, "'e'"), -(9422, 0, "'r'"), -(9423, 0, "'t'"), -(9424, 0, "' '"), -(9425, 0, "'a'"), -(9426, 0, "'t'"), -(9427, 0, "'h'"), -(9428, 0, "'t'"), -(9428, 1, "''"), -(9427, 1, "''"), -(9427, 0, "' '"), -(9428, 0, "'t'"), -(9429, 0, "'h'"), -(9430, 0, "'e'"), -(9431, 0, "' '"), -(9425, 7, "'r'"), -(9426, 0, "'i'"), -(9427, 0, "'g'"), -(9428, 0, "'h'"), -(9429, 0, "'t'"), -(9430, 0, "' '"), -(9431, 0, "'a'"), -(9432, 0, "'f'"), -(9433, 0, "'t'"), -(9434, 0, "'e'"), -(9435, 0, "' '"), -(9436, 0, "'t'"), -(9436, 1, "''"), -(9435, 1, "''"), -(9435, 0, "'r'"), -(9436, 0, "' '"), -(9437, 0, "'t'"), -(9438, 0, "'h'"), -(9439, 0, "'e'"), -(9440, 0, "' '"), -(9441, 0, "'p'"), -(9442, 0, "'a'"), -(9443, 0, "'r'"), -(9444, 0, "'e'"), -(9445, 0, "'n'"), -(9446, 0, "'t'"), -(9447, 0, "' '"), -(9448, 0, "'i'"), -(9449, 0, "'t'"), -(9450, 0, "'e'"), -(9451, 0, "'m'"), -(9452, 0, "'.'"), -(9395, 0, "'C'"), -(9396, 0, "'o'"), -(9397, 0, "'n'"), -(9398, 0, "'c'"), -(9399, 0, "'u'"), -(9400, 0, "'r'"), -(9401, 0, "'r'"), -(9402, 0, "'e'"), -(9403, 0, "'n'"), -(9404, 0, "'t'"), -(9405, 0, "' '"), -(9406, 0, "'i'"), -(9407, 0, "'n'"), -(9408, 0, "'s'"), -(9409, 0, "'e'"), -(9410, 0, "'r'"), -(9411, 0, "'t'"), -(9412, 0, "'s'"), -(9413, 0, "' '"), -(9414, 0, "'i'"), -(9415, 0, "'n'"), -(9416, 0, "'t'"), -(9417, 0, "' '"), -(9418, 0, "'h'"), -(9419, 0, "'e'"), -(9420, 0, "' '"), -(9421, 0, "'s'"), -(9422, 0, "'a'"), -(9423, 0, "'m'"), -(9424, 0, "'e'"), -(9414, 11, "'i'"), -(9415, 0, "'n'"), -(9416, 0, "' '"), -(9417, 0, "'t'"), -(9418, 0, "'h'"), -(9419, 0, "'e'"), -(9420, 0, "' '"), -(9421, 0, "'s'"), -(9422, 0, "'a'"), -(9423, 0, "'m'"), -(9424, 0, "'e'"), -(9425, 0, "' '"), -(9426, 0, "'l'"), -(9427, 0, "'o'"), -(9428, 0, "'c'"), -(9429, 0, "'a'"), -(9430, 0, "'t'"), -(9431, 0, "'i'"), -(9432, 0, "'o'"), -(9433, 0, "'n'"), -(9434, 0, "' '"), -(9435, 0, "'a'"), -(9436, 0, "'r'"), -(9437, 0, "'e'"), -(9438, 0, "' '"), -(9439, 0, "'s'"), -(9440, 0, "'u'"), -(9441, 0, "'p'"), -(9442, 0, "'e'"), -(9443, 0, "'r'"), -(9444, 0, "' '"), -(9445, 0, "'r'"), -(9446, 0, "'a'"), -(9447, 0, "'r'"), -(9448, 0, "'e'"), -(9449, 0, "' '"), -(9450, 0, "'i'"), -(9451, 0, "'n'"), -(9452, 0, "' '"), -(9453, 0, "'p'"), -(9454, 0, "'r'"), -(9455, 0, "'a'"), -(9456, 0, "'c'"), -(9457, 0, "'t'"), -(9458, 0, "'i'"), -(9459, 0, "'c'"), -(9460, 0, "'e'"), -(9461, 0, "','"), -(9462, 0, "' '"), -(9463, 0, "'a'"), -(9464, 0, "'n'"), -(9465, 0, "'d'"), -(9466, 0, "' '"), -(9461, 5, "'.'"), -(9462, 0, "' '"), -(9463, 0, "'S'"), -(9464, 0, "'o'"), -(9466, 1, "''"), -(9466, 0, "'y'"), -(9524, 0, "' '"), -(9525, 0, "'A'"), -(9526, 0, "'l'"), -(9527, 0, "'t'"), -(9528, 0, "'h'"), -(9529, 0, "'o'"), -(9530, 0, "'u'"), -(9531, 0, "'g'"), -(9532, 0, "'h'"), -(9533, 0, "' '"), -(9534, 0, "'t'"), -(9535, 0, "'h'"), -(9536, 0, "'i'"), -(9537, 0, "'s'"), -(9538, 0, "' '"), -(9539, 0, "'a'"), -(9540, 0, "'l'"), -(9541, 0, "'g'"), -(9542, 0, "'o'"), -(9543, 0, "'r'"), -(9544, 0, "'i'"), -(9545, 0, "'t'"), -(9546, 0, "'h'"), -(9547, 0, "'m'"), -(9548, 0, "' '"), -(9549, 0, "'h'"), -(9550, 0, "'a'"), -(9551, 0, "'s'"), -(9552, 0, "' '"), -(9553, 0, "'a'"), -(9554, 0, "' '"), -(9555, 0, "'('"), -(9556, 0, "'l'"), -(9557, 0, "'i'"), -(9558, 0, "'n'"), -(9559, 0, "'e'"), -(9560, 0, "'a'"), -(9561, 0, "'r'"), -(9562, 0, "' '"), -(9563, 0, "'t'"), -(9564, 0, "'i'"), -(9565, 0, "'m'"), -(9566, 0, "'e'"), -(9567, 0, "')'"), -(9568, 0, "' '"), -(9569, 0, "'l'"), -(9570, 0, "'o'"), -(9571, 0, "'o'"), -(9572, 0, "'p'"), -(9573, 0, "','"), -(9574, 0, "' '"), -(9575, 0, "'i'"), -(9576, 0, "'t'"), -(9577, 0, "'s'"), -(9578, 0, "' '"), -(9579, 0, "'a'"), -(9580, 0, "'l'"), -(9581, 0, "'m'"), -(9582, 0, "'o'"), -(9583, 0, "'s'"), -(9584, 0, "'t'"), -(9575, 10, "'t'"), -(9576, 0, "'h'"), -(9577, 0, "'e'"), -(9578, 0, "' '"), -(9579, 0, "'l'"), -(9580, 0, "'o'"), -(9581, 0, "'o'"), -(9582, 0, "'p'"), -(9583, 0, "' '"), -(9584, 0, "'g'"), -(9585, 0, "'e'"), -(9586, 0, "'t'"), -(9587, 0, "'s'"), -(9588, 0, "' '"), -(9589, 0, "'e'"), -(9590, 0, "'x'"), -(9584, 7, "'i'"), -(9585, 0, "'s'"), -(9586, 0, "' '"), -(9587, 0, "'a'"), -(9588, 0, "'l'"), -(9589, 0, "'m'"), -(9590, 0, "'o'"), -(9591, 0, "'s'"), -(9592, 0, "'t'"), -(9593, 0, "' '"), -(9594, 0, "'n'"), -(9595, 0, "'e'"), -(9596, 0, "'v'"), -(9597, 0, "'e'"), -(9598, 0, "'r'"), -(9599, 0, "' '"), -(9600, 0, "'l'"), -(9600, 1, "'d'"), -(9601, 0, "'o'"), -(9602, 0, "'e'"), -(9603, 0, "'s'"), -(9604, 0, "' '"), -(9605, 0, "'a'"), -(9606, 0, "'n'"), -(9607, 0, "'y'"), -(9608, 0, "'t'"), -(9609, 0, "'h'"), -(9610, 0, "'i'"), -(9611, 0, "'n'"), -(9612, 0, "'g'"), -(9613, 0, "'.'"), -(9600, 13, "'r'"), -(9601, 0, "'u'"), -(9602, 0, "'n'"), -(9603, 0, "'s'"), -(9605, 0, "' '"), -(9606, 0, "'T'"), -(9607, 0, "'h'"), -(9608, 0, "'i'"), -(9609, 0, "'s'"), -(9610, 0, "' '"), -(9611, 0, "'m'"), -(9612, 0, "'a'"), -(9613, 0, "'k'"), -(9614, 0, "'e'"), -(9615, 0, "'s'"), -(9616, 0, "' '"), -(9617, 0, "'i'"), -(9618, 0, "'t'"), -(9619, 0, "' '"), -(9620, 0, "'f'"), -(9621, 0, "'a'"), -(9622, 0, "'s'"), -(9623, 0, "'t'"), -(9624, 0, "'!'"), -(9606, 4, "'I'"), -(9606, 1, "''"), -(9606, 0, "'S'"), -(9607, 0, "'o'"), -(9608, 0, "' '"), -(9609, 0, "'i'"), -(9610, 0, "'t'"), -(9611, 0, "'s'"), -(9612, 6, "''"), -(9612, 3, "''"), -(9612, 0, "' '"), -(9613, 0, "'r'"), -(9614, 0, "'e'"), -(9615, 0, "'a'"), -(9616, 0, "'l'"), -(9617, 0, "'l'"), -(9618, 0, "'y'"), -(9624, 0, "' '"), -(9625, 0, "'i'"), -(9626, 0, "'n'"), -(9627, 0, "' '"), -(9628, 0, "'p'"), -(9629, 0, "'r'"), -(9630, 0, "'a'"), -(9631, 0, "'c'"), -(9632, 0, "'t'"), -(9633, 0, "'i'"), -(9634, 0, "'c'"), -(9635, 0, "'e'"), -(8647, 0, "'S'"), -(8648, 0, "'t'"), -(8649, 0, "'a'"), -(8650, 0, "'r'"), -(8651, 0, "'t'"), -(8652, 0, "'i'"), -(8653, 0, "'n'"), -(8654, 0, "'g'"), -(8655, 0, "' '"), -(8656, 0, "'r'"), -(8657, 0, "'i'"), -(8658, 0, "'g'"), -(8659, 0, "'h'"), -(8660, 0, "'t'"), -(8661, 0, "' '"), -(8662, 0, "'a'"), -(8663, 0, "'f'"), -(8664, 0, "'t'"), -(8665, 0, "'e'"), -(8666, 0, "'r'"), -(8667, 0, "' '"), -(8668, 0, "'t'"), -(8669, 0, "'h'"), -(8670, 0, "'e'"), -(8671, 0, "' '"), -(8672, 0, "'p'"), -(8673, 0, "'a'"), -(8674, 0, "'r'"), -(8675, 0, "'e'"), -(8676, 0, "'n'"), -(8677, 0, "'t'"), -(8678, 0, "' '"), -(8679, 0, "'i'"), -(8680, 0, "'t'"), -(8681, 0, "'e'"), -(8682, 0, "'m'"), -(8683, 0, "','"), -(8684, 0, "' '"), -(8685, 1, "''"), -(8685, 0, "'i'"), -(8709, 1, "''"), -(8709, 0, "'.'"), -(8711, 8, "'S'"), -(8712, 0, "'k'"), -(8713, 0, "'i'"), -(8714, 0, "'p'"), -(8709, 55, "''"), -(8709, 0, "' '"), -(8710, 0, "'u'"), -(8711, 0, "'n'"), -(8712, 0, "'t'"), -(8713, 0, "'i'"), -(8714, 0, "'l'"), -(8715, 0, "' '"), -(8716, 0, "'w'"), -(8717, 0, "'e'"), -(8718, 0, "' '"), -(8719, 0, "'f'"), -(8720, 0, "'i'"), -(8721, 0, "'n'"), -(8722, 0, "'d'"), -(8723, 0, "' '"), -(8724, 0, "'t'"), -(8725, 0, "'h'"), -(8726, 0, "'e'"), -(8727, 0, "' '"), -(8728, 0, "'l'"), -(8729, 0, "'o'"), -(8730, 0, "'c'"), -(8731, 0, "'a'"), -(8732, 0, "'t'"), -(8733, 0, "'i'"), -(8734, 0, "'o'"), -(8735, 0, "'n'"), -(8736, 0, "' '"), -(8737, 0, "'t'"), -(8738, 0, "'h'"), -(8739, 0, "'e'"), -(8740, 0, "' '"), -(8741, 0, "'n'"), -(8742, 0, "'e'"), -(8743, 0, "'w'"), -(8744, 0, "' '"), -(8745, 0, "'i'"), -(8746, 0, "'t'"), -(8747, 0, "'e'"), -(8748, 0, "'m'"), -(8749, 0, "' '"), -(8750, 0, "'s'"), -(8751, 0, "'h'"), -(8752, 0, "'o'"), -(8753, 0, "'u'"), -(8754, 0, "'l'"), -(8755, 0, "'d'"), -(8756, 0, "' '"), -(8757, 0, "'b'"), -(8758, 0, "'e'"), -(8759, 0, "' '"), -(8760, 0, "'i'"), -(8761, 0, "'n'"), -(8762, 0, "'s'"), -(8763, 0, "'e'"), -(8764, 0, "'r'"), -(8765, 0, "'t'"), -(8766, 0, "'e'"), -(8767, 0, "'d'"), -(9799, 0, "'n'"), -(9676, 1, "''"), -(9676, 0, "'3'"), -(9800, 0, "'4'"), -(9801, 0, "'.'"), -(9802, 0, "' '"), -(9803, 0, "'I'"), -(9804, 0, "'t'"), -(9805, 0, "'s'"), -(9806, 0, "' '"), -(9807, 0, "'n'"), -(9808, 0, "'e'"), -(9809, 0, "'a'"), -(9810, 0, "'t'"), -(9811, 0, "'!'"), -(9812, 0, "' '"), -(9813, 0, "'U'"), -(9814, 0, "'s'"), -(9815, 0, "'e'"), -(9816, 0, "' '"), -(9817, 0, "'a'"), -(9818, 0, "' '"), -(9819, 0, "'l'"), -(9820, 0, "'i'"), -(9821, 0, "'s'"), -(9822, 0, "'t'"), -(9823, 0, "' '"), -(9824, 0, "'t'"), -(9825, 0, "'o'"), -(9826, 0, "' '"), -(9827, 0, "'i'"), -(9828, 0, "'m'"), -(9829, 0, "'p'"), -(9830, 0, "'l'"), -(9831, 0, "'e'"), -(9832, 0, "'m'"), -(9833, 0, "'e'"), -(9834, 0, "'n'"), -(9835, 0, "'t'"), -(9836, 0, "' '"), -(9837, 0, "'a'"), -(9838, 0, "' '"), -(9839, 0, "'l'"), -(9840, 0, "'i'"), -(9841, 0, "'s'"), -(9842, 0, "'t'"), -(9843, 0, "'?'"), -(9844, 0, "' '"), -(9845, 0, "'G'"), -(9846, 0, "'e'"), -(9847, 0, "'n'"), -(9848, 0, "'i'"), -(9849, 0, "'u'"), -(9850, 0, "'s'"), -(9851, 0, "'!'"), -(9811, 0, "' '"), -(9812, 0, "'a'"), -(9813, 0, "'n'"), -(9814, 0, "'d'"), -(9815, 0, "' '"), -(9816, 0, "'o'"), -(9817, 0, "'b'"), -(9818, 0, "'v'"), -(9819, 0, "'i'"), -(9820, 0, "'o'"), -(9821, 0, "'u'"), -(9822, 0, "'s'"), -(9811, 12, "''"), -(9843, 0, "' '"), -(9844, 0, "'C'"), -(9845, 0, "'R'"), -(9813, 33, "'I'"), -(9814, 0, "'m'"), -(9815, 0, "'p'"), -(9816, 0, "'l'"), -(9817, 0, "'e'"), -(9818, 0, "'m'"), -(9819, 0, "'e'"), -(9820, 0, "'n'"), -(9821, 0, "'t'"), -(9822, 0, "' '"), -(9823, 0, "'a'"), -(9824, 0, "' '"), -(9825, 0, "'l'"), -(9826, 0, "'i'"), -(9827, 0, "'s'"), -(9828, 0, "'t'"), -(9829, 0, "' '"), -(9830, 0, "'C'"), -(9831, 0, "'R'"), -(9832, 0, "'D'"), -(9833, 0, "'T'"), -(9834, 0, "' '"), -(9835, 0, "'w'"), -(9836, 0, "'i'"), -(9837, 0, "'t'"), -(9838, 0, "'h'"), -(9839, 0, "' '"), -(9840, 0, "'a'"), -(9841, 0, "' '"), -(9842, 0, "'l'"), -(9843, 0, "'i'"), -(9844, 0, "'s'"), -(9845, 0, "'t'"), -(9855, 0, "'!'"), -(9945, 1, "''"), -(9945, 0, "','"), -(9946, 0, "' '"), -(9947, 0, "'t'"), -(9948, 0, "'h'"), -(9949, 0, "'o'"), -(9950, 0, "'u'"), -(9951, 0, "'g'"), -(9952, 0, "'h'"), -(9953, 0, "' '"), -(9954, 0, "'I'"), -(9955, 0, "'''"), -(9956, 0, "'m'"), -(9957, 0, "' '"), -(9958, 0, "'n'"), -(9959, 0, "'o'"), -(9960, 0, "'t'"), -(9961, 0, "' '"), -(9962, 0, "'m'"), -(9963, 0, "'e'"), -(9964, 0, "'a'"), -(9965, 0, "'s'"), -(9966, 0, "'u'"), -(9967, 0, "'r'"), -(9968, 0, "'e'"), -(9969, 0, "' '"), -(9969, 1, "''"), -(9968, 1, "''"), -(9968, 0, "'i'"), -(9969, 0, "'n'"), -(9970, 0, "'g'"), -(9971, 0, "' '"), -(9972, 0, "'t'"), -(9973, 0, "'h'"), -(9974, 0, "'a'"), -(9975, 0, "'t'"), -(9976, 0, "' '"), -(9977, 0, "'h'"), -(9978, 0, "'e'"), -(9979, 0, "'r'"), -(9980, 0, "'e'"), -(9981, 0, "'.'"), -(6901, 0, "' '"), -(6902, 0, "'O'"), -(6903, 0, "'r'"), -(6904, 0, "' '"), -(6905, 0, "'m'"), -(6906, 0, "'e'"), -(6907, 0, "'m'"), -(6908, 0, "'o'"), -(6909, 0, "'r'"), -(6910, 0, "'y'"), -(6911, 0, "' '"), -(6912, 0, "'u'"), -(6913, 0, "'s'"), -(6914, 0, "'a'"), -(6915, 0, "'g'"), -(6916, 0, "'e'"), -(6917, 0, "' '"), -(6918, 0, "'-'"), -(6919, 0, "' '"), -(6920, 0, "'t'"), -(6921, 0, "'h'"), -(6921, 1, "''"), -(6921, 0, "'h'"), -(6922, 0, "'a'"), -(6923, 0, "'t'"), -(6924, 0, "' '"), -(6925, 0, "'s'"), -(6926, 0, "'i'"), -(6927, 0, "'m'"), -(6928, 0, "'p'"), -(6929, 0, "'l'"), -(6930, 0, "'e'"), -(6931, 0, "' '"), -(6932, 0, "'e'"), -(6933, 0, "'d'"), -(6934, 0, "'i'"), -(6935, 0, "'t'"), -(6936, 0, "'i'"), -(6937, 0, "'n'"), -(6938, 0, "'g'"), -(6939, 0, "' '"), -(6940, 0, "'t'"), -(6941, 0, "'r'"), -(6942, 0, "'a'"), -(6943, 0, "'c'"), -(6944, 0, "'e'"), -(6945, 0, "' '"), -(6946, 0, "'c'"), -(6947, 0, "'o'"), -(6948, 0, "'n'"), -(6946, 3, "'m'"), -(6947, 0, "'a'"), -(6948, 0, "'k'"), -(6949, 0, "'e'"), -(6950, 0, "'s'"), -(6951, 0, "' '"), -(6920, 32, "''"), -(6920, 0, "'r'"), -(6921, 0, "'u'"), -(6922, 0, "'n'"), -(6923, 0, "'n'"), -(6924, 0, "'i'"), -(6925, 0, "'n'"), -(6926, 0, "'g'"), -(6927, 0, "' '"), -(6928, 0, "'t'"), -(6929, 0, "'h'"), -(6930, 0, "'i'"), -(6931, 0, "'s'"), -(6932, 0, "' '"), -(6933, 0, "'s'"), -(6934, 0, "'i'"), -(6935, 0, "'m'"), -(6936, 0, "'p'"), -(6937, 0, "'l'"), -(6938, 0, "'e'"), -(6939, 0, "' '"), -(6940, 0, "'t'"), -(6941, 0, "'r'"), -(6942, 0, "'a'"), -(6940, 3, "'e'"), -(6941, 0, "'d'"), -(6942, 0, "'i'"), -(6943, 0, "'t'"), -(6944, 0, "'i'"), -(6945, 0, "'n'"), -(6946, 0, "'g'"), -(6947, 0, "' '"), -(6948, 0, "'t'"), -(6949, 0, "'r'"), -(6950, 0, "'a'"), -(6951, 0, "'c'"), -(6952, 0, "'e'"), -(6953, 0, "' '"), -(6954, 0, "'i'"), -(6955, 0, "'n'"), -(6956, 0, "' '"), -(6957, 0, "'a'"), -(6958, 0, "'u'"), -(6959, 0, "'t'"), -(6960, 0, "'o'"), -(6961, 0, "'m'"), -(6962, 0, "'e'"), -(6963, 0, "'r'"), -(6964, 0, "'g'"), -(6965, 0, "'e'"), -(6966, 0, "' '"), -(6967, 0, "'c'"), -(6968, 0, "'o'"), -(6969, 0, "'n'"), -(6970, 0, "'s'"), -(6971, 0, "'u'"), -(6972, 0, "'m'"), -(6973, 0, "'e'"), -(6974, 0, "'s'"), -(6975, 0, "' '"), -(6976, 0, "'1'"), -(6977, 0, "'.'"), -(6978, 0, "'6'"), -(6978, 1, "''"), -(6978, 0, "'7'"), -(6979, 0, "'G'"), -(6980, 0, "'B'"), -(6981, 0, "' '"), -(6982, 0, "'o'"), -(6983, 0, "'f'"), -(6984, 0, "' '"), -(6985, 0, "'r'"), -(6986, 0, "'a'"), -(6987, 0, "'m'"), -(6988, 0, "' '"), -(6988, 1, "''"), -(6988, 0, "'!'"), -(6989, 0, "'!'"), -(6989, 1, "''"), -(6953, 0, "' '"), -(6954, 0, "'t'"), -(6955, 0, "'o'"), -(6956, 0, "' '"), -(6957, 0, "'p'"), -(6958, 0, "'r'"), -(6959, 0, "'o'"), -(6960, 0, "'d'"), -(6961, 0, "'u'"), -(6962, 0, "'c'"), -(6963, 0, "'e'"), -(6964, 0, "' '"), -(6965, 0, "'a'"), -(6966, 0, "' '"), -(6967, 0, "'1'"), -(6968, 0, "'0'"), -(6969, 0, "'0'"), -(6970, 0, "'l'"), -(6971, 0, "'b'"), -(6971, 1, "''"), -(6970, 1, "''"), -(6970, 0, "'h'"), -(6970, 1, "''"), -(6970, 0, "'k'"), -(6971, 0, "'b'"), -(6972, 0, "' '"), -(6973, 0, "'d'"), -(6974, 0, "'o'"), -(6975, 0, "'c'"), -(6976, 0, "'u'"), -(6977, 0, "'m'"), -(6978, 0, "'e'"), -(6979, 0, "'n'"), -(6980, 0, "'t'"), -(6981, 13, "''"), -(7296, 1, "''"), -(7296, 0, "'.'"), -(7298, 5, "'A'"), -(7299, 0, "'f'"), -(7300, 0, "'t'"), -(7301, 0, "'e'"), -(7302, 0, "'r'"), -(7303, 0, "' '"), -(7304, 0, "'a'"), -(7305, 0, "'l'"), -(7306, 0, "'l'"), -(7307, 0, "','"), -(7364, 16, "'d'"), -(7365, 0, "'e'"), -(7366, 0, "'l'"), -(7367, 0, "'e'"), -(7368, 0, "'t'"), -(7369, 0, "'e'"), -(7004, 0, "' '"), -(7005, 0, "'H'"), -(7006, 0, "'o'"), -(7007, 0, "'l'"), -(7008, 0, "'y'"), -(7009, 0, "' '"), -(7010, 0, "'c'"), -(7011, 0, "'o'"), -(7012, 0, "'w'"), -(7013, 0, "'!'"), -(7308, 12, "'T'"), -(7371, 0, "'n'"), -(7135, 236, "'So how do we make the computer do less work here? There's lots of performance wins to be had, but with this sort of thing its always best to start with macro optimizations. There's no point optimizing code you might be about to delete.'"), -(7371, 0, "'n'"), -(7459, 0, "' '"), -(7460, 0, "'A'"), -(7461, 0, "'n'"), -(7462, 0, "'d'"), -(7463, 0, "' '"), -(7464, 0, "'I'"), -(7465, 0, "' '"), -(7460, 6, "''"), -(7459, 1, "''"), -(10338, 0, "'W'"), -(10339, 0, "'e'"), -(10340, 0, "'l'"), -(10341, 0, "'l'"), -(10342, 0, "','"), -(10343, 0, "' '"), -(10344, 0, "'i'"), -(10345, 0, "'t'"), -(10344, 2, "'t'"), -(10345, 0, "'h'"), -(10346, 0, "'e'"), -(10347, 0, "' '"), -(10348, 0, "'p'"), -(10349, 0, "'e'"), -(10350, 0, "'r'"), -(10351, 0, "'f'"), -(10352, 0, "'o'"), -(10353, 0, "'r'"), -(10354, 0, "'m'"), -(10355, 0, "'a'"), -(10356, 0, "'n'"), -(10357, 0, "'c'"), -(10358, 0, "'e'"), -(10359, 0, "' '"), -(10360, 0, "'i'"), -(10361, 0, "'m'"), -(10362, 0, "'p'"), -(10363, 0, "'r'"), -(10364, 0, "'o'"), -(10365, 0, "'v'"), -(10366, 0, "'e'"), -(10367, 0, "'m'"), -(10368, 0, "'e'"), -(10369, 0, "'n'"), -(10370, 0, "'t'"), -(10344, 0, "'s'"), -(10345, 0, "'o'"), -(10346, 0, "'m'"), -(10347, 0, "'e'"), -(10348, 0, "' '"), -(10349, 0, "'o'"), -(10350, 0, "'f'"), -(10351, 0, "' '"), -(10379, 0, "'s'"), -(10380, 0, "' '"), -(10381, 0, "'m'"), -(10382, 0, "'i'"), -(10383, 0, "'g'"), -(10384, 0, "'h'"), -(10385, 0, "'t'"), -(10386, 0, "' '"), -(10387, 0, "'a'"), -(10388, 0, "'l'"), -(10389, 0, "'s'"), -(10390, 0, "'o'"), -(10391, 0, "' '"), -(10392, 0, "'c'"), -(10393, 0, "'o'"), -(10394, 0, "'m'"), -(10395, 0, "'e'"), -(10396, 0, "' '"), -(10397, 0, "'f'"), -(10398, 0, "'r'"), -(10399, 0, "'o'"), -(10400, 0, "'m'"), -(10401, 0, "' '"), -(10402, 0, "'t'"), -(10403, 0, "'h'"), -(10404, 0, "'e'"), -(10405, 0, "' '"), -(10406, 0, "'f'"), -(10407, 0, "'a'"), -(10408, 0, "'c'"), -(10409, 0, "'t'"), -(10410, 0, "' '"), -(10411, 0, "'I'"), -(10412, 0, "'''"), -(10413, 0, "'m'"), -(10414, 0, "' '"), -(10415, 0, "'n'"), -(10416, 0, "'o'"), -(10417, 0, "'t'"), -(10418, 0, "' '"), -(10419, 0, "'u'"), -(10420, 0, "'s'"), -(10421, 0, "'i'"), -(10422, 0, "'n'"), -(10423, 0, "'g'"), -(10424, 0, "' '"), -(10425, 0, "'a'"), -(10426, 0, "'u'"), -(10427, 0, "'t'"), -(10428, 0, "'o'"), -(10429, 0, "'m'"), -(10430, 0, "'e'"), -(10431, 0, "'r'"), -(10432, 0, "'g'"), -(10433, 0, "'e'"), -(10425, 9, "''"), -(10425, 0, "'i'"), -(10426, 0, "'m'"), -(10427, 0, "'m'"), -(10428, 0, "'u'"), -(10429, 0, "'t'"), -(10430, 0, "'a'"), -(10431, 0, "'b'"), -(10432, 0, "'l'"), -(10433, 0, "'e'"), -(10434, 0, "'j'"), -(10435, 0, "'s'"), -(10436, 0, "' '"), -(10338, 99, "'Well, some of the performance improvements might also come from the fact I'm not using immutablejs'"), -(10338, 7, "'S'"), -(10430, 0, "' '"), -(10431, 0, "'h'"), -(10432, 0, "'e'"), -(10433, 0, "'r'"), -(10434, 0, "'e'"), -(10409, 0, "'a'"), -(10410, 0, "'l'"), -(10411, 0, "'s'"), -(10412, 0, "'o'"), -(10413, 0, "' '"), -(10435, 5, "'.'"), -(10436, 0, "' '"), -(10437, 0, "'B'"), -(10438, 0, "'u'"), -(10439, 0, "'t'"), -(10439, 1, "''"), -(10438, 1, "''"), -(10437, 1, "''"), -(10436, 1, "''"), -(10438, 0, "'n'"), -(10439, 0, "'n'"), -(10438, 0, "'n'"), -(10439, 0, "'#'"), -(10440, 0, "'#'"), -(10441, 0, "'#'"), -(10442, 0, "'#'"), -(10443, 0, "' '"), -(10443, 1, "''"), -(10442, 1, "''"), -(10442, 0, "' '"), -(10443, 0, "'M'"), -(10444, 0, "'i'"), -(10445, 0, "'c'"), -(10446, 0, "'r'"), -(10447, 0, "'o'"), -(10448, 0, "' '"), -(10449, 0, "'o'"), -(10450, 0, "'p'"), -(10451, 0, "'t'"), -(10452, 0, "'i'"), -(10453, 0, "'m'"), -(10454, 0, "'i'"), -(10455, 0, "'z'"), -(10456, 0, "'a'"), -(10457, 0, "'t'"), -(10458, 0, "'i'"), -(10459, 0, "'o'"), -(10460, 0, "'n'"), -(10461, 0, "'s'"), -(10462, 0, "' '"), -(10463, 0, "'f'"), -(10464, 0, "'o'"), -(10465, 0, "'r'"), -(10466, 0, "' '"), -(10467, 0, "'t'"), -(10468, 0, "'h'"), -(10469, 0, "'e'"), -(10470, 0, "' '"), -(10471, 0, "'w'"), -(10472, 0, "'i'"), -(10473, 0, "'n'"), -(10462, 12, "''"), -(10462, 0, "'n'"), -(10463, 0, "'n'"), -(10464, 0, "'N'"), -(10465, 0, "'o'"), -(10466, 0, "'w'"), -(10467, 0, "' '"), -(10468, 0, "'w'"), -(10469, 0, "'e'"), -(10470, 0, "'''"), -(10471, 0, "'v'"), -(10472, 0, "'e'"), -(10473, 0, "' '"), -(10474, 0, "'c'"), -(10475, 0, "'o'"), -(10476, 0, "'v'"), -(10477, 0, "'e'"), -(10478, 0, "'r'"), -(10479, 0, "'e'"), -(10480, 0, "'d'"), -(10481, 0, "' '"), -(10482, 0, "'t'"), -(10483, 0, "'h'"), -(10484, 0, "'e'"), -(10485, 0, "' '"), -(10486, 0, "'m'"), -(10487, 0, "'a'"), -(10488, 0, "'c'"), -(10489, 0, "'r'"), -(10490, 0, "'o'"), -(10491, 0, "' '"), -(10492, 0, "'o'"), -(10493, 0, "'p'"), -(10494, 0, "'t'"), -(10495, 0, "'i'"), -(10496, 0, "'m'"), -(10497, 0, "'i'"), -(10498, 0, "'z'"), -(10499, 0, "'a'"), -(10500, 0, "'t'"), -(10501, 0, "'i'"), -(10502, 0, "'o'"), -(10503, 0, "'n'"), -(10504, 0, "'s'"), -(10505, 0, "' '"), -(10506, 0, "'a'"), -(10507, 0, "'n'"), -(10508, 0, "'d'"), -(10509, 0, "' '"), -(10510, 0, "'p'"), -(10511, 0, "'i'"), -(10512, 0, "'c'"), -(10513, 0, "'k'"), -(10514, 0, "'e'"), -(10515, 0, "'d'"), -(10516, 0, "' '"), -(10517, 0, "'o'"), -(10518, 0, "'u'"), -(10519, 0, "'r'"), -(10520, 0, "' '"), -(10521, 0, "'s'"), -(10522, 0, "'e'"), -(10523, 0, "'m'"), -(10521, 3, "'d'"), -(10522, 0, "'a'"), -(10523, 0, "'t'"), -(10524, 0, "'a'"), -(10525, 0, "' '"), -(10526, 0, "'s'"), -(10527, 0, "'t'"), -(10528, 0, "'r'"), -(10529, 0, "'u'"), -(10530, 0, "'c'"), -(10531, 0, "'t'"), -(10532, 0, "'u'"), -(10533, 0, "'r'"), -(10534, 0, "'e'"), -(10535, 0, "','"), -(10536, 0, "' '"), -(10537, 0, "'t'"), -(10538, 0, "'h'"), -(10539, 0, "'e'"), -(10540, 0, "'r'"), -(10541, 0, "'e'"), -(10542, 0, "'''"), -(10543, 0, "'s'"), -(10544, 0, "' '"), -(10545, 0, "'a'"), -(10546, 0, "'n'"), -(10547, 0, "'o'"), -(10548, 0, "'t'"), -(10549, 0, "'h'"), -(10550, 0, "'e'"), -(10551, 0, "'r'"), -(10552, 0, "' '"), -(10553, 0, "'b'"), -(10554, 0, "'i'"), -(10555, 0, "'g'"), -(10556, 0, "' '"), -(10557, 0, "'p'"), -(10558, 0, "'r'"), -(10559, 0, "'o'"), -(10560, 0, "'b'"), -(10473, 88, "' '"), -(10474, 0, "'g'"), -(10475, 0, "'o'"), -(10475, 1, "''"), -(10474, 1, "''"), -(10473, 1, "''"), -(10472, 1, "''"), -(10471, 1, "''"), -(10471, 0, "'r'"), -(10472, 0, "'e'"), -(10473, 0, "' '"), -(10474, 0, "'u'"), -(10475, 0, "'s'"), -(10476, 0, "'i'"), -(10477, 0, "'n'"), -(10478, 0, "'g'"), -(10479, 0, "' '"), -(10480, 0, "'t'"), -(10481, 0, "'h'"), -(10482, 0, "'e'"), -(10483, 0, "' '"), -(10484, 0, "'r'"), -(10485, 0, "'i'"), -(10486, 0, "'g'"), -(10487, 0, "'h'"), -(10488, 0, "'t'"), -(10489, 0, "' '"), -(10490, 0, "'a'"), -(10491, 0, "'l'"), -(10492, 0, "'g'"), -(10493, 0, "'o'"), -(10494, 0, "'r'"), -(10495, 0, "'i'"), -(10496, 0, "'t'"), -(10497, 0, "'h'"), -(10498, 0, "'m'"), -(10499, 0, "' '"), -(10500, 0, "'i'"), -(10501, 0, "'n'"), -(10502, 0, "' '"), -(10503, 0, "'o'"), -(10504, 0, "'u'"), -(10505, 0, "'r'"), -(10506, 0, "' '"), -(10507, 0, "'i'"), -(10508, 0, "'m'"), -(10509, 0, "'p'"), -(10510, 0, "'l'"), -(10511, 0, "'e'"), -(10512, 0, "'m'"), -(10513, 0, "'e'"), -(10514, 0, "'n'"), -(10515, 0, "'t'"), -(10516, 0, "'a'"), -(10517, 0, "'t'"), -(10518, 0, "'i'"), -(10519, 0, "'o'"), -(10520, 0, "'n'"), -(10521, 0, "','"), -(10522, 0, "' '"), -(10523, 0, "'w'"), -(10524, 0, "'e'"), -(10525, 0, "' '"), -(10526, 0, "'h'"), -(10527, 0, "'a'"), -(10528, 0, "'v'"), -(10529, 0, "'e'"), -(10530, 0, "' '"), -(10531, 0, "'a'"), -(10532, 0, "' '"), -(10533, 0, "'n'"), -(10534, 0, "'e'"), -(10535, 0, "'w'"), -(10536, 0, "' '"), -(10537, 0, "'h'"), -(10538, 0, "'o'"), -(10539, 0, "'t'"), -(10540, 0, "'s'"), -(10541, 0, "'p'"), -(10542, 0, "'o'"), -(10543, 0, "'t'"), -(10544, 0, "' '"), -(10545, 0, "'i'"), -(10546, 0, "'n'"), -(10547, 0, "' '"), -(10548, 0, "'p'"), -(10549, 0, "'e'"), -(10550, 0, "'r'"), -(10551, 0, "'f'"), -(10552, 0, "'o'"), -(10553, 0, "'r'"), -(10554, 0, "'m'"), -(10555, 0, "'a'"), -(10556, 0, "'n'"), -(10557, 0, "'c'"), -(10558, 0, "'e'"), -(10559, 0, "':'"), -(10560, 0, "' '"), -(10561, 0, "'F'"), -(10562, 0, "'i'"), -(10563, 0, "'n'"), -(10564, 0, "'d'"), -(10565, 0, "'i'"), -(10566, 0, "'n'"), -(10567, 0, "'g'"), -(10568, 0, "'t'"), -(10569, 0, "'h'"), -(10569, 1, "''"), -(10568, 1, "''"), -(10568, 0, "' '"), -(10569, 0, "'t'"), -(10570, 0, "'h'"), -(10571, 0, "'e'"), -(10572, 0, "' '"), -(10573, 0, "'l'"), -(10574, 0, "'o'"), -(10575, 0, "'c'"), -(10576, 0, "'a'"), -(10577, 0, "'t'"), -(10578, 0, "'i'"), -(10579, 0, "'o'"), -(10580, 0, "'n'"), -(10581, 0, "' '"), -(10582, 0, "'t'"), -(10583, 0, "'o'"), -(10584, 0, "' '"), -(10585, 0, "'i'"), -(10586, 0, "'n'"), -(10587, 0, "'s'"), -(10588, 0, "'e'"), -(10589, 0, "'r'"), -(10590, 0, "'t'"), -(10591, 0, "'.'"), -(10592, 0, "'n'"), -(10593, 0, "'n'"), -(10594, 0, "'T'"), -(10595, 0, "'h'"), -(10596, 0, "'i'"), -(10597, 0, "'s'"), -(10598, 0, "' '"), -(10594, 5, "'M'"), -(10595, 0, "'y'"), -(10596, 0, "' '"), -(10597, 0, "'r'"), -(10598, 0, "'e'"), -(10599, 0, "'f'"), -(10600, 0, "'e'"), -(10601, 0, "'r'"), -(10602, 0, "'e'"), -(10603, 0, "'n'"), -(10604, 0, "'c'"), -(10605, 0, "'e'"), -(10606, 0, "'-'"), -(10607, 0, "'C'"), -(10607, 1, "''"), -(10607, 0, "'c'"), -(10608, 0, "'r'"), -(10609, 0, "'d'"), -(10610, 0, "'t'"), -(10611, 0, "'s'"), -(10612, 0, "' '"), -(10613, 0, "'i'"), -(10614, 0, "'m'"), -(10615, 0, "'p'"), -(10616, 0, "'l'"), -(10617, 0, "'e'"), -(10618, 0, "'m'"), -(10619, 0, "'e'"), -(10620, 0, "'n'"), -(10621, 0, "'t'"), -(10622, 0, "'a'"), -(10623, 0, "'t'"), -(10624, 0, "'i'"), -(10625, 0, "'o'"), -(10626, 0, "'n'"), -(10627, 0, "' '"), -(10594, 34, "'My reference-crdts implementation'"), -(6993, 1, "''"), -(6992, 1, "''"), -(6991, 1, "''"), -(6991, 0, "'8'"), -(6992, 0, "'8'"), -(6993, 0, "'0'"), -(6994, 2, "'M'"), -(6995, 0, "'B'"), -(6971, 1, "''"), -(6970, 1, "''"), -(6970, 0, "'K'"), -(6971, 0, "'B'"), -(7014, 0, "' '"), -(7015, 0, "'T'"), -(7016, 0, "'h'"), -(7017, 0, "'a'"), -(7018, 0, "'t'"), -(7019, 0, "'s'"), -(7020, 0, "' '"), -(7021, 0, "'n'"), -(7022, 0, "'e'"), -(7023, 0, "'a'"), -(7024, 0, "'r'"), -(7025, 0, "'l'"), -(7026, 0, "'y'"), -(7027, 0, "' '"), -(7028, 0, "'a'"), -(7029, 0, "'s'"), -(7030, 0, "' '"), -(7031, 0, "'m'"), -(7032, 0, "'u'"), -(7033, 0, "'c'"), -(7034, 0, "'h'"), -(7035, 0, "' '"), -(7036, 0, "'r'"), -(7037, 0, "'a'"), -(7038, 0, "'m'"), -(7039, 0, "' '"), -(7040, 0, "'a'"), -(7041, 0, "'s'"), -(7042, 0, "' '"), -(7014, 29, "''"), -(7014, 0, "' '"), -(7015, 0, "'T'"), -(7016, 0, "'h'"), -(7017, 0, "'e'"), -(7018, 0, "' '"), -(7019, 0, "'d'"), -(7020, 0, "'o'"), -(7021, 0, "'c'"), -(7022, 0, "'u'"), -(7023, 0, "'m'"), -(7024, 0, "'e'"), -(7025, 0, "'n'"), -(7026, 0, "'t'"), -(7027, 0, "' '"), -(7028, 0, "'i'"), -(7029, 0, "'s'"), -(7030, 0, "'n'"), -(7031, 0, "'''"), -(7032, 0, "'t'"), -(7033, 0, "' '"), -(7034, 0, "'e'"), -(7035, 0, "'v'"), -(7036, 0, "'e'"), -(7037, 0, "'n'"), -(7038, 0, "' '"), -(7039, 0, "'v'"), -(7040, 0, "'e'"), -(7041, 0, "'r'"), -(7042, 0, "'y'"), -(7043, 0, "' '"), -(7044, 0, "'b'"), -(7045, 0, "'i'"), -(7046, 0, "'g'"), -(7047, 0, "'!'"), -(7014, 0, "' '"), -(7015, 0, "'T'"), -(7016, 0, "'h'"), -(7017, 0, "'a'"), -(7018, 0, "'t'"), -(7019, 0, "'s'"), -(7020, 0, "' '"), -(7021, 0, "'n'"), -(7022, 0, "'e'"), -(7023, 0, "'r'"), -(7024, 0, "'a'"), -(7025, 0, "'l'"), -(7026, 0, "'y'"), -(7027, 0, "' '"), -(7021, 7, "'n'"), -(7022, 0, "'e'"), -(7023, 0, "'a'"), -(7024, 0, "'r'"), -(7025, 0, "'l'"), -(7026, 0, "'y'"), -(7027, 0, "' '"), -(7028, 0, "'a'"), -(7029, 0, "'s'"), -(7030, 0, "' '"), -(7031, 0, "'m'"), -(7032, 0, "'u'"), -(7033, 0, "'c'"), -(7034, 0, "'h'"), -(7035, 0, "' '"), -(7036, 0, "'a'"), -(7037, 0, "'s'"), -(7038, 0, "' '"), -(7039, 0, "'s'"), -(7040, 0, "'l'"), -(7041, 0, "'a'"), -(7042, 0, "'c'"), -(7043, 0, "'k'"), -(7044, 0, "'.'"), -(7015, 30, "'~'"), -(7015, 1, "'Thats nearly as much as slack.'"), -(7015, 0, "'`'"), -(7016, 0, "'`'"), -(7016, 1, "''"), -(7015, 1, "''"), -(7015, 0, "'~'"), -(7016, 0, "'~'"), -(7047, 0, "'~'"), -(7048, 0, "'~'"), -(7048, 1, "''"), -(7047, 1, "''"), -(7047, 0, "'-'"), -(7048, 0, "'-'"), -(7047, 2, "''"), -(7047, 0, "'~~'"), -(10662, 0, "'n'"), -(10662, 0, "'n'"), -(10663, 0, "'S'"), -(10664, 0, "'o'"), -(10665, 0, "' '"), -(10666, 0, "'i'"), -(10667, 0, "'m'"), -(10668, 0, "'a'"), -(10669, 0, "'g'"), -(10670, 0, "'i'"), -(10671, 0, "'n'"), -(10672, 0, "'e'"), -(10673, 0, "' '"), -(10674, 0, "'t'"), -(10675, 0, "'h'"), -(10676, 0, "'e'"), -(10677, 0, "' '"), -(10678, 0, "'u'"), -(10679, 0, "'s'"), -(10680, 0, "'e'"), -(10681, 0, "'r'"), -(10682, 0, "' '"), -(10683, 0, "'t'"), -(10684, 0, "'y'"), -(10685, 0, "'p'"), -(10686, 0, "'e'"), -(10687, 0, "'s'"), -(10688, 0, "' '"), -(10689, 0, "'a'"), -(10690, 0, "'n'"), -(10691, 0, "' '"), -(10692, 0, "'''"), -(10693, 0, "'a'"), -(10694, 0, "'''"), -(10695, 0, "' '"), -(10696, 0, "'i'"), -(10697, 0, "'n'"), -(10698, 0, "' '"), -(10699, 0, "'t'"), -(10700, 0, "'h'"), -(10701, 0, "'e'"), -(10702, 0, "' '"), -(10703, 0, "'m'"), -(10704, 0, "'i'"), -(10705, 0, "'d'"), -(10706, 0, "'d'"), -(10707, 0, "'l'"), -(10708, 0, "'e'"), -(10709, 0, "' '"), -(10710, 0, "'o'"), -(10711, 0, "'f'"), -(10712, 0, "' '"), -(10713, 0, "'t'"), -(10714, 0, "'h'"), -(10715, 0, "'e'"), -(10716, 0, "' '"), -(10717, 0, "'d'"), -(10718, 0, "'o'"), -(10719, 0, "'c'"), -(10720, 0, "'u'"), -(10721, 0, "'m'"), -(10722, 0, "'e'"), -(10723, 0, "'n'"), -(10724, 0, "'t'"), -(10725, 0, "' '"), -(10726, 0, "'('"), -(10727, 0, "'a'"), -(10728, 0, "'t'"), -(10729, 0, "' '"), -(10730, 0, "'p'"), -(10731, 0, "'o'"), -(10732, 0, "'s'"), -(10733, 0, "'i'"), -(10734, 0, "'t'"), -(10735, 0, "'i'"), -(10736, 0, "'o'"), -(10737, 0, "'n'"), -(10738, 0, "' '"), -(10739, 0, "'5'"), -(10740, 0, "'0'"), -(10741, 0, "'0'"), -(10742, 0, "'0'"), -(10743, 0, "'0'"), -(10743, 1, "''"), -(10743, 0, "')'"), -(10744, 0, "'.'"), -(10745, 0, "' '"), -(10663, 83, "'So imagine the user types an 'a' in the middle of the document (at position 5000).'"), -(10746, 1, "''"), -(10745, 1, "''"), -(10745, 0, "' '"), -(10779, 0, "' '"), -(10780, 0, "'n'"), -(10781, 0, "'e'"), -(10782, 0, "'e'"), -(10783, 0, "'d'"), -(10784, 0, "'s'"), -(10785, 0, "' '"), -(10786, 0, "'t'"), -(10787, 0, "'o'"), -(10788, 0, "' '"), -(10789, 0, "'f'"), -(10790, 0, "'i'"), -(10791, 0, "'n'"), -(10792, 0, "'d'"), -(10793, 0, "' '"), -(10663, 131, "'So imagine the user types an 'a' in the middle of the document (at position 5000). My reference-crdts implementation needs to find'"), -(10662, 0, "'n'"), -(10662, 0, "'n'"), -(10663, 0, "'```javascriptnstate = [n { item: 'a', id: ['seph', 0], seq, parent: null },n { item: 'X', id, seq, parent: ['seph', 0] },n { item: 'b', id, seq, parent: ['seph', 0] },n { item: 'c', id, seq, parent: [..] }n]n```'"), -(10662, 0, "'n'"), -(10663, 0, "'S'"), -(10664, 0, "'o'"), -(10665, 0, "' '"), -(10666, 0, "'w'"), -(10667, 0, "'e'"), -(10668, 0, "' '"), -(10669, 0, "'h'"), -(10670, 0, "'a'"), -(10671, 0, "'v'"), -(10672, 0, "'e'"), -(10673, 0, "' '"), -(10674, 0, "'a'"), -(10675, 0, "' '"), -(10676, 0, "'d'"), -(10677, 0, "'o'"), -(10678, 0, "'c'"), -(10679, 0, "'u'"), -(10680, 0, "'m'"), -(10681, 0, "'e'"), -(10682, 0, "'n'"), -(10683, 0, "'t'"), -(10684, 0, "' '"), -(10685, 0, "'l'"), -(10686, 0, "'i'"), -(10687, 0, "'k'"), -(10688, 0, "'e'"), -(10689, 0, "' '"), -(10690, 0, "'t'"), -(10691, 0, "'h'"), -(10692, 0, "'i'"), -(10693, 0, "'s'"), -(10694, 0, "':'"), -(10695, 0, "'n'"), -(10663, 0, "'I'"), -(10664, 0, "'n'"), -(10665, 0, "'c'"), -(10666, 0, "'l'"), -(10667, 0, "'u'"), -(10668, 0, "'d'"), -(10669, 0, "'i'"), -(10670, 0, "'n'"), -(10671, 0, "'g'"), -(10672, 0, "' '"), -(10663, 10, "''"), -(10694, 0, "','"), -(10695, 0, "' '"), -(10696, 0, "'n'"), -(10697, 0, "'o'"), -(10698, 0, "'w'"), -(10694, 5, "'.'"), -(10695, 0, "' '"), -(10696, 0, "'('"), -(10696, 1, "''"), -(10696, 0, "'O'"), -(10697, 0, "'h'"), -(10698, 0, "','"), -(10699, 0, "' '"), -(10700, 0, "'i'"), -(10701, 0, "'t'"), -(10702, 0, "' '"), -(10703, 0, "'a'"), -(10704, 0, "'l'"), -(10705, 0, "'s'"), -(10706, 0, "'o'"), -(10707, 0, "' '"), -(10708, 0, "'h'"), -(10709, 0, "'a'"), -(10710, 0, "'s'"), -(10711, 0, "' '"), -(10712, 0, "'d'"), -(10713, 0, "'e'"), -(10714, 0, "'l'"), -(10708, 7, "'m'"), -(10709, 0, "'a'"), -(10710, 0, "'r'"), -(10711, 0, "'k'"), -(10712, 0, "'s'"), -(10713, 0, "' '"), -(10714, 0, "'w'"), -(10715, 0, "'h'"), -(10716, 0, "'i'"), -(10717, 0, "'c'"), -(10718, 0, "'h'"), -(10719, 0, "' '"), -(10720, 0, "'i'"), -(10721, 0, "'t'"), -(10722, 0, "'e'"), -(10723, 0, "'m'"), -(10724, 0, "'s'"), -(10725, 0, "' '"), -(10726, 0, "'a'"), -(10727, 0, "'r'"), -(10728, 0, "'e'"), -(10729, 0, "' '"), -(10730, 0, "'d'"), -(10731, 0, "'e'"), -(10732, 0, "'l'"), -(10733, 0, "'e'"), -(10734, 0, "'t'"), -(10735, 0, "'e'"), -(10736, 0, "'d'"), -(10684, 10, "''"), -(10684, 0, "','"), -(10685, 0, "' '"), -(10686, 0, "'w'"), -(10687, 0, "'h'"), -(10688, 0, "'i'"), -(10689, 0, "'c'"), -(10690, 0, "'h'"), -(10691, 0, "' '"), -(10692, 0, "'i'"), -(10693, 0, "'s'"), -(10694, 0, "' '"), -(10695, 0, "'a'"), -(10696, 0, "' '"), -(10697, 0, "'l'"), -(10698, 0, "'i'"), -(10699, 0, "'s'"), -(10700, 0, "'t'"), -(10701, 0, "' '"), -(10702, 0, "'o'"), -(10703, 0, "'f'"), -(10704, 0, "' '"), -(10705, 0, "'i'"), -(10706, 0, "'t'"), -(10707, 0, "'e'"), -(10708, 0, "'m'"), -(10709, 0, "'s'"), -(10712, 2, "'A'"), -(10713, 0, "'n'"), -(10714, 0, "'d'"), -(10715, 4, "' '"), -(10716, 0, "'w'"), -(10717, 0, "'e'"), -(10718, 0, "'''"), -(10719, 0, "'r'"), -(10720, 0, "'e'"), -(10731, 1, "''"), -(10731, 0, "'i'"), -(10732, 0, "'n'"), -(10733, 0, "'g'"), -(10758, 1, "''"), -(10758, 0, "','"), -(10759, 0, "' '"), -(10760, 0, "'l'"), -(10761, 0, "'i'"), -(10762, 0, "'k'"), -(10763, 0, "'e'"), -(10764, 0, "' '"), -(10765, 0, "'t'"), -(10766, 0, "'h'"), -(10767, 0, "'i'"), -(10768, 0, "'s'"), -(10769, 0, "':'"), -(10758, 12, "''"), -(10758, 0, "':'"), -(10837, 47, "''"), -(10785, 0, "' { item: 'X', id, seq, parent: ['seph', 0] },n'"), -(10884, 0, "'n { item: 'X', id, seq, parent: ['seph', 0] },'"), -(10785, 47, "''"), -(10947, 0, "'i'"), -(10900, 0, "'i'"), -(10853, 0, "'i'"), -(10800, 0, "'i'"), -(10951, 0, "'s'"), -(10903, 0, "'s'"), -(10855, 0, "'s'"), -(10801, 0, "'s'"), -(10955, 0, "'D'"), -(10906, 0, "'D'"), -(10857, 0, "'D'"), -(10802, 0, "'D'"), -(10959, 0, "'e'"), -(10909, 0, "'e'"), -(10859, 0, "'e'"), -(10803, 0, "'e'"), -(10963, 0, "'l'"), -(10912, 0, "'l'"), -(10861, 0, "'l'"), -(10804, 0, "'l'"), -(10967, 0, "'e'"), -(10915, 0, "'e'"), -(10863, 0, "'e'"), -(10805, 0, "'e'"), -(10971, 0, "'t'"), -(10918, 0, "'t'"), -(10865, 0, "'t'"), -(10806, 0, "'t'"), -(10975, 0, "'e'"), -(10921, 0, "'e'"), -(10867, 0, "'e'"), -(10807, 0, "'e'"), -(10979, 0, "'D'"), -(10924, 0, "'D'"), -(10869, 0, "'D'"), -(10808, 0, "'D'"), -(10982, 1, "''"), -(10926, 1, "''"), -(10870, 1, "''"), -(10808, 1, "''"), -(10979, 0, "'d'"), -(10924, 0, "'d'"), -(10869, 0, "'d'"), -(10808, 0, "'d'"), -(10983, 0, "':'"), -(10927, 0, "':'"), -(10871, 0, "':'"), -(10809, 0, "':'"), -(10987, 0, "' '"), -(10930, 0, "' '"), -(10873, 0, "' '"), -(10810, 0, "' '"), -(10991, 0, "'f'"), -(10933, 0, "'f'"), -(10875, 0, "'f'"), -(10811, 0, "'f'"), -(10995, 0, "'a'"), -(10936, 0, "'a'"), -(10877, 0, "'a'"), -(10812, 0, "'a'"), -(10999, 0, "'l'"), -(10939, 0, "'l'"), -(10879, 0, "'l'"), -(10813, 0, "'l'"), -(11003, 0, "'s'"), -(10942, 0, "'s'"), -(10881, 0, "'s'"), -(10814, 0, "'s'"), -(11007, 0, "'e'"), -(10945, 0, "'e'"), -(10883, 0, "'e'"), -(10815, 0, "'e'"), -(11011, 0, "','"), -(10948, 0, "','"), -(10885, 0, "','"), -(10816, 0, "','"), -(11015, 0, "' '"), -(10951, 0, "' '"), -(10887, 0, "' '"), -(10817, 0, "' '"), -(11114, 0, "'i'"), -(11115, 0, "'n'"), -(11116, 0, "' '"), -(11117, 0, "'r'"), -(11118, 0, "'a'"), -(11119, 0, "' '"), -(11120, 0, "'r'"), -(11121, 0, "'e'"), -(11122, 0, "'a'"), -(11122, 1, "''"), -(11121, 1, "''"), -(11120, 1, "''"), -(11119, 1, "''"), -(11118, 1, "''"), -(11117, 1, "''"), -(11117, 0, "'a'"), -(11118, 0, "' '"), -(11119, 0, "'r'"), -(11120, 0, "'e'"), -(11121, 0, "'a'"), -(11122, 0, "'l'"), -(11123, 0, "' '"), -(11124, 0, "'d'"), -(11125, 0, "'o'"), -(11126, 0, "'c'"), -(11127, 0, "'u'"), -(11128, 0, "'m'"), -(11129, 0, "'e'"), -(11130, 0, "'n'"), -(11131, 0, "'t'"), -(11132, 0, "','"), -(11133, 0, "' '"), -(11134, 0, "'t'"), -(11135, 0, "'h'"), -(11136, 0, "'i'"), -(11137, 0, "'s'"), -(11138, 0, "' '"), -(11114, 25, "'a'"), -(11115, 0, "'t'"), -(11116, 0, "' '"), -(11117, 0, "'l'"), -(11118, 0, "'i'"), -(11119, 0, "'k'"), -(11120, 0, "'e'"), -(11121, 0, "','"), -(11122, 0, "' '"), -(11123, 3, "''"), -(11186, 0, "' '"), -(11187, 0, "'w'"), -(11188, 0, "'h'"), -(11189, 0, "'i'"), -(11190, 0, "'c'"), -(11191, 0, "'h'"), -(11192, 0, "' '"), -(11193, 0, "'i'"), -(11194, 0, "'t'"), -(11195, 0, "'e'"), -(11196, 0, "'m'"), -(11197, 0, "' '"), -(11198, 0, "'i'"), -(11199, 0, "'n'"), -(11200, 0, "' '"), -(11201, 0, "'t'"), -(11202, 0, "'h'"), -(11203, 0, "' '"), -(11204, 0, "'e'"), -(10947, 5, "'t'"), -(10948, 0, "'r'"), -(10949, 0, "'u'"), -(10950, 0, "'e'"), -(10952, 0, "' '"), -(10711, 4, "' '"), -(10712, 0, "'O'"), -(10713, 0, "'h'"), -(10714, 0, "','"), -(10715, 0, "' '"), -(10716, 0, "'a'"), -(10717, 0, "'n'"), -(10718, 0, "'d'"), -(10719, 0, "' '"), -(10720, 0, "'u'"), -(10721, 0, "'n'"), -(10722, 0, "'l'"), -(10723, 0, "'i'"), -(10724, 0, "'k'"), -(10725, 0, "'e'"), -(10726, 0, "' '"), -(10727, 0, "'a'"), -(10728, 0, "'b'"), -(10729, 0, "'o'"), -(10730, 0, "'v'"), -(10731, 0, "'e'"), -(10712, 20, "'I'"), -(10713, 0, "' '"), -(10714, 0, "'d'"), -(10715, 0, "'i'"), -(10716, 0, "'d'"), -(10717, 0, "'n'"), -(10718, 0, "'''"), -(10719, 0, "'t'"), -(10720, 0, "' '"), -(10721, 0, "'m'"), -(10722, 0, "'e'"), -(10723, 0, "'n'"), -(10724, 0, "'t'"), -(10725, 0, "'i'"), -(10726, 0, "'o'"), -(10727, 0, "'n'"), -(10728, 0, "' '"), -(10729, 0, "'t'"), -(10730, 0, "'h'"), -(10731, 0, "'i'"), -(10732, 0, "'s'"), -(10733, 0, "' '"), -(10734, 0, "'a'"), -(10735, 0, "'b'"), -(10736, 0, "'o'"), -(10737, 0, "'v'"), -(10738, 0, "'e'"), -(10739, 0, "' '"), -(10740, 0, "'b'"), -(10741, 0, "'u'"), -(10742, 0, "'t'"), -(10743, 6, "' '"), -(10744, 0, "'w'"), -(10745, 0, "'e'"), -(10751, 0, "' '"), -(10752, 0, "'n'"), -(10753, 0, "'e'"), -(10754, 0, "'e'"), -(10755, 0, "'d'"), -(10752, 4, "''"), -(10751, 1, "''"), -(10758, 1, "''"), -(10757, 1, "''"), -(10756, 1, "''"), -(11209, 18, "''"), -(11209, 0, "'t'"), -(11210, 0, "'h'"), -(11211, 0, "'e'"), -(11212, 0, "' '"), -(11209, 4, "'w'"), -(11210, 0, "'h'"), -(11211, 0, "'e'"), -(11212, 0, "'r'"), -(11213, 0, "'e'"), -(11214, 0, "' '"), -(11215, 0, "'t'"), -(11216, 0, "'o'"), -(11217, 0, "' '"), -(11218, 0, "'i'"), -(11219, 0, "'n'"), -(11220, 0, "'s'"), -(11221, 0, "'e'"), -(11222, 0, "'r'"), -(11223, 0, "'t'"), -(11204, 20, "'c'"), -(11205, 0, "'o'"), -(11206, 0, "'r'"), -(11207, 0, "'r'"), -(11208, 0, "'e'"), -(11209, 0, "'l'"), -(11210, 0, "'a'"), -(11211, 0, "'t'"), -(11212, 0, "'e'"), -(11213, 0, "' '"), -(11214, 0, "'t'"), -(11215, 0, "'h'"), -(11216, 0, "'a'"), -(11217, 0, "'t'"), -(11218, 0, "' '"), -(11219, 0, "'p'"), -(11220, 0, "'o'"), -(11221, 0, "'s'"), -(11222, 0, "'i'"), -(11223, 0, "'t'"), -(11224, 0, "'i'"), -(11225, 0, "'o'"), -(11226, 0, "'n'"), -(11227, 0, "' '"), -(11228, 0, "'w'"), -(11229, 0, "'i'"), -(11230, 0, "'t'"), -(11231, 0, "'h'"), -(11232, 0, "' '"), -(11233, 0, "'a'"), -(11234, 0, "' '"), -(11235, 0, "'l'"), -(11236, 0, "'i'"), -(11237, 0, "'s'"), -(11238, 0, "'t'"), -(11239, 0, "' '"), -(11240, 0, "'i'"), -(11241, 0, "'t'"), -(11242, 0, "'e'"), -(11243, 0, "'m'"), -(11244, 0, "','"), -(11245, 0, "' '"), -(11246, 0, "'s'"), -(11247, 0, "'o'"), -(11248, 0, "' '"), -(11249, 0, "'w'"), -(11250, 0, "'e'"), -(11251, 0, "' '"), -(11252, 0, "'c'"), -(11253, 0, "'a'"), -(11254, 0, "'n'"), -(11255, 0, "' '"), -(11256, 0, "'f'"), -(11257, 0, "'i'"), -(11258, 0, "'g'"), -(11259, 0, "'u'"), -(11260, 0, "'r'"), -(11261, 0, "'e'"), -(11262, 0, "' '"), -(11263, 0, "'o'"), -(11264, 0, "'u'"), -(11265, 0, "'t'"), -(11266, 0, "':'"), -(11267, 0, "'n'"), -(11268, 0, "'n'"), -(11269, 0, "'-'"), -(11270, 0, "' '"), -(11271, 0, "'W'"), -(11272, 0, "'h'"), -(11273, 0, "'e'"), -(11274, 0, "'r'"), -(11275, 0, "'e'"), -(11276, 0, "' '"), -(11277, 0, "'t'"), -(11277, 1, "''"), -(11271, 6, "'W'"), -(11272, 0, "'h'"), -(11273, 0, "'a'"), -(11274, 0, "'t'"), -(11275, 0, "' '"), -(11276, 0, "'o'"), -(11277, 0, "'u'"), -(11278, 0, "'r'"), -(11279, 0, "' '"), -(11280, 0, "'n'"), -(11281, 0, "'e'"), -(11282, 0, "'w'"), -(11276, 7, "'t'"), -(11277, 0, "'h'"), -(11278, 0, "'e'"), -(11279, 0, "' '"), -(11280, 0, "'n'"), -(11281, 0, "'e'"), -(11282, 0, "'w'"), -(11283, 0, "' '"), -(11284, 0, "'i'"), -(11285, 0, "'t'"), -(11286, 0, "'e'"), -(11287, 0, "'m'"), -(11288, 0, "'''"), -(11289, 0, "'s'"), -(11290, 0, "' '"), -(11291, 0, "'p'"), -(11292, 0, "'a'"), -(11293, 0, "'r'"), -(11294, 0, "'e'"), -(11295, 0, "'n'"), -(11296, 0, "'t'"), -(11297, 0, "' '"), -(11298, 0, "'s'"), -(11299, 0, "'h'"), -(11300, 0, "'o'"), -(11301, 0, "'u'"), -(11302, 0, "'l'"), -(11303, 0, "'d'"), -(11304, 0, "' '"), -(11305, 0, "'b'"), -(11306, 0, "'e'"), -(11307, 0, "'n'"), -(11308, 0, "'-'"), -(11309, 0, "' '"), -(11310, 0, "'a'"), -(11311, 0, "'n'"), -(11312, 0, "'d'"), -(11313, 0, "' '"), -(11314, 0, "'t'"), -(11315, 0, "'h'"), -(11316, 0, "'e'"), -(11317, 0, "'n'"), -(11318, 0, "' '"), -(11319, 0, "'w'"), -(11320, 0, "'h'"), -(11321, 0, "'e'"), -(11322, 0, "'r'"), -(11323, 0, "'e'"), -(11324, 0, "' '"), -(11325, 0, "'t'"), -(11326, 0, "'h'"), -(11327, 0, "'e'"), -(11328, 0, "' '"), -(11329, 0, "'n'"), -(11330, 0, "'e'"), -(11331, 0, "'w'"), -(11332, 0, "' '"), -(11333, 0, "'i'"), -(11334, 0, "'t'"), -(11335, 0, "'e'"), -(11336, 0, "'m'"), -(11337, 0, "' '"), -(11338, 0, "'w'"), -(11339, 0, "'i'"), -(11340, 0, "'l'"), -(11341, 0, "'l'"), -(11342, 0, "' '"), -(11343, 0, "'b'"), -(11344, 0, "'e'"), -(11345, 0, "' '"), -(11346, 0, "'i'"), -(11347, 0, "'n'"), -(11348, 0, "'s'"), -(11349, 0, "'e'"), -(11350, 0, "'r'"), -(11351, 0, "'t'"), -(11352, 0, "'e'"), -(11353, 0, "'d'"), -(11342, 0, "' '"), -(11343, 0, "'a'"), -(11344, 0, "'c'"), -(11345, 0, "'t'"), -(11346, 0, "'u'"), -(11347, 0, "'a'"), -(11348, 0, "'l'"), -(11349, 0, "'l'"), -(11350, 0, "'y'"), -(11355, 8, "'s'"), -(11356, 0, "'p'"), -(11357, 0, "'l'"), -(11358, 0, "'i'"), -(11359, 0, "'c'"), -(11360, 0, "'e'"), -(11361, 0, "'d'"), -(11362, 0, "' '"), -(11363, 0, "'i'"), -(11364, 0, "'n'"), -(11367, 0, "'M'"), -(11368, 0, "'y'"), -(11369, 0, "' '"), -(11370, 0, "'i'"), -(11371, 0, "'m'"), -(10660, 1, "''"), -(10660, 0, "','"), -(10661, 0, "' '"), -(10661, 1, "''"), -(10660, 1, "''"), -(10660, 0, "'.'"), -(10601, 0, "' '"), -(10602, 0, "'f'"), -(10603, 0, "'e'"), -(10604, 0, "'w'"), -(10610, 7, "''"), -(10609, 1, "''"), -(10609, 3, "''"), -(10621, 0, "' '"), -(10622, 0, "'h'"), -(10623, 0, "'o'"), -(10624, 0, "'t'"), -(10625, 0, "'s'"), -(10626, 0, "'p'"), -(10627, 0, "'o'"), -(10628, 0, "'t'"), -(10629, 0, "'s'"), -(10662, 1, "''"), -(10662, 0, "','"), -(10663, 0, "' '"), -(10664, 0, "'a'"), -(10665, 0, "'n'"), -(10666, 0, "'d'"), -(10667, 0, "' '"), -(10668, 0, "'i'"), -(10669, 0, "'n'"), -(10670, 0, "'s'"), -(10671, 0, "'e'"), -(10672, 0, "'r'"), -(10673, 0, "'t'"), -(10674, 0, "'i'"), -(10675, 0, "'n'"), -(10676, 0, "'g'"), -(10668, 0, "'a'"), -(10669, 0, "'c'"), -(10670, 0, "'t'"), -(10671, 0, "'u'"), -(10672, 0, "'a'"), -(10673, 0, "'l'"), -(10674, 0, "'l'"), -(10675, 0, "'y'"), -(10676, 0, "' '"), -(10686, 0, "'.'"), -(11398, 0, "'l'"), -(11399, 0, "'e'"), -(11400, 0, "'m'"), -(11401, 0, "'e'"), -(11402, 0, "'n'"), -(11403, 0, "'t'"), -(11404, 0, "'a'"), -(11405, 0, "'t'"), -(11396, 10, "'i'"), -(11397, 0, "'m'"), -(11398, 0, "'p'"), -(11399, 0, "'l'"), -(11400, 0, "'e'"), -(11401, 0, "'m'"), -(11402, 0, "'e'"), -(11403, 0, "'n'"), -(11404, 0, "'t'"), -(11405, 0, "'a'"), -(11406, 0, "'t'"), -(11407, 0, "'i'"), -(11408, 0, "'o'"), -(11409, 0, "'n'"), -(11410, 0, "' '"), -(11411, 0, "'d'"), -(11412, 0, "'o'"), -(11413, 0, "'e'"), -(11414, 0, "'s'"), -(11415, 0, "' '"), -(11416, 0, "'a'"), -(11417, 0, "' '"), -(11418, 0, "'l'"), -(11419, 0, "'i'"), -(11420, 0, "'n'"), -(11421, 0, "'e'"), -(11422, 0, "'a'"), -(11423, 0, "'r'"), -(11424, 0, "' '"), -(11425, 0, "'s'"), -(11426, 0, "'c'"), -(11427, 0, "'a'"), -(11428, 0, "'n'"), -(11429, 0, "' '"), -(11430, 0, "'t'"), -(11431, 0, "'h'"), -(11432, 0, "'r'"), -(11433, 0, "'o'"), -(11434, 0, "'u'"), -(11435, 0, "'g'"), -(11436, 0, "'h'"), -(11437, 0, "' '"), -(11438, 0, "'t'"), -(11439, 0, "'h'"), -(11440, 0, "'e'"), -(11441, 0, "' '"), -(11442, 0, "'d'"), -(11443, 0, "'o'"), -(11444, 0, "'c'"), -(11445, 0, "'u'"), -(11446, 0, "'m'"), -(11447, 0, "'e'"), -(11448, 0, "'n'"), -(11449, 0, "'t'"), -(11450, 0, "' '"), -(11451, 0, "'t'"), -(11452, 0, "'o'"), -(11453, 0, "' '"), -(11454, 0, "'f'"), -(11455, 0, "'i'"), -(11456, 0, "'n'"), -(11457, 0, "'d'"), -(11458, 0, "' '"), -(11459, 0, "'t'"), -(11460, 0, "'h'"), -(11461, 0, "'i'"), -(11462, 0, "'s'"), -(11463, 0, "' '"), -(11464, 0, "'l'"), -(11465, 0, "'o'"), -(11466, 0, "'c'"), -(11467, 0, "'a'"), -(11468, 0, "'t'"), -(11469, 0, "'i'"), -(11470, 0, "'o'"), -(11471, 0, "'n'"), -(11472, 0, "'.'"), -(11473, 0, "' '"), -(11474, 0, "'I'"), -(11475, 0, "'t'"), -(11476, 0, "'s'"), -(11477, 0, "' '"), -(11478, 0, "'a'"), -(11479, 0, "' '"), -(11480, 0, "'f'"), -(11481, 0, "'o'"), -(11482, 0, "'r'"), -(11483, 0, "'('"), -(11484, 0, "')'"), -(11485, 0, "' '"), -(11486, 0, "'l'"), -(11487, 0, "'o'"), -(11488, 0, "'o'"), -(11489, 0, "'p'"), -(11490, 0, "'.'"), -(11491, 0, "' '"), -(11492, 0, "'w'"), -(11493, 0, "'e'"), -(11494, 0, "' '"), -(11494, 1, "''"), -(11493, 1, "''"), -(11492, 1, "''"), -(11492, 0, "'W'"), -(11493, 0, "'e'"), -(11494, 0, "' '"), -(11495, 0, "'c'"), -(11496, 0, "'o'"), -(11497, 0, "'u'"), -(11498, 0, "'n'"), -(11499, 0, "'t'"), -(11500, 0, "' '"), -(11501, 0, "'a'"), -(11502, 0, "'l'"), -(11503, 0, "'l'"), -(11504, 0, "' '"), -(11505, 0, "'t'"), -(11506, 0, "'h'"), -(11507, 0, "'e'"), -(11508, 0, "' '"), -(11509, 0, "'n'"), -(11510, 0, "'o'"), -(11511, 0, "'t'"), -(11512, 0, "'-'"), -(11513, 0, "'d'"), -(11514, 0, "'e'"), -(11515, 0, "'l'"), -(11516, 0, "'e'"), -(11517, 0, "'t'"), -(11518, 0, "'e'"), -(11519, 0, "'d'"), -(11520, 0, "' '"), -(11521, 0, "'i'"), -(11522, 0, "'t'"), -(11523, 0, "'e'"), -(11524, 0, "'m'"), -(11525, 0, "'s'"), -(11526, 0, "' '"), -(11527, 0, "'u'"), -(11528, 0, "'n'"), -(11529, 0, "'t'"), -(11530, 0, "'i'"), -(11531, 0, "'l'"), -(11532, 0, "' '"), -(11473, 0, "' '"), -(11474, 0, "'T'"), -(11475, 0, "'h'"), -(11476, 0, "'a'"), -(11477, 0, "'t'"), -(11478, 0, "' '"), -(11479, 0, "'s'"), -(11480, 0, "'o'"), -(11481, 0, "'u'"), -(11482, 0, "'n'"), -(11483, 0, "'d'"), -(11484, 0, "'s'"), -(11485, 0, "' '"), -(11486, 0, "'f'"), -(11487, 0, "'a'"), -(11488, 0, "'n'"), -(11489, 0, "'c'"), -(11490, 0, "'y'"), -(11491, 0, "' '"), -(11492, 0, "'-'"), -(11493, 0, "' '"), -(11494, 0, "'b'"), -(11495, 0, "'u'"), -(11496, 0, "'t'"), -(11497, 0, "' '"), -(11498, 4, "'i'"), -(11499, 0, "'t'"), -(11500, 0, "'s'"), -(11557, 0, "'w'"), -(11558, 0, "'e'"), -(11559, 0, "'''"), -(11560, 0, "'v'"), -(11561, 0, "'e'"), -(11562, 0, "' '"), -(11563, 0, "'c'"), -(11564, 0, "'o'"), -(11565, 0, "'u'"), -(11566, 0, "'n'"), -(11567, 0, "'t'"), -(11568, 0, "'e'"), -(11569, 0, "'d'"), -(11570, 0, "' '"), -(11571, 0, "'p'"), -(11572, 0, "'a'"), -(11573, 0, "'s'"), -(11574, 0, "'t'"), -(11575, 0, "' '"), -(11576, 0, "'1'"), -(11577, 0, "'0'"), -(11577, 1, "''"), -(11576, 1, "''"), -(11576, 0, "'5'"), -(11577, 0, "'0'"), -(11578, 0, "'0'"), -(11579, 0, "'0'"), -(11580, 0, "' '"), -(11581, 0, "'i'"), -(11582, 0, "'t'"), -(11583, 0, "'e'"), -(11584, 0, "'m'"), -(11585, 0, "'s'"), -(11586, 0, "' '"), -(11587, 0, "'w'"), -(11588, 0, "'h'"), -(11589, 0, "'i'"), -(11590, 0, "'c'"), -(11591, 0, "'h'"), -(11592, 0, "' '"), -(11593, 0, "'a'"), -(11594, 0, "'r'"), -(11595, 0, "'e'"), -(11596, 0, "'n'"), -(11597, 0, "'''"), -(11598, 0, "'t'"), -(11599, 0, "' '"), -(11600, 0, "'d'"), -(11601, 0, "'e'"), -(11602, 0, "'l'"), -(11603, 0, "'e'"), -(11604, 0, "'t'"), -(11605, 0, "'e'"), -(11606, 0, "'d'"), -(11607, 0, "' '"), -(11608, 0, "'a'"), -(11609, 0, "'n'"), -(11610, 0, "'d'"), -(11611, 0, "' '"), -(11612, 0, "'r'"), -(11613, 0, "'e'"), -(11614, 0, "'t'"), -(11615, 0, "'u'"), -(11616, 0, "'r'"), -(11617, 0, "'n'"), -(11618, 0, "' '"), -(11619, 0, "'t'"), -(11620, 0, "'h'"), -(11621, 0, "'e'"), -(11622, 0, "' '"), -(11623, 0, "'i'"), -(11624, 0, "'n'"), -(11625, 0, "'d'"), -(11626, 0, "'e'"), -(11627, 0, "'x'"), -(11628, 0, "' '"), -(11628, 1, "''"), -(11623, 0, "'r'"), -(11624, 0, "'e'"), -(11625, 0, "'s'"), -(11626, 0, "'u'"), -(11627, 0, "'l'"), -(11628, 0, "'t'"), -(11629, 0, "'i'"), -(11630, 0, "'n'"), -(11631, 0, "'g'"), -(11632, 0, "' '"), -(11638, 0, "' '"), -(11639, 0, "'('"), -(11640, 0, "'e'"), -(11641, 0, "'g'"), -(11641, 1, "''"), -(11640, 1, "''"), -(11639, 1, "''"), -(11638, 1, "''"), -(11638, 0, "'.'"), -(11639, 0, "' '"), -(11640, 0, "'E'"), -(11640, 1, "''"), -(11640, 0, "'('"), -(11641, 0, "'E'"), -(11642, 0, "'g'"), -(11643, 0, "' '"), -(11644, 0, "'5'"), -(11645, 0, "'5'"), -(11646, 0, "'5'"), -(11646, 1, "''"), -(11646, 0, "'0'"), -(11647, 0, "'0'"), -(11648, 0, "'0'"), -(11648, 1, "''"), -(11647, 1, "''"), -(11646, 1, "''"), -(11645, 1, "''"), -(11644, 1, "''"), -(11638, 6, "' '"), -(11639, 0, "'-'"), -(11640, 0, "' '"), -(11641, 0, "'w'"), -(11642, 0, "'h'"), -(11643, 0, "'i'"), -(11644, 0, "'c'"), -(11645, 0, "'h'"), -(11646, 0, "' '"), -(11647, 0, "'w'"), -(11648, 0, "'i'"), -(11649, 0, "'l'"), -(11650, 0, "'l'"), -(11651, 0, "' '"), -(11652, 0, "'b'"), -(11653, 0, "'e'"), -(11654, 0, "' '"), -(11655, 0, "'b'"), -(11656, 0, "'i'"), -(11638, 19, "'.'"), -(11639, 0, "' '"), -(11640, 0, "'I'"), -(11641, 0, "'f'"), -(11642, 0, "' '"), -(11643, 0, "'1'"), -(11644, 0, "'0'"), -(11645, 0, "'0'"), -(11646, 0, "'0'"), -(11647, 0, "' '"), -(11648, 0, "'i'"), -(11649, 0, "'t'"), -(11650, 0, "'e'"), -(11651, 0, "'m'"), -(11652, 0, "'s'"), -(11653, 0, "' '"), -(11654, 0, "'h'"), -(11655, 0, "'a'"), -(11656, 0, "'v'"), -(11657, 0, "'e'"), -(11658, 0, "' '"), -(11659, 0, "'b'"), -(11660, 0, "'e'"), -(11661, 0, "'e'"), -(11662, 0, "'n'"), -(11663, 0, "' '"), -(11664, 0, "'d'"), -(11665, 0, "'e'"), -(11666, 0, "'l'"), -(11667, 0, "'e'"), -(11668, 0, "'t'"), -(11669, 0, "'e'"), -(11670, 0, "'d'"), -(11648, 5, "'c'"), -(11649, 0, "'h'"), -(11650, 0, "'a'"), -(11651, 0, "'r'"), -(11652, 0, "'a'"), -(11653, 0, "'c'"), -(11654, 0, "'t'"), -(11655, 0, "'e'"), -(11656, 0, "'r'"), -(11657, 0, "'s'"), -(11676, 0, "' '"), -(11677, 0, "'b'"), -(11678, 0, "'e'"), -(11679, 0, "'f'"), -(11680, 0, "'o'"), -(11681, 0, "'r'"), -(11682, 0, "'e'"), -(11683, 0, "' '"), -(11684, 0, "'p'"), -(11685, 0, "'o'"), -(11686, 0, "'s'"), -(11687, 0, "'i'"), -(11688, 0, "'t'"), -(11689, 0, "'i'"), -(11690, 0, "'o'"), -(11691, 0, "'n'"), -(11692, 0, "' '"), -(11693, 0, "'5'"), -(11694, 0, "'0'"), -(11695, 0, "'0'"), -(11696, 0, "'0'"), -(11697, 0, "','"), -(11698, 0, "' '"), -(11699, 0, "'t'"), -(11700, 0, "'h'"), -(11701, 0, "'e'"), -(11702, 0, "' '"), -(11703, 0, "'i'"), -(11704, 0, "'n'"), -(11705, 0, "'d'"), -(11706, 0, "'e'"), -(11707, 0, "'x'"), -(11708, 0, "' '"), -(11709, 0, "'p'"), -(11710, 0, "'o'"), -(11711, 0, "'s'"), -(11712, 0, "'i'"), -(11713, 0, "'t'"), -(11714, 0, "'i'"), -(11715, 0, "'o'"), -(11716, 0, "'n'"), -(11717, 0, "' '"), -(11718, 0, "'m'"), -(11719, 0, "'i'"), -(11720, 0, "'g'"), -(11721, 0, "'h'"), -(11722, 0, "'t'"), -(11723, 0, "' '"), -(11724, 0, "'b'"), -(11725, 0, "'e'"), -(11726, 0, "' '"), -(11727, 0, "'6'"), -(11728, 0, "'0'"), -(11729, 0, "'0'"), -(11730, 0, "'0'"), -(11731, 0, "'.'"), -(11494, 3, "''"), -(11493, 1, "''"), -(11505, 0, "'`'"), -(11500, 0, "'`'"), -(11730, 0, "' '"), -(11731, 0, "'B'"), -(11732, 0, "'u'"), -(11733, 0, "'t'"), -(11734, 0, "' '"), -(11735, 0, "'u'"), -(11736, 0, "'n'"), -(11737, 0, "'f'"), -(11738, 0, "'o'"), -(11739, 0, "'r'"), -(11731, 9, "'U'"), -(11732, 0, "'n'"), -(11733, 0, "'f'"), -(11734, 0, "'o'"), -(11735, 0, "'r'"), -(11736, 0, "'t'"), -(11737, 0, "'u'"), -(11738, 0, "'n'"), -(11739, 0, "'a'"), -(11740, 0, "'t'"), -(11741, 0, "'e'"), -(11742, 0, "'l'"), -(11743, 0, "'y'"), -(11744, 0, "' '"), -(11745, 0, "'f'"), -(11746, 0, "'o'"), -(11747, 0, "'r'"), -(11748, 0, "' '"), -(11749, 0, "'u'"), -(11750, 0, "'s'"), -(11751, 0, "','"), -(11752, 0, "' '"), -(11753, 0, "'t'"), -(11754, 0, "'h'"), -(11755, 0, "'i'"), -(11756, 0, "'s'"), -(11757, 0, "' '"), -(11758, 0, "'i'"), -(11759, 0, "'s'"), -(11760, 0, "' '"), -(11393, 368, "'My implementation does a linear scan through the document to find this location. That sounds fancy - its a `for()` loop. We count all the not-deleted items until we've counted past 5000 items which aren't deleted and return the resulting index. If 1000 characters have been deleted before position 5000, the index position might be 6000. Unfortunately for us, this is'"), -(11474, 21, "'I'"), -(11474, 0, "'W'"), -(11475, 0, "'h'"), -(11476, 0, "'i'"), -(11477, 0, "'c'"), -(11478, 0, "'h'"), -(11479, 0, "' '"), -(11480, 0, "'m'"), -(11481, 0, "'e'"), -(11482, 0, "'a'"), -(11483, 0, "'n'"), -(11484, 0, "'s'"), -(11485, 0, "','"), -(11486, 0, "' '"), -(11487, 0, "'I'"), -(11488, 0, "' '"), -(11489, 0, "'u'"), -(11490, 0, "'s'"), -(11491, 0, "'e'"), -(11492, 3, "''"), -(11480, 5, "'i'"), -(11481, 0, "'s'"), -(11482, 0, "' '"), -(11483, 0, "'t'"), -(11484, 0, "'o'"), -(11485, 0, "' '"), -(11486, 0, "'s'"), -(11487, 0, "'a'"), -(11488, 0, "'y'"), -(11706, 8, "''"), -(11705, 1, "''"), -(11700, 0, "'d'"), -(11701, 0, "'e'"), -(11702, 0, "'s'"), -(11703, 0, "'t'"), -(11704, 0, "'i'"), -(11705, 0, "'n'"), -(11706, 0, "'a'"), -(11707, 0, "'t'"), -(11708, 0, "'i'"), -(11709, 0, "'o'"), -(11710, 0, "'n'"), -(11711, 0, "' '"), -(11732, 30, "''"), -(11097, 0, "'n'"), -(11098, 0, "'L'"), -(11099, 0, "'e'"), -(11100, 0, "'t'"), -(11101, 0, "'s'"), -(11102, 0, "' '"), -(11103, 0, "'i'"), -(11104, 0, "'m'"), -(11105, 0, "'a'"), -(11106, 0, "'g'"), -(11107, 0, "'i'"), -(11108, 0, "'n'"), -(11109, 0, "'e'"), -(11110, 0, "' '"), -(11111, 0, "'t'"), -(11112, 0, "'h'"), -(11113, 0, "'e'"), -(11114, 0, "' '"), -(11115, 0, "'d'"), -(11116, 0, "'o'"), -(11117, 0, "'c'"), -(11118, 0, "'u'"), -(11119, 0, "'m'"), -(11120, 0, "'e'"), -(11121, 0, "'n'"), -(11122, 0, "'t'"), -(11123, 0, "' '"), -(11124, 0, "'h'"), -(11125, 0, "'a'"), -(11126, 0, "'s'"), -(11127, 0, "' '"), -(11128, 0, "'1'"), -(11129, 0, "'0'"), -(11130, 0, "'0'"), -(11131, 0, "'0'"), -(11131, 1, "''"), -(11131, 0, "' '"), -(11132, 0, "'0'"), -(11133, 0, "'0'"), -(11134, 0, "'0'"), -(11135, 0, "' '"), -(11136, 0, "'i'"), -(11137, 0, "'t'"), -(11138, 0, "'e'"), -(11139, 0, "'m'"), -(11140, 0, "'s'"), -(11141, 0, "' '"), -(11142, 0, "'i'"), -(11143, 0, "'n'"), -(11144, 0, "' '"), -(11145, 0, "'i'"), -(11146, 0, "'t'"), -(11147, 0, "','"), -(11148, 0, "' '"), -(11149, 0, "'a'"), -(11150, 0, "'n'"), -(11151, 0, "'d'"), -(11152, 0, "' '"), -(11153, 0, "'t'"), -(11154, 0, "'h'"), -(11155, 0, "'e'"), -(11156, 15, "''"), -(11226, 0, "' '"), -(11227, 0, "'0'"), -(11379, 0, "','"), -(11380, 0, "' '"), -(11381, 0, "'a'"), -(11382, 0, "'n'"), -(11383, 0, "'d'"), -(11387, 10, "'W'"), -(11393, 0, "'i'"), -(11394, 0, "'n'"), -(11395, 0, "' '"), -(11396, 0, "'t'"), -(11397, 0, "'h'"), -(11398, 0, "'e'"), -(11399, 0, "' '"), -(11400, 0, "'l'"), -(11401, 0, "'i'"), -(11402, 0, "'s'"), -(11403, 0, "'t'"), -(11404, 0, "' '"), -(11379, 0, "' '"), -(11380, 0, "'('"), -(11381, 0, "'o'"), -(11381, 1, "''"), -(11380, 1, "''"), -(11380, 0, "'('"), -(11381, 0, "'i'"), -(11382, 0, "'t'"), -(11383, 0, "'s'"), -(11384, 0, "' '"), -(11385, 0, "'t'"), -(11386, 0, "'h'"), -(11387, 0, "'e'"), -(11388, 0, "' '"), -(11389, 0, "'i'"), -(11390, 0, "'d'"), -(11391, 0, "' '"), -(11392, 0, "'o'"), -(11393, 0, "'f'"), -(11394, 0, "' '"), -(11395, 0, "'t'"), -(11396, 0, "'h'"), -(11397, 0, "'e'"), -(11398, 0, "' '"), -(11399, 0, "'p'"), -(11400, 0, "'r'"), -(11401, 0, "'e'"), -(11402, 0, "'c'"), -(11403, 0, "'e'"), -(11404, 0, "'e'"), -(11405, 0, "'d'"), -(11406, 0, "'i'"), -(11407, 0, "'n'"), -(11408, 0, "'g'"), -(11409, 0, "' '"), -(11410, 0, "'i'"), -(11411, 0, "'t'"), -(11412, 0, "'e'"), -(11413, 0, "'m'"), -(11414, 0, "'!'"), -(11415, 0, "')'"), -(11414, 1, "''"), -(11381, 4, "'w'"), -(11382, 0, "'e'"), -(11383, 0, "' '"), -(11384, 0, "'n'"), -(11385, 0, "'e'"), -(11386, 0, "'e'"), -(11387, 0, "'d'"), -(11388, 0, "' '"), -(11510, 0, "' '"), -(11511, 0, "'t'"), -(11512, 0, "'h'"), -(11512, 1, "''"), -(11511, 1, "''"), -(11510, 1, "''"), -(11510, 0, "'t'"), -(11511, 0, "'h'"), -(11512, 0, "'i'"), -(11513, 0, "'s'"), -(11514, 0, "' '"), -(11515, 0, "'w'"), -(11516, 0, "'i'"), -(11517, 0, "'t'"), -(11518, 0, "'h'"), -(11519, 0, "' '"), -(11505, 15, "'i'"), -(11506, 0, "'m'"), -(11507, 0, "'p'"), -(11508, 0, "'l'"), -(11509, 0, "'e'"), -(11510, 0, "'m'"), -(11511, 0, "'e'"), -(11512, 0, "'n'"), -(11513, 0, "'t'"), -(11514, 0, "'s'"), -(11515, 0, "' '"), -(11516, 0, "'t'"), -(11517, 0, "'h'"), -(11518, 0, "'i'"), -(11519, 0, "'s'"), -(11520, 0, "' '"), -(11521, 0, "'w'"), -(11522, 0, "'i'"), -(11523, 0, "'t'"), -(11524, 0, "'h'"), -(11525, 0, "' '"), -(11560, 22, "''"), -(11665, 0, "'0'"), -(11663, 0, "' '"), -(11781, 0, "'0'"), -(11782, 0, "' '"), -(11731, 0, "'0'"), -(11732, 0, "' '"), -(11823, 0, "' '"), -(11824, 0, "'0'"), -(11828, 0, "' '"), -(11829, 0, "'T'"), -(11830, 0, "'h'"), -(11831, 0, "'i'"), -(11832, 0, "'s'"), -(11833, 0, "' '"), -(11834, 0, "'i'"), -(11835, 0, "'s'"), -(11836, 0, "' '"), -(11837, 0, "'l'"), -(11837, 1, "''"), -(11837, 0, "'p'"), -(11838, 0, "'r'"), -(11839, 0, "'e'"), -(11840, 0, "'t'"), -(11841, 0, "'t'"), -(11842, 0, "'y'"), -(11843, 0, "' '"), -(11844, 0, "'s'"), -(11845, 0, "'l'"), -(11846, 0, "'o'"), -(11847, 0, "'w'"), -(11829, 19, "'J'"), -(11830, 0, "'a'"), -(11831, 0, "'v'"), -(11832, 0, "'a'"), -(11833, 0, "'s'"), -(11834, 0, "'c'"), -(11835, 0, "'r'"), -(11836, 0, "'i'"), -(11837, 0, "'p'"), -(11838, 0, "'t'"), -(11839, 0, "'''"), -(11840, 0, "'s'"), -(11841, 0, "' '"), -(11842, 0, "'o'"), -(11843, 0, "'p'"), -(11844, 0, "'t'"), -(11845, 0, "'i'"), -(11846, 0, "'m'"), -(11847, 0, "'i'"), -(11848, 0, "'z'"), -(11849, 0, "'e'"), -(11850, 0, "'r'"), -(11851, 0, "' '"), -(11852, 0, "'w'"), -(11853, 0, "'i'"), -(11854, 0, "'l'"), -(11855, 0, "'l'"), -(11856, 0, "' '"), -(11857, 0, "'d'"), -(11858, 0, "'o'"), -(11859, 0, "' '"), -(11860, 0, "'w'"), -(11861, 0, "'h'"), -(11862, 0, "'a'"), -(11863, 0, "'t'"), -(11864, 0, "' '"), -(11865, 0, "'i'"), -(11866, 0, "'c'"), -(11867, 0, "' '"), -(11867, 1, "''"), -(11866, 1, "''"), -(11866, 0, "'t'"), -(11867, 0, "' '"), -(11868, 0, "'c'"), -(11869, 0, "'a'"), -(11870, 0, "'n'"), -(11871, 0, "','"), -(11872, 0, "' '"), -(11873, 0, "'b'"), -(11874, 0, "'u'"), -(11875, 0, "'t'"), -(11876, 0, "' '"), -(11877, 0, "'t'"), -(11878, 0, "'h'"), -(11879, 0, "'i'"), -(11880, 0, "'s'"), -(11881, 0, "' '"), -(11882, 0, "'i'"), -(11883, 0, "'s'"), -(11884, 0, "' '"), -(11885, 0, "'a'"), -(11886, 0, "'l'"), -(11887, 0, "'w'"), -(11888, 0, "'a'"), -(11889, 0, "'y'"), -(11890, 0, "'s'"), -(11891, 0, "' '"), -(11892, 0, "'g'"), -(11893, 0, "'o'"), -(11894, 0, "'i'"), -(11895, 0, "'n'"), -(11896, 0, "'g'"), -(11897, 0, "' '"), -(11898, 0, "'t'"), -(11899, 0, "'o'"), -(11900, 0, "' '"), -(11901, 0, "'b'"), -(11902, 0, "'e'"), -(11903, 0, "' '"), -(11904, 0, "'s'"), -(11905, 0, "'l'"), -(11906, 0, "'o'"), -(11907, 0, "'w'"), -(11908, 0, "'.'"), -(11909, 0, "'n'"), -(11910, 0, "'n'"), -(11911, 0, "'T'"), -(11912, 0, "'h'"), -(11913, 0, "'e'"), -(11914, 0, "'n'"), -(11915, 0, "' '"), -(11911, 5, "'Then'"), -(11915, 0, "' '"), -(11916, 0, "'t'"), -(11917, 0, "'h'"), -(11917, 1, "''"), -(11916, 1, "''"), -(11916, 0, "'a'"), -(11917, 0, "'f'"), -(11918, 0, "'t'"), -(11919, 0, "'e'"), -(11920, 0, "'r'"), -(11921, 0, "' '"), -(11922, 0, "'w'"), -(11923, 0, "'e'"), -(11924, 0, "'''"), -(11925, 0, "'v'"), -(11926, 0, "'e'"), -(11927, 0, "' '"), -(11928, 0, "'f'"), -(11929, 0, "'o'"), -(11930, 0, "'u'"), -(11931, 0, "'n'"), -(11932, 0, "'d'"), -(11933, 0, "' '"), -(11934, 0, "'t'"), -(11935, 0, "'h'"), -(11936, 0, "'e'"), -(11937, 0, "' '"), -(11938, 0, "'n'"), -(11939, 0, "'e'"), -(11940, 0, "'w'"), -(11941, 0, "' '"), -(11942, 0, "'l'"), -(11943, 0, "'o'"), -(11944, 0, "'c'"), -(11945, 0, "'a'"), -(11946, 0, "'t'"), -(11947, 0, "'i'"), -(11948, 0, "'o'"), -(11949, 0, "'n'"), -(11950, 0, "','"), -(11951, 0, "' '"), -(11952, 0, "'w'"), -(11953, 0, "'e'"), -(11954, 0, "' '"), -(11955, 0, "'n'"), -(11956, 0, "'e'"), -(11957, 0, "'e'"), -(11958, 0, "'d'"), -(11959, 0, "' '"), -(11960, 0, "'t'"), -(11961, 0, "'o'"), -(11962, 0, "' '"), -(11963, 0, "'s'"), -(11964, 0, "'p'"), -(11965, 0, "'l'"), -(11966, 0, "'i'"), -(11967, 0, "'c'"), -(11968, 0, "'e'"), -(11969, 0, "' '"), -(11970, 0, "'i'"), -(11971, 0, "'t'"), -(11972, 0, "' '"), -(11973, 0, "'i'"), -(11974, 0, "'n'"), -(11975, 0, "':'"), -(11976, 0, "'n'"), -(11977, 0, "'n'"), -(11978, 0, "'`'"), -(11979, 0, "'`'"), -(11980, 0, "'`'"), -(11981, 0, "'j'"), -(11982, 0, "'a'"), -(11983, 0, "'v'"), -(11984, 0, "'a'"), -(11985, 0, "'s'"), -(11986, 0, "'c'"), -(11987, 0, "'r'"), -(11988, 0, "'i'"), -(11989, 0, "'p'"), -(11990, 0, "'t'"), -(11991, 0, "'n'"), -(11992, 0, "'doc.content.splice(destIdx, 0, newItem)'"), -(12031, 0, "'n'"), -(12032, 0, "'`'"), -(12033, 0, "'`'"), -(12034, 0, "'`'"), -(12035, 0, "'n'"), -(12036, 0, "'n'"), -(12011, 7, "'6'"), -(12012, 0, "'0'"), -(12013, 0, "'0'"), -(12014, 0, "'0'"), -(12015, 0, "'0'"), -(12011, 5, "'destIdx'"), -(12031, 0, "' '"), -(12032, 0, "'/'"), -(12033, 0, "'/'"), -(12034, 0, "' '"), -(12035, 0, "'i'"), -(12036, 0, "'n'"), -(12037, 0, "'s'"), -(12038, 0, "'e'"), -(12039, 0, "'r'"), -(12031, 9, "''"), -(12037, 0, "'I'"), -(12038, 0, "'f'"), -(12039, 0, "' '"), -(12040, 0, "'t'"), -(12041, 0, "'h'"), -(12042, 0, "'e'"), -(12043, 0, "' '"), -(12044, 0, "'a'"), -(12045, 0, "'r'"), -(12046, 0, "'r'"), -(12047, 0, "'a'"), -(12048, 0, "'y'"), -(12049, 0, "' '"), -(12050, 0, "'c'"), -(12051, 0, "'u'"), -(12052, 0, "'r'"), -(12053, 0, "'r'"), -(12054, 0, "'e'"), -(12055, 0, "'n'"), -(12056, 0, "'t'"), -(12057, 0, "'l'"), -(12058, 0, "'y'"), -(12059, 0, "' '"), -(12060, 0, "'h'"), -(12061, 0, "'a'"), -(12062, 0, "'s'"), -(12063, 0, "' '"), -(12064, 0, "'1'"), -(12065, 0, "'0'"), -(12066, 0, "'0'"), -(12067, 0, "'0'"), -(12068, 0, "' '"), -(12068, 1, "''"), -(12067, 1, "''"), -(12067, 0, "' '"), -(12068, 0, "'0'"), -(12069, 0, "'0'"), -(12070, 0, "'0'"), -(12071, 0, "' '"), -(12072, 0, "'i'"), -(12073, 0, "'t'"), -(12074, 0, "'e'"), -(12075, 0, "'m'"), -(12076, 0, "'s'"), -(12077, 0, "','"), -(12078, 0, "' '"), -(12079, 0, "'j'"), -(12080, 0, "'a'"), -(12081, 0, "'v'"), -(12082, 0, "'s'"), -(12082, 1, "''"), -(12082, 0, "'a'"), -(12083, 0, "'s'"), -(12084, 0, "'c'"), -(12085, 0, "'r'"), -(12086, 0, "'i'"), -(12087, 0, "'p'"), -(12088, 0, "'t'"), -(12089, 0, "' '"), -(12090, 0, "'('"), -(12091, 0, "'c'"), -(12092, 0, "'o'"), -(12093, 0, "'n'"), -(12094, 0, "'c'"), -(12095, 0, "'e'"), -(12096, 0, "'p'"), -(12097, 0, "'t'"), -(12098, 0, "'u'"), -(12099, 0, "'a'"), -(12100, 0, "'l'"), -(12101, 0, "'l'"), -(12102, 0, "'y'"), -(12103, 0, "')'"), -(12104, 0, "' '"), -(12105, 0, "'n'"), -(12106, 0, "'e'"), -(12107, 0, "'e'"), -(12108, 0, "'d'"), -(12109, 0, "'s'"), -(12090, 20, "''"), -(12043, 0, "' '"), -(12044, 0, "'l'"), -(12045, 0, "'i'"), -(12046, 0, "'s'"), -(12047, 0, "'t'"), -(12048, 0, "' '"), -(12049, 0, "'u'"), -(12050, 0, "'s'"), -(12051, 0, "'e'"), -(12051, 1, "''"), -(12050, 1, "''"), -(12049, 1, "''"), -(12049, 0, "'i'"), -(12050, 0, "'s'"), -(12051, 0, "' '"), -(12052, 0, "'i'"), -(12053, 0, "'m'"), -(12054, 0, "'p'"), -(12055, 0, "'l'"), -(12056, 0, "'m'"), -(12057, 0, "'e'"), -(12057, 1, "''"), -(12056, 1, "''"), -(12049, 7, "''"), -(12048, 1, "''"), -(12043, 5, "' '"), -(12043, 1, "''"), -(12090, 0, "'n'"), -(12091, 0, "'e'"), -(12092, 0, "'e'"), -(12093, 0, "'d'"), -(12094, 0, "'s'"), -(12095, 0, "' '"), -(12096, 0, "'t'"), -(12097, 0, "'o'"), -(12098, 0, "' '"), -(12099, 0, "'m'"), -(12100, 0, "'o'"), -(12101, 0, "'v'"), -(12102, 0, "'e'"), -(12103, 0, "' '"), -(12104, 0, "'e'"), -(12105, 0, "'v'"), -(12106, 0, "'e'"), -(12107, 0, "'r'"), -(12108, 0, "'y'"), -(12109, 0, "' '"), -(12110, 0, "'i'"), -(12111, 0, "'t'"), -(12112, 0, "'e'"), -(12113, 0, "'m'"), -(12114, 0, "' '"), -(12115, 0, "'f'"), -(12116, 0, "'r'"), -(12117, 0, "'o'"), -(12118, 0, "'m'"), -(12119, 0, "' '"), -(12120, 0, "'p'"), -(12121, 0, "'o'"), -(12122, 0, "'s'"), -(12123, 0, "'i'"), -(12124, 0, "'t'"), -(12125, 0, "'i'"), -(12126, 0, "'o'"), -(12127, 0, "'n'"), -(12128, 0, "' '"), -(12129, 0, "'6'"), -(12130, 0, "'0'"), -(12131, 0, "' '"), -(12132, 0, "'0'"), -(12133, 0, "'0'"), -(12134, 0, "'0'"), -(12135, 0, "' '"), -(12136, 0, "'f'"), -(12137, 0, "'o'"), -(12138, 0, "'r'"), -(12139, 0, "'w'"), -(12140, 0, "'a'"), -(12141, 0, "'r'"), -(12142, 0, "'d'"), -(12143, 0, "' '"), -(12144, 0, "'b'"), -(12145, 0, "'y'"), -(12146, 0, "' '"), -(12147, 0, "'o'"), -(12148, 0, "'n'"), -(12149, 0, "'e'"), -(12150, 0, "' '"), -(12151, 0, "'s'"), -(12152, 0, "'p'"), -(12153, 0, "'a'"), -(12154, 0, "'c'"), -(12155, 0, "'e'"), -(12156, 0, "'.'"), -(12157, 0, "' '"), -(12158, 0, "'('"), -(12159, 0, "'W'"), -(12160, 0, "'e'"), -(12161, 0, "'l'"), -(12162, 0, "'l'"), -(12163, 0, "','"), -(12164, 0, "' '"), -(12165, 0, "'i'"), -(12166, 0, "'f'"), -(12167, 0, "' '"), -(12168, 0, "'j'"), -(12169, 0, "'a'"), -(12170, 0, "'v'"), -(12171, 0, "'a'"), -(12172, 0, "'s'"), -(12173, 0, "'c'"), -(12174, 0, "'r'"), -(12175, 0, "'i'"), -(12176, 0, "'p'"), -(12177, 0, "'t'"), -(12178, 0, "' '"), -(12179, 0, "'u'"), -(12180, 0, "'s'"), -(12181, 0, "'e'"), -(12182, 0, "'s'"), -(12183, 0, "' '"), -(12184, 0, "'a'"), -(12185, 0, "'n'"), -(12186, 0, "' '"), -(12187, 0, "'a'"), -(12188, 0, "'r'"), -(12189, 0, "'r'"), -(12190, 0, "'a'"), -(12191, 0, "'y'"), -(12192, 0, "' '"), -(12193, 0, "'f'"), -(12194, 0, "'o'"), -(12195, 0, "'r'"), -(12196, 0, "' '"), -(12197, 0, "'l'"), -(12198, 0, "'i'"), -(12199, 0, "'s'"), -(12200, 0, "'t'"), -(12201, 0, "'s'"), -(12202, 0, "'.'"), -(12203, 0, "' '"), -(12203, 1, "''"), -(12202, 1, "''"), -(12197, 5, "''"), -(12193, 4, "'i'"), -(12194, 0, "'n'"), -(12195, 0, "'t'"), -(12196, 0, "'e'"), -(12197, 0, "'r'"), -(12198, 0, "'n'"), -(12199, 0, "'a'"), -(12200, 0, "'l'"), -(12201, 0, "'l'"), -(12202, 0, "'y'"), -(12203, 0, "' '"), -(12204, 0, "'f'"), -(12205, 0, "'o'"), -(12206, 0, "'r'"), -(12207, 0, "' '"), -(12208, 0, "'l'"), -(12209, 0, "'i'"), -(12210, 0, "'s'"), -(12211, 0, "'t'"), -(12212, 0, "'s'"), -(12213, 0, "'.'"), -(12214, 0, "' '"), -(12215, 0, "'W'"), -(12216, 0, "'h'"), -(12217, 0, "'o'"), -(12218, 0, "' '"), -(12219, 0, "'k'"), -(12220, 0, "'n'"), -(12221, 0, "'o'"), -(12222, 0, "'w'"), -(12223, 0, "'s'"), -(12224, 0, "' '"), -(12225, 0, "'w'"), -(12226, 0, "'h'"), -(12227, 0, "'a'"), -(12228, 0, "'t'"), -(12229, 0, "' '"), -(12230, 0, "'i'"), -(12231, 0, "'t'"), -(12232, 0, "' '"), -(12233, 0, "'a'"), -(12234, 0, "'c'"), -(12235, 0, "'t'"), -(12236, 0, "'u'"), -(12237, 0, "'a'"), -(12238, 0, "'l'"), -(12239, 0, "'l'"), -(12240, 0, "'y'"), -(12241, 0, "' '"), -(12242, 0, "'d'"), -(12243, 0, "'o'"), -(12244, 0, "'e'"), -(12245, 0, "'s'"), -(12246, 0, "' '"), -(12247, 0, "'-'"), -(12248, 0, "' '"), -(12249, 0, "'v'"), -(12250, 0, "'8'"), -(12251, 0, "' '"), -(12252, 0, "'i'"), -(12253, 0, "'s'"), -(12254, 0, "' '"), -(12255, 0, "'c'"), -(12256, 0, "'o'"), -(12257, 0, "'m'"), -(12258, 0, "'p'"), -(12259, 0, "'l'"), -(12260, 0, "'e'"), -(12261, 0, "'x'"), -(12262, 0, "'!'"), -(12263, 0, "')'"), -(12247, 1, "''"), -(12246, 1, "''"), -(12246, 0, "' '"), -(12247, 0, "'-'"), -(12157, 0, "' '"), -(12158, 0, "'T'"), -(12159, 0, "'h'"), -(12160, 0, "'i'"), -(12161, 0, "'s'"), -(12162, 0, "' '"), -(12163, 0, "'i'"), -(12164, 0, "'s'"), -(12165, 0, "' '"), -(12166, 0, "'a'"), -(12167, 0, "'l'"), -(12168, 0, "'s'"), -(12169, 0, "'o'"), -(12170, 0, "' '"), -(12171, 0, "'s'"), -(12172, 0, "'l'"), -(12173, 0, "'o'"), -(12174, 0, "'w'"), -(12175, 0, "'.'"), -(12178, 7, "'T'"), -(12179, 0, "'h'"), -(12180, 0, "'i'"), -(12181, 0, "'s'"), -(12182, 0, "' '"), -(12183, 0, "'i'"), -(12184, 0, "'s'"), -(12185, 0, "' '"), -(12186, 0, "'a'"), -(12187, 0, "'s'"), -(12188, 0, "'s'"), -(12189, 0, "'u'"), -(12190, 0, "'m'"), -(12191, 0, "'i'"), -(12192, 0, "'n'"), -(12193, 0, "'g'"), -(12194, 1, "''"), -(12206, 0, "'a'"), -(12207, 0, "'c'"), -(12208, 0, "'t'"), -(12209, 0, "'u'"), -(12210, 0, "'a'"), -(12211, 0, "'l'"), -(12212, 0, "'l'"), -(12213, 0, "'y'"), -(12214, 0, "' '"), -(12244, 0, "'i'"), -(12245, 0, "'t'"), -(12246, 0, "'s'"), -(12247, 0, "' '"), -(10631, 1, "''"), -(10631, 0, "'n'"), -(10632, 0, "'-'"), -(10633, 0, "' '"), -(10633, 1, "''"), -(10632, 1, "''"), -(10632, 0, "'n'"), -(10633, 0, "'-'"), -(10634, 0, "' '"), -(10666, 1, "''"), -(10665, 1, "''"), -(10665, 0, "'n'"), -(10666, 0, "'-'"), -(10667, 0, "' '"), -(10665, 0, "' '"), -(10666, 0, "'a'"), -(10667, 0, "'n'"), -(10668, 0, "'d'"), -(10672, 4, "''"), -(10672, 1, "''"), -(10672, 0, "'A'"), -(10690, 0, "' '"), -(10691, 0, "'i'"), -(10692, 0, "'n'"), -(10693, 0, "'t'"), -(10694, 0, "'o'"), -(10695, 0, "' '"), -(10696, 0, "'t'"), -(10697, 0, "'h'"), -(10698, 0, "'e'"), -(10699, 0, "' '"), -(10700, 0, "'a'"), -(10701, 0, "'r'"), -(10702, 0, "'r'"), -(10703, 0, "'a'"), -(10704, 0, "'y'"), -(10705, 1, "''"), -(10788, 18, "'s'"), -(10789, 0, "'o'"), -(10790, 0, "'m'"), -(10791, 0, "'e'"), -(10792, 0, "' '"), -(10793, 0, "'o'"), -(10794, 0, "'f'"), -(10795, 0, "' '"), -(10796, 0, "'t'"), -(10797, 0, "'h'"), -(10798, 0, "'o'"), -(10799, 0, "'s'"), -(10800, 0, "'e'"), -(10808, 3, "'h'"), -(10809, 0, "'a'"), -(10810, 0, "'v'"), -(10811, 0, "'e'"), -(10812, 0, "' '"), -(10813, 0, "'b'"), -(10814, 0, "'e'"), -(10815, 0, "'e'"), -(10816, 0, "'n'"), -(10825, 0, "','"), -(10826, 0, "' '"), -(10826, 1, "''"), -(10825, 1, "''"), -(10808, 5, "'m'"), -(10809, 0, "'i'"), -(10810, 0, "'g'"), -(10811, 0, "'h'"), -(10812, 0, "'t'"), -(10813, 0, "' '"), -(10814, 0, "'a'"), -(10815, 0, "'l'"), -(10816, 0, "'s'"), -(10817, 0, "'o'"), -(10818, 0, "' '"), -(10819, 0, "'h'"), -(10820, 0, "'a'"), -(10821, 0, "'v'"), -(10822, 0, "'e'"), -(10823, 0, "' '"), -(11120, 0, "','"), -(11121, 0, "'n '"), -(11124, 0, "'.'"), -(11125, 0, "'.'"), -(11126, 0, "'.'"), -(11323, 4, "'t'"), -(11324, 0, "'i'"), -(11325, 0, "'h'"), -(11326, 0, "'s'"), -(11326, 1, "''"), -(11325, 1, "''"), -(11324, 1, "''"), -(11324, 0, "'h'"), -(11325, 0, "'i'"), -(11326, 0, "'s'"), -(11353, 1, "''"), -(11353, 0, "'.'"), -(11355, 9, "'W'"), -(11356, 0, "'e'"), -(11357, 0, "' '"), -(11358, 0, "'n'"), -(11359, 0, "'e'"), -(11360, 0, "'e'"), -(11361, 0, "'d'"), -(11362, 0, "' '"), -(11363, 0, "'t'"), -(11364, 0, "'o'"), -(11363, 2, "'t'"), -(11364, 0, "'h'"), -(11365, 0, "'i'"), -(11365, 1, "''"), -(11365, 0, "'e'"), -(11366, 0, "' '"), -(11367, 0, "'i'"), -(11368, 0, "'n'"), -(11369, 0, "'d'"), -(11370, 0, "'e'"), -(11371, 0, "'x'"), -(11372, 0, "' '"), -(11373, 0, "'t'"), -(11374, 0, "'o'"), -(11367, 0, "'t'"), -(11368, 0, "'h'"), -(11369, 0, "'i'"), -(11370, 0, "'s'"), -(11371, 0, "' '"), -(11372, 6, "''"), -(11431, 9, "'c'"), -(11432, 0, "'o'"), -(11433, 0, "'p'"), -(11434, 0, "'y'"), -(11435, 0, "' '"), -(11436, 0, "'t'"), -(11437, 0, "'h'"), -(11438, 0, "'e'"), -(11439, 0, "' '"), -(11269, 0, "' '"), -(11270, 0, "'W'"), -(11271, 0, "'e'"), -(11272, 0, "' '"), -(11273, 0, "'n'"), -(11274, 0, "'e'"), -(11275, 0, "'e'"), -(11276, 0, "'d'"), -(11277, 0, "' '"), -(11278, 0, "'t'"), -(11279, 0, "'o'"), -(11280, 0, "' '"), -(11281, 0, "'f'"), -(11282, 0, "'i'"), -(11283, 0, "'g'"), -(11284, 0, "'u'"), -(11285, 0, "'r'"), -(11286, 0, "'e'"), -(11287, 0, "' '"), -(11288, 0, "'o'"), -(11289, 0, "'u'"), -(11290, 0, "'t'"), -(11281, 10, "'f'"), -(11282, 0, "'i'"), -(11283, 0, "'r'"), -(11284, 0, "'s'"), -(11285, 0, "'t'"), -(11286, 0, "' '"), -(11287, 0, "'c'"), -(11288, 0, "'r'"), -(11289, 0, "'e'"), -(11290, 0, "'a'"), -(11291, 0, "'t'"), -(11292, 0, "'e'"), -(11293, 0, "' '"), -(11294, 0, "'a'"), -(11295, 0, "' '"), -(11296, 0, "'n'"), -(11297, 0, "'e'"), -(11298, 0, "'w'"), -(11299, 0, "' '"), -(11300, 0, "'i'"), -(11301, 0, "'t'"), -(11302, 0, "'e'"), -(11303, 0, "'m'"), -(11304, 0, "' '"), -(11305, 0, "'-'"), -(11306, 0, "' '"), -(11307, 0, "'a'"), -(11308, 0, "'n'"), -(11309, 0, "'d'"), -(11310, 0, "' '"), -(11311, 0, "'f'"), -(11312, 0, "'o'"), -(11313, 0, "'r'"), -(11314, 0, "' '"), -(11315, 0, "'t'"), -(11316, 0, "'h'"), -(11317, 0, "'a'"), -(11318, 0, "'t'"), -(11319, 0, "' '"), -(11320, 0, "'w'"), -(11321, 0, "'e'"), -(11322, 0, "' '"), -(11323, 0, "'n'"), -(11324, 0, "'e'"), -(11325, 0, "'e'"), -(11326, 0, "'d'"), -(11327, 0, "' '"), -(11328, 0, "'t'"), -(11329, 0, "'o'"), -(11330, 0, "' '"), -(11331, 0, "'k'"), -(11332, 0, "'n'"), -(11333, 0, "'o'"), -(11334, 0, "'w'"), -(11335, 0, "' '"), -(11336, 0, "'w'"), -(11337, 0, "'h'"), -(11338, 0, "'a'"), -(11339, 0, "'t'"), -(11340, 0, "' '"), -(11341, 0, "'i'"), -(11342, 0, "'t'"), -(11343, 0, "'s'"), -(11344, 0, "' '"), -(11345, 0, "'p'"), -(11346, 0, "'a'"), -(11347, 0, "'r'"), -(11348, 0, "'e'"), -(11349, 0, "'n'"), -(11350, 0, "'t'"), -(11331, 20, "'f'"), -(11332, 0, "'i'"), -(11333, 0, "'g'"), -(11334, 0, "'u'"), -(11335, 0, "'r'"), -(11336, 0, "'e'"), -(11337, 0, "' '"), -(11338, 0, "'o'"), -(11339, 0, "'u'"), -(11340, 0, "'t'"), -(11341, 0, "' '"), -(11342, 0, "'w'"), -(11343, 0, "'h'"), -(11344, 0, "'a'"), -(11345, 0, "'t'"), -(11346, 0, "' '"), -(11347, 0, "'i'"), -(11348, 0, "'t'"), -(11349, 0, "'s'"), -(11350, 0, "' '"), -(11351, 0, "'p'"), -(11331, 21, "'c'"), -(11332, 0, "'o'"), -(11333, 0, "'p'"), -(11334, 0, "'y'"), -(11335, 0, "' '"), -(11336, 0, "'i'"), -(11337, 0, "'t'"), -(11338, 0, "'s'"), -(11339, 0, "' '"), -(11340, 0, "'p'"), -(11341, 0, "'a'"), -(11342, 0, "'r'"), -(11343, 0, "'e'"), -(11344, 0, "'n'"), -(11345, 0, "'t'"), -(11346, 0, "' '"), -(11347, 0, "'I'"), -(11348, 0, "'D'"), -(11349, 0, "' '"), -(11350, 0, "'f'"), -(11351, 0, "'r'"), -(11352, 0, "'o'"), -(11353, 0, "'m'"), -(11354, 0, "' '"), -(11355, 0, "'t'"), -(11356, 0, "'h'"), -(11357, 0, "'e'"), -(11358, 0, "' '"), -(11359, 0, "'i'"), -(11360, 0, "'t'"), -(11361, 0, "'e'"), -(11362, 0, "'m'"), -(11363, 0, "' '"), -(11331, 33, "'f'"), -(11332, 0, "'i'"), -(11333, 0, "'g'"), -(11334, 0, "'u'"), -(11335, 0, "'r'"), -(11336, 0, "'e'"), -(11337, 0, "' '"), -(11338, 0, "'o'"), -(11339, 0, "'u'"), -(11340, 0, "'t'"), -(11341, 0, "' '"), -(11342, 0, "'w'"), -(11343, 0, "'h'"), -(11344, 0, "'a'"), -(11345, 0, "'t'"), -(11346, 0, "' '"), -(11347, 0, "'i'"), -(11348, 0, "'t'"), -(11349, 0, "'s'"), -(11350, 0, "' '"), -(11351, 0, "'p'"), -(11352, 0, "'a'"), -(11353, 0, "'r'"), -(11354, 0, "'e'"), -(11355, 0, "'n'"), -(11356, 0, "'t'"), -(11357, 0, "' '"), -(11358, 0, "'s'"), -(11359, 0, "'h'"), -(11360, 0, "'o'"), -(11361, 0, "'u'"), -(11362, 0, "'l'"), -(11363, 0, "'d'"), -(11364, 0, "' '"), -(11365, 0, "'b'"), -(11366, 0, "'e'"), -(11367, 0, "'.'"), -(11368, 117, "''"), -(11368, 0, "' '"), -(11369, 0, "'A'"), -(11370, 0, "'n'"), -(11371, 0, "'d'"), -(11372, 0, "' '"), -(11373, 0, "'t'"), -(11374, 0, "'h'"), -(11375, 0, "'e'"), -(11376, 0, "'n'"), -(11377, 0, "' '"), -(11378, 0, "'w'"), -(11379, 0, "'h'"), -(11380, 0, "'e'"), -(11381, 0, "'n'"), -(11382, 0, "' '"), -(11383, 0, "'w'"), -(11384, 0, "'e'"), -(11385, 0, "' '"), -(11386, 0, "'i'"), -(11387, 0, "'n'"), -(11388, 0, "'s'"), -(11389, 0, "'e'"), -(11390, 0, "'r'"), -(11391, 0, "'t'"), -(11392, 0, "','"), -(11393, 0, "' '"), -(11394, 0, "'w'"), -(11395, 0, "'e'"), -(11396, 0, "' '"), -(11397, 0, "'n'"), -(11398, 0, "'e'"), -(11399, 0, "'e'"), -(11400, 0, "'d'"), -(11401, 0, "' '"), -(11402, 0, "'t'"), -(11403, 0, "'o'"), -(11404, 0, "' '"), -(11405, 0, "'f'"), -(11406, 0, "'i'"), -(11407, 0, "'n'"), -(11408, 0, "'d'"), -(11409, 0, "' '"), -(11410, 0, "'t'"), -(11411, 0, "'h'"), -(11412, 0, "'a'"), -(11413, 0, "'t'"), -(11414, 0, "' '"), -(11415, 0, "'p'"), -(11416, 0, "'a'"), -(11417, 0, "'r'"), -(11418, 0, "'e'"), -(11419, 0, "'n'"), -(11420, 0, "'t'"), -(11421, 0, "' '"), -(11422, 0, "'i'"), -(11423, 0, "'n'"), -(11424, 0, "' '"), -(11425, 0, "'t'"), -(11426, 0, "'h'"), -(11427, 0, "' '"), -(11428, 0, "'e'"), -(11429, 0, "'l'"), -(11430, 0, "'i'"), -(11431, 0, "'s'"), -(11431, 1, "''"), -(11430, 1, "''"), -(11429, 1, "''"), -(11428, 1, "''"), -(11427, 1, "''"), -(11427, 0, "'e'"), -(11428, 0, "' '"), -(11429, 0, "'l'"), -(11430, 0, "'i'"), -(11431, 0, "'s'"), -(11432, 0, "'t'"), -(11433, 0, "' '"), -(11434, 0, "'a'"), -(11435, 0, "'n'"), -(11436, 0, "'d'"), -(11437, 0, "' '"), -(11438, 0, "'s'"), -(11439, 0, "'p'"), -(11440, 0, "'l'"), -(11441, 0, "'i'"), -(11442, 0, "'c'"), -(11443, 0, "'e'"), -(11444, 0, "' '"), -(11445, 0, "'i'"), -(11445, 1, "''"), -(11444, 1, "''"), -(11444, 0, "' '"), -(11445, 0, "'t'"), -(11446, 0, "'h'"), -(11447, 0, "'e'"), -(11448, 0, "' '"), -(11449, 0, "'n'"), -(11450, 0, "'e'"), -(11451, 0, "'w'"), -(11452, 0, "' '"), -(11453, 0, "'i'"), -(11454, 0, "'t'"), -(11455, 0, "'e'"), -(11456, 0, "'m'"), -(11457, 0, "' '"), -(11458, 0, "'i'"), -(11459, 0, "'n'"), -(11460, 0, "'.'"), -(11461, 147, "''"), -(11461, 0, "'n'"), -(11490, 1, "'d'"), -(11491, 0, "'o'"), -(11492, 0, "'e'"), -(11493, 0, "'s'"), -(11481, 13, "'d'"), -(11482, 0, "'o'"), -(11483, 0, "'e'"), -(11484, 0, "'s'"), -(11490, 5, "' '"), -(11491, 0, "'u'"), -(11492, 0, "'s'"), -(11493, 0, "'i'"), -(11494, 0, "'n'"), -(11495, 0, "'g'"), -(11510, 21, "''"), -(11510, 0, "','"), -(11511, 0, "' '"), -(11511, 1, "''"), -(11510, 1, "''"), -(11560, 4, "''"), -(11626, 6, "'h'"), -(11627, 0, "'a'"), -(11628, 0, "'v'"), -(11629, 0, "'e'"), -(11630, 0, "'n'"), -(11631, 0, "'''"), -(11632, 0, "'t'"), -(11633, 0, "' '"), -(11634, 0, "'b'"), -(11635, 0, "'e'"), -(11636, 0, "'e'"), -(11637, 0, "'n'"), -(11780, 1, "''"), -(11780, 0, "'n'"), -(11781, 0, "'n'"), -(11862, 0, "' '"), -(11863, 0, "'O'"), -(11864, 0, "'('"), -(11865, 0, "'n'"), -(11866, 0, "')'"), -(11867, 0, "' '"), -(11868, 0, "'s'"), -(11869, 0, "'l'"), -(11870, 0, "'o'"), -(11871, 0, "'w'"), -(11872, 0, "'.'"), -(11863, 0, "'*'"), -(11868, 0, "'*'"), -(12144, 7, "'W'"), -(12145, 0, "'e'"), -(12146, 0, "'l'"), -(12147, 0, "'l'"), -(12148, 0, "','"), -(12219, 35, "'V'"), -(12225, 0, "'r'"), -(12226, 0, "'e'"), -(12227, 0, "'a'"), -(12228, 0, "'l'"), -(12229, 0, "'l'"), -(12230, 0, "'y'"), -(12231, 0, "' '"), -(12243, 0, "'S'"), -(12244, 0, "'o'"), -(12245, 0, "' '"), -(12246, 0, "'e'"), -(12247, 0, "'a'"), -(12248, 0, "'c'"), -(12249, 0, "'h'"), -(12250, 0, "' '"), -(12251, 0, "'t'"), -(12252, 0, "'i'"), -(12253, 0, "'m'"), -(12254, 0, "'e'"), -(12243, 12, "'E'"), -(12244, 0, "'a'"), -(12245, 0, "'c'"), -(12246, 0, "'h'"), -(12247, 0, "' '"), -(12248, 0, "'t'"), -(12249, 0, "'i'"), -(12250, 0, "'m'"), -(12251, 0, "'e'"), -(12252, 0, "' '"), -(12253, 0, "'w'"), -(12254, 0, "'e'"), -(12255, 0, "' '"), -(12256, 0, "'i'"), -(12257, 0, "'n'"), -(12258, 0, "'s'"), -(12259, 0, "'e'"), -(12260, 0, "'r'"), -(12261, 0, "'t'"), -(12262, 0, "','"), -(12263, 0, "' '"), -(12264, 0, "'w'"), -(12265, 0, "'e'"), -(12266, 0, "' '"), -(12267, 0, "'n'"), -(12268, 0, "'e'"), -(12269, 0, "'e'"), -(12270, 0, "'d'"), -(12271, 0, "' '"), -(12272, 0, "'t'"), -(12273, 0, "'o'"), -(12274, 0, "' '"), -(12275, 0, "'t'"), -(12276, 0, "'a'"), -(12277, 0, "'k'"), -(12278, 0, "'e'"), -(12279, 0, "' '"), -(12280, 0, "'a'"), -(12281, 0, "'s'"), -(12281, 1, "''"), -(12281, 0, "'b'"), -(12282, 0, "'o'"), -(12283, 0, "'u'"), -(12284, 0, "'t'"), -(12285, 0, "' '"), -(12286, 0, "'a'"), -(12287, 0, "'s'"), -(12288, 0, "' '"), -(12289, 0, "'a'"), -(12290, 0, "'m'"), -(12291, 0, "'n'"), -(12292, 0, "'y'"), -(12293, 0, "' '"), -(12289, 5, "'m'"), -(12290, 0, "'a'"), -(12291, 0, "'n'"), -(12292, 0, "'y'"), -(12293, 0, "' '"), -(12294, 0, "'s'"), -(12295, 0, "'t'"), -(12296, 0, "'e'"), -(12297, 0, "'p'"), -(12298, 0, "'s'"), -(12299, 0, "' '"), -(12275, 25, "'l'"), -(12276, 0, "'o'"), -(12277, 0, "'o'"), -(12278, 0, "'p'"), -(12275, 4, "'take about as many steps '"), -(12300, 0, "'a'"), -(12301, 0, "'s'"), -(12302, 0, "' '"), -(12303, 0, "'t'"), -(12304, 0, "'h'"), -(12305, 0, "'e'"), -(12306, 0, "'r'"), -(12307, 0, "'e'"), -(12308, 0, "' '"), -(12309, 0, "'a'"), -(12310, 0, "'r'"), -(12311, 0, "'e'"), -(12312, 0, "' '"), -(12313, 0, "'i'"), -(12313, 1, "''"), -(12313, 0, "'c'"), -(12314, 0, "'h'"), -(12315, 0, "'a'"), -(12316, 0, "'r'"), -(12317, 0, "'a'"), -(12318, 0, "'c'"), -(12319, 0, "'t'"), -(12320, 0, "'e'"), -(12321, 0, "'r'"), -(12322, 0, "'s'"), -(12323, 0, "' '"), -(12324, 0, "'i'"), -(12325, 0, "'n'"), -(12326, 0, "' '"), -(12327, 0, "'t'"), -(12328, 0, "'h'"), -(12329, 0, "'e'"), -(12330, 0, "' '"), -(12331, 0, "'d'"), -(12332, 0, "'o'"), -(12333, 0, "'c'"), -(12334, 0, "'u'"), -(12335, 0, "'m'"), -(12336, 0, "'e'"), -(12337, 0, "'n'"), -(12338, 0, "'t'"), -(12339, 0, "'.'"), -(12340, 0, "' '"), -(12341, 0, "'W'"), -(12342, 0, "'e'"), -(12343, 0, "'l'"), -(12344, 0, "'l'"), -(12345, 0, "','"), -(12346, 0, "' '"), -(12347, 0, "'c'"), -(12348, 0, "'h'"), -(12349, 0, "'a'"), -(12350, 0, "'r'"), -(12351, 0, "'a'"), -(12352, 0, "'c'"), -(12353, 0, "'t'"), -(12354, 0, "'e'"), -(12355, 0, "'r'"), -(12356, 0, "'s'"), -(12357, 0, "' '"), -(12358, 0, "'w'"), -(12359, 0, "'h'"), -(12360, 0, "'i'"), -(12361, 0, "'c'"), -(12362, 0, "'h'"), -(12363, 0, "' '"), -(12364, 0, "'h'"), -(12365, 0, "'a'"), -(12366, 0, "'v'"), -(12367, 0, "'e'"), -(12368, 0, "' '"), -(12369, 0, "'*'"), -(12370, 0, "'e'"), -(12371, 0, "'v'"), -(12372, 0, "'e'"), -(12373, 0, "'r'"), -(12374, 0, "' '"), -(12375, 0, "'b'"), -(12376, 0, "'e'"), -(12377, 0, "'e'"), -(12378, 0, "'n'"), -(12379, 0, "'*'"), -(12380, 0, "' '"), -(12381, 0, "'i'"), -(12382, 0, "'n'"), -(12383, 0, "' '"), -(12384, 0, "'t'"), -(12385, 0, "'h'"), -(12386, 0, "'e'"), -(12387, 0, "' '"), -(12388, 0, "'d'"), -(12389, 0, "'o'"), -(12390, 0, "'c'"), -(12391, 0, "'u'"), -(12392, 0, "'m'"), -(12393, 0, "'e'"), -(12394, 0, "'n'"), -(12395, 0, "'t'"), -(12396, 0, "' '"), -(12397, 0, "'('"), -(12398, 0, "'s'"), -(12398, 1, "''"), -(12398, 0, "'b'"), -(12399, 0, "'e'"), -(12400, 0, "'c'"), -(12401, 0, "'a'"), -(12402, 0, "'u'"), -(12403, 0, "'s'"), -(12404, 0, "'e'"), -(12405, 0, "' '"), -(12396, 10, "'.'"), -(12397, 0, "' '"), -(12398, 0, "'S'"), -(12399, 0, "'o'"), -(12400, 0, "' '"), -(12401, 0, "'t'"), -(12402, 0, "'h'"), -(12403, 0, "'e'"), -(12404, 0, "' '"), -(12405, 0, "'l'"), -(12406, 0, "'o'"), -(12407, 0, "'n'"), -(12398, 10, "'T'"), -(12399, 0, "'h'"), -(12400, 0, "'i'"), -(12401, 0, "'s'"), -(12402, 0, "' '"), -(12403, 0, "'i'"), -(12404, 0, "'s'"), -(12405, 0, "'n'"), -(12406, 0, "'''"), -(12407, 0, "'t'"), -(12408, 0, "' '"), -(12409, 0, "'j'"), -(12410, 0, "'u'"), -(12411, 0, "'s'"), -(12412, 0, "'t'"), -(12413, 0, "' '"), -(12414, 0, "'s'"), -(12415, 0, "'l'"), -(12416, 0, "'o'"), -(12417, 0, "'w'"), -(12418, 0, "'.'"), -(12419, 0, "' '"), -(12420, 0, "'I'"), -(12421, 0, "'t'"), -(12422, 0, "'s'"), -(12423, 0, "' '"), -(12424, 0, "'s'"), -(12425, 0, "'l'"), -(12426, 0, "'o'"), -(12427, 0, "'w'"), -(12428, 0, "' '"), -(12429, 0, "'a'"), -(12430, 0, "'n'"), -(12431, 0, "'d'"), -(12432, 0, "' '"), -(12433, 0, "'g'"), -(12434, 0, "'e'"), -(12435, 0, "'t'"), -(12436, 0, "'t'"), -(12437, 0, "'i'"), -(12438, 0, "'n'"), -(12439, 0, "'g'"), -(12440, 0, "' '"), -(12441, 0, "'s'"), -(12442, 0, "'l'"), -(12443, 0, "'o'"), -(12444, 0, "'w'"), -(12445, 0, "'e'"), -(12446, 0, "'r'"), -(12447, 0, "'.'"), -(10512, 19, "'F'"), -(10513, 0, "'i'"), -(10514, 0, "'x'"), -(10515, 0, "'i'"), -(10516, 0, "'n'"), -(10517, 0, "'g'"), -(10518, 0, "' '"), -(10519, 0, "'l'"), -(10520, 0, "'i'"), -(10521, 0, "'n'"), -(10522, 0, "'e'"), -(10523, 0, "'a'"), -(10524, 0, "'r'"), -(10525, 0, "' '"), -(10526, 0, "'t'"), -(10527, 0, "'i'"), -(10528, 0, "'m'"), -(10529, 0, "'e'"), -(10512, 18, "'R'"), -(10513, 0, "'e'"), -(10514, 0, "'m'"), -(10515, 0, "'o'"), -(10516, 0, "'v'"), -(10517, 0, "'i'"), -(10518, 0, "'n'"), -(10519, 0, "'g'"), -(10520, 0, "' '"), -(10521, 0, "'s'"), -(10522, 0, "'c'"), -(10523, 0, "'a'"), -(10524, 0, "'n'"), -(10525, 0, "'n'"), -(10526, 0, "'i'"), -(10527, 0, "'n'"), -(10528, 0, "'g'"), -(12447, 0, "'n'"), -(12448, 0, "'n'"), -(12449, 0, "'Y'"), -(12450, 0, "'j'"), -(12451, 0, "'s'"), -(12452, 0, "' '"), -(12449, 4, "''"), -(12448, 0, "'T'"), -(12449, 0, "'h'"), -(12450, 0, "'e'"), -(12451, 0, "'i'"), -(12451, 1, "''"), -(12450, 1, "''"), -(12450, 0, "'e'"), -(12451, 0, "'r'"), -(12452, 0, "'e'"), -(12453, 0, "'''"), -(12454, 0, "'s'"), -(12455, 0, "' '"), -(12456, 0, "'a'"), -(12457, 0, "' '"), -(12458, 0, "'f'"), -(12459, 0, "'e'"), -(12460, 0, "'w'"), -(12461, 0, "' '"), -(12462, 0, "'s'"), -(12463, 0, "'o'"), -(12464, 0, "'l'"), -(12465, 0, "'u'"), -(12466, 0, "'t'"), -(12467, 0, "'i'"), -(12468, 0, "'o'"), -(12469, 0, "'n'"), -(12470, 0, "'s'"), -(12471, 0, "' '"), -(12472, 0, "'t'"), -(12473, 0, "'o'"), -(12474, 0, "' '"), -(12475, 0, "'t'"), -(12476, 0, "'h'"), -(12477, 0, "'i'"), -(12478, 0, "'s'"), -(12479, 0, "','"), -(12480, 0, "' '"), -(12481, 0, "'b'"), -(12482, 0, "'u'"), -(12483, 0, "'t'"), -(12484, 0, "' '"), -(12485, 0, "'l'"), -(12486, 0, "'e'"), -(12487, 0, "'t'"), -(12488, 0, "'s'"), -(12489, 0, "' '"), -(12490, 0, "'s'"), -(12491, 0, "'t'"), -(12492, 0, "'a'"), -(12493, 0, "'r'"), -(12494, 0, "'t'"), -(12495, 0, "' '"), -(12496, 0, "'w'"), -(12497, 0, "'i'"), -(12498, 0, "'t'"), -(12499, 0, "'h'"), -(12500, 0, "' '"), -(12501, 0, "'t'"), -(12502, 0, "'h'"), -(12503, 0, "'e'"), -(12504, 0, "' '"), -(12505, 0, "'o'"), -(12506, 0, "'b'"), -(12507, 0, "'v'"), -(12508, 0, "'i'"), -(12509, 0, "'o'"), -(12510, 0, "'u'"), -(12511, 0, "'s'"), -(12505, 7, "'s'"), -(12506, 0, "'i'"), -(12507, 0, "'m'"), -(12508, 0, "'p'"), -(12509, 0, "'l'"), -(12510, 0, "'e'"), -(12511, 0, "'s'"), -(12512, 0, "'t'"), -(12513, 0, "':'"), -(12514, 0, "' '"), -(12515, 0, "'R'"), -(12516, 0, "'e'"), -(12517, 0, "'p'"), -(12518, 0, "'l'"), -(12519, 0, "'a'"), -(12520, 0, "'c'"), -(12521, 0, "'i'"), -(12522, 0, "'n'"), -(12523, 0, "'g'"), -(12524, 0, "' '"), -(12525, 0, "'t'"), -(12526, 0, "'h'"), -(12527, 0, "'e'"), -(12528, 0, "' '"), -(12529, 0, "'a'"), -(12530, 0, "'r'"), -(12531, 0, "'r'"), -(12532, 0, "'a'"), -(12533, 0, "'y'"), -(12534, 0, "' '"), -(12535, 0, "'w'"), -(12536, 0, "'i'"), -(12537, 0, "'t'"), -(12538, 0, "'h'"), -(12539, 0, "' '"), -(12540, 0, "'a'"), -(12541, 0, "' '"), -(12542, 0, "'l'"), -(12543, 0, "'i'"), -(12544, 0, "'n'"), -(12545, 0, "'k'"), -(12546, 0, "'e'"), -(12547, 0, "'d'"), -(12548, 0, "' '"), -(12549, 0, "'l'"), -(12550, 0, "'i'"), -(12551, 0, "'s'"), -(12552, 0, "'t'"), -(12553, 0, "'.'"), -(12554, 0, "'n'"), -(12555, 0, "'n'"), -(12556, 0, "'T'"), -(12557, 0, "'h'"), -(12558, 0, "'i'"), -(12559, 0, "'s'"), -(12560, 0, "' '"), -(12561, 0, "'h'"), -(12562, 0, "'a'"), -(12563, 0, "'s'"), -(12564, 0, "' '"), -(12565, 0, "'a'"), -(12566, 0, "' '"), -(12567, 0, "'f'"), -(12568, 0, "'e'"), -(12569, 0, "'w'"), -(12570, 0, "' '"), -(12571, 0, "'b'"), -(12572, 0, "'e'"), -(12573, 0, "'n'"), -(12574, 0, "'e'"), -(12575, 0, "'f'"), -(12576, 0, "'i'"), -(12577, 0, "'t'"), -(12578, 0, "'s'"), -(12579, 0, "':'"), -(12580, 0, "'n'"), -(12581, 0, "'n'"), -(12582, 0, "'-'"), -(12583, 0, "' '"), -(12582, 2, "'-'"), -(12505, 78, "''"), -(12505, 0, "'simplest: Replacing the array with a linked list.nnThis has a few benefits:nn-'"), -(12514, 0, "' '"), -(12515, 0, "'T'"), -(12516, 0, "'o'"), -(12517, 0, "' '"), -(12518, 0, "'f'"), -(12519, 0, "'i'"), -(12520, 0, "'n'"), -(12521, 0, "'d'"), -(12522, 0, "' '"), -(12523, 0, "'a'"), -(12524, 0, "'n'"), -(12525, 0, "' '"), -(12525, 1, "''"), -(12524, 1, "''"), -(12523, 1, "''"), -(12515, 8, "'W'"), -(12516, 0, "'e'"), -(12517, 0, "'h'"), -(12518, 0, "'n'"), -(12519, 0, "' '"), -(12520, 0, "'i'"), -(12521, 0, "'t'"), -(12522, 0, "'e'"), -(12523, 0, "'m'"), -(12515, 9, "'W'"), -(12516, 0, "'h'"), -(12517, 0, "'e'"), -(12518, 0, "'n'"), -(12519, 0, "' '"), -(12520, 0, "'i'"), -(12521, 0, "'t'"), -(12522, 0, "'e'"), -(12523, 0, "'m'"), -(12524, 0, "'s'"), -(12525, 0, "' '"), -(12526, 0, "'a'"), -(12527, 0, "'r'"), -(12528, 0, "'e'"), -(12529, 0, "' '"), -(12530, 0, "'i'"), -(12531, 0, "'n'"), -(12532, 0, "'s'"), -(12533, 0, "'e'"), -(12534, 0, "'r'"), -(12535, 0, "'t'"), -(12536, 0, "'e'"), -(12537, 0, "'d'"), -(12515, 0, "'U'"), -(12516, 0, "'s'"), -(12517, 0, "'u'"), -(12518, 0, "'a'"), -(12519, 0, "'l'"), -(12520, 0, "'l'"), -(12521, 0, "'y'"), -(12522, 0, "' '"), -(12523, 0, "'w'"), -(12524, 0, "'h'"), -(12525, 0, "'e'"), -(12526, 0, "'n'"), -(12527, 0, "' '"), -(12528, 0, "'a'"), -(12529, 0, "' '"), -(12530, 0, "'h'"), -(12531, 0, "'u'"), -(12532, 0, "'m'"), -(12533, 0, "'a'"), -(12534, 0, "'n'"), -(12535, 0, "' '"), -(12536, 0, "'i'"), -(12537, 0, "'s'"), -(12538, 0, "' '"), -(12539, 0, "'t'"), -(12540, 0, "'y'"), -(12541, 0, "'p'"), -(12542, 0, "'i'"), -(12543, 0, "'n'"), -(12544, 0, "'g'"), -(12545, 0, "','"), -(12546, 0, "' '"), -(12547, 0, "'t'"), -(12548, 0, "'h'"), -(12549, 0, "'e'"), -(12550, 0, "'y'"), -(12551, 0, "' '"), -(12552, 0, "'d'"), -(12553, 0, "'o'"), -(12554, 0, "'n'"), -(12555, 0, "'''"), -(12556, 0, "'t'"), -(12557, 0, "' '"), -(12558, 0, "'a'"), -(12559, 0, "'c'"), -(12560, 0, "'t'"), -(12561, 0, "'u'"), -(12562, 0, "'a'"), -(12563, 0, "'l'"), -(12564, 0, "'l'"), -(12565, 0, "'y'"), -(12566, 0, "' '"), -(12567, 0, "'m'"), -(12568, 0, "'o'"), -(12569, 0, "'v'"), -(12570, 0, "'e'"), -(12571, 0, "' '"), -(12572, 0, "'a'"), -(12573, 0, "'r'"), -(12574, 0, "'o'"), -(12575, 0, "'u'"), -(12576, 0, "'n'"), -(12577, 0, "'d'"), -(12578, 0, "' '"), -(12579, 0, "'t'"), -(12580, 0, "'h'"), -(12581, 0, "'e'"), -(12582, 0, "' '"), -(12583, 0, "'d'"), -(12584, 0, "'o'"), -(12585, 0, "'c'"), -(12586, 0, "'u'"), -(12587, 0, "'m'"), -(12588, 0, "'e'"), -(12589, 0, "'n'"), -(12590, 0, "'t'"), -(12591, 0, "' '"), -(12592, 0, "'t'"), -(12593, 0, "'h'"), -(12594, 0, "'a'"), -(12595, 0, "'t'"), -(12596, 0, "' '"), -(12597, 0, "'m'"), -(12598, 0, "'u'"), -(12599, 0, "'c'"), -(12600, 0, "'h'"), -(12601, 0, "'.'"), -(12602, 0, "' '"), -(12603, 0, "'M'"), -(12603, 1, "''"), -(12602, 0, "' '"), -(12603, 0, "'W'"), -(12604, 0, "'e'"), -(12605, 0, "' '"), -(12606, 0, "'c'"), -(12607, 0, "'a'"), -(12608, 0, "'n'"), -(12609, 0, "' '"), -(12610, 0, "'c'"), -(12611, 0, "'a'"), -(12612, 0, "'c'"), -(12613, 0, "'h'"), -(12614, 0, "'e'"), -(12615, 0, "' '"), -(12616, 0, "'t'"), -(12617, 0, "'h'"), -(12618, 0, "'e'"), -(12619, 0, "' '"), -(12620, 0, "'l'"), -(12621, 0, "'a'"), -(12622, 0, "'s'"), -(12623, 0, "'t'"), -(12624, 0, "' '"), -(12625, 0, "'i'"), -(12626, 0, "'n'"), -(12627, 0, "'s'"), -(12628, 0, "'e'"), -(12629, 0, "'r'"), -(12630, 0, "'t'"), -(12631, 0, "'e'"), -(12632, 0, "'d'"), -(12632, 1, "''"), -(12631, 1, "''"), -(12631, 0, "' '"), -(12632, 0, "'l'"), -(12625, 8, "'l'"), -(12626, 0, "'o'"), -(12627, 0, "'c'"), -(12628, 0, "'a'"), -(12629, 0, "'t'"), -(12630, 0, "'i'"), -(12631, 0, "'o'"), -(12632, 0, "'n'"), -(12633, 0, "' '"), -(12634, 0, "'t'"), -(12635, 0, "'h'"), -(12636, 0, "'e'"), -(12637, 0, "' '"), -(12638, 0, "'u'"), -(12639, 0, "'s'"), -(12640, 0, "'e'"), -(12641, 0, "'r'"), -(12642, 0, "' '"), -(12643, 0, "'i'"), -(12644, 0, "'n'"), -(12645, 0, "'s'"), -(12646, 0, "'e'"), -(12647, 0, "'r'"), -(12648, 0, "'t'"), -(12649, 0, "'e'"), -(12650, 0, "'d'"), -(12651, 0, "','"), -(12652, 0, "' '"), -(12653, 0, "'a'"), -(12654, 0, "'n'"), -(12655, 0, "'a'"), -(12656, 0, "'d'"), -(12657, 0, "' '"), -(12657, 1, "''"), -(12656, 1, "''"), -(12655, 1, "''"), -(12655, 0, "'d'"), -(12656, 0, "' '"), -(12657, 0, "'w'"), -(12658, 0, "'h'"), -(12659, 0, "'e'"), -(12660, 0, "'n'"), -(12661, 0, "' '"), -(12662, 0, "'t'"), -(12663, 0, "'h'"), -(12664, 0, "'e'"), -(12665, 0, "'y'"), -(12666, 0, "' '"), -(12667, 0, "'i'"), -(12668, 0, "'n'"), -(12669, 0, "'s'"), -(12670, 0, "'e'"), -(12671, 0, "'r'"), -(12672, 0, "'t'"), -(12673, 0, "' '"), -(12674, 0, "'a'"), -(12675, 0, "'g'"), -(12676, 0, "'a'"), -(12677, 0, "'i'"), -(12678, 0, "'n'"), -(12679, 0, "' '"), -(12680, 0, "'w'"), -(12681, 0, "'e'"), -(12681, 1, "''"), -(12680, 1, "''"), -(12679, 1, "''"), -(12679, 0, "','"), -(12680, 0, "' '"), -(12681, 0, "'i'"), -(12682, 0, "'f'"), -(12683, 0, "' '"), -(12684, 0, "'t'"), -(12685, 0, "'h'"), -(12686, 0, "'e'"), -(12687, 0, "'y'"), -(12688, 0, "' '"), -(12689, 0, "'i'"), -(12690, 0, "'n'"), -(12691, 0, "'s'"), -(12692, 0, "'e'"), -(12693, 0, "'r'"), -(12694, 0, "'t'"), -(12695, 0, "' '"), -(12696, 0, "'c'"), -(12697, 0, "'l'"), -(12698, 0, "'o'"), -(12699, 0, "'s'"), -(12700, 0, "'e'"), -(12701, 0, "' '"), -(12702, 0, "'t'"), -(12703, 0, "'o'"), -(12704, 0, "' '"), -(12705, 0, "'t'"), -(12706, 0, "'h'"), -(12707, 0, "'e'"), -(12708, 0, "' '"), -(12709, 0, "'o'"), -(12710, 0, "'l'"), -(12711, 0, "'d'"), -(12712, 0, "' '"), -(12713, 0, "'i'"), -(12714, 0, "'n'"), -(12715, 0, "'s'"), -(12716, 0, "'e'"), -(12717, 0, "'r'"), -(12718, 0, "'t'"), -(12713, 6, "'c'"), -(12714, 0, "'u'"), -(12715, 0, "'r'"), -(12716, 0, "'o'"), -(12717, 0, "'r'"), -(12717, 1, "''"), -(12716, 1, "''"), -(12716, 0, "'s'"), -(12717, 0, "'o'"), -(12718, 0, "'r'"), -(12719, 0, "' '"), -(12720, 0, "'p'"), -(12721, 0, "'o'"), -(12722, 0, "'i'"), -(12723, 0, "'t'"), -(12723, 1, "''"), -(12722, 1, "''"), -(12722, 0, "'s'"), -(12723, 0, "'i'"), -(12724, 0, "'t'"), -(12725, 0, "'i'"), -(12726, 0, "'o'"), -(12727, 0, "'n'"), -(12728, 0, "' '"), -(12729, 0, "'w'"), -(12730, 0, "'e'"), -(12731, 0, "' '"), -(12732, 0, "'c'"), -(12733, 0, "'a'"), -(12734, 0, "'n'"), -(12735, 0, "' '"), -(12736, 0, "'j'"), -(12737, 0, "'u'"), -(12738, 0, "'s'"), -(12739, 0, "'t'"), -(12740, 0, "' '"), -(12741, 0, "'t'"), -(12742, 0, "'r'"), -(12743, 0, "'a'"), -(12744, 0, "'c'"), -(12745, 0, "'k'"), -(12746, 0, "' '"), -(12592, 4, "'v'"), -(12593, 0, "'e'"), -(12594, 0, "'r'"), -(12595, 0, "'y'"), -(12624, 9, "' '"), -(12625, 0, "'i'"), -(12626, 0, "'n'"), -(12627, 0, "'d'"), -(12628, 0, "'e'"), -(12629, 0, "'x'"), -(12630, 0, "' '"), -(12631, 0, "'a'"), -(12632, 0, "'n'"), -(12633, 0, "'d'"), -(12634, 0, "' '"), -(12635, 0, "'p'"), -(12636, 0, "'o'"), -(12637, 0, "'s'"), -(12638, 0, "'i'"), -(12625, 14, "''"), -(12625, 0, "'('"), -(12626, 0, "'i'"), -(12627, 0, "'n'"), -(12628, 0, "'d'"), -(12629, 0, "'e'"), -(12630, 0, "'x'"), -(12631, 0, "','"), -(12632, 0, "' '"), -(12633, 0, "'p'"), -(12634, 0, "'o'"), -(12635, 0, "'s'"), -(12636, 0, "'i'"), -(12637, 0, "'t'"), -(12638, 0, "'i'"), -(12639, 0, "'o'"), -(12640, 0, "'n'"), -(12641, 0, "')'"), -(12642, 0, "' '"), -(12643, 0, "'p'"), -(12644, 0, "'a'"), -(12645, 0, "'i'"), -(12646, 0, "'r'"), -(12647, 0, "' '"), -(12648, 0, "'w'"), -(12649, 0, "'h'"), -(12650, 0, "'e'"), -(12651, 0, "'r'"), -(12652, 0, "'e'"), -(12663, 8, "'t'"), -(12664, 0, "'y'"), -(12665, 0, "'p'"), -(12666, 0, "'e'"), -(12667, 0, "'d'"), -(12668, 0, "' '"), -(12669, 0, "'s'"), -(12670, 0, "'o'"), -(12671, 0, "'m'"), -(12672, 0, "'e'"), -(12673, 0, "'t'"), -(12674, 0, "'h'"), -(12675, 0, "'i'"), -(12676, 0, "'n'"), -(12677, 0, "'g'"), -(12446, 0, "'n'"), -(12447, 0, "'n'"), -(12448, 0, "'#'"), -(12449, 0, "'#'"), -(12450, 0, "'#'"), -(12451, 0, "'#'"), -(12452, 0, "' '"), -(12453, 0, "'F'"), -(12454, 0, "'i'"), -(12455, 0, "'x'"), -(12456, 0, "'y'"), -(12457, 0, "' '"), -(12458, 0, "'f'"), -(12459, 0, "'i'"), -(12460, 0, "'x'"), -(12461, 0, "' '"), -(12462, 0, "'f'"), -(12463, 0, "'i'"), -(12464, 0, "'x'"), -(10593, 0, "'c'"), -(10594, 0, "'a'"), -(10594, 1, "''"), -(10593, 1, "''"), -(10593, 0, "'n'"), -(10594, 0, "'e'"), -(10595, 0, "'e'"), -(10596, 0, "'d'"), -(10597, 0, "' '"), -(10598, 0, "'t'"), -(10599, 0, "'o'"), -(10600, 0, "' '"), -(10556, 10, "' '"), -(10557, 0, "'c'"), -(10558, 0, "'o'"), -(10559, 0, "'r'"), -(10560, 0, "'e'"), -(10561, 0, "' '"), -(10562, 0, "'d'"), -(10563, 0, "'a'"), -(10564, 0, "'t'"), -(10565, 0, "'a'"), -(10566, 0, "' '"), -(10567, 0, "'s'"), -(10568, 0, "'t'"), -(10569, 0, "'r'"), -(10570, 0, "'u'"), -(10571, 0, "'c'"), -(10572, 0, "'t'"), -(10573, 0, "'u'"), -(10574, 0, "'r'"), -(10575, 0, "'e'"), -(10611, 36, "'f'"), -(10612, 0, "'i'"), -(10613, 0, "'x'"), -(10614, 0, "' '"), -(10615, 0, "'t'"), -(10616, 0, "'w'"), -(10617, 0, "'o'"), -(10618, 0, "' '"), -(10619, 0, "'p'"), -(10620, 0, "'e'"), -(10621, 0, "'r'"), -(10622, 0, "'f'"), -(10623, 0, "'o'"), -(10624, 0, "'r'"), -(10625, 0, "'m'"), -(10626, 0, "'a'"), -(10627, 0, "'n'"), -(10628, 0, "'c'"), -(10629, 0, "'e'"), -(10630, 0, "' '"), -(10631, 0, "'h'"), -(10632, 0, "'o'"), -(10633, 0, "'t'"), -(10634, 0, "'s'"), -(10635, 0, "'p'"), -(10636, 0, "'o'"), -(10637, 0, "'t'"), -(10638, 0, "'s'"), -(10639, 0, "':'"), -(10642, 1, "''"), -(10642, 0, "'1'"), -(10643, 0, "'.'"), -(10680, 1, "''"), -(10680, 0, "'2'"), -(10681, 0, "'.'"), -(11379, 93, "''"), -(11281, 98, "'W'"), -(11282, 0, "'h'"), -(11283, 0, "'e'"), -(11284, 0, "'r'"), -(11285, 0, "'e'"), -(11286, 0, "' '"), -(11287, 0, "'o'"), -(11288, 0, "'n'"), -(11289, 0, "' '"), -(11290, 0, "'e'"), -(11291, 0, "'a'"), -(11292, 0, "'r'"), -(11293, 0, "'t'"), -(11294, 0, "'h'"), -(11295, 0, "' '"), -(11296, 0, "'i'"), -(11297, 0, "'s'"), -(11298, 0, "' '"), -(11299, 0, "'t'"), -(11300, 0, "'h'"), -(11301, 0, "'a'"), -(11302, 0, "'t'"), -(11303, 0, "'?'"), -(11304, 0, "' '"), -(11304, 1, "''"), -(11304, 0, "' '"), -(11305, 0, "'W'"), -(11306, 0, "'e'"), -(11307, 0, "'''"), -(11308, 0, "'l'"), -(11309, 0, "'l'"), -(11310, 0, "' '"), -(11311, 0, "'n'"), -(11312, 0, "'e'"), -(11313, 0, "'e'"), -(11314, 0, "'d'"), -(11315, 0, "' '"), -(11316, 0, "'t'"), -(11317, 0, "'o'"), -(11318, 0, "' '"), -(11319, 0, "'s'"), -(11320, 0, "'c'"), -(11321, 0, "'a'"), -(11322, 0, "'n'"), -(11323, 0, "' '"), -(11324, 0, "'t'"), -(11325, 0, "'h'"), -(11326, 0, "'r'"), -(11327, 0, "'o'"), -(11328, 0, "'u'"), -(11329, 0, "'g'"), -(11330, 0, "'h'"), -(11331, 0, "' '"), -(11332, 0, "'t'"), -(11333, 0, "'h'"), -(11334, 0, "'e'"), -(11335, 0, "' '"), -(11336, 0, "'d'"), -(11337, 0, "'o'"), -(11338, 0, "'c'"), -(11339, 0, "'u'"), -(11340, 0, "'m'"), -(11341, 0, "'e'"), -(11342, 0, "'n'"), -(11343, 0, "'t'"), -(11344, 0, "' '"), -(11345, 0, "'t'"), -(11346, 0, "'o'"), -(11347, 0, "' '"), -(11348, 0, "'f'"), -(11349, 0, "'i'"), -(11350, 0, "'n'"), -(11344, 7, "' '"), -(11345, 0, "'('"), -(11346, 0, "'s'"), -(11347, 0, "'k'"), -(11348, 0, "'i'"), -(11349, 0, "'p'"), -(11350, 0, "'p'"), -(11351, 0, "'i'"), -(11352, 0, "'n'"), -(11353, 0, "'g'"), -(11354, 0, "' '"), -(11355, 0, "'d'"), -(11356, 0, "'e'"), -(11357, 0, "'l'"), -(11358, 0, "'e'"), -(11359, 0, "'t'"), -(11360, 0, "'e'"), -(11361, 0, "'d'"), -(11362, 0, "' '"), -(11363, 0, "'i'"), -(11364, 0, "'t'"), -(11365, 0, "'e'"), -(11366, 0, "'m'"), -(11367, 0, "'s'"), -(11368, 0, "')'"), -(11369, 0, "' '"), -(11370, 0, "'t'"), -(11371, 0, "'o'"), -(11372, 0, "' '"), -(11373, 0, "'f'"), -(11374, 0, "'i'"), -(11375, 0, "'g'"), -(11376, 0, "'u'"), -(11377, 0, "'r'"), -(11378, 0, "'e'"), -(11379, 0, "' '"), -(11380, 0, "'o'"), -(11381, 0, "'u'"), -(11382, 0, "'t'"), -(11383, 0, "' '"), -(11384, 0, "'w'"), -(11385, 0, "'h'"), -(11386, 0, "'e'"), -(11387, 0, "'r'"), -(11388, 0, "'e'"), -(11389, 0, "' '"), -(11390, 0, "'t'"), -(11391, 0, "'h'"), -(11392, 0, "'e'"), -(11393, 0, "' '"), -(11394, 0, "'n'"), -(11395, 0, "'e'"), -(11396, 0, "'w'"), -(11397, 0, "' '"), -(11398, 0, "'i'"), -(11399, 0, "'t'"), -(11400, 0, "'e'"), -(11401, 0, "'m'"), -(11402, 0, "' '"), -(11403, 0, "'g'"), -(11404, 0, "'o'"), -(11405, 0, "'e'"), -(11406, 0, "'s'"), -(11407, 0, "','"), -(11408, 0, "' '"), -(11409, 0, "'a'"), -(11410, 0, "'n'"), -(11411, 0, "'d'"), -(11412, 0, "' '"), -(11413, 0, "'w'"), -(11414, 0, "'h'"), -(11415, 0, "'a'"), -(11416, 0, "'t'"), -(11417, 0, "' '"), -(11418, 0, "'i'"), -(11419, 0, "'t'"), -(11420, 0, "'s'"), -(11421, 0, "' '"), -(11413, 9, "'l'"), -(11413, 1, "''"), -(11413, 0, "'s'"), -(11414, 0, "'e'"), -(11415, 0, "'e'"), -(11416, 0, "' '"), -(11417, 0, "'w'"), -(11418, 0, "'h'"), -(11419, 0, "'a'"), -(11420, 0, "'t'"), -(11421, 0, "'s'"), -(11422, 0, "' '"), -(11423, 0, "'n'"), -(11424, 0, "'e'"), -(11425, 0, "'a'"), -(11426, 0, "'r'"), -(11427, 0, "'b'"), -(11428, 0, "'y'"), -(11429, 0, "' '"), -(11430, 0, "'t'"), -(11431, 0, "'o'"), -(11432, 0, "' '"), -(11433, 0, "'n'"), -(11434, 0, "'a'"), -(11435, 0, "'m'"), -(11436, 0, "'e'"), -(11437, 0, "' '"), -(11438, 0, "'i'"), -(11439, 0, "'t'"), -(11440, 0, "'s'"), -(11441, 0, "' '"), -(11442, 0, "'p'"), -(11443, 0, "'a'"), -(11444, 0, "'r'"), -(11445, 0, "'e'"), -(11446, 0, "'n'"), -(11447, 0, "'t'"), -(11448, 0, "'.'"), -(11449, 0, "'n'"), -(11450, 0, "'n'"), -(11451, 0, "'T'"), -(11452, 0, "'h'"), -(11453, 0, "'a'"), -(11454, 0, "'t'"), -(11455, 0, "'s'"), -(11456, 0, "' '"), -(11457, 0, "'g'"), -(11458, 0, "'o'"), -(11459, 0, "'i'"), -(11460, 0, "'n'"), -(11461, 0, "'g'"), -(11462, 0, "' '"), -(11463, 0, "'t'"), -(11464, 0, "'o'"), -(11465, 0, "' '"), -(11451, 15, "'I'"), -(11452, 0, "'f'"), -(11453, 0, "' '"), -(11454, 0, "'t'"), -(11455, 0, "'h'"), -(11456, 0, "'e'"), -(11457, 0, "'y'"), -(11458, 0, "' '"), -(11459, 0, "'i'"), -(11460, 0, "'n'"), -(11461, 0, "'s'"), -(11462, 0, "'e'"), -(11463, 0, "'r'"), -(11464, 0, "'t'"), -(11465, 0, "' '"), -(11466, 0, "'a'"), -(11467, 0, "'t'"), -(11468, 0, "' '"), -(11469, 0, "'p'"), -(11470, 0, "'o'"), -(11471, 0, "'s'"), -(11472, 0, "'i'"), -(11473, 0, "'t'"), -(11474, 0, "'i'"), -(11475, 0, "'o'"), -(11476, 0, "'n'"), -(11477, 0, "' '"), -(11478, 0, "'5'"), -(11479, 0, "'0'"), -(11480, 0, "' '"), -(11481, 0, "'0'"), -(11482, 0, "'0'"), -(11483, 0, "'0'"), -(11484, 0, "','"), -(11485, 0, "' '"), -(11486, 0, "'w'"), -(11487, 0, "'e'"), -(11488, 0, "'''"), -(11489, 0, "'l'"), -(11490, 0, "'l'"), -(11491, 0, "' '"), -(11492, 0, "'p'"), -(11493, 0, "'r'"), -(11494, 0, "'o'"), -(11495, 0, "'b'"), -(11496, 0, "'a'"), -(11497, 0, "'b'"), -(11498, 0, "'l'"), -(11499, 0, "'y'"), -(11500, 0, "' '"), -(11501, 0, "'h'"), -(11502, 0, "'a'"), -(11503, 0, "'v'"), -(11504, 0, "'e'"), -(11505, 0, "' '"), -(11506, 0, "'t'"), -(11507, 0, "'o'"), -(11508, 0, "' '"), -(11509, 0, "'s'"), -(11510, 0, "'c'"), -(11511, 0, "'a'"), -(11512, 0, "'n'"), -(11513, 0, "' '"), -(11514, 0, "'a'"), -(11515, 0, "'b'"), -(11516, 0, "'o'"), -(11517, 0, "'u'"), -(11518, 0, "'t'"), -(11519, 0, "' '"), -(11520, 0, "'6'"), -(11521, 0, "'0'"), -(11522, 0, "' '"), -(11523, 0, "'0'"), -(11524, 0, "'0'"), -(11525, 0, "'0'"), -(11526, 0, "' '"), -(11514, 0, "'p'"), -(11515, 0, "'a'"), -(11516, 0, "'s'"), -(11517, 0, "'t'"), -(11518, 0, "' '"), -(11532, 0, "'i'"), -(11533, 0, "'t'"), -(11534, 0, "'e'"), -(11535, 0, "'m'"), -(11536, 0, "'s'"), -(11537, 0, "' '"), -(11538, 0, "'t'"), -(11539, 0, "'o'"), -(11540, 0, "' '"), -(11541, 0, "'f'"), -(11542, 0, "'i'"), -(11543, 0, "'n'"), -(11544, 0, "'d'"), -(11545, 0, "' '"), -(11546, 0, "'t'"), -(11547, 0, "'h'"), -(11548, 0, "'e'"), -(11549, 0, "' '"), -(11550, 0, "'i'"), -(11551, 0, "'n'"), -(11552, 0, "'s'"), -(11553, 0, "'e'"), -(11554, 0, "'r'"), -(11555, 0, "'t'"), -(11556, 0, "' '"), -(11557, 0, "'p'"), -(11558, 0, "'o'"), -(11559, 0, "'s'"), -(11560, 0, "'i'"), -(11561, 0, "'t'"), -(11562, 0, "'i'"), -(11563, 0, "'o'"), -(11564, 0, "'n'"), -(11565, 0, "'!'"), -(11566, 0, "' '"), -(11567, 0, "'Y'"), -(11568, 0, "'i'"), -(11569, 0, "'k'"), -(11570, 0, "'e'"), -(11571, 0, "'s'"), -(11572, 0, "'!'"), -(11573, 0, "'n'"), -(11574, 0, "'n'"), -(11575, 0, "'A'"), -(11576, 0, "'n'"), -(11577, 0, "'d'"), -(11578, 0, "' '"), -(11579, 0, "'t'"), -(11580, 0, "'h'"), -(11581, 0, "'e'"), -(11582, 0, "'n'"), -(11583, 0, "' '"), -(11584, 0, "'w'"), -(11585, 0, "'h'"), -(11586, 0, "'e'"), -(11587, 0, "'n'"), -(11588, 0, "' '"), -(11589, 0, "'w'"), -(11590, 0, "'e'"), -(11591, 0, "' '"), -(11592, 0, "'a'"), -(11593, 0, "'c'"), -(11594, 0, "'t'"), -(11595, 0, "'u'"), -(11596, 0, "'a'"), -(11597, 0, "'l'"), -(11598, 0, "'l'"), -(11599, 0, "'y'"), -(11600, 0, "' '"), -(11601, 0, "'i'"), -(11602, 0, "'n'"), -(11603, 0, "'s'"), -(11604, 0, "'e'"), -(11605, 0, "'r'"), -(11606, 0, "'t'"), -(11607, 0, "','"), -(11608, 0, "' '"), -(11609, 0, "'w'"), -(11610, 0, "'e'"), -(11611, 0, "' '"), -(11612, 0, "'d'"), -(11613, 0, "'o'"), -(11614, 0, "' '"), -(11615, 0, "'t'"), -(11616, 0, "'h'"), -(11617, 0, "'i'"), -(11618, 0, "'s'"), -(11619, 0, "':'"), -(11620, 415, "''"), -(11620, 66, "''"), -(11680, 0, "'n'"), -(11680, 0, "'n'"), -(11681, 0, "'D'"), -(11682, 0, "'o'"), -(11683, 0, "'u'"), -(11684, 0, "'b'"), -(11685, 0, "'l'"), -(11686, 0, "'e'"), -(11687, 0, "' '"), -(11688, 0, "'y'"), -(11689, 0, "'i'"), -(11690, 0, "'k'"), -(11691, 0, "'e'"), -(11692, 0, "'s'"), -(11693, 0, "'!'"), -(11694, 2, "''"), -(11694, 0, "' '"), -(11747, 0, "' '"), -(11748, 0, "'w'"), -(11749, 0, "'i'"), -(11750, 0, "'l'"), -(11751, 0, "'l'"), -(11757, 1, "''"), -(11772, 0, "'s'"), -(11773, 0, "'i'"), -(11774, 0, "'n'"), -(11775, 0, "'g'"), -(11776, 0, "'l'"), -(11777, 0, "'e'"), -(11778, 0, "' '"), -(11783, 0, "' '"), -(11784, 0, "'o'"), -(11785, 0, "'n'"), -(11786, 0, "'c'"), -(11787, 0, "'e'"), -(11788, 0, "' '"), -(11789, 0, "'s'"), -(11790, 0, "'p'"), -(11791, 0, "'a'"), -(11792, 0, "'c'"), -(11793, 0, "'e'"), -(11794, 0, "' '"), -(11795, 0, "'f'"), -(11796, 0, "'o'"), -(11797, 0, "'r'"), -(11798, 0, "'w'"), -(11799, 0, "'a'"), -(11800, 0, "'r'"), -(11801, 0, "'d'"), -(11802, 0, "'.'"), -(11803, 63, "''"), -(11803, 0, "' '"), -(11803, 0, "' '"), -(11804, 0, "'O'"), -(11805, 0, "'o'"), -(11806, 0, "'f'"), -(11804, 3, "'I'"), -(11805, 0, "'t'"), -(11806, 0, "'s'"), -(11807, 0, "' '"), -(11804, 4, "'T'"), -(11805, 0, "'h'"), -(11806, 0, "'i'"), -(11807, 0, "'s'"), -(11808, 0, "' '"), -(11809, 0, "'p'"), -(11810, 0, "'a'"), -(11811, 0, "'r'"), -(11812, 0, "'t'"), -(11813, 0, "' '"), -(11814, 0, "'h'"), -(11815, 0, "'a'"), -(11816, 0, "'p'"), -(11817, 0, "'p'"), -(11818, 0, "'e'"), -(11819, 0, "'n'"), -(11820, 0, "'s'"), -(11821, 0, "' '"), -(11822, 0, "'f'"), -(11823, 0, "'r'"), -(11824, 0, "'o'"), -(11825, 0, "'m'"), -(11826, 0, "' '"), -(11827, 0, "'C'"), -(11828, 0, "'+'"), -(11829, 0, "'+'"), -(11830, 0, "','"), -(11831, 0, "' '"), -(11832, 0, "'b'"), -(11833, 0, "'u'"), -(11834, 0, "'t'"), -(11835, 0, "' '"), -(11836, 0, "'s'"), -(11837, 0, "'t'"), -(11838, 0, "'i'"), -(11839, 0, "'l'"), -(11840, 0, "','"), -(11841, 0, "' '"), -(11841, 1, "''"), -(11840, 1, "''"), -(11840, 0, "'l'"), -(11841, 0, "' '"), -(11842, 0, "'o'"), -(11843, 0, "'o'"), -(11844, 0, "'f'"), -(11845, 0, "'.'"), -(11921, 0, "','"), -(11922, 0, "' '"), -(11923, 0, "'a'"), -(11924, 0, "'n'"), -(11925, 0, "'d'"), -(11926, 0, "' '"), -(11927, 0, "'w'"), -(11928, 0, "'h'"), -(11929, 0, "'o'"), -(11930, 0, "' '"), -(11931, 0, "'k'"), -(11932, 0, "'n'"), -(11933, 0, "'o'"), -(11934, 0, "'w'"), -(11935, 0, "'s'"), -(11936, 0, "' '"), -(11937, 0, "'i'"), -(11938, 0, "'f'"), -(11939, 0, "' '"), -(11940, 0, "'t'"), -(11941, 0, "'h'"), -(11942, 0, "'a'"), -(11943, 0, "'t'"), -(11944, 0, "'s'"), -(11945, 0, "' '"), -(11946, 0, "'a'"), -(11947, 0, "'c'"), -(11948, 0, "'t'"), -(11949, 0, "'u'"), -(11950, 0, "'a'"), -(11951, 0, "'l'"), -(11952, 0, "'l'"), -(11953, 0, "'y'"), -(11954, 0, "' '"), -(11955, 0, "'t'"), -(11956, 0, "'r'"), -(11957, 0, "'u'"), -(11958, 0, "'e'"), -(11960, 22, "''"), -(11937, 23, "'w'"), -(11938, 0, "'h'"), -(11939, 0, "'a'"), -(11940, 0, "'t'"), -(11941, 0, "'s'"), -(11942, 0, "' '"), -(11943, 0, "'r'"), -(11944, 0, "'e'"), -(11945, 0, "'a'"), -(11946, 0, "'l'"), -(11947, 0, "'l'"), -(11948, 0, "'y'"), -(11949, 0, "' '"), -(11950, 0, "'g'"), -(11951, 0, "'o'"), -(11952, 0, "'i'"), -(11953, 0, "'n'"), -(11954, 0, "'g'"), -(11955, 0, "' '"), -(11956, 0, "'o'"), -(11957, 0, "'n'"), -(11958, 0, "' '"), -(11959, 0, "'d'"), -(11960, 0, "'o'"), -(11961, 0, "'w'"), -(11962, 0, "'n'"), -(11963, 0, "' '"), -(11964, 0, "'t'"), -(11965, 0, "'h'"), -(11966, 0, "'e'"), -(11967, 0, "'r'"), -(11968, 0, "'e'"), -(11969, 0, "'.'"), -(11973, 0, "'S'"), -(11974, 0, "'o'"), -(11975, 0, "' '"), -(11976, 1, "''"), -(11976, 0, "'e'"), -(12005, 7, "''"), -(12004, 1, "''"), -(11997, 2, "'t'"), -(11998, 0, "'h'"), -(11999, 0, "'e'"), -(12000, 0, "' '"), -(12001, 0, "'c'"), -(12002, 0, "'o'"), -(12003, 0, "'m'"), -(12004, 0, "'p'"), -(12005, 0, "'u'"), -(12006, 0, "'t'"), -(12007, 0, "'e'"), -(12008, 0, "'r'"), -(12009, 0, "' '"), -(12010, 0, "'d'"), -(12011, 0, "'o'"), -(12012, 0, "'e'"), -(12013, 0, "'s'"), -(12014, 5, "''"), -(12076, 5, "'S'"), -(12077, 0, "'o'"), -(12078, 0, "'r'"), -(12079, 0, "'r'"), -(12080, 0, "'y'"), -(12081, 0, "','"), -(12082, 0, "' '"), -(12083, 0, "'a'"), -(12084, 0, "'s'"), -(12085, 0, "' '"), -(12086, 0, "'m'"), -(12087, 0, "'a'"), -(12088, 0, "'n'"), -(12089, 0, "'y'"), -(12090, 0, "' '"), -(12091, 0, "'s'"), -(12092, 0, "'t'"), -(12083, 10, "''"), -(12082, 1, "''"), -(12184, 0, "' '"), -(12185, 0, "'I'"), -(12186, 0, "'t'"), -(12187, 0, "'s'"), -(12188, 0, "' '"), -(12189, 0, "'O'"), -(12190, 0, "'('"), -(12191, 0, "'n'"), -(12192, 0, "'%'"), -(12192, 1, "''"), -(12192, 0, "'^'"), -(12193, 0, "'2'"), -(12194, 0, "')'"), -(12195, 0, "'.'"), -(12185, 4, "'I'"), -(12186, 0, "'n'"), -(12187, 0, "'s'"), -(12188, 0, "'e'"), -(12189, 0, "'r'"), -(12190, 0, "'t'"), -(12191, 0, "'i'"), -(12192, 0, "'n'"), -(12193, 0, "'g'"), -(12194, 0, "' '"), -(12195, 0, "'n'"), -(12196, 0, "' '"), -(12197, 0, "'c'"), -(12198, 0, "'h'"), -(12199, 0, "'a'"), -(12200, 0, "'r'"), -(12201, 0, "'a'"), -(12202, 0, "'c'"), -(12203, 0, "'t'"), -(12204, 0, "'e'"), -(12205, 0, "'r'"), -(12206, 0, "'s'"), -(12207, 0, "' '"), -(12208, 0, "'w'"), -(12209, 0, "'i'"), -(12210, 0, "'l'"), -(12211, 0, "'l'"), -(12212, 0, "' '"), -(12213, 0, "'t'"), -(12214, 0, "'a'"), -(12215, 0, "'k'"), -(12216, 0, "'e'"), -(12217, 0, "' '"), -(12245, 0, "'n'"), -(12245, 0, "'n'"), -(12246, 40, "'L'"), -(12245, 0, "'n'"), -(12245, 0, "'n'"), -(12246, 0, "'W'"), -(12247, 0, "'e'"), -(12248, 0, "' '"), -(12249, 0, "'c'"), -(12250, 0, "'a'"), -(12251, 0, "'n'"), -(12252, 0, "' '"), -(12253, 0, "'f'"), -(12254, 0, "'i'"), -(12255, 0, "'x'"), -(12256, 0, "' '"), -(12257, 0, "'b'"), -(12258, 0, "'o'"), -(12259, 0, "'t'"), -(12260, 0, "'h'"), -(12261, 0, "' '"), -(12262, 0, "'o'"), -(12263, 0, "'f'"), -(12264, 0, "' '"), -(12265, 0, "'t'"), -(12266, 0, "'h'"), -(12267, 0, "'e'"), -(12268, 0, "'s'"), -(12269, 0, "'e'"), -(12270, 0, "' '"), -(12271, 0, "'p'"), -(12272, 0, "'r'"), -(12273, 0, "'o'"), -(12274, 0, "'b'"), -(12275, 0, "'l'"), -(12276, 0, "'e'"), -(12277, 0, "'m'"), -(12278, 0, "'s'"), -(12279, 0, "' '"), -(12246, 34, "''"), -(12245, 1, "''"), -(12244, 1, "''"), -(12244, 0, "'n'"), -(12245, 0, "'n'"), -(12246, 32, "''"), -(12334, 0, "'W'"), -(12335, 0, "'e'"), -(12336, 0, "' '"), -(12337, 0, "'c'"), -(12338, 0, "'a'"), -(12339, 0, "'n'"), -(12340, 0, "' '"), -(12341, 0, "'s'"), -(12342, 0, "'o'"), -(12343, 0, "'l'"), -(12344, 0, "'v'"), -(12345, 0, "'e'"), -(12346, 0, "' '"), -(12347, 0, "'t'"), -(12348, 0, "'h'"), -(12349, 0, "'e'"), -(12350, 0, "' '"), -(12351, 0, "'s'"), -(12352, 0, "'c'"), -(12353, 0, "'a'"), -(12354, 0, "'n'"), -(12355, 0, "'n'"), -(12356, 0, "'i'"), -(12357, 0, "'n'"), -(12358, 0, "'g'"), -(12359, 0, "' '"), -(12360, 0, "'p'"), -(12361, 0, "'r'"), -(12362, 0, "'o'"), -(12363, 0, "'b'"), -(12364, 0, "'l'"), -(12365, 0, "'e'"), -(12366, 0, "'m'"), -(12367, 0, "' '"), -(12368, 0, "'b'"), -(12369, 0, "'y'"), -(12370, 0, "' '"), -(12371, 7, "''"), -(12375, 1, "''"), -(12375, 0, "'i'"), -(12376, 0, "'n'"), -(12377, 0, "'g'"), -(12405, 0, "'*'"), -(12388, 0, "'*'"), -(12427, 6, "' '"), -(12428, 0, "'e'"), -(12429, 0, "'d'"), -(12430, 0, "'i'"), -(12431, 0, "'t'"), -(12432, 0, "'e'"), -(12433, 0, "'d'"), -(12444, 1, "''"), -(12444, 0, "'.'"), -(12446, 5, "'W'"), -(12469, 0, "' '"), -(12470, 0, "'w'"), -(12471, 0, "'e'"), -(12472, 0, "' '"), -(12473, 0, "'c'"), -(12474, 0, "'a'"), -(12475, 0, "'n'"), -(12476, 0, "' '"), -(12477, 0, "'h'"), -(12478, 0, "'o'"), -(12479, 0, "'p'"), -(12480, 0, "'e'"), -(12481, 0, "' '"), -(12482, 0, "'t'"), -(12483, 0, "'h'"), -(12484, 0, "'e'"), -(12485, 0, "'y'"), -(12486, 8, "''"), -(12526, 83, "''"), -(12526, 0, "' '"), -(12527, 0, "'a'"), -(12528, 0, "'n'"), -(12529, 0, "'d'"), -(12530, 0, "' '"), -(12531, 0, "'j'"), -(12532, 0, "'u'"), -(12533, 0, "'s'"), -(12534, 0, "'t'"), -(12535, 0, "' '"), -(12536, 0, "'s'"), -(12537, 0, "'c'"), -(12538, 0, "'a'"), -(12539, 0, "'n'"), -(12540, 0, "' '"), -(12541, 0, "'a'"), -(12542, 0, "' '"), -(12543, 0, "'b'"), -(12544, 0, "'i'"), -(12545, 0, "'t'"), -(12546, 0, "' '"), -(12547, 0, "'f'"), -(12548, 0, "'o'"), -(12549, 0, "'r'"), -(12550, 0, "'w'"), -(12551, 0, "'a'"), -(12552, 0, "'r'"), -(12553, 0, "'d'"), -(12554, 0, "' '"), -(12555, 0, "'o'"), -(12556, 0, "'r'"), -(12557, 0, "' '"), -(12558, 0, "'b'"), -(12559, 0, "'a'"), -(12560, 0, "'c'"), -(12561, 0, "'k'"), -(12562, 0, "'w'"), -(12563, 0, "'a'"), -(12564, 0, "'r'"), -(12565, 0, "'d'"), -(12566, 0, "'s'"), -(12567, 0, "' '"), -(12568, 0, "'f'"), -(12569, 0, "'r'"), -(12570, 0, "'o'"), -(12571, 0, "'m'"), -(12572, 0, "' '"), -(12573, 0, "'t'"), -(12574, 0, "'h'"), -(12575, 0, "'e'"), -(12576, 0, "'r'"), -(12577, 0, "'e'"), -(12578, 0, "' '"), -(12579, 0, "'t'"), -(12580, 0, "'o'"), -(12581, 0, "' '"), -(12582, 0, "'f'"), -(12583, 0, "'i'"), -(12583, 1, "''"), -(12582, 1, "''"), -(12581, 1, "''"), -(12580, 1, "''"), -(12579, 1, "''"), -(12578, 1, "''"), -(12578, 0, "'.'"), -(12579, 0, "' '"), -(12579, 1, "''"), -(12579, 0, "' '"), -(12580, 0, "'T'"), -(12581, 0, "'h'"), -(12582, 0, "'i'"), -(12583, 0, "'s'"), -(12584, 0, "' '"), -(12585, 0, "'s'"), -(12586, 0, "'o'"), -(12587, 0, "'u'"), -(12588, 0, "'n'"), -(12589, 0, "'d'"), -(12590, 0, "'s'"), -(12591, 0, "' '"), -(12592, 0, "'k'"), -(12593, 0, "'i'"), -(12594, 0, "'n'"), -(12595, 0, "'d'"), -(12596, 0, "' '"), -(12597, 0, "'o'"), -(12598, 0, "'f'"), -(12599, 0, "' '"), -(12600, 0, "'d'"), -(12601, 0, "'o'"), -(12602, 0, "'d'"), -(12603, 0, "'g'"), -(12604, 0, "'y'"), -(12605, 0, "','"), -(12606, 0, "' '"), -(12607, 0, "'b'"), -(12608, 0, "'u'"), -(12609, 0, "'t'"), -(12610, 0, "' '"), -(12611, 0, "'i'"), -(12612, 0, "'t'"), -(12613, 0, "' '"), -(12614, 0, "'w'"), -(12615, 0, "'o'"), -(12616, 0, "'r'"), -(12617, 0, "'k'"), -(12618, 0, "'s'"), -(12619, 0, "' '"), -(12620, 0, "'g'"), -(12621, 0, "'r'"), -(12622, 0, "'e'"), -(12623, 0, "'a'"), -(12624, 0, "'t'"), -(12625, 0, "' '"), -(12626, 0, "'i'"), -(12627, 0, "'n'"), -(12628, 0, "' '"), -(12629, 0, "'p'"), -(12630, 0, "'r'"), -(12631, 0, "'a'"), -(12632, 0, "'c'"), -(12633, 0, "'t'"), -(12634, 0, "'i'"), -(12635, 0, "'c'"), -(12636, 0, "'e'"), -(12637, 0, "'.'"), -(12591, 0, "' '"), -(12592, 0, "'a'"), -(12593, 0, "' '"), -(12594, 0, "'l'"), -(12595, 0, "'i'"), -(12596, 0, "'t'"), -(12597, 0, "'t'"), -(12598, 0, "'l'"), -(12599, 0, "'e'"), -(12600, 0, "' '"), -(12601, 0, "'b'"), -(12602, 0, "'i'"), -(12603, 0, "'t'"), -(12604, 8, "''"), -(12643, 0, "'n'"), -(12644, 0, "'n'"), -(12645, 0, "'T'"), -(12646, 0, "'h'"), -(12647, 0, "'e'"), -(12648, 0, "'n'"), -(12649, 0, "' '"), -(12650, 0, "'w'"), -(12651, 0, "'e'"), -(12652, 0, "' '"), -(12653, 0, "'n'"), -(12654, 0, "'e'"), -(12655, 0, "'e'"), -(12656, 0, "'d'"), -(12657, 0, "' '"), -(12658, 0, "'t'"), -(12659, 0, "'o'"), -(12660, 0, "' '"), -(12661, 0, "'i'"), -(12662, 0, "'n'"), -(12663, 0, "'s'"), -(12664, 0, "'e'"), -(12665, 0, "'r'"), -(12666, 0, "'t'"), -(12667, 0, "' '"), -(12668, 0, "'e'"), -(12669, 0, "'f'"), -(12670, 0, "'f'"), -(12671, 0, "'i'"), -(12672, 0, "'c'"), -(12673, 0, "'i'"), -(12674, 0, "'e'"), -(12675, 0, "'n'"), -(12676, 0, "'t'"), -(12677, 0, "'l'"), -(12678, 0, "'y'"), -(12679, 0, "'.'"), -(12680, 0, "' '"), -(12681, 0, "'W'"), -(12682, 0, "'e'"), -(12683, 0, "' '"), -(12684, 0, "'c'"), -(12685, 0, "'a'"), -(12686, 0, "'n'"), -(12687, 0, "' '"), -(12688, 0, "'d'"), -(12689, 0, "'o'"), -(12690, 0, "' '"), -(12691, 0, "'t'"), -(12692, 0, "'h'"), -(12693, 0, "'a'"), -(12694, 0, "'t'"), -(12695, 0, "' '"), -(12696, 0, "'b'"), -(12697, 0, "'y'"), -(12681, 17, "'W'"), -(12682, 0, "'e'"), -(12683, 0, "'l'"), -(12684, 0, "'l'"), -(12685, 0, "','"), -(12686, 0, "' '"), -(12687, 0, "'w'"), -(12688, 0, "'e'"), -(12689, 0, "' '"), -(12690, 0, "'c'"), -(12691, 0, "'a'"), -(12692, 0, "'n'"), -(12693, 0, "' '"), -(12694, 0, "'d'"), -(12695, 0, "'o'"), -(12696, 0, "' '"), -(12697, 0, "'t'"), -(12698, 0, "'h'"), -(12699, 0, "'a'"), -(12700, 0, "'t'"), -(12701, 0, "' '"), -(12702, 0, "'b'"), -(12703, 0, "'y'"), -(12704, 0, "' '"), -(12705, 0, "'p'"), -(12706, 0, "'l'"), -(12706, 1, "''"), -(12705, 1, "''"), -(12705, 0, "'r'"), -(12706, 0, "'e'"), -(12707, 0, "'p'"), -(12708, 0, "'l'"), -(12709, 0, "'a'"), -(12710, 0, "'c'"), -(12711, 0, "'i'"), -(12712, 0, "'n'"), -(12713, 0, "'g'"), -(12714, 0, "' '"), -(12715, 0, "'t'"), -(12716, 0, "'h'"), -(12717, 0, "'e'"), -(12718, 0, "' '"), -(12719, 0, "'a'"), -(12720, 0, "'r'"), -(12721, 0, "'r'"), -(12722, 0, "'a'"), -(12723, 0, "'y'"), -(12724, 0, "' '"), -(12725, 0, "'w'"), -(12726, 0, "'i'"), -(12727, 0, "'t'"), -(12728, 0, "'h'"), -(12729, 0, "' '"), -(12730, 0, "'a'"), -(12731, 0, "' '"), -(12732, 0, "'l'"), -(12733, 0, "'i'"), -(12734, 0, "'n'"), -(12735, 0, "'k'"), -(12736, 0, "'e'"), -(12737, 0, "'d'"), -(12738, 0, "' '"), -(12739, 0, "'l'"), -(12740, 0, "'i'"), -(12741, 0, "'s'"), -(12742, 0, "'t'"), -(12732, 0, "'d'"), -(12733, 0, "'o'"), -(12734, 0, "'u'"), -(12735, 0, "'b'"), -(12736, 0, "'l'"), -(12737, 0, "'y'"), -(12738, 0, "'-'"), -(12732, 7, "''"), -(12743, 0, "'.'"), -(12744, 0, "' '"), -(12745, 0, "'I'"), -(12746, 0, "'t'"), -(12747, 0, "'s'"), -(12747, 1, "''"), -(12746, 1, "''"), -(12745, 1, "''"), -(12745, 0, "'('"), -(12746, 0, "'I'"), -(12747, 0, "'t'"), -(12748, 0, "'s'"), -(12749, 0, "' '"), -(12750, 0, "'g'"), -(12751, 0, "'o'"), -(12752, 0, "'i'"), -(12753, 0, "'n'"), -(12754, 0, "'g'"), -(12755, 0, "' '"), -(12756, 0, "'t'"), -(12757, 0, "'o'"), -(12758, 0, "' '"), -(12759, 0, "'h'"), -(12760, 0, "'a'"), -(12761, 0, "'v'"), -(12762, 0, "'e'"), -(12763, 0, "' '"), -(12764, 0, "'t'"), -(12765, 0, "'o'"), -(12766, 0, "' '"), -(12767, 0, "'b'"), -(12768, 0, "'e'"), -(12769, 0, "' '"), -(12770, 0, "'a'"), -(12771, 0, "' '"), -(12772, 0, "'d'"), -(12773, 0, "'o'"), -(12774, 0, "'u'"), -(12775, 0, "'b'"), -(12776, 0, "'l'"), -(12777, 0, "'y'"), -(12778, 0, "'-'"), -(12779, 0, "'l'"), -(12780, 0, "'i'"), -(12781, 0, "'n'"), -(12782, 0, "'k'"), -(12783, 0, "'e'"), -(12784, 0, "'d'"), -(12785, 0, "' '"), -(12786, 0, "'l'"), -(12787, 0, "'i'"), -(12788, 0, "'s'"), -(12789, 0, "'t'"), -(12790, 0, "' '"), -(12791, 0, "'t'"), -(12792, 0, "'o'"), -(12793, 0, "' '"), -(12791, 3, "'f'"), -(12792, 0, "'o'"), -(12793, 0, "'r'"), -(12794, 0, "' '"), -(12795, 0, "'t'"), -(12796, 0, "'h'"), -(12797, 0, "'e'"), -(12798, 0, "' '"), -(12799, 0, "'s'"), -(12800, 0, "'c'"), -(12801, 0, "'a'"), -(12802, 0, "'n'"), -(12803, 0, "'n'"), -(12804, 0, "'i'"), -(12805, 0, "'n'"), -(12806, 0, "'g'"), -(12807, 0, "' '"), -(12808, 0, "'t'"), -(12809, 0, "'o'"), -(12810, 0, "' '"), -(12811, 0, "'w'"), -(12812, 0, "'o'"), -(12813, 0, "'r'"), -(12814, 0, "'k'"), -(12815, 0, "')'"), -(12816, 0, "'.'"), -(12817, 0, "'n'"), -(12818, 0, "'n'"), -(12819, 0, "'Y'"), -(12820, 0, "'j'"), -(12821, 0, "'s'"), -(12822, 0, "' '"), -(12823, 0, "'d'"), -(12824, 0, "'o'"), -(12825, 0, "'e'"), -(12826, 0, "'s'"), -(12827, 0, "' '"), -(12828, 0, "'t'"), -(12829, 0, "'h'"), -(12830, 0, "'e'"), -(12831, 0, "'s'"), -(12832, 0, "'e'"), -(12833, 0, "' '"), -(12834, 0, "'t'"), -(12835, 0, "'w'"), -(12836, 0, "'o'"), -(12837, 0, "' '"), -(12838, 0, "'o'"), -(12839, 0, "'p'"), -(12840, 0, "'t'"), -(12841, 0, "'i'"), -(12842, 0, "'m'"), -(12843, 0, "'i'"), -(12844, 0, "'z'"), -(12845, 0, "'a'"), -(12846, 0, "'t'"), -(12847, 0, "'i'"), -(12848, 0, "'o'"), -(12849, 0, "'n'"), -(12850, 0, "'s'"), -(12851, 0, "' '"), -(12851, 1, "''"), -(12851, 0, "' '"), -(12852, 0, "'a'"), -(12853, 0, "'n'"), -(12854, 0, "'d'"), -(12855, 0, "' '"), -(12856, 0, "'o'"), -(12857, 0, "'n'"), -(12858, 0, "'e'"), -(12859, 0, "' '"), -(12860, 0, "'b'"), -(12861, 0, "'o'"), -(12862, 0, "'n'"), -(12863, 0, "'u'"), -(12864, 0, "'s'"), -(12865, 0, "' '"), -(12866, 0, "'o'"), -(12867, 0, "'p'"), -(12868, 0, "'t'"), -(12869, 0, "'i'"), -(12870, 0, "'m'"), -(12871, 0, "'i'"), -(12872, 0, "'z'"), -(12873, 0, "'a'"), -(12874, 0, "'t'"), -(12875, 0, "'i'"), -(12876, 0, "'o'"), -(12877, 0, "'n'"), -(12878, 0, "':'"), -(12879, 0, "' '"), -(12880, 0, "'I'"), -(12881, 0, "'n'"), -(12882, 0, "'s'"), -(12883, 0, "'t'"), -(12884, 0, "'e'"), -(12885, 0, "'a'"), -(12886, 0, "'d'"), -(12887, 0, "' '"), -(12888, 0, "'o'"), -(12889, 0, "'f'"), -(12890, 0, "' '"), -(12891, 0, "'s'"), -(12892, 0, "'t'"), -(12893, 0, "'o'"), -(12894, 0, "'r'"), -(12895, 0, "'i'"), -(12896, 0, "'n'"), -(12897, 0, "'g'"), -(12880, 18, "'U'"), -(12880, 1, "''"), -(12880, 0, "'H'"), -(12881, 0, "'u'"), -(12882, 0, "'m'"), -(12883, 0, "'a'"), -(12884, 0, "'n'"), -(12885, 0, "'s'"), -(12886, 0, "' '"), -(12887, 0, "'a'"), -(12888, 0, "'l'"), -(12889, 0, "'s'"), -(12890, 0, "'o'"), -(12891, 0, "' '"), -(12892, 0, "'t'"), -(12893, 0, "'y'"), -(12894, 0, "'p'"), -(12895, 0, "'e'"), -(12896, 0, "' '"), -(12897, 0, "'i'"), -(12898, 0, "'n'"), -(12899, 0, "' '"), -(12900, 0, "'r'"), -(12901, 0, "'u'"), -(12902, 0, "'n'"), -(12903, 0, "'s'"), -(12904, 0, "' '"), -(12905, 0, "'o'"), -(12906, 0, "'f'"), -(12907, 0, "' '"), -(12908, 0, "'c'"), -(12909, 0, "'h'"), -(12910, 0, "'a'"), -(12911, 0, "'r'"), -(12912, 0, "'a'"), -(12913, 0, "'c'"), -(12914, 0, "'t'"), -(12915, 0, "'e'"), -(12916, 0, "'r'"), -(12917, 0, "'s'"), -(12918, 0, "'.'"), -(12919, 0, "' '"), -(12920, 0, "'I'"), -(12921, 0, "'n'"), -(12922, 0, "'s'"), -(12923, 0, "'t'"), -(12924, 0, "'e'"), -(12925, 0, "'a'"), -(12926, 0, "'d'"), -(12927, 0, "' '"), -(12928, 0, "'o'"), -(12929, 0, "'f'"), -(12930, 0, "' '"), -(12819, 112, "'Yjs does these two optimizations and one bonus optimization: Humans also type in runs of characters. Instead of'"), -(12930, 0, "' '"), -(12931, 0, "'t'"), -(12932, 0, "'y'"), -(12933, 0, "'p'"), -(12934, 0, "'i'"), -(12935, 0, "'n'"), -(12936, 0, "'g'"), -(12937, 0, "' '"), -(12938, 0, "'a'"), -(12939, 0, "' '"), -(12939, 1, "''"), -(12937, 2, "''"), -(12937, 0, "' a'"), -(12939, 0, "' '"), -(12860, 0, "'m'"), -(12861, 0, "'o'"), -(12862, 0, "'r'"), -(12863, 0, "'e'"), -(12864, 0, "' '"), -(12892, 4, "''"), -(12891, 1, "''"), -(12819, 121, "'Yjs does these two optimizations and one more bonus optimization: Humans type in runs of characters. Instead of typing a'"), -(12938, 1, "''"), -(12920, 18, "'I'"), -(12921, 0, "'f'"), -(12922, 0, "' '"), -(12923, 0, "'I'"), -(12924, 0, "' '"), -(12925, 0, "'t'"), -(12926, 0, "'y'"), -(12927, 0, "'p'"), -(12928, 0, "'e'"), -(12929, 0, "' '"), -(12930, 0, "'''"), -(12931, 0, "'h'"), -(12932, 0, "'e'"), -(12933, 0, "'l'"), -(12934, 0, "'l'"), -(12935, 0, "'o'"), -(12936, 0, "'''"), -(12937, 0, "','"), -(12938, 0, "' '"), -(12939, 0, "'i'"), -(12940, 0, "'n'"), -(12941, 0, "'s'"), -(12942, 0, "'t'"), -(12943, 0, "'e'"), -(12944, 0, "'a'"), -(12945, 0, "'d'"), -(12946, 0, "' '"), -(12947, 0, "'o'"), -(12948, 0, "'f'"), -(12949, 0, "' '"), -(12950, 0, "'s'"), -(12951, 0, "'t'"), -(12952, 0, "'o'"), -(12953, 0, "'r'"), -(12954, 0, "'i'"), -(12955, 0, "'n'"), -(12956, 0, "'g'"), -(12957, 0, "':'"), -(12958, 0, "'n'"), -(12959, 0, "'n'"), -(12960, 0, "'```javascriptnstate = [n { item: 'a', isDeleted: false, id: ['seph', 0], seq, parent: null },n { item: 'X', isDeleted: false, id, seq, parent: ['seph', 0] },n { item: 'b', isDeleted: true, id, seq, parent: ['seph', 0] },n { item: 'c', isDeleted: false, id, seq, parent: [..] },n ...n]n```n'"), -(12995, 1, "''"), -(12995, 0, "'h'"), -(13066, 1, "''"), -(13066, 0, "'e'"), -(13131, 1, "''"), -(13131, 0, "'l'"), -(13196, 1, "''"), -(13196, 0, "'l'"), -(13185, 0, "' { item: 'l', isDeleted: false, id, seq, parent: [..] },n'"), -(13254, 1, "''"), -(13254, 0, "'o'"), -(13301, 5, "''"), -(13300, 1, "''"), -(13146, 4, "'f'"), -(13147, 0, "'a'"), -(13148, 0, "'l'"), -(13149, 0, "'s'"), -(13150, 0, "'e'"), -(13153, 1, "''"), -(12984, 0, "' { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: null },n'"), -(13118, 4, "''"), -(13118, 0, "'['"), -(13119, 0, "'''"), -(13120, 0, "'s'"), -(13121, 0, "'e'"), -(13122, 0, "'p'"), -(13123, 0, "'h'"), -(13124, 0, "'''"), -(13125, 0, "','"), -(13126, 0, "' '"), -(13127, 0, "'1'"), -(13132, 246, "''"), -(13055, 0, "' { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: ['seph', 1 },n'"), -(13132, 0, "' { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: ['seph', 1 },n'"), -(13209, 0, "' { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: ['seph', 1 },n'"), -(13143, 1, "''"), -(13143, 0, "'e'"), -(13066, 1, "''"), -(13066, 0, "'e'"), -(13143, 1, "''"), -(13143, 0, "'l'"), -(13220, 1, "''"), -(13220, 0, "'l'"), -(13297, 1, "''"), -(13297, 0, "'o'"), -(13101, 1, "''"), -(13101, 0, "'1'"), -(13179, 0, "'2'"), -(13179, 1, "''"), -(13178, 1, "''"), -(13178, 0, "'2'"), -(13255, 1, "''"), -(13255, 0, "'3'"), -(13332, 1, "''"), -(13332, 0, "'4'"), -(13127, 1, "''"), -(13127, 0, "'0'"), -(13128, 0, "']'"), -(13206, 0, "']'"), -(13283, 1, "''"), -(13283, 0, "'2'"), -(13284, 0, "']'"), -(13361, 1, "''"), -(13361, 0, "'3'"), -(13362, 0, "']'"), -(13372, 0, "'n'"), -(13373, 0, "'n'"), -(13374, 0, "'Y'"), -(13375, 0, "'j'"), -(13376, 0, "'s'"), -(13377, 0, "' '"), -(13378, 0, "'j'"), -(13379, 0, "'u'"), -(13380, 0, "'s'"), -(13381, 0, "'t'"), -(13382, 0, "' '"), -(13383, 0, "'s'"), -(13384, 0, "'t'"), -(13385, 0, "'o'"), -(13386, 0, "'r'"), -(13387, 0, "'e'"), -(13388, 0, "'s'"), -(13389, 0, "':'"), -(13391, 0, "'n'"), -(13392, 0, "'```javascriptnstate = [n { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: null },n { item: 'e', isDeleted: false, id: ['seph', 1], seq, parent: ['seph', 0] },n { item: 'l', isDeleted: false, id: ['seph', 2], seq, parent: ['seph', 1] },n { item: 'l', isDeleted: false, id: ['seph', 3], seq, parent: ['seph', 2] },n { item: 'o', isDeleted: false, id: ['seph', 4], seq, parent: ['seph', 3] },n]n```'"), -(13428, 0, "'e'"), -(13429, 0, "'l'"), -(13430, 0, "'l'"), -(13431, 0, "'o'"), -(13491, 312, "''"), -(13497, 0, "'n'"), -(13497, 0, "'n'"), -(13498, 0, "'A'"), -(13499, 0, "'a'"), -(13500, 0, "'a'"), -(13501, 0, "'h'"), -(13502, 0, "' '"), -(13503, 0, "'m'"), -(13504, 0, "'u'"), -(13505, 0, "'c'"), -(13506, 0, "'h'"), -(13507, 0, "' '"), -(13508, 0, "'b'"), -(13509, 0, "'e'"), -(13510, 0, "'t'"), -(13511, 0, "'t'"), -(13512, 0, "'e'"), -(13513, 0, "'r'"), -(13514, 0, "'!'"), -(13515, 0, "' '"), -(13516, 0, "'T'"), -(13517, 0, "'h'"), -(13518, 0, "'i'"), -(13519, 0, "'s'"), -(13520, 0, "' '"), -(13521, 0, "'r'"), -(13522, 0, "'e'"), -(13523, 0, "'u'"), -(13524, 0, "'c'"), -(13524, 1, "''"), -(13523, 1, "''"), -(13523, 0, "'d'"), -(13524, 0, "'u'"), -(13525, 0, "'c'"), -(13526, 0, "'e'"), -(13527, 0, "'s'"), -(13528, 0, "' '"), -(13529, 0, "'t'"), -(13530, 0, "'h'"), -(13531, 0, "'e'"), -(13532, 0, "' '"), -(13533, 0, "'n'"), -(13534, 0, "'u'"), -(13535, 0, "'m'"), -(13536, 0, "'b'"), -(13537, 0, "'e'"), -(13538, 0, "'r'"), -(13539, 0, "' '"), -(13540, 0, "'o'"), -(13541, 0, "'f'"), -(13542, 0, "' '"), -(13543, 0, "'i'"), -(13543, 1, "'i'"), -(13544, 0, "'t'"), -(13545, 0, "'e'"), -(13546, 0, "'m'"), -(13547, 0, "'s'"), -(13548, 0, "' '"), -(13549, 0, "'i'"), -(13550, 0, "'n'"), -(13551, 0, "' '"), -(13552, 0, "'t'"), -(13553, 0, "'h'"), -(13554, 0, "'e'"), -(13555, 0, "' '"), -(13556, 0, "'l'"), -(13557, 0, "'i'"), -(13558, 0, "'s'"), -(13559, 0, "'t'"), -(13515, 0, "' '"), -(13516, 0, "'F'"), -(13517, 0, "'o'"), -(13518, 0, "'r'"), -(13519, 0, "' '"), -(13520, 0, "'o'"), -(13521, 0, "'u'"), -(13522, 0, "'r'"), -(13523, 0, "' '"), -(13524, 0, "'b'"), -(13525, 0, "'e'"), -(13526, 0, "'n'"), -(13527, 0, "'c'"), -(13528, 0, "'h'"), -(13529, 0, "'m'"), -(13530, 0, "'a'"), -(13531, 0, "'r'"), -(13532, 0, "'k'"), -(13533, 0, "','"), -(13535, 1, "''"), -(13535, 0, "'t'"), -(13579, 0, "' '"), -(13580, 0, "'f'"), -(13581, 0, "'r'"), -(13582, 0, "'o'"), -(13583, 0, "'m'"), -(13584, 0, "' '"), -(13585, 0, "'1'"), -(13586, 0, "'8'"), -(13587, 0, "'0'"), -(13588, 0, "' '"), -(13589, 0, "'0'"), -(13590, 0, "'0'"), -(13591, 0, "'0'"), -(13592, 0, "' '"), -(13593, 0, "'d'"), -(13594, 0, "'o'"), -(13595, 0, "'w'"), -(13596, 0, "'n'"), -(13597, 0, "' '"), -(13598, 0, "'t'"), -(13599, 0, "'o'"), -(13600, 0, "' '"), -(13601, 0, "'a'"), -(13602, 0, "'b'"), -(13603, 0, "'o'"), -(13604, 0, "'u'"), -(13605, 0, "'t'"), -(13606, 0, "' '"), -(13607, 0, "'4'"), -(13608, 0, "'0'"), -(13609, 0, "' '"), -(13610, 0, "'0'"), -(13611, 0, "'0'"), -(13612, 0, "'0'"), -(13613, 0, "'.'"), -(13615, 29, "''"), -(13614, 0, "' '"), -(13615, 0, "'A'"), -(13616, 0, "'n'"), -(13617, 0, "'d'"), -(13618, 0, "' '"), -(13619, 0, "'i'"), -(13620, 0, "'t'"), -(13621, 0, "' '"), -(13498, 124, "'Aaah much better! For our benchmark, this reduces the number of items in the list from 180 000 down to about 40 000. And it'"), -(6073, 0, "' '"), -(6074, 0, "'R'"), -(6075, 0, "'A'"), -(6076, 0, "'M'"), -(6077, 0, "' '"), -(6078, 0, "'u'"), -(6079, 0, "'s'"), -(6080, 0, "'e'"), -(6081, 0, "'d'"), -(6078, 4, "'u'"), -(6079, 0, "'s'"), -(6080, 0, "'a'"), -(6081, 0, "'g'"), -(6082, 0, "'e'"), -(6127, 0, "' '"), -(6128, 0, "'-'"), -(6129, 0, "'-'"), -(6130, 0, "'-'"), -(6131, 0, "'-'"), -(6132, 0, "'-'"), -(6133, 0, "'-'"), -(6134, 0, "'-'"), -(6135, 0, "'-'"), -(6136, 0, "'-'"), -(6137, 0, "' '"), -(6084, 54, "'| -------------------------- | ---------- | ---------'"), -(6083, 0, "' '"), -(6084, 0, "'|'"), -(6139, 0, "' '"), -(6140, 0, "'|'"), -(6185, 0, "' '"), -(6186, 0, "'880MB'"), -(6191, 0, "' '"), -(6192, 0, "' '"), -(6193, 0, "' '"), -(6194, 0, "' '"), -(6195, 0, "' '"), -(6196, 0, "'|'"), -(6241, 0, "' '"), -(6242, 0, "' '"), -(6243, 0, "' '"), -(6244, 0, "' '"), -(6245, 0, "' '"), -(6246, 0, "' '"), -(6247, 0, "' '"), -(6248, 0, "' '"), -(6249, 0, "' '"), -(6250, 0, "' '"), -(6251, 0, "' '"), -(6252, 0, "'|'"), -(10249, 0, "' '"), -(10250, 0, "'R'"), -(10251, 0, "'A'"), -(10252, 0, "'M'"), -(10253, 0, "' '"), -(10254, 0, "'u'"), -(10255, 0, "'s'"), -(10256, 0, "'a'"), -(10257, 0, "'g'"), -(10258, 0, "'e'"), -(10259, 0, "' '"), -(10260, 0, "'|'"), -(10312, 0, "' '"), -(10313, 0, "'-'"), -(10314, 0, "'-'"), -(10315, 0, "'-'"), -(10316, 0, "'-'"), -(10317, 0, "'-'"), -(10318, 0, "'-'"), -(10319, 0, "'-'"), -(10320, 0, "'-'"), -(10321, 0, "'-'"), -(10322, 0, "' '"), -(10323, 0, "'|'"), -(10375, 0, "' '"), -(10376, 0, "'8'"), -(10377, 0, "'8'"), -(10378, 0, "'0'"), -(10379, 0, "' '"), -(10380, 0, "'M'"), -(10381, 0, "'B'"), -(10382, 0, "' '"), -(10383, 0, "' '"), -(10384, 0, "' '"), -(10385, 0, "' '"), -(10386, 0, "'|'"), -(10438, 0, "' '"), -(10439, 0, "' '"), -(10440, 0, "' '"), -(10441, 0, "' '"), -(10442, 0, "' '"), -(10443, 0, "' '"), -(10444, 0, "' '"), -(10445, 0, "' '"), -(10446, 0, "' '"), -(10447, 0, "' '"), -(10448, 0, "' '"), -(10449, 0, "'|'"), -(10501, 0, "' '"), -(10502, 0, "' '"), -(10503, 0, "' '"), -(10504, 0, "' '"), -(10505, 0, "' '"), -(10506, 0, "' '"), -(10507, 0, "' '"), -(10508, 0, "' '"), -(10509, 0, "' '"), -(10510, 0, "' '"), -(10511, 0, "'|'"), -(10511, 1, "''"), -(10511, 0, "' '"), -(10512, 0, "'|'"), -(13628, 4, "'t'"), -(13629, 0, "'h'"), -(13630, 0, "'i'"), -(13631, 0, "'s'"), -(13632, 0, "' '"), -(13648, 0, "' '"), -(13649, 0, "'o'"), -(13650, 0, "'p'"), -(13651, 0, "'t'"), -(13652, 0, "'i'"), -(13653, 0, "'m'"), -(13654, 0, "'i'"), -(13655, 0, "'z'"), -(13656, 0, "'a'"), -(13657, 0, "'t'"), -(13658, 0, "'i'"), -(13659, 0, "'o'"), -(13660, 0, "'n'"), -(13623, 0, "' '"), -(13624, 0, "'W'"), -(13625, 0, "'e'"), -(13626, 0, "' '"), -(13627, 0, "'c'"), -(13628, 0, "'a'"), -(13629, 0, "'n'"), -(13630, 0, "'''"), -(13631, 0, "'t'"), -(13632, 0, "' '"), -(13633, 0, "'c'"), -(13634, 0, "'o'"), -(13635, 0, "'l'"), -(13636, 0, "'l'"), -(13637, 0, "'a'"), -(13638, 0, "'p'"), -(13639, 0, "'s'"), -(13640, 0, "'e'"), -(13641, 0, "' '"), -(13642, 0, "'t'"), -(13643, 0, "'h'"), -(13644, 0, "'e'"), -(13645, 0, "' '"), -(13646, 0, "'w'"), -(13647, 0, "'h'"), -(13648, 0, "'o'"), -(13649, 0, "'l'"), -(13650, 0, "'e'"), -(13651, 0, "' '"), -(13652, 0, "'l'"), -(13653, 0, "'i'"), -(13654, 0, "'s'"), -(13655, 0, "'t'"), -(13656, 0, "' '"), -(13657, 0, "'l'"), -(13658, 0, "'i'"), -(13659, 0, "'k'"), -(13660, 0, "'e'"), -(13661, 0, "' '"), -(13662, 0, "'t'"), -(13663, 0, "'h'"), -(13664, 0, "'i'"), -(13665, 0, "'s'"), -(13666, 0, "' '"), -(13667, 0, "'-'"), -(13668, 0, "' '"), -(13669, 0, "'t'"), -(13670, 0, "'h'"), -(13671, 0, "'i'"), -(13672, 0, "'s'"), -(13673, 0, "' '"), -(13674, 0, "'i'"), -(13675, 0, "'o'"), -(13675, 1, "''"), -(13674, 1, "''"), -(13674, 0, "'o'"), -(13675, 0, "'n'"), -(13676, 0, "'l'"), -(13677, 0, "'y'"), -(13678, 0, "' '"), -(13679, 0, "'w'"), -(13680, 0, "'o'"), -(13681, 0, "'r'"), -(13682, 0, "'k'"), -(13683, 0, "'s'"), -(13684, 0, "' '"), -(13685, 0, "'w'"), -(13686, 0, "'h'"), -(13687, 0, "'e'"), -(13688, 0, "'n'"), -(13689, 0, "' '"), -(13690, 0, "'a'"), -(13691, 0, "'l'"), -(13692, 0, "'l'"), -(13693, 0, "' '"), -(13694, 0, "'t'"), -(13695, 0, "'h'"), -(13696, 0, "'e'"), -(13697, 0, "' '"), -(13698, 0, "'i'"), -(13699, 0, "'t'"), -(13700, 0, "'m'"), -(13701, 0, "'e'"), -(13701, 1, "''"), -(13700, 1, "''"), -(13699, 1, "''"), -(13699, 0, "'i'"), -(13699, 1, "''"), -(13699, 0, "'t'"), -(13700, 0, "'e'"), -(13701, 0, "'m'"), -(13702, 0, "'s'"), -(13703, 0, "' '"), -(13704, 0, "'c'"), -(13705, 0, "'o'"), -(13706, 0, "'m'"), -(13707, 0, "'e'"), -(13708, 0, "' '"), -(13709, 0, "'o'"), -(13710, 0, "'n'"), -(13711, 0, "'e'"), -(13712, 0, "' '"), -(13713, 0, "'a'"), -(13714, 0, "'f'"), -(13715, 0, "'t'"), -(13716, 0, "'e'"), -(13717, 0, "'r'"), -(13704, 14, "'l'"), -(13705, 0, "'i'"), -(13706, 0, "'n'"), -(13707, 0, "'e'"), -(13708, 0, "' '"), -(13709, 0, "'u'"), -(13710, 0, "'p'"), -(13711, 0, "' '"), -(13712, 0, "' '"), -(13713, 0, "'l'"), -(13714, 0, "'i'"), -(13714, 1, "''"), -(13713, 1, "''"), -(13712, 1, "''"), -(13712, 0, "'l'"), -(13713, 0, "'i'"), -(13714, 0, "'k'"), -(13715, 0, "'e'"), -(13716, 0, "' '"), -(13717, 0, "'t'"), -(13718, 0, "'h'"), -(13719, 0, "'i'"), -(13720, 0, "'s'"), -(13721, 0, "'.'"), -(13722, 0, "' '"), -(13723, 0, "'B'"), -(13724, 0, "'u'"), -(13725, 0, "'t'"), -(13727, 1, "''"), -(13727, 0, "'f'"), -(13727, 20, "''"), -(13776, 3, "'o'"), -(13777, 0, "'u'"), -(13778, 0, "'r'"), -(13819, 7, "''"), -(13819, 0, "'n'"), -(13820, 0, "'n'"), -(13821, 0, "'| Test | Time taken | RAM usage |n| -------------------------- | ---------- | --------- |n| automerge @ 1.0.0-preview2 | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | |n| JS baseline | 0.61s | |n'"), -(13819, 0, "'n'"), -(13820, 0, "'n'"), -(13821, 0, "'A'"), -(13822, 0, "'n'"), -(13823, 0, "'d'"), -(13824, 0, "' '"), -(13825, 0, "'i'"), -(13826, 0, "'t'"), -(13827, 0, "' '"), -(13828, 0, "'p'"), -(13829, 0, "'e'"), -(13830, 0, "'r'"), -(13831, 0, "'f'"), -(13832, 0, "'o'"), -(13833, 0, "'r'"), -(13834, 0, "'m'"), -(13835, 0, "'s'"), -(13836, 0, "' '"), -(13837, 0, "'*'"), -(13838, 0, "'g'"), -(13839, 0, "'r'"), -(13840, 0, "'e'"), -(13841, 0, "'a'"), -(13842, 0, "'t'"), -(13843, 0, "'*'"), -(13844, 0, "':'"), -(14036, 0, "'| reference-crdts (automerge / yjs) | 31s | |n'"), -(14101, 33, "'Y'"), -(14102, 0, "'j'"), -(14103, 0, "'s'"), -(14104, 0, "' '"), -(14105, 0, "' '"), -(14106, 0, "' '"), -(14107, 0, "' '"), -(14108, 0, "' '"), -(14109, 0, "' '"), -(14110, 0, "' '"), -(14111, 0, "' '"), -(14112, 0, "' '"), -(14113, 0, "' '"), -(14114, 0, "' '"), -(14115, 0, "' '"), -(14116, 0, "' '"), -(14117, 0, "' '"), -(14118, 0, "' '"), -(14119, 0, "' '"), -(14120, 0, "' '"), -(14121, 0, "' '"), -(14122, 0, "' '"), -(14123, 0, "' '"), -(14124, 0, "' '"), -(14125, 0, "' '"), -(14126, 0, "' '"), -(14127, 0, "' '"), -(14128, 0, "' '"), -(14129, 0, "' '"), -(14130, 0, "' '"), -(14131, 0, "' '"), -(14132, 0, "' '"), -(14133, 0, "' '"), -(14141, 1, "''"), -(14140, 1, "''"), -(14139, 1, "''"), -(14139, 0, "' '"), -(14140, 0, "'0'"), -(14141, 0, "'.'"), -(14141, 1, "''"), -(14140, 1, "''"), -(14139, 1, "''"), -(14138, 1, "''"), -(14137, 1, "''"), -(14137, 0, "'0'"), -(14138, 0, "'.'"), -(14139, 0, "'9'"), -(14140, 0, "'7'"), -(14141, 0, "'s'"), -(14150, 6, "'3'"), -(14151, 0, "' '"), -(14152, 0, "'M'"), -(14153, 0, "'B'"), -(14151, 0, "'.'"), -(14152, 0, "'7'"), -(14152, 1, "''"), -(14152, 0, "'6'"), -(13844, 1, "''"), -(13844, 0, "' '"), -(13845, 0, "'-'"), -(13846, 0, "' '"), -(13847, 0, "'i'"), -(13848, 0, "'t'"), -(13849, 0, "'s'"), -(13850, 0, "' '"), -(13851, 0, "'3'"), -(13852, 0, "'0'"), -(13853, 0, "'x'"), -(13854, 0, "' '"), -(13855, 0, "'f'"), -(13856, 0, "'a'"), -(13857, 0, "'s'"), -(13858, 0, "'t'"), -(13859, 0, "'e'"), -(13860, 0, "'r'"), -(13861, 0, "':'"), -(10441, 1, "''"), -(10440, 1, "''"), -(10440, 0, "'2'"), -(10441, 0, "'3'"), -(10441, 1, "''"), -(10441, 0, "'7'"), -(10441, 1, "''"), -(10441, 0, "'8'"), -(10442, 0, "' '"), -(10443, 0, "'M'"), -(10444, 0, "'B'"), -(10445, 1, "''"), -(10445, 1, "''"), -(10445, 1, "''"), -(14105, 5, "'2'"), -(14106, 0, "'7'"), -(14106, 1, "''"), -(14106, 0, "'8'"), -(14107, 0, "' '"), -(14108, 0, "'M'"), -(14109, 0, "'B'"), -(13861, 1, "''"), -(13861, 0, "' '"), -(13862, 0, "'a'"), -(13863, 0, "'n'"), -(13864, 0, "'d'"), -(13865, 0, "' '"), -(13866, 0, "'u'"), -(13867, 0, "'s'"), -(13868, 0, "'e'"), -(13869, 0, "'s'"), -(13870, 0, "' '"), -(13871, 0, "'j'"), -(13872, 0, "'u'"), -(13873, 0, "'s'"), -(13874, 0, "'t'"), -(13875, 0, "' '"), -(13876, 0, "'o'"), -(13877, 0, "'v'"), -(13878, 0, "'e'"), -(13879, 0, "'r'"), -(13880, 0, "' '"), -(13881, 0, "'1'"), -(13882, 0, "'/'"), -(13883, 0, "'1'"), -(13884, 0, "'0'"), -(13885, 0, "'t'"), -(13886, 0, "'h'"), -(13887, 0, "' '"), -(13888, 0, "'a'"), -(13889, 0, "'s'"), -(13890, 0, "' '"), -(13891, 0, "'m'"), -(13892, 0, "'u'"), -(13893, 0, "'c'"), -(13894, 0, "'h'"), -(13895, 0, "' '"), -(13896, 0, "'R'"), -(13897, 0, "'A'"), -(13898, 0, "'M'"), -(13899, 0, "':'"), -(13821, 5, "'I'"), -(13604, 0, "'n'"), -(13605, 0, "'n'"), -(13606, 0, "'B'"), -(13607, 0, "'u'"), -(13608, 0, "'t'"), -(13609, 0, "' '"), -(13610, 0, "'i'"), -(13611, 0, "'n'"), -(13612, 0, "' '"), -(13613, 0, "'a'"), -(13614, 0, "' '"), -(13615, 0, "'l'"), -(13616, 0, "'i'"), -(13617, 0, "'n'"), -(13618, 0, "'k'"), -(13606, 13, "''"), -(13605, 1, "''"), -(13604, 1, "''"), -(12931, 4, "'h'"), -(12932, 0, "'a'"), -(12933, 0, "'s'"), -(13622, 0, "' '"), -(13623, 0, "'F'"), -(13624, 0, "'i'"), -(13625, 0, "'n'"), -(13626, 0, "'a'"), -(13627, 0, "'l'"), -(13628, 0, "'l'"), -(13629, 0, "'y'"), -(13630, 0, "' '"), -(13631, 0, "'p'"), -(13632, 0, "'a'"), -(13633, 0, "'s'"), -(13634, 0, "'t'"), -(13635, 0, "'e'"), -(13636, 0, "' '"), -(13637, 0, "'e'"), -(13638, 0, "'v'"), -(13639, 0, "'e'"), -(13640, 0, "'n'"), -(13641, 0, "'t'"), -(13642, 0, "'s'"), -(13643, 0, "' '"), -(13644, 0, "'w'"), -(13645, 0, "'i'"), -(13646, 0, "'l'"), -(13647, 0, "'l'"), -(13648, 0, "' '"), -(13649, 0, "'b'"), -(13650, 0, "'e'"), -(13651, 0, "' '"), -(13652, 0, "'f'"), -(13653, 0, "'a'"), -(13654, 0, "'s'"), -(13655, 0, "'t'"), -(13656, 0, "'!'"), -(13657, 1, "''"), -(13657, 0, "'n'"), -(13658, 0, "'n'"), -(13631, 0, "'t'"), -(13632, 0, "'h'"), -(13633, 0, "'o'"), -(13634, 0, "'s'"), -(13635, 0, "'e'"), -(13636, 0, "' '"), -(13637, 0, "'p'"), -(13638, 0, "'e'"), -(13639, 0, "'s'"), -(13640, 0, "'k'"), -(13641, 0, "'y'"), -(13642, 0, "' '"), -(13744, 6, "' '"), -(13745, 0, "'f'"), -(13746, 0, "'e'"), -(13747, 0, "'i'"), -(13748, 0, "'l'"), -(13749, 0, "'d'"), -(13750, 0, "'s'"), -(13750, 1, "''"), -(13749, 1, "''"), -(13748, 1, "''"), -(13747, 1, "''"), -(13747, 0, "'i'"), -(13747, 1, "''"), -(13746, 1, "''"), -(13746, 0, "'i'"), -(13747, 0, "'e'"), -(13748, 0, "'l'"), -(13749, 0, "'d'"), -(13750, 0, "'s'"), -(13759, 10, "''"), -(13759, 0, "'.'"), -(13760, 0, "' '"), -(13761, 0, "'A'"), -(13762, 0, "'n'"), -(13763, 0, "'d'"), -(13764, 0, "' '"), -(13765, 0, "'w'"), -(13766, 0, "'e'"), -(13767, 0, "'''"), -(13768, 0, "'l'"), -(13769, 0, "'l'"), -(13770, 0, "' '"), -(13771, 0, "'n'"), -(13772, 0, "'e'"), -(13773, 0, "'e'"), -(13774, 0, "'d'"), -(13775, 0, "' '"), -(13776, 0, "'s'"), -(13777, 0, "'o'"), -(13778, 0, "' '"), -(13779, 0, "'e'"), -(13779, 1, "''"), -(13778, 1, "''"), -(13778, 0, "'m'"), -(13779, 0, "'e'"), -(13780, 0, "' '"), -(13781, 0, "'s'"), -(13782, 0, "'p'"), -(13783, 0, "'e'"), -(13784, 0, "'c'"), -(13785, 0, "'i'"), -(13786, 0, "'a'"), -(13787, 0, "'l'"), -(13788, 0, "' '"), -(13789, 0, "'l'"), -(13790, 0, "'o'"), -(13791, 0, "'g'"), -(13792, 0, "'i'"), -(13793, 0, "'c'"), -(13794, 0, "' '"), -(13795, 0, "'t'"), -(13796, 0, "'o'"), -(13797, 0, "' '"), -(13798, 0, "'s'"), -(13799, 0, "'p'"), -(13800, 0, "'l'"), -(13801, 0, "'i'"), -(13802, 0, "'t'"), -(13803, 0, "' '"), -(13804, 0, "'i'"), -(13805, 0, "'t'"), -(13806, 0, "'e'"), -(13807, 0, "'m'"), -(13808, 0, "'s'"), -(13809, 0, "' '"), -(13810, 0, "'b'"), -(13811, 0, "'a'"), -(13812, 0, "'c'"), -(13813, 0, "'k'"), -(13814, 0, "' '"), -(13815, 0, "'o'"), -(13816, 0, "'u'"), -(13817, 0, "'t'"), -(13818, 0, "' '"), -(13819, 0, "'i'"), -(13820, 0, "'f'"), -(13821, 0, "' '"), -(13822, 0, "'t'"), -(13823, 0, "'h'"), -(13824, 0, "'e'"), -(13825, 0, "' '"), -(13826, 0, "'u'"), -(13827, 0, "'s'"), -(13828, 0, "'e'"), -(13829, 0, "'r'"), -(13830, 0, "' '"), -(13831, 0, "'l'"), -(13832, 0, "'a'"), -(13833, 0, "'t'"), -(13834, 0, "'e'"), -(13835, 0, "'r'"), -(13836, 0, "' '"), -(13837, 0, "'i'"), -(13838, 0, "'n'"), -(13839, 0, "'s'"), -(13840, 0, "'e'"), -(13841, 0, "'r'"), -(13842, 0, "'t'"), -(13843, 0, "'s'"), -(13844, 0, "' '"), -(13845, 0, "'s'"), -(13846, 0, "'o'"), -(13847, 0, "'m'"), -(13848, 0, "'e'"), -(13849, 0, "'t'"), -(13850, 0, "'h'"), -(13851, 0, "'i'"), -(13852, 0, "'n'"), -(13853, 0, "'g'"), -(13854, 0, "' '"), -(13855, 0, "'i'"), -(13856, 0, "'n'"), -(13857, 0, "' '"), -(13858, 0, "'t'"), -(13859, 0, "'h'"), -(13860, 0, "'e'"), -(13861, 0, "' '"), -(13862, 0, "'m'"), -(13863, 0, "'i'"), -(13864, 0, "'d'"), -(13865, 0, "'d'"), -(13866, 0, "'l'"), -(13867, 0, "'e'"), -(13868, 0, "' '"), -(13869, 0, "'o'"), -(13870, 0, "'f'"), -(13871, 0, "' '"), -(13872, 0, "'a'"), -(13873, 0, "' '"), -(13874, 0, "'s'"), -(13875, 0, "'p'"), -(13876, 0, "'a'"), -(13877, 0, "'n'"), -(13878, 0, "' '"), -(13879, 0, "'l'"), -(13880, 0, "'i'"), -(13872, 9, "'o'"), -(13873, 0, "'e'"), -(13874, 0, "'n'"), -(13875, 0, "' '"), -(13875, 1, "''"), -(13874, 1, "''"), -(13873, 1, "''"), -(13873, 0, "'n'"), -(13874, 0, "'e'"), -(13875, 0, "' '"), -(13876, 0, "'o'"), -(13877, 0, "'f'"), -(13878, 0, "' '"), -(13879, 0, "'t'"), -(13880, 0, "'h'"), -(13881, 0, "'e'"), -(13882, 0, "'s'"), -(13883, 0, "'e'"), -(13884, 0, "' '"), -(13885, 0, "'s'"), -(13886, 0, "'p'"), -(13887, 0, "'a'"), -(13888, 0, "'n'"), -(13889, 0, "'s'"), -(13896, 4, "'w'"), -(13897, 0, "'h'"), -(13898, 0, "'e'"), -(13899, 0, "'n'"), -(13900, 0, "' '"), -(13901, 0, "'a'"), -(13902, 0, "'l'"), -(13903, 0, "'l'"), -(13904, 0, "' '"), -(13905, 0, "'i'"), -(13906, 0, "'s'"), -(13907, 0, "' '"), -(13908, 0, "'s'"), -(13909, 0, "'a'"), -(13910, 0, "'i'"), -(13911, 0, "'d'"), -(13912, 0, "' '"), -(13912, 1, "''"), -(13911, 1, "''"), -(13910, 1, "''"), -(13909, 1, "''"), -(13909, 0, "'a'"), -(13910, 0, "'i'"), -(13911, 0, "'d'"), -(13912, 0, "' '"), -(13913, 0, "'a'"), -(13914, 0, "'n'"), -(13915, 0, "'d'"), -(13916, 0, "' '"), -(13917, 0, "'d'"), -(13918, 0, "'o'"), -(13919, 0, "'n'"), -(13920, 0, "'e'"), -(13921, 0, "','"), -(13922, 0, "' '"), -(13923, 0, "'t'"), -(13924, 0, "'h'"), -(13925, 0, "'i'"), -(13926, 0, "'s'"), -(13928, 12, "'t'"), -(13929, 0, "'r'"), -(13930, 0, "'i'"), -(13931, 0, "'c'"), -(13932, 0, "'k'"), -(13928, 5, "'c'"), -(13929, 0, "'h'"), -(13930, 0, "'a'"), -(13931, 0, "'n'"), -(13932, 0, "'g'"), -(13933, 0, "'e'"), -(14011, 23, "'T'"), -(14012, 0, "'h'"), -(14013, 0, "'e'"), -(14014, 0, "'s'"), -(14015, 0, "'e'"), -(14016, 0, "' '"), -(14017, 0, "'c'"), -(14018, 0, "'h'"), -(14019, 0, "'a'"), -(14020, 0, "'n'"), -(14021, 0, "'g'"), -(14022, 0, "'e'"), -(14023, 0, "'s'"), -(14024, 0, "' '"), -(14025, 0, "'p'"), -(14026, 0, "'e'"), -(14027, 0, "'r'"), -(14028, 0, "'f'"), -(14029, 0, "'o'"), -(14030, 0, "'r'"), -(14031, 0, "'m'"), -(14032, 0, "' '"), -(14033, 0, "'g'"), -(14034, 0, "'r'"), -(14035, 0, "'e'"), -(14036, 0, "'a'"), -(14037, 0, "'t'"), -(14038, 0, "','"), -(14039, 0, "' '"), -(14040, 0, "'a'"), -(14041, 0, "'n'"), -(14042, 0, "'d'"), -(14043, 0, "' '"), -(14043, 1, "''"), -(14042, 1, "''"), -(14041, 1, "''"), -(14040, 1, "''"), -(14039, 1, "''"), -(14038, 1, "''"), -(14038, 0, "'.'"), -(14039, 0, "' '"), -(14040, 0, "'T'"), -(14041, 0, "'h'"), -(14042, 0, "'e'"), -(14043, 0, "' '"), -(14044, 0, "'r'"), -(14045, 0, "'e'"), -(14046, 0, "'s'"), -(14047, 0, "'u'"), -(14048, 0, "'l'"), -(14049, 0, "'t'"), -(14050, 0, "' '"), -(14051, 0, "'i'"), -(14052, 0, "'s'"), -(14053, 2, "''"), -(14068, 0, "' '"), -(14069, 0, "'w'"), -(14070, 0, "'e'"), -(14071, 0, "'''"), -(14072, 0, "'r'"), -(14073, 0, "'e'"), -(14074, 0, "' '"), -(14075, 0, "'u'"), -(14076, 0, "'s'"), -(14077, 0, "'i'"), -(14078, 0, "'n'"), -(14079, 0, "'g'"), -(14080, 5, "''"), -(14081, 9, "''"), -(14081, 0, "'a'"), -(14082, 0, "'b'"), -(14083, 0, "'o'"), -(14084, 0, "'u'"), -(14085, 0, "'t'"), -(14086, 20, "' '"), -(14087, 0, "'1'"), -(14088, 0, "'0'"), -(14089, 0, "'%'"), -(14090, 0, "' '"), -(14091, 0, "'o'"), -(14091, 1, "''"), -(14091, 0, "'a'"), -(14092, 0, "'s'"), -(14093, 0, "' '"), -(14094, 0, "'m'"), -(14095, 0, "'u'"), -(14096, 0, "'c'"), -(14097, 0, "'h'"), -(14098, 0, "' '"), -(14099, 0, "'R'"), -(14100, 0, "'A'"), -(14101, 0, "'M'"), -(14102, 0, "':'"), -(14473, 1, "''"), -(14472, 1, "''"), -(14472, 0, "'0'"), -(14473, 0, "'.'"), -(14474, 0, "'1'"), -(14471, 1, "''"), -(14475, 0, "'M'"), -(14476, 0, "'B'"), -(14477, 2, "''"), -(10451, 62, "'| JS baseline | 0.61s | 0.1 MB |'"), -(6198, 55, "'| JS baseline | 0.61s | 0.1 MB |'"), -(6233, 1, "''"), -(6232, 1, "''"), -(6231, 1, "''"), -(6230, 1, "''"), -(6229, 1, "''"), -(6228, 1, "''"), -(6227, 1, "''"), -(5813, 6, "''"), -(5812, 1, "''"), -(5885, 0, "' '"), -(5886, 0, "'A'"), -(5887, 0, "'n'"), -(5888, 0, "'d'"), -(5889, 0, "' '"), -(5890, 0, "'w'"), -(5891, 0, "'o'"), -(5892, 0, "'w'"), -(5893, 0, "' '"), -(5894, 0, "'i'"), -(5895, 0, "'s'"), -(5896, 0, "' '"), -(5897, 0, "'t'"), -(5898, 0, "'h'"), -(5899, 0, "'a'"), -(5900, 0, "'t'"), -(5901, 0, "' '"), -(5902, 0, "'-'"), -(5903, 0, "' '"), -(5904, 0, "'y'"), -(5905, 0, "'e'"), -(5906, 0, "'p'"), -(5907, 0, "','"), -(5908, 0, "' '"), -(5909, 0, "'8'"), -(5910, 0, "'8'"), -(5911, 0, "'0'"), -(5912, 0, "'M'"), -(5913, 0, "'B'"), -(5914, 0, "'.'"), -(5915, 0, "' '"), -(5915, 1, "''"), -(5914, 1, "''"), -(5914, 0, "' '"), -(5915, 0, "'o'"), -(5916, 0, "'f'"), -(5917, 0, "' '"), -(5918, 0, "'R'"), -(5919, 0, "'A'"), -(5920, 0, "'M'"), -(5921, 0, "'.'"), -(5922, 0, "'n'"), -(5923, 0, "'n'"), -(7085, 44, "''"), -(6981, 138, "''"), -(5922, 0, "' '"), -(5923, 0, "'Holy cow! ~~Thats nearly as much as slack.~~'"), -(5923, 10, "''"), -(5959, 1, "''"), -(6093, 0, "'.'"), -(6094, 0, "' '"), -(6095, 0, "'J'"), -(6096, 0, "'a'"), -(6097, 0, "'v'"), -(6098, 0, "'a'"), -(6099, 0, "'s'"), -(6100, 0, "'c'"), -(6101, 0, "'r'"), -(6102, 0, "'i'"), -(6103, 0, "'p'"), -(6104, 0, "'t'"), -(6095, 10, "'V'"), -(6096, 0, "'8'"), -(6097, 0, "' '"), -(6098, 0, "'i'"), -(6099, 0, "'s'"), -(6100, 0, "' '"), -(6101, 0, "'p'"), -(6102, 0, "'r'"), -(6103, 0, "'e'"), -(6104, 0, "'t'"), -(6105, 0, "'t'"), -(6106, 0, "'y'"), -(6107, 0, "' '"), -(6108, 0, "'f'"), -(6109, 0, "'a'"), -(6110, 0, "'s'"), -(6111, 0, "'t'"), -(6112, 0, "'!'"), -(6113, 1, "''"), -(6094, 19, "''"), -(14368, 0, "'n'"), -(14368, 0, "'n'"), -(14369, 0, "'#'"), -(14370, 0, "'#'"), -(14371, 0, "'#'"), -(14372, 0, "' '"), -(14373, 0, "'M'"), -(14374, 0, "'o'"), -(14375, 0, "'v'"), -(14376, 0, "'i'"), -(14377, 0, "'n'"), -(14378, 0, "'g'"), -(14379, 0, "' '"), -(14380, 0, "'a'"), -(14381, 0, "'w'"), -(14382, 0, "'a'"), -(14383, 0, "'y'"), -(14384, 0, "' '"), -(14385, 0, "'f'"), -(14386, 0, "'r'"), -(14387, 0, "'o'"), -(14388, 0, "'m'"), -(14389, 0, "' '"), -(14390, 0, "'J'"), -(14391, 0, "'A'"), -(14392, 0, "'v'"), -(14393, 0, "'a'"), -(14394, 0, "'s'"), -(14395, 0, "'c'"), -(14396, 0, "'f'"), -(14390, 7, "'J'"), -(14391, 0, "'a'"), -(14392, 0, "'v'"), -(14393, 0, "'a'"), -(14394, 0, "'s'"), -(14395, 0, "'c'"), -(14396, 0, "'r'"), -(14397, 0, "'i'"), -(14398, 0, "'p'"), -(14399, 0, "'t'"), -(14400, 0, "','"), -(14401, 0, "' '"), -(14402, 0, "'a'"), -(14403, 0, "'n'"), -(14404, 0, "'d'"), -(14405, 0, "' '"), -(14406, 0, "'m'"), -(14407, 0, "'o'"), -(14408, 0, "'v'"), -(14409, 0, "'i'"), -(14410, 0, "'n'"), -(14411, 0, "'g'"), -(14412, 0, "' '"), -(14413, 0, "'a'"), -(14414, 0, "'w'"), -(14415, 0, "'a'"), -(14416, 0, "'y'"), -(14417, 0, "' '"), -(14418, 0, "'f'"), -(14419, 0, "'r'"), -(14420, 0, "'o'"), -(14421, 0, "'m'"), -(14422, 0, "' '"), -(14423, 0, "'l'"), -(14424, 0, "'i'"), -(14425, 0, "'n'"), -(14426, 0, "'k'"), -(14427, 0, "'e'"), -(14428, 0, "'d'"), -(14429, 0, "' '"), -(14430, 0, "'l'"), -(14431, 0, "'i'"), -(14432, 0, "'s'"), -(14433, 0, "'t'"), -(14434, 0, "'s'"), -(14435, 0, "'n'"), -(14436, 0, "'n'"), -(14437, 0, "'T'"), -(14438, 0, "'h'"), -(14439, 0, "'e'"), -(14440, 0, "' '"), -(14441, 0, "'n'"), -(14442, 0, "'e'"), -(14443, 0, "'x'"), -(14444, 0, "'t'"), -(14445, 0, "' '"), -(14446, 0, "'b'"), -(14447, 0, "'i'"), -(14448, 0, "'g'"), -(14449, 0, "' '"), -(14450, 0, "'p'"), -(14451, 0, "'e'"), -(14452, 0, "'r'"), -(14453, 0, "'f'"), -(14454, 0, "'o'"), -(14437, 18, "'T'"), -(14438, 0, "'h'"), -(14439, 0, "'e'"), -(14440, 0, "'r'"), -(14441, 0, "'e'"), -(14442, 0, "' '"), -(14443, 0, "'i'"), -(14444, 0, "'s'"), -(14445, 0, "'n'"), -(14446, 0, "'''"), -(14447, 0, "'t'"), -(14437, 11, "'J'"), -(14438, 0, "'u'"), -(14439, 0, "'s'"), -(14440, 0, "'t'"), -(14441, 0, "' '"), -(14441, 1, "''"), -(14440, 1, "''"), -(14439, 1, "''"), -(14438, 1, "''"), -(14438, 0, "'a'"), -(14439, 0, "'v'"), -(14440, 0, "'a'"), -(14441, 0, "'s'"), -(14442, 0, "'c'"), -(14443, 0, "'r'"), -(14444, 0, "'i'"), -(14445, 0, "'p'"), -(14446, 0, "'t'"), -(14447, 0, "' '"), -(14448, 0, "'w'"), -(14449, 0, "'o'"), -(14450, 0, "'n'"), -(14451, 0, "'''"), -(14452, 0, "'t'"), -(14453, 0, "' '"), -(14454, 0, "'g'"), -(14455, 0, "'o'"), -(14456, 0, "' '"), -(14457, 0, "'m'"), -(14458, 0, "'u'"), -(14459, 0, "'c'"), -(14460, 0, "'h'"), -(14461, 0, "' '"), -(14462, 0, "'f'"), -(14463, 0, "'a'"), -(14464, 0, "'s'"), -(14465, 0, "'t'"), -(14466, 0, "'e'"), -(14467, 0, "'r'"), -(14468, 0, "' '"), -(14469, 0, "'t'"), -(14470, 0, "'h'"), -(14471, 0, "'a'"), -(14472, 0, "'n'"), -(14473, 0, "' '"), -(14474, 0, "'t'"), -(14475, 0, "'h'"), -(14476, 0, "'i'"), -(14477, 0, "'s'"), -(14478, 0, "'.'"), -(14479, 0, "' '"), -(14480, 0, "'T'"), -(14481, 0, "'o'"), -(14482, 0, "' '"), -(14483, 0, "'i'"), -(14484, 0, "'m'"), -(14485, 0, "'p'"), -(14486, 0, "'r'"), -(14487, 0, "'o'"), -(14488, 0, "'v'"), -(14489, 0, "'e'"), -(14490, 0, "' '"), -(14491, 0, "'p'"), -(14492, 0, "'e'"), -(14493, 0, "'r'"), -(14494, 0, "'f'"), -(14495, 0, "'o'"), -(14496, 0, "'r'"), -(14497, 0, "'m'"), -(14498, 0, "'a'"), -(14499, 0, "'n'"), -(14500, 0, "'c'"), -(14501, 0, "'e'"), -(14502, 0, "' '"), -(14503, 0, "'m'"), -(14504, 0, "'o'"), -(14505, 0, "'r'"), -(14506, 0, "'e'"), -(14507, 0, "','"), -(14508, 0, "' '"), -(14509, 0, "'w'"), -(14510, 0, "'e'"), -(14511, 0, "' '"), -(14512, 0, "'n'"), -(14513, 0, "'e'"), -(14514, 0, "'e'"), -(14515, 0, "'d'"), -(14516, 0, "' '"), -(14517, 0, "'t'"), -(14518, 0, "'o'"), -(14519, 0, "' '"), -(14520, 0, "'s'"), -(14521, 0, "'t'"), -(14522, 0, "'a'"), -(14523, 0, "'r'"), -(14524, 0, "'t'"), -(14525, 0, "' '"), -(14526, 0, "'d'"), -(14527, 0, "'e'"), -(14528, 0, "'c'"), -(14529, 0, "'r'"), -(14530, 0, "'e'"), -(14531, 0, "'a'"), -(14532, 0, "'s'"), -(14533, 0, "'i'"), -(14534, 0, "'n'"), -(14535, 0, "'g'"), -(14536, 0, "' '"), -(14537, 0, "'t'"), -(14538, 0, "'h'"), -(14539, 0, "'e'"), -(14540, 0, "' '"), -(14541, 0, "'n'"), -(14542, 0, "'u'"), -(14543, 0, "'m'"), -(14544, 0, "'b'"), -(14545, 0, "'e'"), -(14546, 0, "'r'"), -(14547, 0, "' '"), -(14548, 0, "'o'"), -(14549, 0, "'f'"), -(14437, 0, "'I'"), -(14438, 0, "'''"), -(14439, 0, "'m'"), -(14440, 0, "' '"), -(14441, 0, "'s'"), -(14442, 0, "'a'"), -(14443, 0, "'d'"), -(14444, 0, "' '"), -(14445, 0, "'t'"), -(14446, 0, "'o'"), -(14447, 0, "' '"), -(14448, 0, "'s'"), -(14449, 0, "'a'"), -(14450, 0, "'y'"), -(14451, 0, "' '"), -(14452, 0, "'i'"), -(14453, 0, "'t'"), -(14454, 0, "' '"), -(14455, 0, "'b'"), -(14456, 0, "'u'"), -(14457, 0, "'t'"), -(14458, 0, "' '"), -(14501, 0, "' '"), -(14502, 0, "'Y'"), -(14503, 0, "'j'"), -(14504, 0, "'s'"), -(14505, 0, "' '"), -(14506, 0, "'i'"), -(14507, 0, "'s'"), -(14508, 0, "' '"), -(14509, 0, "'v'"), -(14510, 0, "'e'"), -(14511, 0, "'r'"), -(14512, 0, "'y'"), -(14513, 0, "' '"), -(14514, 0, "'w'"), -(14515, 0, "'e'"), -(14516, 0, "'l'"), -(14517, 0, "'l'"), -(14518, 0, "' '"), -(14519, 0, "'o'"), -(14520, 0, "'p'"), -(14521, 0, "'t'"), -(14522, 0, "'i'"), -(14523, 0, "'m'"), -(14524, 0, "'i'"), -(14525, 0, "'z'"), -(14526, 0, "'e'"), -(14527, 0, "'d'"), -(14528, 0, "' '"), -(14528, 1, "''"), -(14528, 0, "','"), -(14528, 1, "''"), -(14528, 0, "' '"), -(14529, 0, "'a'"), -(14530, 0, "'l'"), -(14531, 0, "'r'"), -(14532, 0, "'e'"), -(14533, 0, "'a'"), -(14534, 0, "'d'"), -(14535, 0, "'y'"), -(14536, 0, "'.'"), -(14536, 1, "''"), -(14536, 0, "','"), -(14537, 0, "' '"), -(14538, 0, "'a'"), -(14539, 0, "'n'"), -(14540, 0, "'d'"), -(14541, 0, "' '"), -(14541, 1, "''"), -(14540, 1, "''"), -(14539, 1, "''"), -(14538, 1, "''"), -(14537, 1, "''"), -(14536, 1, "''"), -(14536, 0, "'.'"), -(14538, 3, "'I'"), -(14539, 0, "'f'"), -(14540, 0, "' '"), -(14541, 0, "'w'"), -(14542, 0, "'e'"), -(14543, 0, "' '"), -(14544, 0, "'w'"), -(14545, 0, "'a'"), -(14546, 0, "'n'"), -(14547, 0, "'t'"), -(14548, 0, "' '"), -(14549, 0, "'t'"), -(14550, 0, "'o'"), -(14551, 0, "' '"), -(14552, 0, "'c'"), -(14553, 0, "'o'"), -(14554, 0, "'n'"), -(14555, 0, "'t'"), -(14556, 0, "'i'"), -(14557, 0, "'n'"), -(14558, 0, "'u'"), -(14559, 0, "'e'"), -(14560, 0, "' '"), -(14561, 0, "'t'"), -(14562, 0, "'o'"), -(14563, 0, "' '"), -(14584, 4, "''"), -(14583, 1, "''"), -(14593, 33, "''"), -(14592, 1, "''"), -(14592, 0, "' '"), -(14593, 0, "'t'"), -(14594, 0, "'h'"), -(14595, 0, "'e'"), -(14596, 0, "' '"), -(14597, 0, "'c'"), -(14598, 0, "'o'"), -(14599, 0, "'m'"), -(14600, 0, "'p'"), -(14601, 0, "'u'"), -(14602, 0, "'t'"), -(14603, 0, "'e'"), -(14604, 0, "'r'"), -(14605, 0, "' '"), -(14606, 0, "'t'"), -(14607, 0, "'o'"), -(14608, 0, "' '"), -(14609, 0, "'d'"), -(14610, 0, "'o'"), -(14611, 0, "' '"), -(14612, 0, "'f'"), -(14613, 0, "'e'"), -(14614, 0, "'w'"), -(14615, 0, "'e'"), -(14616, 0, "'r'"), -(14617, 0, "' '"), -(14618, 0, "'r'"), -(14619, 0, "'e'"), -(14620, 0, "'a'"), -(14621, 0, "'d'"), -(14622, 0, "'s'"), -(14623, 0, "' '"), -(14624, 0, "'i'"), -(14625, 0, "'n'"), -(14626, 0, "' '"), -(14627, 0, "'m'"), -(14628, 0, "'e'"), -(14629, 0, "'m'"), -(14630, 0, "'o'"), -(14631, 0, "'r'"), -(14632, 0, "'y'"), -(14609, 24, "''"), -(14593, 16, "'t'"), -(14594, 0, "'o'"), -(14595, 0, "' '"), -(14596, 0, "'p'"), -(14597, 0, "'a'"), -(14598, 0, "'c'"), -(14599, 0, "'k'"), -(14600, 0, "' '"), -(14601, 0, "'m'"), -(14602, 0, "'e'"), -(14603, 0, "'m'"), -(14604, 0, "'o'"), -(14605, 0, "'r'"), -(14606, 0, "'y'"), -(14596, 11, "'m'"), -(14597, 0, "'a'"), -(14598, 0, "'k'"), -(14599, 0, "'e'"), -(14600, 0, "' '"), -(14601, 0, "'b'"), -(14602, 0, "'e'"), -(14603, 0, "'t'"), -(14604, 0, "'t'"), -(14605, 0, "'e'"), -(14606, 0, "'r'"), -(14607, 0, "' '"), -(14608, 0, "'u'"), -(14609, 0, "'s'"), -(14610, 0, "'e'"), -(14611, 0, "' '"), -(14612, 0, "'o'"), -(14613, 0, "'f'"), -(14614, 0, "' '"), -(14615, 0, "'m'"), -(14616, 0, "'e'"), -(14617, 0, "'m'"), -(14618, 0, "'o'"), -(14619, 0, "'r'"), -(14620, 0, "'y'"), -(14621, 0, "'.'"), -(14622, 0, "'n'"), -(14623, 0, "'n'"), -(14624, 0, "'I'"), -(14625, 0, "'n'"), -(14626, 0, "' '"), -(14627, 0, "'j'"), -(14628, 0, "'a'"), -(14629, 0, "'v'"), -(14630, 0, "'a'"), -(14631, 0, "'s'"), -(14632, 0, "'c'"), -(14633, 0, "'r'"), -(14634, 0, "'i'"), -(14635, 0, "'p'"), -(14636, 0, "'t'"), -(14637, 0, "','"), -(14638, 0, "' '"), -(14639, 0, "'a'"), -(14640, 0, "'n'"), -(14641, 0, "' '"), -(14642, 0, "'o'"), -(14643, 0, "'b'"), -(14644, 0, "'j'"), -(14645, 0, "'e'"), -(14646, 0, "'c'"), -(14647, 0, "'t'"), -(14648, 0, "' '"), -(14649, 0, "'l'"), -(14650, 0, "'i'"), -(14651, 0, "'k'"), -(14652, 0, "'e'"), -(14653, 0, "' '"), -(14654, 0, "'t'"), -(14655, 0, "'h'"), -(14656, 0, "'i'"), -(14657, 0, "'s'"), -(14658, 0, "':'"), -(14659, 0, "'n'"), -(14660, 0, "'n'"), -(14660, 1, "''"), -(14659, 1, "''"), -(14624, 15, "'I'"), -(14625, 0, "'m'"), -(14626, 0, "'a'"), -(14627, 0, "'g'"), -(14628, 0, "'i'"), -(14629, 0, "'n'"), -(14630, 0, "'e'"), -(14631, 0, "' '"), -(14651, 0, "' '"), -(14652, 0, "'i'"), -(14653, 0, "'n'"), -(14654, 0, "' '"), -(14655, 0, "'j'"), -(14656, 0, "'a'"), -(14657, 0, "'v'"), -(14658, 0, "'a'"), -(14659, 0, "'s'"), -(14660, 0, "'c'"), -(14661, 0, "'r'"), -(14662, 0, "'i'"), -(14663, 0, "'p'"), -(14664, 0, "'t'"), -(14667, 0, "'n'"), -(14668, 0, "'`'"), -(14669, 0, "'`'"), -(14670, 0, "'`'"), -(14671, 0, "'n'"), -(14672, 0, "'{ item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null }'"), -(14743, 0, "'n'"), -(14744, 0, "'`'"), -(14745, 0, "'`'"), -(14746, 0, "'`'"), -(14671, 0, "'j'"), -(14672, 0, "'a'"), -(14673, 0, "'v'"), -(14674, 0, "'a'"), -(14675, 0, "'s'"), -(14676, 0, "'c'"), -(14677, 0, "'r'"), -(14678, 0, "'i'"), -(14679, 0, "'p'"), -(14680, 0, "'t'"), -(14671, 10, "'j'"), -(14672, 0, "'s'"), -(14673, 0, "'o'"), -(14674, 0, "'n'"), -(14671, 4, "'javascript'"), -(14757, 0, "'n'"), -(14758, 0, "'n'"), -(14759, 0, "'T'"), -(14760, 0, "'h'"), -(14761, 0, "'i'"), -(14762, 0, "'s'"), -(14763, 0, "' '"), -(14764, 0, "'o'"), -(14765, 0, "'b'"), -(14766, 0, "'j'"), -(14767, 0, "'e'"), -(14768, 0, "'c'"), -(14769, 0, "'t'"), -(14770, 0, "' '"), -(14771, 0, "'a'"), -(14772, 0, "'c'"), -(14773, 0, "'t'"), -(14774, 0, "'u'"), -(14775, 0, "'a'"), -(14776, 0, "'l'"), -(14777, 0, "'l'"), -(14778, 0, "'y'"), -(14779, 0, "' '"), -(14780, 0, "'l'"), -(14781, 0, "'o'"), -(14782, 0, "'o'"), -(14783, 0, "'k'"), -(14784, 0, "'s'"), -(14785, 0, "' '"), -(14786, 0, "'l'"), -(14787, 0, "'i'"), -(14788, 0, "'e'"), -(14789, 0, "'k'"), -(14789, 1, "''"), -(14788, 1, "''"), -(14788, 0, "'k'"), -(14789, 0, "'e'"), -(14790, 0, "' '"), -(14791, 0, "'t'"), -(14792, 0, "'h'"), -(14793, 0, "'i'"), -(14794, 0, "'s'"), -(14795, 0, "':'"), -(14796, 0, "'n'"), -(14797, 0, "'n'"), -(14798, 0, "'>'"), -(14799, 0, "' '"), -(14800, 0, "'D'"), -(14801, 0, "'i'"), -(14802, 0, "'a'"), -(14803, 0, "'g'"), -(14804, 0, "'r'"), -(14805, 0, "'a'"), -(14806, 0, "'m'"), -(14807, 0, "'.'"), -(14808, 0, "'.'"), -(14809, 0, "'.'"), -(14809, 1, "''"), -(14808, 1, "''"), -(14807, 1, "''"), -(14807, 0, "'n'"), -(14808, 0, "'n'"), -(14809, 0, "'N'"), -(14810, 0, "'o'"), -(14811, 0, "'t'"), -(14812, 0, "'e'"), -(14813, 0, "' '"), -(14814, 0, "'h'"), -(14815, 0, "'o'"), -(14816, 0, "'w'"), -(14817, 0, "' '"), -(14818, 0, "'e'"), -(14819, 0, "'a'"), -(14820, 0, "'c'"), -(14821, 0, "'h'"), -(14822, 0, "' '"), -(14809, 14, "'Note how each'"), -(14730, 1, "''"), -(14730, 0, "'1'"), -(14731, 0, "'0'"), -(14732, 0, "'0'"), -(14732, 1, "''"), -(14748, 4, "''"), -(14748, 0, "'['"), -(14749, 0, "'s'"), -(14750, 0, "'e'"), -(14750, 1, "''"), -(14749, 1, "''"), -(14749, 0, "'''"), -(14750, 0, "'m'"), -(14751, 0, "'i'"), -(14752, 0, "'k'"), -(14753, 0, "'e'"), -(14754, 0, "'''"), -(14755, 0, "','"), -(14756, 0, "' '"), -(14757, 0, "'2'"), -(14758, 0, "']'"), -(14830, 0, "' '"), -(14817, 14, "'E'"), -(14818, 0, "'a'"), -(14819, 0, "'c'"), -(14820, 0, "'h'"), -(14821, 0, "' '"), -(14822, 0, "'p'"), -(14823, 0, "'a'"), -(14824, 0, "'r'"), -(14825, 0, "'t'"), -(14826, 0, "' '"), -(14827, 0, "'o'"), -(14828, 0, "'f'"), -(14829, 0, "' '"), -(14830, 0, "'t'"), -(14831, 0, "'h'"), -(14832, 0, "'e'"), -(14833, 0, "' '"), -(14834, 0, "'o'"), -(14835, 0, "'b'"), -(14836, 0, "'j'"), -(14837, 0, "'e'"), -(14838, 0, "'c'"), -(14839, 0, "'t'"), -(14834, 6, "'d'"), -(14835, 0, "'a'"), -(14836, 0, "'t'"), -(14837, 0, "'a'"), -(14838, 0, "' '"), -(14839, 0, "'s'"), -(14840, 0, "'t'"), -(14841, 0, "'r'"), -(14842, 0, "'u'"), -(14843, 0, "'c'"), -(14844, 0, "'t'"), -(14845, 0, "'u'"), -(14846, 0, "'r'"), -(14847, 0, "'e'"), -(14848, 0, "' '"), -(14849, 0, "'i'"), -(14850, 0, "'s'"), -(14851, 0, "' '"), -(14852, 0, "'s'"), -(14853, 0, "'e'"), -(14854, 0, "'p'"), -(14855, 0, "'a'"), -(14856, 0, "'r'"), -(14857, 0, "'a'"), -(14858, 0, "'t'"), -(14859, 0, "'e'"), -(14860, 0, "'d'"), -(14861, 0, "' '"), -(14862, 0, "'f'"), -(14863, 0, "'r'"), -(14864, 0, "'o'"), -(14865, 0, "'m'"), -(14866, 0, "' '"), -(14867, 0, "'t'"), -(14868, 0, "'h'"), -(14869, 0, "'e'"), -(14870, 0, "' '"), -(14871, 0, "'r'"), -(14872, 0, "'e'"), -(14873, 0, "'s'"), -(14874, 0, "'t'"), -(14852, 23, "'c'"), -(14853, 0, "'o'"), -(14854, 0, "'n'"), -(14855, 0, "'n'"), -(14856, 0, "'e'"), -(14857, 0, "'c'"), -(14858, 0, "'t'"), -(14859, 0, "'e'"), -(14860, 0, "'d'"), -(14861, 0, "' '"), -(14862, 0, "'t'"), -(14863, 0, "'o'"), -(14864, 0, "' '"), -(14865, 0, "'t'"), -(14866, 0, "'h'"), -(14867, 0, "'e'"), -(14868, 0, "' '"), -(14869, 0, "'r'"), -(14870, 0, "'e'"), -(14871, 0, "'s'"), -(14872, 0, "'t'"), -(14873, 0, "' '"), -(14874, 0, "'v'"), -(14875, 0, "'i'"), -(14876, 0, "'a'"), -(14877, 0, "' '"), -(14878, 0, "'p'"), -(14879, 0, "'o'"), -(14880, 0, "'i'"), -(14881, 0, "'n'"), -(14882, 0, "'t'"), -(14883, 0, "'e'"), -(14884, 0, "'r'"), -(14885, 0, "'s'"), -(14886, 0, "'.'"), -(14887, 0, "' '"), -(14888, 0, "'U'"), -(14889, 0, "'n'"), -(14890, 0, "'f'"), -(14891, 0, "'o'"), -(14892, 0, "'r'"), -(14893, 0, "'u'"), -(14894, 0, "'n'"), -(14894, 1, "''"), -(14893, 1, "''"), -(14893, 0, "'t'"), -(14894, 0, "'u'"), -(14895, 0, "'n'"), -(14896, 0, "'a'"), -(14897, 0, "'t'"), -(14898, 0, "'e'"), -(14899, 0, "'l'"), -(14900, 0, "'y'"), -(14901, 0, "','"), -(14902, 0, "' '"), -(14888, 15, "'I'"), -(14889, 0, "'n'"), -(14890, 0, "' '"), -(14891, 0, "'m'"), -(14892, 0, "'o'"), -(14893, 0, "'d'"), -(14894, 0, "'e'"), -(14895, 0, "'r'"), -(14896, 0, "'n'"), -(14897, 0, "' '"), -(14898, 0, "'c'"), -(14899, 0, "'o'"), -(14900, 0, "'m'"), -(14901, 0, "'p'"), -(14902, 0, "'u'"), -(14903, 0, "'t'"), -(14904, 0, "'e'"), -(14905, 0, "'r'"), -(14906, 0, "'s'"), -(14907, 0, "','"), -(14908, 0, "' '"), -(14909, 0, "'f'"), -(14910, 0, "'o'"), -(14911, 0, "'l'"), -(14912, 0, "'l'"), -(14913, 0, "'o'"), -(14914, 0, "'w'"), -(14915, 0, "'i'"), -(14916, 0, "'n'"), -(14917, 0, "'g'"), -(14918, 0, "' '"), -(14919, 0, "'p'"), -(14920, 0, "'o'"), -(14921, 0, "'i'"), -(14922, 0, "'n'"), -(14923, 0, "'t'"), -(14924, 0, "'e'"), -(14925, 0, "'r'"), -(14926, 0, "'e'"), -(14926, 1, "''"), -(14926, 0, "'s'"), -(14927, 0, "' '"), -(14928, 0, "'i'"), -(14929, 0, "'s'"), -(14930, 0, "' '"), -(14931, 0, "'a'"), -(14932, 0, "'c'"), -(14933, 0, "'t'"), -(14934, 0, "'u'"), -(14935, 0, "'a'"), -(14936, 0, "'l'"), -(14937, 0, "'l'"), -(14938, 0, "'y'"), -(14939, 0, "' '"), -(14940, 0, "'v'"), -(14941, 0, "'e'"), -(14942, 0, "'r'"), -(14943, 0, "'y'"), -(14944, 0, "'s'"), -(14945, 0, "' '"), -(14945, 1, "''"), -(14944, 1, "''"), -(14944, 0, "' '"), -(14945, 0, "'s'"), -(14946, 0, "'l'"), -(14947, 0, "'o'"), -(14948, 0, "'w'"), -(14949, 0, "'.'"), -(14950, 0, "' '"), -(14951, 0, "'I'"), -(14952, 0, "'f'"), -(14953, 0, "' '"), -(14954, 0, "'1'"), -(14955, 0, "' '"), -(14956, 0, "'c'"), -(14957, 0, "'l'"), -(14958, 0, "'o'"), -(14959, 0, "'c'"), -(14960, 0, "'k'"), -(14961, 0, "' '"), -(14962, 0, "'c'"), -(14963, 0, "'y'"), -(14964, 0, "'c'"), -(14965, 0, "'l'"), -(14966, 0, "'e'"), -(14967, 0, "' '"), -(14968, 0, "'w'"), -(14969, 0, "'a'"), -(14970, 0, "'s'"), -(14971, 0, "' '"), -(14972, 0, "'1'"), -(14973, 0, "' '"), -(14974, 0, "'s'"), -(14975, 0, "'e'"), -(14976, 0, "'c'"), -(14977, 0, "'o'"), -(14978, 0, "'n'"), -(14979, 0, "'d'"), -(14980, 0, "','"), -(14981, 0, "' '"), -(14982, 0, "'f'"), -(14983, 0, "'o'"), -(14984, 0, "'l'"), -(14985, 0, "'l'"), -(14986, 0, "'o'"), -(14987, 0, "'w'"), -(14988, 0, "'i'"), -(14989, 0, "'n'"), -(14990, 0, "'g'"), -(14991, 0, "' '"), -(14992, 0, "'a'"), -(14993, 0, "' '"), -(14994, 0, "'p'"), -(14995, 0, "'o'"), -(14996, 0, "'i'"), -(14997, 0, "'n'"), -(14998, 0, "'t'"), -(14999, 0, "'e'"), -(15000, 0, "'r'"), -(15001, 0, "' '"), -(15002, 0, "'('"), -(14373, 62, "'B'"), -(14374, 0, "'e'"), -(14375, 0, "'t'"), -(14376, 0, "'t'"), -(14377, 0, "'e'"), -(14378, 0, "'r'"), -(14379, 0, "' '"), -(14379, 1, "''"), -(14373, 6, "'Moving away from Javascript, and moving away from linked lists'"), -(14930, 9, "' '"), -(14931, 0, "'r'"), -(14932, 0, "'e'"), -(14933, 0, "'a'"), -(14934, 0, "'l'"), -(14935, 0, "'y'"), -(14935, 1, "''"), -(14935, 0, "'l'"), -(14936, 0, "'y'"), -(14937, 5, "''"), -(14946, 0, "' '"), -(14947, 0, "'t'"), -(14948, 0, "'h'"), -(14949, 0, "'e'"), -(14950, 0, "' '"), -(14951, 0, "'c'"), -(14952, 0, "'o'"), -(14953, 0, "'m'"), -(14954, 0, "'p'"), -(14955, 0, "'u'"), -(14956, 0, "'t'"), -(14957, 0, "'e'"), -(14958, 0, "'r'"), -(14959, 0, "' '"), -(14960, 0, "'t'"), -(14947, 14, "''"), -(14944, 3, "'I'"), -(14945, 0, "'f'"), -(14946, 0, "' '"), -(14947, 0, "'t'"), -(14948, 0, "'h'"), -(14949, 0, "'e'"), -(14950, 0, "' '"), -(14951, 0, "'c'"), -(14952, 0, "'o'"), -(14953, 0, "'m'"), -(14954, 0, "'p'"), -(14955, 0, "'u'"), -(14956, 0, "'t'"), -(14957, 0, "'e'"), -(14958, 0, "'r'"), -(14959, 0, "' '"), -(14960, 0, "'d'"), -(14961, 0, "'i'"), -(14962, 0, "'d'"), -(14978, 3, "''"), -(14978, 0, "'e'"), -(14979, 0, "'v'"), -(14980, 0, "'e'"), -(14981, 0, "'r'"), -(14982, 0, "'y'"), -(15015, 0, "'d'"), -(15016, 0, "'o'"), -(15017, 0, "'i'"), -(15018, 0, "'n'"), -(15019, 0, "'g'"), -(15020, 0, "' '"), -(14994, 27, "'r'"), -(14995, 0, "'e'"), -(14996, 0, "'a'"), -(14997, 0, "'d'"), -(14998, 0, "'i'"), -(14999, 0, "'n'"), -(15000, 0, "'g'"), -(15001, 0, "' '"), -(15002, 0, "'d'"), -(15003, 0, "'a'"), -(15004, 0, "'t'"), -(15005, 0, "'a'"), -(15006, 0, "' '"), -(15007, 0, "'f'"), -(15008, 0, "'r'"), -(15009, 0, "'o'"), -(15010, 0, "'m'"), -(15011, 0, "' '"), -(15012, 0, "'m'"), -(15013, 0, "'a'"), -(15014, 0, "'i'"), -(15015, 0, "'n'"), -(15016, 0, "' '"), -(15017, 0, "'m'"), -(15018, 0, "'e'"), -(15019, 0, "'m'"), -(15020, 0, "'o'"), -(15021, 0, "'r'"), -(15022, 0, "'y'"), -(15023, 0, "' '"), -(15024, 0, "'w'"), -(15025, 0, "'o'"), -(15026, 0, "'u'"), -(15027, 0, "'l'"), -(15028, 0, "'d'"), -(15029, 0, "' '"), -(15030, 0, "'t'"), -(15031, 0, "'a'"), -(15032, 0, "'k'"), -(15033, 0, "'e'"), -(14984, 2, "''"), -(15032, 0, "' '"), -(15033, 0, "'a'"), -(15034, 0, "' '"), -(15035, 0, "'f'"), -(15036, 0, "'e'"), -(15037, 0, "'w'"), -(15038, 0, "' '"), -(15039, 0, "'m'"), -(15040, 0, "'i'"), -(15041, 0, "'n'"), -(15042, 0, "'u'"), -(15043, 0, "'t'"), -(15044, 0, "'e'"), -(15045, 0, "'s'"), -(15046, 0, "'.'"), -(15039, 8, "''"), -(15035, 4, "'c'"), -(15036, 0, "'o'"), -(15037, 0, "'u'"), -(15038, 0, "'p'"), -(15039, 0, "'l'"), -(15040, 0, "'e'"), -(15041, 0, "' '"), -(15042, 0, "'o'"), -(15043, 0, "'f'"), -(15044, 0, "' '"), -(15045, 0, "'m'"), -(15046, 0, "'i'"), -(15047, 0, "'n'"), -(15048, 0, "'u'"), -(15049, 0, "'t'"), -(15050, 0, "'e'"), -(15051, 0, "'s'"), -(15035, 0, "'['"), -(15053, 0, "']'"), -(15054, 0, "'('"), -(15055, 0, "'https://gist.github.com/hellerbarde/2843375'"), -(15098, 0, "')'"), -(15099, 0, "'.'"), -(15100, 0, "' '"), -(14817, 284, "'Each part of the data structure is connected to the rest via pointers. In modern computers, following pointers is really slow. If the computer did 1 clock cycle every second, reading data from main memory would take a [couple of minutes](https://gist.github.com/hellerbarde/2843375).'"), -(14816, 0, "'n'"), -(14816, 0, "'n'"), -(14817, 0, "'T'"), -(14818, 0, "'h'"), -(14819, 0, "'i'"), -(14820, 0, "'s'"), -(14821, 0, "' '"), -(14822, 0, "'i'"), -(14823, 0, "'s'"), -(14824, 0, "' '"), -(14825, 0, "'a'"), -(14826, 0, "'w'"), -(14827, 0, "'f'"), -(14828, 0, "'u'"), -(14829, 0, "'l'"), -(14830, 0, "' '"), -(14831, 0, "'f'"), -(14832, 0, "'o'"), -(14833, 0, "'r'"), -(14834, 0, "' '"), -(14835, 0, "'t'"), -(14836, 0, "'h'"), -(14837, 0, "'e'"), -(14838, 0, "' '"), -(14839, 0, "'c'"), -(14840, 0, "'o'"), -(14841, 0, "'m'"), -(14842, 0, "'p'"), -(14843, 0, "'u'"), -(14844, 0, "'t'"), -(14845, 0, "'e'"), -(14846, 0, "'r'"), -(14847, 0, "'.'"), -(14817, 5, "'T'"), -(14818, 0, "'h'"), -(14819, 0, "'e'"), -(14820, 0, "' '"), -(14821, 0, "'c'"), -(14822, 0, "'o'"), -(14823, 0, "'m'"), -(14824, 0, "'p'"), -(14825, 0, "'u'"), -(14826, 0, "'t'"), -(14827, 0, "'e'"), -(14828, 0, "'r'"), -(14829, 0, "' '"), -(14830, 0, "'h'"), -(14831, 0, "'a'"), -(14832, 0, "'t'"), -(14833, 0, "'e'"), -(14834, 0, "'s'"), -(14835, 0, "' '"), -(14836, 0, "'t'"), -(14837, 0, "'h'"), -(14838, 0, "'i'"), -(14839, 0, "'s'"), -(14840, 0, "'.'"), -(14841, 26, "''"), -(14843, 0, "'S'"), -(14844, 0, "'e'"), -(14845, 0, "'e'"), -(14846, 0, "','"), -(14847, 0, "' '"), -(14848, 1, "''"), -(14848, 0, "'e'"), -(14861, 4, "'t'"), -(14862, 0, "'h'"), -(14863, 0, "'a'"), -(14864, 0, "'t'"), -(14865, 0, "' '"), -(14894, 12, "''"), -(14908, 0, "'I'"), -(14909, 0, "'n'"), -(14910, 0, "' '"), -(14911, 0, "'o'"), -(14912, 0, "'r'"), -(14913, 0, "'d'"), -(14914, 0, "'e'"), -(14915, 0, "'r'"), -(14916, 0, "' '"), -(14917, 0, "'t'"), -(14918, 0, "'o'"), -(14919, 0, "' '"), -(14920, 0, "'f'"), -(14921, 0, "'o'"), -(14922, 0, "'l'"), -(14923, 0, "'l'"), -(14924, 0, "'o'"), -(14925, 0, "'w'"), -(14926, 0, "' '"), -(14927, 0, "'a'"), -(14928, 0, "' '"), -(14929, 0, "'p'"), -(14930, 0, "'o'"), -(14931, 0, "'i'"), -(14932, 0, "'n'"), -(14933, 0, "'t'"), -(14934, 0, "'e'"), -(14935, 0, "'r'"), -(14936, 0, "','"), -(14937, 0, "' '"), -(14938, 19, "'y'"), -(14939, 0, "'o'"), -(14940, 0, "'u'"), -(14941, 0, "'r'"), -(14942, 0, "' '"), -(14943, 0, "'o'"), -(14943, 1, "''"), -(14943, 0, "'c'"), -(14944, 0, "'o'"), -(14945, 0, "'p'"), -(14946, 0, "'u'"), -(14947, 0, "'t'"), -(14948, 0, "'e'"), -(14943, 6, "'c'"), -(14944, 0, "'o'"), -(14945, 0, "'m'"), -(14946, 0, "'p'"), -(14947, 0, "'u'"), -(14948, 0, "'t'"), -(14949, 0, "'e'"), -(14950, 0, "'r'"), -(14951, 0, "' '"), -(14952, 0, "'n'"), -(14953, 0, "'e'"), -(14954, 0, "'e'"), -(14955, 0, "'d'"), -(14956, 0, "'s'"), -(14957, 0, "' '"), -(14958, 0, "'t'"), -(14959, 0, "'o'"), -(14960, 0, "' '"), -(14961, 84, "''"), -(14952, 0, "'u'"), -(14953, 0, "'s'"), -(14954, 0, "'u'"), -(14955, 0, "'a'"), -(14956, 0, "'l'"), -(14957, 0, "'l'"), -(14958, 0, "'y'"), -(14959, 0, "' '"), -(14969, 0, "' '"), -(14970, 0, "'r'"), -(14971, 0, "'e'"), -(14971, 1, "''"), -(14970, 1, "''"), -(14969, 1, "''"), -(14968, 1, "''"), -(14975, 1, "''"), -(14974, 1, "''"), -(14973, 1, "''"), -(14973, 5, "''"), -(14973, 0, "' '"), -(14974, 0, "'d'"), -(14975, 0, "'a'"), -(14976, 0, "'t'"), -(14977, 0, "'a'"), -(14995, 0, "'.'"), -(14996, 0, "' '"), -(14997, 0, "'I'"), -(14998, 0, "'f'"), -(14999, 0, "' '"), -(15000, 0, "'e'"), -(15001, 0, "'v'"), -(15002, 0, "'e'"), -(15003, 0, "'r'"), -(15004, 0, "'y'"), -(15005, 0, "' '"), -(15000, 6, "'n'"), -(15001, 0, "'o'"), -(15002, 0, "'r'"), -(15003, 0, "'m'"), -(15004, 0, "'a'"), -(15005, 0, "'l'"), -(15006, 0, "' '"), -(15007, 0, "'m'"), -(15008, 0, "'e'"), -(15009, 0, "'m'"), -(15010, 0, "'o'"), -(15011, 0, "'r'"), -(15012, 0, "'y'"), -(15013, 0, "' '"), -(15014, 0, "'a'"), -(15015, 0, "'c'"), -(15016, 0, "'c'"), -(15017, 0, "'e'"), -(15018, 0, "'s'"), -(15019, 0, "'s'"), -(15020, 0, "'e'"), -(15021, 0, "'s'"), -(15022, 0, "' '"), -(15023, 0, "'t'"), -(15024, 0, "'o'"), -(15025, 0, "'o'"), -(15026, 0, "'k'"), -(15027, 0, "' '"), -(15028, 0, "'0'"), -(15029, 0, "'.'"), -(15030, 0, "'5'"), -(15031, 0, "' '"), -(15032, 0, "'s'"), -(15033, 0, "'e'"), -(15034, 0, "'c'"), -(15035, 0, "'o'"), -(15036, 0, "'n'"), -(15037, 0, "'d'"), -(15038, 0, "'s'"), -(15039, 0, "','"), -(15000, 27, "'L'"), -(15001, 0, "'1'"), -(15002, 0, "' '"), -(15003, 0, "'c'"), -(15004, 0, "'a'"), -(15005, 0, "'c'"), -(15006, 0, "'h'"), -(15007, 0, "'e'"), -(15008, 0, "' '"), -(15009, 0, "'r'"), -(15010, 0, "'e'"), -(15011, 0, "'a'"), -(15012, 0, "'d'"), -(15013, 0, "'s'"), -(15014, 0, "' '"), -(15015, 0, "'t'"), -(15016, 0, "'o'"), -(15017, 0, "'o'"), -(15018, 0, "'k'"), -(15032, 0, "' '"), -(15033, 0, "'r'"), -(15034, 0, "'e'"), -(15035, 0, "'a'"), -(15036, 0, "'d'"), -(15037, 0, "'i'"), -(15038, 0, "'n'"), -(15039, 0, "'g'"), -(15040, 0, "' '"), -(15041, 0, "'f'"), -(15042, 0, "'r'"), -(15043, 0, "'o'"), -(15044, 0, "'m'"), -(15045, 0, "' '"), -(15046, 0, "'a'"), -(15047, 0, "'m'"), -(15047, 1, "''"), -(15046, 1, "''"), -(15046, 0, "'m'"), -(15047, 0, "'a'"), -(15048, 0, "'i'"), -(15049, 0, "'n'"), -(15050, 0, "' '"), -(15051, 0, "'m'"), -(15052, 0, "'e'"), -(15053, 0, "'m'"), -(15054, 0, "'o'"), -(15055, 0, "'r'"), -(15056, 0, "'y'"), -(15070, 0, "'b'"), -(15071, 0, "'o'"), -(15072, 0, "'u'"), -(15073, 0, "'t'"), -(15074, 0, "' '"), -(15077, 9, "'2'"), -(15075, 1, "''"), -(15132, 0, "'n'"), -(15133, 0, "'n'"), -(15133, 1, "''"), -(15132, 1, "''"), -(14841, 0, "'n'"), -(14842, 0, "'n'"), -(14843, 0, "'T'"), -(14844, 0, "'o'"), -(14845, 0, "' '"), -(14846, 0, "'g'"), -(14847, 0, "'e'"), -(14848, 0, "'t'"), -(14849, 0, "' '"), -(14850, 0, "'t'"), -(14851, 0, "'h'"), -(14852, 0, "'e'"), -(14853, 0, "'r'"), -(14854, 0, "'e'"), -(14855, 0, "','"), -(14856, 0, "' '"), -(14857, 0, "'t'"), -(14858, 0, "'h'"), -(14859, 0, "'e'"), -(14860, 0, "' '"), -(14861, 0, "'c'"), -(14862, 0, "'o'"), -(14863, 0, "'m'"), -(14864, 0, "'p'"), -(14865, 0, "'u'"), -(14866, 0, "'t'"), -(14867, 0, "'e'"), -(14868, 0, "'r'"), -(14869, 0, "' '"), -(14870, 0, "'h'"), -(14871, 0, "'a'"), -(14872, 0, "'s'"), -(14873, 0, "' '"), -(14874, 0, "'t'"), -(14875, 0, "'o'"), -(14876, 0, "' '"), -(14877, 0, "'a'"), -(14878, 0, "'l'"), -(14879, 0, "'l'"), -(14880, 0, "'o'"), -(14881, 0, "'c'"), -(14882, 0, "'a'"), -(14883, 0, "'t'"), -(14884, 0, "'e'"), -(14885, 0, "' '"), -(14886, 0, "'m'"), -(14887, 0, "'e'"), -(14888, 0, "'m'"), -(14889, 0, "'o'"), -(14890, 0, "'r'"), -(14891, 0, "'y'"), -(14892, 0, "' '"), -(14893, 0, "'w'"), -(14894, 0, "'i'"), -(14895, 0, "'t'"), -(14896, 0, "'h'"), -(14893, 4, "''"), -(14892, 1, "''"), -(14892, 0, "','"), -(14893, 0, "' '"), -(14894, 0, "'w'"), -(14895, 0, "'h'"), -(14896, 0, "'i'"), -(14897, 0, "'c'"), -(14898, 0, "'h'"), -(14899, 0, "' '"), -(14900, 0, "'s'"), -(14901, 0, "'i'"), -(14902, 0, "' '"), -(14903, 0, "'s'"), -(14904, 0, "'l'"), -(14900, 5, "'i'"), -(14901, 0, "'s'"), -(14902, 0, "' '"), -(14903, 0, "'s'"), -(14904, 0, "'l'"), -(14905, 0, "'o'"), -(14906, 0, "'w'"), -(14907, 0, "'.'"), -(14908, 0, "' '"), -(14909, 0, "'T'"), -(14910, 0, "'h'"), -(14911, 0, "'e'"), -(14912, 0, "' '"), -(14913, 0, "'g'"), -(14914, 0, "'a'"), -(14915, 0, "'r'"), -(14916, 0, "'b'"), -(14917, 0, "'a'"), -(14918, 0, "'g'"), -(14919, 0, "'e'"), -(14920, 0, "' '"), -(14921, 0, "'c'"), -(14922, 0, "'o'"), -(14923, 0, "'l'"), -(14924, 0, "'l'"), -(14925, 0, "'e'"), -(14926, 0, "'c'"), -(14927, 0, "'t'"), -(14928, 0, "'e'"), -(14929, 0, "'d'"), -(14929, 1, "''"), -(14928, 1, "''"), -(14928, 0, "'o'"), -(14929, 0, "'r'"), -(14930, 0, "' '"), -(14931, 0, "'n'"), -(14932, 0, "'e'"), -(14933, 0, "'e'"), -(14934, 0, "'d'"), -(14935, 0, "'s'"), -(14936, 0, "' '"), -(14937, 0, "'t'"), -(14938, 0, "'o'"), -(14939, 0, "' '"), -(14940, 0, "'u'"), -(14941, 0, "'n'"), -(14942, 0, "'d'"), -(14943, 0, "'e'"), -(14944, 0, "'r'"), -(14945, 0, "'s'"), -(14946, 0, "'t'"), -(14947, 0, "'a'"), -(14948, 0, "'n'"), -(14949, 0, "'d'"), -(14950, 0, "' '"), -(14940, 11, "'t'"), -(14941, 0, "'r'"), -(14942, 0, "'a'"), -(14943, 0, "'c'"), -(14944, 0, "'k'"), -(14945, 0, "' '"), -(14946, 0, "'t'"), -(14947, 0, "'h'"), -(14948, 0, "'a'"), -(14949, 0, "'t'"), -(14950, 0, "' '"), -(14951, 0, "'m'"), -(14952, 0, "'e'"), -(14953, 0, "'m'"), -(14954, 0, "'o'"), -(14955, 0, "'r'"), -(14956, 0, "'y'"), -(14957, 0, "','"), -(14958, 0, "' '"), -(14958, 1, "''"), -(14957, 1, "''"), -(14957, 0, "' '"), -(14958, 0, "'a'"), -(14959, 0, "'n'"), -(14960, 0, "'d'"), -(14961, 0, "' '"), -(14962, 0, "'d'"), -(14963, 0, "'o'"), -(14964, 0, "' '"), -(14965, 0, "'s'"), -(14966, 0, "'o'"), -(14967, 0, "'m'"), -(14968, 0, "'e'"), -(14969, 0, "' '"), -(14970, 0, "'b'"), -(14971, 0, "'o'"), -(14972, 0, "'o'"), -(14973, 0, "'k'"), -(14974, 0, "' '"), -(14974, 1, "''"), -(14974, 0, "'k'"), -(14975, 0, "'e'"), -(14976, 0, "'e'"), -(14977, 0, "'p'"), -(14978, 0, "'i'"), -(14979, 0, "'n'"), -(14980, 0, "'g'"), -(14981, 0, "' '"), -(14982, 0, "'('"), -(14983, 0, "'a'"), -(14984, 0, "'l'"), -(14985, 0, "'s'"), -(14986, 0, "'o'"), -(14987, 0, "' '"), -(14988, 0, "'s'"), -(14989, 0, "'l'"), -(14990, 0, "'o'"), -(14991, 0, "'w'"), -(14992, 0, "')'"), -(14993, 0, "'.'"), -(14995, 0, "'n'"), -(14996, 0, "'A'"), -(14997, 0, "'n'"), -(14998, 0, "'d'"), -(14999, 0, "' '"), -(15000, 0, "'o'"), -(15001, 0, "'n'"), -(15002, 0, "'c'"), -(15003, 0, "'e'"), -(15004, 0, "' '"), -(15005, 0, "'t'"), -(15006, 0, "'h'"), -(15007, 0, "'e'"), -(15008, 0, "' '"), -(15009, 0, "'m'"), -(15010, 0, "'e'"), -(15009, 2, "'d'"), -(15010, 0, "'a'"), -(15011, 0, "'t'"), -(15012, 0, "'a'"), -(15013, 0, "' '"), -(15014, 0, "'i'"), -(15015, 0, "'s'"), -(15016, 0, "' '"), -(15017, 0, "'t'"), -(15018, 0, "'h'"), -(15019, 0, "'e'"), -(15020, 0, "'r'"), -(15021, 0, "'e'"), -(15022, 0, "','"), -(15023, 5, "' '"), -(15024, 0, "'w'"), -(15025, 0, "'e'"), -(15026, 0, "'l'"), -(15027, 0, "'l'"), -(15028, 0, "','"), -(15133, 8, "''"), -(15142, 0, "' '"), -(15143, 0, "'g'"), -(15144, 0, "'o'"), -(15145, 0, "' '"), -(15146, 0, "'a'"), -(15147, 0, "'n'"), -(15148, 0, "'d'"), -(15149, 0, "' '"), -(15150, 0, "'f'"), -(15151, 0, "'e'"), -(15152, 0, "'t'"), -(15153, 0, "'c'"), -(15154, 0, "'h'"), -(15155, 0, "' '"), -(15156, 0, "'t'"), -(15157, 0, "'h'"), -(15158, 0, "'a'"), -(15159, 0, "'t'"), -(15160, 10, "' '"), -(15161, 0, "'d'"), -(15162, 0, "'a'"), -(15163, 0, "'t'"), -(15164, 0, "'a'"), -(15090, 28, "'T'"), -(15091, 0, "'h'"), -(15092, 0, "'e'"), -(15093, 0, "' '"), -(15094, 0, "'d'"), -(15095, 0, "'a'"), -(15096, 0, "'t'"), -(15097, 0, "'a'"), -(15098, 0, "' '"), -(15099, 0, "'a'"), -(15100, 0, "'t'"), -(15101, 0, "' '"), -(15102, 0, "'t'"), -(15103, 0, "'h'"), -(15104, 0, "'e'"), -(15105, 0, "' '"), -(15106, 0, "'e'"), -(15107, 0, "'o'"), -(15107, 1, "''"), -(15106, 1, "''"), -(15106, 0, "'o'"), -(15107, 0, "'t'"), -(15108, 0, "'h'"), -(15109, 0, "'e'"), -(15110, 0, "'r'"), -(15111, 0, "' '"), -(15112, 0, "'e'"), -(15113, 0, "'n'"), -(15114, 0, "'d'"), -(15115, 0, "' '"), -(15116, 0, "'o'"), -(15117, 0, "'f'"), -(15118, 0, "' '"), -(15119, 0, "'a'"), -(15120, 0, "' '"), -(15121, 0, "'p'"), -(15122, 0, "'o'"), -(15123, 0, "'i'"), -(15124, 0, "'n'"), -(15125, 0, "'t'"), -(15126, 0, "'e'"), -(15127, 0, "'r'"), -(15128, 0, "' '"), -(15129, 0, "'c'"), -(15130, 0, "'o'"), -(15131, 0, "'u'"), -(15132, 0, "'l'"), -(15133, 0, "'d'"), -(15134, 0, "' '"), -(15135, 0, "'b'"), -(15136, 0, "'e'"), -(15137, 0, "' '"), -(15138, 0, "'a'"), -(15139, 0, "'n'"), -(15140, 0, "'y'"), -(15141, 0, "'w'"), -(15142, 0, "'h'"), -(15143, 0, "'e'"), -(15144, 0, "'r'"), -(15145, 0, "'e'"), -(15146, 0, "'.'"), -(15147, 0, "' '"), -(15148, 0, "'I'"), -(15149, 0, "'n'"), -(15150, 0, "' '"), -(15151, 0, "'o'"), -(15152, 0, "'r'"), -(15153, 0, "'d'"), -(15154, 0, "'e'"), -(15155, 0, "'r'"), -(15156, 0, "' '"), -(15157, 0, "'t'"), -(15158, 0, "'o'"), -(15159, 0, "' '"), -(15160, 0, "'r'"), -(15161, 0, "'e'"), -(15162, 0, "'a'"), -(15163, 0, "'d'"), -(15160, 4, "'f'"), -(15161, 0, "'e'"), -(15162, 0, "'t'"), -(15163, 0, "'c'"), -(15164, 0, "'h'"), -(15165, 0, "' '"), -(15166, 0, "'t'"), -(15167, 0, "'h'"), -(15168, 0, "'a'"), -(15169, 0, "'t'"), -(15170, 0, "' '"), -(15171, 0, "'d'"), -(15172, 0, "'a'"), -(15173, 0, "'t'"), -(15174, 0, "'a'"), -(15175, 47, "''"), -(15175, 0, "','"), -(15176, 0, "' '"), -(15177, 0, "'y'"), -(15178, 0, "'o'"), -(15179, 0, "'u'"), -(15180, 0, "'r'"), -(15181, 0, "' '"), -(15182, 0, "'c'"), -(15183, 0, "'o'"), -(15184, 0, "'m'"), -(15185, 0, "'p'"), -(15186, 0, "'u'"), -(15187, 0, "'t'"), -(15188, 0, "'e'"), -(15189, 0, "'r'"), -(15190, 0, "' '"), -(15191, 0, "'n'"), -(15192, 0, "'e'"), -(15193, 0, "'e'"), -(15194, 0, "'d'"), -(15195, 0, "'s'"), -(15196, 0, "' '"), -(15197, 0, "'t'"), -(15198, 0, "'o'"), -(15199, 0, "' '"), -(15200, 0, "'r'"), -(15201, 0, "'e'"), -(15202, 0, "'a'"), -(15203, 0, "'d'"), -(15204, 0, "' '"), -(15205, 0, "'f'"), -(15206, 0, "'r'"), -(15207, 0, "'o'"), -(15208, 0, "'m'"), -(15210, 5, "''"), -(15222, 0, "' '"), -(15223, 0, "'I'"), -(15224, 0, "'n'"), -(15225, 0, "' '"), -(15223, 3, "''"), -(15223, 0, "'I'"), -(15224, 0, "'f'"), -(15225, 0, "' '"), -(15225, 1, "''"), -(15224, 1, "''"), -(15224, 0, "'n'"), -(15225, 0, "' '"), -(15226, 0, "'c'"), -(15227, 0, "'o'"), -(15228, 0, "'m'"), -(15229, 0, "'p'"), -(15230, 0, "'u'"), -(15231, 0, "'t'"), -(15232, 0, "'e'"), -(15233, 0, "'r'"), -(15234, 0, "' '"), -(15235, 0, "'t'"), -(15236, 0, "'i'"), -(15237, 0, "'m'"), -(15238, 0, "'e'"), -(15239, 0, "' '"), -(15240, 0, "'i'"), -(15241, 0, "'f'"), -(15241, 1, "''"), -(15240, 1, "''"), -(15239, 1, "''"), -(15239, 0, "','"), -(15240, 0, "' '"), -(15241, 0, "'i'"), -(15242, 0, "'f'"), -(15243, 3, "''"), -(15258, 5, "' '"), -(15259, 0, "'t'"), -(15260, 0, "'a'"), -(15261, 0, "'k'"), -(15262, 0, "'e'"), -(14817, 3, "'C'"), -(14817, 1, "''"), -(14817, 0, "'Y'"), -(14818, 0, "'o'"), -(14819, 0, "'u'"), -(14820, 0, "'r'"), -(14817, 0, "'*'"), -(14843, 0, "'*'"), -(14845, 0, "'n'"), -(14845, 0, "'n'"), -(14846, 0, "'A'"), -(14847, 0, "'l'"), -(14848, 0, "'l'"), -(14849, 0, "' '"), -(14850, 0, "'t'"), -(14851, 0, "'h'"), -(14852, 0, "'e'"), -(14853, 0, "' '"), -(14854, 0, "'d'"), -(14855, 0, "'a'"), -(14856, 0, "'t'"), -(14857, 0, "'a'"), -(14858, 0, "' '"), -(14859, 0, "'i'"), -(14860, 0, "'s'"), -(14861, 0, "' '"), -(14862, 0, "'s'"), -(14863, 0, "'e'"), -(14864, 0, "'p'"), -(14865, 0, "'a'"), -(14866, 0, "'r'"), -(14867, 0, "'a'"), -(14868, 0, "'t'"), -(14869, 0, "'e'"), -(14870, 0, "'d'"), -(14871, 0, "' '"), -(14872, 0, "'b'"), -(14873, 0, "'y'"), -(14874, 0, "' '"), -(14875, 0, "'p'"), -(14876, 0, "'o'"), -(14877, 0, "'i'"), -(14878, 0, "'n'"), -(14879, 0, "'t'"), -(14880, 0, "'e'"), -(14881, 0, "'r'"), -(14882, 0, "'s'"), -(14883, 0, "'.'"), -(14889, 9, "'p'"), -(14890, 0, "'u'"), -(14891, 0, "'t'"), -(14892, 0, "' '"), -(14893, 0, "'d'"), -(14894, 0, "'a'"), -(14895, 0, "'t'"), -(14896, 0, "'a'"), -(14897, 0, "' '"), -(14898, 0, "'i'"), -(14899, 0, "'n'"), -(14900, 0, "'t'"), -(14901, 0, "'o'"), -(14902, 0, "' '"), -(14903, 0, "'t'"), -(14904, 0, "'h'"), -(14905, 0, "'e'"), -(14906, 0, "'s'"), -(14907, 0, "'e'"), -(14908, 0, "' '"), -(14909, 0, "'b'"), -(14910, 0, "'o'"), -(14911, 0, "'x'"), -(14912, 0, "'e'"), -(14913, 0, "'s'"), -(14902, 0, "' '"), -(14903, 0, "'a'"), -(14904, 0, "'l'"), -(14905, 0, "'l'"), -(14955, 1, "''"), -(14955, 0, "'.'"), -(14956, 0, "' '"), -(14957, 0, "'T'"), -(14958, 0, "'h'"), -(14959, 0, "'i'"), -(14960, 0, "'s'"), -(14961, 6, "''"), -(14970, 0, "' '"), -(14971, 0, "'T'"), -(14972, 0, "'h'"), -(14973, 0, "'e'"), -(14974, 0, "'n'"), -(14976, 1, "''"), -(14976, 0, "'t'"), -(15007, 0, "'k'"), -(15008, 0, "'e'"), -(15009, 0, "'e'"), -(15010, 0, "'p'"), -(15011, 0, "' '"), -(15017, 0, "' '"), -(15018, 0, "'o'"), -(15019, 0, "'f'"), -(15032, 25, "''"), -(15032, 0, "' '"), -(15075, 64, "''"), -(15075, 0, "'w'"), -(15076, 0, "'e'"), -(15077, 0, "' '"), -(15078, 0, "'n'"), -(15079, 0, "'e'"), -(15080, 0, "'e'"), -(15081, 0, "'d'"), -(15082, 0, "' '"), -(15083, 0, "'t'"), -(15084, 0, "'o'"), -(15085, 0, "' '"), -(15086, 0, "'r'"), -(15087, 0, "'e'"), -(15088, 0, "'a'"), -(15089, 0, "'d'"), -(15090, 0, "' '"), -(15091, 0, "'i'"), -(15092, 0, "'t'"), -(15151, 0, "'*'"), -(15143, 0, "'*'"), -(15155, 30, "'Y'"), -(15168, 0, "' '"), -(15169, 0, "'w'"), -(15170, 0, "'i'"), -(15171, 0, "'l'"), -(15172, 0, "'l'"), -(15173, 0, "'u'"), -(15174, 0, "'s'"), -(15175, 0, "'u'"), -(15176, 0, "'a'"), -(15177, 0, "'l'"), -(15178, 0, "'l'"), -(15179, 0, "'y'"), -(15179, 1, "''"), -(15178, 1, "''"), -(15177, 1, "''"), -(15176, 1, "''"), -(15175, 1, "''"), -(15174, 1, "''"), -(15173, 1, "''"), -(15173, 0, "' '"), -(15155, 19, "'T'"), -(15156, 0, "'o'"), -(15157, 0, "' '"), -(15158, 0, "'r'"), -(15159, 0, "'e'"), -(15160, 0, "'a'"), -(15161, 0, "'d'"), -(15162, 0, "' '"), -(15163, 0, "'i'"), -(15164, 0, "'t'"), -(15165, 0, "','"), -(15166, 0, "' '"), -(15167, 0, "'y'"), -(15168, 0, "'o'"), -(15169, 0, "'u'"), -(15170, 0, "'r'"), -(15171, 0, "' '"), -(15172, 0, "'c'"), -(15173, 0, "'o'"), -(15174, 0, "'m'"), -(15175, 0, "'p'"), -(15176, 0, "'u'"), -(15177, 0, "'t'"), -(15178, 0, "'e'"), -(15179, 0, "'r'"), -(15180, 0, "' '"), -(15181, 0, "'u'"), -(15182, 0, "'s'"), -(15183, 0, "'u'"), -(15184, 0, "'a'"), -(15185, 0, "'l'"), -(15186, 0, "'l'"), -(15187, 0, "'y'"), -(15197, 0, "' '"), -(15198, 0, "'g'"), -(15199, 0, "'o'"), -(15200, 0, "' '"), -(15201, 0, "'f'"), -(15202, 0, "'e'"), -(15203, 0, "'t'"), -(15204, 0, "'c'"), -(15205, 0, "'h'"), -(15206, 0, "' '"), -(15207, 0, "'i'"), -(15208, 0, "'t'"), -(15209, 5, "''"), -(15226, 0, "','"), -(15227, 0, "' '"), -(15228, 0, "'w'"), -(15229, 0, "'h'"), -(15230, 0, "'i'"), -(15231, 0, "'c'"), -(15232, 0, "'h'"), -(15233, 0, "' '"), -(15234, 0, "'i'"), -(15235, 0, "'s'"), -(15236, 0, "' '"), -(15237, 0, "'a'"), -(15237, 1, "''"), -(15237, 0, "'a'"), -(15238, 0, "'l'"), -(15239, 0, "'s'"), -(15240, 0, "'o'"), -(15241, 0, "' '"), -(15242, 0, "'s'"), -(15243, 0, "'l'"), -(15244, 0, "'o'"), -(15245, 0, "'w'"), -(15401, 0, "'n'"), -(15402, 0, "'n'"), -(15403, 0, "'W'"), -(15404, 0, "'e'"), -(15405, 0, "' '"), -(15406, 0, "'c'"), -(15407, 0, "'a'"), -(15408, 0, "'n'"), -(15409, 0, "'''"), -(15410, 0, "'t'"), -(15411, 0, "' '"), -(15412, 0, "'d'"), -(15413, 0, "'o'"), -(15414, 0, "' '"), -(15415, 0, "'b'"), -(15416, 0, "'e'"), -(15417, 0, "'t'"), -(15418, 0, "'t'"), -(15419, 0, "'e'"), -(15420, 0, "'r'"), -(15421, 0, "' '"), -(15422, 0, "'i'"), -(15423, 0, "'n'"), -(15424, 0, "' '"), -(15425, 0, "'j'"), -(15426, 0, "'a'"), -(15427, 0, "'v'"), -(15428, 0, "'a'"), -(15411, 18, "' '"), -(15412, 0, "'f'"), -(15413, 0, "'i'"), -(15414, 0, "'x'"), -(15415, 0, "' '"), -(15416, 0, "'t'"), -(15417, 0, "'h'"), -(15418, 0, "'i'"), -(15419, 0, "'s'"), -(15420, 0, "' '"), -(15421, 0, "'i'"), -(15422, 0, "'n'"), -(15423, 0, "' '"), -(15424, 0, "'j'"), -(15425, 0, "'a'"), -(15426, 0, "'v'"), -(15427, 0, "'a'"), -(15428, 0, "'s'"), -(15429, 0, "'c'"), -(15430, 0, "'r'"), -(15431, 0, "'i'"), -(15432, 0, "'p'"), -(15433, 0, "'t'"), -(15434, 0, "'.'"), -(15435, 0, "' '"), -(15436, 0, "'I'"), -(15437, 0, "'f'"), -(15438, 0, "' '"), -(15439, 0, "'w'"), -(15440, 0, "'e'"), -(15441, 0, "' '"), -(15442, 0, "'m'"), -(15443, 0, "'a'"), -(15444, 0, "'k'"), -(15445, 0, "'e'"), -(15446, 0, "' '"), -(15447, 0, "'o'"), -(15448, 0, "'u'"), -(15449, 0, "'r'"), -(15450, 0, "' '"), -(15451, 0, "'d'"), -(15452, 0, "'a'"), -(15453, 0, "'t'"), -(15454, 0, "'a'"), -(15455, 0, "' '"), -(15456, 0, "'s'"), -(15457, 0, "'t'"), -(15458, 0, "'r'"), -(15459, 0, "'u'"), -(15460, 0, "'c'"), -(15461, 0, "'t'"), -(15462, 0, "'u'"), -(15463, 0, "'r'"), -(15464, 0, "'e'"), -(15465, 0, "'s'"), -(15466, 0, "' '"), -(15467, 0, "'m'"), -(15468, 0, "'o'"), -(15469, 0, "'r'"), -(15470, 0, "'e'"), -(15471, 0, "' '"), -(15472, 0, "'c'"), -(15473, 0, "'o'"), -(15474, 0, "'m'"), -(15475, 0, "'p'"), -(15476, 0, "'l'"), -(15477, 0, "'e'"), -(15478, 0, "'x'"), -(15479, 0, "','"), -(15480, 0, "' '"), -(15481, 0, "'w'"), -(15482, 0, "'e'"), -(15483, 0, "' '"), -(15484, 0, "'r'"), -(15485, 0, "'u'"), -(15486, 0, "'n'"), -(15487, 0, "' '"), -(15488, 0, "'i'"), -(15489, 0, "'n'"), -(15490, 0, "'t'"), -(15491, 0, "'o'"), -(15492, 0, "' '"), -(15493, 0, "'t'"), -(15494, 0, "'h'"), -(15495, 0, "'e'"), -(15496, 0, "' '"), -(15497, 0, "'s'"), -(15498, 0, "'a'"), -(15499, 0, "'m'"), -(15500, 0, "'e'"), -(15501, 0, "' '"), -(15502, 0, "'l'"), -(15503, 0, "'i'"), -(15504, 0, "'m'"), -(15505, 0, "'i'"), -(15506, 0, "'t'"), -(15507, 0, "'a'"), -(15508, 0, "'t'"), -(15509, 0, "'i'"), -(15510, 0, "'o'"), -(15511, 0, "'n'"), -(15512, 0, "'s'"), -(15513, 0, "' '"), -(15514, 0, "'A'"), -(15515, 0, "'u'"), -(15516, 0, "'t'"), -(15517, 0, "'o'"), -(15518, 0, "'m'"), -(15519, 0, "'e'"), -(15520, 0, "'r'"), -(15521, 0, "'g'"), -(15522, 0, "'e'"), -(15523, 0, "' '"), -(15524, 0, "'h'"), -(15525, 0, "'a'"), -(15526, 0, "'s'"), -(15527, 0, "' '"), -(15528, 0, "'w'"), -(15529, 0, "'i'"), -(15530, 0, "'t'"), -(15531, 0, "'h'"), -(15532, 0, "' '"), -(15533, 0, "'i'"), -(15534, 0, "'m'"), -(15535, 0, "'m'"), -(15536, 0, "'u'"), -(15537, 0, "'t'"), -(15538, 0, "'a'"), -(15539, 0, "'b'"), -(15540, 0, "'l'"), -(15541, 0, "'e'"), -(15542, 0, "'j'"), -(15543, 0, "'s'"), -(15544, 0, "' '"), -(15545, 0, "'-'"), -(15546, 0, "' '"), -(15547, 0, "'w'"), -(15548, 0, "'h'"), -(15549, 0, "'i'"), -(15550, 0, "'c'"), -(15551, 0, "'h'"), -(15552, 0, "' '"), -(15553, 0, "'i'"), -(15554, 0, "'s'"), -(15555, 0, "','"), -(15556, 0, "' '"), -(15557, 0, "'t'"), -(15558, 0, "'h'"), -(15559, 0, "'e'"), -(15560, 0, "' '"), -(15557, 4, "'i'"), -(15558, 0, "'f'"), -(15559, 0, "' '"), -(15560, 0, "'w'"), -(15561, 0, "'e'"), -(15562, 0, "' '"), -(15563, 0, "'m'"), -(15564, 0, "'a'"), -(15565, 0, "'k'"), -(15566, 0, "'e'"), -(15567, 0, "' '"), -(15568, 0, "'o'"), -(15569, 0, "'u'"), -(15570, 0, "'r'"), -(15571, 0, "' '"), -(15572, 0, "'d'"), -(15573, 0, "'a'"), -(15574, 0, "'t'"), -(15575, 0, "'a'"), -(15576, 0, "' '"), -(15577, 0, "'s'"), -(15578, 0, "'t'"), -(15579, 0, "'r'"), -(15580, 0, "'u'"), -(15581, 0, "'c'"), -(15582, 0, "'t'"), -(15583, 0, "'u'"), -(15584, 0, "'r'"), -(15585, 0, "'e'"), -(15586, 0, "'s'"), -(15587, 0, "' '"), -(15588, 0, "'o'"), -(15588, 1, "''"), -(15588, 0, "'c'"), -(15589, 0, "'o'"), -(15590, 0, "'m'"), -(15591, 0, "'p'"), -(15592, 0, "'l'"), -(15593, 0, "'e'"), -(15594, 0, "','"), -(15594, 1, "''"), -(15594, 0, "'x'"), -(15595, 0, "','"), -(15596, 0, "' '"), -(15403, 194, "'We can't fix this in javascript. If we make our data structures more complex, we run into the same limitations Automerge has with immutablejs - which is, if we make our data structures complex,'"), -(15402, 0, "'n'"), -(15402, 0, "'n'"), -(15033, 1, "''"), -(15032, 1, "''"), -(15032, 0, "','"), -(15033, 0, "' '"), -(15034, 0, "'w'"), -(15035, 0, "'h'"), -(15036, 0, "'i'"), -(15037, 0, "'c'"), -(15038, 0, "'h'"), -(15039, 0, "' '"), -(15040, 0, "'i'"), -(15041, 0, "'s'"), -(15042, 0, "' '"), -(15052, 1, "''"), -(15055, 5, "'O'"), -(15081, 0, "'''"), -(15082, 0, "'r'"), -(15083, 0, "'e'"), -(15084, 0, "' '"), -(15085, 0, "'g'"), -(15086, 0, "'o'"), -(15087, 0, "'i'"), -(15088, 0, "'n'"), -(15089, 0, "'g'"), -(15090, 0, "' '"), -(15091, 0, "'t'"), -(15092, 0, "'o'"), -(15055, 25, "'L'"), -(15056, 0, "'a'"), -(15057, 0, "'t'"), -(15058, 0, "'e'"), -(15059, 0, "'r'"), -(15060, 0, "' '"), -(15061, 0, "'w'"), -(15062, 0, "'e'"), -(15062, 1, "''"), -(15089, 2, "'t'"), -(15090, 0, "'h'"), -(15091, 0, "'a'"), -(15092, 0, "'t'"), -(15093, 0, "' '"), -(15094, 0, "'d'"), -(15095, 0, "'a'"), -(15096, 0, "'t'"), -(15097, 0, "'a'"), -(15100, 60, "''"), -(15099, 1, "''"), -(15099, 0, "','"), -(15099, 1, "''"), -(15098, 1, "''"), -(15098, 0, "','"), -(15099, 0, "' '"), -(15100, 0, "'a'"), -(15101, 0, "'n'"), -(15102, 0, "'d'"), -(15103, 0, "' '"), -(15104, 0, "'i'"), -(15105, 0, "'t'"), -(15106, 0, "' '"), -(15107, 0, "'c'"), -(15108, 0, "'o'"), -(15109, 0, "'u'"), -(15110, 0, "'l'"), -(15111, 0, "'d'"), -(15112, 0, "' '"), -(15113, 0, "'b'"), -(15114, 0, "'e'"), -(15115, 0, "' '"), -(15116, 0, "'*'"), -(15117, 0, "'a'"), -(15118, 0, "'n'"), -(15119, 0, "'y'"), -(15120, 0, "'w'"), -(15121, 0, "'h'"), -(15122, 0, "'e'"), -(15123, 0, "'r'"), -(15124, 0, "'e'"), -(15125, 0, "'*'"), -(15126, 0, "'.'"), -(15127, 0, "' '"), -(15374, 0, "' '"), -(15375, 0, "'I'"), -(15376, 0, "'t'"), -(15377, 0, "'s'"), -(15378, 0, "' '"), -(15379, 0, "'l'"), -(15380, 0, "'i'"), -(15381, 0, "'k'"), -(15382, 0, "'e'"), -(15383, 0, "' '"), -(15384, 0, "'i'"), -(15385, 0, "'f'"), -(15386, 0, "' '"), -(15387, 0, "'y'"), -(15388, 0, "'o'"), -(15389, 0, "'u'"), -(15390, 0, "'r'"), -(15391, 0, "' '"), -(15392, 0, "'s'"), -(15393, 0, "'h'"), -(15394, 0, "'o'"), -(15395, 0, "'p'"), -(15396, 0, "'p'"), -(15397, 0, "'i'"), -(15398, 0, "'n'"), -(15399, 0, "'g'"), -(15400, 0, "' '"), -(15401, 0, "'l'"), -(15402, 0, "'i'"), -(15403, 0, "'s'"), -(15404, 0, "'t'"), -(15390, 1, "''"), -(15390, 0, "' '"), -(15391, 0, "'w'"), -(15392, 0, "'r'"), -(15393, 0, "'o'"), -(15394, 0, "'t'"), -(15395, 0, "'e'"), -(15396, 0, "' '"), -(15397, 0, "'a'"), -(15412, 0, "','"), -(15413, 0, "' '"), -(15414, 0, "'b'"), -(15415, 0, "'u'"), -(15416, 0, "'t'"), -(15417, 0, "' '"), -(15418, 0, "'i'"), -(15419, 0, "'n'"), -(15420, 0, "'s'"), -(15421, 0, "'t'"), -(15422, 0, "'e'"), -(15423, 0, "'a'"), -(15424, 0, "'d'"), -(15425, 0, "' '"), -(15426, 0, "'o'"), -(15427, 0, "'f'"), -(15428, 0, "' '"), -(15429, 0, "'w'"), -(15430, 0, "'r'"), -(15431, 0, "'i'"), -(15432, 0, "'t'"), -(15433, 0, "'i'"), -(15434, 0, "'n'"), -(15435, 0, "'g'"), -(15436, 0, "' '"), -(15437, 0, "'''"), -(15438, 0, "'m'"), -(15439, 0, "'i'"), -(15440, 0, "'l'"), -(15440, 1, "''"), -(15439, 1, "''"), -(15438, 1, "''"), -(15438, 0, "'i'"), -(15438, 1, "''"), -(15438, 0, "'M'"), -(15439, 0, "'i'"), -(15440, 0, "'l'"), -(15441, 0, "'i'"), -(15441, 1, "''"), -(15441, 0, "'k'"), -(15442, 0, "'''"), -(15443, 0, "' '"), -(15444, 0, "'y'"), -(15445, 0, "'o'"), -(15446, 0, "'u'"), -(15447, 0, "' '"), -(15448, 0, "'h'"), -(15449, 0, "'a'"), -(15450, 0, "'d'"), -(15451, 0, "' '"), -(15452, 0, "'a'"), -(15453, 0, "' '"), -(15454, 0, "'l'"), -(15455, 0, "'i'"), -(15456, 0, "'t'"), -(15457, 0, "'t'"), -(15458, 0, "'l'"), -(15459, 0, "'e'"), -(15460, 0, "' '"), -(15461, 0, "'s'"), -(15462, 0, "'c'"), -(15463, 0, "'a'"), -(15464, 0, "'v'"), -(15465, 0, "'e'"), -(15466, 0, "'n'"), -(15467, 0, "'g'"), -(15468, 0, "'e'"), -(15469, 0, "'r'"), -(15470, 0, "' '"), -(15471, 0, "'h'"), -(15472, 0, "'u'"), -(15473, 0, "'n'"), -(15474, 0, "'t'"), -(15437, 0, "'e'"), -(15438, 0, "'a'"), -(15439, 0, "'c'"), -(15440, 0, "'h'"), -(15441, 0, "' '"), -(15442, 0, "'i'"), -(15443, 0, "'t'"), -(15444, 0, "'e'"), -(15445, 0, "'m'"), -(15446, 0, "','"), -(15447, 0, "' '"), -(15486, 0, "' '"), -(15487, 0, "'d'"), -(15488, 0, "'e'"), -(15489, 0, "'s'"), -(15490, 0, "'c'"), -(15491, 0, "'r'"), -(15492, 0, "'i'"), -(15493, 0, "'b'"), -(15494, 0, "'i'"), -(15495, 0, "'n'"), -(15496, 0, "'g'"), -(15497, 0, "' '"), -(15498, 0, "'w'"), -(15499, 0, "'h'"), -(15500, 0, "'e'"), -(15501, 0, "'r'"), -(15502, 0, "'e'"), -(15503, 0, "' '"), -(15504, 0, "'i'"), -(15505, 0, "'n'"), -(15506, 0, "' '"), -(15507, 0, "'y'"), -(15508, 0, "'o'"), -(15509, 0, "'u'"), -(15510, 0, "'r'"), -(15511, 0, "' '"), -(15512, 0, "'h'"), -(15513, 0, "'o'"), -(15514, 0, "'u'"), -(15515, 0, "'s'"), -(15516, 0, "'e'"), -(15517, 0, "' '"), -(15518, 0, "'t'"), -(15519, 0, "'h'"), -(15520, 0, "'e'"), -(15521, 0, "' '"), -(15522, 0, "'n'"), -(15523, 0, "'o'"), -(15524, 0, "'t'"), -(15525, 0, "'e'"), -(15526, 0, "' '"), -(15527, 0, "'w'"), -(15528, 0, "'i'"), -(15529, 0, "'t'"), -(15530, 0, "'h'"), -(15531, 0, "' '"), -(15532, 0, "'''"), -(15533, 0, "'m'"), -(15534, 0, "'i'"), -(15535, 0, "'l'"), -(15536, 0, "'k'"), -(15537, 0, "'''"), -(15538, 0, "' '"), -(15539, 0, "'o'"), -(15540, 0, "'n'"), -(15541, 0, "' '"), -(15542, 0, "'i'"), -(15543, 0, "'t'"), -(15544, 0, "' '"), -(15545, 0, "'i'"), -(15546, 0, "'s'"), -(15547, 0, "' '"), -(15548, 0, "'h'"), -(15549, 0, "'i'"), -(15550, 0, "'d'"), -(15551, 0, "'d'"), -(15552, 0, "'e'"), -(15553, 0, "'n'"), -(15554, 0, "'.'"), -(15533, 1, "''"), -(15533, 0, "'M'"), -(15555, 0, "' '"), -(15556, 0, "'R'"), -(15557, 0, "'e'"), -(15558, 0, "'a'"), -(15559, 0, "'d'"), -(15560, 0, "'i'"), -(15561, 0, "'n'"), -(15562, 0, "'g'"), -(15563, 0, "' '"), -(15564, 0, "'t'"), -(15565, 0, "'h'"), -(15566, 0, "'e'"), -(15567, 0, "' '"), -(15568, 0, "'w'"), -(15569, 0, "'h'"), -(15570, 0, "'o'"), -(15571, 0, "'l'"), -(15572, 0, "'e'"), -(15573, 0, "' '"), -(15574, 0, "'l'"), -(15575, 0, "'i'"), -(15576, 0, "'s'"), -(15577, 0, "'t'"), -(15578, 0, "' '"), -(15579, 0, "'w'"), -(15580, 0, "'o'"), -(15581, 0, "'u'"), -(15582, 0, "'l'"), -(15583, 0, "'d'"), -(15584, 0, "' '"), -(15585, 0, "'t'"), -(15586, 0, "'a'"), -(15587, 0, "'k'"), -(15588, 0, "'e'"), -(15589, 0, "' '"), -(15590, 0, "'a'"), -(15591, 0, "'g'"), -(15592, 0, "'e'"), -(15593, 0, "'s'"), -(15594, 0, "'.'"), -(15596, 1, "''"), -(15595, 1, "''"), -(15596, 0, "'n'"), -(15596, 0, "'n'"), -(15597, 0, "'I'"), -(15598, 0, "'d'"), -(15599, 0, "'e'"), -(15600, 0, "'a'"), -(15601, 0, "'l'"), -(15602, 0, "'l'"), -(15603, 0, "'y'"), -(15604, 0, "' '"), -(15597, 8, "'T'"), -(15598, 0, "'o'"), -(15599, 0, "' '"), -(15600, 0, "'r'"), -(15601, 0, "'u'"), -(15602, 0, "'n'"), -(15603, 0, "' '"), -(15604, 0, "'f'"), -(15605, 0, "'a'"), -(15606, 0, "'s'"), -(15607, 0, "'t'"), -(15608, 0, "'e'"), -(15609, 0, "'r'"), -(15610, 0, "','"), -(15611, 0, "' '"), -(15612, 0, "'w'"), -(15613, 0, "'e'"), -(15614, 0, "' '"), -(15615, 0, "'n'"), -(15616, 0, "'e'"), -(15617, 0, "'e'"), -(15618, 0, "'d'"), -(15619, 0, "' '"), -(15620, 0, "'t'"), -(15621, 0, "'o'"), -(15622, 0, "' '"), -(15623, 0, "'m'"), -(15624, 0, "'o'"), -(15625, 0, "'v'"), -(15626, 0, "'e'"), -(15627, 0, "' '"), -(15628, 0, "'a'"), -(15629, 0, "'l'"), -(15630, 0, "'l'"), -(15631, 0, "' '"), -(15632, 0, "'t'"), -(15633, 0, "'h'"), -(15634, 0, "'e'"), -(15635, 0, "' '"), -(15636, 0, "'f'"), -(15637, 0, "'i'"), -(15638, 0, "'e'"), -(15639, 0, "'l'"), -(15640, 0, "'d'"), -(15641, 0, "'s'"), -(15642, 0, "' '"), -(15643, 0, "'t'"), -(15644, 0, "'o'"), -(15645, 0, "'g'"), -(15646, 0, "'e'"), -(15647, 0, "'t'"), -(15648, 0, "'h'"), -(15649, 0, "'e'"), -(15650, 0, "'r'"), -(15651, 0, "'.'"), -(15652, 0, "' '"), -(15653, 0, "'A'"), -(15654, 0, "'n'"), -(15655, 0, "'d'"), -(15656, 0, "' '"), -(15657, 0, "'w'"), -(15658, 0, "'e'"), -(15659, 0, "' '"), -(15660, 0, "'n'"), -(15600, 4, "'g'"), -(15601, 0, "'o'"), -(15602, 0, "' '"), -(15634, 7, "' '"), -(15635, 0, "'d'"), -(15636, 0, "'a'"), -(15637, 0, "'t'"), -(15638, 0, "'a'"), -(15639, 0, "' '"), -(15640, 0, "'t'"), -(15641, 0, "'o'"), -(15641, 1, "''"), -(15640, 1, "''"), -(15639, 1, "''"), -(15658, 0, "'e'"), -(15659, 0, "'e'"), -(15660, 0, "'d'"), -(15661, 0, "' '"), -(15662, 0, "'t'"), -(15663, 0, "'o'"), -(15664, 0, "' '"), -(15665, 0, "'m'"), -(15666, 0, "'o'"), -(15667, 0, "'v'"), -(15668, 0, "'e'"), -(15669, 0, "' '"), -(15670, 0, "'a'"), -(15671, 0, "'w'"), -(15672, 0, "'a'"), -(15673, 0, "'y'"), -(15674, 0, "' '"), -(15675, 0, "'f'"), -(15676, 0, "'r'"), -(15677, 0, "'o'"), -(15678, 0, "'m'"), -(15679, 0, "' '"), -(15680, 0, "'l'"), -(15681, 0, "'i'"), -(15682, 0, "'n'"), -(15683, 0, "'k'"), -(15684, 0, "'e'"), -(15685, 0, "'d'"), -(15686, 0, "' '"), -(15687, 0, "'l'"), -(15688, 0, "'i'"), -(15689, 0, "'s'"), -(15690, 0, "'t'"), -(15691, 0, "'s'"), -(15692, 0, "' '"), -(15693, 0, "'-'"), -(15694, 0, "' '"), -(15695, 0, "'a'"), -(15696, 0, "'s'"), -(15697, 0, "' '"), -(15698, 0, "'c'"), -(15699, 0, "'l'"), -(15700, 0, "'e'"), -(15701, 0, "'v'"), -(15702, 0, "'e'"), -(15703, 0, "'r'"), -(15704, 0, "' '"), -(15705, 0, "'a'"), -(15706, 0, "'s'"), -(15707, 0, "' '"), -(15708, 0, "'t'"), -(15709, 0, "'h'"), -(15710, 0, "'e'"), -(15711, 0, "'y'"), -(15712, 0, "' '"), -(15713, 0, "'a'"), -(15714, 0, "'r'"), -(15715, 0, "'e'"), -(15716, 0, "','"), -(15717, 0, "' '"), -(15718, 0, "'t'"), -(15719, 0, "'h'"), -(15720, 0, "'e'"), -(15721, 0, "' '"), -(15722, 0, "'u'"), -(15723, 0, "'s'"), -(15724, 0, "'e'"), -(15725, 0, "'r'"), -(15726, 0, "' '"), -(15727, 0, "'*'"), -(15728, 0, "'d'"), -(15729, 0, "'o'"), -(15730, 0, "'e'"), -(15731, 0, "'s'"), -(15732, 0, "'*'"), -(15733, 0, "' '"), -(15734, 0, "'s'"), -(15735, 0, "'o'"), -(15736, 0, "'m'"), -(15737, 0, "'e'"), -(15738, 0, "'t'"), -(15739, 0, "'i'"), -(15740, 0, "'m'"), -(15741, 0, "'e'"), -(15742, 0, "'s'"), -(15743, 0, "' '"), -(15744, 0, "'h'"), -(15745, 0, "'o'"), -(15746, 0, "'p'"), -(15747, 0, "' '"), -(15748, 0, "'a'"), -(15749, 0, "'r'"), -(15750, 0, "'o'"), -(15751, 0, "'u'"), -(15752, 0, "'n'"), -(15753, 0, "'d'"), -(15754, 0, "' '"), -(15755, 0, "'t'"), -(15756, 0, "'h'"), -(15757, 0, "'e'"), -(15758, 0, "' '"), -(15759, 0, "'d'"), -(15760, 0, "'o'"), -(15761, 0, "'c'"), -(15762, 0, "'u'"), -(15763, 0, "'m'"), -(15764, 0, "'e'"), -(15765, 0, "'n'"), -(15766, 0, "'t'"), -(15767, 0, "' '"), -(15768, 0, "'a'"), -(15769, 0, "'n'"), -(15770, 0, "'d'"), -(15771, 0, "' '"), -(15772, 0, "'w'"), -(15773, 0, "'e'"), -(15774, 0, "' '"), -(15775, 0, "'d'"), -(15776, 0, "'o'"), -(15777, 0, "'n'"), -(15778, 0, "'''"), -(15779, 0, "'t'"), -(15780, 0, "' '"), -(15781, 0, "'w'"), -(15782, 0, "'a'"), -(15783, 0, "'n'"), -(15784, 0, "'t'"), -(15785, 0, "' '"), -(15786, 0, "'t'"), -(15787, 0, "'o'"), -(15788, 0, "' '"), -(15789, 0, "'e'"), -(15790, 0, "'v'"), -(15791, 0, "'e'"), -(15792, 0, "'r'"), -(15793, 0, "' '"), -(15794, 0, "'s'"), -(15795, 0, "'c'"), -(15796, 0, "'a'"), -(15797, 0, "'n'"), -(15798, 0, "' '"), -(15789, 0, "'*'"), -(15794, 0, "'*'"), -(15795, 0, "' '"), -(15796, 0, "'d'"), -(15797, 0, "'o'"), -(15798, 0, "' '"), -(15799, 0, "'t'"), -(15800, 0, "'h'"), -(15801, 0, "'o'"), -(15802, 0, "'s'"), -(15803, 0, "'e'"), -(15809, 1, "''"), -(15809, 0, "'s'"), -(15810, 0, "'.'"), -(15857, 24, "''"), -(15857, 0, "'f'"), -(15858, 0, "'a'"), -(15859, 0, "'n'"), -(15860, 0, "'c'"), -(15861, 0, "'y'"), -(15862, 0, "' '"), -(15863, 0, "'d'"), -(15864, 0, "'a'"), -(15865, 0, "'t'"), -(15866, 0, "'a'"), -(15867, 0, "' '"), -(15868, 0, "'s'"), -(15869, 0, "'t'"), -(15870, 0, "'r'"), -(15871, 0, "'u'"), -(15872, 0, "'c'"), -(15873, 0, "'t'"), -(15874, 0, "'u'"), -(15875, 0, "'r'"), -(15876, 0, "'e'"), -(15877, 0, "'s'"), -(15878, 0, "' '"), -(15879, 0, "'i'"), -(15880, 0, "'n'"), -(15881, 0, "' '"), -(15882, 0, "'j'"), -(15883, 0, "'a'"), -(15884, 0, "'v'"), -(15885, 0, "'a'"), -(15886, 0, "'s'"), -(15887, 0, "'c'"), -(15888, 0, "'r'"), -(15889, 0, "'i'"), -(15890, 0, "'p'"), -(15891, 0, "'t'"), -(15892, 0, "','"), -(15893, 0, "' '"), -(15894, 0, "'t'"), -(15895, 0, "'h'"), -(15896, 0, "'e'"), -(15897, 0, "' '"), -(15898, 0, "'l'"), -(15899, 0, "'a'"), -(15900, 0, "'n'"), -(15901, 0, "'g'"), -(15902, 0, "'u'"), -(15903, 0, "'a'"), -(15904, 0, "'g'"), -(15905, 0, "'e'"), -(15906, 0, "' '"), -(15907, 0, "'f'"), -(15908, 0, "'i'"), -(15909, 0, "'g'"), -(15910, 0, "'h'"), -(15911, 0, "'t'"), -(15912, 0, "'s'"), -(15913, 0, "' '"), -(15914, 0, "'u'"), -(15915, 0, "'s'"), -(15916, 0, "' '"), -(15917, 0, "'('"), -(15907, 11, "''"), -(15907, 0, "'f'"), -(15908, 0, "'o'"), -(15909, 0, "'r'"), -(15910, 0, "'c'"), -(15911, 0, "'e'"), -(15912, 0, "'s'"), -(15913, 0, "' '"), -(15914, 0, "'u'"), -(15915, 0, "'s'"), -(15916, 0, "' '"), -(15917, 0, "'t'"), -(15918, 0, "'o'"), -(15919, 0, "' '"), -(15907, 13, "''"), -(15894, 13, "'w'"), -(15895, 0, "'e'"), -(15896, 0, "' '"), -(15897, 0, "'e'"), -(15898, 0, "'n'"), -(15899, 0, "'d'"), -(15900, 0, "' '"), -(15901, 0, "'u'"), -(15902, 0, "'p'"), -(15903, 0, "' '"), -(15904, 0, "'f'"), -(15905, 0, "'r'"), -(15906, 0, "'a'"), -(15904, 3, "'w'"), -(15905, 0, "'i'"), -(15906, 0, "'t'"), -(15907, 0, "'h'"), -(15908, 0, "' '"), -(15909, 0, "'e'"), -(15910, 0, "'v'"), -(15911, 0, "'e'"), -(15912, 0, "'n'"), -(15913, 0, "' '"), -(15914, 0, "'m'"), -(15915, 0, "'o'"), -(15916, 0, "'r'"), -(15917, 0, "'e'"), -(15918, 0, "' '"), -(15919, 0, "'f'"), -(15920, 0, "'r'"), -(15921, 0, "'a'"), -(15922, 0, "'g'"), -(15923, 0, "'m'"), -(15924, 0, "'e'"), -(15925, 0, "'n'"), -(15926, 0, "'t'"), -(15927, 0, "'e'"), -(15928, 0, "'d'"), -(15929, 0, "' '"), -(15930, 0, "'m'"), -(15931, 0, "'e'"), -(15932, 0, "'m'"), -(15933, 0, "'o'"), -(15934, 0, "'r'"), -(15935, 0, "'y'"), -(15936, 0, "'.'"), -(15937, 25, "' '"), -(15938, 0, "'I'"), -(15939, 0, "'n'"), -(15940, 0, "' '"), -(15940, 1, "''"), -(15939, 1, "''"), -(15939, 0, "'s'"), -(15939, 1, "''"), -(15939, 0, "'t'"), -(15940, 0, "'s'"), -(15941, 0, "' '"), -(15942, 0, "'s'"), -(15943, 0, "'o'"), -(15944, 0, "'r'"), -(15945, 0, "'t'"), -(15946, 0, "' '"), -(15947, 0, "'o'"), -(15948, 0, "'f'"), -(15949, 0, "' '"), -(15950, 0, "'t'"), -(15951, 0, "'h'"), -(15952, 0, "'e'"), -(16001, 52, "''"), -(16001, 0, "'.'"), -(16002, 0, "' '"), -(16003, 0, "'C'"), -(16004, 0, "'l'"), -(16005, 0, "'e'"), -(16006, 0, "'v'"), -(16007, 0, "'e'"), -(16008, 0, "'r'"), -(16009, 0, "' '"), -(16010, 0, "'d'"), -(16011, 0, "'a'"), -(16012, 0, "'t'"), -(16013, 0, "'a'"), -(16014, 0, "' '"), -(16015, 0, "'s'"), -(16016, 0, "'t'"), -(16017, 0, "'r'"), -(16018, 0, "'u'"), -(16019, 0, "'c'"), -(16020, 0, "'t'"), -(16021, 0, "'u'"), -(16022, 0, "'r'"), -(16023, 0, "'e'"), -(16024, 0, "'s'"), -(15908, 5, "''"), -(15913, 0, "' '"), -(15914, 0, "'o'"), -(15915, 0, "'b'"), -(15916, 0, "'j'"), -(15917, 0, "'e'"), -(15918, 0, "'c'"), -(15919, 0, "'t'"), -(15920, 0, "'s'"), -(15921, 0, "' '"), -(15922, 0, "'a'"), -(15923, 0, "'n'"), -(15924, 0, "'d'"), -(15925, 0, "' '"), -(15926, 0, "'m'"), -(15927, 0, "'o'"), -(15928, 0, "'r'"), -(15929, 0, "'e'"), -(15930, 11, "''"), -(15937, 0, "' '"), -(15938, 0, "'f'"), -(15939, 0, "'r'"), -(15940, 0, "'a'"), -(15941, 0, "'g'"), -(15942, 0, "'m'"), -(15943, 0, "'e'"), -(15944, 0, "'n'"), -(15945, 0, "'t'"), -(15946, 0, "'a'"), -(15947, 0, "'t'"), -(15948, 0, "'i'"), -(15949, 0, "'o'"), -(15950, 0, "'n'"), -(15896, 0, "' '"), -(15897, 0, "'c'"), -(15898, 0, "'o'"), -(15899, 0, "'n'"), -(15900, 0, "'f'"), -(15901, 0, "'u'"), -(15902, 0, "'s'"), -(15903, 0, "'e'"), -(15904, 0, "' '"), -(15905, 0, "'t'"), -(15906, 0, "'h'"), -(15907, 0, "'e'"), -(15908, 0, "' '"), -(15909, 0, "'o'"), -(15910, 0, "'p'"), -(15911, 0, "'t'"), -(15912, 0, "'i'"), -(15913, 0, "'m'"), -(15914, 0, "'i'"), -(15915, 0, "'z'"), -(15916, 0, "'e'"), -(15917, 0, "'r'"), -(15918, 0, "','"), -(15919, 0, "' '"), -(15920, 0, "'a'"), -(15921, 0, "'n'"), -(15922, 0, "'d'"), -(15948, 30, "' '"), -(15949, 0, "'o'"), -(15949, 1, "''"), -(15949, 0, "'a'"), -(15950, 0, "'l'"), -(15951, 0, "'l'"), -(15952, 0, "' '"), -(15953, 0, "'o'"), -(15954, 0, "'v'"), -(15955, 0, "'e'"), -(15956, 0, "'r'"), -(15957, 0, "' '"), -(15958, 0, "'t'"), -(15959, 0, "'h'"), -(15960, 0, "'e'"), -(15961, 0, "' '"), -(15962, 0, "'p'"), -(15963, 0, "'l'"), -(15964, 0, "'a'"), -(15965, 0, "'c'"), -(15966, 0, "'e'"), -(15967, 0, "' '"), -(15968, 0, "'i'"), -(15969, 0, "'n'"), -(15970, 0, "' '"), -(15971, 0, "'m'"), -(15972, 0, "'e'"), -(15973, 0, "'m'"), -(15974, 0, "'o'"), -(15975, 0, "'r'"), -(15976, 0, "'y'"), -(15982, 8, "''"), -(16002, 1, "''"), -(16002, 19, "''"), -(16014, 0, "' '"), -(16015, 0, "'h'"), -(16016, 0, "'a'"), -(16017, 0, "'s'"), -(16019, 23, "''"), -(16019, 0, "'n'"), -(16020, 0, "'n'"), -(16021, 0, "'B'"), -(16021, 1, "''"), -(16021, 0, "'B'"), -(16022, 0, "'u'"), -(16023, 0, "'t'"), -(16024, 0, "' '"), -(16025, 0, "'i'"), -(16026, 0, "'t'"), -(16027, 0, "'s'"), -(16028, 0, "' '"), -(16029, 0, "'o'"), -(16030, 0, "'k'"), -(16031, 0, "','"), -(16032, 0, "' '"), -(16033, 0, "'t'"), -(16034, 0, "'h'"), -(16035, 0, "'e'"), -(16036, 0, "'r'"), -(16037, 0, "'e'"), -(16038, 0, "'''"), -(16039, 0, "'s'"), -(16040, 0, "' '"), -(16041, 0, "'o'"), -(16042, 0, "'n'"), -(16043, 0, "'e'"), -(16044, 0, "' '"), -(16045, 0, "'m'"), -(16046, 0, "'o'"), -(16047, 0, "'r'"), -(16048, 0, "'e'"), -(16049, 0, "' '"), -(16032, 18, "' '"), -(16033, 0, "'w'"), -(16034, 0, "'e'"), -(16035, 0, "' '"), -(16036, 0, "'h'"), -(16037, 0, "'a'"), -(16038, 0, "'v'"), -(16039, 0, "'e'"), -(16040, 0, "' '"), -(16041, 0, "'w'"), -(16042, 0, "'e'"), -(16043, 0, "'b'"), -(16044, 0, "'a'"), -(16045, 0, "'s'"), -(16046, 0, "'s'"), -(16047, 0, "'e'"), -(16048, 0, "'m'"), -(16049, 0, "'b'"), -(16050, 0, "'l'"), -(16051, 0, "'y'"), -(16052, 0, "'.'"), -(16035, 0, "' '"), -(16036, 0, "'d'"), -(16037, 0, "'o'"), -(16038, 0, "'n'"), -(16039, 0, "'''"), -(16040, 0, "'t'"), -(16041, 0, "' '"), -(16042, 0, "'n'"), -(16043, 0, "'e'"), -(16044, 0, "'e'"), -(16045, 0, "'d'"), -(16046, 0, "' '"), -(16047, 0, "'t'"), -(16048, 0, "'o'"), -(16049, 0, "' '"), -(16050, 0, "'w'"), -(16051, 0, "'r'"), -(16052, 0, "'i'"), -(16053, 0, "'t'"), -(16054, 0, "'e'"), -(16055, 0, "' '"), -(16056, 0, "'w'"), -(16057, 0, "'e'"), -(16058, 0, "'b'"), -(16059, 0, "' '"), -(16060, 0, "'a'"), -(16061, 0, "'p'"), -(16062, 0, "'p'"), -(16056, 7, "'j'"), -(16057, 0, "'a'"), -(16058, 0, "'v'"), -(16059, 0, "'a'"), -(16060, 0, "'s'"), -(16061, 0, "'c'"), -(16062, 0, "'r'"), -(16063, 0, "'i'"), -(16064, 0, "'p'"), -(16065, 0, "'t'"), -(16066, 0, "' '"), -(16067, 0, "'a'"), -(16068, 0, "'n'"), -(16069, 0, "'t'"), -(16070, 0, "'m'"), -(16071, 0, "'o'"), -(16071, 1, "''"), -(16070, 1, "''"), -(16069, 1, "''"), -(16069, 0, "'y'"), -(16070, 0, "' '"), -(16071, 0, "'m'"), -(16072, 0, "'o'"), -(16073, 0, "'r'"), -(16074, 0, "'e'"), -(16075, 0, "'.'"), -(16076, 0, "' '"), -(16076, 1, "''"), -(16075, 1, "''"), -(16075, 0, "','"), -(16076, 0, "' '"), -(16077, 0, "'e'"), -(16078, 0, "'v'"), -(16079, 0, "'e'"), -(16080, 0, "'n'"), -(16081, 0, "' '"), -(16082, 0, "'o'"), -(16083, 0, "'n'"), -(16084, 0, "' '"), -(16085, 0, "'t'"), -(16086, 0, "'h'"), -(16087, 0, "'e'"), -(16088, 0, "' '"), -(16089, 0, "'w'"), -(16090, 0, "'e'"), -(16091, 0, "'b'"), -(16092, 0, "'.'"), -(16093, 0, "' '"), -(16094, 0, "'W'"), -(16095, 0, "'e'"), -(16114, 0, "'n'"), -(16115, 0, "'n'"), -(16116, 0, "'['"), -(16117, 0, "'e'"), -(16117, 1, "''"), -(16116, 1, "''"), -(16116, 0, "'['"), -(16117, 0, "'H'"), -(16118, 0, "'e'"), -(16119, 0, "'r'"), -(16120, 0, "'e'"), -(16121, 0, "']'"), -(16122, 0, "'('"), -(16123, 0, "'https://github.com/josephg/text-crdt-rust/'"), -(16165, 0, "')'"), -(16166, 0, "' '"), -(16167, 0, "'I'"), -(16168, 0, "'''"), -(16169, 0, "'v'"), -(16170, 0, "'e'"), -(16171, 0, "' '"), -(16172, 0, "'b'"), -(16173, 0, "'e'"), -(16174, 0, "'e'"), -(16175, 0, "'n'"), -(16176, 0, "' '"), -(16177, 0, "'q'"), -(16178, 0, "'u'"), -(16179, 0, "'i'"), -(16180, 0, "'t'"), -(16181, 0, "'e'"), -(16181, 1, "''"), -(16180, 1, "''"), -(16180, 0, "'e'"), -(16181, 0, "'t'"), -(16182, 0, "'l'"), -(16183, 0, "'y'"), -(16184, 0, "' '"), -(16185, 0, "'b'"), -(16186, 0, "'u'"), -(16187, 0, "'l'"), -(16188, 0, "'i'"), -(16189, 0, "'d'"), -(16190, 0, "'i'"), -(16191, 0, "'n'"), -(16192, 0, "'g'"), -(16193, 0, "' '"), -(16194, 0, "'a'"), -(16185, 10, "'b'"), -(16186, 0, "'u'"), -(16187, 0, "'i'"), -(16188, 0, "'l'"), -(16189, 0, "'d'"), -(16189, 1, "''"), -(16189, 0, "'d'"), -(16190, 0, "'i'"), -(16191, 0, "'n'"), -(16192, 0, "'g'"), -(16193, 0, "' '"), -(16194, 0, "'y'"), -(16195, 0, "'e'"), -(16196, 0, "'t'"), -(16197, 0, "' '"), -(16198, 0, "'a'"), -(16199, 0, "'n'"), -(16200, 0, "'o'"), -(16201, 0, "'t'"), -(16202, 0, "'h'"), -(16203, 0, "'e'"), -(16204, 0, "'r'"), -(16205, 0, "' '"), -(16206, 0, "'i'"), -(16207, 0, "'m'"), -(16208, 0, "'p'"), -(16209, 0, "'l'"), -(16210, 0, "'e'"), -(16211, 0, "'m'"), -(16212, 0, "'e'"), -(16213, 0, "'n'"), -(16214, 0, "'t'"), -(16215, 0, "'a'"), -(16216, 0, "'t'"), -(16217, 0, "'i'"), -(16218, 0, "'o'"), -(16219, 0, "'n'"), -(16206, 14, "'C'"), -(16207, 0, "'R'"), -(16208, 0, "'D'"), -(16209, 0, "'T'"), -(16210, 0, "' '"), -(16211, 0, "'i'"), -(16212, 0, "'m'"), -(16213, 0, "'p'"), -(16214, 0, "'e'"), -(16215, 0, "'l'"), -(16216, 0, "'m'"), -(16217, 0, "'e'"), -(16218, 0, "'n'"), -(16219, 0, "'t'"), -(16211, 9, "'i'"), -(16212, 0, "'m'"), -(16213, 0, "'p'"), -(16214, 0, "'l'"), -(16215, 0, "'e'"), -(16216, 0, "'m'"), -(16217, 0, "'e'"), -(16218, 0, "'n'"), -(16219, 0, "'t'"), -(16220, 0, "'a'"), -(16221, 0, "'t'"), -(16222, 0, "'i'"), -(16223, 0, "'o'"), -(16224, 0, "'n'"), -(16225, 0, "' '"), -(16226, 0, "'i'"), -(16227, 0, "'n'"), -(16228, 0, "' '"), -(16229, 0, "'R'"), -(16230, 0, "'u'"), -(16231, 0, "'s'"), -(16232, 0, "'t'"), -(16233, 0, "'.'"), -(16234, 0, "' '"), -(16235, 0, "'T'"), -(16236, 0, "'h'"), -(16237, 0, "'i'"), -(16238, 0, "'s'"), -(16239, 0, "' '"), -(16240, 0, "'i'"), -(16241, 0, "'m'"), -(16242, 0, "'p'"), -(16243, 0, "'l'"), -(16244, 0, "'e'"), -(16245, 0, "'m'"), -(16246, 0, "'e'"), -(16247, 0, "'n'"), -(16248, 0, "'t'"), -(16249, 0, "'a'"), -(16250, 0, "'t'"), -(16251, 0, "'i'"), -(16252, 0, "'o'"), -(16253, 0, "'n'"), -(16254, 0, "' '"), -(16255, 0, "'h'"), -(16256, 0, "'a'"), -(16257, 0, "'s'"), -(16258, 0, "' '"), -(16259, 0, "'a'"), -(16260, 0, "'l'"), -(16261, 0, "'l'"), -(16259, 3, "''"), -(16258, 1, "''"), -(16255, 3, "''"), -(16254, 1, "''"), -(16254, 0, "':'"), -(16255, 0, "'n'"), -(16256, 0, "'n'"), -(16257, 0, "'-'"), -(16258, 0, "' '"), -(16259, 0, "'D'"), -(16260, 0, "'o'"), -(16261, 0, "'e'"), -(16262, 0, "'s'"), -(16263, 0, "' '"), -(16264, 0, "'y'"), -(16265, 0, "'j'"), -(16266, 0, "'s'"), -(16267, 0, "'''"), -(16268, 0, "'s'"), -(16269, 0, "' '"), -(16257, 13, "''"), -(16256, 1, "''"), -(16255, 1, "''"), -(16254, 1, "''"), -(16254, 0, "' '"), -(16255, 0, "'i'"), -(16256, 0, "'s'"), -(16257, 0, "' '"), -(16258, 0, "'e'"), -(16259, 0, "'s'"), -(16260, 0, "'s'"), -(16261, 0, "'n'"), -(16261, 1, "''"), -(16261, 0, "'e'"), -(16262, 0, "'n'"), -(16263, 0, "'t'"), -(16264, 0, "'i'"), -(16265, 0, "'a'"), -(16266, 0, "'l'"), -(16267, 0, "'l'"), -(16268, 0, "'y'"), -(16269, 0, "' '"), -(16270, 0, "'t'"), -(16271, 0, "'h'"), -(16272, 0, "'e'"), -(16273, 0, "' '"), -(16274, 0, "'s'"), -(16275, 0, "'a'"), -(16276, 0, "'m'"), -(16277, 0, "'e'"), -(16278, 0, "' '"), -(16279, 0, "'a'"), -(16280, 0, "'s'"), -(16281, 0, "' '"), -(16282, 0, "'y'"), -(16283, 0, "'j'"), -(16284, 0, "'s'"), -(16285, 0, "' '"), -(16286, 0, "'b'"), -(16287, 0, "'u'"), -(16288, 0, "'t'"), -(16289, 0, "':'"), -(16290, 0, "'n'"), -(16291, 0, "'n'"), -(16292, 0, "'-'"), -(16293, 0, "' '"), -(16294, 0, "'I'"), -(16295, 0, "'t'"), -(16296, 0, "' '"), -(16297, 0, "'d'"), -(16298, 0, "'o'"), -(16299, 0, "'e'"), -(16300, 0, "'s'"), -(16301, 0, "'n'"), -(16302, 0, "'''"), -(16303, 0, "'t'"), -(16304, 0, "' '"), -(16292, 13, "'- It doesn't'"), -(16297, 7, "'u'"), -(16298, 0, "'s'"), -(16299, 0, "'e'"), -(16300, 0, "'s'"), -(16301, 0, "' '"), -(16302, 0, "'a'"), -(16303, 0, "' '"), -(16304, 0, "'B'"), -(16305, 0, "'-'"), -(16306, 0, "'T'"), -(16307, 0, "'r'"), -(16308, 0, "'e'"), -(16309, 0, "'e'"), -(16310, 0, "' '"), -(16311, 0, "'i'"), -(16312, 0, "'n'"), -(16313, 0, "'s'"), -(16314, 0, "'t'"), -(16315, 0, "'e'"), -(16316, 0, "'a'"), -(16317, 0, "'d'"), -(16318, 0, "' '"), -(16319, 0, "'o'"), -(16320, 0, "'f'"), -(16321, 0, "' '"), -(16305, 1, "''"), -(16305, 1, "''"), -(16305, 0, "'-'"), -(16306, 0, "'t'"), -(16322, 0, "'a'"), -(16323, 0, "' '"), -(16324, 0, "'l'"), -(16325, 0, "'i'"), -(16326, 0, "'n'"), -(16327, 0, "'k'"), -(16328, 0, "'e'"), -(16329, 0, "'d'"), -(16330, 0, "' '"), -(16331, 0, "'l'"), -(16332, 0, "'i'"), -(16333, 0, "'s'"), -(16334, 0, "'t'"), -(16335, 0, "' '"), -(16336, 0, "'t'"), -(16337, 0, "'o'"), -(16338, 0, "' '"), -(16339, 0, "'s'"), -(16340, 0, "'t'"), -(16341, 0, "'r'"), -(16342, 0, "'o'"), -(16342, 1, "''"), -(16341, 1, "''"), -(16341, 0, "'o'"), -(16342, 0, "'r'"), -(16343, 0, "'e'"), -(16344, 0, "' '"), -(16345, 0, "'t'"), -(16346, 0, "'h'"), -(16347, 0, "'e'"), -(16348, 0, "' '"), -(16349, 0, "'i'"), -(16350, 0, "'t'"), -(16351, 0, "'e'"), -(16352, 0, "'m'"), -(16353, 0, "'s'"), -(16354, 0, "'.'"), -(16355, 0, "' '"), -(16356, 0, "'T'"), -(16357, 0, "'h'"), -(16358, 0, "'i'"), -(16359, 0, "'s'"), -(16360, 0, "' '"), -(16361, 0, "'a'"), -(16356, 6, "'T'"), -(16357, 0, "'h'"), -(16358, 0, "'e'"), -(16359, 0, "' '"), -(16360, 0, "'b'"), -(16361, 0, "'-'"), -(16362, 0, "'t'"), -(16363, 0, "'r'"), -(16364, 0, "'e'"), -(16365, 0, "'e'"), -(16366, 0, "' '"), -(16356, 11, "'A'"), -(16357, 0, "'t'"), -(16358, 0, "' '"), -(16359, 0, "'e'"), -(16360, 0, "'c'"), -(16360, 1, "''"), -(16360, 0, "'a'"), -(16361, 0, "'c'"), -(16362, 0, "'h'"), -(16363, 0, "' '"), -(16364, 0, "'n'"), -(16365, 0, "'o'"), -(16366, 0, "'d'"), -(16367, 0, "'e'"), -(16368, 0, "' '"), -(16369, 0, "'o'"), -(16370, 0, "'f'"), -(16371, 0, "' '"), -(16372, 0, "'t'"), -(16373, 0, "'h'"), -(16374, 0, "'e'"), -(16375, 0, "' '"), -(16376, 0, "'b'"), -(16377, 0, "'-'"), -(16378, 0, "'t'"), -(16379, 0, "'r'"), -(16380, 0, "'e'"), -(16381, 0, "'e'"), -(16382, 0, "' '"), -(16383, 0, "'w'"), -(16384, 0, "'e'"), -(16385, 0, "' '"), -(16386, 0, "'s'"), -(16387, 0, "'t'"), -(16388, 0, "'o'"), -(16389, 0, "'r'"), -(16390, 0, "'e'"), -(16391, 0, "' '"), -(16392, 0, "'t'"), -(16393, 0, "'h'"), -(16394, 0, "'e'"), -(16395, 0, "' '"), -(16396, 0, "'n'"), -(16397, 0, "'u'"), -(16398, 0, "'m'"), -(16399, 0, "'b'"), -(16400, 0, "'e'"), -(16401, 0, "'r'"), -(16402, 0, "' '"), -(16403, 0, "'o'"), -(16404, 0, "'f'"), -(16405, 0, "' '"), -(16355, 0, "' '"), -(16356, 0, "'T'"), -(16357, 0, "'h'"), -(16358, 0, "'i'"), -(16359, 0, "'s'"), -(16360, 0, "' '"), -(16361, 0, "'s'"), -(16362, 0, "'o'"), -(16363, 0, "'l'"), -(16364, 0, "'v'"), -(16365, 0, "'e'"), -(16366, 0, "'s'"), -(16367, 0, "' '"), -(16368, 0, "'b'"), -(16369, 0, "'o'"), -(16370, 0, "'t'"), -(16371, 0, "'h'"), -(16372, 0, "' '"), -(16373, 0, "'o'"), -(16374, 0, "'f'"), -(16375, 0, "' '"), -(16376, 0, "'o'"), -(16377, 0, "'u'"), -(16378, 0, "'r'"), -(16379, 0, "' '"), -(16380, 0, "'l'"), -(16381, 0, "'i'"), -(16382, 0, "'n'"), -(16383, 0, "'e'"), -(16384, 0, "'a'"), -(16385, 0, "'r'"), -(16386, 0, "' '"), -(16387, 0, "'s'"), -(16388, 0, "'c'"), -(16389, 0, "'a'"), -(16390, 0, "'n'"), -(16391, 0, "'n'"), -(16392, 0, "'i'"), -(16393, 0, "'n'"), -(16394, 0, "'g'"), -(16395, 0, "' '"), -(16396, 0, "'p'"), -(16397, 0, "'r'"), -(16398, 0, "'o'"), -(16399, 0, "'b'"), -(16400, 0, "'l'"), -(16401, 0, "'e'"), -(16402, 0, "'m'"), -(16403, 0, "'s'"), -(16404, 0, "' '"), -(16405, 0, "'r'"), -(16406, 0, "'o'"), -(16407, 0, "'m'"), -(16407, 1, "''"), -(16406, 1, "''"), -(16405, 1, "''"), -(16405, 0, "'f'"), -(16406, 0, "'r'"), -(16407, 0, "'o'"), -(16408, 0, "'m'"), -(16409, 0, "' '"), -(16410, 0, "'e'"), -(16411, 0, "'a'"), -(16412, 0, "'r'"), -(16413, 0, "'l'"), -(16414, 0, "'i'"), -(16415, 0, "'e'"), -(16416, 0, "'r'"), -(16417, 0, "'.'"), -(16356, 62, "''"), -(16355, 1, "''"), -(16396, 10, "'l'"), -(16397, 0, "'e'"), -(16398, 0, "'n'"), -(16399, 0, "'g'"), -(16400, 0, "'t'"), -(16401, 0, "'h'"), -(16402, 0, "' '"), -(16403, 0, "'o'"), -(16404, 0, "'f'"), -(16405, 0, "' '"), -(16406, 0, "'a'"), -(16407, 0, "'l'"), -(16408, 0, "'l'"), -(16409, 0, "' '"), -(16410, 0, "'o'"), -(16411, 0, "'f'"), -(16412, 0, "' '"), -(16413, 0, "'t'"), -(16414, 0, "'h'"), -(16415, 0, "'a'"), -(16416, 0, "'t'"), -(16417, 0, "' '"), -(16418, 0, "'i'"), -(16419, 0, "'t'"), -(16420, 0, "'e'"), -(16421, 0, "'m'"), -(16422, 0, "'''"), -(16423, 0, "'s'"), -(16424, 0, "' '"), -(16425, 0, "'c'"), -(16426, 0, "'h'"), -(16427, 0, "'i'"), -(16428, 0, "'l'"), -(16429, 0, "'d'"), -(16430, 0, "'r'"), -(16431, 0, "'e'"), -(16432, 0, "'n'"), -(16433, 0, "'.'"), -(16293, 1, "''"), -(16292, 1, "''"), -(16291, 1, "''"), -(16290, 1, "''"), -(16289, 1, "''"), -(16289, 0, "' '"), -(16290, 1, "''"), -(16290, 0, "'i'"), -(16430, 0, "'n'"), -(16431, 0, "'n'"), -(16432, 0, "'This solves both of our linear scanning problems from earlier.'"), -(16494, 0, "' '"), -(16495, 0, "'W'"), -(16496, 0, "'h'"), -(16497, 0, "'e'"), -(16498, 0, "'n'"), -(16499, 0, "' '"), -(16500, 0, "'w'"), -(16501, 0, "'e'"), -(16502, 0, "' '"), -(16503, 0, "'w'"), -(16504, 0, "'a'"), -(16505, 0, "'n'"), -(16506, 0, "'t'"), -(16507, 0, "' '"), -(16508, 0, "'t'"), -(16509, 0, "'o'"), -(16510, 0, "' '"), -(16511, 0, "'f'"), -(16512, 0, "'i'"), -(16513, 0, "'n'"), -(16514, 0, "'d'"), -(16515, 0, "' '"), -(16516, 0, "'w'"), -(16517, 0, "'h'"), -(16518, 0, "'e'"), -(16519, 0, "'r'"), -(16520, 0, "'e'"), -(16521, 0, "' '"), -(16522, 0, "'i'"), -(16523, 0, "'n'"), -(16524, 0, "' '"), -(16525, 0, "'t'"), -(16526, 0, "'h'"), -(16527, 0, "'e'"), -(16528, 0, "' '"), -(16529, 0, "'l'"), -(16530, 0, "'i'"), -(16531, 0, "'s'"), -(16532, 0, "'t'"), -(16533, 0, "' '"), -(16534, 0, "'t'"), -(16535, 0, "'o'"), -(16536, 0, "' '"), -(16537, 0, "'i'"), -(16538, 0, "'n'"), -(16539, 0, "'s'"), -(16540, 0, "'e'"), -(16541, 0, "'r'"), -(16542, 0, "'t'"), -(16543, 0, "','"), -(16544, 0, "' '"), -(16516, 29, "'w'"), -(16517, 0, "'h'"), -(16518, 0, "'i'"), -(16519, 0, "'c'"), -(16520, 0, "'h'"), -(16521, 0, "' '"), -(16522, 0, "'i'"), -(16523, 0, "'t'"), -(16524, 0, "'e'"), -(16525, 0, "'m'"), -(16526, 0, "' '"), -(16527, 0, "'i'"), -(16528, 0, "'n'"), -(16529, 0, "' '"), -(16530, 0, "'t'"), -(16531, 0, "'h'"), -(16532, 0, "'e'"), -(16533, 0, "' '"), -(16534, 0, "'l'"), -(16535, 0, "'i'"), -(16536, 0, "'s'"), -(16537, 0, "'t'"), -(16516, 6, "'w'"), -(16516, 1, "''"), -(16520, 0, "' '"), -(16521, 0, "'1'"), -(16522, 0, "'0'"), -(16523, 0, "'0'"), -(16524, 0, "'0'"), -(16524, 1, "''"), -(16523, 1, "''"), -(16522, 1, "''"), -(16521, 1, "''"), -(16521, 0, "'5'"), -(16522, 0, "'0'"), -(16523, 0, "' '"), -(16524, 0, "'0'"), -(16525, 0, "'0'"), -(16526, 0, "'0'"), -(16527, 0, "'0'"), -(16527, 1, "''"), -(16539, 0, "','"), -(16540, 0, "' '"), -(16541, 0, "'w'"), -(16542, 0, "'e'"), -(16543, 0, "' '"), -(16544, 0, "'c'"), -(16545, 0, "'a'"), -(16546, 0, "'n'"), -(16547, 0, "' '"), -(16548, 0, "'j'"), -(16549, 0, "'u'"), -(16550, 0, "'s'"), -(16551, 0, "'t'"), -(16552, 0, "' '"), -(16553, 0, "'t'"), -(16554, 0, "'r'"), -(16555, 0, "'a'"), -(16556, 0, "'v'"), -(16557, 0, "'e'"), -(16558, 0, "'r'"), -(16559, 0, "'s'"), -(16560, 0, "'e'"), -(16561, 0, "' '"), -(16562, 0, "'d'"), -(16563, 0, "'o'"), -(16564, 0, "'w'"), -(16565, 0, "'n'"), -(16566, 0, "' '"), -(16567, 0, "'t'"), -(16568, 0, "'h'"), -(16569, 0, "'e'"), -(16570, 0, "' '"), -(16571, 0, "'t'"), -(16572, 0, "'r'"), -(16573, 0, "'e'"), -(16574, 0, "'e'"), -(16575, 0, "'.'"), -(16576, 0, "' '"), -(16577, 0, "'T'"), -(16578, 0, "'h'"), -(16579, 0, "'e'"), -(16580, 0, "' '"), -(16577, 4, "'T'"), -(16578, 0, "'r'"), -(16579, 0, "'e'"), -(16580, 0, "'e'"), -(16581, 0, "'s'"), -(16582, 0, "' '"), -(16583, 0, "'a'"), -(16584, 0, "'r'"), -(16585, 0, "'e'"), -(16586, 0, "' '"), -(16587, 0, "'r'"), -(16588, 0, "'e'"), -(16589, 0, "'a'"), -(16590, 0, "'l'"), -(16591, 0, "'l'"), -(16592, 0, "'y'"), -(16593, 0, "' '"), -(16594, 0, "'t'"), -(16595, 0, "'i'"), -(16596, 0, "'y'"), -(16596, 1, "''"), -(16596, 0, "'d'"), -(16597, 0, "'y'"), -(16598, 0, "' '"), -(16599, 0, "'-'"), -(16600, 0, "' '"), -(16601, 0, "'s'"), -(16602, 0, "'t'"), -(16603, 0, "'o'"), -(16604, 0, "'r'"), -(16605, 0, "'i'"), -(16606, 0, "'n'"), -(16607, 0, "'g'"), -(16608, 0, "' '"), -(16609, 0, "'a'"), -(16610, 0, "'l'"), -(16611, 0, "'l'"), -(16612, 0, "' '"), -(16613, 0, "'t'"), -(16614, 0, "'h'"), -(16615, 0, "'e'"), -(16616, 0, "'s'"), -(16617, 0, "'e'"), -(16618, 0, "' '"), -(16619, 0, "'i'"), -(16620, 0, "'t'"), -(16621, 0, "'m'"), -(16622, 0, "'e'"), -(16622, 1, "''"), -(16621, 1, "''"), -(16621, 0, "'e'"), -(16622, 0, "'m'"), -(16623, 0, "'s'"), -(16587, 37, "'v'"), -(16588, 0, "'e'"), -(16589, 0, "'r'"), -(16590, 0, "'y'"), -(16591, 0, "' '"), -(16592, 0, "'t'"), -(16593, 0, "'i'"), -(16594, 0, "'d'"), -(16595, 0, "'y'"), -(16596, 0, "' '"), -(16597, 0, "'-'"), -(16598, 0, "' '"), -(16599, 0, "'s'"), -(16600, 0, "'t'"), -(16601, 0, "'o'"), -(16602, 0, "'r'"), -(16603, 0, "'i'"), -(16604, 0, "'n'"), -(16605, 0, "'g'"), -(16606, 0, "' '"), -(16607, 0, "'a'"), -(16608, 0, "'l'"), -(16609, 0, "'l'"), -(16610, 0, "' '"), -(16611, 0, "'t'"), -(16612, 0, "'h'"), -(16613, 0, "'e'"), -(16614, 0, "'s'"), -(16615, 0, "'e'"), -(16616, 0, "' '"), -(16617, 0, "'i'"), -(16618, 0, "'t'"), -(16619, 0, "'e'"), -(16620, 0, "'m'"), -(16621, 0, "'s'"), -(16622, 0, "' '"), -(16623, 0, "'w'"), -(16624, 0, "'e'"), -(16625, 0, "' '"), -(16626, 0, "'j'"), -(16627, 0, "'u'"), -(16628, 0, "'s'"), -(16629, 0, "'t'"), -(16630, 0, "' '"), -(16631, 0, "'n'"), -(16632, 0, "'e'"), -(16633, 0, "'e'"), -(16634, 0, "'d'"), -(16635, 0, "' '"), -(16636, 0, "'5'"), -(16637, 0, "' '"), -(16432, 206, "'This solves both of our linear scanning problems from earlier. When we want to find item 50 000 in the list, we can just traverse down the tree. Trees are very tidy - storing all these items we just need 5'"), -(16430, 0, "'n'"), -(16431, 0, "'n'"), -(16432, 0, "'>'"), -(16433, 0, "' '"), -(16434, 0, "'D'"), -(16435, 0, "'i'"), -(16436, 0, "'a'"), -(16437, 0, "'g'"), -(16438, 0, "'r'"), -(16439, 0, "'a'"), -(16440, 0, "'m'"), -(16441, 0, "' '"), -(16442, 0, "'h'"), -(16443, 0, "'e'"), -(16444, 0, "'r'"), -(16445, 0, "'e'"), -(16434, 0, "'B'"), -(16435, 0, "'-'"), -(16436, 0, "'t'"), -(16437, 0, "'r'"), -(16438, 0, "'e'"), -(16439, 0, "'e'"), -(16440, 0, "' '"), -(16441, 1, "''"), -(16441, 0, "'d'"), -(16630, 30, "'t'"), -(16631, 0, "'h'"), -(16632, 0, "'i'"), -(16633, 0, "'s'"), -(16634, 0, "' '"), -(16635, 0, "'s'"), -(16636, 0, "'h'"), -(16637, 0, "'o'"), -(16637, 1, "''"), -(16636, 1, "''"), -(16635, 1, "''"), -(16635, 0, "'w'"), -(16636, 0, "'h'"), -(16637, 0, "'o'"), -(16638, 0, "'l'"), -(16639, 0, "'e'"), -(16640, 0, "' '"), -(16641, 0, "'d'"), -(16642, 0, "'o'"), -(16643, 0, "'c'"), -(16644, 0, "'u'"), -(16645, 0, "'m'"), -(16646, 0, "'e'"), -(16647, 0, "'n'"), -(16648, 0, "'t'"), -(16649, 0, "' '"), -(16650, 0, "' '"), -(16651, 0, "'j'"), -(16651, 1, "''"), -(16650, 1, "''"), -(16650, 0, "'j'"), -(16651, 0, "'u'"), -(16652, 0, "'s'"), -(16653, 0, "'t'"), -(16654, 0, "' '"), -(16655, 0, "'n'"), -(16656, 0, "'e'"), -(16657, 0, "'e'"), -(16658, 0, "'d'"), -(16659, 0, "'s'"), -(16660, 0, "' '"), -(16661, 0, "'5'"), -(16662, 0, "' '"), -(16663, 0, "'l'"), -(16663, 1, "''"), -(16663, 0, "'l'"), -(16664, 0, "'a'"), -(16665, 0, "'y'"), -(16666, 0, "'e'"), -(16667, 0, "'r'"), -(16668, 0, "'s'"), -(16669, 0, "' '"), -(16670, 0, "'i'"), -(16671, 0, "'n'"), -(16672, 0, "' '"), -(16673, 0, "'t'"), -(16674, 0, "'h'"), -(16675, 0, "'e'"), -(16676, 0, "' '"), -(16677, 0, "'t'"), -(16678, 0, "'r'"), -(16679, 0, "'e'"), -(16680, 0, "'e'"), -(16681, 0, "'.'"), -(16682, 0, "'n'"), -(16683, 0, "'n'"), -(16684, 0, "'W'"), -(16685, 0, "'e'"), -(16686, 0, "'a'"), -(16687, 0, "' '"), -(16687, 1, "''"), -(16686, 1, "''"), -(16685, 1, "''"), -(16684, 1, "''"), -(16684, 0, "'E'"), -(16685, 0, "'a'"), -(16686, 0, "'c'"), -(16687, 0, "'h'"), -(16688, 0, "' '"), -(16689, 0, "'l'"), -(16690, 0, "'e'"), -(16691, 0, "'a'"), -(16692, 0, "'f'"), -(16693, 0, "' '"), -(16694, 0, "'n'"), -(16695, 0, "'o'"), -(16696, 0, "'d'"), -(16697, 0, "'e'"), -(16698, 0, "' '"), -(16699, 0, "'('"), -(16700, 0, "'w'"), -(16701, 0, "'h'"), -(16702, 0, "'e'"), -(16703, 0, "'r'"), -(16704, 0, "'e'"), -(16705, 0, "' '"), -(16706, 0, "'w'"), -(16707, 0, "'e'"), -(16708, 0, "' '"), -(16709, 0, "'s'"), -(16710, 0, "'t'"), -(16711, 0, "'o'"), -(16712, 0, "'r'"), -(16713, 0, "'e'"), -(16714, 0, "' '"), -(16715, 0, "'t'"), -(16716, 0, "'h'"), -(16717, 0, "'e'"), -(16718, 0, "' '"), -(16719, 0, "'a'"), -(16720, 0, "'c'"), -(16721, 0, "'t'"), -(16722, 0, "'u'"), -(16723, 0, "'a'"), -(16724, 0, "'l'"), -(16725, 0, "' '"), -(16726, 0, "'d'"), -(16727, 0, "'a'"), -(16728, 0, "'t'"), -(16729, 0, "'a'"), -(16730, 0, "')'"), -(16731, 0, "' '"), -(16732, 0, "'p'"), -(16733, 0, "'a'"), -(16734, 0, "'c'"), -(16735, 0, "'k'"), -(16736, 0, "'s'"), -(16737, 0, "' '"), -(16738, 0, "'a'"), -(16739, 0, "' '"), -(16740, 0, "'w'"), -(16741, 0, "'h'"), -(16742, 0, "'o'"), -(16743, 0, "'l'"), -(16744, 0, "'e'"), -(16745, 0, "' '"), -(16746, 0, "'g'"), -(16747, 0, "'r'"), -(16748, 0, "'o'"), -(16749, 0, "'u'"), -(16750, 0, "'p'"), -(16751, 0, "' '"), -(16752, 0, "'o'"), -(16753, 0, "'f'"), -(16754, 0, "' '"), -(16755, 0, "'3'"), -(16756, 0, "'2'"), -(16757, 0, "' '"), -(16758, 0, "'i'"), -(16759, 0, "'t'"), -(16760, 0, "'e'"), -(16761, 0, "'m'"), -(16762, 0, "'s'"), -(16763, 0, "' '"), -(16764, 0, "'i'"), -(16765, 0, "'n'"), -(16766, 0, "'t'"), -(16767, 0, "'o'"), -(16768, 0, "' '"), -(16769, 0, "'t'"), -(16770, 0, "'h'"), -(16771, 0, "'e'"), -(16772, 0, "' '"), -(16773, 0, "'s'"), -(16774, 0, "'a'"), -(16775, 0, "'m'"), -(16776, 0, "'e'"), -(16777, 0, "' '"), -(16778, 0, "'c'"), -(16779, 0, "'h'"), -(16780, 0, "'u'"), -(16781, 0, "'n'"), -(16782, 0, "'k'"), -(16783, 0, "' '"), -(16784, 0, "'o'"), -(16785, 0, "'f'"), -(16786, 0, "' '"), -(16787, 0, "'m'"), -(16788, 0, "'e'"), -(16789, 0, "'m'"), -(16790, 0, "'o'"), -(16791, 0, "'r'"), -(16792, 0, "'y'"), -(16793, 0, "'.'"), -(14367, 0, "'n'"), -(14368, 0, "'I'"), -(14369, 0, "' '"), -(14370, 0, "'h'"), -(14371, 0, "'o'"), -(14372, 0, "'n'"), -(14373, 0, "'e'"), -(14374, 0, "'s'"), -(14375, 0, "'l'"), -(14376, 0, "'t'"), -(14377, 0, "'y'"), -(14378, 0, "' '"), -(14370, 9, "'h'"), -(14371, 0, "'o'"), -(14372, 0, "'n'"), -(14373, 0, "'e'"), -(14374, 0, "'s'"), -(14375, 0, "'t'"), -(14376, 0, "'l'"), -(14377, 0, "'y'"), -(14369, 0, "'''"), -(14370, 0, "'m'"), -(14371, 9, "' '"), -(14372, 0, "'c'"), -(14373, 0, "'h'"), -(14374, 0, "'o'"), -(14375, 0, "'c'"), -(14376, 0, "'k'"), -(14377, 0, "'e'"), -(14378, 0, "'d'"), -(14372, 7, "'s'"), -(14373, 0, "'h'"), -(14374, 0, "'o'"), -(14375, 0, "'c'"), -(14376, 0, "'k'"), -(14377, 0, "'e'"), -(14378, 0, "'d'"), -(14379, 0, "' '"), -(14380, 0, "'h'"), -(14381, 0, "'o'"), -(14382, 0, "'w'"), -(14383, 0, "' '"), -(14384, 0, "'l'"), -(14385, 0, "'i'"), -(14386, 0, "'t'"), -(14387, 0, "'t'"), -(14388, 0, "'l'"), -(14389, 0, "'e'"), -(14390, 0, "' '"), -(14391, 0, "'r'"), -(14392, 0, "'a'"), -(14393, 0, "'m'"), -(14394, 0, "' '"), -(14395, 0, "'y'"), -(14396, 0, "'j'"), -(14397, 0, "'s'"), -(14398, 0, "' '"), -(14399, 0, "'u'"), -(14400, 0, "'s'"), -(14401, 0, "'e'"), -(14402, 0, "'s'"), -(14403, 0, "' '"), -(14404, 0, "'f'"), -(14405, 0, "'o'"), -(14406, 0, "'r'"), -(14407, 0, "' '"), -(14408, 0, "'t'"), -(14409, 0, "'h'"), -(14410, 0, "'i'"), -(14411, 0, "'s'"), -(14412, 0, "'.'"), -(14413, 0, "'n'"), -(14403, 10, "'.'"), -(14404, 0, "' '"), -(14405, 0, "'I'"), -(14406, 0, "'t'"), -(14407, 0, "'s'"), -(14408, 0, "' '"), -(14405, 4, "''"), -(14405, 0, "'I'"), -(14406, 0, "'''"), -(14407, 0, "'m'"), -(14408, 0, "' '"), -(14409, 0, "'s'"), -(14410, 0, "'u'"), -(14411, 0, "'r'"), -(14412, 0, "'e'"), -(14413, 0, "' '"), -(14414, 0, "'t'"), -(14415, 0, "'h'"), -(14416, 0, "'e'"), -(14417, 0, "'r'"), -(14418, 0, "'e'"), -(14419, 0, "'''"), -(14420, 0, "'s'"), -(14421, 0, "' '"), -(14422, 0, "'a'"), -(14423, 0, "'l'"), -(14424, 0, "'l'"), -(14425, 0, "' '"), -(14426, 0, "'s'"), -(14427, 0, "'o'"), -(14428, 0, "'r'"), -(14429, 0, "'t'"), -(14430, 0, "'s'"), -(14431, 0, "' '"), -(14432, 0, "'o'"), -(14433, 0, "'f'"), -(14434, 0, "' '"), -(14435, 0, "'w'"), -(14436, 0, "'i'"), -(14437, 0, "'z'"), -(14438, 0, "'a'"), -(14439, 0, "'r'"), -(14440, 0, "'d'"), -(14441, 0, "'r'"), -(14442, 0, "'y'"), -(14443, 0, "' '"), -(14444, 0, "'i'"), -(14445, 0, "'n'"), -(14446, 0, "' '"), -(14447, 0, "'V'"), -(14448, 0, "'8'"), -(14449, 0, "' '"), -(14450, 0, "'t'"), -(14451, 0, "'h'"), -(14452, 0, "'a'"), -(14453, 0, "'t'"), -(14454, 0, "' '"), -(14455, 0, "'I'"), -(14456, 0, "' '"), -(14457, 0, "'d'"), -(14458, 0, "'o'"), -(14459, 0, "'n'"), -(14460, 0, "'''"), -(14461, 0, "'t'"), -(14462, 0, "' '"), -(14463, 0, "'u'"), -(14464, 0, "'n'"), -(14465, 0, "'d'"), -(14466, 0, "'e'"), -(14467, 0, "'r'"), -(14468, 0, "'s'"), -(14469, 0, "'t'"), -(14470, 0, "'a'"), -(14471, 0, "'n'"), -(14472, 0, "'d'"), -(14473, 0, "' '"), -(14474, 0, "'w'"), -(14475, 0, "'h'"), -(14476, 0, "'i'"), -(14477, 0, "'c'"), -(14478, 0, "'h'"), -(14479, 0, "' '"), -(14480, 0, "'m'"), -(14481, 0, "'a'"), -(14482, 0, "'k'"), -(14483, 0, "'e'"), -(14484, 0, "'s'"), -(14485, 0, "' '"), -(14486, 0, "'t'"), -(14487, 0, "'h'"), -(14488, 0, "'i'"), -(14489, 0, "'s'"), -(14490, 0, "' '"), -(14491, 0, "'p'"), -(14492, 0, "'o'"), -(14493, 0, "'s'"), -(14494, 0, "'s'"), -(14495, 0, "'i'"), -(14496, 0, "'b'"), -(14497, 0, "'l'"), -(14498, 0, "'e'"), -(14499, 0, "'.'"), -(14500, 0, "' '"), -(14501, 0, "'I'"), -(14502, 0, "'t'"), -(14503, 0, "'s'"), -(14504, 0, "' '"), -(14505, 0, "'i'"), -(14506, 0, "'m'"), -(14507, 0, "'p'"), -(14508, 0, "'r'"), -(14509, 0, "'e'"), -(14510, 0, "'s'"), -(14511, 0, "'i'"), -(14511, 1, "''"), -(14511, 0, "'s'"), -(14512, 0, "'i'"), -(14513, 0, "'v'"), -(14514, 0, "'e'"), -(14515, 0, "' '"), -(14516, 0, "'a'"), -(14517, 0, "'l'"), -(14518, 0, "'l'"), -(14519, 0, "' '"), -(14519, 1, "''"), -(14519, 0, "'-'"), -(14520, 0, "'r'"), -(14521, 0, "'o'"), -(14522, 0, "'u'"), -(14523, 0, "'n'"), -(14524, 0, "'d'"), -(14525, 0, "'.'"), -(14403, 0, "' '"), -(14404, 0, "'w'"), -(14405, 0, "'i'"), -(14406, 0, "'t'"), -(14407, 0, "'h'"), -(14408, 0, "' '"), -(14409, 0, "'t'"), -(14410, 0, "'h'"), -(14411, 0, "'i'"), -(14412, 0, "'s'"), -(14413, 0, "' '"), -(14414, 0, "'a'"), -(14415, 0, "'p'"), -(14416, 0, "'p'"), -(14417, 0, "'o'"), -(14417, 1, "''"), -(14417, 0, "'r'"), -(14418, 0, "'o'"), -(14419, 0, "'a'"), -(14420, 0, "'c'"), -(14421, 0, "'h'"), -(14524, 0, "'e'"), -(14525, 0, "'x'"), -(14526, 0, "'t'"), -(14527, 0, "'r'"), -(14528, 0, "'e'"), -(14529, 0, "'m'"), -(14530, 0, "'e'"), -(14531, 0, "'l'"), -(14532, 0, "'y'"), -(14533, 0, "' '"), -(14544, 11, "''"), -(14544, 0, "'.'"), -(14403, 19, "''"), -(14454, 26, "''"), -(14450, 4, "'w'"), -(14451, 0, "'h'"), -(14452, 0, "'i'"), -(14453, 0, "'c'"), -(14454, 0, "'h'"), -(14455, 0, "' '"), -(14509, 62, "'R'"), -(14510, 0, "'u'"), -(14511, 0, "'s'"), -(14512, 0, "'t'"), -(14513, 0, "' '"), -(14514, 0, "'a'"), -(14515, 0, "'n'"), -(14516, 0, "'d'"), -(14517, 0, "' '"), -(14518, 0, "'B'"), -(14519, 0, "'-'"), -(14520, 0, "'t'"), -(14521, 0, "'r'"), -(14521, 1, "''"), -(14520, 1, "''"), -(14520, 0, "'T'"), -(14521, 0, "'r'"), -(14522, 0, "'e'"), -(14523, 0, "'e'"), -(14524, 0, "'e'"), -(14524, 1, "''"), -(14524, 0, "'s'"), -(14509, 9, "'E'"), -(14510, 0, "'v'"), -(14511, 0, "'e'"), -(14512, 0, "'r'"), -(14513, 0, "'y'"), -(14514, 0, "'t'"), -(14515, 0, "'h'"), -(14516, 0, "'i'"), -(14517, 0, "'n'"), -(14518, 0, "'g'"), -(14519, 0, "' '"), -(14520, 0, "'i'"), -(14521, 0, "'s'"), -(14522, 0, "' '"), -(14523, 0, "'f'"), -(14524, 0, "'a'"), -(14525, 0, "'s'"), -(14526, 0, "'t'"), -(14527, 0, "'e'"), -(14528, 0, "'r'"), -(14529, 0, "' '"), -(14530, 0, "'i'"), -(14531, 0, "'n'"), -(14532, 0, "' '"), -(14533, 0, "'r'"), -(14534, 0, "'u'"), -(14535, 0, "'s'"), -(14536, 0, "'t'"), -(14537, 0, "','"), -(14538, 0, "' '"), -(14539, 0, "'w'"), -(14540, 0, "'i'"), -(14541, 0, "'t'"), -(14542, 0, "'h'"), -(14543, 0, "' '"), -(14533, 1, "''"), -(14533, 0, "'R'"), -(16341, 0, "'.'"), -(16342, 0, "' '"), -(16343, 0, "'T'"), -(16344, 0, "'h'"), -(16345, 0, "'i'"), -(16346, 0, "'s'"), -(16347, 0, "' '"), -(16348, 0, "'t'"), -(16349, 0, "'i'"), -(16350, 0, "'m'"), -(16351, 0, "'e'"), -(16412, 0, "' '"), -(16413, 0, "'('"), -(16414, 0, "'i'"), -(16415, 0, "'n'"), -(16416, 0, "'c'"), -(16417, 0, "'l'"), -(16418, 0, "'u'"), -(16419, 0, "'d'"), -(16420, 0, "'i'"), -(16421, 0, "'n'"), -(16422, 0, "'g'"), -(16423, 0, "' '"), -(16424, 0, "'y'"), -(16425, 0, "'j'"), -(16426, 0, "'s'"), -(16427, 0, "'''"), -(16428, 0, "'s'"), -(16429, 0, "' '"), -(16430, 0, "'s'"), -(16431, 0, "'p'"), -(16432, 0, "'a'"), -(16433, 0, "'n'"), -(16434, 0, "'s'"), -(16435, 0, "')'"), -(16436, 0, "'.'"), -(16437, 0, "' '"), -(16438, 2, "'B'"), -(16503, 1, "''"), -(16503, 0, "'n'"), -(16504, 0, "'n'"), -(16504, 1, "''"), -(16503, 1, "''"), -(16503, 0, "' '"), -(16668, 1, "''"), -(16668, 0, "':'"), -(16669, 0, "'n'"), -(16670, 0, "'n'"), -(16671, 0, "'-'"), -(16672, 0, "' '"), -(16672, 1, "''"), -(16709, 3, "'o'"), -(16710, 0, "'u'"), -(16711, 0, "'r'"), -(16805, 12, "'o'"), -(16806, 0, "'n'"), -(16807, 0, "'l'"), -(16808, 0, "'y'"), -(16809, 0, "' '"), -(16810, 0, "'n'"), -(16811, 0, "'e'"), -(16812, 0, "'e'"), -(16813, 0, "'d'"), -(16814, 0, "'s'"), -(16815, 0, "' '"), -(16816, 0, "'4'"), -(16817, 7, "' '"), -(16817, 1, "''"), -(16816, 1, "''"), -(16816, 0, "'5'"), -(16817, 0, "' '"), -(16818, 0, "'l'"), -(16819, 0, "'e'"), -(16820, 0, "'v'"), -(16821, 0, "'e'"), -(16822, 0, "'l'"), -(16823, 0, "'s'"), -(16827, 4, "' '"), -(16828, 0, "'o'"), -(16829, 0, "'u'"), -(16830, 0, "'r'"), -(16776, 0, "' '"), -(16777, 0, "'w'"), -(16778, 0, "'e'"), -(16779, 0, "' '"), -(16780, 0, "'c'"), -(16781, 0, "'a'"), -(16782, 0, "'n'"), -(16783, 0, "' '"), -(16783, 1, "''"), -(16790, 1, "''"), -(16789, 1, "''"), -(16788, 1, "''"), -(16788, 0, "'e'"), -(16810, 4, "'i'"), -(16811, 0, "'n'"), -(16812, 0, "' '"), -(16813, 0, "'j'"), -(16814, 0, "'u'"), -(16815, 0, "'s'"), -(16816, 0, "'t'"), -(16817, 6, "''"), -(16753, 0, "' '"), -(16753, 1, "''"), -(16694, 0, "'t'"), -(16695, 0, "'h'"), -(16696, 0, "'e'"), -(16697, 0, "' '"), -(16702, 0, "' '"), -(16703, 0, "'a'"), -(16704, 0, "'t'"), -(16705, 0, "' '"), -(16706, 0, "'p'"), -(16707, 0, "'o'"), -(16708, 0, "'s'"), -(16709, 0, "'i'"), -(16710, 0, "'t'"), -(16711, 0, "'i'"), -(16712, 0, "'o'"), -(16713, 0, "'n'"), -(16721, 12, "''"), -(16843, 0, "'n'"), -(16844, 0, "'-'"), -(16845, 0, "' '"), -(16846, 0, "'U'"), -(16847, 0, "'p'"), -(16848, 0, "'d'"), -(16849, 0, "'a'"), -(16850, 0, "'t'"), -(16851, 0, "'i'"), -(16852, 0, "'n'"), -(16853, 0, "'g'"), -(16854, 0, "' '"), -(16855, 0, "'i'"), -(16856, 0, "'n'"), -(16857, 0, "' '"), -(16858, 0, "'t'"), -(16859, 0, "'h'"), -(16860, 0, "'e'"), -(16861, 0, "' '"), -(16862, 0, "'t'"), -(16863, 0, "'r'"), -(16864, 0, "'e'"), -(16865, 0, "'e'"), -(16866, 0, "' '"), -(16867, 0, "'i'"), -(16868, 0, "'s'"), -(16869, 0, "' '"), -(16870, 0, "'e'"), -(16871, 0, "'a'"), -(16872, 0, "'s'"), -(16873, 0, "'y'"), -(16874, 0, "' '"), -(16870, 5, "'f'"), -(16871, 0, "'a'"), -(16872, 0, "'s'"), -(16873, 0, "'t'"), -(16874, 0, "' '"), -(16875, 0, "'t'"), -(16876, 0, "'o'"), -(16877, 0, "'o'"), -(16878, 0, "'.'"), -(16879, 0, "' '"), -(16880, 0, "'U'"), -(16881, 0, "'s'"), -(16882, 0, "'u'"), -(16883, 0, "'a'"), -(16884, 0, "'l'"), -(16885, 0, "'l'"), -(16886, 0, "'y'"), -(16887, 0, "' '"), -(16888, 0, "'w'"), -(16889, 0, "'e'"), -(16890, 0, "' '"), -(16891, 0, "'c'"), -(16892, 0, "'a'"), -(16893, 0, "'n'"), -(16894, 0, "' '"), -(16895, 0, "'j'"), -(16896, 0, "'u'"), -(16897, 0, "'s'"), -(16898, 0, "'t'"), -(16899, 0, "' '"), -(16900, 0, "'i'"), -(16901, 0, "'n'"), -(16879, 23, "' '"), -(16880, 0, "'I'"), -(16881, 0, "'f'"), -(16882, 0, "' '"), -(16883, 0, "'t'"), -(16884, 0, "'h'"), -(16885, 0, "'e'"), -(16886, 0, "'r'"), -(16887, 0, "'e'"), -(16888, 0, "'''"), -(16889, 0, "'s'"), -(16890, 0, "' '"), -(16891, 0, "'r'"), -(16892, 0, "'o'"), -(16893, 0, "'o'"), -(16894, 0, "'m'"), -(16895, 0, "' '"), -(16896, 0, "'i'"), -(16897, 0, "'n'"), -(16898, 0, "' '"), -(16899, 0, "'t'"), -(16900, 0, "'h'"), -(16901, 0, "'e'"), -(16902, 0, "' '"), -(16903, 0, "'c'"), -(16904, 0, "'u'"), -(16905, 0, "'r'"), -(16906, 0, "'r'"), -(16907, 0, "'e'"), -(16908, 0, "'n'"), -(16909, 0, "'t'"), -(16910, 0, "' '"), -(16911, 0, "'i'"), -(16912, 0, "'t'"), -(16913, 0, "'e'"), -(16914, 0, "'m'"), -(16915, 0, "','"), -(16916, 0, "' '"), -(16917, 0, "'w'"), -(16918, 0, "'e'"), -(16919, 0, "' '"), -(16920, 0, "'j'"), -(16921, 0, "'u'"), -(16922, 0, "'s'"), -(16923, 0, "'t'"), -(16924, 0, "' '"), -(16925, 0, "'i'"), -(16926, 0, "'n'"), -(16927, 0, "'s'"), -(16928, 0, "'e'"), -(16929, 0, "'r'"), -(16930, 0, "'t'"), -(16931, 0, "' '"), -(16932, 0, "'t'"), -(16933, 0, "'h'"), -(16934, 0, "'e'"), -(16935, 0, "' '"), -(16936, 0, "'n'"), -(16937, 0, "'e'"), -(16938, 0, "'w'"), -(16939, 0, "' '"), -(16940, 0, "'c'"), -(16941, 0, "'o'"), -(16942, 0, "'n'"), -(16943, 0, "'t'"), -(16944, 0, "'e'"), -(16945, 0, "'n'"), -(16946, 0, "'t'"), -(16947, 0, "' '"), -(16948, 0, "'t'"), -(16949, 0, "'h'"), -(16950, 0, "'e'"), -(16951, 0, "'r'"), -(16952, 0, "'e'"), -(16953, 0, "'.'"), -(16954, 0, "' '"), -(16955, 0, "'I'"), -(16956, 0, "'f'"), -(16957, 0, "' '"), -(16958, 0, "'n'"), -(16959, 0, "'o'"), -(16960, 0, "'t'"), -(16961, 0, "','"), -(16962, 0, "' '"), -(16963, 0, "'w'"), -(16964, 0, "'e'"), -(16965, 0, "' '"), -(16966, 0, "'''"), -(16966, 1, "''"), -(16965, 1, "''"), -(16965, 0, "' '"), -(16966, 0, "'s'"), -(16967, 0, "'p'"), -(16968, 0, "'l'"), -(16969, 0, "'i'"), -(16970, 0, "'t'"), -(16971, 0, "' '"), -(16972, 0, "'t'"), -(16973, 0, "'h'"), -(16974, 0, "'e'"), -(16975, 0, "' '"), -(16976, 0, "'c'"), -(16977, 0, "'u'"), -(16978, 0, "'r'"), -(16979, 0, "'r'"), -(16980, 0, "'e'"), -(16981, 0, "'n'"), -(16982, 0, "'t'"), -(16983, 0, "' '"), -(16984, 0, "'i'"), -(16985, 0, "'t'"), -(16986, 0, "'e'"), -(16987, 0, "'m'"), -(16988, 0, "' '"), -(16989, 0, "'a'"), -(16990, 0, "'n'"), -(16991, 0, "'d'"), -(16992, 0, "' '"), -(16993, 0, "'i'"), -(16994, 0, "'n'"), -(16995, 0, "'s'"), -(16996, 0, "'e'"), -(16997, 0, "'r'"), -(16998, 0, "'t'"), -(16999, 0, "' '"), -(17000, 0, "'i'"), -(17001, 0, "'n'"), -(17002, 0, "' '"), -(17003, 0, "'t'"), -(17004, 0, "'h'"), -(17005, 0, "'e'"), -(17006, 0, "' '"), -(17007, 0, "'p'"), -(17008, 0, "'a'"), -(17009, 0, "'r'"), -(17010, 0, "'e'"), -(17011, 0, "'n'"), -(17012, 0, "'t'"), -(17013, 0, "'.'"), -(17014, 0, "' '"), -(17015, 0, "'T'"), -(17016, 0, "'h'"), -(17017, 0, "'e'"), -(17018, 0, "' '"), -(17019, 0, "'w'"), -(17020, 0, "'o'"), -(17021, 0, "'r'"), -(17022, 0, "'s'"), -(17023, 0, "'t'"), -(17024, 0, "' '"), -(17025, 0, "'c'"), -(17026, 0, "'a'"), -(17027, 0, "'s'"), -(17028, 0, "'e'"), -(17015, 14, "''"), -(17015, 0, "'I'"), -(17016, 0, "'n'"), -(17017, 0, "' '"), -(17018, 0, "'t'"), -(17019, 0, "'h'"), -(17020, 0, "'e'"), -(17021, 0, "' '"), -(17022, 0, "'w'"), -(17023, 0, "'o'"), -(17024, 0, "'r'"), -(17025, 0, "'s'"), -(17026, 0, "'t'"), -(17027, 0, "' '"), -(17028, 0, "'c'"), -(17029, 0, "'a'"), -(17030, 0, "'s'"), -(17031, 0, "'e'"), -(17032, 0, "','"), -(17033, 0, "' '"), -(17034, 0, "'w'"), -(17035, 0, "'e'"), -(17036, 0, "' '"), -(17037, 0, "'s'"), -(17038, 0, "'p'"), -(17039, 0, "'l'"), -(17040, 0, "'i'"), -(17041, 0, "'l'"), -(17042, 0, "'l'"), -(17042, 1, "''"), -(17041, 1, "''"), -(16878, 163, "''"), -(16878, 0, "' '"), -(16879, 0, "'-'"), -(16880, 0, "' '"), -(16881, 0, "'i'"), -(16882, 0, "'t'"), -(16883, 0, "' '"), -(16884, 0, "'t'"), -(16885, 0, "'a'"), -(16886, 0, "'k'"), -(16887, 0, "'e'"), -(16888, 0, "'s'"), -(16889, 0, "' '"), -(16890, 0, "'O'"), -(16891, 0, "'('"), -(16892, 0, "'d'"), -(16893, 0, "'e'"), -(16894, 0, "'p'"), -(16895, 0, "'t'"), -(16896, 0, "'h'"), -(16897, 0, "')'"), -(16898, 0, "' '"), -(16899, 0, "'-'"), -(16900, 0, "' '"), -(16901, 0, "'o'"), -(16902, 0, "'r'"), -(16903, 0, "' '"), -(16904, 0, "'a'"), -(16905, 0, "'b'"), -(16906, 0, "'o'"), -(16907, 0, "'u'"), -(16908, 0, "'t'"), -(16909, 0, "' '"), -(16910, 0, "'5'"), -(16911, 0, "' '"), -(16912, 0, "'s'"), -(16913, 0, "'t'"), -(16914, 0, "'e'"), -(16915, 0, "'p'"), -(16916, 0, "'s'"), -(16917, 0, "' '"), -(16918, 0, "'n'"), -(16919, 0, "'o'"), -(16920, 0, "' '"), -(16921, 0, "'m'"), -(16922, 0, "'a'"), -(16923, 0, "'t'"), -(16924, 0, "'t'"), -(16925, 0, "'e'"), -(16926, 0, "'r'"), -(16927, 0, "' '"), -(16928, 0, "'w'"), -(16929, 0, "'h'"), -(16930, 0, "'a'"), -(16931, 0, "'t'"), -(16932, 0, "'.'"), -(16918, 0, "'i'"), -(16919, 0, "'n'"), -(16920, 0, "' '"), -(16921, 0, "'t'"), -(16922, 0, "'h'"), -(16923, 0, "'i'"), -(16924, 0, "'s'"), -(16925, 0, "' '"), -(16926, 0, "'c'"), -(16927, 0, "'a'"), -(16928, 0, "'s'"), -(16929, 0, "'e'"), -(16930, 0, "' '"), -(16945, 0, "' '"), -(16946, 0, "'h'"), -(16947, 0, "'a'"), -(16948, 0, "'p'"), -(16949, 0, "'p'"), -(16950, 0, "'e'"), -(16951, 0, "'n'"), -(16952, 0, "'s'"), -(16954, 0, "' '"), -(16955, 0, "'M'"), -(16956, 0, "'u'"), -(16957, 0, "'c'"), -(16958, 0, "'h'"), -(16959, 0, "' '"), -(16960, 0, "'b'"), -(16961, 0, "'e'"), -(16962, 0, "'t'"), -(16963, 0, "'t'"), -(16964, 0, "'e'"), -(16965, 0, "'r'"), -(16966, 0, "' '"), -(16967, 0, "'t'"), -(16968, 0, "'h'"), -(16969, 0, "'a'"), -(16970, 0, "'n'"), -(16971, 0, "' '"), -(16972, 0, "'n'"), -(16973, 0, "'e'"), -(16974, 0, "'e'"), -(16975, 0, "'d'"), -(16976, 0, "'i'"), -(16977, 0, "'n'"), -(16978, 0, "'g'"), -(16979, 0, "' '"), -(16980, 0, "'t'"), -(16981, 0, "'o'"), -(16982, 0, "' '"), -(16983, 0, "'s'"), -(16984, 0, "'h'"), -(16985, 0, "'i'"), -(16986, 0, "'f'"), -(16987, 0, "'t'"), -(16988, 0, "' '"), -(16989, 0, "'e'"), -(16990, 0, "'v'"), -(16991, 0, "'e'"), -(16992, 0, "'r'"), -(16993, 0, "'y'"), -(16994, 0, "' '"), -(16995, 0, "'t'"), -(16996, 0, "'i'"), -(16996, 1, "''"), -(16995, 1, "''"), -(16995, 0, "'i'"), -(16996, 0, "'t'"), -(16997, 0, "'e'"), -(16998, 0, "'m'"), -(16999, 0, "' '"), -(17000, 0, "'i'"), -(17001, 0, "'n'"), -(17002, 0, "' '"), -(17003, 0, "'o'"), -(17004, 0, "'u'"), -(17005, 0, "'r'"), -(17006, 0, "' '"), -(17007, 0, "'j'"), -(17008, 0, "'a'"), -(17009, 0, "'v'"), -(17010, 0, "'a'"), -(17011, 0, "'s'"), -(17012, 0, "'c'"), -(17013, 0, "'r'"), -(17014, 0, "'i'"), -(17015, 0, "'p'"), -(17016, 0, "'t'"), -(17017, 0, "' '"), -(17018, 0, "'a'"), -(17019, 0, "'r'"), -(17020, 0, "'a'"), -(17020, 1, "''"), -(17020, 0, "'r'"), -(17021, 0, "'a'"), -(17022, 0, "'y'"), -(17023, 0, "'!'"), -(17024, 0, "'n'"), -(17025, 0, "'n'"), -(17025, 1, "''"), -(17024, 1, "''"), -(17073, 0, "' '"), -(17073, 1, "''"), -(17026, 4, "'I'"), -(17027, 0, "'n'"), -(17028, 0, "' '"), -(17029, 0, "'j'"), -(17029, 1, "''"), -(17028, 1, "''"), -(17027, 1, "''"), -(17027, 0, "'n'"), -(17028, 0, "' '"), -(17029, 0, "'J'"), -(17030, 0, "'a'"), -(17031, 0, "'v'"), -(17032, 0, "'a'"), -(17033, 0, "'s'"), -(17034, 0, "'c'"), -(17035, 0, "'r'"), -(17036, 0, "'i'"), -(17037, 0, "'p'"), -(17038, 0, "'t'"), -(17039, 0, "' '"), -(17040, 0, "'w'"), -(17041, 0, "'e'"), -(17042, 0, "' '"), -(17043, 0, "'c'"), -(17044, 0, "'a'"), -(17045, 0, "'n'"), -(17046, 0, "'''"), -(17047, 0, "'t'"), -(17048, 0, "' '"), -(17049, 0, "'p'"), -(17050, 0, "'a'"), -(17051, 0, "'c'"), -(17052, 0, "'k'"), -(17053, 0, "' '"), -(17054, 0, "'a'"), -(17055, 0, "' '"), -(17056, 0, "'s'"), -(17057, 0, "'i'"), -(17058, 0, "'n'"), -(17059, 0, "'g'"), -(17060, 0, "'l'"), -(17061, 0, "'e'"), -(17062, 0, "' '"), -(17063, 0, "'i'"), -(17064, 0, "'t'"), -(17065, 0, "'e'"), -(17066, 0, "'m'"), -(17067, 0, "' '"), -(17068, 0, "'i'"), -(17069, 0, "'n'"), -(17070, 0, "'t'"), -(17071, 0, "'o'"), -(17072, 0, "' '"), -(17073, 0, "'t'"), -(17074, 0, "'h'"), -(17075, 0, "'e'"), -(17073, 3, "'c'"), -(17074, 0, "'o'"), -(17075, 0, "'n'"), -(17076, 0, "'t'"), -(17077, 0, "'i'"), -(17078, 0, "'g'"), -(17079, 0, "'u'"), -(17080, 0, "'o'"), -(17081, 0, "'u'"), -(17082, 0, "'s'"), -(17083, 0, "' '"), -(17084, 0, "'m'"), -(17085, 0, "'e'"), -(17086, 0, "'m'"), -(17087, 0, "'o'"), -(17088, 0, "'r'"), -(17089, 0, "'y'"), -(17090, 0, "'.'"), -(17091, 0, "' '"), -(17092, 0, "'I'"), -(17093, 0, "'n'"), -(17094, 0, "' '"), -(17095, 0, "'r'"), -(17096, 0, "'u'"), -(17097, 0, "'s'"), -(17098, 0, "'t'"), -(17099, 0, "' '"), -(17100, 0, "'w'"), -(17101, 0, "'e'"), -(17102, 0, "' '"), -(17103, 0, "'c'"), -(17104, 0, "'a'"), -(17105, 0, "'n'"), -(17106, 0, "' '"), -(17107, 0, "'p'"), -(17108, 0, "'a'"), -(17109, 0, "'c'"), -(17110, 0, "'k'"), -(17111, 0, "' '"), -(17112, 0, "'e'"), -(17113, 0, "'a'"), -(17114, 0, "'c'"), -(17115, 0, "'h'"), -(17126, 0, "' '"), -(17127, 0, "'i'"), -(17128, 0, "'n'"), -(17129, 0, "'t'"), -(17130, 0, "'o'"), -(17131, 0, "' '"), -(17132, 0, "'a'"), -(17133, 0, "' '"), -(17134, 0, "'s'"), -(17135, 0, "'i'"), -(17136, 0, "'n'"), -(17137, 0, "'g'"), -(17138, 0, "'l'"), -(17139, 0, "'e'"), -(17140, 0, "' '"), -(17141, 0, "'m'"), -(17142, 0, "'e'"), -(17143, 0, "'m'"), -(17144, 0, "'o'"), -(17145, 0, "'r'"), -(17146, 0, "'y'"), -(17147, 0, "' '"), -(17148, 0, "'c'"), -(17149, 0, "'h'"), -(17150, 0, "'u'"), -(17151, 0, "'n'"), -(17152, 0, "'k'"), -(17153, 56, "''"), -(17127, 0, "'w'"), -(17128, 0, "'i'"), -(17129, 0, "'t'"), -(17130, 0, "'h'"), -(17131, 0, "' '"), -(17132, 0, "'3'"), -(17133, 0, "'2'"), -(17134, 0, "' '"), -(17135, 0, "'i'"), -(17136, 0, "'t'"), -(17137, 0, "'e'"), -(17138, 0, "'m'"), -(17139, 0, "'s'"), -(17140, 0, "' '"), -(17141, 0, "'a'"), -(17142, 0, "'l'"), -(17143, 0, "'l'"), -(17144, 0, "' '"), -(17145, 0, "'t'"), -(17146, 0, "'o'"), -(17147, 0, "'g'"), -(17148, 0, "'e'"), -(17149, 0, "'t'"), -(17150, 0, "'h'"), -(17151, 0, "'e'"), -(17152, 0, "'r'"), -(17153, 0, "' '"), -(17180, 40, "''"), -(17180, 0, "'.'"), -(17049, 0, "'e'"), -(17050, 0, "'v'"), -(17051, 0, "'e'"), -(17052, 0, "'n'"), -(17053, 0, "' '"), -(17111, 0, "'!'"), -(17112, 0, "' '"), -(17113, 0, "'I'"), -(17114, 0, "'n'"), -(17115, 0, "' '"), -(17116, 0, "'f'"), -(17117, 0, "'a'"), -(17118, 0, "'c'"), -(17119, 0, "'t'"), -(17120, 0, "','"), -(17121, 0, "' '"), -(17122, 0, "'w'"), -(17123, 0, "'e'"), -(17124, 0, "' '"), -(17125, 0, "'c'"), -(17126, 0, "'a'"), -(17127, 0, "'n'"), -(17148, 0, "' '"), -(17149, 0, "'i'"), -(17150, 0, "'n'"), -(17151, 0, "' '"), -(17152, 0, "'r'"), -(17152, 1, "''"), -(17152, 0, "'o'"), -(17153, 0, "'u'"), -(17154, 0, "'r'"), -(17155, 0, "' '"), -(17156, 0, "'t'"), -(17157, 0, "'r'"), -(17158, 0, "'e'"), -(17159, 0, "'e'"), -(17160, 0, "' '"), -(17161, 0, "'w'"), -(17162, 0, "'i'"), -(17163, 0, "'t'"), -(17164, 0, "'h'"), -(17165, 5, "''"), -(17174, 0, "'.'"), -(17175, 0, "' '"), -(17176, 0, "'A'"), -(17176, 1, "''"), -(17177, 1, "''"), -(17176, 1, "''"), -(17176, 0, "'A'"), -(17111, 55, "' '"), -(17112, 0, "'p'"), -(17113, 0, "'a'"), -(17114, 0, "'c'"), -(17115, 0, "'k'"), -(17116, 0, "' '"), -(17117, 0, "'g'"), -(17118, 0, "'r'"), -(17119, 0, "'o'"), -(17120, 0, "'u'"), -(17121, 0, "'p'"), -(17122, 0, "'s'"), -(17123, 0, "' '"), -(17124, 0, "'o'"), -(17125, 0, "'f'"), -(17126, 0, "' '"), -(17135, 42, "' '"), -(17136, 0, "'t'"), -(17136, 1, "''"), -(17136, 0, "'a'"), -(17137, 0, "'l'"), -(17138, 0, "'l'"), -(17139, 0, "' '"), -(17140, 0, "'t'"), -(17141, 0, "'o'"), -(17142, 0, "'g'"), -(17143, 0, "'e'"), -(17144, 0, "'t'"), -(17145, 0, "'h'"), -(17146, 0, "'e'"), -(17147, 0, "'r'"), -(17148, 0, "' '"), -(17149, 0, "'i'"), -(17150, 0, "'n'"), -(17151, 0, "' '"), -(17152, 0, "'c'"), -(17153, 0, "'h'"), -(17154, 0, "'u'"), -(17155, 0, "'n'"), -(17156, 0, "'k'"), -(17157, 0, "'s'"), -(17158, 0, "'.'"), -(17159, 0, "' '"), -(17160, 0, "'T'"), -(17161, 0, "'h'"), -(17162, 0, "'i'"), -(17163, 0, "'s'"), -(17164, 0, "' '"), -(17165, 0, "'w'"), -(17166, 0, "'i'"), -(17167, 0, "'l'"), -(17168, 0, "'l'"), -(17169, 0, "' '"), -(17170, 0, "'r'"), -(17171, 0, "'e'"), -(17172, 0, "'s'"), -(17173, 0, "'u'"), -(17174, 0, "'l'"), -(17175, 0, "'t'"), -(17176, 0, "' '"), -(17177, 0, "'i'"), -(17178, 0, "'n'"), -(17179, 0, "' '"), -(17180, 0, "'a'"), -(17181, 0, "' '"), -(17182, 0, "'b'"), -(17183, 0, "'i'"), -(17184, 0, "'t'"), -(17185, 0, "' '"), -(17186, 0, "'o'"), -(17187, 0, "'f'"), -(17188, 0, "' '"), -(17189, 0, "'m'"), -(17190, 0, "'e'"), -(17191, 0, "'m'"), -(17192, 0, "'c'"), -(17193, 0, "'o'"), -(17194, 0, "'p'"), -(17194, 1, "''"), -(17193, 1, "''"), -(17193, 0, "'p'"), -(17194, 0, "'y'"), -(17180, 15, "'s'"), -(17181, 0, "'o'"), -(17182, 0, "'m'"), -(17183, 0, "'e'"), -(17184, 0, "' '"), -(17185, 0, "'m'"), -(17186, 0, "'e'"), -(17187, 0, "'m'"), -(17188, 0, "'c'"), -(17189, 0, "'p'"), -(17190, 0, "'y'"), -(17191, 0, "'-'"), -(17192, 0, "'i'"), -(17193, 0, "'n'"), -(17194, 0, "'g'"), -(17195, 0, "' '"), -(17196, 0, "'w'"), -(17197, 0, "'h'"), -(17198, 0, "'e'"), -(17199, 0, "'n'"), -(17200, 0, "' '"), -(17201, 0, "'w'"), -(17202, 0, "'e'"), -(17203, 0, "' '"), -(17204, 0, "'i'"), -(17205, 0, "'n'"), -(17206, 0, "'s'"), -(17207, 0, "'e'"), -(17208, 0, "'r'"), -(17209, 0, "'t'"), -(17210, 0, "','"), -(17211, 0, "' '"), -(17212, 0, "'b'"), -(17213, 0, "'u'"), -(17214, 0, "'t'"), -(17215, 0, "' '"), -(17216, 0, "'m'"), -(17217, 0, "'e'"), -(17218, 0, "'m'"), -(17219, 0, "'c'"), -(17220, 0, "'p'"), -(17221, 0, "'y'"), -(17222, 0, "' '"), -(17223, 0, "'i'"), -(17224, 0, "'s'"), -(17225, 0, "' '"), -(17226, 0, "'w'"), -(17227, 0, "'a'"), -(17228, 0, "'y'"), -(17229, 0, "' '"), -(17230, 0, "'f'"), -(17231, 0, "'a'"), -(17232, 0, "'s'"), -(17233, 0, "'t'"), -(17234, 0, "'e'"), -(17235, 0, "'r'"), -(17236, 0, "' '"), -(17237, 0, "'t'"), -(17238, 0, "'h'"), -(17239, 0, "'a'"), -(17240, 0, "'n'"), -(17241, 0, "' '"), -(17216, 26, "'t'"), -(17217, 0, "'h'"), -(17218, 0, "'a'"), -(17219, 0, "'t'"), -(17220, 0, "'s'"), -(17221, 0, "' '"), -(17222, 0, "'f'"), -(17223, 0, "'a'"), -(17224, 0, "'s'"), -(17225, 0, "'t'"), -(17226, 0, "'e'"), -(17227, 0, "'r'"), -(17228, 0, "' '"), -(17229, 0, "'t'"), -(17230, 0, "'h'"), -(17231, 0, "'a'"), -(17232, 0, "'n'"), -(17233, 0, "' '"), -(17234, 0, "'y'"), -(17235, 0, "'o'"), -(17236, 0, "'u'"), -(17237, 0, "' '"), -(17238, 0, "'t'"), -(17239, 0, "'h'"), -(17240, 0, "'i'"), -(17241, 0, "'n'"), -(17242, 0, "'k'"), -(17243, 0, "'.'"), -(15322, 0, "' '"), -(15323, 0, "'-'"), -(15324, 0, "' '"), -(15325, 0, "'y'"), -(15326, 0, "'o'"), -(15327, 0, "'u'"), -(15328, 0, "' '"), -(15329, 0, "'g'"), -(15330, 0, "'u'"), -(15331, 0, "'e'"), -(15332, 0, "'s'"), -(15333, 0, "'e'"), -(15334, 0, "'d'"), -(15335, 0, "' '"), -(15336, 0, "'i'"), -(15329, 8, "'g'"), -(15330, 0, "'u'"), -(15331, 0, "'e'"), -(15332, 0, "'s'"), -(15333, 0, "'s'"), -(15334, 0, "'e'"), -(15335, 0, "'d'"), -(15336, 0, "' '"), -(15337, 0, "'i'"), -(15338, 0, "'t'"), -(15339, 0, "' '"), -(15340, 0, "'-'"), -(15356, 16, "'W'"), -(15357, 0, "'e'"), -(15358, 0, "' '"), -(15359, 0, "'c'"), -(15360, 0, "'a'"), -(15361, 0, "'n'"), -(15362, 0, "' '"), -(15363, 0, "'s'"), -(15364, 0, "'c'"), -(15365, 0, "'a'"), -(15366, 0, "'l'"), -(15367, 0, "'e'"), -(15368, 0, "' '"), -(15369, 0, "'u'"), -(15370, 0, "'p'"), -(15371, 0, "' '"), -(15372, 0, "'c'"), -(15373, 0, "'o'"), -(15374, 0, "'m'"), -(15375, 0, "'p'"), -(15376, 0, "'u'"), -(15377, 0, "'t'"), -(15378, 0, "'e'"), -(15379, 0, "'r'"), -(15380, 0, "' '"), -(15381, 0, "'t'"), -(15382, 0, "'i'"), -(15383, 0, "'m'"), -(15384, 0, "'e'"), -(15385, 0, "' '"), -(15386, 0, "'b'"), -(15387, 0, "'y'"), -(15388, 0, "' '"), -(15389, 0, "'1'"), -(15390, 0, "' '"), -(15391, 0, "'b'"), -(15392, 0, "'i'"), -(15393, 0, "'l'"), -(15394, 0, "'l'"), -(15395, 0, "'i'"), -(15396, 0, "'o'"), -(15397, 0, "'n'"), -(15398, 0, "' '"), -(15399, 0, "'t'"), -(15400, 0, "'o'"), -(15401, 0, "' '"), -(15402, 0, "'m'"), -(15403, 0, "'a'"), -(15404, 0, "'k'"), -(15405, 0, "'e'"), -(15406, 0, "' '"), -(15407, 0, "'i'"), -(15408, 0, "'t'"), -(15409, 0, "' '"), -(15410, 0, "'m'"), -(15411, 0, "'o'"), -(15412, 0, "'r'"), -(15413, 0, "'e'"), -(15414, 0, "' '"), -(15415, 0, "'i'"), -(15416, 0, "'n'"), -(15417, 0, "'t'"), -(15418, 0, "'u'"), -(15419, 0, "'i'"), -(15420, 0, "'t'"), -(15421, 0, "'i'"), -(15422, 0, "'v'"), -(15423, 0, "'e'"), -(15424, 0, "'.'"), -(15425, 0, "' '"), -(15426, 0, "'O'"), -(15427, 0, "'n'"), -(15428, 0, "' '"), -(15429, 0, "'t'"), -(15430, 0, "'h'"), -(15431, 0, "'i'"), -(15432, 0, "'s'"), -(15433, 0, "' '"), -(15434, 0, "'t'"), -(15435, 0, "'i'"), -(15436, 0, "'m'"), -(15437, 0, "'e'"), -(15438, 0, "' '"), -(15439, 0, "'s'"), -(15440, 0, "'t'"), -(15441, 0, "'a'"), -(15441, 1, "''"), -(15440, 1, "''"), -(15440, 0, "'c'"), -(15441, 0, "'a'"), -(15442, 0, "'l'"), -(15443, 0, "'e'"), -(15444, 0, "','"), -(15445, 0, "' '"), -(15446, 0, "'e'"), -(15447, 0, "'a'"), -(15448, 0, "'c'"), -(15449, 0, "'h'"), -(15450, 4, "''"), -(15464, 1, "''"), -(15469, 0, "'s'"), -(15482, 0, "' '"), -(15483, 0, "'('"), -(15484, 0, "'a'"), -(15485, 0, "'b'"), -(15486, 0, "'o'"), -(15487, 0, "'u'"), -(15488, 0, "'t'"), -(15489, 0, "' '"), -(15490, 0, "'a'"), -(15491, 0, "' '"), -(15492, 0, "'h'"), -(15493, 0, "'e'"), -(15494, 0, "'a'"), -(15495, 0, "'r'"), -(15496, 0, "'t'"), -(15497, 0, "' '"), -(15498, 0, "'b'"), -(15499, 0, "'e'"), -(15500, 0, "'a'"), -(15501, 0, "'t'"), -(15502, 0, "')'"), -(15503, 1, "''"), -(15503, 0, "'.'"), -(15505, 0, "'A'"), -(15506, 0, "'n'"), -(15507, 0, "'d'"), -(15508, 0, "' '"), -(15552, 9, "''"), -(15551, 1, "''"), -(15551, 0, "'2'"), -(15552, 0, "' '"), -(15553, 0, "'m'"), -(15554, 0, "'i'"), -(15555, 0, "'n'"), -(15556, 0, "'u'"), -(15557, 0, "'t'"), -(15558, 0, "'e'"), -(15559, 0, "'s'"), -(15560, 46, "''"), -(15363, 0, "'['"), -(15425, 0, "']'"), -(15425, 1, "''"), -(15425, 0, "'](https://gist.github.com/hellerbarde/2843375)'"), -(15473, 2, "'A'"), -(15474, 0, "'t'"), -(15552, 3, "'E'"), -(15553, 0, "'a'"), -(15554, 0, "'c'"), -(15555, 0, "'h'"), -(15552, 4, "'A'"), -(15553, 0, "'n'"), -(15554, 0, "'d'"), -(15555, 0, "' '"), -(15556, 0, "'e'"), -(15557, 0, "'a'"), -(15558, 0, "'h'"), -(15558, 1, "''"), -(15558, 0, "'c'"), -(15559, 0, "'h'"), -(15567, 1, "''"), -(15566, 1, "''"), -(15565, 1, "''"), -(15610, 0, "' '"), -(15611, 0, "'A'"), -(15612, 0, "'r'"), -(15613, 0, "'r'"), -(15614, 0, "'a'"), -(15615, 0, "'n'"), -(15616, 0, "'g'"), -(15617, 0, "'i'"), -(15618, 0, "'n'"), -(15619, 0, "'g'"), -(15620, 0, "' '"), -(15621, 0, "'m'"), -(15622, 0, "'e'"), -(15623, 0, "'m'"), -(15624, 0, "'o'"), -(15625, 0, "'r'"), -(15626, 0, "'y'"), -(15627, 0, "' '"), -(15628, 0, "'l'"), -(15629, 0, "'i'"), -(15630, 0, "'k'"), -(15631, 0, "'e'"), -(15632, 0, "' '"), -(15633, 0, "'j'"), -(15634, 0, "'a'"), -(15635, 0, "'v'"), -(15636, 0, "'a'"), -(15637, 0, "'s'"), -(15638, 0, "'c'"), -(15639, 0, "'r'"), -(15640, 0, "'i'"), -(15641, 0, "'p'"), -(15642, 0, "'t'"), -(15643, 0, "' '"), -(15644, 0, "'d'"), -(15645, 0, "'o'"), -(15646, 0, "'e'"), -(15647, 0, "'s'"), -(15648, 0, "' '"), -(15649, 0, "'h'"), -(15650, 0, "'e'"), -(15651, 0, "'r'"), -(15652, 0, "'e'"), -(15653, 0, "' '"), -(15654, 0, "'i'"), -(15655, 0, "'s'"), -(15656, 0, "' '"), -(15657, 0, "'l'"), -(15658, 0, "'i'"), -(15659, 0, "'k'"), -(15660, 0, "'e'"), -(15661, 9, "''"), -(15724, 0, "' '"), -(15725, 0, "'i'"), -(15726, 0, "'n'"), -(15727, 0, "' '"), -(15728, 0, "'y'"), -(15729, 0, "'o'"), -(15730, 0, "'u'"), -(15731, 0, "'r'"), -(15732, 0, "' '"), -(15733, 0, "'l'"), -(15734, 0, "'i'"), -(15735, 0, "'s'"), -(15736, 0, "'t'"), -(15737, 7, "''"), -(15737, 1, "''"), -(15737, 0, "','"), -(15745, 1, "''"), -(15745, 0, "'v'"), -(15746, 0, "'e'"), -(15742, 0, "'r'"), -(15743, 0, "' '"), -(15744, 0, "'l'"), -(15745, 0, "'i'"), -(15746, 0, "'s'"), -(15747, 0, "'t'"), -(15748, 0, "' '"), -(15749, 0, "'i'"), -(15750, 0, "'s'"), -(15751, 0, "' '"), -(15752, 0, "'f'"), -(15753, 0, "'u'"), -(15754, 0, "'l'"), -(15755, 0, "'l'"), -(15756, 0, "' '"), -(15757, 0, "'o'"), -(15758, 0, "'f'"), -(15759, 0, "' '"), -(15760, 0, "'s'"), -(15761, 0, "'c'"), -(15762, 0, "'a'"), -(15763, 0, "'v'"), -(15764, 0, "'e'"), -(15765, 0, "'n'"), -(15766, 0, "'g'"), -(15767, 0, "'e'"), -(15768, 0, "'r'"), -(15769, 0, "' '"), -(15770, 0, "'h'"), -(15771, 0, "'u'"), -(15772, 0, "'n'"), -(15773, 0, "'t'"), -(15774, 0, "' '"), -(15775, 0, "'c'"), -(15776, 0, "'l'"), -(15777, 0, "'u'"), -(15778, 0, "'e'"), -(15779, 0, "'s'"), -(15780, 0, "'.'"), -(15782, 28, "''"), -(15782, 0, "'E'"), -(15783, 0, "'c'"), -(15784, 0, "'a'"), -(15785, 0, "'h'"), -(15786, 0, "' '"), -(15786, 1, "''"), -(15785, 1, "''"), -(15784, 1, "''"), -(15783, 1, "''"), -(15783, 0, "'a'"), -(15784, 0, "'c'"), -(15785, 0, "'h'"), -(15786, 0, "' '"), -(15787, 0, "'c'"), -(15788, 0, "'l'"), -(15789, 0, "'u'"), -(15790, 0, "'e'"), -(15791, 0, "' '"), -(15792, 0, "'n'"), -(15793, 0, "'a'"), -(15794, 0, "'m'"), -(15795, 0, "'e'"), -(15796, 0, "'s'"), -(15797, 11, "' '"), -(15798, 0, "'s'"), -(15799, 0, "'o'"), -(15800, 0, "'m'"), -(15801, 0, "'e'"), -(15802, 0, "'w'"), -(15803, 0, "'h'"), -(15804, 0, "'e'"), -(15805, 0, "'r'"), -(15806, 0, "'e'"), -(15807, 0, "' '"), -(15808, 7, "''"), -(15822, 3, "'w'"), -(15823, 0, "'i'"), -(15824, 0, "'t'"), -(15825, 0, "'h'"), -(15826, 0, "' '"), -(15827, 0, "'a'"), -(15828, 0, "' '"), -(15829, 0, "'t'"), -(15830, 0, "'i'"), -(15831, 0, "'n'"), -(15832, 0, "'y'"), -(15838, 5, "' '"), -(15839, 0, "'s'"), -(15840, 0, "'a'"), -(15841, 0, "'y'"), -(15842, 0, "'i'"), -(15843, 0, "'n'"), -(15844, 0, "'g'"), -(15858, 10, "''"), -(15898, 1, "''"), -(15898, 0, "','"), -(15899, 0, "' '"), -(15900, 0, "'a'"), -(15901, 0, "'n'"), -(15902, 0, "'d'"), -(15903, 0, "' '"), -(15904, 0, "'t'"), -(15905, 0, "'h'"), -(15906, 0, "'a'"), -(15907, 0, "'t'"), -(15908, 0, "'s'"), -(15909, 0, "' '"), -(15910, 0, "'w'"), -(15911, 0, "'h'"), -(15912, 0, "'a'"), -(15913, 0, "'t'"), -(15914, 0, "' '"), -(15915, 0, "'J'"), -(15916, 0, "'a'"), -(15917, 0, "'v'"), -(15918, 0, "'a'"), -(15919, 0, "'s'"), -(15920, 0, "'c'"), -(15921, 0, "'r'"), -(15922, 0, "'i'"), -(15923, 0, "'p'"), -(15924, 0, "'t'"), -(15925, 0, "' '"), -(15926, 0, "'d'"), -(15927, 0, "'o'"), -(15928, 0, "'e'"), -(15929, 0, "'s'"), -(15930, 0, "'.'"), -(15898, 1, "''"), -(15898, 0, "'.'"), -(15899, 6, "' '"), -(15900, 0, "'T'"), -(15752, 4, "'a'"), -(15753, 0, "'c'"), -(15754, 0, "'t'"), -(15755, 0, "'u'"), -(15756, 0, "'a'"), -(15757, 0, "'l'"), -(15758, 0, "'l'"), -(15759, 0, "'y'"), -(15760, 0, "' '"), -(15761, 0, "'a'"), -(15762, 3, "''"), -(15777, 6, "''"), -(15777, 0, "' '"), -(15778, 0, "'f'"), -(15779, 0, "'u'"), -(15780, 0, "'l'"), -(15781, 0, "'l'"), -(15782, 0, "' '"), -(15783, 0, "'o'"), -(15784, 0, "'f'"), -(15785, 0, "' '"), -(15786, 0, "'c'"), -(15787, 0, "'l'"), -(15788, 0, "'u'"), -(15789, 0, "'e'"), -(15790, 0, "'s'"), -(15832, 0, "' '"), -(15833, 0, "'-'"), -(15834, 0, "' '"), -(15835, 0, "'a'"), -(15836, 0, "'n'"), -(15837, 0, "'d'"), -(15838, 0, "' '"), -(15839, 0, "'i'"), -(15840, 0, "'f'"), -(15841, 0, "' '"), -(15842, 0, "'y'"), -(15843, 0, "'o'"), -(15844, 0, "'u'"), -(15845, 0, "' '"), -(15846, 0, "'g'"), -(15847, 0, "'o'"), -(15848, 0, "' '"), -(15849, 0, "'t'"), -(15850, 0, "'h'"), -(15851, 0, "'e'"), -(15852, 0, "'r'"), -(15853, 0, "'e'"), -(15854, 0, "' '"), -(15855, 0, "'y'"), -(15856, 0, "'o'"), -(15857, 0, "'u'"), -(15858, 0, "'''"), -(15859, 0, "'l'"), -(15860, 0, "'l'"), -(15861, 0, "' '"), -(15862, 0, "'f'"), -(15863, 0, "'i'"), -(15864, 0, "'n'"), -(15865, 0, "'d'"), -(15866, 5, "''"), -(15892, 0, "' '"), -(15893, 0, "'o'"), -(15894, 0, "'r'"), -(15895, 0, "' '"), -(15896, 0, "'''"), -(15897, 0, "'C'"), -(15898, 0, "'h'"), -(15899, 0, "'e'"), -(15900, 0, "'e'"), -(15901, 0, "'e'"), -(15901, 1, "''"), -(15901, 0, "'s'"), -(15902, 0, "'e'"), -(15903, 0, "'''"), -(15911, 1, "''"), -(15911, 0, "'n'"), -(15912, 0, "'n'"), -(16007, 4, "'s'"), -(16008, 0, "'q'"), -(16009, 0, "'u'"), -(16010, 0, "'i'"), -(16011, 0, "'s'"), -(16012, 0, "'h'"), -(16192, 0, "'s'"), -(16193, 0, "'l'"), -(16193, 1, "''"), -(16192, 1, "''"), -(16192, 0, "'l'"), -(16193, 0, "'o'"), -(16194, 0, "'n'"), -(16195, 0, "'g'"), -(16196, 0, "' '"), -(16197, 0, "'s'"), -(16198, 0, "'l'"), -(16199, 0, "'o'"), -(16200, 0, "'w'"), -(16201, 0, "' '"), -(16208, 0, "' '"), -(16209, 0, "'('"), -(16210, 0, "'R'"), -(16211, 0, "'e'"), -(16212, 0, "'m'"), -(16213, 0, "'e'"), -(16214, 0, "'m'"), -(16215, 0, "'b'"), -(16216, 0, "'e'"), -(16217, 0, "'r'"), -(16218, 0, "','"), -(16219, 0, "' '"), -(16220, 0, "'i'"), -(16221, 0, "'t'"), -(16222, 0, "'s'"), -(16223, 0, "' '"), -(16224, 0, "'a'"), -(16225, 0, "' '"), -(16226, 0, "'s'"), -(16227, 0, "'c'"), -(16228, 0, "'a'"), -(16229, 0, "'v'"), -(16230, 0, "'e'"), -(16231, 0, "'n'"), -(16232, 0, "'g'"), -(16233, 0, "'e'"), -(16234, 0, "'r'"), -(16235, 0, "' '"), -(16236, 0, "'h'"), -(16237, 0, "'u'"), -(16238, 0, "'n'"), -(16239, 0, "'t'"), -(16240, 0, "' '"), -(16241, 0, "'e'"), -(16242, 0, "'a'"), -(16243, 0, "'c'"), -(16244, 0, "'h'"), -(16245, 0, "' '"), -(16246, 0, "'t'"), -(16247, 0, "'i'"), -(16248, 0, "'m'"), -(16249, 0, "'e'"), -(16250, 0, "' '"), -(16251, 0, "'w'"), -(16252, 0, "'e'"), -(16253, 0, "' '"), -(16254, 0, "'m'"), -(16255, 0, "'o'"), -(16256, 0, "'v'"), -(16257, 0, "'e'"), -(16258, 0, "' '"), -(16259, 0, "'t'"), -(16260, 0, "'o'"), -(16261, 0, "' '"), -(16262, 0, "'t'"), -(16263, 0, "'h'"), -(16264, 0, "'e'"), -(16265, 0, "' '"), -(16266, 0, "'n'"), -(16220, 0, "'w'"), -(16221, 0, "'e'"), -(16222, 0, "' '"), -(16223, 0, "'d'"), -(16224, 0, "'o'"), -(16225, 3, "''"), -(16269, 0, "'e'"), -(16270, 0, "'x'"), -(16271, 0, "'t'"), -(16272, 0, "' '"), -(16273, 0, "'i'"), -(16274, 0, "'t'"), -(16275, 0, "'e'"), -(16276, 0, "'m'"), -(16277, 0, "' '"), -(16278, 0, "'w'"), -(16279, 0, "'i'"), -(16280, 0, "'t'"), -(16281, 0, "'h'"), -(16282, 0, "' '"), -(16283, 0, "'l'"), -(16284, 0, "'i'"), -(16285, 0, "'n'"), -(16286, 0, "'k'"), -(16287, 0, "'e'"), -(16288, 0, "'d'"), -(16289, 0, "' '"), -(16290, 0, "'l'"), -(16291, 0, "'i'"), -(16292, 0, "'s'"), -(16293, 0, "'t'"), -(16294, 0, "'s'"), -(16295, 0, "')'"), -(16295, 0, "'!'"), -(15952, 28, "''"), -(16575, 4, "'S'"), -(16576, 0, "'o'"), -(16577, 0, "' '"), -(16578, 0, "'I'"), -(16579, 0, "'''"), -(16580, 0, "'v'"), -(16581, 0, "'e'"), -(16582, 0, "' '"), -(16583, 0, "'b'"), -(16584, 0, "'e'"), -(16585, 0, "'e'"), -(16586, 0, "'n'"), -(16587, 0, "' '"), -(16575, 13, "''"), -(16574, 0, "'S'"), -(16575, 0, "'o'"), -(16576, 0, "' '"), -(16577, 0, "'I'"), -(16578, 0, "'''"), -(16579, 0, "'v'"), -(16580, 0, "'e'"), -(16581, 0, "' '"), -(16582, 0, "'b'"), -(16583, 0, "'e'"), -(16584, 0, "'e'"), -(16585, 0, "'n'"), -(16586, 0, "' '"), -(16587, 0, "'q'"), -(16588, 0, "'u'"), -(16589, 0, "'i'"), -(16590, 0, "'e'"), -(16591, 0, "'t'"), -(16592, 0, "'l'"), -(16593, 0, "'y'"), -(16594, 0, "' '"), -(16595, 0, "'b'"), -(16596, 0, "'u'"), -(16597, 0, "'i'"), -(16598, 0, "'l'"), -(16599, 0, "'d'"), -(16600, 0, "'i'"), -(16601, 0, "'n'"), -(16602, 0, "'g'"), -(16603, 0, "' '"), -(16605, 0, "'y'"), -(16606, 0, "'e'"), -(16607, 0, "'t'"), -(16608, 0, "' '"), -(16609, 0, "'a'"), -(16610, 0, "'n'"), -(16611, 0, "'o'"), -(16612, 0, "'t'"), -(16613, 0, "'h'"), -(16614, 0, "'e'"), -(16615, 0, "'r'"), -(16616, 0, "' '"), -(16617, 0, "'C'"), -(16618, 0, "'R'"), -(16619, 0, "'D'"), -(16620, 0, "'T'"), -(16621, 0, "' '"), -(16622, 0, "'i'"), -(16623, 0, "'m'"), -(16624, 0, "'e'"), -(16625, 0, "'p'"), -(16626, 0, "'l'"), -(16627, 0, "'e'"), -(16628, 0, "'m'"), -(16622, 7, "'i'"), -(16623, 0, "'m'"), -(16624, 0, "'p'"), -(16625, 0, "'l'"), -(16626, 0, "'e'"), -(16627, 0, "'m'"), -(16628, 0, "'e'"), -(16629, 0, "'n'"), -(16630, 0, "'t'"), -(16631, 0, "'a'"), -(16632, 0, "'t'"), -(16633, 0, "'i'"), -(16634, 0, "'o'"), -(16635, 0, "'n'"), -(16636, 0, "','"), -(16637, 0, "' '"), -(16638, 0, "'t'"), -(16639, 0, "'h'"), -(16640, 0, "'i'"), -(16641, 0, "'s'"), -(16642, 0, "' '"), -(16643, 0, "'t'"), -(16644, 0, "'i'"), -(16645, 0, "'m'"), -(16646, 0, "'e'"), -(16605, 42, "'a'"), -(16606, 0, "' '"), -(16607, 0, "'C'"), -(16608, 0, "'R'"), -(16609, 0, "'D'"), -(16610, 0, "'T'"), -(16611, 0, "' '"), -(16612, 0, "'i'"), -(16613, 0, "'m'"), -(16614, 0, "'p'"), -(16615, 0, "'l'"), -(16616, 0, "'e'"), -(16617, 0, "'m'"), -(16618, 0, "'e'"), -(16619, 0, "'n'"), -(16620, 0, "'t'"), -(16621, 0, "'a'"), -(16622, 0, "'t'"), -(16623, 0, "'i'"), -(16624, 0, "'o'"), -(16625, 0, "'n'"), -(16626, 0, "' '"), -(16627, 0, "'i'"), -(16628, 0, "'n'"), -(16629, 0, "' '"), -(16630, 0, "'r'"), -(16631, 0, "'u'"), -(16632, 0, "'s'"), -(16633, 0, "'t'"), -(16679, 78, "''"), -(16731, 24, "''"), -(16788, 3, "'a'"), -(16789, 0, "'l'"), -(16790, 0, "'l'"), -(16791, 0, "' '"), -(16792, 0, "'o'"), -(16793, 0, "'f'"), -(16794, 0, "' '"), -(16795, 0, "'i'"), -(16796, 0, "'t'"), -(16797, 0, "'s'"), -(16814, 0, "'i'"), -(16815, 0, "'n'"), -(16816, 0, "'e'"), -(16817, 0, "'r'"), -(16818, 0, "'n'"), -(16818, 1, "''"), -(16817, 1, "''"), -(16816, 1, "''"), -(16816, 0, "'t'"), -(16817, 0, "'e'"), -(16818, 0, "'r'"), -(16819, 0, "'n'"), -(16820, 0, "'a'"), -(16821, 0, "'l'"), -(16822, 0, "' '"), -(17055, 0, "'a'"), -(17056, 0, "'c'"), -(17057, 0, "'r'"), -(17058, 0, "'o'"), -(17059, 0, "'s'"), -(17060, 0, "'s'"), -(17061, 0, "' '"), -(17062, 0, "'a'"), -(17063, 0, "'n'"), -(17064, 0, "'d'"), -(17065, 0, "' '"), -(17066, 0, "'d'"), -(17067, 0, "'o'"), -(17068, 0, "'w'"), -(17069, 0, "'n'"), -(17070, 0, "' '"), -(17071, 4, "''"), -(17070, 1, "''"), -(17164, 1, "''"), -(17164, 0, "','"), -(17165, 0, "' '"), -(17166, 0, "'s'"), -(17167, 0, "'o'"), -(17168, 0, "' '"), -(17169, 0, "'w'"), -(17170, 0, "'e'"), -(17171, 0, "' '"), -(17172, 0, "'o'"), -(17173, 0, "'n'"), -(17174, 0, "'l'"), -(17175, 0, "'y'"), -(17176, 0, "' '"), -(17177, 0, "'n'"), -(17178, 0, "'e'"), -(17179, 0, "'e'"), -(17180, 0, "'d'"), -(17181, 0, "' '"), -(17182, 0, "'5'"), -(17183, 0, "' '"), -(17184, 0, "'r'"), -(17185, 0, "'e'"), -(17186, 0, "'a'"), -(17187, 0, "'d'"), -(17188, 0, "'s'"), -(17189, 0, "' '"), -(17190, 0, "'t'"), -(17191, 0, "'o'"), -(17192, 0, "' '"), -(17193, 0, "'f'"), -(17194, 0, "'i'"), -(17195, 0, "'n'"), -(17196, 0, "'d'"), -(17197, 0, "' '"), -(17198, 0, "'t'"), -(17199, 0, "'h'"), -(17200, 0, "'e'"), -(17201, 0, "' '"), -(17202, 0, "'i'"), -(17203, 0, "'t'"), -(17204, 0, "'e'"), -(17205, 0, "'m'"), -(17206, 0, "'.'"), -(17265, 9, "''"), -(17265, 0, "'t'"), -(17266, 0, "'h'"), -(17267, 0, "'e'"), -(17268, 0, "' '"), -(17269, 0, "'s'"), -(17270, 0, "'a'"), -(17271, 0, "'m'"), -(17272, 0, "'e'"), -(17273, 0, "' '"), -(17276, 0, "'o'"), -(17277, 0, "'r'"), -(17278, 0, "' '"), -(17279, 0, "'s'"), -(17280, 0, "'o'"), -(17281, 0, "' '"), -(17288, 13, "''"), -(17288, 22, "''"), -(17287, 1, "''"), -(17300, 58, "''"), -(17300, 0, "' '"), -(17301, 0, "'t'"), -(17302, 0, "'h'"), -(17303, 0, "'a'"), -(17304, 0, "'n'"), -(17305, 0, "' '"), -(17306, 0, "'n'"), -(17307, 0, "'e'"), -(17308, 0, "'e'"), -(17306, 3, "'w'"), -(17307, 0, "'h'"), -(17308, 0, "'e'"), -(17309, 0, "'n'"), -(17310, 0, "' '"), -(17311, 0, "'n'"), -(17311, 1, "''"), -(17311, 0, "'w'"), -(17312, 0, "'e'"), -(17313, 0, "' '"), -(17314, 0, "'n'"), -(17315, 0, "'e'"), -(17316, 0, "'e'"), -(17317, 0, "'d'"), -(17318, 0, "' '"), -(17318, 1, "''"), -(17318, 0, "'e'"), -(17306, 13, "'t'"), -(17307, 0, "'h'"), -(17308, 0, "'a'"), -(17309, 0, "'t'"), -(17310, 0, "' '"), -(17311, 0, "'j'"), -(17312, 0, "'a'"), -(17313, 0, "'v'"), -(17314, 0, "'a'"), -(17315, 0, "'s'"), -(17316, 0, "'c'"), -(17317, 0, "'r'"), -(17318, 0, "'i'"), -(17319, 0, "'p'"), -(17320, 0, "'t'"), -(17321, 0, "' '"), -(17322, 0, "'a'"), -(17323, 0, "'r'"), -(17324, 0, "'r'"), -(17325, 0, "'a'"), -(17326, 0, "'y'"), -(17327, 0, "'.'"), -(17328, 0, "'n'"), -(17329, 0, "'n'"), -(17330, 0, "'I'"), -(17331, 0, "'t'"), -(17332, 0, "' '"), -(17333, 0, "'m'"), -(17334, 0, "'i'"), -(17335, 0, "'g'"), -(17336, 0, "'h'"), -(17337, 0, "'t'"), -(17338, 0, "' '"), -(17339, 0, "'a'"), -(17340, 0, "'l'"), -(17340, 1, "''"), -(17339, 1, "''"), -(17339, 0, "'b'"), -(17340, 0, "'e'"), -(17341, 0, "' '"), -(17342, 0, "'f'"), -(17343, 0, "'a'"), -(17344, 0, "'s'"), -(17345, 0, "'t'"), -(17346, 0, "'e'"), -(17347, 0, "'r'"), -(17348, 0, "' '"), -(17349, 0, "'t'"), -(17350, 0, "'e'"), -(17350, 1, "''"), -(17349, 1, "''"), -(17349, 0, "'y'"), -(17350, 0, "'e'"), -(17351, 0, "'t'"), -(17352, 0, "' '"), -(17353, 0, "'t'"), -(17354, 0, "'o'"), -(17355, 0, "' '"), -(17356, 0, "'*'"), -(17357, 0, "'a'"), -(17358, 0, "'l'"), -(17359, 0, "'s'"), -(17360, 0, "'o'"), -(17361, 0, "'*'"), -(17362, 0, "' '"), -(17363, 0, "'c'"), -(17364, 0, "'a'"), -(17365, 0, "'c'"), -(17366, 0, "'h'"), -(17367, 0, "'e'"), -(17368, 0, "' '"), -(17369, 0, "'t'"), -(17370, 0, "'h'"), -(17371, 0, "'e'"), -(17372, 0, "' '"), -(17373, 0, "'l'"), -(17374, 0, "'o'"), -(17375, 0, "'c'"), -(17376, 0, "'a'"), -(17377, 0, "'t'"), -(17378, 0, "'i'"), -(17379, 0, "'o'"), -(17380, 0, "'n'"), -(17373, 0, "'l'"), -(17374, 0, "'a'"), -(17375, 0, "'s'"), -(17376, 0, "'t'"), -(17377, 0, "' '"), -(17386, 0, "'.'"), -(17387, 0, "' '"), -(17388, 0, "'I'"), -(17389, 0, "' '"), -(17390, 0, "'h'"), -(17391, 0, "'a'"), -(17392, 0, "'v'"), -(17393, 0, "'e'"), -(17394, 0, "'n'"), -(17395, 0, "'''"), -(17396, 0, "'t'"), -(17397, 0, "' '"), -(17398, 0, "'t'"), -(17399, 0, "'r'"), -(17400, 0, "'u'"), -(17401, 0, "'e'"), -(17402, 0, "'d'"), -(17403, 0, "' '"), -(17404, 0, "'t'"), -(17405, 0, "'h'"), -(17398, 8, "'t'"), -(17399, 0, "'r'"), -(17400, 0, "'i'"), -(17401, 0, "'e'"), -(17402, 0, "'d'"), -(17403, 0, "' '"), -(17404, 0, "'t'"), -(17405, 0, "'h'"), -(17406, 0, "'a'"), -(17407, 0, "'t'"), -(17408, 0, "' '"), -(17409, 0, "'y'"), -(17410, 0, "'e'"), -(17411, 0, "'t'"), -(17412, 0, "'.'"), -(17413, 0, "' '"), -(17414, 0, "'B'"), -(17415, 0, "'u'"), -(17416, 0, "'t'"), -(17417, 0, "' '"), -(17418, 0, "'i'"), -(17419, 0, "'t'"), -(17420, 0, "'s'"), -(17421, 0, "' '"), -(17422, 0, "'r'"), -(17423, 0, "'e'"), -(17424, 0, "'a'"), -(17425, 0, "'l'"), -(17426, 0, "'l'"), -(17427, 0, "'y'"), -(17428, 0, "' '"), -(17429, 0, "'f'"), -(17430, 0, "'a'"), -(17431, 0, "'s'"), -(17432, 0, "'t'"), -(17433, 0, "' '"), -(17434, 0, "'a'"), -(17435, 0, "'n'"), -(17436, 0, "'y'"), -(17437, 0, "'w'"), -(17438, 0, "'a'"), -(17439, 0, "'y'"), -(17440, 0, "'.'"), -(17441, 0, "'n'"), -(17442, 0, "'n'"), -(17663, 0, "'n'"), -(17444, 1, "''"), -(17662, 0, "'n'"), -(17443, 1, "''"), -(17661, 0, "'n'"), -(17442, 1, "''"), -(17660, 1, "''"), -(17442, 0, "'n'"), -(17363, 0, "'u'"), -(17364, 0, "'s'"), -(17365, 0, "'e'"), -(17366, 0, "' '"), -(17367, 0, "'y'"), -(17368, 0, "'j'"), -(17369, 0, "'s'"), -(17370, 0, "'''"), -(17371, 0, "'s'"), -(17372, 0, "' '"), -(17373, 0, "'t'"), -(17374, 0, "'r'"), -(17375, 0, "'i'"), -(17376, 0, "'c'"), -(17377, 0, "'k'"), -(17378, 0, "' '"), -(17379, 0, "'a'"), -(17380, 0, "'n'"), -(17381, 0, "'d'"), -(17382, 0, "' '"), -(17433, 28, "''"), -(17435, 219, "''"), -(17435, 0, "'W'"), -(17436, 0, "'e'"), -(17435, 2, "''"), -(17435, 0, "'In Javascript we can't even pack a single item into contiguous memory. In rust we can pack groups of 32 items all together in chunks. This will result in some memcpy-ing when we insert, but thats faster than you think.n'"), -(17435, 219, "''"), -(17435, 0, "'We'"), -(17437, 0, "' '"), -(17438, 0, "'c'"), -(17439, 0, "'a'"), -(17440, 0, "'n'"), -(17441, 0, "' '"), -(17442, 0, "'a'"), -(17443, 0, "'l'"), -(17444, 0, "'s'"), -(17445, 0, "'o'"), -(17446, 0, "' '"), -(17447, 0, "'p'"), -(17448, 0, "'a'"), -(17449, 0, "'c'"), -(17450, 0, "'k'"), -(17451, 0, "' '"), -(17452, 0, "'a'"), -(17453, 0, "'l'"), -(17454, 0, "'l'"), -(17455, 0, "' '"), -(17456, 0, "'t'"), -(17457, 0, "'h'"), -(17458, 0, "'e'"), -(17459, 0, "' '"), -(17460, 0, "'i'"), -(17461, 0, "'t'"), -(17462, 0, "'e'"), -(17463, 0, "'m'"), -(17464, 0, "'s'"), -(17465, 0, "' '"), -(17466, 0, "'t'"), -(17467, 0, "'i'"), -(17468, 0, "'g'"), -(17469, 0, "'h'"), -(17470, 0, "'t'"), -(17471, 0, "'l'"), -(17472, 0, "'y'"), -(17473, 0, "' '"), -(17474, 0, "'i'"), -(17475, 0, "'n'"), -(17476, 0, "' '"), -(17477, 0, "'m'"), -(17478, 0, "'e'"), -(17479, 0, "'m'"), -(17480, 0, "'o'"), -(17481, 0, "'r'"), -(17482, 0, "'y'"), -(17483, 0, "'.'"), -(17484, 0, "' '"), -(17485, 0, "'E'"), -(17486, 0, "'a'"), -(17487, 0, "'c'"), -(17488, 0, "'h'"), -(17489, 0, "' '"), -(17490, 0, "'l'"), -(17491, 0, "'e'"), -(17492, 0, "'a'"), -(17493, 0, "'f'"), -(17494, 0, "' '"), -(17495, 0, "'i'"), -(17496, 0, "'n'"), -(17497, 0, "' '"), -(17498, 0, "'t'"), -(17499, 0, "'h'"), -(17500, 0, "'e'"), -(17501, 0, "' '"), -(17502, 0, "'b'"), -(17503, 0, "'-'"), -(17504, 0, "'t'"), -(17505, 0, "'r'"), -(17506, 0, "'e'"), -(17507, 0, "'e'"), -(17508, 0, "' '"), -(17509, 0, "'i'"), -(17510, 0, "'s'"), -(17511, 0, "' '"), -(17512, 0, "'s'"), -(17513, 0, "'t'"), -(17514, 0, "'o'"), -(17515, 0, "'r'"), -(17516, 0, "'e'"), -(17517, 0, "'d'"), -(17518, 0, "' '"), -(17519, 0, "'i'"), -(17520, 0, "'n'"), -(17521, 0, "' '"), -(17522, 0, "'a'"), -(17523, 0, "' '"), -(17524, 0, "'s'"), -(17525, 0, "'i'"), -(17526, 0, "'n'"), -(17527, 0, "'g'"), -(17528, 0, "'l'"), -(17529, 0, "'e'"), -(17530, 0, "' '"), -(17531, 0, "'b'"), -(17532, 0, "'l'"), -(17533, 0, "'o'"), -(17534, 0, "'c'"), -(17535, 0, "'k'"), -(17536, 0, "' '"), -(17537, 0, "'f'"), -(17538, 0, "'o'"), -(17538, 1, "''"), -(17537, 1, "''"), -(17537, 0, "'o'"), -(17538, 0, "'f'"), -(17539, 0, "' '"), -(17540, 0, "'m'"), -(17541, 0, "'e'"), -(17542, 0, "'m'"), -(17543, 0, "'o'"), -(17544, 0, "'r'"), -(17545, 0, "'y'"), -(17546, 0, "'.'"), -(17547, 0, "' '"), -(17548, 0, "'T'"), -(17549, 0, "'h'"), -(17550, 0, "'a'"), -(17551, 0, "'t'"), -(17552, 0, "' '"), -(17553, 0, "'b'"), -(17554, 0, "'l'"), -(17555, 0, "'o'"), -(17556, 0, "'c'"), -(17557, 0, "'k'"), -(17558, 0, "' '"), -(17548, 11, "'A'"), -(17549, 0, "'t'"), -(17550, 0, "' '"), -(17551, 0, "'t'"), -(17552, 0, "'h'"), -(17553, 0, "'a'"), -(17554, 0, "'t'"), -(17555, 0, "' '"), -(17556, 0, "'b'"), -(17557, 0, "'l'"), -(17558, 0, "'o'"), -(17559, 0, "'c'"), -(17560, 0, "'k'"), -(17561, 0, "' '"), -(17562, 0, "'w'"), -(17563, 0, "'e'"), -(17564, 0, "' '"), -(17565, 0, "'s'"), -(17566, 0, "'t'"), -(17567, 0, "'o'"), -(17568, 0, "'r'"), -(17569, 0, "'e'"), -(17570, 0, "' '"), -(17571, 0, "'3'"), -(17572, 0, "'2'"), -(17573, 0, "' '"), -(17574, 0, "'e'"), -(17575, 0, "'n'"), -(17576, 0, "'t'"), -(17577, 0, "'r'"), -(17578, 0, "'i'"), -(17579, 0, "'e'"), -(17580, 0, "'s'"), -(17581, 0, "' '"), -(17582, 0, "'-'"), -(17583, 0, "' '"), -(17584, 0, "'e'"), -(17585, 0, "'a'"), -(17586, 0, "'c'"), -(17587, 0, "'h'"), -(17588, 0, "' '"), -(17589, 0, "'s'"), -(17590, 0, "'t'"), -(17591, 0, "'o'"), -(17592, 0, "'r'"), -(17593, 0, "'i'"), -(17594, 0, "'n'"), -(17595, 0, "'g'"), -(17596, 0, "' '"), -(17597, 0, "'i'"), -(17598, 0, "'n'"), -(17599, 0, "' '"), -(17600, 0, "'t'"), -(17601, 0, "'u'"), -(17602, 0, "'r'"), -(17603, 0, "'n'"), -(17604, 0, "' '"), -(17605, 0, "'a'"), -(17606, 0, "' '"), -(17607, 0, "'s'"), -(17608, 0, "'p'"), -(17609, 0, "'a'"), -(17610, 0, "'n'"), -(17611, 0, "' '"), -(17612, 0, "'o'"), -(17613, 0, "'f'"), -(17614, 0, "' '"), -(17615, 0, "'c'"), -(17616, 0, "'h'"), -(17617, 0, "'a'"), -(17618, 0, "'r'"), -(17619, 0, "'a'"), -(17620, 0, "'c'"), -(17621, 0, "'t'"), -(17622, 0, "'e'"), -(17623, 0, "'r'"), -(17624, 0, "'s'"), -(17625, 0, "'.'"), -(17626, 0, "' '"), -(17627, 0, "'T'"), -(17628, 0, "'h'"), -(17628, 1, "''"), -(17627, 1, "''"), -(17626, 1, "''"), -(17626, 0, "' '"), -(17627, 0, "'T'"), -(17628, 0, "'h'"), -(17629, 0, "'i'"), -(17630, 0, "'s'"), -(17631, 0, "' '"), -(17627, 5, "'S'"), -(17628, 0, "'o'"), -(17629, 0, "' '"), -(17630, 0, "'i'"), -(17631, 0, "'n'"), -(17632, 0, "'s'"), -(17633, 0, "'e'"), -(17634, 0, "'r'"), -(17635, 0, "'t'"), -(17636, 0, "'i'"), -(17637, 0, "'n'"), -(17638, 0, "'g'"), -(17639, 0, "' '"), -(17640, 0, "'*'"), -(17641, 0, "'d'"), -(17642, 0, "'o'"), -(17643, 0, "'e'"), -(17644, 0, "'s'"), -(17645, 0, "'*'"), -(17646, 0, "' '"), -(17647, 0, "'n'"), -(17648, 0, "'e'"), -(17649, 0, "'e'"), -(17650, 0, "'d'"), -(17651, 0, "' '"), -(17652, 0, "'a'"), -(17653, 0, "' '"), -(17654, 0, "'f'"), -(17655, 0, "'e'"), -(17656, 0, "'w'"), -(17657, 0, "' '"), -(17658, 0, "'m'"), -(17659, 0, "'e'"), -(17660, 0, "'m'"), -(17661, 0, "'c'"), -(17662, 0, "'p'"), -(17663, 0, "'y'"), -(17652, 12, "'s'"), -(17653, 0, "'o'"), -(17654, 0, "'m'"), -(17655, 0, "'e'"), -(17656, 0, "' '"), -(17657, 0, "'m'"), -(17658, 0, "'e'"), -(17659, 0, "'m'"), -(17660, 0, "'c'"), -(17661, 0, "'o'"), -(17662, 0, "'p'"), -(17663, 0, "'y'"), -(17663, 1, "''"), -(17662, 1, "''"), -(17661, 1, "''"), -(17661, 0, "'p'"), -(17662, 0, "'y'"), -(17663, 0, "'-'"), -(17664, 0, "'i'"), -(17665, 0, "'n'"), -(17666, 0, "'g'"), -(17667, 0, "','"), -(17668, 0, "' '"), -(17669, 0, "'b'"), -(17670, 0, "'u'"), -(17671, 0, "'t'"), -(17672, 0, "' '"), -(17673, 0, "'t'"), -(17674, 0, "'h'"), -(17675, 0, "'a'"), -(17676, 0, "'t'"), -(17677, 0, "'s'"), -(17673, 5, "'I'"), -(17674, 0, "'''"), -(17675, 0, "'m'"), -(17675, 1, "''"), -(17674, 1, "''"), -(17673, 1, "''"), -(17673, 0, "'t'"), -(17674, 0, "'h'"), -(17675, 0, "'a'"), -(17676, 0, "'t'"), -(17677, 0, "'s'"), -(17678, 0, "' '"), -(17679, 0, "'s'"), -(17680, 0, "'e'"), -(17681, 0, "'r'"), -(17682, 0, "'i'"), -(17683, 0, "'o'"), -(17684, 0, "'u'"), -(17685, 0, "'s'"), -(17686, 0, "'l'"), -(17687, 0, "'y'"), -(17688, 0, "' '"), -(17689, 0, "'f'"), -(17690, 0, "'a'"), -(17691, 0, "'s'"), -(17692, 0, "'t'"), -(17693, 0, "'e'"), -(17694, 0, "'r'"), -(17695, 0, "' '"), -(17696, 0, "'t'"), -(17697, 0, "'h'"), -(17698, 0, "'a'"), -(17699, 0, "'n'"), -(17700, 0, "' '"), -(17701, 0, "'y'"), -(17702, 0, "'o'"), -(17703, 0, "'u'"), -(17704, 0, "' '"), -(17705, 0, "'t'"), -(17706, 0, "'h'"), -(17707, 0, "'i'"), -(17708, 0, "'n'"), -(17709, 0, "'k'"), -(17710, 0, "' '"), -(17711, 0, "'i'"), -(17712, 0, "'t'"), -(17713, 0, "' '"), -(17714, 0, "'i'"), -(17715, 0, "'s'"), -(17716, 0, "'.'"), -(17717, 0, "' '"), -(17718, 0, "'M'"), -(17719, 0, "'u'"), -(17720, 0, "'c'"), -(17721, 0, "'h'"), -(17722, 0, "' '"), -(17723, 0, "'f'"), -(17724, 0, "'a'"), -(17725, 0, "'s'"), -(17726, 0, "'t'"), -(17727, 0, "'e'"), -(17728, 0, "'r'"), -(17704, 0, "' '"), -(17705, 0, "'u'"), -(17706, 0, "'i'"), -(17706, 1, "''"), -(17705, 1, "''"), -(17705, 0, "'i'"), -(17706, 0, "'n'"), -(17707, 0, "'t'"), -(17708, 0, "'u'"), -(17709, 0, "'i'"), -(17710, 0, "'t'"), -(17711, 0, "'i'"), -(17712, 0, "'e'"), -(17712, 1, "''"), -(17712, 0, "'v'"), -(17713, 0, "'e'"), -(17714, 0, "'l'"), -(17715, 0, "'y'"), -(17730, 11, "''"), -(17729, 1, "''"), -(17672, 0, "' '"), -(17673, 0, "'i'"), -(17674, 0, "'t'"), -(17675, 0, "'s'"), -(17676, 0, "' '"), -(17677, 0, "'f'"), -(17678, 0, "'i'"), -(17679, 0, "'n'"), -(17680, 0, "'e'"), -(17681, 0, "' '"), -(17682, 0, "'-'"), -(17690, 0, "'s'"), -(17691, 0, "'t'"), -(17692, 0, "'i'"), -(17693, 0, "'l'"), -(17694, 0, "'l'"), -(17695, 0, "' '"), -(17717, 29, "' '"), -(17718, 0, "'d'"), -(17719, 0, "'o'"), -(17720, 0, "'i'"), -(17721, 0, "'n'"), -(17722, 0, "'g'"), -(17673, 50, "'m'"), -(17674, 0, "'e'"), -(17675, 0, "'m'"), -(17676, 0, "'c'"), -(17677, 0, "'p'"), -(17678, 0, "'y'"), -(17672, 1, "''"), -(17672, 0, "' '"), -(17673, 0, "'a'"), -(17674, 0, "' '"), -(17675, 0, "'l'"), -(17676, 0, "'i'"), -(17677, 0, "'t'"), -(17678, 0, "'t'"), -(17679, 0, "'l'"), -(17680, 0, "'e'"), -(17681, 0, "' '"), -(17682, 0, "'b'"), -(17683, 0, "'i'"), -(17684, 0, "'t'"), -(17685, 0, "' '"), -(17686, 0, "'o'"), -(17687, 0, "'f'"), -(17688, 0, "' '"), -(17695, 0, "' '"), -(17696, 0, "'i'"), -(17697, 0, "'s'"), -(17698, 0, "' '"), -(17699, 0, "'f'"), -(17700, 0, "'i'"), -(17701, 0, "'n'"), -(17702, 0, "'e'"), -(17703, 0, "'.'"), -(17704, 0, "' '"), -(17705, 0, "'I'"), -(17706, 0, "'t'"), -(17707, 0, "'s'"), -(17708, 0, "' '"), -(17709, 0, "'f'"), -(17710, 0, "'a'"), -(17711, 0, "'s'"), -(17712, 0, "'t'"), -(17713, 0, "'e'"), -(17714, 0, "'r'"), -(17715, 0, "' '"), -(17716, 0, "'t'"), -(17717, 0, "'h'"), -(17718, 0, "'a'"), -(17719, 0, "'n'"), -(17720, 0, "' '"), -(17721, 0, "'y'"), -(17722, 0, "'o'"), -(17723, 0, "'u'"), -(17724, 0, "' '"), -(17725, 0, "'t'"), -(17726, 0, "'h'"), -(17727, 0, "'i'"), -(17728, 0, "'n'"), -(17729, 0, "'k'"), -(17709, 0, "'s'"), -(17710, 0, "'e'"), -(17711, 0, "'r'"), -(17712, 0, "'i'"), -(17713, 0, "'o'"), -(17714, 0, "'u'"), -(17715, 0, "'s'"), -(17716, 0, "'l'"), -(17717, 0, "'y'"), -(17718, 0, "' '"), -(17740, 0, "'.'"), -(17741, 0, "'n'"), -(17742, 0, "'n'"), -(17743, 0, "'A'"), -(17744, 0, "'n'"), -(17745, 0, "'y'"), -(17746, 0, "'w'"), -(17747, 0, "'a'"), -(17748, 0, "'y'"), -(17749, 0, "','"), -(17750, 0, "' '"), -(17751, 0, "'h'"), -(17752, 0, "'o'"), -(17753, 0, "'w'"), -(17754, 0, "' '"), -(17755, 0, "'m'"), -(17755, 1, "''"), -(17755, 0, "'f'"), -(17756, 0, "'a'"), -(17757, 0, "'s'"), -(17758, 0, "'t'"), -(17759, 0, "'?'"), -(17759, 1, "''"), -(17759, 0, "' '"), -(17760, 0, "'d'"), -(17761, 0, "'o'"), -(17762, 0, "'e'"), -(17763, 0, "'s'"), -(17764, 0, "' '"), -(17765, 0, "'i'"), -(17766, 0, "'t'"), -(17767, 0, "' '"), -(17768, 0, "'g'"), -(17769, 0, "'o'"), -(17770, 0, "'?'"), -(17771, 0, "'n'"), -(17772, 0, "'n'"), -(17773, 0, "'C'"), -(17774, 0, "'a'"), -(17775, 0, "'l'"), -(17776, 0, "'l'"), -(17777, 0, "'e'"), -(17778, 0, "'d'"), -(17779, 0, "' '"), -(17780, 0, "'f'"), -(17781, 0, "'r'"), -(17782, 0, "'o'"), -(17783, 0, "'m'"), -(17784, 0, "' '"), -(17785, 0, "'j'"), -(17786, 0, "'a'"), -(17787, 0, "'v'"), -(17788, 0, "'a'"), -(17789, 0, "'s'"), -(17790, 0, "'c'"), -(17791, 0, "'r'"), -(17792, 0, "'i'"), -(17793, 0, "'p'"), -(17794, 0, "'t'"), -(17795, 0, "' '"), -(17796, 0, "'t'"), -(17797, 0, "'h'"), -(17798, 0, "'r'"), -(17799, 0, "'o'"), -(17800, 0, "'u'"), -(17801, 0, "'g'"), -(17802, 0, "'h'"), -(17803, 0, "' '"), -(17804, 0, "'w'"), -(17805, 0, "'e'"), -(17806, 0, "'b'"), -(17807, 0, "'a'"), -(17808, 0, "'p'"), -(17808, 1, "''"), -(17808, 0, "'s'"), -(17809, 0, "'s'"), -(17810, 0, "'e'"), -(17811, 0, "'m'"), -(17812, 0, "'b'"), -(17813, 0, "'l'"), -(17814, 0, "'y'"), -(17815, 0, "','"), -(17816, 0, "' '"), -(17817, 0, "'t'"), -(17818, 0, "'h'"), -(17819, 0, "'e'"), -(17820, 0, "' '"), -(17821, 0, "'b'"), -(17822, 0, "'e'"), -(17823, 0, "'n'"), -(17824, 0, "'c'"), -(17825, 0, "'h'"), -(17826, 0, "'m'"), -(17827, 0, "'a'"), -(17828, 0, "'r'"), -(17829, 0, "'k'"), -(17817, 13, "'w'"), -(17818, 0, "'e'"), -(17819, 0, "'''"), -(17820, 0, "'r'"), -(17821, 0, "'e'"), -(17822, 0, "' '"), -(17823, 0, "'d'"), -(17824, 0, "'o'"), -(17825, 0, "'w'"), -(17826, 0, "'n'"), -(17827, 0, "' '"), -(17828, 0, "'t'"), -(17829, 0, "'o'"), -(17830, 0, "' '"), -(17831, 0, "'0'"), -(17832, 0, "'.'"), -(17833, 0, "'2'"), -(17834, 0, "' '"), -(17835, 0, "'s'"), -(17836, 0, "'e'"), -(17837, 0, "'c'"), -(17838, 0, "'o'"), -(17839, 0, "'n'"), -(17840, 0, "'d'"), -(17841, 0, "'s'"), -(17842, 0, "'.'"), -(17843, 0, "' '"), -(17844, 0, "'C'"), -(17845, 0, "'a'"), -(17846, 0, "'l'"), -(17847, 0, "'l'"), -(17848, 0, "'e'"), -(17849, 0, "'d'"), -(17850, 0, "' '"), -(17851, 0, "'d'"), -(17852, 0, "'i'"), -(17853, 0, "'r'"), -(17854, 0, "'e'"), -(17855, 0, "'c'"), -(17856, 0, "'t'"), -(17857, 0, "'l'"), -(17858, 0, "'y'"), -(17859, 0, "' '"), -(17860, 0, "'f'"), -(17861, 0, "'r'"), -(17862, 0, "'o'"), -(17863, 0, "'m'"), -(17864, 0, "' '"), -(17865, 0, "'r'"), -(17866, 0, "'u'"), -(17867, 0, "'s'"), -(17868, 0, "'t'"), -(17869, 0, "','"), -(17870, 0, "' '"), -(17871, 0, "'t'"), -(17871, 1, "''"), -(17871, 0, "'w'"), -(17872, 0, "'e'"), -(17873, 0, "' '"), -(17874, 0, "'c'"), -(17875, 0, "'a'"), -(17876, 0, "'n'"), -(17877, 0, "' '"), -(17878, 0, "'p'"), -(17879, 0, "'r'"), -(17880, 0, "'o'"), -(17881, 0, "'e'"), -(17881, 1, "''"), -(17881, 0, "'c'"), -(17882, 0, "'e'"), -(17883, 0, "'s'"), -(17884, 0, "'s'"), -(17885, 0, "' '"), -(17886, 0, "'t'"), -(17887, 0, "'h'"), -(17888, 0, "'i'"), -(17889, 0, "'s'"), -(17890, 0, "' '"), -(17891, 0, "'e'"), -(17892, 0, "'d'"), -(17893, 0, "'i'"), -(17894, 0, "'t'"), -(17895, 0, "'i'"), -(17896, 0, "'n'"), -(17897, 0, "'g'"), -(17898, 0, "' '"), -(17899, 0, "'t'"), -(17900, 0, "'r'"), -(17901, 0, "'a'"), -(17902, 0, "'c'"), -(17903, 0, "'e'"), -(17904, 0, "' '"), -(17905, 0, "'i'"), -(17906, 0, "'n'"), -(17907, 0, "' '"), -(17833, 1, "''"), -(17832, 1, "''"), -(17831, 1, "''"), -(17830, 1, "''"), -(17830, 0, "' '"), -(17831, 0, "'2'"), -(17832, 0, "'0'"), -(17833, 0, "'0'"), -(17834, 0, "' '"), -(17835, 0, "'m'"), -(17836, 0, "'i'"), -(17837, 0, "'l'"), -(17838, 0, "'l'"), -(17839, 0, "'i'"), -(17840, 1, "''"), -(17913, 0, "'6'"), -(17914, 0, "'5'"), -(17915, 0, "' '"), -(17916, 0, "'n'"), -(17916, 1, "''"), -(17916, 0, "'m'"), -(17917, 0, "'i'"), -(17918, 0, "'l'"), -(17919, 0, "'l'"), -(17920, 0, "'i'"), -(17921, 0, "'s'"), -(17922, 0, "'e'"), -(17923, 0, "'c'"), -(17924, 0, "'o'"), -(17925, 0, "'n'"), -(17926, 0, "'d'"), -(17927, 0, "'s'"), -(17928, 0, "'.'"), -(17929, 0, "' '"), -(17930, 0, "'A'"), -(17931, 0, "'n'"), -(17932, 0, "'d'"), -(17933, 0, "' '"), -(17929, 5, "''"), -(17741, 0, "'n'"), -(17742, 0, "'n'"), -(17743, 0, "'T'"), -(17744, 0, "'h'"), -(17745, 0, "'e'"), -(17746, 0, "'r'"), -(17747, 0, "'e'"), -(17748, 0, "'''"), -(17749, 0, "'s'"), -(17750, 0, "' '"), -(17751, 0, "'o'"), -(17752, 0, "'n'"), -(17753, 0, "'e'"), -(17754, 0, "' '"), -(17755, 0, "'l'"), -(17756, 0, "'a'"), -(17757, 0, "'s'"), -(17758, 0, "'t'"), -(17759, 0, "' '"), -(17760, 0, "'t'"), -(17761, 0, "'h'"), -(17762, 0, "'i'"), -(17763, 0, "'n'"), -(17764, 0, "'g'"), -(17765, 0, "' '"), -(17766, 0, "'I'"), -(17767, 0, "'''"), -(17768, 0, "'v'"), -(17769, 0, "'e'"), -(17770, 0, "' '"), -(17771, 0, "'d'"), -(17772, 0, "'o'"), -(17773, 0, "'n'"), -(17774, 0, "'e'"), -(17775, 0, "'.'"), -(17776, 0, "' '"), -(17777, 0, "'I'"), -(17778, 0, "' '"), -(17779, 0, "'d'"), -(17780, 0, "'o'"), -(17781, 0, "'n'"), -(17782, 0, "'''"), -(17783, 0, "'t'"), -(17784, 0, "' '"), -(17785, 0, "'k'"), -(17786, 0, "'n'"), -(17787, 0, "'o'"), -(17788, 0, "'w'"), -(17789, 0, "' '"), -(17790, 0, "'i'"), -(17791, 0, "'f'"), -(17792, 0, "' '"), -(17793, 0, "'i'"), -(17794, 0, "'t'"), -(17795, 0, "'s'"), -(17796, 0, "' '"), -(17797, 0, "'a'"), -(17798, 0, "' '"), -(17799, 0, "'g'"), -(17800, 0, "'o'"), -(17801, 0, "'o'"), -(17802, 0, "'d'"), -(17803, 0, "' '"), -(17804, 0, "'i'"), -(17805, 0, "'d'"), -(17806, 0, "'e'"), -(17807, 0, "'a'"), -(17808, 0, "','"), -(17809, 0, "' '"), -(17810, 0, "'b'"), -(17811, 0, "'u'"), -(17812, 0, "'t'"), -(17813, 0, "' '"), -(17814, 0, "'I'"), -(17815, 0, "' '"), -(17816, 0, "'s'"), -(17817, 0, "'u'"), -(17818, 0, "'s'"), -(17819, 0, "'p'"), -(17820, 0, "'e'"), -(17821, 0, "'c'"), -(17822, 0, "'t'"), -(17823, 0, "' '"), -(17824, 0, "'i'"), -(17825, 0, "'t'"), -(17826, 0, "'s'"), -(17827, 0, "' '"), -(17816, 12, "''"), -(17816, 0, "'d'"), -(17817, 0, "'i'"), -(17818, 0, "' '"), -(17819, 0, "'i'"), -(17819, 1, "''"), -(17818, 1, "''"), -(17818, 0, "'d'"), -(17819, 0, "' '"), -(17820, 0, "'i'"), -(17821, 0, "'t'"), -(17822, 0, "' '"), -(17822, 1, "''"), -(17822, 0, "' '"), -(17823, 0, "'a'"), -(17824, 0, "'n'"), -(17825, 0, "'y'"), -(17826, 0, "'w'"), -(17827, 0, "'a'"), -(17828, 0, "'y'"), -(17829, 0, "'.'"), -(17830, 0, "'n'"), -(17831, 0, "'n'"), -(17831, 1, "''"), -(17830, 1, "''"), -(17830, 0, "' '"), -(17831, 0, "'I'"), -(17832, 0, "' '"), -(17833, 0, "'m'"), -(17834, 0, "'o'"), -(17835, 0, "'v'"), -(17836, 0, "'e'"), -(17837, 0, "'d'"), -(17838, 0, "' '"), -(17839, 0, "'t'"), -(17840, 0, "'h'"), -(17841, 0, "'e'"), -(17842, 0, "' '"), -(17843, 0, "'t'"), -(17844, 0, "'e'"), -(17845, 0, "'x'"), -(17846, 0, "'t'"), -(17847, 0, "' '"), -(17848, 0, "'c'"), -(17849, 0, "'o'"), -(17850, 0, "'n'"), -(17851, 0, "'t'"), -(17852, 0, "'e'"), -(17853, 0, "'n'"), -(17854, 0, "'t'"), -(17855, 0, "' '"), -(17856, 0, "'i'"), -(17857, 0, "'t'"), -(17858, 0, "'s'"), -(17859, 0, "'e'"), -(17860, 0, "'l'"), -(17861, 0, "'f'"), -(17862, 0, "' '"), -(17863, 0, "'i'"), -(17864, 0, "'n'"), -(17865, 0, "'t'"), -(17866, 0, "'o'"), -(17867, 0, "' '"), -(17868, 0, "'a'"), -(17869, 0, "' '"), -(17869, 1, "''"), -(17869, 0, "'n'"), -(17870, 0, "'o'"), -(17871, 0, "'t'"), -(17872, 0, "'h'"), -(17873, 0, "'e'"), -(17874, 0, "'r'"), -(17875, 0, "' '"), -(17876, 0, "'s'"), -(17877, 0, "'t'"), -(17878, 0, "'r'"), -(17879, 0, "'u'"), -(17880, 0, "'c'"), -(17881, 0, "'t'"), -(17882, 0, "'u'"), -(17883, 0, "'r'"), -(17884, 0, "'e'"), -(17885, 0, "'s'"), -(17886, 0, "'.'"), -(17886, 1, "''"), -(17885, 1, "''"), -(17885, 0, "'.'"), -(17886, 0, "' '"), -(17887, 0, "'S'"), -(17887, 1, "''"), -(17887, 0, "'W'"), -(17888, 0, "'h'"), -(17889, 0, "'e'"), -(17890, 0, "'n'"), -(17891, 0, "' '"), -(17892, 0, "'y'"), -(17893, 0, "'o'"), -(17894, 0, "'u'"), -(17895, 0, "'''"), -(17896, 0, "'r'"), -(17897, 0, "'e'"), -(17898, 0, "' '"), -(17899, 0, "'a'"), -(17900, 0, "'c'"), -(17901, 0, "'t'"), -(17902, 0, "'u'"), -(17903, 0, "'a'"), -(17904, 0, "'l'"), -(17905, 0, "'l'"), -(17906, 0, "'y'"), -(17907, 0, "' '"), -(17908, 0, "'d'"), -(17909, 0, "'o'"), -(17910, 0, "'i'"), -(17911, 0, "'n'"), -(17912, 0, "'g'"), -(17913, 0, "' '"), -(17914, 0, "'c'"), -(17915, 0, "'o'"), -(17916, 0, "'l'"), -(17917, 0, "'l'"), -(17918, 0, "'a'"), -(17919, 0, "'b'"), -(17920, 0, "'o'"), -(17921, 0, "'r'"), -(17922, 0, "'a'"), -(17923, 0, "'t'"), -(17924, 0, "'i'"), -(17925, 0, "'v'"), -(17926, 0, "'e'"), -(17927, 0, "' '"), -(17928, 0, "'e'"), -(17929, 0, "'d'"), -(17930, 0, "'i'"), -(17931, 0, "'t'"), -(17932, 0, "'i'"), -(17933, 0, "'n'"), -(17934, 0, "'g'"), -(17935, 0, "' '"), -(17935, 1, "''"), -(17935, 0, "','"), -(17936, 0, "' '"), -(17937, 0, "'y'"), -(17938, 0, "'o'"), -(17939, 0, "'u'"), -(17940, 0, "' '"), -(17941, 0, "'h'"), -(17942, 0, "'a'"), -(17943, 0, "'v'"), -(17944, 0, "'e'"), -(17945, 0, "' '"), -(17946, 0, "'a'"), -(17947, 0, "'l'"), -(17948, 0, "'l'"), -(17949, 0, "' '"), -(17950, 0, "'t'"), -(17951, 0, "'h'"), -(17952, 0, "'e'"), -(17953, 0, "' '"), -(17954, 0, "'c'"), -(17955, 0, "'a'"), -(17956, 0, "'r'"), -(17956, 1, "''"), -(17955, 1, "''"), -(17955, 0, "'h'"), -(17956, 0, "'a'"), -(17957, 0, "'r'"), -(17958, 0, "'a'"), -(17959, 0, "'c'"), -(17960, 0, "'t'"), -(17961, 0, "'e'"), -(17962, 0, "'r'"), -(17963, 0, "'s'"), -(17964, 0, "' '"), -(17965, 0, "'i'"), -(17966, 0, "'n'"), -(17967, 0, "' '"), -(17968, 0, "'y'"), -(17969, 0, "'o'"), -(17970, 0, "'u'"), -(17971, 0, "'r'"), -(17972, 0, "' '"), -(17973, 0, "'o'"), -(17974, 0, "'d'"), -(17975, 0, "'n'"), -(17976, 0, "'w'"), -(17973, 4, "'d'"), -(17974, 0, "'o'"), -(17975, 0, "'c'"), -(17976, 0, "'u'"), -(17977, 0, "'m'"), -(17978, 0, "'e'"), -(17979, 0, "'n'"), -(17980, 0, "'t'"), -(17981, 0, "' '"), -(17982, 0, "'i'"), -(17983, 0, "'n'"), -(17984, 0, "' '"), -(17940, 0, "' '"), -(17941, 0, "'p'"), -(17942, 0, "'r'"), -(17943, 0, "'o'"), -(17944, 0, "'b'"), -(17945, 0, "'a'"), -(17946, 0, "'b'"), -(17947, 0, "'l'"), -(17948, 0, "'y'"), -(17949, 0, "' '"), -(17950, 0, "'w'"), -(17951, 0, "'a'"), -(17952, 0, "'n'"), -(17953, 0, "'t'"), -(17954, 0, "' '"), -(17955, 0, "'t'"), -(17956, 0, "'o'"), -(18002, 0, "'a'"), -(18003, 0, "'n'"), -(18004, 0, "' '"), -(18005, 0, "'a'"), -(18006, 0, "'c'"), -(18007, 0, "'t'"), -(18008, 0, "'u'"), -(18009, 0, "'a'"), -(18010, 0, "'l'"), -(18011, 0, "' '"), -(18012, 0, "'a'"), -(18013, 0, "'r'"), -(18014, 0, "'r'"), -(18015, 0, "'a'"), -(18016, 0, "'y'"), -(18017, 0, "','"), -(18018, 0, "' '"), -(18019, 0, "'o'"), -(18020, 0, "'r'"), -(18021, 0, "' '"), -(18022, 0, "'a'"), -(18023, 0, "'n'"), -(18024, 0, "' '"), -(18025, 0, "'a'"), -(18026, 0, "'c'"), -(18027, 0, "'t'"), -(18028, 0, "'u'"), -(18029, 0, "'a'"), -(18030, 0, "'l'"), -(18031, 0, "' '"), -(18032, 0, "'s'"), -(18033, 0, "'t'"), -(18034, 0, "'r'"), -(18035, 0, "'i'"), -(18036, 0, "'n'"), -(18037, 0, "'g'"), -(18038, 0, "' '"), -(18039, 0, "'o'"), -(18040, 0, "'r'"), -(18041, 0, "' '"), -(18042, 0, "'s'"), -(18043, 0, "'o'"), -(18044, 0, "'m'"), -(18045, 0, "'e'"), -(18046, 0, "'t'"), -(18047, 0, "'h'"), -(18048, 0, "'i'"), -(18049, 0, "'n'"), -(18050, 0, "'g'"), -(18051, 0, "'.'"), -(18052, 0, "' '"), -(18053, 0, "'S'"), -(18054, 0, "'o'"), -(18055, 0, "' '"), -(18056, 0, "'I'"), -(18057, 0, "' '"), -(18058, 0, "'m'"), -(18059, 0, "'a'"), -(18060, 0, "'d'"), -(18061, 0, "'e'"), -(18062, 0, "' '"), -(18063, 0, "'i'"), -(18064, 0, "'t'"), -(18065, 0, "' '"), -(18066, 0, "'s'"), -(18067, 0, "'o'"), -(18068, 0, "' '"), -(18069, 0, "'t'"), -(18070, 0, "'h'"), -(18071, 0, "'e'"), -(18072, 0, "' '"), -(18073, 0, "'C'"), -(18074, 0, "'R'"), -(18075, 0, "'D'"), -(18076, 0, "'T'"), -(18077, 0, "' '"), -(18078, 0, "'d'"), -(18079, 0, "'a'"), -(18080, 0, "'t'"), -(18081, 0, "'a'"), -(18082, 0, "' '"), -(18083, 0, "'s'"), -(18084, 0, "'t'"), -(18085, 0, "'r'"), -(18086, 0, "'u'"), -(18087, 0, "'c'"), -(18088, 0, "'t'"), -(18089, 0, "'u'"), -(18090, 0, "'r'"), -(18091, 0, "'e'"), -(18092, 0, "' '"), -(18093, 0, "'o'"), -(18094, 0, "'n'"), -(18095, 0, "'o'"), -(18096, 0, "'l'"), -(18096, 1, "''"), -(18095, 1, "''"), -(18095, 0, "'l'"), -(18096, 0, "'y'"), -(17829, 0, "' '"), -(17830, 0, "'b'"), -(17831, 0, "'e'"), -(17832, 0, "'c'"), -(17833, 0, "'a'"), -(17834, 0, "'u'"), -(17835, 0, "'s'"), -(17836, 0, "'e'"), -(17837, 0, "' '"), -(17838, 0, "'i'"), -(17839, 0, "'t'"), -(17840, 0, "' '"), -(17841, 0, "'s'"), -(17842, 0, "'e'"), -(17843, 0, "'e'"), -(17844, 0, "'m'"), -(17845, 0, "'e'"), -(17846, 0, "'d'"), -(17847, 0, "' '"), -(17848, 0, "'c'"), -(17849, 0, "'l'"), -(17850, 0, "'e'"), -(17851, 0, "'v'"), -(17852, 0, "'e'"), -(17853, 0, "'r'"), -(17854, 0, "' '"), -(17855, 0, "'a'"), -(17856, 0, "'t'"), -(17857, 0, "' '"), -(17858, 0, "'t'"), -(17859, 0, "'h'"), -(17860, 0, "'e'"), -(17861, 0, "' '"), -(17862, 0, "'t'"), -(17863, 0, "'i'"), -(17864, 0, "'m'"), -(17865, 0, "'e'"), -(17854, 12, "''"), -(17893, 7, "'a'"), -(17894, 0, "' '"), -(17895, 0, "'s'"), -(17896, 0, "'e'"), -(17897, 0, "'p'"), -(17898, 0, "'a'"), -(17899, 0, "'r'"), -(17900, 0, "'a'"), -(17901, 0, "'t'"), -(17902, 0, "'e'"), -(17903, 0, "' '"), -(17904, 0, "'d'"), -(17905, 0, "'a'"), -(17906, 0, "'t'"), -(17907, 0, "'a'"), -(17920, 0, "'S'"), -(17921, 0, "'e'"), -(17922, 0, "'e'"), -(17923, 0, "','"), -(17924, 0, "' '"), -(17925, 1, "''"), -(17925, 0, "'w'"), -(17992, 8, "''"), -(18072, 9, "'i'"), -(18073, 0, "'n'"), -(18074, 0, "' '"), -(18075, 0, "'V'"), -(18076, 0, "'S'"), -(18077, 0, "' '"), -(18078, 0, "'C'"), -(18079, 0, "'o'"), -(18080, 0, "'d'"), -(18081, 0, "'e'"), -(18082, 0, "'''"), -(18083, 0, "'s'"), -(18084, 0, "' '"), -(18085, 0, "'d'"), -(18086, 0, "'a'"), -(18087, 0, "'t'"), -(18088, 0, "'a'"), -(18089, 0, "' '"), -(18090, 0, "'s'"), -(18091, 0, "'t'"), -(18092, 0, "'r'"), -(18093, 0, "'u'"), -(18094, 0, "'c'"), -(18095, 0, "'t'"), -(18096, 0, "'u'"), -(18097, 0, "'r'"), -(18098, 0, "'e'"), -(18099, 0, "'s'"), -(18100, 0, "' '"), -(18101, 0, "'o'"), -(18102, 0, "'r'"), -(18103, 0, "' '"), -(18104, 0, "'h'"), -(18104, 1, "''"), -(18104, 0, "'w'"), -(18105, 0, "'h'"), -(18106, 0, "'a'"), -(18107, 0, "'t'"), -(18108, 0, "'e'"), -(18109, 0, "'v'"), -(18110, 0, "'e'"), -(18111, 0, "'r'"), -(18112, 0, "'.'"), -(18113, 0, "' '"), -(18114, 0, "'I'"), -(18115, 0, "'t'"), -(18116, 0, "' '"), -(18117, 0, "'d'"), -(18118, 0, "'o'"), -(18119, 0, "'e'"), -(18120, 0, "'s'"), -(18121, 0, "'n'"), -(18122, 0, "'''"), -(18123, 0, "'t'"), -(18124, 0, "' '"), -(18125, 0, "'m'"), -(18126, 0, "'a'"), -(18127, 0, "'k'"), -(18128, 0, "'e'"), -(18129, 0, "' '"), -(18130, 0, "'s'"), -(18131, 0, "'e'"), -(18132, 0, "'n'"), -(18133, 0, "'s'"), -(18134, 0, "'e'"), -(18135, 0, "' '"), -(18136, 0, "'t'"), -(18137, 0, "'o'"), -(18138, 0, "' '"), -(18139, 0, "'s'"), -(18140, 0, "'t'"), -(18141, 0, "'o'"), -(18142, 0, "'r'"), -(18143, 0, "'e'"), -(18144, 0, "' '"), -(18145, 0, "'t'"), -(18146, 0, "'h'"), -(18147, 0, "'e'"), -(18148, 0, "' '"), -(18149, 0, "'c'"), -(18150, 0, "'o'"), -(18151, 0, "'n'"), -(18152, 0, "'t'"), -(18153, 0, "'e'"), -(18154, 0, "'n'"), -(18155, 0, "'t'"), -(18156, 0, "' '"), -(18157, 0, "'t'"), -(18158, 0, "'w'"), -(18159, 0, "'i'"), -(18160, 0, "'c'"), -(18161, 0, "'e'"), -(18189, 14, "''"), -(18188, 1, "''"), -(18193, 0, "' '"), -(18194, 0, "'s'"), -(18195, 0, "'t'"), -(18196, 0, "'o'"), -(18197, 0, "'r'"), -(18198, 0, "'e'"), -(18199, 0, "'s'"), -(18200, 0, "' '"), -(18194, 0, "'n'"), -(18195, 0, "'e'"), -(18196, 0, "'e'"), -(18197, 0, "'d'"), -(18198, 0, "'s'"), -(18199, 0, "' '"), -(18200, 0, "'t'"), -(18201, 0, "'o'"), -(18202, 0, "' '"), -(18209, 1, "''"), -(18208, 1, "''"), -(18208, 0, "' '"), -(18209, 0, "'t'"), -(18210, 0, "'h'"), -(18211, 0, "'e'"), -(18212, 0, "' '"), -(18213, 0, "'s'"), -(18214, 0, "'p'"), -(18215, 0, "'a'"), -(18216, 0, "'n'"), -(18217, 0, "'s'"), -(18218, 0, "' '"), -(18219, 0, "'a'"), -(18220, 0, "'n'"), -(18221, 0, "'d'"), -(18222, 0, "' '"), -(18223, 0, "'s'"), -(18224, 0, "'u'"), -(18225, 0, "'c'"), -(18226, 0, "'h'"), -(18227, 0, "'.'"), -(18228, 0, "' '"), -(18229, 0, "'J'"), -(18230, 0, "'u'"), -(18231, 0, "'s'"), -(18232, 0, "'t'"), -(18233, 0, "' '"), -(18234, 0, "'e'"), -(18235, 0, "'n'"), -(18236, 0, "'o'"), -(18237, 0, "'u'"), -(18238, 0, "'g'"), -(18239, 0, "'h'"), -(18240, 0, "' '"), -(18241, 0, "'t'"), -(18242, 0, "'h'"), -(18243, 0, "'a'"), -(18244, 0, "'t'"), -(18245, 0, "' '"), -(18246, 0, "'i'"), -(18247, 0, "'t'"), -(18248, 0, "' '"), -(18249, 0, "'c'"), -(18250, 0, "'a'"), -(18251, 0, "'n'"), -(18252, 0, "' '"), -(18253, 0, "'m'"), -(18254, 0, "'e'"), -(18255, 0, "'r'"), -(18256, 0, "'g'"), -(18257, 0, "'e'"), -(18258, 0, "' '"), -(18259, 0, "'c'"), -(18260, 0, "'h'"), -(18261, 0, "'a'"), -(18262, 0, "'n'"), -(18263, 0, "'g'"), -(18264, 0, "'e'"), -(18265, 0, "'s'"), -(18266, 0, "'.'"), -(18267, 0, "'s'"), -(18267, 1, "''"), -(17868, 4, "''"), -(17867, 1, "''"), -(17883, 0, "'o'"), -(17884, 0, "'u'"), -(17885, 0, "'t'"), -(17886, 0, "' '"), -(18028, 0, "'t'"), -(18029, 0, "'o'"), -(18030, 0, "' '"), -(18031, 0, "'b'"), -(18032, 0, "'e'"), -(18033, 0, "' '"), -(18034, 0, "'s'"), -(18035, 0, "'t'"), -(18036, 0, "'o'"), -(18037, 0, "'r'"), -(18038, 0, "'e'"), -(18039, 0, "'d'"), -(18040, 0, "' '"), -(18059, 21, "''"), -(18059, 0, "','"), -(18077, 27, "'e'"), -(18078, 0, "'d'"), -(18079, 0, "'i'"), -(18080, 0, "'t'"), -(18081, 0, "'o'"), -(18082, 0, "'r'"), -(18083, 0, "' '"), -(18084, 0, "'r'"), -(18085, 0, "' '"), -(18085, 1, "''"), -(18084, 1, "''"), -(18084, 0, "'o'"), -(18085, 0, "'r'"), -(18086, 0, "' '"), -(18087, 0, "'s'"), -(18088, 0, "'o'"), -(18089, 0, "'m'"), -(18090, 0, "'e'"), -(18091, 0, "'t'"), -(18092, 0, "'h'"), -(18093, 0, "'i'"), -(18094, 0, "'n'"), -(18095, 0, "'g'"), -(18173, 78, "''"), -(18164, 9, "'m'"), -(18165, 0, "'y'"), -(18166, 0, "' '"), -(18167, 0, "'C'"), -(18168, 0, "'R'"), -(18169, 0, "'D'"), -(18170, 0, "'T'"), -(18171, 0, "' '"), -(18172, 0, "'s'"), -(18173, 0, "'t'"), -(18174, 0, "'o'"), -(18175, 0, "'r'"), -(18176, 0, "'e'"), -(18177, 0, "'s'"), -(18366, 0, "'n'"), -(18179, 1, "''"), -(18365, 0, "'nThere's one last thing I've done. I don't know if its a good idea, but I did it anyway because it seemed clever. I moved the content itself out into a separate data structure. See, when you're actually doing collaborative editing, you probably want all the characters in your document to be stored in an actual array, or in VS Code's editor or something. It doesn't make sense to store the content twice. So I made it so my CRDT stores'"), -(17743, 436, "''"), -(17929, 0, "'n'"), -(17742, 1, "''"), -(17928, 0, "'nWe can also pack all the items tightly in memory. Each leaf in the b-tree is stored in a single block of memory. At that block we store 32 entries - each storing in turn a span of characters. So inserting *does* need some memcpy-ing, but a little bit of memcpy is fine. Its seriously faster than you think.'"), -(17435, 307, "''"), -(17621, 307, "''"), -(17435, 0, "'We can also pack all the items tightly in memory. Each leaf in the b-tree is stored in a single block of memory. At that block we store 32 entries - each storing in turn a span of characters. So inserting *does* need some memcpy-ing, but a little bit of memcpy is fine. Its seriously faster than you think.n'"), -(17928, 1, "''"), -(17742, 0, "'n'"), -(17929, 0, "'n'"), -(17930, 0, "'n'"), -(17931, 0, "'n'"), -(17931, 0, "'n| Test | Time taken | RAM usage |n| -------------------------- | ---------- | --------- |n| automerge @ 1.0.0-preview2 | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | 28 MB |n| Yjs | 0.97s | 3.6 MB |n| JS baseline | 0.61s | 0.1 MB |'"), -(17930, 1, "''"), -(18308, 0, "'n'"), -(18309, 0, "'|'"), -(18310, 0, "' '"), -(18311, 0, "'R'"), -(18312, 0, "'u'"), -(18313, 0, "'s'"), -(18314, 0, "'t'"), -(18315, 0, "' '"), -(18316, 0, "'v'"), -(18317, 0, "'i'"), -(18318, 0, "'a'"), -(18319, 0, "' '"), -(18320, 0, "'w'"), -(18321, 0, "'e'"), -(18322, 0, "'b'"), -(18316, 7, "'c'"), -(18317, 0, "'a'"), -(18318, 0, "'l'"), -(18319, 0, "'l'"), -(18320, 0, "'e'"), -(18321, 0, "'d'"), -(18322, 0, "' '"), -(18323, 0, "'f'"), -(18324, 0, "'r'"), -(18325, 0, "'o'"), -(18326, 0, "'m'"), -(18327, 0, "' '"), -(18328, 0, "'J'"), -(18329, 0, "'S'"), -(18316, 14, "''"), -(18316, 0, "'('"), -(18317, 0, "'t'"), -(18318, 0, "'h'"), -(18319, 0, "'r'"), -(18320, 0, "'o'"), -(18321, 0, "'u'"), -(18322, 0, "'g'"), -(18323, 0, "'h'"), -(18324, 0, "' '"), -(18325, 0, "'W'"), -(18326, 0, "'A'"), -(18327, 0, "'S'"), -(18328, 0, "'M'"), -(18329, 0, "')'"), -(18330, 0, "' '"), -(18331, 0, "' '"), -(18332, 0, "' '"), -(18333, 0, "' '"), -(18334, 0, "' '"), -(18335, 0, "' '"), -(18336, 0, "' '"), -(18337, 0, "' '"), -(18338, 0, "' '"), -(18339, 0, "' '"), -(18340, 0, "' '"), -(18341, 0, "' '"), -(18342, 0, "' '"), -(18343, 0, "' '"), -(18344, 0, "' '"), -(18345, 0, "'|'"), -(18346, 0, "' '"), -(18347, 0, "'0'"), -(18348, 0, "'.'"), -(18349, 0, "'6'"), -(18350, 0, "'5'"), -(18351, 0, "'s'"), -(18352, 0, "'n| JS baseline | 0.61s | 0.1 MB |'"), -(18246, 63, "''"), -(18289, 0, "' '"), -(18290, 0, "' '"), -(18291, 0, "' '"), -(18292, 0, "' '"), -(18293, 0, "' '"), -(18294, 0, "' '"), -(18295, 0, "'|'"), -(18296, 0, "' '"), -(18297, 0, "'2'"), -(18298, 0, "'.'"), -(18299, 0, "'3'"), -(18300, 0, "' '"), -(18301, 0, "'M'"), -(18302, 0, "'B'"), -(18303, 0, "' '"), -(18304, 0, "' '"), -(18305, 0, "' '"), -(18306, 0, "' '"), -(18307, 0, "'|'"), -(18246, 0, "'| Rust (through WASM) | 0.65s | 2.3 MB |n'"), -(18317, 12, "'n'"), -(18318, 0, "'a'"), -(18319, 0, "'t'"), -(18320, 0, "'i'"), -(18321, 0, "'v'"), -(18322, 0, "'e'"), -(18324, 0, "' '"), -(18325, 0, "' '"), -(18326, 0, "' '"), -(18327, 0, "' '"), -(18328, 0, "' '"), -(18329, 0, "' '"), -(18254, 7, "'V'"), -(18255, 0, "'i'"), -(18256, 0, "'a'"), -(18257, 0, "' '"), -(18258, 0, "'J'"), -(18259, 0, "'S'"), -(18260, 0, "' '"), -(18261, 0, "'+'"), -(18254, 3, "'C'"), -(18255, 0, "'a'"), -(18256, 0, "'l'"), -(18257, 0, "'l'"), -(18258, 0, "'e'"), -(18259, 0, "'d'"), -(18260, 0, "' '"), -(18261, 0, "'f'"), -(18262, 0, "'r'"), -(18263, 0, "'o'"), -(18264, 0, "'m'"), -(18269, 1, "''"), -(18269, 0, "'v'"), -(18270, 0, "'i'"), -(18271, 0, "'a'"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18279, 1, "''"), -(18287, 1, "''"), -(18286, 1, "''"), -(18286, 0, "'2'"), -(18287, 0, "'0'"), -(18287, 1, "''"), -(18287, 0, "'0'"), -(18349, 0, "'0'"), -(18354, 1, "''"), -(18434, 0, "'n| Rust (native) | 0.065s | 2.3 MB |'"), -(18309, 63, "''"), -(18371, 0, "'n| Rust (Called from JS via WASM) | 0.20s | 2.3 MB |'"), -(18246, 63, "''"), -(18069, 0, "'('"), -(18071, 1, "''"), -(18085, 0, "')'"), -(18086, 1, "''"), -(18191, 20, "'('"), -(18192, 0, "'&'"), -(18192, 1, "''"), -(18192, 0, "'$'"), -(18192, 1, "''"), -(18192, 0, "'#'"), -(18192, 1, "''"), -(18192, 0, "'@'"), -(18193, 0, "'1'"), -(18194, 0, "'3'"), -(18195, 0, "'.'"), -(18196, 0, "'5'"), -(18197, 0, "'.'"), -(18198, 0, "'5'"), -(18199, 0, "')'"), -(18200, 0, "' '"), -(18201, 0, "' '"), -(18202, 0, "' '"), -(18203, 0, "' '"), -(18204, 0, "' '"), -(18205, 0, "' '"), -(18206, 0, "' '"), -(18207, 0, "' '"), -(18208, 0, "' '"), -(18209, 0, "' '"), -(18210, 0, "' '"), -(18189, 1, "''"), -(18189, 1, "''"), -(18189, 1, "''"), -(18189, 0, "'('"), -(18198, 0, "' '"), -(18199, 0, "' '"), -(18070, 1, "''"), -(18070, 0, "'v'"), -(18190, 1, "''"), -(18190, 0, "'v'"), -(18790, 81, "''"), -(18790, 0, "'n'"), -(18791, 0, "'n'"), -(18792, 0, "'T'"), -(18793, 0, "'h'"), -(18794, 0, "'e'"), -(18795, 0, "'s'"), -(18796, 0, "'e'"), -(18797, 0, "' '"), -(18798, 0, "'t'"), -(18799, 0, "'i'"), -(18800, 0, "'m'"), -(18801, 0, "'e'"), -(18802, 0, "'s'"), -(18803, 0, "' '"), -(18804, 0, "'a'"), -(18805, 0, "'s'"), -(18806, 0, "'s'"), -(18807, 0, "'u'"), -(18808, 0, "'m'"), -(18809, 0, "'e'"), -(18810, 0, "' '"), -(18811, 0, "'y'"), -(18812, 0, "'o'"), -(18813, 0, "'u'"), -(18814, 0, "'r'"), -(18815, 0, "' '"), -(18804, 12, "''"), -(18792, 12, "'S'"), -(18792, 1, "''"), -(18792, 0, "'S'"), -(18793, 0, "'o'"), -(18794, 0, "' '"), -(18795, 0, "'t'"), -(18796, 0, "'h'"), -(18797, 0, "'e'"), -(18798, 0, "' '"), -(18799, 0, "'d'"), -(18800, 0, "'a'"), -(18801, 0, "'t'"), -(18802, 0, "'a'"), -(18803, 0, "' '"), -(18804, 0, "'s'"), -(18805, 0, "'t'"), -(18806, 0, "'r'"), -(18807, 0, "'u'"), -(18808, 0, "'c'"), -(18809, 0, "'u'"), -(18810, 0, "'t'"), -(18810, 1, "''"), -(18809, 1, "''"), -(18809, 0, "'t'"), -(18810, 0, "'u'"), -(18811, 0, "'r'"), -(18812, 0, "'e'"), -(18813, 0, "' '"), -(18814, 0, "'l'"), -(18815, 0, "'o'"), -(18816, 0, "'o'"), -(18817, 0, "'k'"), -(18818, 0, "'s'"), -(18819, 0, "' '"), -(18820, 0, "'l'"), -(18821, 0, "'i'"), -(18822, 0, "'k'"), -(18823, 0, "'e'"), -(18824, 0, "' '"), -(18825, 0, "'t'"), -(18826, 0, "'h'"), -(18827, 0, "'i'"), -(18828, 0, "'s'"), -(18829, 0, "':'"), -(18830, 0, "'n'"), -(18831, 0, "'n'"), -(18832, 0, "'`'"), -(18833, 0, "'`'"), -(18834, 0, "'`'"), -(18835, 0, "'n'"), -(18836, 0, "'{'"), -(18837, 0, "'n '"), -(18840, 0, "'n '"), -(18838, 2, "''"), -(18839, 2, "'}'"), -(18840, 0, "'n'"), -(18841, 0, "'`'"), -(18842, 0, "'`'"), -(18843, 0, "'`'"), -(18838, 0, "' '"), -(18840, 0, "'t'"), -(18841, 0, "'e'"), -(18842, 0, "'x'"), -(18843, 0, "'t'"), -(18844, 0, "':'"), -(18845, 0, "' '"), -(18846, 0, "'<'"), -(18847, 0, "'R'"), -(18847, 1, "''"), -(18846, 1, "''"), -(18846, 0, "'R'"), -(18847, 0, "'o'"), -(18848, 0, "'p'"), -(18849, 0, "'e'"), -(18850, 0, "' '"), -(18851, 0, "'i'"), -(18852, 0, "'m'"), -(18853, 0, "'p'"), -(18854, 0, "'l'"), -(18855, 0, "'e'"), -(18856, 0, "'m'"), -(18857, 0, "'e'"), -(18858, 0, "'n'"), -(18859, 0, "'t'"), -(18860, 0, "'a'"), -(18861, 0, "'t'"), -(18862, 0, "'i'"), -(18863, 0, "'o'"), -(18864, 0, "'n'"), -(18846, 19, "''"), -(18846, 0, "'''"), -(18847, 0, "'a'"), -(18848, 0, "'b'"), -(18849, 0, "'c'"), -(18850, 0, "'''"), -(18851, 0, "','"), -(18837, 0, "'n '"), -(18840, 0, "'t'"), -(18841, 0, "'r'"), -(18842, 0, "'e'"), -(18843, 0, "'e'"), -(18844, 0, "':'"), -(18845, 0, "' '"), -(18846, 0, "'<'"), -(18847, 0, "'R'"), -(18848, 0, "'a'"), -(18849, 0, "'n'"), -(18850, 0, "'g'"), -(18851, 0, "'e'"), -(18852, 0, "' '"), -(18853, 0, "'t'"), -(18854, 0, "'r'"), -(18855, 0, "'e'"), -(18856, 0, "'e'"), -(18857, 0, "' '"), -(18858, 0, "'s'"), -(18859, 0, "'t'"), -(18860, 0, "'o'"), -(18861, 0, "'r'"), -(18862, 0, "'i'"), -(18863, 0, "'n'"), -(18864, 0, "'g'"), -(18865, 0, "' '"), -(18866, 0, "'s'"), -(18867, 0, "'p'"), -(18868, 0, "'a'"), -(18869, 0, "'n'"), -(18870, 0, "'s'"), -(18871, 0, "' '"), -(18872, 0, "'a'"), -(18873, 0, "'n'"), -(18874, 0, "'d'"), -(18875, 0, "' '"), -(18876, 0, "'o'"), -(18877, 0, "'f'"), -(18878, 0, "'f'"), -(18879, 0, "'s'"), -(18880, 0, "'e'"), -(18881, 0, "'t'"), -(18882, 0, "'s'"), -(18883, 0, "' '"), -(18884, 0, "'a'"), -(18885, 0, "'n'"), -(18886, 0, "'d'"), -(18887, 0, "' '"), -(18888, 0, "'s'"), -(18889, 0, "'u'"), -(18890, 0, "'c'"), -(18891, 0, "'h'"), -(18847, 45, "'B'"), -(18848, 0, "'-'"), -(18849, 0, "'t'"), -(18850, 0, "'r'"), -(18851, 0, "'e'"), -(18852, 0, "'e'"), -(18853, 0, "' '"), -(18854, 0, "'s'"), -(18855, 0, "'t'"), -(18856, 0, "'o'"), -(18857, 0, "'r'"), -(18858, 0, "'i'"), -(18859, 0, "'n'"), -(18860, 0, "'g'"), -(18861, 0, "' '"), -(18862, 0, "'t'"), -(18863, 0, "'h'"), -(18864, 0, "'e'"), -(18865, 0, "' '"), -(18866, 0, "'c'"), -(18867, 0, "'o'"), -(18868, 0, "'n'"), -(18869, 0, "'t'"), -(18870, 0, "'e'"), -(18871, 0, "'n'"), -(18872, 0, "'t'"), -(18873, 0, "'>'"), -(18874, 0, "','"), -(18875, 0, "'n '"), -(18878, 0, "'i'"), -(18879, 0, "'n'"), -(18880, 0, "'d'"), -(18881, 0, "'e'"), -(18882, 0, "'x'"), -(18883, 0, "':'"), -(18884, 0, "' '"), -(18885, 0, "'I'"), -(18885, 1, "''"), -(18884, 1, "''"), -(18884, 0, "' '"), -(18885, 0, "'<'"), -(18886, 0, "'I'"), -(18887, 0, "'n'"), -(18888, 0, "'d'"), -(18889, 0, "'e'"), -(18890, 0, "'x'"), -(18891, 0, "' '"), -(18876, 16, "' index: '"), -(17417, 0, "' '"), -(17417, 1, "''"), -(17416, 1, "''"), -(17415, 1, "''"), -(17414, 1, "''"), -(17415, 0, "'.'"), -(17429, 0, "' '"), -(17430, 0, "'e'"), -(17431, 0, "'v'"), -(17432, 0, "'e'"), -(17433, 0, "'n'"), -(17441, 7, "' '"), -(17442, 0, "'i'"), -(17443, 0, "'f'"), -(17444, 0, "' '"), -(17445, 0, "'I'"), -(17469, 4, "' '"), -(17470, 0, "'o'"), -(17471, 0, "'f'"), -(17477, 1, "''"), -(17477, 0, "'i'"), -(17478, 0, "'n'"), -(17479, 0, "'g'"), -(17527, 0, "'R'"), -(17528, 0, "'u'"), -(17529, 0, "'s'"), -(17530, 0, "'t'"), -(17531, 0, "' '"), -(17532, 0, "'l'"), -(17533, 0, "'e'"), -(17534, 0, "'t'"), -(17535, 0, "'s'"), -(17536, 0, "' '"), -(17537, 0, "'u'"), -(17538, 0, "'s'"), -(17539, 6, "''"), -(17539, 5, "''"), -(17602, 61, "''"), -(17602, 0, "'s'"), -(17603, 0, "'t'"), -(17604, 0, "'o'"), -(17605, 0, "'r'"), -(17606, 0, "'e'"), -(17607, 0, "'s'"), -(17619, 0, "','"), -(17620, 0, "' '"), -(17621, 0, "'w'"), -(17622, 0, "'i'"), -(17623, 0, "'t'"), -(17624, 0, "'h'"), -(17625, 0, "' '"), -(17626, 0, "'e'"), -(17627, 0, "'v'"), -(17628, 0, "'e'"), -(17629, 0, "'n'"), -(17629, 1, "''"), -(17629, 0, "'r'"), -(17630, 0, "'y'"), -(17631, 0, "'t'"), -(17632, 0, "'h'"), -(17633, 0, "'i'"), -(17634, 0, "'n'"), -(17635, 0, "'g'"), -(17636, 0, "' '"), -(17637, 0, "'c'"), -(17638, 0, "'o'"), -(17639, 0, "'n'"), -(17640, 0, "'t'"), -(17641, 0, "'i'"), -(17642, 0, "'g'"), -(17643, 0, "'u'"), -(17644, 0, "'o'"), -(17645, 0, "'u'"), -(17646, 0, "'s'"), -(17647, 0, "'.'"), -(17649, 44, "''"), -(17648, 1, "''"), -(17649, 2, "'I'"), -(17649, 1, "''"), -(17649, 1, "''"), -(17649, 1, "''"), -(17649, 0, "'I'"), -(17658, 0, "' '"), -(17659, 0, "'l'"), -(17660, 0, "'i'"), -(17661, 0, "'k'"), -(17662, 0, "'e'"), -(17663, 0, "' '"), -(17664, 0, "'t'"), -(17665, 0, "'h'"), -(17666, 0, "'i'"), -(17667, 0, "'s'"), -(17737, 0, "' '"), -(17738, 0, "'a'"), -(17739, 0, "'l'"), -(17740, 0, "'s'"), -(17741, 0, "'o'"), -(17741, 1, "''"), -(17740, 1, "''"), -(17740, 0, "'w'"), -(17741, 0, "'a'"), -(17742, 0, "'y'"), -(17743, 0, "'s'"), -(17744, 10, "''"), -(17756, 0, "' '"), -(17757, 0, "'I'"), -(17758, 4, "''"), -(17764, 0, "' '"), -(17765, 0, "'i'"), -(17766, 0, "'t'"), -(17767, 0, "' '"), -(17768, 0, "'w'"), -(17769, 0, "'i'"), -(17770, 0, "'l'"), -(17771, 0, "'l'"), -(17772, 0, "' '"), -(17773, 0, "'b'"), -(17774, 0, "'e'"), -(17778, 7, "'S'"), -(17779, 0, "'p'"), -(17780, 0, "'e'"), -(17781, 0, "'a'"), -(17782, 0, "'k'"), -(17783, 0, "'i'"), -(17784, 0, "'n'"), -(17785, 0, "'g'"), -(17786, 0, "' '"), -(17787, 0, "'o'"), -(17788, 0, "'f'"), -(17789, 0, "' '"), -(17790, 0, "'f'"), -(17791, 0, "'a'"), -(17792, 0, "'s'"), -(17793, 0, "'t'"), -(17794, 0, "','"), -(18859, 0, "'a'"), -(18860, 0, "'c'"), -(18861, 0, "'t'"), -(18862, 0, "'u'"), -(18863, 0, "'a'"), -(18864, 0, "'l'"), -(18865, 0, "'l'"), -(18866, 0, "'y'"), -(18867, 0, "' '"), -(18939, 6, "''"), -(18930, 9, "' index:'"), -(18938, 0, "' '"), -(18939, 0, "'<'"), -(18940, 0, "'i'"), -(18941, 0, "'n'"), -(18941, 1, "''"), -(18940, 1, "''"), -(18940, 0, "'I'"), -(18941, 0, "'n'"), -(18942, 0, "'d'"), -(18943, 0, "'e'"), -(18944, 0, "'x'"), -(18945, 0, "' '"), -(18946, 0, "'o'"), -(18947, 0, "'f'"), -(18948, 0, "' '"), -(18949, 0, "'I'"), -(18950, 0, "'D'"), -(18951, 0, "' '"), -(18952, 0, "'='"), -(18953, 0, "'>'"), -(18954, 0, "' '"), -(18954, 1, "''"), -(18953, 1, "''"), -(18952, 1, "''"), -(18952, 0, "'-'"), -(18953, 0, "'>'"), -(18954, 0, "' '"), -(18954, 1, "''"), -(18953, 1, "''"), -(18952, 1, "''"), -(18952, 0, "'='"), -(18953, 0, "'>'"), -(18954, 0, "' '"), -(18955, 0, "'b'"), -(18956, 0, "'-'"), -(18957, 0, "'t'"), -(18958, 0, "'r'"), -(18959, 0, "'e'"), -(18960, 0, "'e'"), -(18961, 0, "' '"), -(18962, 0, "'n'"), -(18963, 0, "'o'"), -(18964, 0, "'d'"), -(18965, 0, "'e'"), -(18966, 0, "'>'"), -(18967, 0, "','"), -(18978, 3, "'o'"), -(18979, 0, "'h'"), -(18980, 0, "' '"), -(18981, 0, "'h'"), -(18982, 0, "'a'"), -(18983, 0, "'i'"), -(18984, 0, "'!'"), -(18859, 0, "'*'"), -(18868, 0, "'*'"), -(18996, 0, "'n'"), -(18997, 0, "'B'"), -(18998, 0, "'u'"), -(18999, 0, "'t'"), -(19000, 0, "' '"), -(19001, 0, "'g'"), -(19002, 0, "'u'"), -(19003, 0, "'e'"), -(19004, 0, "'s'"), -(19005, 0, "' '"), -(19005, 1, "''"), -(19005, 0, "'s'"), -(18997, 9, "''"), -(18997, 0, "'F'"), -(18998, 0, "'o'"), -(18999, 0, "'r'"), -(19000, 0, "' '"), -(19001, 0, "'t'"), -(19002, 0, "'h'"), -(19003, 0, "'e'"), -(19004, 0, "' '"), -(19005, 0, "'t'"), -(19006, 0, "'e'"), -(19007, 0, "'x'"), -(19008, 0, "'t'"), -(19009, 0, "' '"), -(19010, 0, "'I'"), -(19011, 0, "'''"), -(19012, 0, "'m'"), -(19013, 0, "' '"), -(19009, 5, "' '"), -(19010, 0, "'c'"), -(19011, 0, "'o'"), -(19012, 0, "'n'"), -(19013, 0, "'t'"), -(19014, 0, "'e'"), -(19015, 0, "'n'"), -(19016, 0, "'t'"), -(19017, 0, "' '"), -(19018, 0, "'I'"), -(19019, 0, "'''"), -(19020, 0, "'m'"), -(19021, 0, "' '"), -(19022, 0, "'u'"), -(19023, 0, "'s'"), -(19024, 0, "'i'"), -(19025, 0, "'n'"), -(19026, 0, "'g'"), -(19027, 0, "' '"), -(19028, 0, "'['"), -(19029, 0, "'R'"), -(19030, 0, "'o'"), -(19031, 0, "'p'"), -(19032, 0, "'e'"), -(19033, 0, "'y'"), -(19034, 0, "']'"), -(19035, 0, "'('"), -(19036, 0, "'https://docs.rs/ropey/1.2.0/ropey/'"), -(19070, 0, "')'"), -(19071, 0, "'.'"), -(19072, 0, "' '"), -(19073, 0, "'B'"), -(19074, 0, "'u'"), -(19075, 0, "'t'"), -(19076, 0, "' '"), -(19077, 0, "'g'"), -(19078, 0, "'u'"), -(19079, 0, "'e'"), -(19080, 0, "'s'"), -(19081, 0, "'s'"), -(19082, 0, "' '"), -(19083, 0, "'w'"), -(19084, 0, "'h'"), -(19085, 0, "'a'"), -(19086, 0, "'t'"), -(19087, 0, "'?'"), -(19088, 0, "' '"), -(19089, 0, "'I'"), -(19089, 1, "''"), -(19089, 0, "'M'"), -(19090, 0, "'y'"), -(19091, 0, "' '"), -(19092, 0, "'c'"), -(19093, 0, "'o'"), -(19094, 0, "'d'"), -(19095, 0, "'e'"), -(19096, 0, "' '"), -(19097, 0, "'i'"), -(19098, 0, "'s'"), -(19099, 0, "' '"), -(19100, 0, "'f'"), -(19101, 0, "'a'"), -(19102, 0, "'s'"), -(19103, 0, "'t'"), -(19104, 0, "'e'"), -(19105, 0, "'r'"), -(19106, 0, "' '"), -(19107, 0, "'t'"), -(19108, 0, "'h'"), -(19109, 0, "'a'"), -(19110, 0, "'n'"), -(19111, 0, "' '"), -(19112, 0, "'r'"), -(19113, 0, "'o'"), -(19114, 0, "'p'"), -(19115, 0, "'e'"), -(19116, 0, "'y'"), -(19117, 0, "'.'"), -(19118, 0, "' '"), -(19119, 0, "'A'"), -(19120, 0, "'n'"), -(19121, 0, "'d'"), -(19122, 0, "' '"), -(19119, 4, "''"), -(19118, 1, "''"), -(19118, 0, "' '"), -(19119, 0, "'I'"), -(19120, 0, "'f'"), -(19121, 0, "' '"), -(19122, 0, "'I'"), -(19123, 0, "' '"), -(19124, 0, "'t'"), -(19125, 0, "'u'"), -(19126, 0, "'r'"), -(19127, 0, "'n'"), -(19128, 0, "' '"), -(19129, 0, "'i'"), -(19130, 0, "'t'"), -(19131, 0, "' '"), -(19132, 0, "'o'"), -(19133, 0, "'f'"), -(19134, 0, "'f'"), -(19118, 17, "''"), -(19119, 0, "'n| Test | Time taken | RAM usage |n| -------------------------- | ---------- | --------- |n| automerge (v1.0.0-preview2) | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | 28 MB |n| Yjs (v13.5.5) | 0.97s | 3.6 MB |n| JS baseline | 0.61s | 0.1 MB |n| Rust (Called from JS via WASM) | 0.20s | 2.3 MB |n| Rust (native) | 0.065s | 2.3 MB |n'"), -(19118, 0, "' '"), -(19119, 0, "'A'"), -(19120, 0, "'n'"), -(19121, 0, "'d'"), -(19122, 0, "' '"), -(19123, 0, "'t'"), -(19124, 0, "'h'"), -(19125, 0, "'a'"), -(19126, 0, "'t'"), -(19127, 0, "' '"), -(19128, 0, "'c'"), -(19129, 0, "'o'"), -(19130, 0, "'n'"), -(19131, 0, "'t'"), -(19132, 0, "'e'"), -(19133, 0, "'n'"), -(19134, 0, "'t'"), -(19135, 0, "' '"), -(19136, 0, "'i'"), -(19137, 0, "'s'"), -(19138, 0, "' '"), -(19139, 0, "'s'"), -(19140, 0, "'t'"), -(19141, 0, "'o'"), -(19142, 0, "'r'"), -(19143, 0, "'e'"), -(19144, 0, "'d'"), -(19145, 0, "' '"), -(19139, 7, "'g'"), -(19140, 0, "'o'"), -(19141, 0, "'i'"), -(19142, 0, "'n'"), -(19143, 0, "'g'"), -(19144, 0, "' '"), -(19145, 0, "'t'"), -(19146, 0, "'o'"), -(19147, 0, "' '"), -(19148, 0, "'b'"), -(19149, 0, "'e'"), -(19150, 0, "' '"), -(19151, 0, "'s'"), -(19152, 0, "'t'"), -(19153, 0, "'o'"), -(19154, 0, "'r'"), -(19155, 0, "'e'"), -(19156, 0, "'d'"), -(19157, 0, "' '"), -(19158, 0, "'i'"), -(19159, 0, "'n'"), -(19160, 0, "' '"), -(19161, 0, "'s'"), -(19162, 0, "'o'"), -(19163, 0, "'m'"), -(19164, 0, "'e'"), -(19165, 0, "'o'"), -(19166, 0, "'n'"), -(19167, 0, "'e'"), -(19168, 0, "' '"), -(19169, 0, "'e'"), -(19170, 0, "'l'"), -(19171, 0, "'s'"), -(19172, 0, "'e'"), -(19173, 0, "'''"), -(19174, 0, "'s'"), -(19151, 24, "'s'"), -(19152, 0, "'o'"), -(19153, 0, "'m'"), -(19154, 0, "'e'"), -(19155, 0, "'o'"), -(19156, 0, "'n'"), -(19157, 0, "'e'"), -(19158, 0, "' '"), -(19159, 0, "'e'"), -(19160, 0, "'l'"), -(19161, 0, "'s'"), -(19162, 0, "'e'"), -(19163, 0, "'''"), -(19164, 0, "'s'"), -(19165, 0, "' '"), -(19166, 0, "'p'"), -(19167, 0, "'r'"), -(19168, 0, "'o'"), -(19169, 0, "'b'"), -(19170, 0, "'l'"), -(19171, 0, "'e'"), -(19172, 0, "'m'"), -(19173, 0, "' '"), -(19174, 0, "'a'"), -(19175, 0, "'n'"), -(19176, 0, "'y'"), -(19177, 0, "'w'"), -(19178, 0, "'a'"), -(19179, 0, "'y'"), -(19180, 0, "'.'"), -(19181, 0, "' '"), -(19182, 0, "'W'"), -(19183, 0, "'h'"), -(19184, 0, "'a'"), -(19185, 0, "'t'"), -(19186, 0, "' '"), -(19187, 0, "'h'"), -(19188, 0, "'a'"), -(19189, 0, "'p'"), -(19190, 0, "'p'"), -(19191, 0, "'e'"), -(19192, 0, "'n'"), -(19193, 0, "'s'"), -(19194, 0, "' '"), -(19195, 0, "'i'"), -(19196, 0, "'f'"), -(19197, 0, "' '"), -(19198, 0, "'I'"), -(19199, 0, "' '"), -(19200, 0, "'t'"), -(19201, 0, "'u'"), -(19202, 0, "'r'"), -(19203, 0, "'n'"), -(19204, 0, "' '"), -(19205, 0, "'t'"), -(19206, 0, "'h'"), -(19207, 0, "'a'"), -(19208, 0, "'t'"), -(19209, 0, "' '"), -(19210, 0, "'o'"), -(19211, 0, "'f'"), -(19212, 0, "'f'"), -(19213, 0, "'?'"), -(19182, 0, "'I'"), -(19183, 0, "'t'"), -(19184, 0, "'s'"), -(19185, 0, "' '"), -(19186, 0, "'c'"), -(19187, 0, "'h'"), -(19188, 0, "'e'"), -(19189, 0, "'a'"), -(19190, 0, "'t'"), -(19191, 0, "'i'"), -(19192, 0, "'n'"), -(19193, 0, "'g'"), -(19194, 0, "','"), -(19195, 0, "' '"), -(19196, 0, "'b'"), -(19197, 0, "'u'"), -(19198, 0, "'t'"), -(19199, 0, "' '"), -(19200, 1, "''"), -(19200, 0, "'w'"), -(19675, 0, "'| Rust (native) | 0.065s | 2.3 MB |n'"), -(19753, 0, "','"), -(19754, 0, "' '"), -(19755, 0, "'n'"), -(19756, 0, "'o'"), -(19757, 0, "'t'"), -(19758, 0, "' '"), -(19759, 0, "'s'"), -(19760, 0, "'t'"), -(19761, 0, "'o'"), -(19761, 1, "''"), -(19760, 1, "''"), -(19759, 1, "''"), -(19758, 1, "''"), -(19757, 1, "''"), -(19757, 0, "' '"), -(19758, 0, "'s'"), -(19759, 0, "'t'"), -(19760, 0, "'r'"), -(19761, 0, "'i'"), -(19762, 0, "'n'"), -(19763, 0, "'g'"), -(19764, 19, "' '"), -(19765, 0, "' '"), -(19766, 0, "' '"), -(19767, 0, "' '"), -(19768, 0, "' '"), -(19769, 0, "' '"), -(19770, 0, "' '"), -(19771, 0, "' '"), -(19758, 8, "'c'"), -(19759, 0, "'o'"), -(19760, 0, "'n'"), -(19761, 0, "'t'"), -(19762, 0, "'e'"), -(19763, 0, "'n'"), -(19764, 0, "'t'"), -(19765, 0, "' '"), -(19780, 1, "''"), -(19779, 1, "''"), -(19779, 0, "'2'"), -(19780, 0, "'3'"), -(19791, 1, "''"), -(19791, 0, "'1'"), -(19182, 0, "'L'"), -(19183, 0, "'o'"), -(19184, 0, "'o'"), -(19185, 0, "'k'"), -(19186, 0, "','"), -(19187, 0, "' '"), -(19188, 0, "'I'"), -(19189, 0, "' '"), -(19190, 0, "'k'"), -(19191, 0, "'n'"), -(19192, 0, "'o'"), -(19193, 0, "'w'"), -(19194, 0, "' '"), -(19195, 0, "'I'"), -(19196, 0, "'''"), -(19197, 0, "'m'"), -(19198, 3, "''"), -(19197, 1, "''"), -(19196, 1, "''"), -(19195, 1, "''"), -(19195, 0, "'i'"), -(19196, 0, "'t'"), -(19197, 0, "'s'"), -(19231, 0, "'j'"), -(19232, 0, "'u'"), -(19233, 0, "'s'"), -(19234, 0, "'t'"), -(19235, 0, "' '"), -(19236, 0, "'.'"), -(19237, 0, "'.'"), -(19238, 0, "'.'"), -(19239, 0, "' '"), -(19774, 1, "''"), -(19786, 0, "')'"), -(19779, 7, "'d'"), -(19780, 0, "'o'"), -(19781, 0, "'c'"), -(19782, 0, "' '"), -(19783, 0, "'c'"), -(19784, 0, "'o'"), -(19785, 0, "'n'"), -(19786, 0, "'t'"), -(19787, 0, "'e'"), -(19788, 0, "'n'"), -(19789, 0, "'t'"), -(19792, 1, "''"), -(19792, 1, "''"), -(19792, 1, "''"), -(19792, 1, "''"), -(19685, 6, "'?'"), -(19686, 0, "'?'"), -(19687, 0, "'?'"), -(19688, 0, "' '"), -(19689, 0, "' '"), -(19690, 0, "' '"), -(18405, 6, "'?'"), -(18406, 0, "'?'"), -(18407, 0, "'?'"), -(18408, 0, "' '"), -(18409, 0, "' '"), -(18410, 0, "' '"), -(18411, 0, "' '"), -(18411, 1, "''"), -(18657, 6, "'W'"), -(18830, 0, "' '"), -(18831, 0, "'A'"), -(18832, 0, "'n'"), -(18833, 0, "'d'"), -(18834, 0, "' '"), -(18835, 0, "'t'"), -(18836, 0, "'h'"), -(18837, 0, "'a'"), -(18838, 0, "'t'"), -(18839, 0, "' '"), -(18840, 0, "'s'"), -(18841, 0, "'t'"), -(18842, 0, "'r'"), -(18843, 0, "'u'"), -(18831, 13, "'I'"), -(18832, 0, "'t'"), -(18833, 0, "' '"), -(18834, 0, "'d'"), -(18835, 0, "'o'"), -(18836, 0, "'e'"), -(18837, 0, "'s'"), -(18838, 0, "'n'"), -(18839, 0, "'''"), -(18840, 0, "'t'"), -(18841, 0, "' '"), -(18842, 0, "'m'"), -(18843, 0, "'a'"), -(18844, 0, "'k'"), -(18845, 0, "'e'"), -(18846, 0, "' '"), -(18847, 0, "'s'"), -(18848, 0, "'e'"), -(18849, 0, "'n'"), -(18850, 0, "'s'"), -(18851, 0, "'e'"), -(18852, 0, "' '"), -(18853, 0, "'t'"), -(18854, 0, "'o'"), -(18855, 0, "' '"), -(18856, 0, "'d'"), -(18857, 0, "'u'"), -(18858, 0, "'p'"), -(18859, 0, "'l'"), -(18860, 0, "'i'"), -(18861, 0, "'c'"), -(18862, 0, "'a'"), -(18863, 0, "'t'"), -(18864, 0, "'e'"), -(18865, 0, "' '"), -(18866, 0, "'t'"), -(18867, 0, "'h'"), -(18868, 0, "'e'"), -(18869, 0, "' '"), -(18870, 0, "'d'"), -(18871, 0, "'o'"), -(18872, 0, "'c'"), -(18873, 0, "'u'"), -(18874, 0, "'m'"), -(18875, 0, "'e'"), -(18876, 0, "'n'"), -(18877, 0, "'t'"), -(18878, 0, "' '"), -(18879, 0, "'c'"), -(18880, 0, "'o'"), -(18881, 0, "'n'"), -(18882, 0, "'t'"), -(18883, 0, "'e'"), -(18884, 0, "'n'"), -(18885, 0, "'t'"), -(18886, 0, "'.'"), -(18878, 0, "'''"), -(18879, 0, "'s'"), -(18888, 1, "''"), -(18888, 0, "' '"), -(18889, 0, "'i'"), -(18890, 0, "'n'"), -(18891, 0, "' '"), -(18892, 0, "'m'"), -(18893, 0, "'y'"), -(18894, 0, "' '"), -(18895, 0, "'l'"), -(18896, 0, "'i'"), -(18897, 0, "'b'"), -(18898, 0, "'r'"), -(18899, 0, "'a'"), -(18900, 0, "'r'"), -(18901, 0, "'y'"), -(18902, 0, "'.'"), -(19141, 0, "'I'"), -(19142, 0, "'t'"), -(19143, 0, "'s'"), -(19144, 0, "' '"), -(19145, 0, "'p'"), -(19146, 0, "'r'"), -(19147, 0, "'e'"), -(19148, 0, "'t'"), -(19149, 0, "'t'"), -(19150, 0, "'y'"), -(19151, 0, "' '"), -(19152, 0, "'f'"), -(19153, 0, "'a'"), -(19154, 0, "'s'"), -(19155, 0, "'t'"), -(19156, 0, "'.'"), -(19157, 0, "'.'"), -(19158, 0, "'.'"), -(19159, 0, "' '"), -(19160, 0, "'b'"), -(19161, 0, "'u'"), -(19162, 0, "'t'"), -(19163, 0, "' '"), -(19164, 4, "''"), -(19179, 4, "'B'"), -(19180, 0, "'-'"), -(19181, 0, "'t'"), -(19182, 0, "'r'"), -(19183, 0, "'e'"), -(19184, 0, "'e'"), -(19342, 1, "''"), -(19342, 0, "' '"), -(19343, 0, "'t'"), -(19344, 0, "'o'"), -(19345, 0, "' '"), -(19346, 0, "'s'"), -(19347, 0, "'e'"), -(19348, 0, "'e'"), -(19349, 0, "' '"), -(19350, 0, "'h'"), -(19351, 0, "'o'"), -(19352, 0, "'w'"), -(19353, 0, "' '"), -(19354, 0, "'f'"), -(19355, 0, "'a'"), -(19356, 0, "'s'"), -(19357, 0, "'t'"), -(19358, 0, "' '"), -(19359, 0, "'t'"), -(19360, 0, "'h'"), -(19361, 0, "'i'"), -(19362, 0, "'s'"), -(19363, 0, "' '"), -(19364, 0, "'p'"), -(19365, 0, "'u'"), -(19366, 0, "'p'"), -(19367, 0, "'p'"), -(19368, 0, "'y'"), -(19369, 0, "' '"), -(19370, 0, "'c'"), -(19371, 0, "'a'"), -(19372, 0, "'n'"), -(19373, 0, "' '"), -(19374, 0, "'r'"), -(19375, 0, "'e'"), -(19376, 0, "'a'"), -(19377, 0, "'l'"), -(19378, 0, "'l'"), -(19379, 0, "'y'"), -(19380, 0, "' '"), -(19381, 0, "'g'"), -(19382, 0, "'o'"), -(19383, 0, "'?'"), -(19953, 0, "'n'"), -(19954, 0, "'B'"), -(19955, 0, "'o'"), -(19956, 0, "'o'"), -(19957, 0, "'m'"), -(19958, 0, "'.'"), -(19959, 0, "'n'"), -(19960, 0, "'n'"), -(19959, 0, "' '"), -(19960, 0, "'1'"), -(19961, 0, "'4'"), -(19962, 0, "'0'"), -(19963, 0, "'0'"), -(19964, 0, "'0'"), -(19965, 0, "' '"), -(19965, 1, "''"), -(19965, 0, "'x'"), -(19966, 0, "' '"), -(19967, 0, "'f'"), -(19968, 0, "'a'"), -(19969, 0, "'s'"), -(19970, 0, "'t'"), -(19971, 0, "'e'"), -(19972, 0, "'r'"), -(19973, 0, "'.'"), -(19973, 0, "';'"), -(19974, 0, "' '"), -(19975, 0, "'a'"), -(19976, 0, "'s'"), -(19977, 0, "' '"), -(19978, 0, "'p'"), -(19979, 0, "'r'"), -(19980, 0, "'o'"), -(19981, 0, "'m'"), -(19982, 0, "'i'"), -(19983, 0, "'s'"), -(19984, 0, "'e'"), -(19985, 0, "'d'"), -(225, 0, "'a'"), -(226, 0, "'l'"), -(227, 0, "'l'"), -(228, 0, "' '"), -(229, 0, "'o'"), -(230, 0, "'f'"), -(231, 0, "' '"), -(236, 4, "''"), -(419, 0, "'t'"), -(420, 0, "'h'"), -(421, 0, "'i'"), -(422, 0, "'s'"), -(423, 0, "' '"), -(424, 0, "'i'"), -(425, 0, "'s'"), -(426, 0, "' '"), -(427, 0, "'a'"), -(428, 0, "'w'"), -(429, 0, "'k'"), -(430, 0, "'w'"), -(431, 0, "'a'"), -(432, 0, "'r'"), -(433, 0, "'d'"), -(434, 0, "' '"), -(435, 0, "'b'"), -(436, 0, "'u'"), -(437, 0, "'t'"), -(438, 0, "' '"), -(439, 0, "'.'"), -(440, 0, "'.'"), -(441, 0, "' '"), -(587, 0, "'w'"), -(588, 0, "'h'"), -(589, 0, "'i'"), -(590, 0, "'c'"), -(591, 0, "'h'"), -(592, 0, "','"), -(593, 0, "' '"), -(594, 0, "'b'"), -(595, 0, "'y'"), -(596, 0, "' '"), -(597, 0, "'t'"), -(598, 0, "'h'"), -(599, 0, "'e'"), -(600, 0, "' '"), -(601, 0, "'w'"), -(602, 0, "'a'"), -(603, 0, "'y'"), -(604, 0, "','"), -(605, 0, "' '"), -(677, 18, "'O'"), -(678, 0, "'i'"), -(679, 0, "'!'"), -(679, 1, "''"), -(679, 0, "' '"), -(680, 0, "'-'"), -(681, 0, "' '"), -(682, 0, "'w'"), -(683, 0, "'h'"), -(684, 0, "'a'"), -(685, 0, "'t'"), -(686, 0, "'s'"), -(687, 0, "' '"), -(688, 0, "'g'"), -(689, 0, "'o'"), -(690, 0, "'i'"), -(691, 0, "'n'"), -(692, 0, "'g'"), -(693, 0, "' '"), -(694, 0, "'o'"), -(695, 0, "'n'"), -(696, 0, "'?'"), -(696, 1, "''"), -(696, 0, "' '"), -(697, 0, "'h'"), -(698, 0, "'e'"), -(699, 0, "'r'"), -(700, 0, "'e'"), -(701, 0, "'?'"), -(773, 14, "'c'"), -(774, 0, "'o'"), -(775, 0, "'d'"), -(776, 0, "'e'"), -(944, 0, "'.'"), -(945, 0, "' '"), -(946, 0, "'A'"), -(947, 0, "'n'"), -(948, 0, "'d'"), -(949, 2, "''"), -(955, 5, "'o'"), -(956, 0, "'f'"), -(957, 0, "' '"), -(958, 0, "'t'"), -(959, 0, "'h'"), -(960, 0, "'o'"), -(961, 0, "'s'"), -(962, 0, "'e'"), -(963, 0, "' '"), -(964, 0, "'i'"), -(965, 0, "'n'"), -(966, 0, "'s'"), -(967, 0, "'e'"), -(968, 0, "'r'"), -(969, 0, "'t'"), -(970, 0, "'s'"), -(1007, 16, "'O'"), -(1007, 0, "'D'"), -(1008, 0, "'u'"), -(1009, 0, "'h'"), -(1010, 0, "' '"), -(1011, 0, "'-'"), -(1012, 0, "' '"), -(1013, 1, "''"), -(1013, 0, "'o'"), -(1183, 0, "'s'"), -(1184, 0, "'o'"), -(1185, 0, "' '"), -(1186, 0, "'m'"), -(1187, 0, "'a'"), -(1188, 0, "'n'"), -(1189, 0, "'y'"), -(1190, 0, "' '"), -(1197, 10, "''"), -(1207, 0, "'m'"), -(1208, 0, "'e'"), -(1209, 0, "' '"), -(1210, 0, "'a'"), -(1211, 0, "' '"), -(1212, 0, "'l'"), -(1213, 0, "'i'"), -(1214, 0, "'n'"), -(1215, 0, "'k'"), -(1216, 0, "' '"), -(1217, 0, "'t'"), -(1218, 0, "'o'"), -(1219, 7, "''"), -(1254, 6, "''"), -(1257, 0, "' '"), -(1258, 0, "'B'"), -(1259, 0, "'a'"), -(1260, 0, "'d'"), -(1261, 0, "'!'"), -(1271, 0, "' '"), -(1272, 0, "'Y'"), -(1273, 0, "' '"), -(1273, 1, "''"), -(1272, 1, "''"), -(1272, 0, "'M'"), -(1273, 0, "'y'"), -(1274, 0, "' '"), -(1275, 0, "'c'"), -(1276, 0, "'o'"), -(1277, 0, "'d'"), -(1278, 0, "'e'"), -(1279, 0, "' '"), -(1280, 0, "'i'"), -(1281, 0, "'s'"), -(1282, 0, "'n'"), -(1283, 0, "'''"), -(1284, 0, "'t'"), -(1285, 0, "' '"), -(1286, 0, "'s'"), -(1287, 0, "'l'"), -(1288, 0, "'o'"), -(1289, 0, "'w'"), -(1290, 0, "','"), -(1291, 0, "' '"), -(1271, 21, "''"), -(1408, 0, "'.'"), -(1409, 0, "' '"), -(1410, 0, "'J'"), -(1411, 0, "'u'"), -(1412, 0, "'p'"), -(1413, 0, "'i'"), -(1414, 0, "'t'"), -(1415, 0, "'e'"), -(1416, 0, "'r'"), -(1417, 0, "' '"), -(1418, 0, "'o'"), -(1419, 0, "'s'"), -(1420, 0, "' '"), -(1421, 0, "'a'"), -(1422, 0, "'n'"), -(1423, 0, "' '"), -(1423, 1, "''"), -(1422, 1, "''"), -(1421, 1, "''"), -(1420, 1, "''"), -(1419, 1, "''"), -(1418, 1, "''"), -(1418, 0, "'i'"), -(1419, 0, "'s'"), -(1420, 0, "' '"), -(1421, 0, "'a'"), -(1422, 0, "'n'"), -(1423, 0, "' '"), -(1424, 0, "'A'"), -(1425, 0, "'l'"), -(1426, 0, "'g'"), -(1427, 0, "'o'"), -(1428, 0, "'r'"), -(1429, 0, "'i'"), -(1430, 0, "'t'"), -(1431, 0, "'h'"), -(1432, 0, "'m'"), -(1433, 0, "'.'"), -(1434, 0, "' '"), -(1435, 0, "'R'"), -(1436, 0, "'G'"), -(1437, 0, "'A'"), -(1438, 0, "' '"), -(1439, 0, "'i'"), -(1440, 0, "'s'"), -(1441, 0, "' '"), -(1442, 0, "'a'"), -(1443, 0, "'n'"), -(1444, 0, "' '"), -(1445, 0, "'A'"), -(1446, 0, "'l'"), -(1447, 0, "'g'"), -(1448, 0, "'o'"), -(1449, 0, "'r'"), -(1450, 0, "'i'"), -(1451, 0, "'t'"), -(1452, 0, "'h'"), -(1453, 0, "'m'"), -(1454, 0, "'.'"), -(1456, 3, "'B'"), -(1435, 0, "'T'"), -(1436, 0, "'h'"), -(1437, 0, "'e'"), -(1438, 0, "' '"), -(1442, 6, "''"), -(1443, 1, "''"), -(1443, 0, "'a'"), -(1653, 13, "''"), -(1652, 1, "''"), -(1795, 1, "''"), -(1804, 1, "''"), -(1896, 128, "''"), -(1896, 0, "'Y'"), -(1897, 0, "'e'"), -(1898, 0, "'a'"), -(1899, 0, "'r'"), -(1900, 0, "'s'"), -(1901, 0, "' '"), -(1902, 0, "'a'"), -(1903, 0, "'g'"), -(1904, 0, "'o'"), -(1905, 0, "' '"), -(1907, 9, "''"), -(1918, 1, "''"), -(1917, 1, "''"), -(1916, 1, "''"), -(1916, 0, "'e'"), -(1917, 0, "'d'"), -(1928, 6, "''"), -(1922, 6, "''"), -(1921, 1, "''"), -(183, 0, "'s'"), -(2126, 38, "''"), -(2149, 4, "'d'"), -(2150, 0, "'o'"), -(2151, 0, "'e'"), -(2152, 0, "'s'"), -(2294, 0, "' '"), -(2295, 0, "'I'"), -(2296, 0, "' '"), -(2297, 0, "'t'"), -(2298, 0, "'h'"), -(2299, 0, "'i'"), -(2300, 0, "'n'"), -(2301, 0, "'k'"), -(2302, 0, "' '"), -(2303, 0, "'t'"), -(2304, 0, "'h'"), -(2305, 0, "'e'"), -(2306, 0, "'y'"), -(2307, 0, "'''"), -(2308, 0, "'r'"), -(2309, 0, "'e'"), -(2310, 0, "' '"), -(2311, 0, "'t'"), -(2312, 0, "'h'"), -(2313, 0, "'e'"), -(2314, 0, "' '"), -(2315, 0, "'f'"), -(2316, 0, "'u'"), -(2317, 0, "'t'"), -(2318, 0, "'u'"), -(2319, 0, "'r'"), -(2320, 0, "'e'"), -(2321, 0, "' '"), -(2322, 0, "'o'"), -(2323, 0, "'f'"), -(2324, 0, "' '"), -(2325, 0, "'c'"), -(2326, 0, "'o'"), -(2327, 0, "'l'"), -(2328, 0, "'l'"), -(2329, 0, "'a'"), -(2330, 0, "'b'"), -(2331, 0, "'o'"), -(2332, 0, "'r'"), -(2333, 0, "'a'"), -(2334, 0, "'t'"), -(2335, 0, "'i'"), -(2336, 0, "'v'"), -(2337, 0, "'e'"), -(2338, 0, "' '"), -(2339, 0, "'e'"), -(2340, 0, "'d'"), -(2341, 0, "'i'"), -(2342, 0, "'t'"), -(2343, 0, "'i'"), -(2344, 0, "'n'"), -(2345, 0, "'g'"), -(2346, 0, "'.'"), -(2378, 0, "' '"), -(2379, 0, "'f'"), -(2380, 0, "'o'"), -(2381, 0, "'r'"), -(2382, 0, "' '"), -(2383, 0, "'y'"), -(2384, 0, "'e'"), -(2385, 0, "'a'"), -(2386, 0, "'r'"), -(2387, 0, "'s'"), -(2211, 1, "''"), -(2222, 0, "' '"), -(2223, 0, "'i'"), -(2224, 0, "'s'"), -(2225, 0, "' '"), -(2226, 0, "'s'"), -(2227, 0, "'l'"), -(2228, 0, "'o'"), -(2229, 0, "'w'"), -(2230, 0, "'!'"), -(2495, 0, "'I'"), -(2496, 0, "' '"), -(2497, 0, "'t'"), -(2498, 0, "'h'"), -(2499, 0, "'i'"), -(2500, 0, "'n'"), -(2501, 0, "'k'"), -(2502, 0, "' '"), -(2536, 1, "''"), -(2537, 3, "''"), -(2537, 0, "'as '"), -(2666, 16, "''"), -(2666, 0, "'a'"), -(2667, 0, "'n'"), -(2668, 0, "'y'"), -(2669, 0, "'t'"), -(2670, 0, "'h'"), -(2671, 0, "'i'"), -(2672, 0, "'n'"), -(2673, 0, "'g'"), -(2674, 0, "' '"), -(2675, 0, "'a'"), -(2676, 0, "'b'"), -(2677, 0, "'o'"), -(2678, 0, "'u'"), -(2679, 0, "'t'"), -(2680, 0, "' '"), -(2681, 0, "'e'"), -(2682, 0, "'f'"), -(2683, 0, "'f'"), -(2684, 0, "'i'"), -(2685, 0, "'c'"), -(2686, 0, "'i'"), -(2687, 0, "'e'"), -(2688, 0, "'n'"), -(2689, 0, "'t'"), -(2690, 0, "' '"), -(2708, 10, "' '"), -(2709, 0, "'o'"), -(2710, 0, "'f'"), -(2711, 0, "' '"), -(2712, 0, "'t'"), -(2713, 0, "'h'"), -(2714, 0, "'o'"), -(2715, 0, "'s'"), -(2716, 0, "'e'"), -(2717, 0, "' '"), -(2718, 0, "'s'"), -(2719, 0, "'y'"), -(2720, 0, "'s'"), -(2721, 0, "'t'"), -(2722, 0, "'e'"), -(2723, 0, "'m'"), -(2724, 0, "'s'"), -(2727, 6, "'W'"), -(2728, 0, "'o'"), -(2729, 0, "'w'"), -(2730, 0, "','"), -(2731, 0, "' '"), -(2732, 0, "'I'"), -(2733, 0, "' '"), -(2734, 0, "'w'"), -(2735, 0, "'a'"), -(2736, 0, "'s'"), -(2737, 12, "''"), -(2737, 4, "''"), -(2737, 0, "' was'"), -(2737, 0, "' turns out I'"), -(2733, 4, "''"), -(2731, 2, "''"), -(2727, 4, "'But it'"), -(2717, 8, "''"), -(2717, 0, "' systems'"), -(2727, 6, "'Wow,'"), -(2731, 0, "' I'"), -(2733, 0, "' was'"), -(2737, 12, "''"), -(2737, 4, "''"), -(2763, 11, "'W'"), -(2764, 0, "'e'"), -(2765, 0, "'l'"), -(2766, 0, "'l'"), -(2801, 0, "'['"), -(2811, 0, "']'"), -(2812, 0, "'('"), -(2813, 0, "'https://github.com/automerge/automerge/'"), -(2852, 0, "')'"), -(2798, 0, "'https://github.com/automerge/automerge-perf/'"), -(2998, 0, "' '"), -(2999, 0, "'t'"), -(3000, 0, "'o'"), -(3001, 0, "' '"), -(3002, 0, "'r'"), -(3003, 0, "'u'"), -(3004, 0, "'n'"), -(3082, 1, "''"), -(3081, 1, "''"), -(3081, 0, "'5'"), -(3082, 0, "'4'"), -(3082, 1, "''"), -(3081, 1, "''"), -(3081, 0, "'6'"), -(3082, 0, "'5'"), -(3099, 32, "''"), -(3098, 1, "''"), -(3099, 0, "'n'"), -(3100, 0, "'e'"), -(3101, 0, "'a'"), -(3102, 0, "'r'"), -(3103, 0, "'l'"), -(3104, 0, "'y'"), -(3105, 0, "' '"), -(3106, 6, "'5'"), -(3107, 0, "'0'"), -(3108, 0, "'0'"), -(3109, 0, "'0'"), -(3110, 0, "'x'"), -(3111, 0, "' '"), -(3112, 0, "'f'"), -(3113, 0, "'a'"), -(3114, 0, "'s'"), -(3115, 0, "'t'"), -(3116, 0, "'e'"), -(3117, 0, "'r'"), -(3264, 0, "'I'"), -(3265, 0, "'''"), -(3266, 0, "'l'"), -(3267, 0, "'l'"), -(3268, 0, "' '"), -(3269, 0, "'t'"), -(3270, 0, "'a'"), -(3271, 0, "'k'"), -(3272, 0, "'e'"), -(3273, 0, "' '"), -(3274, 0, "'y'"), -(3275, 0, "'o'"), -(3276, 0, "'u'"), -(3277, 0, "' '"), -(3278, 0, "'t'"), -(3279, 0, "'h'"), -(3280, 0, "'r'"), -(3281, 0, "'o'"), -(3282, 0, "'u'"), -(3283, 0, "'g'"), -(3284, 0, "'h'"), -(3285, 0, "' '"), -(3285, 33, "''"), -(3285, 0, "' '"), -(3286, 0, "'I'"), -(3287, 0, "' '"), -(3287, 1, "''"), -(3286, 1, "''"), -(3285, 1, "''"), -(3285, 0, "' I '"), -(3287, 1, "''"), -(3285, 2, "''"), -(3285, 0, "' all the steps that make it fast.'"), -(3300, 18, "'t'"), -(3301, 0, "'o'"), -(3302, 0, "' '"), -(3303, 0, "'m'"), -(3304, 0, "'a'"), -(3305, 0, "'k'"), -(3306, 0, "'e'"), -(3307, 0, "' '"), -(3308, 0, "'i'"), -(3309, 0, "'t'"), -(3310, 0, "' '"), -(3311, 0, "'s'"), -(3312, 0, "'u'"), -(3313, 0, "'p'"), -(3314, 0, "'e'"), -(3315, 0, "'r'"), -(3316, 0, "' '"), -(3317, 0, "'f'"), -(3318, 0, "'a'"), -(3319, 0, "'s'"), -(3320, 0, "'t'"), -(3321, 0, "'.'"), -(3324, 4, "'B'"), -(3325, 0, "'u'"), -(3326, 0, "'t'"), -(3353, 0, "':'"), -(2254, 0, "'https://josephg.com/blog/crdts-are-the-future/'"), -(3570, 0, "'['"), -(3586, 0, "']'"), -(3587, 0, "'('"), -(3588, 0, "'https://martin.kleppmann.com/2020/07/06/crdt-hard-parts-hydra.html'"), -(3654, 0, "')'"), -(4147, 27, "'S'"), -(4148, 0, "'o'"), -(4149, 0, "'u'"), -(4150, 0, "'n'"), -(4151, 0, "'d'"), -(4152, 0, "'s'"), -(4153, 0, "' '"), -(4154, 0, "'l'"), -(4155, 0, "'i'"), -(4156, 0, "'k'"), -(4157, 0, "'e'"), -(4158, 0, "' '"), -(4159, 0, "'a'"), -(4160, 0, "' '"), -(4161, 0, "'t'"), -(4162, 0, "'r'"), -(4163, 0, "'e'"), -(4164, 0, "'e'"), -(4165, 0, "','"), -(4166, 0, "' '"), -(4167, 0, "'d'"), -(4168, 0, "'a'"), -(4169, 0, "'w'"), -(4170, 0, "'g'"), -(4171, 0, "'!'"), -(4147, 24, "'I'"), -(4148, 0, "'t'"), -(4149, 0, "'s'"), -(4150, 0, "' '"), -(4151, 0, "'a'"), -(4152, 0, "' '"), -(4153, 0, "'t'"), -(4154, 0, "'r'"), -(4155, 0, "'e'"), -(4156, 0, "'e'"), -(4438, 0, "'n'"), -(4439, 0, "'>'"), -(4440, 0, "' '"), -(4441, 0, "'D'"), -(4442, 0, "'i'"), -(4443, 0, "'a'"), -(4444, 0, "'g'"), -(4445, 0, "'r'"), -(4446, 0, "'a'"), -(4447, 0, "'m'"), -(4448, 0, "' '"), -(4449, 0, "'h'"), -(4450, 0, "'e'"), -(4451, 0, "'r'"), -(4452, 0, "'e'"), -(4453, 0, "'n'"), -(5151, 8, "'W'"), -(5152, 0, "'h'"), -(5153, 0, "'e'"), -(5154, 0, "'n'"), -(5196, 6, "''"), -(5224, 0, "'t'"), -(5225, 0, "'h'"), -(5226, 0, "'e'"), -(5227, 0, "'i'"), -(5228, 0, "'r'"), -(5229, 0, "' '"), -(5239, 0, "' '"), -(5240, 0, "'r'"), -(5241, 0, "'e'"), -(5242, 0, "'s'"), -(5243, 0, "'u'"), -(5244, 0, "'l'"), -(5245, 0, "'t'"), -(5246, 0, "'i'"), -(5247, 0, "'n'"), -(5248, 0, "'g'"), -(5254, 0, "' '"), -(5255, 0, "'('"), -(5256, 0, "'o'"), -(5257, 0, "'r'"), -(5258, 0, "' '"), -(5259, 0, "'d'"), -(5259, 1, "''"), -(5259, 0, "'t'"), -(5260, 0, "'e'"), -(5261, 0, "'x'"), -(5262, 0, "'t'"), -(5263, 0, "' '"), -(5264, 0, "'d'"), -(5265, 0, "'o'"), -(5266, 0, "'c'"), -(5267, 0, "'u'"), -(5268, 0, "'m'"), -(5269, 0, "'e'"), -(5270, 0, "'n'"), -(5271, 0, "'t'"), -(5272, 0, "')'"), -(5273, 0, "' '"), -(5274, 0, "'c'"), -(5275, 0, "'a'"), -(5276, 0, "'n'"), -(5277, 0, "' '"), -(5278, 0, "'b'"), -(5279, 0, "'e'"), -(5280, 0, "' '"), -(5281, 0, "'m'"), -(5282, 0, "'a'"), -(5283, 0, "'d'"), -(5284, 0, "'e'"), -(5285, 0, "' '"), -(5286, 0, "'b'"), -(5287, 0, "'y'"), -(5288, 26, "''"), -(5288, 0, "' '"), -(5425, 11, "''"), -(5429, 0, "','"), -(5430, 0, "' '"), -(5431, 0, "'w'"), -(5432, 0, "'h'"), -(5433, 0, "'i'"), -(5434, 0, "'c'"), -(5435, 0, "'h'"), -(5436, 0, "' '"), -(5437, 0, "'i'"), -(5438, 0, "'s'"), -(5439, 0, "' '"), -(5440, 0, "'t'"), -(5441, 0, "'o'"), -(5442, 0, "' '"), -(5443, 0, "'s'"), -(5444, 0, "'t'"), -(5445, 0, "'o'"), -(5446, 0, "'r'"), -(5447, 0, "'e'"), -(5448, 0, "' '"), -(5449, 0, "'a'"), -(5450, 0, "' '"), -(5450, 1, "''"), -(5449, 1, "''"), -(5449, 0, "'a'"), -(5450, 0, "'l'"), -(5451, 0, "'l'"), -(5452, 0, "' '"), -(5453, 0, "'t'"), -(5454, 0, "'h'"), -(5455, 0, "'e'"), -(5456, 0, "' '"), -(5457, 0, "'d'"), -(5458, 0, "'a'"), -(5459, 0, "'t'"), -(5460, 0, "'a'"), -(5461, 0, "' '"), -(5462, 0, "'a'"), -(5463, 0, "'s'"), -(5464, 0, "' '"), -(5465, 0, "'a'"), -(5466, 0, "' '"), -(5467, 0, "'t'"), -(5468, 0, "'r'"), -(5469, 0, "'e'"), -(5470, 0, "'e'"), -(5529, 1, "''"), -(5528, 1, "''"), -(5527, 1, "''"), -(5526, 1, "''"), -(5525, 1, "''"), -(5524, 1, "''"), -(5523, 1, "''"), -(5522, 1, "''"), -(5652, 0, "' '"), -(5653, 0, "'('"), -(5654, 0, "'W'"), -(5655, 0, "'h'"), -(5655, 1, "''"), -(5654, 1, "''"), -(5653, 1, "''"), -(5652, 1, "''"), -(5653, 0, "' '"), -(5654, 0, "'('"), -(5655, 0, "'W'"), -(5656, 0, "'h'"), -(5657, 0, "'a'"), -(5658, 0, "'t'"), -(5659, 0, "' '"), -(5660, 0, "'a'"), -(5661, 0, "'r'"), -(5662, 0, "'e'"), -(5663, 0, "' '"), -(5664, 0, "'a'"), -(5665, 0, "'l'"), -(5666, 0, "'l'"), -(5667, 0, "' '"), -(5668, 0, "'t'"), -(5669, 0, "'h'"), -(5670, 0, "'o'"), -(5671, 0, "'s'"), -(5672, 0, "'e'"), -(5673, 0, "' '"), -(5674, 0, "'U'"), -(5675, 0, "'i'"), -(5676, 0, "'n'"), -(5677, 0, "'t'"), -(5678, 0, "'8'"), -(5679, 0, "'A'"), -(5680, 0, "'r'"), -(5681, 0, "'r'"), -(5682, 0, "'a'"), -(5683, 0, "'y'"), -(5684, 0, "'s'"), -(5685, 0, "' '"), -(5686, 0, "'d'"), -(5687, 0, "'o'"), -(5688, 0, "'i'"), -(5689, 0, "'n'"), -(5690, 0, "'g'"), -(5691, 0, "' '"), -(5692, 0, "'a'"), -(5693, 0, "'l'"), -(5694, 0, "'l'"), -(5695, 0, "' '"), -(5696, 0, "'o'"), -(5697, 0, "'f'"), -(5698, 0, "' '"), -(5699, 0, "'t'"), -(5699, 1, "''"), -(5698, 1, "''"), -(5697, 1, "''"), -(5697, 0, "'v'"), -(5698, 0, "'e'"), -(5699, 0, "'r'"), -(5700, 0, "' '"), -(5701, 0, "'t'"), -(5702, 0, "'h'"), -(5703, 0, "'e'"), -(5704, 0, "' '"), -(5705, 0, "'p'"), -(5706, 0, "'l'"), -(5707, 0, "'a'"), -(5708, 0, "'c'"), -(5709, 0, "'e'"), -(5710, 0, "'?'"), -(5711, 0, "')'"), -(5655, 0, "'A'"), -(5656, 0, "'n'"), -(5657, 0, "'d'"), -(5658, 0, "' '"), -(5659, 1, "''"), -(5659, 0, "'w'"), -(5716, 0, "'.'"), -(5718, 0, "'n'"), -(5719, 0, "'T'"), -(5720, 0, "'h'"), -(5721, 0, "'r'"), -(5722, 0, "'o'"), -(5723, 0, "'u'"), -(5724, 0, "'g'"), -(5725, 0, "'h'"), -(5726, 0, "' '"), -(5727, 0, "'t'"), -(5728, 0, "'h'"), -(5729, 0, "'i'"), -(5730, 0, "'s'"), -(5731, 0, "' '"), -(5732, 0, "'p'"), -(5733, 0, "'o'"), -(5719, 15, "'W'"), -(5720, 0, "'e'"), -(5721, 0, "'''"), -(5722, 0, "'r'"), -(5723, 0, "'e'"), -(5724, 0, "' '"), -(5725, 0, "'g'"), -(5726, 0, "'o'"), -(5727, 0, "'i'"), -(5728, 0, "'n'"), -(5729, 0, "'g'"), -(5730, 0, "' '"), -(5731, 0, "'t'"), -(5732, 0, "'o'"), -(5733, 0, "' '"), -(5734, 0, "'g'"), -(5735, 0, "'o'"), -(5736, 0, "' '"), -(5737, 0, "'t'"), -(5738, 0, "'h'"), -(5739, 0, "'r'"), -(5740, 0, "'o'"), -(5741, 0, "'u'"), -(5742, 0, "'g'"), -(5743, 0, "'h'"), -(5744, 0, "' '"), -(5745, 0, "'a'"), -(5746, 0, "' '"), -(5747, 0, "'l'"), -(5748, 0, "'o'"), -(5749, 0, "'t'"), -(5750, 0, "' '"), -(5751, 0, "'o'"), -(5752, 0, "'f'"), -(5753, 0, "' '"), -(5754, 0, "'d'"), -(5755, 0, "'i'"), -(5756, 0, "'f'"), -(5757, 0, "'f'"), -(5758, 0, "'e'"), -(5759, 0, "'r'"), -(5760, 0, "'e'"), -(5761, 0, "'n'"), -(5762, 0, "'t'"), -(5763, 0, "' '"), -(5764, 0, "'a'"), -(5765, 0, "'l'"), -(5766, 0, "'g'"), -(5767, 0, "'r'"), -(5768, 0, "'i'"), -(5768, 1, "''"), -(5767, 1, "''"), -(5767, 0, "'o'"), -(5768, 0, "'r'"), -(5769, 0, "'h'"), -(5769, 1, "''"), -(5769, 0, "'i'"), -(5770, 0, "'t'"), -(5771, 0, "'h'"), -(5772, 0, "'m'"), -(5773, 0, "'s'"), -(5774, 0, "' '"), -(5775, 0, "'h'"), -(5776, 0, "'e'"), -(5777, 0, "'r'"), -(5778, 0, "'e'"), -(5773, 1, "''"), -(5773, 0, "'i'"), -(5774, 0, "'c'"), -(5775, 0, "' '"), -(5776, 0, "'a'"), -(5777, 0, "'p'"), -(5778, 0, "'p'"), -(5775, 4, "''"), -(5773, 2, "''"), -(5773, 0, "'s'"), -(5779, 0, "'.'"), -(5780, 1, "''"), -(5780, 0, "' '"), -(5781, 0, "'T'"), -(5782, 0, "'o'"), -(5783, 3, "''"), -(5795, 1, "''"), -(5794, 1, "''"), -(5793, 1, "''"), -(5793, 0, "' '"), -(5794, 0, "'a'"), -(5795, 0, "'l'"), -(5796, 0, "'l'"), -(5797, 0, "' '"), -(5798, 0, "'o'"), -(5799, 0, "'f'"), -(5800, 0, "' '"), -(5801, 0, "'t'"), -(5802, 0, "'h'"), -(5803, 0, "'e'"), -(5804, 0, "'m'"), -(5781, 24, "'S'"), -(5782, 0, "'o'"), -(5783, 0, "' '"), -(5784, 0, "'t'"), -(5784, 1, "''"), -(5784, 0, "'f'"), -(5785, 0, "'o'"), -(5786, 0, "'r'"), -(5787, 0, "' '"), -(5788, 0, "'a'"), -(5789, 0, "' '"), -(5790, 0, "'s'"), -(5791, 0, "'i'"), -(5792, 0, "'m'"), -(5793, 0, "'p'"), -(5794, 0, "'l'"), -(5795, 0, "'e'"), -(5796, 0, "' '"), -(5797, 0, "'b'"), -(5798, 0, "'e'"), -(5799, 0, "'n'"), -(5800, 0, "'c'"), -(5801, 0, "'h'"), -(5802, 0, "'m'"), -(5803, 0, "'a'"), -(5804, 0, "'r'"), -(5805, 0, "'k'"), -(5784, 3, "'a'"), -(5785, 0, "'s'"), -(5810, 0, "' '"), -(5811, 0, "'g'"), -(5812, 0, "'o'"), -(5813, 0, "'i'"), -(5814, 0, "'n'"), -(5815, 0, "'g'"), -(5816, 0, "' '"), -(5817, 0, "'t'"), -(5818, 0, "'o'"), -(5819, 6, "' '"), -(5820, 0, "'u'"), -(5821, 0, "'s'"), -(5822, 0, "'e'"), -(5937, 6, "''"), -(5944, 0, "' '"), -(5945, 0, "'h'"), -(5946, 0, "'i'"), -(5947, 0, "'m'"), -(5948, 0, "'s'"), -(5949, 0, "'e'"), -(5950, 0, "'l'"), -(5951, 0, "'f'"), -(5961, 0, "' '"), -(5962, 0, "'w'"), -(5963, 0, "'h'"), -(5964, 0, "'e'"), -(5965, 0, "'r'"), -(5966, 0, "'e'"), -(5962, 5, "''"), -(5962, 16, "''"), -(6001, 1, "''"), -(6000, 1, "''"), -(6000, 0, "' '"), -(6001, 0, "'a'"), -(6002, 0, "'r'"), -(6003, 0, "'e'"), -(6004, 0, "'n'"), -(6005, 0, "'''"), -(6006, 0, "'t'"), -(6007, 0, "' '"), -(6008, 0, "'a'"), -(6009, 0, "'n'"), -(6010, 0, "'y'"), -(6011, 3, "''"), -(6046, 1, "''"), -(6051, 0, "' '"), -(6052, 0, "'j'"), -(6053, 0, "'a'"), -(6053, 1, "''"), -(6052, 1, "''"), -(6052, 0, "'h'"), -(6053, 0, "'a'"), -(6054, 0, "'s'"), -(6055, 0, "' '"), -(6056, 0, "'e'"), -(6057, 0, "'d'"), -(6058, 0, "'i'"), -(6059, 0, "'t'"), -(6060, 0, "'s'"), -(6061, 0, "' '"), -(6062, 0, "'f'"), -(6063, 0, "'r'"), -(6064, 0, "'o'"), -(6065, 0, "'m'"), -(6081, 1, "''"), -(6081, 0, "'.'"), -(6083, 1, "''"), -(6083, 0, "'B'"), -(6106, 1, "''"), -(6106, 0, "' '"), -(6107, 0, "'-'"), -(6109, 1, "''"), -(6109, 0, "'u'"), -(6114, 0, "' '"), -(6115, 0, "'a'"), -(6116, 0, "'l'"), -(6117, 0, "'m'"), -(6118, 0, "'o'"), -(6119, 0, "'s'"), -(6120, 0, "'t'"), -(6121, 0, "' '"), -(6122, 0, "'n'"), -(6123, 0, "'e'"), -(6124, 0, "'v'"), -(6125, 0, "'e'"), -(6126, 0, "'r'"), -(6127, 0, "' '"), -(6127, 1, "''"), -(6128, 13, "'p'"), -(6129, 0, "'u'"), -(6130, 0, "'t'"), -(6131, 0, "' '"), -(6132, 0, "'t'"), -(6133, 0, "'h'"), -(6134, 0, "'e'"), -(6135, 0, "'i'"), -(6136, 0, "'r'"), -(6137, 0, "' '"), -(6138, 0, "'c'"), -(6139, 0, "'u'"), -(6140, 0, "'r'"), -(6141, 0, "'s'"), -(6142, 0, "'o'"), -(6143, 0, "'r'"), -(6144, 0, "'s'"), -(6145, 0, "' '"), -(6146, 0, "'a'"), -(6147, 0, "' '"), -(6148, 0, "'t'"), -(6148, 1, "''"), -(6147, 1, "''"), -(6147, 0, "'t'"), -(6148, 0, "' '"), -(6149, 0, "'e'"), -(6150, 0, "'x'"), -(6151, 0, "'a'"), -(6152, 0, "'c'"), -(6153, 0, "'t'"), -(6154, 0, "'l'"), -(6155, 0, "'y'"), -(6156, 0, "' '"), -(6157, 0, "'t'"), -(6158, 0, "'h'"), -(6159, 0, "'e'"), -(6160, 0, "' '"), -(6161, 0, "'s'"), -(6162, 0, "'a'"), -(6163, 0, "'m'"), -(6164, 0, "'e'"), -(6165, 0, "' '"), -(6166, 0, "'p'"), -(6167, 0, "'l'"), -(6168, 0, "'a'"), -(6169, 0, "'c'"), -(6170, 0, "'e'"), -(6171, 0, "' '"), -(6172, 0, "'a'"), -(6173, 0, "'n'"), -(6174, 0, "'d'"), -(6175, 0, "' '"), -(6176, 0, "'s'"), -(6177, 0, "'t'"), -(6178, 0, "'a'"), -(6179, 0, "'r'"), -(6180, 0, "'t'"), -(6181, 0, "' '"), -(6188, 43, "''"), -(6188, 0, "' '"), -(6189, 0, "'a'"), -(6190, 0, "'t'"), -(6191, 0, "' '"), -(6192, 0, "'t'"), -(6193, 0, "'h'"), -(6194, 0, "'e'"), -(6195, 0, "' '"), -(6196, 0, "'s'"), -(6197, 0, "'a'"), -(6198, 0, "'m'"), -(6199, 0, "'e'"), -(6200, 0, "' '"), -(6201, 0, "'t'"), -(6202, 0, "'i'"), -(6203, 0, "'m'"), -(6204, 0, "'e'"), -(6205, 0, "'.'"), -(6127, 0, "' '"), -(6128, 0, "'a'"), -(6129, 0, "'c'"), -(6130, 0, "'t'"), -(6131, 0, "'u'"), -(6132, 0, "'a'"), -(6133, 0, "'l'"), -(6134, 0, "'l'"), -(6135, 0, "'y'"), -(6197, 18, "''"), -(6197, 0, "'.'"), -(6185, 6, "''"), -(6190, 1, "''"), -(6189, 1, "''"), -(6188, 1, "''"), -(6188, 0, "'e'"), -(6190, 0, "' '"), -(6191, 0, "'A'"), -(6192, 0, "'n'"), -(6193, 0, "'d'"), -(6194, 0, "' '"), -(6195, 0, "'I'"), -(6196, 0, "'''"), -(6197, 0, "'m'"), -(6198, 0, "' '"), -(6199, 0, "'j'"), -(6200, 0, "'u'"), -(6201, 0, "'s'"), -(6202, 0, "'t'"), -(6203, 0, "' '"), -(6204, 0, "'c'"), -(6205, 0, "'o'"), -(6206, 0, "'u'"), -(6207, 0, "'n'"), -(6208, 0, "'t'"), -(6209, 0, "'i'"), -(6210, 0, "'n'"), -(6211, 0, "'g'"), -(6212, 0, "' '"), -(6213, 0, "'t'"), -(6214, 0, "'h'"), -(6215, 0, "'e'"), -(6216, 0, "' '"), -(6217, 0, "'t'"), -(6218, 0, "'i'"), -(6219, 0, "'m'"), -(6220, 0, "'e'"), -(6221, 0, "' '"), -(6222, 0, "'f'"), -(6223, 0, "'r'"), -(6224, 0, "'o'"), -(6225, 0, "'m'"), -(6226, 0, "' '"), -(6227, 0, "'a'"), -(6228, 0, "'p'"), -(6229, 0, "'p'"), -(6230, 0, "'l'"), -(6231, 0, "'y'"), -(6232, 0, "'i'"), -(6233, 0, "'n'"), -(6234, 0, "'g'"), -(6235, 0, "' '"), -(6236, 0, "'t'"), -(6237, 0, "'h'"), -(6238, 0, "'i'"), -(6239, 0, "'s'"), -(6240, 0, "' '"), -(6241, 0, "'t'"), -(6242, 0, "'r'"), -(6243, 0, "'a'"), -(6244, 0, "'c'"), -(6245, 0, "'e'"), -(6246, 0, "' '"), -(6247, 0, "'*'"), -(6248, 0, "'l'"), -(6249, 0, "'o'"), -(6250, 0, "'c'"), -(6251, 0, "'a'"), -(6252, 0, "'l'"), -(6253, 0, "'l'"), -(6254, 0, "'y'"), -(6255, 0, "'*'"), -(6256, 0, "'.'"), -(6257, 0, "' '"), -(6258, 0, "'N'"), -(6259, 0, "'o'"), -(6260, 0, "'t'"), -(6261, 0, "' '"), -(6262, 0, "'i'"), -(6263, 0, "'d'"), -(6264, 0, "'e'"), -(6265, 0, "'a'"), -(6266, 0, "'l'"), -(6267, 0, "','"), -(6268, 0, "' '"), -(6269, 0, "'b'"), -(6270, 0, "'u'"), -(6271, 0, "'t'"), -(6272, 0, "' '"), -(6273, 0, "'e'"), -(6274, 0, "'h'"), -(6275, 0, "'.'"), -(6276, 0, "' '"), -(6277, 0, "'Y'"), -(6278, 0, "'o'"), -(6279, 0, "'u'"), -(6280, 0, "' '"), -(6281, 0, "'w'"), -(6282, 0, "'a'"), -(6283, 0, "'n'"), -(6284, 0, "'t'"), -(6285, 0, "' '"), -(6286, 0, "'t'"), -(6287, 0, "'h'"), -(6288, 0, "'e'"), -(6289, 0, "' '"), -(6290, 0, "'g'"), -(6291, 0, "'o'"), -(6292, 0, "'o'"), -(6293, 0, "'d'"), -(6294, 0, "' '"), -(6295, 0, "'s'"), -(6296, 0, "'t'"), -(6297, 0, "'u'"), -(6298, 0, "'f'"), -(6299, 0, "'f'"), -(6300, 0, "','"), -(6301, 0, "' '"), -(6302, 0, "'o'"), -(6303, 0, "'u'"), -(6273, 31, "'g'"), -(6274, 0, "'o'"), -(6275, 0, "'o'"), -(6276, 0, "'d'"), -(6277, 0, "' '"), -(6278, 0, "'e'"), -(6279, 0, "'n'"), -(6280, 0, "'o'"), -(6281, 0, "'u'"), -(6282, 0, "'g'"), -(6283, 0, "'h'"), -(6273, 11, "'e'"), -(6274, 0, "'h'"), -(6275, 0, "'.'"), -(6273, 3, "'i'"), -(6274, 0, "'t'"), -(6275, 0, "'s'"), -(6276, 0, "' '"), -(6276, 1, "''"), -(6275, 1, "''"), -(6274, 1, "''"), -(6274, 0, "'i'"), -(6275, 0, "'t'"), -(6275, 1, "''"), -(6274, 1, "''"), -(6274, 0, "'t'"), -(6275, 0, "'''"), -(6276, 0, "'l'"), -(6277, 0, "'l'"), -(6278, 0, "' '"), -(6279, 0, "'d'"), -(6280, 0, "'o'"), -(6281, 0, "'.'"), -(3033, 0, "'n'"), -(3034, 0, "'e'"), -(3035, 0, "'a'"), -(3036, 0, "'r'"), -(3037, 0, "'l'"), -(3038, 0, "'y'"), -(3039, 0, "' '"), -(3040, 0, "'5'"), -(3041, 0, "' '"), -(3042, 0, "'m'"), -(3043, 0, "'i'"), -(3044, 0, "'n'"), -(3045, 0, "'u'"), -(3046, 0, "'t'"), -(3047, 0, "'e'"), -(3048, 0, "'s'"), -(3049, 0, "' '"), -(3050, 0, "'t'"), -(3051, 0, "'o'"), -(3052, 0, "' '"), -(3053, 0, "'r'"), -(3054, 0, "'u'"), -(3055, 0, "'n'"), -(3056, 0, "'.'"), -(3057, 0, "' '"), -(3058, 20, "''"), -(3131, 1, "''"), -(3130, 1, "''"), -(3129, 1, "''"), -(3132, 0, "'m'"), -(3133, 0, "'i'"), -(3134, 0, "'l'"), -(3135, 0, "'l'"), -(3136, 0, "'i'"), -(3137, 0, "'n'"), -(3137, 1, "''"), -(3144, 0, "'.'"), -(3145, 0, "' '"), -(3146, 0, "'0'"), -(3147, 0, "'.'"), -(3148, 0, "'6'"), -(3148, 1, "''"), -(3148, 0, "'0'"), -(3149, 0, "'6'"), -(3150, 0, "'5'"), -(3151, 0, "' '"), -(3152, 0, "'s'"), -(3153, 0, "'e'"), -(3154, 0, "'c'"), -(3155, 0, "'o'"), -(3156, 0, "'n'"), -(3157, 0, "'d'"), -(3158, 0, "'s'"), -(3392, 3, "'W'"), -(3393, 0, "'a'"), -(3394, 0, "'i'"), -(3395, 0, "'t'"), -(3396, 0, "','"), -(3397, 0, "' '"), -(3398, 0, "'n'"), -(3399, 0, "'o'"), -(3400, 0, "'.'"), -(3401, 10, "''"), -(3401, 0, "' '"), -(3402, 0, "'F'"), -(3403, 0, "'i'"), -(3404, 0, "'r'"), -(3405, 0, "'s'"), -(3406, 0, "'t'"), -(3436, 0, "' '"), -(3437, 0, "'a'"), -(3438, 0, "'n'"), -(3437, 2, "''"), -(3436, 1, "''"), -(3434, 0, "'o'"), -(3435, 0, "'n'"), -(3436, 0, "' '"), -(3437, 0, "'e'"), -(3438, 0, "'a'"), -(3439, 0, "'r'"), -(3440, 0, "'t'"), -(3441, 0, "'h'"), -(3442, 0, "' '"), -(3798, 0, "'n'"), -(3799, 0, "'n'"), -(3800, 0, "'I'"), -(3800, 1, "''"), -(3800, 0, "'I'"), -(3801, 0, "' '"), -(3802, 0, "'d'"), -(3803, 0, "'o'"), -(3804, 0, "'n'"), -(3805, 0, "'''"), -(3806, 0, "'t'"), -(3807, 0, "' '"), -(3808, 0, "'r'"), -(3809, 0, "'e'"), -(3810, 0, "'c'"), -(3811, 0, "'o'"), -(3812, 0, "'m'"), -(3813, 0, "'e'"), -(3814, 0, "'n'"), -(3815, 0, "'d'"), -(3815, 1, "''"), -(3814, 1, "''"), -(3813, 1, "''"), -(3813, 0, "'m'"), -(3814, 0, "'e'"), -(3815, 0, "'n'"), -(3816, 0, "'d'"), -(3817, 0, "' '"), -(3818, 0, "'u'"), -(3819, 0, "'s'"), -(3820, 0, "'i'"), -(3821, 0, "'n'"), -(3822, 0, "'g'"), -(3823, 0, "' '"), -(3824, 0, "'i'"), -(3825, 0, "'t'"), -(3826, 0, "'.'"), -(3827, 0, "' '"), -(3828, 0, "'I'"), -(3829, 0, "'f'"), -(3830, 0, "' '"), -(3831, 0, "'y'"), -(3832, 0, "'o'"), -(3833, 0, "'u'"), -(3834, 0, "' '"), -(3835, 0, "'w'"), -(3836, 0, "'a'"), -(3837, 0, "'n'"), -(3838, 0, "'t'"), -(3839, 0, "' '"), -(3840, 0, "'a'"), -(3841, 0, "' '"), -(3842, 0, "'p'"), -(3843, 0, "'r'"), -(3844, 0, "'o'"), -(3845, 0, "'d'"), -(3846, 0, "'u'"), -(3847, 0, "'c'"), -(3848, 0, "'t'"), -(3849, 0, "'i'"), -(3850, 0, "'o'"), -(3851, 0, "'n'"), -(3852, 0, "' '"), -(3853, 0, "'g'"), -(3854, 0, "'r'"), -(3855, 0, "'a'"), -(3856, 0, "'d'"), -(3857, 0, "'e'"), -(3858, 0, "' '"), -(3859, 0, "'C'"), -(3860, 0, "'R'"), -(3861, 0, "'D'"), -(3862, 0, "'T'"), -(3863, 0, "' '"), -(3864, 0, "'i'"), -(3865, 0, "'m'"), -(3866, 0, "'p'"), -(3867, 0, "'l'"), -(3868, 0, "'e'"), -(3869, 0, "'m'"), -(3870, 0, "'e'"), -(3871, 0, "'n'"), -(3872, 0, "'t'"), -(3873, 0, "'a'"), -(3874, 0, "'t'"), -(3875, 0, "'i'"), -(3876, 0, "'o'"), -(3877, 0, "'n'"), -(3878, 0, "' '"), -(3879, 0, "'t'"), -(3880, 0, "'o'"), -(3881, 0, "'d'"), -(3882, 0, "'a'"), -(3883, 0, "'y'"), -(3884, 0, "','"), -(3885, 0, "' '"), -(3800, 0, "'('"), -(3818, 0, "' '"), -(3819, 0, "'a'"), -(3820, 0, "'c'"), -(3821, 0, "'t'"), -(3822, 0, "'u'"), -(3823, 0, "'a'"), -(3824, 0, "'l'"), -(3825, 0, "'l'"), -(3826, 0, "'y'"), -(3801, 0, "'J'"), -(3802, 0, "'u'"), -(3803, 0, "'s'"), -(3804, 0, "'t'"), -(3805, 0, "' '"), -(3806, 0, "'a'"), -(3807, 0, "'n'"), -(3808, 0, "' '"), -(3809, 0, "'a'"), -(3810, 0, "'s'"), -(3811, 0, "'i'"), -(3812, 0, "'d'"), -(3813, 0, "'e'"), -(3814, 0, "':'"), -(3815, 0, "' '"), -(3851, 0, "' '"), -(3852, 0, "'t'"), -(3852, 1, "''"), -(3851, 1, "''"), -(3851, 0, "' '"), -(3852, 0, "'y'"), -(3853, 0, "'e'"), -(3854, 0, "'t'"), -(3855, 0, "' '"), -(3856, 0, "'-'"), -(3857, 0, "' '"), -(3858, 0, "'i'"), -(3859, 0, "'t'"), -(3860, 0, "'s'"), -(3861, 0, "' '"), -(3862, 0, "'n'"), -(3863, 0, "'o'"), -(3864, 0, "'t'"), -(3865, 0, "' '"), -(3866, 0, "'r'"), -(3867, 0, "'e'"), -(3868, 0, "'a'"), -(3869, 0, "'d'"), -(3870, 0, "'y'"), -(3931, 0, "'https://github.com/yjs/yjs'"), -(3930, 0, "' '"), -(3931, 0, "'Y'"), -(3932, 0, "'j'"), -(3933, 0, "'s'"), -(3934, 0, "' '"), -(3935, 0, "'i'"), -(3936, 0, "'s'"), -(3937, 0, "' '"), -(3938, 0, "'t'"), -(3939, 0, "'h'"), -(3940, 0, "'e'"), -(3941, 0, "' '"), -(3938, 4, "''"), -(3938, 0, "'c'"), -(3939, 0, "'u'"), -(3940, 0, "'r'"), -(3941, 0, "'r'"), -(3942, 0, "'e'"), -(3943, 0, "'n'"), -(3944, 0, "'t'"), -(3945, 0, "'l'"), -(3946, 0, "'y'"), -(3947, 0, "' '"), -(3948, 0, "'t'"), -(3949, 0, "'h'"), -(3950, 0, "'e'"), -(3951, 0, "' '"), -(3952, 0, "'b'"), -(3953, 0, "'e'"), -(3954, 0, "'s'"), -(3955, 0, "'t'"), -(3956, 0, "' '"), -(3957, 0, "'i'"), -(3958, 0, "'n'"), -(3959, 0, "' '"), -(3960, 0, "'t'"), -(3961, 0, "'h'"), -(3962, 0, "'e'"), -(3963, 0, "' '"), -(3964, 0, "'b'"), -(3965, 0, "'u'"), -(3966, 0, "'s'"), -(3967, 0, "'i'"), -(3968, 0, "'n'"), -(3969, 0, "'e'"), -(3970, 0, "'s'"), -(3971, 0, "'s'"), -(3972, 27, "''"), -(3972, 0, "'.'"), -(3973, 0, "' '"), -(3974, 0, "'K'"), -(3975, 0, "'e'"), -(3976, 0, "'v'"), -(3977, 0, "'i'"), -(3978, 0, "'n'"), -(3979, 0, "' '"), -(3979, 1, "''"), -(3979, 0, "' '"), -(3980, 0, "'Y'"), -(3980, 1, "''"), -(3980, 0, "'J'"), -(3981, 0, "'a'"), -(3982, 0, "'h'"), -(3983, 0, "'n'"), -(3984, 0, "'s'"), -(3985, 0, "' '"), -(3986, 0, "'i'"), -(3987, 0, "'s'"), -(3988, 0, "' '"), -(3989, 0, "'a'"), -(3990, 0, "' '"), -(3991, 0, "'c'"), -(3992, 0, "'l'"), -(3993, 0, "'a'"), -(3994, 0, "'s'"), -(3995, 0, "'s'"), -(3996, 0, "' '"), -(3997, 0, "'a'"), -(3998, 0, "'c'"), -(3999, 0, "'t'"), -(3986, 14, "''"), -(3974, 12, "''"), -(3974, 0, "'Y'"), -(3975, 0, "'o'"), -(3976, 0, "'u'"), -(3977, 0, "'l'"), -(3978, 0, "'''"), -(3978, 1, "''"), -(3977, 1, "''"), -(3977, 0, "'''"), -(3978, 0, "'l'"), -(3979, 0, "'l'"), -(3980, 0, "' '"), -(3981, 0, "'s'"), -(3982, 0, "'e'"), -(3983, 0, "'e'"), -(3984, 0, "' '"), -(3985, 0, "'w'"), -(3986, 0, "'h'"), -(3987, 0, "'y'"), -(3988, 0, "' '"), -(3989, 0, "'s'"), -(3990, 0, "'o'"), -(3991, 0, "'o'"), -(3992, 0, "'n'"), -(3993, 0, "'!'"), -(3994, 0, "')'"), -(3849, 2, "'a'"), -(3850, 0, "'u'"), -(3851, 0, "'t'"), -(3852, 0, "'o'"), -(3853, 0, "'m'"), -(3854, 0, "'e'"), -(3855, 0, "'r'"), -(3856, 0, "'g'"), -(3857, 0, "'e'"), -(3938, 0, "'['"), -(3942, 0, "']'"), -(3943, 0, "'('"), -(3944, 0, "' https://github.com/yjs/yjs'"), -(3971, 0, "')'"), -(3944, 1, "''"), -(3974, 10, "''"), -(3859, 4, "''"), -(3858, 1, "''"), -(3858, 0, "' '"), -(3859, 0, "'a'"), -(3860, 0, "'t'"), -(3861, 0, "' '"), -(3862, 0, "'t'"), -(3863, 0, "'h'"), -(3864, 0, "'e'"), -(3865, 0, "' '"), -(3866, 0, "'m'"), -(3867, 0, "'o'"), -(3868, 0, "'m'"), -(3869, 0, "'e'"), -(3870, 0, "'n'"), -(3871, 0, "'t'"), -(3872, 0, "'.'"), -(3873, 3, "' '"), -(3874, 0, "'I'"), -(3887, 0, "' '"), -(3888, 0, "'f'"), -(3889, 0, "'o'"), -(3890, 0, "'r'"), -(3891, 0, "' '"), -(3892, 0, "'p'"), -(3893, 0, "'r'"), -(3894, 0, "'i'"), -(3895, 0, "'m'"), -(3896, 0, "'e'"), -(3897, 0, "' '"), -(3898, 0, "'t'"), -(3899, 0, "'i'"), -(3900, 0, "'m'"), -(3901, 0, "'e'"), -(3892, 10, "''"), -(3891, 1, "''"), -(3890, 1, "''"), -(3889, 1, "''"), -(3888, 1, "''"), -(3888, 0, "'y'"), -(3889, 0, "'e'"), -(3890, 0, "'t'"), -(3988, 24, "'a'"), -(3989, 0, "'s'"), -(3990, 0, "' '"), -(3990, 1, "''"), -(3989, 1, "''"), -(3989, 0, "'n'"), -(3990, 0, "' '"), -(3991, 0, "'e'"), -(3992, 0, "'a'"), -(3993, 0, "'s'"), -(3994, 0, "'y'"), -(3995, 0, "' '"), -(3996, 0, "'r'"), -(3997, 0, "'e'"), -(3998, 0, "'c'"), -(3999, 0, "'o'"), -(4000, 0, "'m'"), -(4001, 0, "'m'"), -(4002, 0, "'e'"), -(4003, 0, "'n'"), -(4004, 0, "'d'"), -(4005, 0, "'a'"), -(4006, 0, "'t'"), -(4007, 0, "'i'"), -(4008, 0, "'o'"), -(4009, 0, "'n'"), -(4010, 0, "'.'"), -(4011, 0, "' '"), -(4012, 0, "'I'"), -(4013, 0, "'t'"), -(4014, 0, "' '"), -(4014, 1, "''"), -(4013, 1, "''"), -(4012, 1, "''"), -(4011, 1, "''"), -(4010, 1, "''"), -(4023, 3, "'s'"), -(4024, 0, "'o'"), -(4025, 0, "'m'"), -(4026, 0, "'e'"), -(4027, 0, "' '"), -(4028, 0, "'o'"), -(4029, 0, "'f'"), -(4030, 0, "' '"), -(4031, 0, "'t'"), -(4032, 0, "'h'"), -(4033, 0, "'e'"), -(4034, 0, "' '"), -(4035, 0, "'r'"), -(4036, 0, "'e'"), -(4037, 0, "'a'"), -(4038, 0, "'s'"), -(4039, 0, "'o'"), -(4040, 0, "'n'"), -(4041, 0, "'s'"), -(3801, 7, "'O'"), -(3802, 0, "'h'"), -(3803, 0, "' '"), -(3804, 0, "'a'"), -(3805, 0, "'n'"), -(3806, 0, "'d'"), -(3807, 0, "' '"), -(3808, 0, "'a'"), -(3809, 0, "' '"), -(3810, 0, "'q'"), -(3811, 0, "'u'"), -(3812, 0, "'i'"), -(3813, 0, "'c'"), -(3814, 0, "'k'"), -(4058, 0, "'S'"), -(4059, 0, "'i'"), -(4060, 0, "' '"), -(4060, 1, "''"), -(4059, 1, "''"), -(4059, 0, "'o'"), -(4060, 0, "' '"), -(4058, 3, "''"), -(4073, 0, "'Y'"), -(4074, 0, "'j'"), -(4075, 0, "'s'"), -(4076, 0, "' '"), -(4077, 0, "'a'"), -(4078, 0, "'n'"), -(4079, 0, "'d'"), -(4080, 0, "' '"), -(4081, 0, "'o'"), -(4082, 0, "'t'"), -(4083, 0, "'h'"), -(4084, 0, "'e'"), -(4085, 0, "'r'"), -(4086, 0, "' '"), -(4087, 5, "''"), -(4086, 1, "''"), -(4086, 0, "'s'"), -(4086, 1, "''"), -(4446, 11, "'W'"), -(4447, 0, "'e'"), -(4448, 0, "' '"), -(4449, 0, "'c'"), -(4450, 0, "'a'"), -(4451, 0, "'n'"), -(4452, 0, "' '"), -(4453, 0, "'d'"), -(4454, 0, "'r'"), -(4455, 0, "'a'"), -(4456, 0, "'w'"), -(4457, 0, "' '"), -(4458, 0, "'t'"), -(4459, 0, "'h'"), -(4460, 0, "'i'"), -(4461, 0, "'s'"), -(4462, 0, "' '"), -(4463, 0, "'a'"), -(4464, 0, "'s'"), -(4465, 0, "' '"), -(4466, 0, "'a'"), -(4467, 0, "' '"), -(4468, 0, "'t'"), -(4469, 0, "'r'"), -(4470, 0, "'e'"), -(4471, 0, "'e'"), -(4472, 0, "'!'"), -(4954, 0, "'a'"), -(4955, 0, "'r'"), -(4956, 0, "'g'"), -(4957, 0, "'h'"), -(4958, 0, "','"), -(4959, 0, "' '"), -(4968, 0, "' '"), -(4969, 0, "'a'"), -(4970, 0, "'c'"), -(4971, 0, "'t'"), -(4972, 0, "'u'"), -(4973, 0, "'a'"), -(4974, 0, "'l'"), -(4975, 0, "'l'"), -(4976, 0, "'y'"), -(5006, 1, "''"), -(5006, 0, "' '"), -(5007, 0, "'b'"), -(5008, 0, "'e'"), -(5009, 0, "'c'"), -(5010, 0, "'a'"), -(5011, 0, "'u'"), -(5012, 0, "'s'"), -(5013, 0, "'e'"), -(5014, 14, "' '"), -(4780, 1, "''"), -(4780, 0, "'X'"), -(4818, 0, "' '"), -(4819, 0, "'H'"), -(4820, 0, "'a'"), -(4821, 0, "'n'"), -(4822, 0, "'g'"), -(4823, 0, "' '"), -(4824, 0, "'o'"), -(4825, 0, "'n'"), -(4826, 0, "','"), -(4827, 0, "' '"), -(4828, 0, "'w'"), -(4829, 0, "'h'"), -(4830, 0, "'i'"), -(4831, 0, "'c'"), -(4832, 0, "'h'"), -(4833, 0, "' '"), -(4834, 0, "'o'"), -(4835, 0, "'n'"), -(4836, 0, "'e'"), -(4837, 0, "' '"), -(4838, 0, "'g'"), -(4839, 0, "'o'"), -(4840, 0, "'e'"), -(4841, 0, "'s'"), -(4842, 0, "' '"), -(4843, 0, "'f'"), -(4844, 0, "'i'"), -(4845, 0, "'r'"), -(4846, 0, "'s'"), -(4847, 0, "'t'"), -(4848, 0, "'?'"), -(4828, 0, "'h'"), -(4829, 0, "'o'"), -(4830, 0, "'w'"), -(4831, 0, "' '"), -(4832, 0, "'d'"), -(4833, 0, "'o'"), -(4834, 0, "' '"), -(4835, 0, "'w'"), -(4836, 0, "'e'"), -(4837, 0, "' '"), -(4838, 0, "'f'"), -(4839, 0, "'i'"), -(4840, 0, "'g'"), -(4841, 0, "'u'"), -(4842, 0, "'r'"), -(4843, 0, "'e'"), -(4844, 0, "' '"), -(4845, 0, "'o'"), -(4846, 0, "'u'"), -(4847, 0, "'t'"), -(4848, 0, "' '"), -(4854, 4, "' '"), -(4855, 0, "'c'"), -(4856, 0, "'h'"), -(4857, 0, "'a'"), -(4858, 0, "'r'"), -(4859, 0, "'a'"), -(4860, 0, "'c'"), -(4861, 0, "'t'"), -(4862, 0, "'e'"), -(4863, 0, "'r'"), -(4864, 0, "' '"), -(4865, 0, "'s'"), -(4866, 0, "'h'"), -(4867, 0, "'o'"), -(4868, 0, "'u'"), -(4869, 0, "'l'"), -(4865, 5, "''"), -(4864, 1, "''"), -(4981, 10, "' '"), -(4982, 0, "'s'"), -(4983, 0, "'o'"), -(4984, 0, "'r'"), -(4985, 0, "'t'"), -(4986, 0, "'i'"), -(4987, 0, "'n'"), -(4988, 0, "'g'"), -(4989, 0, "' '"), -(4990, 0, "'t'"), -(4991, 0, "'h'"), -(4992, 0, "'e'"), -(4993, 0, "'m'"), -(4994, 0, "' '"), -(4995, 0, "'b'"), -(4996, 0, "'a'"), -(4997, 0, "'s'"), -(4998, 0, "'e'"), -(4999, 0, "'d'"), -(5000, 0, "' '"), -(5001, 0, "'o'"), -(5002, 0, "'n'"), -(5003, 0, "' '"), -(5003, 1, "''"), -(5030, 0, "'t'"), -(5031, 0, "'h'"), -(5032, 0, "'e'"), -(5033, 0, "'n'"), -(5034, 0, "' '"), -(5035, 0, "'w'"), -(5036, 0, "'e'"), -(5037, 0, "'''"), -(5038, 0, "'d'"), -(5039, 0, "' '"), -(5040, 0, "'e'"), -(5041, 0, "'n'"), -(5042, 0, "'d'"), -(5043, 0, "' '"), -(5044, 0, "'u'"), -(5045, 0, "'p'"), -(5046, 0, "' '"), -(5047, 0, "'w'"), -(5048, 0, "'i'"), -(5049, 0, "'t'"), -(5050, 0, "'h'"), -(5051, 0, "' '"), -(5052, 0, "'''"), -(5053, 0, "'a'"), -(5054, 0, "'b'"), -(5055, 0, "'X'"), -(5056, 0, "'c'"), -(5057, 0, "'''"), -(5058, 0, "'.'"), -(5059, 118, "''"), -(5060, 3, "'A'"), -(5061, 0, "'u'"), -(5062, 0, "'t'"), -(5063, 0, "'o'"), -(5064, 0, "'m'"), -(5065, 0, "'e'"), -(5066, 0, "'r'"), -(5067, 0, "'g'"), -(5068, 0, "'e'"), -(5148, 0, "'.'"), -(5149, 0, "' '"), -(5150, 0, "'T'"), -(5151, 0, "'h'"), -(5152, 0, "'e'"), -(5153, 0, "' '"), -(5154, 0, "'s'"), -(5155, 0, "'e'"), -(5156, 0, "'q'"), -(5157, 0, "'u'"), -(5158, 0, "'e'"), -(5159, 0, "'n'"), -(5160, 0, "'c'"), -(5161, 0, "'e'"), -(5162, 0, "' '"), -(5163, 0, "'n'"), -(5164, 0, "'u'"), -(5165, 0, "'m'"), -(5166, 0, "'b'"), -(5167, 0, "'e'"), -(5168, 0, "'r'"), -(5169, 0, "' '"), -(5170, 0, "'i'"), -(5171, 0, "'s'"), -(5172, 0, "' '"), -(5173, 0, "'b'"), -(5174, 0, "'i'"), -(5173, 2, "'1'"), -(5174, 0, "' '"), -(5175, 0, "'b'"), -(5176, 0, "'i'"), -(5177, 0, "'g'"), -(5178, 0, "'g'"), -(5179, 0, "'e'"), -(5180, 0, "'r'"), -(5181, 0, "' '"), -(5182, 0, "'t'"), -(5183, 0, "'h'"), -(5184, 0, "'a'"), -(5185, 0, "'n'"), -(5186, 0, "' '"), -(5187, 0, "'t'"), -(5188, 0, "'h'"), -(5189, 0, "'e'"), -(5190, 0, "' '"), -(5191, 0, "'b'"), -(5192, 0, "'i'"), -(5193, 0, "'g'"), -(5194, 0, "'g'"), -(5195, 0, "'e'"), -(5196, 0, "'s'"), -(5197, 0, "'t'"), -(5198, 0, "' '"), -(5199, 0, "'s'"), -(5200, 0, "'e'"), -(5201, 0, "'q'"), -(5202, 0, "'u'"), -(5203, 0, "'e'"), -(5204, 0, "'n'"), -(5205, 0, "'c'"), -(5206, 0, "'e'"), -(5207, 0, "' '"), -(5208, 0, "'n'"), -(5209, 0, "'u'"), -(5210, 0, "'m'"), -(5211, 0, "'b'"), -(5212, 0, "'e'"), -(5213, 0, "'r'"), -(5214, 0, "' '"), -(5215, 0, "'y'"), -(5216, 0, "'o'"), -(5217, 0, "'u'"), -(5218, 0, "'''"), -(5219, 0, "'v'"), -(5220, 0, "'e'"), -(5221, 0, "' '"), -(5222, 0, "'e'"), -(5223, 0, "'v'"), -(5224, 0, "'e'"), -(5225, 0, "'r'"), -(5226, 0, "' '"), -(5227, 0, "'s'"), -(5228, 0, "'e'"), -(5229, 0, "'e'"), -(5230, 0, "'n'"), -(5150, 0, "'W'"), -(5151, 0, "'h'"), -(5152, 0, "'e'"), -(5153, 0, "'n'"), -(5154, 0, "' '"), -(5155, 0, "'y'"), -(5156, 0, "'o'"), -(5157, 0, "'u'"), -(5158, 0, "' '"), -(5159, 0, "'m'"), -(5160, 0, "'a'"), -(5161, 0, "'k'"), -(5162, 0, "'e'"), -(5163, 0, "' '"), -(5164, 0, "'a'"), -(5165, 0, "' '"), -(5166, 0, "'c'"), -(5167, 0, "'h'"), -(5168, 0, "'a'"), -(5169, 0, "'n'"), -(5170, 0, "'g'"), -(5171, 0, "'e'"), -(5172, 0, "','"), -(5173, 0, "' '"), -(5174, 1, "''"), -(5174, 0, "'t'"), -(5159, 15, "'i'"), -(5160, 0, "'n'"), -(5161, 0, "'s'"), -(5162, 0, "'e'"), -(5163, 0, "'r'"), -(5164, 0, "'t'"), -(5165, 0, "' '"), -(5166, 0, "'a'"), -(5167, 0, "'n'"), -(5168, 0, "'y'"), -(5169, 0, "'t'"), -(5170, 0, "'h'"), -(5171, 0, "'i'"), -(5172, 0, "'n'"), -(5173, 0, "'g'"), -(5174, 0, "','"), -(5175, 0, "' '"), -(5176, 0, "'y'"), -(5177, 0, "'o'"), -(5178, 0, "'u'"), -(5179, 0, "' '"), -(5180, 0, "'s'"), -(5181, 0, "'e'"), -(5182, 0, "'t'"), -(5183, 0, "' '"), -(5204, 2, "'t'"), -(5205, 0, "'o'"), -(5207, 0, "'b'"), -(5208, 0, "'e'"), -(5209, 0, "' '"), -(5268, 1, "''"), -(5268, 0, "'.'"), -(5269, 0, "' '"), -(5270, 0, "'Y'"), -(5271, 0, "'j'"), -(5272, 0, "'s'"), -(5273, 0, "' '"), -(5274, 0, "'h'"), -(5275, 0, "'a'"), -(5276, 0, "'s'"), -(5277, 0, "' '"), -(5278, 0, "'a'"), -(5279, 0, "' '"), -(5280, 0, "'d'"), -(5281, 0, "'i'"), -(5282, 0, "'f'"), -(5283, 0, "'f'"), -(5284, 0, "'e'"), -(5285, 0, "'r'"), -(5286, 0, "'e'"), -(5287, 0, "'n'"), -(5288, 0, "'t'"), -(5289, 0, "' '"), -(5290, 0, "'a'"), -(5291, 0, "'p'"), -(5292, 0, "'p'"), -(5293, 0, "'r'"), -(5294, 0, "'o'"), -(5295, 0, "'a'"), -(5296, 0, "'c'"), -(5297, 0, "'h'"), -(5298, 0, "','"), -(5299, 0, "' '"), -(5300, 0, "'b'"), -(5301, 0, "'u'"), -(5302, 0, "'t'"), -(5303, 0, "' '"), -(5304, 0, "'i'"), -(5305, 0, "'t'"), -(5306, 0, "'s'"), -(5307, 0, "' '"), -(5268, 40, "':'"), -(5270, 0, "'n'"), -(5270, 0, "'n'"), -(5271, 0, "'('"), -(5272, 0, "'Y'"), -(5273, 0, "'j'"), -(5274, 0, "'s'"), -(5275, 0, "' '"), -(5276, 0, "'h'"), -(5277, 0, "'a'"), -(5278, 0, "'s'"), -(5279, 0, "' '"), -(5280, 0, "'a'"), -(5281, 0, "' '"), -(5282, 0, "'d'"), -(5283, 0, "'i'"), -(5284, 0, "'f'"), -(5285, 0, "'f'"), -(5286, 0, "'e'"), -(5287, 0, "'r'"), -(5288, 0, "'e'"), -(5289, 0, "'n'"), -(5290, 0, "'t'"), -(5291, 0, "' '"), -(5292, 0, "'a'"), -(5293, 0, "'p'"), -(5294, 0, "'p'"), -(5295, 0, "'r'"), -(5296, 0, "'o'"), -(5297, 0, "'a'"), -(5298, 0, "'c'"), -(5299, 0, "'h'"), -(5300, 0, "' '"), -(5301, 0, "'t'"), -(5302, 0, "'o'"), -(5303, 0, "' '"), -(5304, 0, "'t'"), -(5305, 0, "'h'"), -(5306, 0, "'e'"), -(5307, 0, "' '"), -(5308, 0, "'e'"), -(5308, 1, "''"), -(5308, 0, "'s'"), -(5309, 0, "'e'"), -(5310, 0, "'q'"), -(5311, 0, "'u'"), -(5312, 0, "'e'"), -(5313, 0, "'n'"), -(5314, 0, "'c'"), -(5315, 0, "'e'"), -(5316, 0, "' '"), -(5317, 0, "'n'"), -(5318, 0, "'u'"), -(5319, 0, "'m'"), -(5320, 0, "'n'"), -(5321, 0, "'e'"), -(5322, 0, "'r'"), -(5323, 0, "' '"), -(5324, 0, "'t'"), -(5325, 0, "'h'"), -(5317, 9, "'m'"), -(5317, 1, "''"), -(5317, 0, "'n'"), -(5318, 0, "'u'"), -(5319, 0, "'m'"), -(5320, 0, "'b'"), -(5321, 0, "'e'"), -(5322, 0, "'r'"), -(5323, 0, "' '"), -(5324, 0, "'t'"), -(5325, 0, "'h'"), -(5326, 0, "'i'"), -(5327, 0, "'n'"), -(5328, 0, "'g'"), -(5329, 0, "','"), -(5330, 0, "' '"), -(5331, 0, "'b'"), -(5332, 0, "'u'"), -(5333, 0, "'t'"), -(5334, 0, "' '"), -(5335, 0, "'t'"), -(5336, 0, "'h'"), -(5337, 0, "'e'"), -(5338, 0, "' '"), -(5339, 0, "'d'"), -(5340, 0, "'i'"), -(5341, 0, "'f'"), -(5342, 0, "'f'"), -(5343, 0, "'e'"), -(5344, 0, "'r'"), -(5345, 0, "'e'"), -(5346, 0, "'n'"), -(5347, 0, "'c'"), -(5348, 0, "'e'"), -(5349, 0, "' '"), -(5350, 0, "'i'"), -(5351, 0, "'s'"), -(5352, 0, "' '"), -(5335, 18, "'l'"), -(5336, 0, "'e'"), -(5337, 0, "'t'"), -(5338, 0, "'s'"), -(5339, 0, "' '"), -(5340, 0, "'n'"), -(5341, 0, "'o'"), -(5342, 0, "'t'"), -(5343, 0, "' '"), -(5344, 0, "'g'"), -(5345, 0, "'e'"), -(5346, 0, "'t'"), -(5347, 0, "' '"), -(5348, 0, "'i'"), -(5349, 0, "'n'"), -(5350, 0, "'t'"), -(5351, 0, "'o'"), -(5352, 0, "' '"), -(5353, 0, "'t'"), -(5354, 0, "'h'"), -(5355, 0, "'a'"), -(5356, 0, "'t'"), -(5357, 0, "' '"), -(5358, 0, "'n'"), -(5359, 0, "'o'"), -(5360, 0, "'w'"), -(5361, 0, "')'"), -(5282, 0, "'s'"), -(5283, 0, "'l'"), -(5284, 0, "'i'"), -(5285, 0, "'g'"), -(5286, 0, "'h'"), -(5287, 0, "'t'"), -(5288, 0, "'l'"), -(5289, 0, "'y'"), -(5290, 0, "' '"), -(5344, 26, "'w'"), -(5345, 0, "'h'"), -(5346, 0, "'a'"), -(5347, 0, "'t'"), -(5348, 0, "'e'"), -(5349, 0, "'v'"), -(5350, 0, "'e'"), -(5351, 0, "'r'"), -(5344, 8, "'i'"), -(5345, 0, "'t'"), -(5346, 0, "'s'"), -(5347, 0, "' '"), -(5348, 0, "'f'"), -(5349, 0, "'i'"), -(5350, 0, "'n'"), -(5351, 0, "'e'"), -(5352, 0, "','"), -(5352, 1, "''"), -(5344, 8, "''"), -(5344, 0, "'y'"), -(5345, 0, "'o'"), -(5346, 0, "'u'"), -(5271, 77, "''"), -(5270, 1, "''"), -(5269, 1, "''"), -(5082, 0, "'w'"), -(5083, 0, "'i'"), -(5084, 0, "'t'"), -(5085, 0, "'h'"), -(5086, 0, "' '"), -(5087, 0, "'a'"), -(5088, 0, "' '"), -(5089, 0, "'b'"), -(5090, 0, "'i'"), -(5091, 0, "'t'"), -(5092, 0, "' '"), -(5093, 0, "'o'"), -(5094, 0, "'f'"), -(5095, 0, "' '"), -(5096, 0, "'a'"), -(5097, 0, "' '"), -(5098, 0, "'h'"), -(5099, 0, "'a'"), -(5100, 0, "'c'"), -(5101, 0, "'k'"), -(5102, 0, "'.'"), -(5103, 0, "' '"), -(5104, 0, "'I'"), -(5105, 0, "'t'"), -(5106, 0, "' '"), -(5107, 3, "''"), -(5112, 1, "''"), -(5111, 1, "''"), -(5110, 1, "''"), -(5110, 0, "'s'"), -(5174, 0, "'e'"), -(5175, 0, "'v'"), -(5176, 0, "'e'"), -(5177, 0, "'r'"), -(5211, 0, "' '"), -(5212, 0, "'n'"), -(5213, 0, "'e'"), -(5214, 0, "'w'"), -(5215, 0, "' '"), -(5216, 0, "'i'"), -(5217, 0, "'t'"), -(5218, 0, "'e'"), -(5219, 0, "'m'"), -(5220, 0, "'''"), -(5221, 0, "'s'"), -(5524, 0, "'n'"), -(5525, 0, "'n'"), -(5526, 0, "'('"), -(5527, 0, "'W'"), -(5528, 0, "'o'"), -(5529, 0, "' '"), -(5529, 1, "''"), -(5526, 4, "''"), -(5525, 1, "''"), -(5525, 0, "'n'"), -(5526, 0, "'n'"), -(5526, 0, "'>'"), -(5527, 0, "' '"), -(5528, 0, "'W'"), -(5529, 0, "'o'"), -(5530, 0, "'w'"), -(5531, 0, "' '"), -(5532, 0, "'I'"), -(5533, 0, "' '"), -(5534, 0, "'s'"), -(5535, 0, "'a'"), -(5536, 0, "'w'"), -(5537, 0, "' '"), -(5538, 0, "'a'"), -(5539, 0, "' '"), -(5540, 0, "'s'"), -(5541, 0, "'e'"), -(5542, 0, "'q'"), -(5543, 0, "'u'"), -(5544, 0, "'e'"), -(5545, 0, "'n'"), -(5546, 0, "'c'"), -(5547, 0, "'e'"), -(5548, 0, "' '"), -(5549, 0, "'n'"), -(5550, 0, "'u'"), -(5551, 0, "'m'"), -(5552, 0, "'b'"), -(5553, 0, "'e'"), -(5554, 0, "'r'"), -(5555, 0, "','"), -(5556, 0, "' '"), -(5557, 0, "'a'"), -(5558, 0, "'n'"), -(5559, 0, "'d'"), -(5560, 0, "' '"), -(5561, 0, "'i'"), -(5562, 0, "'t'"), -(5563, 0, "' '"), -(5564, 0, "'w'"), -(5565, 0, "'a'"), -(5566, 0, "'s'"), -(5567, 0, "' '"), -(5568, 0, "'*'"), -(5569, 0, "'t'"), -(5570, 0, "'h'"), -(5571, 0, "'i'"), -(5572, 0, "'s'"), -(5573, 0, "' '"), -(5574, 0, "'b'"), -(5575, 0, "'i'"), -(5576, 0, "'g'"), -(5577, 0, "'*'"), -(5578, 0, "'!'"), -(5578, 1, "''"), -(5577, 0, "'!'"), -(5526, 53, "''"), -(5525, 1, "''"), -(5524, 1, "''"), -(5524, 0, "'n'"), -(5525, 0, "'n'"), -(5526, 0, "'> Wow I saw a sequence number, and it was *this big!*'"), -(5579, 0, "'.'"), -(5580, 0, "' '"), -(5581, 0, "'Y'"), -(5581, 1, "''"), -(5581, 0, "'''"), -(5581, 1, "''"), -(5581, 0, "'Y'"), -(5582, 0, "'e'"), -(5583, 0, "'a'"), -(5584, 0, "'h'"), -(5585, 0, "'?'"), -(5586, 0, "' '"), -(5587, 0, "'M'"), -(5588, 0, "'i'"), -(5589, 0, "'n'"), -(5590, 0, "'e'"), -(5591, 0, "' '"), -(5592, 0, "'i'"), -(5593, 0, "'s'"), -(5594, 0, "' '"), -(5595, 0, "'*'"), -(5596, 0, "'e'"), -(5597, 0, "'v'"), -(5598, 0, "'e'"), -(5599, 0, "'n'"), -(5600, 0, "' '"), -(5601, 0, "'b'"), -(5602, 0, "'i'"), -(5603, 0, "'g'"), -(5604, 0, "'e'"), -(5604, 1, "''"), -(5604, 0, "'g'"), -(5605, 0, "'e'"), -(5606, 0, "'r'"), -(5607, 0, "'!'"), -(5608, 0, "'*'"), -(5528, 0, "'''"), -(5581, 0, "'''"), -(5583, 0, "'''"), -(5612, 0, "'''"), -(5613, 0, "'.'"), -(5614, 0, "' '"), -(5615, 0, "'A'"), -(5616, 0, "'h'"), -(5617, 0, "'e'"), -(5618, 0, "'m'"), -(5619, 0, "'.'"), -(6180, 0, "'U'"), -(6181, 0, "'h'"), -(6182, 0, "','"), -(6183, 0, "' '"), -(6184, 0, "'u'"), -(6185, 0, "'h'"), -(6186, 0, "'m'"), -(6187, 0, "','"), -(6188, 0, "' '"), -(6225, 1, "''"), -(6286, 1, "''"), -(6285, 1, "''"), -(6285, 0, "' '"), -(6286, 0, "'I'"), -(6287, 0, "' '"), -(6288, 0, "'t'"), -(6289, 0, "'h'"), -(6290, 0, "'i'"), -(6291, 0, "'n'"), -(6292, 0, "'k'"), -(6286, 7, "'Y'"), -(6287, 0, "'e'"), -(6288, 0, "'s'"), -(6289, 0, "','"), -(6290, 0, "' '"), -(6291, 0, "'t'"), -(6292, 0, "'h'"), -(6293, 0, "'e'"), -(6294, 0, "' '"), -(6295, 0, "'a'"), -(6296, 0, "'u'"), -(6297, 0, "'t'"), -(6298, 0, "'o'"), -(6299, 0, "'m'"), -(6300, 0, "'e'"), -(6301, 0, "'r'"), -(6302, 0, "'g'"), -(6303, 0, "'e'"), -(6304, 0, "' '"), -(6305, 0, "'l'"), -(6306, 0, "'i'"), -(6307, 0, "'b'"), -(6308, 0, "'r'"), -(6309, 0, "'a'"), -(6310, 0, "'r'"), -(6311, 0, "'y'"), -(6312, 0, "' '"), -(6313, 0, "'i'"), -(6314, 0, "'m'"), -(6315, 0, "'p'"), -(6316, 0, "'l'"), -(6317, 0, "'e'"), -(6318, 0, "'m'"), -(6319, 0, "'e'"), -(6320, 0, "'n'"), -(6321, 0, "'t'"), -(6322, 0, "'s'"), -(6312, 11, "''"), -(6286, 26, "'W'"), -(6287, 0, "'h'"), -(6288, 0, "'t'"), -(6289, 0, "'a'"), -(6289, 1, "''"), -(6288, 1, "''"), -(6288, 0, "'a'"), -(6289, 0, "'t'"), -(6290, 0, "'e'"), -(6291, 0, "'v'"), -(6292, 0, "'e'"), -(6293, 0, "'r'"), -(6294, 0, "'.'"), -(6295, 0, "' '"), -(6296, 0, "'T'"), -(6297, 0, "'h'"), -(6298, 0, "'e'"), -(6299, 0, "' '"), -(6300, 0, "'a'"), -(6301, 0, "'u'"), -(6302, 0, "'t'"), -(6303, 0, "'o'"), -(6304, 0, "'m'"), -(6305, 0, "'e'"), -(6306, 0, "'r'"), -(6307, 0, "'g'"), -(6308, 0, "'e'"), -(6309, 0, "' '"), -(6310, 0, "'l'"), -(6311, 0, "'i'"), -(6312, 0, "'b'"), -(6313, 0, "'r'"), -(6314, 0, "'a'"), -(6315, 0, "'r'"), -(6316, 0, "'y'"), -(6317, 0, "' '"), -(6318, 0, "'i'"), -(6319, 0, "'m'"), -(6320, 0, "'p'"), -(6321, 0, "'l'"), -(6322, 0, "'e'"), -(6323, 0, "'m'"), -(6324, 0, "'e'"), -(6325, 0, "'n'"), -(6326, 0, "'t'"), -(6327, 0, "'s'"), -(6318, 10, "'w'"), -(6319, 0, "'o'"), -(6320, 0, "'r'"), -(6321, 0, "'k'"), -(6322, 0, "'s'"), -(6323, 0, "' '"), -(6324, 0, "'b'"), -(6325, 0, "'y'"), -(6326, 0, "' '"), -(6327, 0, "'b'"), -(6328, 0, "'u'"), -(6329, 0, "'i'"), -(6330, 0, "'l'"), -(6331, 0, "'d'"), -(6332, 0, "'i'"), -(6333, 0, "'n'"), -(6334, 0, "'g'"), -(6335, 0, "' '"), -(6336, 0, "'a'"), -(6337, 0, "' '"), -(6338, 0, "'t'"), -(6339, 0, "'r'"), -(6340, 0, "'e'"), -(6341, 0, "'e'"), -(6342, 0, "' '"), -(6343, 0, "'o'"), -(6344, 0, "'f'"), -(6345, 0, "' '"), -(6346, 0, "'i'"), -(6347, 0, "'t'"), -(6348, 0, "'e'"), -(6349, 0, "'m'"), -(6350, 0, "'s'"), -(6351, 0, "'.'"), -(6285, 1, "''"), -(6285, 0, "'n'"), -(6286, 0, "'n'"), -(6286, 1, "''"), -(6285, 1, "''"), -(6285, 0, "' '"), -(6286, 8, "''"), -(6285, 1, "''"), -(6285, 1, "''"), -(6285, 1, "''"), -(6285, 0, "'n'"), -(6286, 0, "'n'"), -(6286, 1, "''"), -(6285, 1, "''"), -(6285, 0, "' '"), -(6286, 0, "'A'"), -(6287, 0, "'n'"), -(6288, 0, "'y'"), -(6288, 1, "''"), -(6287, 1, "''"), -(6286, 1, "''"), -(6286, 0, "'W'"), -(6287, 0, "'a'"), -(6288, 0, "'h'"), -(6289, 0, "'t'"), -(6289, 1, "''"), -(6288, 1, "''"), -(6287, 1, "''"), -(6287, 0, "'h'"), -(6288, 0, "'a'"), -(6289, 0, "'t'"), -(6290, 0, "'e'"), -(6291, 0, "'v'"), -(6292, 0, "'e'"), -(6293, 0, "'r'"), -(6294, 0, "'.'"), -(6295, 0, "' '"), -(6035, 0, "'('"), -(6286, 0, "')'"), -(6356, 61, "''"), -(6356, 0, "'S'"), -(6357, 0, "'o'"), -(6358, 0, "' '"), -(6359, 0, "'h'"), -(6360, 0, "'o'"), -(6361, 0, "'w'"), -(6362, 0, "' '"), -(6363, 0, "'e'"), -(6363, 1, "''"), -(6363, 0, "'w'"), -(6364, 0, "'e'"), -(6364, 1, "''"), -(6363, 1, "''"), -(6363, 0, "'f'"), -(6364, 0, "'a'"), -(6365, 0, "'s'"), -(6356, 10, "'H'"), -(6357, 0, "'o'"), -(6358, 0, "'w'"), -(6359, 0, "' '"), -(6360, 0, "'f'"), -(6361, 0, "'a'"), -(6362, 0, "'s'"), -(6363, 0, "'t'"), -(6364, 0, "' '"), -(6365, 0, "'i'"), -(6366, 0, "'s'"), -(6367, 0, "' '"), -(6368, 0, "'i'"), -(6369, 0, "'t'"), -(6370, 0, "'?'"), -(6372, 4, "'A'"), -(6408, 3, "'r'"), -(6409, 0, "'u'"), -(6410, 0, "'n'"), -(6408, 3, "'t'"), -(6409, 0, "'e'"), -(6410, 0, "'s'"), -(6411, 0, "'t'"), -(6412, 0, "' '"), -(6413, 0, "'i'"), -(6414, 0, "'t'"), -(6415, 0, "' '"), -(6416, 0, "'u'"), -(6417, 0, "'s'"), -(6418, 0, "'i'"), -(6419, 0, "'n'"), -(6420, 0, "'g'"), -(6432, 0, "'o'"), -(6433, 0, "'w'"), -(6434, 0, "'n'"), -(6435, 0, "' '"), -(6436, 15, "''"), -(6423, 0, "'a'"), -(6424, 0, "'n'"), -(6425, 0, "' '"), -(6426, 0, "'e'"), -(6427, 0, "'d'"), -(6428, 0, "'i'"), -(6429, 0, "'t'"), -(6430, 0, "'i'"), -(6431, 0, "'n'"), -(6432, 0, "' '"), -(6432, 1, "''"), -(6432, 0, "'g'"), -(6433, 0, "' '"), -(6434, 0, "'t'"), -(6435, 0, "'r'"), -(6436, 0, "'a'"), -(6437, 0, "'c'"), -(6438, 0, "'e'"), -(6439, 0, "' '"), -(6446, 20, "''"), -(6446, 0, "' '"), -(6447, 0, "'h'"), -(6448, 0, "'i'"), -(6449, 0, "'m'"), -(6450, 0, "'s'"), -(6451, 0, "'e'"), -(6452, 0, "'l'"), -(6453, 0, "'f'"), -(6454, 0, "' '"), -(6455, 0, "'m'"), -(6456, 0, "'a'"), -(6457, 0, "'d'"), -(6458, 0, "'e'"), -(6526, 8, "' '"), -(6527, 0, "'t'"), -(6528, 0, "'r'"), -(6529, 0, "'a'"), -(6530, 0, "'c'"), -(6531, 0, "'e'"), -(6532, 0, "' '"), -(6533, 0, "'o'"), -(6534, 0, "'f'"), -(6542, 8, "''"), -(6550, 1, "''"), -(6549, 1, "''"), -(6549, 0, "'i'"), -(6550, 0, "'n'"), -(6550, 1, "''"), -(6549, 1, "''"), -(6543, 6, "'t'"), -(6544, 0, "'y'"), -(6545, 0, "'p'"), -(6546, 0, "'i'"), -(6547, 0, "'n'"), -(6548, 0, "'g'"), -(6549, 0, "' '"), -(6550, 0, "'u'"), -(6551, 0, "'p'"), -(6552, 15, "' '"), -(6356, 16, "''"), -(6356, 0, "'How fast is it? '"), -(6356, 16, "''"), -(6356, 0, "'F'"), -(6357, 0, "'o'"), -(6358, 0, "'r'"), -(6359, 0, "' '"), -(6360, 1, "''"), -(6360, 0, "'a'"), -(6361, 1, "''"), -(6363, 1, "''"), -(6362, 1, "''"), -(6397, 0, "' '"), -(6398, 0, "'a'"), -(6399, 0, "'u'"), -(6400, 0, "'t'"), -(6401, 0, "'o'"), -(6402, 0, "'m'"), -(6403, 0, "'e'"), -(6404, 0, "'r'"), -(6405, 0, "'g'"), -(6406, 0, "'e'"), -(6407, 3, "''"), -(6656, 22, "''"), -(6736, 0, "' '"), -(6737, 0, "'a'"), -(6738, 0, "'n'"), -(6739, 0, "'y'"), -(6740, 0, "'a'"), -(6741, 0, "'w'"), -(6742, 0, "'y'"), -(6742, 1, "''"), -(6741, 1, "''"), -(6740, 1, "''"), -(6740, 0, "'w'"), -(6741, 0, "'a'"), -(6742, 0, "'y'"), -(6745, 4, "''"), -(6748, 5, "' '"), -(6749, 0, "'o'"), -(6750, 0, "'n'"), -(6751, 0, "'l'"), -(6752, 0, "'y'"), -(6832, 0, "' '"), -(6833, 0, "'K'"), -(6834, 0, "'e'"), -(6835, 0, "'v'"), -(6836, 0, "'i'"), -(6837, 0, "'n'"), -(6838, 0, "' '"), -(6839, 0, "'J'"), -(6840, 0, "'a'"), -(6841, 0, "'h'"), -(6842, 0, "'n'"), -(6843, 0, "'s'"), -(6844, 0, "' '"), -(6845, 0, "'('"), -(6846, 0, "'t'"), -(6847, 0, "'h'"), -(6848, 0, "'e'"), -(6849, 0, "' '"), -(6850, 0, "'Y'"), -(6851, 0, "'j'"), -(6852, 0, "'s'"), -(6853, 0, "' '"), -(6854, 0, "'a'"), -(6855, 0, "'u'"), -(6856, 0, "'t'"), -(6857, 0, "'h'"), -(6858, 0, "'o'"), -(6859, 0, "'r'"), -(6860, 0, "')'"), -(6861, 0, "' '"), -(6862, 0, "'h'"), -(6863, 0, "'a'"), -(6864, 0, "'s'"), -(6865, 0, "' '"), -(6866, 0, "'a'"), -(6867, 0, "' '"), -(6868, 0, "'m'"), -(6869, 0, "'u'"), -(6870, 0, "'c'"), -(6871, 0, "'h'"), -(6872, 0, "' '"), -(6873, 0, "'b'"), -(6874, 0, "'e'"), -(6875, 0, "'t'"), -(6876, 0, "'t'"), -(6877, 0, "'e'"), -(6878, 0, "'r'"), -(6873, 6, "'m'"), -(6874, 0, "'o'"), -(6875, 0, "'r'"), -(6876, 0, "'e'"), -(6877, 0, "' '"), -(6878, 0, "'e'"), -(6879, 0, "'x'"), -(6880, 0, "'t'"), -(6881, 0, "'e'"), -(6882, 0, "'n'"), -(6883, 0, "'s'"), -(6884, 0, "'i'"), -(6885, 0, "'v'"), -(6886, 0, "'e'"), -(6887, 0, "' '"), -(6888, 0, "'b'"), -(6889, 0, "'e'"), -(6890, 0, "'n'"), -(6891, 0, "'c'"), -(6892, 0, "'h'"), -(6893, 0, "'m'"), -(6894, 0, "'a'"), -(6895, 0, "'r'"), -(6896, 0, "'k'"), -(6897, 0, "'i'"), -(6898, 0, "'n'"), -(6899, 0, "'g'"), -(6900, 0, "' '"), -(6901, 0, "'s'"), -(6902, 0, "'u'"), -(6903, 0, "'i'"), -(6904, 0, "'t'"), -(6905, 0, "'e'"), -(6878, 0, "'['"), -(6907, 0, "' '"), -(6908, 0, "'h'"), -(6909, 0, "'e'"), -(6910, 0, "'r'"), -(6911, 0, "'e'"), -(6912, 0, "']'"), -(6913, 0, "'('"), -(6914, 0, "'https://github.com/dmonad/crdt-benchmarks'"), -(6955, 0, "')'"), -(6956, 0, "'.'"), -(6957, 0, "' '"), -(6958, 0, "'A'"), -(6959, 0, "'l'"), -(6960, 0, "'l'"), -(6961, 0, "' '"), -(6962, 0, "'t'"), -(6963, 0, "'h'"), -(6964, 0, "'e'"), -(6965, 0, "' '"), -(6966, 0, "'b'"), -(6967, 0, "'e'"), -(6968, 0, "'n'"), -(6969, 0, "'c'"), -(6970, 0, "'h'"), -(6971, 0, "'m'"), -(6972, 0, "'a'"), -(6973, 0, "'r'"), -(6974, 0, "'k'"), -(6975, 0, "'s'"), -(6976, 0, "' '"), -(6977, 0, "'h'"), -(6978, 0, "'e'"), -(6979, 0, "'r'"), -(6980, 0, "'e'"), -(6981, 0, "' '"), -(6982, 0, "'a'"), -(6983, 0, "'r'"), -(6984, 0, "'e'"), -(6985, 0, "' '"), -(6986, 0, "'d'"), -(6987, 0, "'o'"), -(6988, 0, "'n'"), -(6989, 0, "'e'"), -(6990, 0, "' '"), -(6991, 0, "'u'"), -(6992, 0, "'s'"), -(6993, 0, "'i'"), -(6994, 0, "'n'"), -(6995, 0, "'g'"), -(6996, 0, "' '"), -(6997, 0, "'N'"), -(6998, 0, "'o'"), -(6999, 0, "'d'"), -(7000, 0, "'e'"), -(7001, 0, "'s'"), -(7001, 1, "''"), -(7001, 0, "'j'"), -(7002, 0, "'s'"), -(7003, 0, "' '"), -(7004, 0, "'1'"), -(7005, 0, "'6'"), -(7006, 0, "'.'"), -(7007, 0, "'1'"), -(7008, 0, "' '"), -(7009, 0, "'o'"), -(7010, 0, "'n'"), -(7011, 0, "' '"), -(7012, 0, "'m'"), -(7013, 0, "'y'"), -(7014, 0, "' '"), -(7015, 0, "'h'"), -(7016, 0, "'c'"), -(7016, 1, "''"), -(7015, 1, "''"), -(7015, 0, "'c'"), -(7016, 0, "'h'"), -(7017, 0, "'o'"), -(7018, 0, "'n'"), -(7019, 0, "'k'"), -(7020, 0, "'y'"), -(7021, 0, "' '"), -(7022, 0, "'c'"), -(7023, 0, "'h'"), -(7024, 0, "'o'"), -(7025, 0, "'n'"), -(7026, 0, "'k'"), -(7027, 0, "' '"), -(7028, 0, "'r'"), -(7029, 0, "'y'"), -(7030, 0, "'z'"), -(7031, 0, "'e'"), -(7032, 0, "'n'"), -(7033, 0, "' '"), -(7034, 0, "'5'"), -(7035, 0, "'8'"), -(7036, 0, "'0'"), -(7037, 0, "'0'"), -(7038, 0, "'x'"), -(7039, 0, "' '"), -(7040, 0, "'w'"), -(7041, 0, "'o'"), -(7042, 0, "'r'"), -(7043, 0, "'k'"), -(7044, 0, "'s'"), -(7045, 0, "'t'"), -(7046, 0, "'a'"), -(7047, 0, "'t'"), -(7048, 0, "'i'"), -(7049, 0, "'o'"), -(7050, 0, "'n'"), -(7051, 0, "'.'"), -(7022, 5, "''"), -(7021, 1, "''"), -(6991, 18, "''"), -(7027, 1, "''"), -(7027, 0, "','"), -(7028, 0, "' '"), -(7029, 0, "'w'"), -(7030, 0, "'i'"), -(7031, 0, "'t'"), -(7032, 0, "'h'"), -(7033, 0, "' '"), -(7034, 0, "'using Nodejs 16.1 '"), -(7034, 6, "''"), -(7046, 0, "'a'"), -(7047, 0, "'n'"), -(7048, 0, "'d'"), -(7049, 0, "' '"), -(7050, 0, "'r'"), -(7051, 0, "'u'"), -(7052, 0, "'s'"), -(7053, 0, "'t'"), -(7054, 0, "'c'"), -(7055, 0, "' '"), -(7056, 0, "'1'"), -(7057, 0, "'.'"), -(7058, 0, "'5'"), -(7059, 0, "'2'"), -(7060, 0, "' '"), -(7061, 0, "'w'"), -(7062, 0, "'h'"), -(7063, 0, "'e'"), -(7064, 0, "'n'"), -(7065, 0, "' '"), -(7066, 0, "'t'"), -(7067, 0, "'h'"), -(7068, 0, "'a'"), -(7069, 0, "'t'"), -(7070, 0, "'s'"), -(7071, 0, "' '"), -(7072, 0, "'a'"), -(7073, 0, "'p'"), -(7074, 0, "'p'"), -(7075, 0, "'r'"), -(7076, 0, "'o'"), -(7077, 0, "'p'"), -(7078, 0, "'r'"), -(7079, 0, "'i'"), -(7080, 0, "'a'"), -(7081, 0, "'t'"), -(7082, 0, "'e'"), -(7083, 0, "'.'"), -(7084, 0, "' '"), -(7085, 0, "'S'"), -(7086, 0, "'p'"), -(7087, 0, "'o'"), -(7088, 0, "'i'"), -(7089, 0, "'l'"), -(7090, 0, "'e'"), -(7091, 0, "'r'"), -(7092, 0, "'s'"), -(7093, 0, "'!'"), -(6525, 2, "'f'"), -(6526, 0, "'r'"), -(6527, 0, "'o'"), -(6528, 0, "'m'"), -(6613, 40, "''"), -(6613, 0, "','"), -(6615, 1, "''"), -(6615, 0, "'b'"), -(6711, 0, "' '"), -(6712, 0, "'a'"), -(6713, 0, "'l'"), -(6714, 0, "'s'"), -(6715, 0, "'o'"), -(6774, 1, "''"), -(6774, 0, "','"), -(6775, 0, "' '"), -(6776, 0, "'w'"), -(6777, 0, "'h'"), -(6778, 0, "'i'"), -(6779, 0, "'c'"), -(6780, 0, "'h'"), -(6781, 4, "' '"), -(6782, 0, "'i'"), -(6783, 0, "'s'"), -(6784, 0, "'n'"), -(6785, 0, "'''"), -(6786, 0, "'t'"), -(6793, 1, "''"), -(6821, 3, "''"), -(6821, 1, "''"), -(6927, 0, "' '"), -(6928, 0, "'i'"), -(6929, 0, "'f'"), -(6930, 0, "' '"), -(6931, 0, "'y'"), -(6932, 0, "'o'"), -(6933, 0, "'u'"), -(6934, 0, "'''"), -(6935, 0, "'r'"), -(6936, 0, "'e'"), -(6937, 0, "' '"), -(6938, 0, "'i'"), -(6939, 0, "'n'"), -(6940, 0, "'t'"), -(6941, 0, "'o'"), -(6942, 0, "' '"), -(6943, 0, "'t'"), -(6944, 0, "'h'"), -(6945, 0, "'a'"), -(6946, 0, "'t'"), -(6947, 0, "' '"), -(6948, 0, "'s'"), -(6949, 0, "'o'"), -(6950, 0, "'r'"), -(6951, 0, "'t'"), -(6952, 0, "' '"), -(6953, 0, "'o'"), -(6954, 0, "'f'"), -(6955, 0, "' '"), -(6956, 0, "'t'"), -(6957, 0, "'h'"), -(6958, 0, "'i'"), -(6959, 0, "'n'"), -(6960, 0, "'g'"), -(6967, 3, "'m'"), -(6968, 0, "'y'"), -(6967, 2, "'t'"), -(6968, 0, "'h'"), -(6969, 0, "'e'"), -(7090, 0, "'('"), -(7100, 0, "')'"), -(7075, 1, "''"), -(7075, 0, "' '"), -(7076, 0, "'b'"), -(7077, 0, "'e'"), -(7078, 0, "'c'"), -(7079, 0, "'o'"), -(7080, 0, "'m'"), -(7081, 0, "'e'"), -(7082, 0, "'s'"), -(7110, 0, "'A'"), -(7111, 0, "'n'"), -(7112, 0, "'y'"), -(7113, 0, "'w'"), -(7114, 0, "'a'"), -(7115, 0, "'y'"), -(7116, 0, "','"), -(7117, 0, "' '"), -(7118, 1, "''"), -(7118, 0, "'a'"), -(7127, 0, "' '"), -(7128, 0, "'a'"), -(7129, 0, "'b'"), -(7130, 0, "'o'"), -(7131, 0, "'v'"), -(7132, 0, "'e'"), -(7233, 0, "' '"), -(7244, 35, "''"), -(7108, 0, "'n'"), -(7109, 0, "'n'"), -(7110, 0, "'T'"), -(7111, 0, "'h'"), -(7112, 0, "'e'"), -(7113, 0, "' '"), -(7114, 0, "'e'"), -(7115, 0, "'d'"), -(7116, 0, "'i'"), -(7117, 0, "'t'"), -(7118, 0, "'i'"), -(7119, 0, "'n'"), -(7120, 0, "'g'"), -(7121, 0, "' '"), -(7122, 0, "'t'"), -(7123, 0, "'r'"), -(7124, 0, "'a'"), -(7125, 0, "'c'"), -(7126, 0, "'e'"), -(7127, 0, "' '"), -(7110, 18, "'M'"), -(7110, 1, "'The editing trace '"), -(7128, 0, "'h'"), -(7129, 0, "'a'"), -(7130, 0, "'s'"), -(7131, 0, "' '"), -(7132, 0, "'2'"), -(7133, 0, "'8'"), -(7134, 0, "'0'"), -(7135, 0, "'0'"), -(7135, 1, "''"), -(7135, 0, "' '"), -(7136, 0, "'0'"), -(7137, 0, "'0'"), -(7138, 0, "'0'"), -(7139, 0, "' '"), -(7140, 0, "'e'"), -(7141, 0, "'d'"), -(7142, 0, "'i'"), -(7143, 0, "'t'"), -(7144, 0, "'s'"), -(7145, 0, "','"), -(7146, 0, "' '"), -(7147, 0, "'a'"), -(7148, 0, "'n'"), -(7149, 0, "'d'"), -(7150, 0, "' '"), -(7151, 0, "'t'"), -(7152, 0, "'h'"), -(7153, 0, "'e'"), -(7154, 0, "' '"), -(7155, 0, "'f'"), -(7156, 0, "'i'"), -(7157, 0, "'n'"), -(7158, 0, "'a'"), -(7159, 0, "'l'"), -(7160, 0, "' '"), -(7161, 0, "'d'"), -(7162, 0, "'o'"), -(7163, 0, "'c'"), -(7164, 0, "'u'"), -(7165, 0, "'m'"), -(7166, 0, "'e'"), -(7167, 0, "'n'"), -(7168, 0, "'t'"), -(7169, 0, "' '"), -(7170, 0, "'s'"), -(7171, 0, "'i'"), -(7172, 0, "'z'"), -(7173, 0, "'e'"), -(7174, 0, "' '"), -(7175, 0, "'i'"), -(7176, 0, "'s'"), -(7177, 0, "' '"), -(7178, 0, "'a'"), -(7179, 0, "'b'"), -(7180, 0, "'o'"), -(7181, 0, "'u'"), -(7182, 0, "'t'"), -(7183, 0, "' '"), -(7184, 0, "'1'"), -(7185, 0, "'0'"), -(7186, 0, "'0'"), -(7187, 0, "'k'"), -(7188, 0, "'b'"), -(7189, 0, "'.'"), -(7188, 0, "' '"), -(7188, 1, "''"), -(7187, 0, "' '"), -(7188, 2, "''"), -(7188, 0, "'0'"), -(7189, 0, "'0'"), -(7190, 0, "'0'"), -(7191, 0, "' '"), -(7192, 0, "'c'"), -(7193, 0, "'h'"), -(7194, 0, "'a'"), -(7195, 0, "'r'"), -(7196, 0, "'a'"), -(7197, 0, "'c'"), -(7198, 0, "'t'"), -(7199, 0, "'e'"), -(7200, 0, "'r'"), -(7201, 0, "'s'"), -(7205, 9, "''"), -(7204, 1, "''"), -(7203, 1, "''"), -(7203, 0, "' '"), -(7204, 0, "'A'"), -(7203, 1, "''"), -(7203, 0, "'n'"), -(7204, 0, "'n'"), -(7278, 8, "''"), -(7290, 18, "'b'"), -(7291, 0, "'y'"), -(7292, 0, "' '"), -(7293, 0, "'t'"), -(7294, 0, "'h'"), -(7295, 0, "'e'"), -(7296, 0, "' '"), -(7297, 0, "'t'"), -(7298, 0, "'i'"), -(7299, 0, "'m'"), -(7300, 0, "'e'"), -(7301, 0, "' '"), -(7302, 0, "'i'"), -(7303, 0, "'t'"), -(7304, 0, "'s'"), -(7305, 0, "' '"), -(7306, 0, "'d'"), -(7307, 0, "'o'"), -(7308, 0, "'n'"), -(7309, 0, "'w'"), -(7309, 1, "''"), -(7309, 0, "'e'"), -(7310, 0, "','"), -(7311, 0, "' '"), -(7312, 0, "'a'"), -(7313, 0, "'u'"), -(7314, 0, "'t'"), -(7315, 0, "'o'"), -(7316, 0, "'m'"), -(7317, 0, "'e'"), -(7318, 0, "'r'"), -(7319, 0, "'g'"), -(7320, 0, "'e'"), -(7321, 0, "' '"), -(7322, 0, "'u'"), -(7323, 0, "'s'"), -(7324, 0, "'e'"), -(7325, 0, "'s'"), -(7341, 0, "' '"), -(7342, 0, "'W'"), -(7343, 0, "'o'"), -(7344, 0, "'w'"), -(7345, 0, "'.'"), -(7345, 1, "''"), -(7345, 0, "'!'"), -(7345, 1, "''"), -(7345, 0, "'!'"), -(7342, 4, "'W'"), -(7343, 0, "'h'"), -(7344, 0, "'o'"), -(7345, 0, "'a'"), -(7346, 0, "'!'"), -(7347, 0, "' '"), -(7348, 0, "'T'"), -(7349, 0, "'h'"), -(7350, 0, "'a'"), -(7351, 0, "'t'"), -(7352, 0, "'s'"), -(7353, 0, "' '"), -(7354, 0, "'1'"), -(7355, 0, "'0'"), -(7356, 0, "'k'"), -(7357, 0, "'b'"), -(7358, 0, "' '"), -(7359, 0, "'f'"), -(7359, 1, "''"), -(7359, 0, "'o'"), -(7360, 0, "'f'"), -(7361, 0, "' '"), -(7362, 0, "'r'"), -(7363, 0, "'a'"), -(7364, 0, "'m'"), -(7365, 0, "' '"), -(7366, 0, "'*'"), -(7367, 0, "'p'"), -(7368, 0, "'e'"), -(7369, 0, "'r'"), -(7370, 0, "' '"), -(7371, 0, "'k'"), -(7372, 0, "'e'"), -(7373, 0, "'y'"), -(7374, 0, "' '"), -(7375, 0, "'p'"), -(7376, 0, "'r'"), -(7377, 0, "'e'"), -(7378, 0, "'s'"), -(7379, 0, "'s'"), -(7380, 0, "'*'"), -(7381, 0, "'.'"), -(7384, 54, "'W'"), -(7385, 0, "'e'"), -(7386, 0, "' '"), -(7387, 0, "'c'"), -(7388, 0, "'a'"), -(7389, 0, "'n'"), -(7390, 0, "' '"), -(7391, 0, "'c'"), -(7392, 0, "'o'"), -(7393, 0, "'m'"), -(7394, 0, "'p'"), -(7395, 0, "'a'"), -(7396, 0, "'r'"), -(7397, 0, "'e'"), -(7384, 14, "''"), -(7384, 0, "'W'"), -(7384, 1, "''"), -(7384, 0, "'I'"), -(7385, 0, "'f'"), -(7386, 0, "' '"), -(7387, 0, "'w'"), -(7388, 0, "'e'"), -(7389, 0, "' '"), -(7390, 0, "'j'"), -(7391, 0, "'u'"), -(7392, 0, "'s'"), -(7393, 0, "'t'"), -(7394, 0, "' '"), -(7395, 0, "'p'"), -(7396, 0, "'r'"), -(7397, 0, "'o'"), -(7398, 0, "'c'"), -(7399, 0, "'e'"), -(7400, 0, "'s'"), -(7401, 0, "'s'"), -(7402, 0, "' '"), -(7403, 0, "'t'"), -(7404, 0, "'h'"), -(7405, 0, "'a'"), -(7406, 0, "'t'"), -(7407, 0, "' '"), -(7408, 0, "'i'"), -(7409, 0, "'n'"), -(7410, 0, "' '"), -(7411, 0, "'j'"), -(7412, 0, "'a'"), -(7413, 0, "'v'"), -(7414, 0, "'a'"), -(7415, 0, "'s'"), -(7416, 0, "'c'"), -(7417, 0, "'r'"), -(7418, 0, "'i'"), -(7419, 0, "'p'"), -(7420, 0, "'t'"), -(7421, 0, "' '"), -(7422, 0, "'d'"), -(7423, 0, "'i'"), -(7424, 0, "'r'"), -(7425, 0, "'e'"), -(7426, 0, "'c'"), -(7427, 0, "'t'"), -(7428, 0, "'l'"), -(7429, 0, "'y'"), -(7430, 24, "''"), -(7430, 0, "','"), -(7431, 0, "' '"), -(7432, 0, "'u'"), -(7433, 0, "'s'"), -(7434, 0, "'i'"), -(7435, 0, "'n'"), -(7436, 0, "'g'"), -(7437, 0, "' '"), -(7438, 0, "'a'"), -(7457, 39, "''"), -(7457, 0, "','"), -(7458, 0, "' '"), -(7459, 0, "'w'"), -(7460, 0, "'e'"), -(7461, 0, "'l'"), -(7462, 0, "'l'"), -(7463, 0, "' '"), -(7463, 1, "''"), -(7463, 0, "','"), -(7464, 0, "' '"), -(7465, 0, "'i'"), -(7466, 0, "'t'"), -(7467, 0, "'s'"), -(7468, 0, "' '"), -(7469, 0, "'m'"), -(7470, 0, "'u'"), -(7471, 0, "'c'"), -(7472, 0, "'h'"), -(7473, 0, "' '"), -(7474, 0, "'s'"), -(7475, 0, "'l'"), -(7476, 0, "'o'"), -(7477, 0, "'w'"), -(7478, 0, "'e'"), -(7479, 0, "'r'"), -(7480, 0, "':'"), -(7467, 1, "''"), -(7467, 0, "' '"), -(7468, 0, "'m'"), -(7469, 0, "'i'"), -(7470, 0, "'g'"), -(7471, 0, "'h'"), -(7472, 0, "'t'"), -(7473, 0, "' '"), -(7474, 0, "'a'"), -(7475, 0, "'l'"), -(7476, 0, "'l'"), -(7477, 0, "'o'"), -(7478, 0, "'w'"), -(7479, 0, "' '"), -(7480, 0, "'c'"), -(7481, 0, "'o'"), -(7482, 0, "'n'"), -(7483, 0, "'c'"), -(7484, 0, "'u'"), -(7485, 0, "'r'"), -(7486, 0, "'r'"), -(7487, 0, "'e'"), -(7488, 0, "'n'"), -(7489, 0, "'t'"), -(7490, 0, "' '"), -(7491, 0, "'e'"), -(7492, 0, "'d'"), -(7493, 0, "'i'"), -(7494, 0, "'t'"), -(7495, 0, "'s'"), -(7496, 0, "' '"), -(7497, 0, "'b'"), -(7498, 0, "'u'"), -(7499, 0, "'t'"), -(7500, 0, "' '"), -(7501, 0, "'i'"), -(7502, 0, "'t'"), -(7503, 0, "'s'"), -(7504, 5, "''"), -(7504, 7, "' '"), -(7505, 0, "'s'"), -(7506, 0, "'l'"), -(7507, 0, "'o'"), -(7508, 0, "'w'"), -(7671, 0, "' '"), -(7674, 1, "''"), -(7764, 0, "' '"), -(7764, 1, "''"), -(7763, 1, "''"), -(7763, 0, "' '"), -(7764, 0, "'t'"), -(7765, 0, "'h'"), -(7766, 0, "'o'"), -(7767, 0, "'u'"), -(7768, 0, "'g'"), -(7769, 0, "'h'"), -(7770, 0, "'?'"), -(8360, 8, "'t'"), -(8361, 0, "'h'"), -(8362, 0, "'a'"), -(8363, 0, "'t'"), -(8372, 0, "' '"), -(8373, 0, "'t'"), -(8374, 0, "'o'"), -(8375, 0, "'o'"), -(8438, 0, "' '"), -(8439, 0, "'T'"), -(8440, 0, "'h'"), -(8441, 0, "'e'"), -(8442, 0, "' '"), -(8443, 0, "'a'"), -(8444, 0, "'u'"), -(8445, 0, "'t'"), -(8446, 0, "'o'"), -(8447, 0, "'m'"), -(8448, 0, "'e'"), -(8449, 0, "'r'"), -(8450, 0, "'g'"), -(8451, 0, "'e'"), -(8452, 0, "' '"), -(8453, 0, "'t'"), -(8454, 0, "'e'"), -(8455, 0, "'a'"), -(8456, 0, "'m'"), -(8457, 0, "' '"), -(8458, 0, "'i'"), -(8459, 0, "'s'"), -(8460, 0, "' '"), -(8461, 0, "'w'"), -(8462, 0, "'o'"), -(8463, 0, "'r'"), -(8464, 0, "'k'"), -(8465, 0, "'i'"), -(8466, 0, "'n'"), -(8467, 0, "'g'"), -(8468, 0, "' '"), -(8469, 0, "'o'"), -(8470, 0, "'n'"), -(8471, 0, "' '"), -(8472, 0, "'a'"), -(8473, 0, "' '"), -(8474, 0, "'r'"), -(8475, 0, "'u'"), -(8476, 0, "'s'"), -(8477, 0, "'t'"), -(8478, 0, "' '"), -(8479, 0, "'''"), -(8480, 0, "'b'"), -(8481, 0, "'a'"), -(8482, 0, "'c'"), -(8483, 0, "'k'"), -(8484, 0, "'e'"), -(8485, 0, "'n'"), -(8486, 0, "'d'"), -(8487, 0, "'''"), -(8487, 1, "''"), -(8479, 1, "''"), -(8486, 0, "' '"), -(8487, 0, "'f'"), -(8488, 0, "'o'"), -(8489, 0, "'r'"), -(8490, 0, "' '"), -(8491, 0, "'t'"), -(8492, 0, "'h'"), -(8493, 0, "'e'"), -(8494, 0, "' '"), -(8495, 0, "'a'"), -(8496, 0, "'l'"), -(8497, 0, "'g'"), -(8498, 0, "'o'"), -(8499, 0, "'r'"), -(8500, 0, "'i'"), -(8501, 0, "'t'"), -(8502, 0, "'h'"), -(8503, 0, "'m'"), -(8504, 0, "','"), -(8505, 0, "' '"), -(8506, 0, "'b'"), -(8507, 0, "'u'"), -(8508, 0, "'t'"), -(8509, 0, "' '"), -(8510, 0, "'i'"), -(8511, 0, "'t'"), -(8512, 0, "' '"), -(8513, 0, "'h'"), -(8514, 0, "'a'"), -(8515, 0, "'s'"), -(8516, 0, "'n'"), -(8517, 0, "'''"), -(8518, 0, "'t'"), -(8519, 0, "' '"), -(8520, 0, "'b'"), -(8521, 0, "'e'"), -(8522, 0, "'e'"), -(8523, 0, "'n'"), -(8524, 0, "' '"), -(8525, 0, "'m'"), -(8526, 0, "'e'"), -(8527, 0, "'r'"), -(8528, 0, "'g'"), -(8529, 0, "'e'"), -(8530, 0, "'d'"), -(8531, 0, "' '"), -(8532, 0, "'y'"), -(8533, 0, "'e'"), -(8534, 0, "'t'"), -(8535, 0, "'.'"), -(8474, 0, "'r'"), -(8475, 0, "'e'"), -(8476, 0, "'p'"), -(8477, 0, "'l'"), -(8478, 0, "'a'"), -(8479, 0, "'c'"), -(8480, 0, "'e'"), -(8481, 0, "'m'"), -(8482, 0, "'e'"), -(8483, 0, "'n'"), -(8484, 0, "'t'"), -(8485, 0, "' '"), -(8490, 16, "' '"), -(8491, 0, "'i'"), -(8492, 0, "'m'"), -(8493, 0, "'p'"), -(8494, 0, "'l'"), -(8495, 0, "'e'"), -(8496, 0, "'m'"), -(8497, 0, "'e'"), -(8498, 0, "'n'"), -(8499, 0, "'t'"), -(8500, 0, "'a'"), -(8501, 0, "'t'"), -(8502, 0, "'i'"), -(8503, 0, "'o'"), -(8504, 0, "'n'"), -(8505, 0, "' '"), -(8506, 0, "'o'"), -(8507, 0, "'f'"), -(8508, 0, "' '"), -(8509, 0, "'t'"), -(8510, 0, "'h'"), -(8511, 0, "'e'"), -(8554, 0, "' '"), -(8555, 0, "'A'"), -(8556, 0, "'n'"), -(8557, 0, "'d'"), -(8558, 0, "' '"), -(8559, 0, "'i'"), -(8560, 0, "'n'"), -(8561, 0, "' '"), -(8562, 0, "'t'"), -(8563, 0, "'h'"), -(8564, 0, "'e'"), -(8565, 0, "' '"), -(8566, 0, "'m'"), -(8567, 0, "'e'"), -(8568, 0, "'a'"), -(8569, 0, "'n'"), -(8570, 0, "'t'"), -(8571, 0, "'i'"), -(8572, 0, "'m'"), -(8573, 0, "'e'"), -(8574, 0, "' '"), -(8575, 0, "'t'"), -(8576, 0, "'h'"), -(8577, 0, "'e'"), -(8578, 0, "'y'"), -(8579, 0, "' '"), -(8580, 0, "'h'"), -(8581, 0, "'a'"), -(8582, 0, "'v'"), -(8583, 0, "'e'"), -(8584, 0, "'n'"), -(8585, 0, "'''"), -(8586, 0, "'t'"), -(8587, 0, "' '"), -(8588, 0, "'b'"), -(8589, 0, "'o'"), -(8590, 0, "'t'"), -(8591, 0, "'h'"), -(8592, 0, "'e'"), -(8593, 0, "'r'"), -(8594, 0, "'e'"), -(8595, 0, "'d'"), -(8596, 0, "' '"), -(8597, 0, "'m'"), -(8598, 0, "'a'"), -(8599, 0, "'k'"), -(8600, 0, "'i'"), -(8601, 0, "'n'"), -(8602, 0, "'g'"), -(8603, 0, "' '"), -(8604, 0, "'t'"), -(8605, 0, "'h'"), -(8606, 0, "'e'"), -(8607, 0, "' '"), -(8608, 0, "'j'"), -(8609, 0, "'a'"), -(8610, 0, "'v'"), -(8611, 0, "'a'"), -(8612, 0, "'s'"), -(8613, 0, "'c'"), -(8614, 0, "'r'"), -(8615, 0, "'i'"), -(8616, 0, "'p'"), -(8617, 0, "'t'"), -(8618, 0, "' '"), -(8619, 0, "'c'"), -(8620, 0, "'o'"), -(8621, 0, "'d'"), -(8622, 0, "'e'"), -(8623, 0, "' '"), -(8624, 0, "'f'"), -(8625, 0, "'a'"), -(8626, 0, "'s'"), -(8627, 0, "'t'"), -(8628, 0, "' '"), -(8629, 0, "'b'"), -(8630, 0, "'e'"), -(8631, 0, "'c'"), -(8632, 0, "'a'"), -(8633, 0, "'u'"), -(8634, 0, "'s'"), -(8635, 0, "'e'"), -(8554, 82, "''"), -(8528, 0, "'a'"), -(8529, 0, "'t'"), -(8530, 0, "' '"), -(8531, 0, "'t'"), -(8532, 0, "'h'"), -(8533, 0, "'e'"), -(8534, 0, "' '"), -(8535, 0, "'t'"), -(8536, 0, "'i'"), -(8537, 0, "'m'"), -(8538, 0, "'e'"), -(8539, 0, "' '"), -(8540, 0, "'o'"), -(8541, 0, "'f'"), -(8542, 0, "' '"), -(8543, 0, "'w'"), -(8544, 0, "'r'"), -(8545, 0, "'i'"), -(8546, 0, "'t'"), -(8547, 0, "'i'"), -(8548, 0, "'n'"), -(8549, 0, "'g'"), -(8550, 0, "' '"), -(8579, 118, "''"), -(8578, 0, "'n'"), -(8578, 1, "''"), -(8579, 0, "'There's an old saying with performance tuning:nn> You can't make a program faster. You can only make it do less work.n'"), -(8386, 3, "' '"), -(8387, 0, "'a'"), -(8388, 0, "'u'"), -(8389, 0, "'t'"), -(8390, 0, "'o'"), -(8391, 0, "'m'"), -(8392, 0, "'e'"), -(8393, 0, "'r'"), -(8394, 0, "'g'"), -(8395, 0, "'e'"), -(8400, 5, "''"), -(8379, 9, "'A'"), -(8437, 10, "''"), -(8436, 1, "''"), -(8436, 0, "'i'"), -(8437, 0, "'r'"), -(8438, 0, "' '"), -(8546, 17, "' '"), -(8547, 0, "'l'"), -(8548, 0, "'a'"), -(8549, 0, "'n'"), -(8550, 0, "'d'"), -(8551, 0, "'e'"), -(8552, 0, "'d'"), -(8553, 0, "' '"), -(8554, 0, "'y'"), -(8555, 0, "'e'"), -(8556, 0, "'t'"), -(8557, 0, "'.'"), -(8661, 2, "'t'"), -(8662, 0, "'h'"), -(8663, 0, "'e'"), -(8664, 0, "' '"), -(8665, 0, "'c'"), -(8666, 0, "'o'"), -(8667, 0, "'m'"), -(8668, 0, "'p'"), -(8669, 0, "'u'"), -(8670, 0, "'t'"), -(8671, 0, "'e'"), -(8672, 0, "'r'"), -(8560, 0, "'S'"), -(8561, 0, "'o'"), -(8562, 0, "' '"), -(8563, 0, "'h'"), -(8564, 0, "'o'"), -(8565, 0, "'w'"), -(8566, 0, "' '"), -(8567, 0, "'d'"), -(8568, 0, "'o'"), -(8560, 9, "''"), -(8689, 4, "'H'"), -(8778, 0, "' '"), -(8779, 0, "'f'"), -(8780, 0, "'r'"), -(8781, 0, "'o'"), -(8782, 0, "'m'"), -(8783, 0, "' '"), -(8784, 0, "'g'"), -(8785, 0, "'o'"), -(8786, 0, "'i'"), -(8787, 0, "'n'"), -(8788, 0, "' '"), -(8789, 0, "'g'"), -(8790, 0, "'h'"), -(8791, 0, "'t'"), -(8791, 1, "''"), -(8790, 1, "''"), -(8789, 1, "''"), -(8788, 1, "''"), -(8788, 0, "'g'"), -(8789, 0, "' '"), -(8790, 0, "'t'"), -(8791, 0, "'h'"), -(8792, 0, "'r'"), -(8793, 0, "'o'"), -(8794, 0, "'u'"), -(8795, 0, "'g'"), -(8796, 0, "'h'"), -(8797, 0, "' '"), -(8798, 0, "'t'"), -(8799, 0, "'h'"), -(8800, 0, "'e'"), -(8801, 0, "' '"), -(8802, 0, "'c'"), -(8803, 0, "'o'"), -(8804, 0, "'d'"), -(8805, 0, "'e'"), -(8806, 0, "' '"), -(8807, 0, "'a'"), -(8808, 0, "'n'"), -(8809, 0, "'d'"), -(8810, 0, "' '"), -(8811, 0, "'i'"), -(8812, 0, "'m'"), -(8813, 0, "'p'"), -(8814, 0, "'r'"), -(8815, 0, "'o'"), -(8816, 0, "'v'"), -(8817, 0, "'i'"), -(8818, 0, "'n'"), -(8819, 0, "'g'"), -(8820, 0, "' '"), -(8821, 0, "'t'"), -(8822, 0, "'h'"), -(8823, 0, "'i'"), -(8824, 0, "'n'"), -(8825, 0, "'g'"), -(8826, 0, "'s'"), -(8832, 0, "' '"), -(8833, 0, "'I'"), -(8834, 0, "' '"), -(8835, 0, "'a'"), -(8836, 0, "'g'"), -(8837, 0, "'r'"), -(8838, 0, "'e'"), -(8839, 0, "'e'"), -(8840, 0, "' '"), -(8841, 0, "'w'"), -(8842, 0, "'i'"), -(8843, 0, "'t'"), -(8844, 0, "'h'"), -(8845, 0, "' '"), -(8846, 0, "'t'"), -(8847, 0, "'h'"), -(8848, 0, "'e'"), -(8849, 0, "' '"), -(8850, 0, "'a'"), -(8851, 0, "'t'"), -(8852, 0, "'u'"), -(8853, 0, "'o'"), -(8854, 0, "'m'"), -(8855, 0, "'e'"), -(8856, 0, "'r'"), -(8850, 7, "'a'"), -(8851, 0, "'u'"), -(8852, 0, "'t'"), -(8853, 0, "'o'"), -(8854, 0, "'m'"), -(8855, 0, "'e'"), -(8856, 0, "'r'"), -(8857, 0, "'g'"), -(8858, 0, "'e'"), -(8859, 0, "' '"), -(8860, 0, "'t'"), -(8861, 0, "'e'"), -(8862, 0, "'a'"), -(8863, 0, "'m'"), -(8864, 0, "':'"), -(8866, 1, "'W'"), -(8864, 1, "''"), -(8864, 0, "'.'"), -(9005, 15, "''"), -(9005, 4, "'A'"), -(9074, 0, "' '"), -(9075, 0, "'L'"), -(9076, 0, "'e'"), -(9077, 0, "'t'"), -(9078, 0, "'s'"), -(9079, 0, "' '"), -(9079, 1, "''"), -(9078, 1, "''"), -(9077, 1, "''"), -(9076, 1, "''"), -(9075, 1, "''"), -(9074, 1, "''"), -(9074, 0, "' '"), -(9075, 0, "'W'"), -(9076, 0, "'e'"), -(9077, 0, "' '"), -(9078, 0, "'c'"), -(9079, 0, "'a'"), -(9080, 0, "'n'"), -(9081, 0, "' '"), -(9075, 7, "'L'"), -(9076, 0, "'E'"), -(9077, 0, "'t'"), -(9078, 0, "'s'"), -(9078, 1, "''"), -(9077, 1, "''"), -(9076, 1, "''"), -(9076, 0, "'e'"), -(9077, 0, "'t'"), -(9078, 0, "'s'"), -(9079, 0, "' '"), -(9080, 0, "'''"), -(9081, 0, "'I'"), -(9082, 0, "'m'"), -(9082, 1, "''"), -(9081, 1, "''"), -(9081, 0, "'i'"), -(9082, 0, "'m'"), -(9083, 0, "'p'"), -(9084, 0, "'r'"), -(9085, 0, "'o'"), -(9086, 0, "'v'"), -(9087, 0, "'e'"), -(9088, 0, "'''"), -(9089, 0, "' '"), -(9090, 0, "'i'"), -(9091, 0, "'t'"), -(9092, 0, "'.'"), -(9080, 9, "'f'"), -(9081, 0, "'i'"), -(9082, 0, "'x'"), -(9172, 1, "''"), -(9172, 0, "'.'"), -(9174, 5, "'Y'"), -(9175, 0, "'o'"), -(9176, 0, "'u'"), -(9177, 0, "' '"), -(9178, 0, "'c'"), -(9179, 0, "'a'"), -(9180, 0, "'n'"), -(9172, 1, "''"), -(9172, 0, "','"), -(9173, 0, "' '"), -(9174, 0, "'w'"), -(9175, 0, "'h'"), -(9176, 0, "'i'"), -(9177, 0, "'c'"), -(9178, 0, "'h'"), -(9179, 0, "' '"), -(9180, 0, "'K'"), -(9181, 0, "'e'"), -(9180, 2, "''"), -(9174, 6, "'p'"), -(9175, 0, "'i'"), -(9176, 0, "'o'"), -(9177, 0, "'n'"), -(9178, 0, "'e'"), -(9179, 0, "'e'"), -(9180, 0, "'r'"), -(9181, 0, "'e'"), -(9182, 0, "'d'"), -(9183, 0, "' '"), -(9184, 0, "'b'"), -(9185, 0, "'y'"), -(9186, 55, "''"), -(9227, 5, "'t'"), -(9228, 0, "'a'"), -(9229, 0, "'l'"), -(9230, 0, "'k'"), -(9231, 0, "'i'"), -(9232, 0, "'n'"), -(9233, 0, "'g'"), -(9234, 0, "' '"), -(9235, 0, "'a'"), -(9236, 0, "'b'"), -(9237, 0, "'o'"), -(9238, 0, "'u'"), -(9239, 0, "'t'"), -(9261, 1, "''"), -(9260, 1, "''"), -(9260, 0, "','"), -(9260, 1, "''"), -(9281, 0, "'p'"), -(9282, 0, "'r'"), -(9283, 0, "'e'"), -(9284, 0, "'t'"), -(9285, 0, "'t'"), -(9286, 0, "'y'"), -(9287, 0, "' '"), -(9334, 0, "'d'"), -(9335, 0, "'a'"), -(9336, 0, "'t'"), -(9337, 0, "'a'"), -(9338, 0, "' '"), -(9339, 0, "'s'"), -(9340, 0, "'t'"), -(9341, 0, "'r'"), -(9342, 0, "'u'"), -(9343, 0, "'c'"), -(9344, 0, "'t'"), -(9345, 0, "'u'"), -(9346, 0, "'r'"), -(9347, 0, "'e'"), -(9348, 0, "' '"), -(9349, 0, "'''"), -(9355, 0, "'''"), -(9388, 0, "'i'"), -(9389, 0, "'n'"), -(9390, 0, "' '"), -(9391, 0, "'t'"), -(9392, 0, "'h'"), -(9393, 0, "'e'"), -(9394, 0, "' '"), -(9395, 0, "'f'"), -(9396, 0, "'i'"), -(9397, 0, "'e'"), -(9398, 0, "'l'"), -(9399, 0, "'d'"), -(9400, 0, "' '"), -(9401, 0, "'h'"), -(9402, 0, "'a'"), -(9403, 0, "'s'"), -(9404, 0, "' '"), -(9461, 0, "' '"), -(9462, 0, "'a'"), -(9463, 0, "'u'"), -(9464, 0, "'t'"), -(9465, 0, "'o'"), -(9466, 0, "'m'"), -(9467, 0, "'e'"), -(9468, 0, "'r'"), -(9469, 0, "'g'"), -(9470, 0, "'e'"), -(9471, 0, "' '"), -(9472, 0, "'d'"), -(9473, 0, "'o'"), -(9474, 0, "'e'"), -(9475, 0, "'s'"), -(9476, 5, "''"), -(9753, 0, "'f'"), -(9754, 0, "'l'"), -(9755, 0, "'a'"), -(9756, 0, "'t'"), -(9757, 0, "' '"), -(10027, 84, "''"), -(10026, 1, "''"), -(10025, 1, "''"), -(10025, 0, "','"), -(10026, 0, "' '"), -(10027, 0, "'b'"), -(10028, 0, "'u'"), -(10028, 1, "''"), -(10027, 1, "''"), -(10026, 1, "''"), -(10026, 0, "' '"), -(10035, 1, "''"), -(10034, 1, "''"), -(10034, 0, "'l'"), -(10035, 0, "'l'"), -(10036, 0, "' '"), -(10037, 0, "'g'"), -(10038, 0, "'e'"), -(10039, 0, "'t'"), -(10040, 0, "' '"), -(10041, 0, "'t'"), -(10042, 0, "'h'"), -(10043, 0, "'e'"), -(10044, 0, "'r'"), -(10045, 0, "'e'"), -(10046, 14, "''"), -(9983, 9, "''"), -(10041, 0, "'W'"), -(10042, 0, "'i'"), -(10043, 0, "'t'"), -(10044, 0, "'h'"), -(10045, 0, "' '"), -(10046, 0, "'t'"), -(10047, 0, "'h'"), -(10048, 0, "'i'"), -(10049, 0, "'s'"), -(10050, 0, "' '"), -(10051, 0, "'s'"), -(10052, 0, "'t'"), -(10053, 0, "'r'"), -(10054, 0, "'u'"), -(10055, 0, "'c'"), -(10056, 0, "'t'"), -(10057, 0, "'u'"), -(10058, 0, "'r'"), -(10059, 0, "'e'"), -(10060, 0, "','"), -(10061, 0, "' '"), -(10062, 0, "'t'"), -(10063, 0, "'h'"), -(10064, 0, "'e'"), -(10065, 0, "' '"), -(10066, 0, "'w'"), -(10067, 0, "'a'"), -(10068, 0, "'y'"), -(10069, 0, "' '"), -(10070, 0, "'w'"), -(10071, 0, "'e'"), -(10072, 0, "' '"), -(10073, 0, "'i'"), -(10074, 0, "'n'"), -(10075, 0, "'s'"), -(10076, 0, "'e'"), -(10077, 0, "'r'"), -(10078, 0, "'t'"), -(10079, 0, "' '"), -(10080, 0, "'i'"), -(10081, 0, "'t'"), -(10082, 0, "'e'"), -(10083, 0, "'m'"), -(10084, 0, "'s'"), -(10085, 0, "' '"), -(10086, 0, "'c'"), -(10087, 0, "'h'"), -(10088, 0, "'a'"), -(10089, 0, "'n'"), -(10090, 0, "'g'"), -(10091, 0, "'e'"), -(10092, 0, "'s'"), -(10093, 0, "'.'"), -(10093, 1, "''"), -(10093, 0, "' '"), -(10094, 0, "'s'"), -(10095, 0, "'l'"), -(10096, 0, "'i'"), -(10097, 0, "'g'"), -(10098, 0, "'h'"), -(10099, 0, "'t'"), -(10100, 0, "'l'"), -(10101, 0, "'y'"), -(10102, 0, "'.'"), -(10103, 0, "' '"), -(10104, 67, "''"), -(10104, 1, "''"), -(10103, 1, "''"), -(10094, 9, "''"), -(10093, 1, "''"), -(10093, 0, "'.'"), -(10110, 3, "'w'"), -(10111, 0, "'i'"), -(10111, 1, "''"), -(10111, 0, "'e'"), -(10112, 0, "' '"), -(10113, 0, "'i'"), -(10114, 0, "'n'"), -(10115, 0, "'s'"), -(10116, 0, "'e'"), -(10117, 0, "'r'"), -(10118, 0, "'t'"), -(10119, 0, "' '"), -(10120, 0, "'b'"), -(10121, 0, "'y'"), -(10122, 10, "''"), -(10122, 0, "' answer is'"), -(10119, 3, "''"), -(10112, 7, "''"), -(10111, 1, "''"), -(10111, 0, "'i'"), -(10110, 2, "'the'"), -(10093, 1, "''"), -(10093, 0, "' slightly.'"), -(10103, 0, "' ?'"), -(10104, 0, "'The question is, how do you insert a new item into a list like this'"), -(10104, 18, "'H'"), -(10144, 10, "''"), -(10062, 42, "''"), -(10041, 21, "'T'"), -(10042, 0, "'h'"), -(10043, 0, "'a'"), -(10044, 0, "'t'"), -(10045, 0, "' '"), -(10046, 0, "'l'"), -(10047, 0, "'o'"), -(10048, 0, "'o'"), -(10049, 0, "'k'"), -(10050, 0, "'s'"), -(10051, 0, "' '"), -(10052, 0, "'s'"), -(10053, 0, "'i'"), -(10054, 0, "'m'"), -(10055, 0, "'p'"), -(10056, 0, "'l'"), -(10057, 0, "'e'"), -(10058, 0, "','"), -(10059, 0, "' '"), -(10060, 0, "'b'"), -(10061, 0, "'u'"), -(10062, 0, "'t'"), -(10063, 0, "' '"), -(10064, 1, "''"), -(10064, 0, "'h'"), -(10121, 14, "'i'"), -(10122, 0, "'t'"), -(10123, 0, "'s'"), -(10124, 0, "' '"), -(10125, 0, "'e'"), -(10126, 0, "'a'"), -(10127, 0, "'s'"), -(10128, 0, "'y'"), -(10129, 0, "':'"), -(10213, 18, "''"), -(10213, 0, "','"), -(10214, 0, "' '"), -(10215, 0, "'k'"), -(10216, 0, "'e'"), -(10217, 0, "'e'"), -(10218, 0, "'p'"), -(10219, 0, "'i'"), -(10220, 0, "'n'"), -(10221, 0, "'g'"), -(10222, 0, "' '"), -(10223, 0, "'t'"), -(10224, 0, "'h'"), -(10225, 0, "'e'"), -(10226, 0, "' '"), -(10227, 0, "'s'"), -(10228, 0, "'o'"), -(10229, 0, "'r'"), -(10226, 4, "'m'"), -(10227, 0, "' '"), -(10228, 0, "'s'"), -(10229, 0, "'o'"), -(10230, 0, "'r'"), -(10231, 0, "'t'"), -(10232, 0, "'e'"), -(10233, 0, "'d'"), -(10234, 0, "'.'"), -(10213, 1, "''"), -(10213, 0, "'.'"), -(10214, 0, "' '"), -(10215, 0, "'('"), -(10216, 8, "'K'"), -(10217, 0, "'e'"), -(10218, 0, "'e'"), -(10219, 0, "'p'"), -(10213, 20, "''"), -(10188, 0, "'r'"), -(10189, 0, "'i'"), -(10190, 0, "'g'"), -(10191, 0, "'h'"), -(10192, 0, "'t'"), -(10193, 0, "' '"), -(10194, 0, "'l'"), -(10195, 0, "'o'"), -(10196, 0, "'c'"), -(10197, 0, "'a'"), -(10198, 0, "'t'"), -(10199, 0, "'i'"), -(10200, 0, "'o'"), -(10201, 0, "'n'"), -(10202, 0, "' '"), -(10203, 0, "'i'"), -(10204, 0, "'n'"), -(10205, 0, "' '"), -(10206, 0, "'t'"), -(10207, 0, "'h'"), -(10208, 0, "'e'"), -(10209, 0, "' '"), -(10235, 0, "'.'"), -(10235, 1, "''"), -(10245, 0, "' '"), -(10246, 0, "'t'"), -(10247, 0, "'y'"), -(10248, 0, "'j'"), -(10248, 1, "''"), -(10247, 1, "''"), -(10246, 1, "''"), -(10246, 0, "'y'"), -(10247, 0, "'j'"), -(10248, 0, "'s'"), -(10387, 0, "'w'"), -(10388, 0, "'h'"), -(10389, 0, "'e'"), -(10390, 0, "'r'"), -(10391, 0, "'e'"), -(10392, 0, "' '"), -(10428, 0, "'A'"), -(10429, 0, "'n'"), -(10430, 0, "'d'"), -(10431, 0, "' '"), -(10432, 0, "'u'"), -(10433, 0, "'h'"), -(10434, 0, "','"), -(10435, 0, "' '"), -(10436, 1, "''"), -(10436, 0, "'i'"), -(10428, 9, "'I'"), -(10434, 9, "''"), -(10434, 0, "' '"), -(10435, 0, "'i'"), -(10436, 0, "'t'"), -(10437, 0, "'!'"), -(10440, 33, "'T'"), -(10441, 0, "'h'"), -(10442, 0, "'i'"), -(10443, 0, "'s'"), -(10444, 0, "' '"), -(10445, 0, "'i'"), -(10446, 0, "'s'"), -(10447, 39, "''"), -(10447, 0, "' '"), -(10448, 0, "'j'"), -(10449, 0, "'u'"), -(10450, 0, "'s'"), -(10451, 0, "'t'"), -(10452, 0, "' '"), -(10453, 0, "'a'"), -(10440, 0, "'E'"), -(10441, 0, "'s'"), -(10442, 0, "'s'"), -(10443, 0, "'e'"), -(10444, 0, "'n'"), -(10445, 0, "'t'"), -(10446, 0, "'i'"), -(10447, 0, "'a'"), -(10448, 0, "'l'"), -(10449, 0, "'l'"), -(10450, 0, "'y'"), -(10451, 0, "','"), -(10452, 0, "' '"), -(10453, 4, "'t'"), -(10454, 0, "'h'"), -(10455, 0, "'i'"), -(10456, 0, "'s'"), -(10457, 0, "' '"), -(10458, 0, "'a'"), -(10459, 0, "'p'"), -(10460, 0, "'p'"), -(10461, 0, "'r'"), -(10462, 0, "'o'"), -(10463, 0, "'a'"), -(10464, 0, "'c'"), -(10465, 0, "'h'"), -(10500, 0, "'I'"), -(10501, 0, "'t'"), -(10502, 0, "' '"), -(10503, 0, "'s'"), -(10504, 0, "'o'"), -(10505, 0, "'u'"), -(10506, 0, "'n'"), -(10507, 0, "'d'"), -(10508, 0, "'s'"), -(10509, 0, "' '"), -(10510, 0, "'s'"), -(10511, 0, "'o'"), -(10512, 0, "'r'"), -(10513, 0, "'t'"), -(10514, 0, "' '"), -(10515, 0, "'o'"), -(10516, 0, "'f'"), -(10517, 0, "' '"), -(10518, 0, "'c'"), -(10519, 0, "'o'"), -(10520, 0, "'m'"), -(10521, 0, "'p'"), -(10522, 0, "'l'"), -(10523, 0, "'i'"), -(10524, 0, "'c'"), -(10525, 0, "'a'"), -(10526, 0, "'t'"), -(10527, 0, "'e'"), -(10528, 0, "'d'"), -(10529, 0, "','"), -(10530, 0, "' '"), -(10531, 0, "'b'"), -(10532, 0, "'u'"), -(10533, 0, "'t'"), -(10534, 0, "' '"), -(10535, 1, "''"), -(10535, 0, "'y'"), -(10603, 0, "'H'"), -(10604, 0, "'e'"), -(10605, 0, "'r'"), -(10606, 0, "'e'"), -(10607, 0, "'''"), -(10608, 0, "'s'"), -(10609, 0, "' '"), -(10610, 0, "'a'"), -(10610, 1, "''"), -(10610, 0, "'t'"), -(10611, 0, "'h'"), -(10612, 0, "'e'"), -(10613, 0, "' '"), -(10614, 0, "'a'"), -(10615, 0, "'l'"), -(10616, 0, "'g'"), -(10617, 0, "'o'"), -(10618, 0, "'r'"), -(10619, 0, "'i'"), -(10620, 0, "'t'"), -(10621, 0, "'h'"), -(10622, 0, "'m'"), -(10623, 0, "' '"), -(10624, 0, "'i'"), -(10625, 0, "'n'"), -(10626, 0, "' '"), -(10627, 3, "''"), -(10635, 45, "''"), -(10635, 0, "','"), -(10636, 0, "' '"), -(10637, 0, "'w'"), -(10638, 0, "'i'"), -(10639, 0, "'t'"), -(10640, 0, "'h'"), -(10641, 0, "' '"), -(10642, 0, "'l'"), -(10643, 0, "'o'"), -(10644, 0, "'t'"), -(10645, 0, "'s'"), -(10646, 0, "' '"), -(10647, 0, "'o'"), -(10642, 6, "'c'"), -(10643, 0, "'o'"), -(10644, 0, "'m'"), -(10645, 0, "'m'"), -(10646, 0, "'e'"), -(10647, 0, "'n'"), -(10648, 0, "'t'"), -(10649, 0, "'s'"), -(10869, 0, "' '"), -(10870, 0, "'C'"), -(10871, 0, "'R'"), -(10872, 0, "'D'"), -(10873, 0, "'T'"), -(10837, 0, "' '"), -(10838, 0, "'l'"), -(10839, 0, "'o'"), -(10840, 0, "'t'"), -(10841, 0, "'s'"), -(10842, 0, "' '"), -(10843, 0, "'o'"), -(10844, 0, "'f'"), -(10845, 0, "' '"), -(10846, 0, "'R'"), -(10846, 1, "''"), -(10846, 0, "'C'"), -(10847, 0, "'R'"), -(10848, 0, "'D'"), -(10849, 0, "'T'"), -(10850, 0, "'s'"), -(10851, 0, "' '"), -(10852, 0, "'l'"), -(10853, 0, "'i'"), -(10854, 0, "'k'"), -(10855, 0, "'e'"), -(10856, 0, "' '"), -(10857, 0, "'t'"), -(10858, 0, "'h'"), -(10859, 0, "'i'"), -(10860, 0, "'s'"), -(10861, 0, "'.'"), -(10894, 0, "'s'"), -(10895, 0, "' '"), -(10896, 0, "'a'"), -(10897, 0, "'l'"), -(10898, 0, "'l'"), -(10899, 0, "' '"), -(10900, 0, "'w'"), -(10901, 0, "'o'"), -(10902, 0, "'r'"), -(10903, 0, "'k'"), -(10904, 0, "','"), -(10905, 0, "' '"), -(10906, 0, "'a'"), -(10907, 0, "'n'"), -(10908, 0, "'d'"), -(10909, 0, "' '"), -(10910, 0, "'y'"), -(10904, 7, "''"), -(10904, 0, "'n'"), -(10905, 0, "'2'"), -(10906, 0, "'.'"), -(10907, 0, "' '"), -(10908, 0, "'D'"), -(10909, 0, "'o'"), -(10910, 0, "'i'"), -(10911, 0, "'n'"), -(10912, 0, "'g'"), -(10913, 0, "' '"), -(10914, 0, "'i'"), -(10915, 0, "'t'"), -(10916, 0, "' '"), -(10917, 0, "'t'"), -(10918, 0, "'h'"), -(10919, 0, "'i'"), -(10920, 0, "'s'"), -(10921, 0, "' '"), -(10922, 0, "'w'"), -(10923, 0, "'a'"), -(10924, 0, "'y'"), -(10925, 0, "' '"), -(10926, 0, "'l'"), -(10927, 0, "'e'"), -(10928, 0, "'t'"), -(10929, 0, "'s'"), -(10930, 0, "' '"), -(10931, 0, "'y'"), -(10932, 0, "'o'"), -(10933, 0, "'u'"), -(10934, 0, "' '"), -(10935, 0, "'i'"), -(10936, 0, "'m'"), -(10937, 0, "'p'"), -(10938, 0, "'l'"), -(10939, 0, "'e'"), -(10940, 0, "'m'"), -(10941, 0, "'e'"), -(10942, 0, "'n'"), -(10943, 0, "'t'"), -(10944, 0, "' '"), -(10945, 0, "'t'"), -(10946, 0, "'h'"), -(10947, 0, "'e'"), -(10948, 0, "' '"), -(10949, 0, "'s'"), -(10950, 0, "'e'"), -(10951, 0, "'m'"), -(10952, 0, "'a'"), -(10953, 0, "'n'"), -(10954, 0, "'t'"), -(10955, 0, "'i'"), -(10956, 0, "'c'"), -(10957, 0, "'s'"), -(10958, 0, "' '"), -(10959, 0, "'o'"), -(10960, 0, "'f'"), -(10961, 0, "' '"), -(10962, 0, "'m'"), -(10963, 0, "'u'"), -(10964, 0, "'l'"), -(10965, 0, "'t'"), -(10966, 0, "'i'"), -(10967, 0, "'p'"), -(10968, 0, "'l'"), -(10969, 0, "'e'"), -(10975, 0, "'s'"), -(10976, 10, "''"), -(11107, 1, "''"), -(11107, 1, "''"), -(11107, 0, "'s'"), -(11108, 0, "'.'"), -(11109, 0, "' '"), -(11110, 2, "'M'"), -(11116, 0, "' '"), -(11117, 0, "'y'"), -(11118, 0, "'o'"), -(11119, 0, "'u'"), -(11125, 0, "' '"), -(11126, 0, "'n'"), -(11127, 0, "'e'"), -(11128, 0, "'e'"), -(11129, 0, "'d'"), -(11130, 0, "' '"), -(11131, 0, "'t'"), -(11132, 0, "'o'"), -(11141, 1, "''"), -(11140, 1, "''"), -(11139, 1, "''"), -(11138, 1, "''"), -(11174, 0, "'s'"), -(11177, 1, "''"), -(11177, 0, "'3'"), -(11423, 1, "''"), -(11423, 0, "'4'"), -(11547, 1, "''"), -(11547, 0, "'5'"), -(11179, 0, "' '"), -(11180, 0, "'T'"), -(11181, 0, "'h'"), -(11182, 0, "'e'"), -(11183, 0, "' '"), -(11184, 0, "'a'"), -(11185, 0, "'l'"), -(11186, 0, "'g'"), -(11187, 0, "'o'"), -(11188, 0, "'r'"), -(11189, 0, "'i'"), -(11190, 0, "'t'"), -(11191, 0, "'h'"), -(11192, 0, "'m'"), -(11193, 0, "' '"), -(11194, 0, "'i'"), -(11195, 0, "'s'"), -(11196, 0, "'s'"), -(11196, 1, "''"), -(11196, 0, "' '"), -(11197, 0, "'s'"), -(11198, 0, "'u'"), -(11199, 0, "'p'"), -(11200, 0, "'e'"), -(11201, 0, "'r'"), -(11202, 0, "' '"), -(11203, 0, "'f'"), -(11204, 0, "'a'"), -(11205, 0, "'s'"), -(11206, 0, "'t'"), -(11194, 13, "'o'"), -(11195, 0, "'n'"), -(11196, 0, "'l'"), -(11197, 0, "'y'"), -(11198, 0, "' '"), -(11199, 0, "'s'"), -(11200, 0, "'l'"), -(11201, 0, "'o'"), -(11202, 0, "'w'"), -(11203, 0, "'s'"), -(11204, 0, "' '"), -(11205, 0, "'d'"), -(11206, 0, "'o'"), -(11207, 0, "'w'"), -(11208, 0, "'n'"), -(11209, 0, "' '"), -(11210, 0, "'w'"), -(11211, 0, "'h'"), -(11212, 0, "'e'"), -(11213, 0, "'n'"), -(11214, 0, "' '"), -(11215, 0, "'t'"), -(11216, 0, "'h'"), -(11217, 0, "'e'"), -(11218, 0, "'r'"), -(11219, 0, "'e'"), -(11220, 0, "' '"), -(11221, 0, "'a'"), -(11222, 0, "'r'"), -(11223, 0, "'e'"), -(11225, 1, "''"), -(11225, 0, "'c'"), -(11264, 0, "'.'"), -(11265, 0, "' '"), -(11266, 0, "'u'"), -(11266, 1, "''"), -(11266, 0, "'B'"), -(11267, 0, "'u'"), -(11268, 0, "'t'"), -(11269, 0, "' '"), -(11270, 0, "'t'"), -(11271, 0, "'h'"), -(11272, 0, "'a'"), -(11273, 0, "'t'"), -(11274, 0, "'s'"), -(11275, 4, "''"), -(11298, 4, "' '"), -(11299, 0, "'-'"), -(11360, 81, "''"), -(11360, 4, "'I'"), -(11387, 1, "''"), -(11387, 0, "'.'"), -(11404, 4, "'t'"), -(11405, 0, "'h'"), -(11406, 0, "'e'"), -(11408, 0, "'*'"), -(11423, 0, "'*'"), -(11423, 1, "''"), -(11408, 1, "''"), -(11426, 4, "''"), -(11425, 1, "''"), -(11450, 0, "' '"), -(11451, 0, "'i'"), -(11452, 0, "'s'"), -(11478, 0, "' '"), -(11479, 0, "'t'"), -(11480, 0, "'o'"), -(11481, 0, "' '"), -(11482, 0, "'a'"), -(11483, 0, "'c'"), -(11484, 0, "'t'"), -(11485, 0, "'u'"), -(11486, 0, "'a'"), -(11487, 0, "'l'"), -(11488, 0, "' '"), -(11489, 0, "'a'"), -(11490, 0, "'u'"), -(11491, 0, "'t'"), -(11492, 0, "'o'"), -(11493, 0, "'m'"), -(11494, 0, "'e'"), -(11495, 0, "'r'"), -(11496, 0, "'g'"), -(11497, 0, "'e'"), -(11498, 0, "','"), -(11499, 0, "' '"), -(11500, 0, "'a'"), -(11501, 0, "'n'"), -(11502, 0, "'d'"), -(11503, 0, "' '"), -(11504, 0, "'y'"), -(11505, 0, "'j'"), -(11506, 0, "'s'"), -(11507, 0, "' '"), -(11508, 0, "'a'"), -(11509, 0, "'n'"), -(11510, 0, "'d'"), -(11511, 0, "' '"), -(11512, 0, "'s'"), -(11513, 0, "'y'"), -(11514, 0, "'n'"), -(11515, 0, "'c'"), -(11516, 0, "'9'"), -(11519, 1, "''"), -(11546, 1, "''"), -(11545, 1, "''"), -(11545, 0, "'.'"), -(11546, 0, "')'"), -(11519, 0, "'('"), -(11520, 19, "''"), -(11520, 2, "'F'"), -(11526, 0, "' '"), -(11527, 0, "'v'"), -(11528, 0, "'e'"), -(11529, 0, "'r'"), -(11530, 0, "'f'"), -(11531, 0, "'i'"), -(11531, 1, "''"), -(11530, 1, "''"), -(11530, 0, "'i'"), -(11531, 0, "'f'"), -(11532, 0, "'i'"), -(11533, 0, "'e'"), -(11534, 0, "'d'"), -(11535, 0, "' '"), -(11536, 0, "'('"), -(11537, 0, "'T'"), -(11538, 0, "'M'"), -(11539, 0, "')'"), -(11520, 0, "'['"), -(11536, 0, "']'"), -(11537, 0, "'('"), -(11538, 0, "'https://github.com/josephg/reference-crdts/blob/main/reference_test.ts'"), -(11608, 0, "')'"), -(11609, 6, "''"), -(11617, 0, "' '"), -(11618, 0, "'k'"), -(11619, 0, "'i'"), -(11620, 0, "'n'"), -(11621, 0, "'d'"), -(11618, 4, "'a'"), -(11619, 0, "'l'"), -(11620, 0, "'s'"), -(11621, 0, "'o'"), -(11622, 0, "' '"), -(11623, 0, "'r'"), -(11624, 0, "'e'"), -(11625, 0, "'a'"), -(11626, 0, "'l'"), -(11627, 0, "'l'"), -(11628, 0, "'y'"), -(11630, 4, "'e'"), -(11631, 0, "'l'"), -(11632, 0, "'e'"), -(11633, 0, "'g'"), -(11634, 0, "'a'"), -(11635, 0, "'n'"), -(11636, 0, "'t'"), -(11639, 0, "'W'"), -(11640, 0, "'e'"), -(11641, 0, "' '"), -(11642, 1, "''"), -(11642, 0, "'i'"), -(11675, 1, "''"), -(11675, 0, "'.'"), -(11684, 1, "''"), -(11676, 8, "''"), -(11676, 0, "' Genius!'"), -(11676, 8, "''"), -(11676, 0, "' Genius!'"), -(11720, 5, "'I'"), -(11721, 0, "'T'"), -(11722, 0, "'s'"), -(11723, 0, "' '"), -(11724, 0, "'a'"), -(11724, 1, "''"), -(11723, 1, "''"), -(11722, 1, "''"), -(11721, 1, "''"), -(11721, 0, "'t'"), -(11722, 0, "'s'"), -(11723, 0, "' '"), -(11724, 0, "'a'"), -(11725, 0, "'b'"), -(11726, 0, "'o'"), -(11727, 0, "'u'"), -(11728, 0, "'t'"), -(11777, 37, "''"), -(11777, 0, "':'"), -(12096, 0, "'M'"), -(12097, 0, "'i'"), -(12098, 0, "'n'"), -(12099, 0, "'d'"), -(12100, 0, "' '"), -(12101, 0, "'y'"), -(12102, 0, "'o'"), -(12103, 0, "'u'"), -(12104, 0, "','"), -(12105, 0, "' '"), -(12106, 1, "''"), -(12106, 0, "'s'"), -(12143, 10, "''"), -(12142, 1, "''"), -(12193, 0, "' '"), -(12194, 0, "'T'"), -(12195, 0, "'h'"), -(12196, 0, "'i'"), -(12197, 0, "'s'"), -(12198, 0, "' '"), -(12194, 5, "'T'"), -(12195, 0, "'h'"), -(12196, 0, "'e'"), -(12197, 0, "'s'"), -(12198, 0, "'e'"), -(12199, 0, "' '"), -(12194, 6, "'T'"), -(12195, 0, "'h'"), -(12196, 0, "'e'"), -(12197, 0, "'s'"), -(12198, 0, "'e'"), -(12199, 0, "' '"), -(12200, 0, "'a'"), -(12201, 0, "'r'"), -(12202, 0, "'e'"), -(12203, 0, "' '"), -(12204, 0, "'c'"), -(12205, 0, "'o'"), -(12206, 0, "'m'"), -(12207, 0, "'p'"), -(12208, 0, "'l'"), -(12209, 0, "'e'"), -(12210, 0, "'t'"), -(12211, 0, "'e'"), -(12212, 0, "'l'"), -(12213, 0, "'y'"), -(12214, 0, "' '"), -(12215, 0, "'d'"), -(12216, 0, "'i'"), -(12217, 0, "'f'"), -(12218, 0, "'f'"), -(12219, 0, "'e'"), -(12220, 0, "'r'"), -(12221, 0, "'e'"), -(12222, 0, "'n'"), -(12223, 0, "'t'"), -(12224, 0, "' '"), -(12225, 0, "'c'"), -(12226, 0, "'o'"), -(12227, 0, "'d'"), -(12228, 0, "'e'"), -(12229, 0, "'b'"), -(12230, 0, "'a'"), -(12231, 0, "'s'"), -(12232, 0, "'e'"), -(12233, 0, "'s'"), -(12234, 0, "' '"), -(12235, 0, "'b'"), -(12236, 0, "'e'"), -(12237, 0, "'i'"), -(12238, 0, "'n'"), -(12239, 0, "'g'"), -(12240, 0, "' '"), -(12241, 0, "'t'"), -(12242, 0, "'e'"), -(12243, 0, "'s'"), -(12244, 0, "'t'"), -(12245, 0, "'e'"), -(12246, 0, "'d'"), -(12247, 0, "'.'"), -(10235, 0, "'n'"), -(10236, 0, "'3'"), -(10237, 0, "'.'"), -(10238, 0, "' '"), -(10239, 0, "'U'"), -(10240, 0, "'h'"), -(10239, 2, "'S'"), -(10239, 1, "''"), -(10239, 0, "'T'"), -(10240, 0, "'r'"), -(10241, 0, "'a'"), -(10242, 0, "'v'"), -(10243, 0, "'e'"), -(10244, 0, "'r'"), -(10245, 0, "'s'"), -(10246, 0, "'e'"), -(10247, 0, "' '"), -(10248, 0, "'t'"), -(10249, 0, "'h'"), -(10250, 0, "'e'"), -(10251, 0, "' '"), -(10252, 0, "'t'"), -(10253, 0, "'r'"), -(10254, 0, "'e'"), -(10255, 0, "'e'"), -(10248, 8, "'b'"), -(10249, 0, "'a'"), -(10250, 0, "'c'"), -(10251, 0, "'k'"), -(10252, 0, "'w'"), -(10253, 0, "'a'"), -(10248, 6, "'u'"), -(10249, 0, "'p'"), -(10250, 0, "' '"), -(10251, 0, "'t'"), -(10252, 0, "'h'"), -(10253, 0, "'e'"), -(10254, 0, "' '"), -(10255, 0, "'t'"), -(10256, 0, "'r'"), -(10257, 0, "'e'"), -(10258, 0, "'e'"), -(10259, 0, "' '"), -(10260, 0, "'t'"), -(10261, 0, "'o'"), -(10262, 0, "' '"), -(10263, 0, "'f'"), -(10264, 0, "'i'"), -(10265, 0, "'g'"), -(10266, 0, "'u'"), -(10267, 0, "'r'"), -(10268, 0, "'e'"), -(10269, 0, "' '"), -(10270, 0, "'o'"), -(10271, 0, "'u'"), -(10272, 0, "'t'"), -(10273, 0, "' '"), -(10274, 0, "'w'"), -(10275, 0, "'h'"), -(10276, 0, "'e'"), -(10277, 0, "'r'"), -(10278, 0, "'e'"), -(10279, 0, "' '"), -(10274, 6, "'t'"), -(10275, 0, "'h'"), -(10276, 0, "'e'"), -(10277, 0, "' '"), -(10278, 0, "'i'"), -(10279, 0, "'n'"), -(10280, 0, "'s'"), -(10281, 0, "'e'"), -(10282, 0, "'r'"), -(10283, 0, "'t'"), -(10284, 0, "' '"), -(10285, 0, "'p'"), -(10286, 0, "'o'"), -(10287, 0, "'s'"), -(10288, 0, "'i'"), -(10289, 0, "'t'"), -(10290, 0, "'i'"), -(10291, 0, "'o'"), -(10292, 0, "'n'"), -(10293, 0, "' '"), -(10294, 0, "'o'"), -(10295, 0, "'f'"), -(10296, 0, "' '"), -(10297, 0, "'t'"), -(10298, 0, "'h'"), -(10299, 0, "' '"), -(10300, 0, "'e'"), -(10300, 1, "''"), -(10300, 0, "'e'"), -(10300, 1, "''"), -(10299, 1, "''"), -(10299, 0, "'e'"), -(10300, 0, "' '"), -(10301, 0, "'n'"), -(10302, 0, "'e'"), -(10303, 0, "'w'"), -(10304, 0, "' '"), -(10305, 0, "'i'"), -(10306, 0, "'t'"), -(10307, 0, "'e'"), -(10308, 0, "'m'"), -(10309, 0, "','"), -(10310, 0, "' '"), -(10311, 0, "'a'"), -(10312, 0, "'n'"), -(10313, 0, "'d'"), -(10314, 0, "' '"), -(10315, 0, "'u'"), -(10316, 0, "'p'"), -(10317, 0, "'d'"), -(10318, 0, "'a'"), -(10319, 0, "'t'"), -(10320, 0, "'e'"), -(10250, 0, "' '"), -(10251, 0, "'t'"), -(10252, 0, "'h'"), -(10253, 0, "'r'"), -(10254, 0, "'o'"), -(10255, 0, "'u'"), -(10256, 0, "'g'"), -(10257, 0, "'h'"), -(10329, 0, "' '"), -(10330, 0, "'o'"), -(10331, 0, "'u'"), -(10332, 0, "'r'"), -(10333, 0, "' '"), -(10334, 0, "'c'"), -(10335, 0, "'o'"), -(10336, 0, "'p'"), -(10337, 0, "'y'"), -(10338, 0, "' '"), -(10339, 0, "'o'"), -(10340, 0, "'f'"), -(10341, 0, "' '"), -(10342, 0, "'t'"), -(10343, 0, "'h'"), -(10344, 0, "'e'"), -(10345, 0, "' '"), -(10346, 0, "'d'"), -(10347, 0, "'o'"), -(10348, 0, "'c'"), -(10349, 0, "'u'"), -(10350, 0, "'m'"), -(10351, 0, "'e'"), -(10352, 0, "'n'"), -(10353, 0, "'t'"), -(10354, 0, "'.'"), -(10355, 0, "' '"), -(10356, 0, "'('"), -(10357, 0, "'A'"), -(10358, 0, "'u'"), -(10359, 0, "'t'"), -(10360, 0, "'o'"), -(10361, 0, "'m'"), -(10362, 0, "'e'"), -(10363, 0, "'r'"), -(10364, 0, "'g'"), -(10365, 0, "'e'"), -(10366, 0, "' '"), -(10367, 0, "'a'"), -(10368, 0, "'l'"), -(10369, 0, "'s'"), -(10370, 0, "'o'"), -(10371, 0, "' '"), -(10372, 0, "'s'"), -(10373, 0, "'t'"), -(10374, 0, "'o'"), -(10236, 139, "''"), -(10236, 0, "'3. Traverse up through the tree to figure out the insert position of the new item, and update our copy of the document. (Automerge also sto'"), -(10239, 0, "'('"), -(10239, 1, "''"), -(10318, 4, "' '"), -(10319, 0, "'s'"), -(10320, 0, "'o'"), -(10321, 0, "' '"), -(10322, 0, "'y'"), -(10323, 0, "'o'"), -(10324, 0, "'u'"), -(10325, 0, "' '"), -(10326, 0, "'c'"), -(10327, 0, "'a'"), -(10328, 0, "'n'"), -(10329, 53, "''"), -(10329, 0, "' '"), -(10330, 0, "'a'"), -(10331, 0, "'d'"), -(10332, 0, "'d'"), -(10333, 0, "' '"), -(10333, 1, "''"), -(10329, 4, "''"), -(10329, 0, "' update our copy of the document. (Automerge also sto'"), -(10337, 12, "''"), -(10349, 21, "' '"), -(10350, 0, "'i'"), -(10351, 0, "'n'"), -(10352, 0, "' '"), -(10353, 0, "'y'"), -(10354, 0, "'o'"), -(10355, 0, "'u'"), -(10356, 0, "'r'"), -(10357, 0, "' '"), -(10358, 0, "'e'"), -(10359, 0, "'d'"), -(10360, 0, "'i'"), -(10361, 0, "'t'"), -(10362, 0, "'o'"), -(10363, 0, "'r'"), -(10364, 0, "' '"), -(10365, 0, "'/'"), -(10366, 0, "' '"), -(10366, 1, "''"), -(10365, 1, "''"), -(10364, 1, "''"), -(10364, 0, "'.'"), -(10341, 0, "'a'"), -(10342, 0, "'c'"), -(10343, 0, "'t'"), -(10344, 0, "'u'"), -(10345, 0, "'a'"), -(10346, 0, "'l'"), -(10347, 0, "' '"), -(10383, 1, "''"), -(10383, 0, "'Y'"), -(10666, 0, "' '"), -(10667, 0, "'('"), -(10668, 0, "'A'"), -(10669, 0, "'n'"), -(10670, 0, "'d'"), -(10671, 0, "' '"), -(10672, 0, "'i'"), -(10673, 0, "'t'"), -(10668, 6, "'a'"), -(10669, 0, "'n'"), -(10670, 0, "'d'"), -(10671, 0, "' '"), -(10672, 0, "'i'"), -(10673, 0, "'t'"), -(10674, 0, "' '"), -(10675, 0, "'s'"), -(10676, 0, "'i'"), -(10676, 1, "''"), -(10675, 1, "''"), -(10675, 0, "'i'"), -(10676, 0, "'s'"), -(10677, 0, "' '"), -(10678, 0, "'a'"), -(10679, 0, "' '"), -(10680, 0, "'b'"), -(10681, 0, "'i'"), -(10682, 0, "'t'"), -(10683, 0, "' '"), -(10684, 0, "'h'"), -(10685, 0, "'a'"), -(10686, 0, "'i'"), -(10687, 0, "'r'"), -(10688, 0, "'y'"), -(10689, 0, "' '"), -(10690, 0, "'t'"), -(10691, 0, "'r'"), -(10692, 0, "'a'"), -(10693, 0, "'n'"), -(10694, 0, "'s'"), -(10695, 0, "'l'"), -(10696, 0, "'a'"), -(10697, 0, "'t'"), -(10698, 0, "'i'"), -(10699, 0, "'n'"), -(10700, 0, "'g'"), -(10701, 0, "' '"), -(10702, 0, "'t'"), -(10703, 0, "'h'"), -(10704, 0, "'e'"), -(10705, 0, "' '"), -(10706, 0, "'s'"), -(10707, 0, "'e'"), -(10708, 0, "'m'"), -(10709, 0, "'a'"), -(10710, 0, "'n'"), -(10711, 0, "'t'"), -(10712, 0, "'i'"), -(10713, 0, "'c'"), -(10714, 0, "'s'"), -(10715, 0, "')'"), -(10716, 1, "''"), -(10716, 0, "'.'"), -(10718, 1, "''"), -(10718, 0, "'B'"), -(10761, 0, "' '"), -(10762, 0, "'f'"), -(10763, 0, "'o'"), -(10764, 0, "'r'"), -(10765, 0, "' '"), -(10766, 0, "'a'"), -(10767, 0, "'u'"), -(10768, 0, "'t'"), -(10769, 0, "'o'"), -(10770, 0, "'m'"), -(10771, 0, "'e'"), -(10772, 0, "'r'"), -(10773, 0, "'g'"), -(10774, 0, "'e'"), -(10775, 0, "' '"), -(10776, 0, "'o'"), -(10777, 0, "'r'"), -(10778, 0, "' '"), -(10779, 0, "'y'"), -(10780, 0, "'j'"), -(10781, 0, "'s'"), -(10782, 0, "' '"), -(10782, 1, "''"), -(10822, 9, "'i'"), -(10823, 0, "'n'"), -(10824, 0, "'s'"), -(10825, 0, "'e'"), -(10826, 0, "'r'"), -(10827, 0, "'t'"), -(10828, 0, "' '"), -(10829, 0, "'f'"), -(10830, 0, "'u'"), -(10831, 0, "'n'"), -(10832, 0, "'c'"), -(10833, 0, "'t'"), -(10834, 0, "'i'"), -(10835, 0, "'o'"), -(10836, 0, "'n'"), -(10978, 38, "'T'"), -(10979, 0, "'h'"), -(10980, 0, "'i'"), -(10981, 0, "'s'"), -(10982, 0, "' '"), -(10983, 0, "'a'"), -(10984, 0, "'p'"), -(10985, 0, "'p'"), -(10986, 0, "'r'"), -(10987, 0, "'o'"), -(10988, 0, "'a'"), -(10989, 0, "'c'"), -(10990, 0, "'h'"), -(10991, 0, "' '"), -(10992, 0, "'i'"), -(10993, 0, "'s'"), -(10994, 0, "' '"), -(10995, 0, "'p'"), -(10996, 0, "'r'"), -(10997, 0, "'e'"), -(10998, 0, "'t'"), -(10999, 0, "'t'"), -(11000, 0, "'y'"), -(11001, 0, "' '"), -(11002, 0, "'b'"), -(11003, 0, "'e'"), -(11004, 0, "'a'"), -(11005, 0, "'u'"), -(11006, 0, "'t'"), -(11007, 0, "'i'"), -(11008, 0, "'f'"), -(11009, 0, "'u'"), -(11010, 0, "'l'"), -(11011, 12, "''"), -(10995, 7, "''"), -(10995, 0, "'pretty '"), -(10995, 7, "''"), -(11004, 0, "' '"), -(11005, 0, "'f'"), -(11006, 0, "'o'"), -(11007, 0, "'r'"), -(11008, 0, "' '"), -(11009, 0, "'l'"), -(11010, 0, "'o'"), -(11011, 0, "'t'"), -(11012, 0, "' '"), -(11013, 0, "'s'"), -(11014, 0, "'o'"), -(11015, 0, "'f'"), -(11016, 0, "' '"), -(11017, 0, "'r'"), -(11018, 0, "'e'"), -(11019, 0, "'a'"), -(11020, 0, "'s'"), -(11021, 0, "'o'"), -(11022, 0, "'n'"), -(11023, 0, "'s'"), -(11016, 1, "''"), -(11015, 1, "''"), -(11014, 1, "''"), -(11013, 1, "''"), -(11012, 1, "''"), -(11012, 0, "'s'"), -(11013, 0, "' '"), -(11014, 0, "'o'"), -(11015, 0, "'f'"), -(11016, 0, "' '"), -(11820, 0, "'n'"), -(11821, 0, "'5'"), -(11822, 0, "'.'"), -(11823, 0, "' '"), -(11824, 0, "'I'"), -(11825, 0, "'t'"), -(11826, 0, "'s'"), -(11827, 0, "' '"), -(11828, 0, "'f'"), -(11829, 0, "'a'"), -(11830, 0, "'s'"), -(11831, 0, "'t'"), -(11832, 0, "'e'"), -(11833, 0, "'r'"), -(11834, 0, "' '"), -(11835, 0, "'*'"), -(11836, 0, "'a'"), -(11837, 0, "'n'"), -(11838, 0, "'d'"), -(11839, 0, "'*'"), -(11840, 0, "' '"), -(11841, 0, "'s'"), -(11842, 0, "'i'"), -(11843, 0, "'m'"), -(11844, 0, "'p'"), -(11845, 0, "'l'"), -(11846, 0, "'e'"), -(11847, 0, "'r'"), -(11848, 0, "'.'"), -(11849, 0, "' '"), -(11850, 0, "'H'"), -(11851, 0, "'o'"), -(11852, 0, "'l'"), -(11853, 0, "'y'"), -(11854, 0, "' '"), -(11855, 0, "'g'"), -(11856, 0, "'r'"), -(11857, 0, "'a'"), -(11858, 0, "'i'"), -(11859, 0, "'l'"), -(11860, 0, "'.'"), -(11850, 0, "'T'"), -(11851, 0, "'h'"), -(11852, 0, "'a'"), -(11853, 0, "'t'"), -(11854, 0, "'s'"), -(11855, 0, "' '"), -(11856, 0, "'w'"), -(11857, 0, "'a'"), -(11858, 0, "'l'"), -(11858, 1, "''"), -(11857, 1, "''"), -(11856, 1, "''"), -(11856, 0, "'a'"), -(11857, 0, "'l'"), -(11858, 0, "'w'"), -(11859, 0, "'a'"), -(11860, 0, "'y'"), -(11861, 0, "'s'"), -(11862, 0, "' '"), -(11863, 0, "'t'"), -(11864, 0, "'h'"), -(11865, 0, "'e'"), -(11866, 0, "' '"), -(11867, 1, "''"), -(11867, 0, "'h'"), -(11850, 28, "'H'"), -(11851, 0, "'o'"), -(11852, 0, "'l'"), -(11853, 0, "'y'"), -(11854, 0, "' '"), -(11855, 0, "'g'"), -(11856, 0, "'r'"), -(11857, 0, "'a'"), -(11858, 0, "'i'"), -(11859, 0, "'l'"), -(11860, 0, "','"), -(11861, 0, "' '"), -(11862, 0, "'r'"), -(11863, 0, "'i'"), -(11864, 0, "'g'"), -(11865, 0, "'h'"), -(11866, 0, "'t'"), -(11867, 0, "' '"), -(11868, 0, "'t'"), -(11869, 0, "'h'"), -(11870, 0, "'e'"), -(11871, 0, "'r'"), -(11872, 0, "'e'"), -(11873, 0, "'.'"), -(11848, 26, "''"), -(11848, 0, "'.'"), -(11849, 28, "''"), -(11931, 10, "''"), -(11931, 0, "'I'"), -(11932, 0, "'t'"), -(11933, 0, "'s'"), -(11934, 0, "' '"), -(11897, 34, "'T'"), -(11898, 0, "'h'"), -(11899, 0, "'i'"), -(11900, 0, "'s'"), -(11901, 0, "' '"), -(11902, 0, "'a'"), -(11903, 0, "'p'"), -(11904, 0, "'p'"), -(11905, 0, "'r'"), -(11906, 0, "'o'"), -(11907, 0, "'a'"), -(11908, 0, "'c'"), -(11909, 0, "'h'"), -(11910, 0, "' '"), -(11911, 0, "'i'"), -(11912, 0, "'s'"), -(11913, 0, "' '"), -(11914, 0, "'a'"), -(11915, 0, "'b'"), -(11916, 0, "'o'"), -(11917, 0, "'u'"), -(11918, 0, "'t'"), -(11919, 3, "''"), -(11930, 0, "','"), -(11931, 0, "' '"), -(11932, 0, "'a'"), -(11933, 0, "'n'"), -(11934, 0, "'d'"), -(11935, 10, "''"), -(12302, 0, "'s'"), -(12303, 0, "'e'"), -(12434, 0, "','"), -(12435, 0, "' '"), -(12436, 0, "'s'"), -(12437, 0, "'o'"), -(12438, 0, "' '"), -(12439, 0, "'i'"), -(12440, 0, "'t'"), -(12441, 0, "'s'"), -(12436, 6, "''"), -(12435, 1, "''"), -(12434, 1, "''"), -(12434, 0, "'.'"), -(12435, 0, "' '"), -(12436, 0, "'T'"), -(12437, 0, "'h'"), -(12438, 0, "'e'"), -(12439, 0, "' '"), -(12440, 0, "'p'"), -(12441, 0, "'e'"), -(12442, 0, "'r'"), -(12443, 0, "'f'"), -(12444, 0, "'o'"), -(12445, 0, "'r'"), -(12446, 0, "'m'"), -(12447, 0, "'a'"), -(12448, 0, "'n'"), -(12449, 0, "'c'"), -(12450, 0, "'e'"), -(12451, 0, "' '"), -(12452, 0, "'d'"), -(12453, 0, "'i'"), -(12454, 0, "'f'"), -(12455, 0, "'f'"), -(12456, 0, "'e'"), -(12457, 0, "'r'"), -(12458, 0, "'e'"), -(12459, 0, "'n'"), -(12460, 0, "'c'"), -(12461, 0, "'e'"), -(12462, 0, "' '"), -(12463, 0, "'i'"), -(12464, 0, "'s'"), -(12465, 0, "' '"), -(12466, 0, "'n'"), -(12467, 0, "'e'"), -(12468, 0, "'v'"), -(12469, 0, "'r'"), -(12470, 0, "' '"), -(12471, 0, "'j'"), -(12471, 1, "''"), -(12470, 1, "''"), -(12469, 1, "''"), -(12469, 0, "'e'"), -(12470, 0, "'r'"), -(12471, 0, "' '"), -(12472, 0, "'j'"), -(12473, 0, "'u'"), -(12474, 0, "'s'"), -(12475, 0, "'t'"), -(12476, 0, "' '"), -(12477, 0, "'o'"), -(12478, 0, "'n'"), -(12479, 0, "'e'"), -(12480, 0, "' '"), -(12481, 0, "'t'"), -(12482, 0, "'h'"), -(12483, 0, "'i'"), -(12484, 0, "'n'"), -(12485, 0, "'g'"), -(12462, 0, "'s'"), -(12463, 0, "' '"), -(12464, 0, "'a'"), -(12465, 0, "'r'"), -(12466, 0, "'e'"), -(12467, 0, "'n'"), -(12468, 0, "'''"), -(12469, 0, "'t'"), -(12470, 9, "''"), -(12434, 1, "''"), -(12434, 0, "','"), -(12435, 0, "' '"), -(12436, 0, "'s'"), -(12437, 0, "'o'"), -(12439, 1, "''"), -(12439, 0, "'t'"), -(12479, 0, "'t'"), -(12480, 0, "'h'"), -(12481, 0, "'i'"), -(12482, 0, "'s'"), -(12483, 0, "' '"), -(12484, 4, "''"), -(12281, 0, "'>'"), -(12282, 0, "' '"), -(12283, 0, "'N'"), -(12284, 0, "'o'"), -(12285, 0, "'t'"), -(12286, 0, "'e'"), -(12287, 0, "':'"), -(12288, 0, "' '"), -(12289, 11, "'S'"), -(12289, 90, "''"), -(12398, 0, "' '"), -(12399, 0, "'Some of these performance improvements come from the fact I'm also not using immutablejs. '"), -(12399, 58, "''"), -(12430, 1, "''"), -(12430, 0, "' '"), -(12431, 0, "'h'"), -(12432, 0, "'e'"), -(12433, 0, "'r'"), -(12434, 0, "'e'"), -(12434, 1, "''"), -(12433, 1, "''"), -(12432, 1, "''"), -(12431, 1, "''"), -(12430, 1, "''"), -(12429, 1, "''"), -(12429, 0, "' '"), -(12430, 0, "'h'"), -(12431, 0, "'e'"), -(12432, 0, "'r'"), -(12433, 0, "'e'"), -(12434, 0, "' '"), -(12435, 0, "'-'"), -(12436, 0, "' '"), -(12437, 0, "'w'"), -(12438, 0, "'h'"), -(12439, 0, "'i'"), -(12440, 0, "'c'"), -(12441, 0, "'h'"), -(12442, 0, "' '"), -(12443, 0, "'w'"), -(12444, 0, "'i'"), -(12445, 0, "'l'"), -(12446, 0, "'l'"), -(12447, 0, "' '"), -(12448, 0, "'a'"), -(12449, 0, "'l'"), -(12450, 0, "'s'"), -(12451, 0, "'o'"), -(12452, 0, "' '"), -(12453, 0, "'m'"), -(12454, 0, "'a'"), -(12455, 0, "'k'"), -(12456, 0, "'e'"), -(12457, 0, "' '"), -(12458, 0, "'a'"), -(12459, 0, "' '"), -(12460, 0, "'b'"), -(12461, 0, "'i'"), -(12462, 0, "'g'"), -(12463, 0, "' '"), -(12464, 0, "'p'"), -(12465, 0, "'e'"), -(12466, 0, "'r'"), -(12467, 0, "'f'"), -(12468, 0, "'o'"), -(12469, 0, "'r'"), -(12470, 0, "'m'"), -(12471, 0, "'a'"), -(12472, 0, "'n'"), -(12473, 0, "'e'"), -(12474, 0, "' '"), -(12474, 1, "''"), -(12473, 1, "''"), -(12473, 0, "'c'"), -(12474, 0, "'e'"), -(12475, 0, "' '"), -(12476, 0, "'d'"), -(12477, 0, "'i'"), -(12478, 0, "'f'"), -(12479, 0, "'f'"), -(12480, 0, "'e'"), -(12481, 0, "'r'"), -(12482, 0, "'e'"), -(12483, 0, "'n'"), -(12484, 0, "'c'"), -(12485, 0, "'e'"), -(12486, 0, "'.'"), -(12443, 4, "'i'"), -(12444, 0, "'s'"), -(12454, 1, "''"), -(12454, 0, "'i'"), -(12455, 0, "'n'"), -(12456, 0, "'g'"), -(12464, 11, "''"), -(12464, 0, "'performance'"), -(12446, 0, "'p'"), -(12447, 0, "'r'"), -(12448, 0, "'o'"), -(12449, 0, "'b'"), -(12450, 0, "'a'"), -(12451, 0, "'b'"), -(12452, 0, "'l'"), -(12453, 0, "'y'"), -(12454, 0, "' '"), -(12473, 11, "'i'"), -(12474, 0, "'m'"), -(12475, 0, "'p'"), -(12476, 0, "'a'"), -(12477, 0, "'c'"), -(12478, 0, "'t'"), -(12479, 0, "' '"), -(12480, 0, "'o'"), -(12481, 0, "'n'"), -(12482, 0, "' '"), -(12483, 0, "'p'"), -(12484, 0, "'e'"), -(12485, 0, "'r'"), -(12486, 0, "'f'"), -(12487, 0, "'o'"), -(12488, 0, "'r'"), -(12489, 0, "'m'"), -(12490, 0, "'a'"), -(12491, 0, "'n'"), -(12492, 0, "'c'"), -(12493, 0, "'e'"), -(12494, 12, "''"), -(12494, 0, "'.'"), -(12520, 0, "'n'"), -(12520, 0, "'n'"), -(12521, 0, "'T'"), -(12522, 0, "'h'"), -(12523, 0, "'i'"), -(12524, 0, "'s'"), -(12525, 0, "' '"), -(12526, 0, "'i'"), -(12527, 0, "'s'"), -(12528, 0, "' '"), -(12529, 0, "'b'"), -(12530, 0, "'e'"), -(12531, 0, "'t'"), -(12532, 0, "'t'"), -(12533, 0, "'e'"), -(12534, 0, "'r'"), -(12535, 0, "','"), -(12536, 0, "' '"), -(12537, 0, "'b'"), -(12538, 0, "'u'"), -(12539, 0, "'t'"), -(12540, 0, "' '"), -(12541, 0, "'i'"), -(12542, 0, "'t'"), -(12543, 0, "'s'"), -(12544, 0, "' '"), -(12545, 0, "'s'"), -(12546, 0, "'t'"), -(12547, 0, "'i'"), -(12548, 0, "'l'"), -(12549, 0, "'l'"), -(12550, 0, "' '"), -(12551, 0, "'n'"), -(12552, 0, "'o'"), -(12553, 0, "'t'"), -(12554, 0, "' '"), -(12555, 0, "'*'"), -(12556, 0, "'f'"), -(12557, 0, "'a'"), -(12558, 0, "'s'"), -(12559, 0, "'t'"), -(12560, 0, "'*'"), -(12561, 0, "'.'"), -(12673, 0, "'n'"), -(12563, 1, "''"), -(12672, 0, "'nThis is better, but its still not *fast*.'"), -(12521, 42, "''"), -(12566, 0, "' '"), -(12567, 0, "'/'"), -(12568, 0, "' '"), -(12569, 0, "'a'"), -(12570, 0, "'b'"), -(12571, 0, "'s'"), -(12572, 0, "'t'"), -(12573, 0, "'r'"), -(12574, 0, "'a'"), -(12575, 0, "'c'"), -(12576, 0, "'t'"), -(12577, 0, "'i'"), -(12578, 0, "'o'"), -(12579, 0, "'n'"), -(12525, 0, "'t'"), -(12526, 0, "'h'"), -(12527, 0, "'a'"), -(12528, 0, "'t'"), -(12529, 0, "' '"), -(12546, 6, "'c'"), -(12547, 0, "'o'"), -(12548, 0, "'r'"), -(12549, 0, "'r'"), -(12550, 0, "'e'"), -(12551, 0, "'c'"), -(12552, 0, "'t'"), -(12553, 0, "' '"), -(12564, 12, "''"), -(12575, 7, "''"), -(12575, 15, "''"), -(12575, 0, "','"), -(12575, 1, "''"), -(12575, 0, "' '"), -(12576, 0, "'i'"), -(12577, 0, "'t'"), -(12578, 0, "'s'"), -(12579, 0, "' '"), -(12580, 0, "'t'"), -(12581, 0, "'i'"), -(12582, 0, "'m'"), -(12583, 0, "'e'"), -(12584, 0, "' '"), -(12585, 0, "'t'"), -(12586, 0, "'o'"), -(12587, 0, "' '"), -(12588, 12, "''"), -(12587, 1, "''"), -(12591, 0, "' '"), -(12592, 0, "'o'"), -(12593, 0, "'u'"), -(12594, 0, "'r'"), -(12594, 1, "''"), -(12593, 1, "''"), -(12592, 1, "''"), -(12591, 1, "''"), -(12521, 10, "'W'"), -(12567, 0, "','"), -(12568, 0, "' '"), -(12568, 1, "''"), -(12567, 1, "''"), -(12566, 1, "''"), -(12566, 0, "','"), -(12567, 0, "' '"), -(12568, 0, "'b'"), -(12569, 0, "'u'"), -(12570, 0, "'t'"), -(12571, 0, "' '"), -(12572, 0, "'t'"), -(12573, 0, "'h'"), -(12574, 0, "'e'"), -(12575, 0, "' '"), -(12576, 0, "'i'"), -(12577, 0, "'m'"), -(12578, 0, "'p'"), -(12579, 0, "'l'"), -(12580, 0, "'e'"), -(12581, 0, "'m'"), -(12582, 0, "'e'"), -(12583, 0, "'n'"), -(12584, 0, "'t'"), -(12585, 0, "'a'"), -(12586, 0, "'t'"), -(12587, 0, "'i'"), -(12588, 0, "'o'"), -(12589, 0, "'n'"), -(12590, 0, "' '"), -(12591, 0, "'i'"), -(12592, 0, "'s'"), -(12593, 0, "'s'"), -(12593, 1, "''"), -(12593, 0, "' '"), -(12594, 0, "'s'"), -(12595, 0, "'t'"), -(12596, 0, "'i'"), -(12597, 0, "'l'"), -(12598, 0, "'l'"), -(12599, 0, "' '"), -(12600, 0, "'n'"), -(12601, 0, "'o'"), -(12602, 0, "'t'"), -(12603, 0, "' '"), -(12604, 0, "'*'"), -(12605, 0, "'f'"), -(12606, 0, "'a'"), -(12607, 0, "'s'"), -(12608, 0, "'t'"), -(12609, 0, "'*'"), -(12610, 0, "'.'"), -(12611, 0, "' '"), -(12612, 1, "'I'"), -(12631, 0, "' '"), -(12632, 0, "'b'"), -(12633, 0, "'i'"), -(12634, 0, "'g'"), -(12656, 1, "''"), -(12656, 0, "'.'"), -(12657, 42, "''"), -(12657, 1, "''"), -(12656, 1, "''"), -(12656, 0, "':'"), -(12692, 0, "','"), -(12648, 8, "'b'"), -(12649, 0, "'o'"), -(12650, 0, "'t'"), -(12651, 0, "'t'"), -(12652, 0, "'l'"), -(12653, 0, "'e'"), -(12654, 0, "'n'"), -(12655, 0, "'e'"), -(12656, 0, "'c'"), -(12657, 0, "'k'"), -(12658, 0, "'s'"), -(12659, 0, "' '"), -(12660, 0, "'i'"), -(12661, 0, "'n'"), -(12662, 0, "' '"), -(12663, 0, "'t'"), -(12664, 0, "'h'"), -(12665, 0, "'i'"), -(12666, 0, "'s'"), -(12667, 0, "' '"), -(12668, 0, "'a'"), -(12669, 0, "'l'"), -(12670, 0, "'g'"), -(12671, 0, "'o'"), -(12672, 0, "'r'"), -(12673, 0, "'i'"), -(12674, 0, "'t'"), -(12675, 0, "'h'"), -(12676, 0, "'m'"), -(12757, 4, "'W'"), -(12861, 5, "''"), -(13177, 6, "'I'"), -(13282, 6, "''"), -(13427, 1, "''"), -(13427, 0, "'.'"), -(13428, 0, "' '"), -(13429, 0, "'W'"), -(13430, 0, "'e'"), -(13431, 0, "' '"), -(13432, 0, "'a'"), -(13433, 0, "'l'"), -(13434, 0, "'s'"), -(13435, 0, "'o'"), -(13436, 0, "' '"), -(13437, 0, "'n'"), -(13438, 0, "'e'"), -(13439, 0, "'e'"), -(13440, 0, "'d'"), -(13441, 0, "' '"), -(13442, 0, "'t'"), -(13443, 0, "'o'"), -(13444, 0, "' '"), -(13445, 0, "'f'"), -(13446, 0, "'i'"), -(13447, 0, "'g'"), -(13448, 0, "'u'"), -(13449, 0, "'r'"), -(13450, 0, "'e'"), -(13451, 0, "'o'"), -(13452, 0, "'u'"), -(13453, 0, "'t'"), -(13454, 0, "' '"), -(13454, 1, "''"), -(13453, 1, "''"), -(13452, 1, "''"), -(13451, 1, "''"), -(13450, 1, "''"), -(13450, 0, "' '"), -(13450, 1, "''"), -(13450, 0, "'e'"), -(13451, 0, "' '"), -(13452, 0, "'o'"), -(13453, 0, "'u'"), -(13454, 0, "'t'"), -(13455, 0, "' '"), -(13456, 0, "'t'"), -(13457, 0, "'h'"), -(13458, 0, "'e'"), -(13459, 0, "' '"), -(13460, 0, "'p'"), -(13461, 0, "'a'"), -(13462, 0, "'r'"), -(13463, 0, "'e'"), -(13464, 0, "'n'"), -(13465, 0, "'t'"), -(13466, 0, "' '"), -(13467, 0, "'o'"), -(13468, 0, "'f'"), -(13469, 0, "' '"), -(13470, 0, "'t'"), -(13471, 0, "'h'"), -(13472, 0, "'i'"), -(13472, 1, "''"), -(13472, 0, "'e'"), -(13473, 0, "' '"), -(13474, 0, "'n'"), -(13475, 0, "'e'"), -(13476, 0, "'w'"), -(13477, 0, "' '"), -(13478, 0, "'i'"), -(13479, 0, "'t'"), -(13480, 0, "'e'"), -(13481, 0, "'m'"), -(13482, 0, "'.'"), -(13483, 41, "''"), -(13445, 0, "'t'"), -(13446, 0, "'a'"), -(13447, 0, "'k'"), -(13448, 0, "'e'"), -(13449, 0, "' '"), -(13450, 0, "'a'"), -(13451, 0, "' '"), -(13452, 0, "'l'"), -(13453, 0, "'o'"), -(13454, 0, "'o'"), -(13455, 0, "'k'"), -(13456, 0, "' '"), -(13457, 0, "'a'"), -(13458, 0, "'t'"), -(13459, 0, "' '"), -(13460, 0, "'n'"), -(13461, 0, "'e'"), -(13462, 0, "'a'"), -(13463, 0, "'r'"), -(13464, 0, "'b'"), -(13465, 0, "'y'"), -(13466, 0, "' '"), -(13467, 0, "'o'"), -(13468, 0, "'p'"), -(13469, 0, "'e'"), -(13470, 0, "'r'"), -(13471, 0, "'a'"), -(13472, 0, "'t'"), -(13473, 0, "'i'"), -(13474, 0, "'o'"), -(13475, 0, "'n'"), -(13476, 0, "'s'"), -(13477, 0, "' '"), -(13478, 0, "'t'"), -(13479, 0, "'o'"), -(13480, 0, "' '"), -(13523, 0, "'t'"), -(13524, 0, "'h'"), -(13524, 1, "''"), -(13523, 1, "''"), -(13523, 0, "' '"), -(13524, 0, "'t'"), -(13525, 0, "'h'"), -(13526, 0, "'e'"), -(13527, 0, "' '"), -(13528, 0, "'u'"), -(13529, 0, "'s'"), -(13530, 0, "'e'"), -(13531, 0, "'r'"), -(13532, 5, "''"), -(13539, 0, "'s'"), -(13640, 1, "''"), -(13640, 0, "'.'"), -(13687, 7, "'t'"), -(13684, 4, "'t'"), -(13685, 0, "'h'"), -(13686, 0, "'e'"), -(13687, 0, "' '"), -(13688, 0, "'c'"), -(13689, 0, "'o'"), -(13690, 0, "'d'"), -(13691, 0, "' '"), -(13692, 0, "'d'"), -(13692, 1, "''"), -(13691, 1, "''"), -(13691, 0, "'e'"), -(13692, 0, "' '"), -(13693, 0, "'d'"), -(13694, 0, "'o'"), -(13695, 0, "'e'"), -(13696, 0, "'s'"), -(13697, 0, "' '"), -(13698, 0, "'t'"), -(13699, 0, "'h'"), -(13700, 0, "'i'"), -(13701, 0, "'s'"), -(13866, 0, "' '"), -(13867, 0, "'*'"), -(13868, 0, "'a'"), -(13869, 0, "'f'"), -(13870, 0, "'t'"), -(13871, 0, "'e'"), -(13872, 0, "'r'"), -(13873, 0, "'*'"), -(13874, 0, "' '"), -(13875, 0, "'t'"), -(13876, 0, "'h'"), -(13877, 0, "'e'"), -(13878, 0, "' '"), -(13879, 0, "'n'"), -(13880, 0, "'e'"), -(13881, 0, "'w'"), -(13882, 0, "' '"), -(13883, 0, "'i'"), -(13884, 0, "'t'"), -(13885, 0, "'e'"), -(13886, 0, "'m'"), -(13906, 0, "' '"), -(13907, 0, "'i'"), -(13908, 0, "'n'"), -(13909, 0, "' '"), -(13910, 0, "'t'"), -(13911, 0, "'h'"), -(13912, 0, "'e'"), -(13913, 0, "' '"), -(13914, 0, "'a'"), -(13915, 0, "'r'"), -(13916, 0, "'r'"), -(13917, 0, "'a'"), -(13918, 0, "'y'"), -(13965, 6, "''"), -(13964, 1, "''"), -(13963, 1, "''"), -(13963, 0, "'n'"), -(13964, 0, "'n'"), -(13965, 0, "'>'"), -(13966, 0, "' '"), -(13967, 0, "'T'"), -(13967, 1, "''"), -(13966, 1, "''"), -(13965, 1, "''"), -(13964, 1, "''"), -(13963, 1, "''"), -(13963, 0, "' '"), -(13964, 0, "'('"), -(13965, 0, "'I'"), -(13966, 0, "'''"), -(13967, 0, "'m'"), -(13968, 0, "' '"), -(13965, 0, "'W'"), -(13966, 0, "'e'"), -(13967, 0, "'l'"), -(13968, 0, "'l'"), -(13969, 0, "','"), -(13970, 0, "' '"), -(13983, 11, "' '"), -(13984, 0, "'v'"), -(13985, 0, "'8'"), -(13985, 1, "''"), -(13984, 1, "''"), -(13984, 0, "'V'"), -(13985, 0, "'8'"), -(13986, 9, "''"), -(14012, 13, "'h'"), -(14013, 0, "'e'"), -(14014, 0, "'r'"), -(14015, 0, "'e'"), -(14016, 1, "''"), -(14016, 0, "'.'"), -(14018, 5, "'W'"), -(13953, 9, "'i'"), -(13954, 0, "'t'"), -(13955, 0, "'s'"), -(13956, 0, "' '"), -(13957, 0, "'s'"), -(13958, 0, "'t'"), -(13959, 0, "'i'"), -(13960, 0, "'l'"), -(13961, 0, "'l'"), -(13962, 0, "' '"), -(13963, 0, "'p'"), -(13964, 0, "'r'"), -(13965, 0, "'o'"), -(13966, 0, "'b'"), -(13967, 0, "'a'"), -(13968, 0, "'b'"), -(13969, 0, "'l'"), -(13970, 0, "'y'"), -(13971, 0, "' '"), -(13972, 0, "'s'"), -(13973, 0, "'l'"), -(13974, 0, "'o'"), -(13975, 0, "'w'"), -(13976, 0, "' '"), -(13977, 0, "'w'"), -(13978, 0, "'h'"), -(13979, 0, "'e'"), -(13980, 0, "'n'"), -(13981, 0, "' '"), -(13982, 0, "'w'"), -(13983, 0, "'e'"), -(13984, 0, "'''"), -(13985, 0, "'r'"), -(13986, 0, "'e'"), -(13987, 0, "' '"), -(13988, 0, "'m'"), -(13989, 0, "'o'"), -(13990, 0, "'v'"), -(13991, 0, "'i'"), -(13992, 0, "'n'"), -(13993, 0, "'g'"), -(13994, 0, "' '"), -(13995, 0, "'t'"), -(13996, 0, "'h'"), -(13997, 0, "'o'"), -(13998, 0, "'u'"), -(13999, 0, "'s'"), -(14000, 0, "'a'"), -(14001, 0, "'n'"), -(14002, 0, "'d'"), -(14003, 0, "'s'"), -(14004, 0, "' '"), -(14005, 0, "'o'"), -(14006, 0, "'f'"), -(14007, 0, "' '"), -(14008, 0, "'i'"), -(14009, 0, "'t'"), -(14010, 0, "'e'"), -(14011, 0, "'m'"), -(14012, 0, "'s'"), -(14016, 6, "''"), -(14016, 0, "'Well, '"), -(14016, 4, "'A'"), -(14017, 0, "'s'"), -(14018, 0, "'i'"), -(14019, 0, "'d'"), -(14020, 0, "'e'"), -(14021, 0, "':'"), -(14022, 1, "''"), -(14035, 0, "' '"), -(14036, 0, "'h'"), -(14037, 0, "'e'"), -(14038, 0, "'r'"), -(14039, 0, "'e'"), -(14040, 0, "' '"), -(14041, 0, "'t'"), -(14042, 0, "'h'"), -(14043, 0, "'a'"), -(14044, 0, "'t'"), -(14073, 5, "''"), -(14075, 0, "'u'"), -(14075, 1, "''"), -(14075, 0, "'g'"), -(14076, 0, "'u'"), -(14077, 0, "'t'"), -(14077, 1, "''"), -(14076, 1, "''"), -(14075, 1, "''"), -(14075, 0, "'B'"), -(14076, 0, "'u'"), -(14077, 0, "'t'"), -(14078, 0, "' '"), -(14079, 1, "''"), -(14079, 0, "'w'"), -(14116, 5, "'i'"), -(14117, 0, "'n'"), -(14118, 0, "' '"), -(14119, 0, "'t'"), -(14120, 0, "'h'"), -(14120, 1, "''"), -(14119, 1, "''"), -(14119, 0, "'th'"), -(14118, 3, "''"), -(14116, 2, "'there'"), -(13995, 9, "'a'"), -(13995, 1, "''"), -(13995, 0, "'s'"), -(13996, 0, "'o'"), -(13997, 0, "' '"), -(13998, 0, "'m'"), -(13999, 0, "'a'"), -(14000, 0, "'n'"), -(14001, 0, "'y'"), -(14002, 3, "''"), -(13938, 9, "' '"), -(13939, 0, "'i'"), -(13940, 0, "'n'"), -(13941, 0, "' '"), -(13942, 0, "'n'"), -(13943, 0, "'a'"), -(13944, 0, "'t'"), -(13945, 0, "'i'"), -(13946, 0, "'v'"), -(13947, 0, "'e'"), -(13948, 0, "' '"), -(13949, 0, "'c'"), -(13950, 0, "'o'"), -(13951, 0, "'d'"), -(13952, 0, "'e'"), -(14148, 0, "' '"), -(14149, 0, "'i'"), -(14150, 0, "'n'"), -(14126, 25, "'E'"), -(14127, 0, "'v'"), -(14128, 0, "'e'"), -(14129, 0, "'r'"), -(14130, 0, "'y'"), -(14131, 0, "' '"), -(14132, 0, "'t'"), -(14133, 0, "'i'"), -(14134, 0, "'m'"), -(14135, 0, "'e'"), -(14136, 0, "' '"), -(14137, 0, "'w'"), -(14138, 0, "'e'"), -(14139, 0, "' '"), -(14140, 0, "'i'"), -(14141, 0, "'n'"), -(14142, 0, "'s'"), -(14143, 0, "'e'"), -(14144, 0, "'r'"), -(14145, 0, "'t'"), -(14146, 0, "' '"), -(14147, 0, "'i'"), -(14148, 0, "'n'"), -(14149, 0, "'t'"), -(14150, 0, "'o'"), -(14151, 0, "' '"), -(14152, 0, "'a'"), -(14153, 0, "' '"), -(14154, 0, "'d'"), -(14155, 0, "'o'"), -(14156, 0, "'c'"), -(14157, 0, "'u'"), -(14158, 0, "'m'"), -(14159, 0, "'e'"), -(14160, 0, "'n'"), -(14161, 0, "'t'"), -(14162, 0, "' '"), -(14163, 0, "'w'"), -(14164, 0, "'i'"), -(14165, 0, "'t'"), -(14166, 0, "'h'"), -(14167, 0, "' '"), -(14168, 0, "'n'"), -(14169, 0, "' '"), -(14170, 0, "'i'"), -(14171, 0, "'t'"), -(14172, 0, "'e'"), -(14173, 0, "'m'"), -(14174, 0, "'s'"), -(14201, 53, "''"), -(14201, 0, "'n'"), -(14202, 0, "' '"), -(14203, 0, "'s'"), -(14204, 0, "'t'"), -(14205, 0, "'e'"), -(14206, 0, "'p'"), -(14207, 0, "'s'"), -(14208, 0, "' '"), -(14209, 0, "'o'"), -(14210, 0, "'f'"), -(14211, 0, "' '"), -(14212, 0, "'w'"), -(14213, 0, "'o'"), -(14214, 0, "'r'"), -(14215, 0, "'k'"), -(14168, 0, "'*'"), -(14170, 0, "'*'"), -(14203, 0, "'*'"), -(14205, 0, "'*'"), -(14212, 8, "''"), -(14221, 21, "''"), -(14221, 0, "'e'"), -(14222, 0, "'e'"), -(14222, 1, "''"), -(14222, 0, "'v'"), -(14223, 0, "'e'"), -(14224, 0, "'r'"), -(14225, 0, "'y'"), -(14226, 0, "' '"), -(14227, 0, "'t'"), -(14228, 0, "'i'"), -(14229, 0, "'m'"), -(14230, 0, "'e'"), -(14231, 0, "' '"), -(14232, 0, "'w'"), -(14233, 0, "'e'"), -(14234, 0, "' '"), -(14235, 0, "'i'"), -(14236, 0, "'n'"), -(14237, 0, "'s'"), -(14238, 0, "'e'"), -(14239, 0, "'r'"), -(14240, 0, "'t'"), -(14241, 0, "' '"), -(14242, 0, "'i'"), -(14243, 0, "'n'"), -(14244, 0, "'t'"), -(14245, 0, "'o'"), -(14246, 0, "' '"), -(14247, 0, "'a'"), -(14248, 0, "' '"), -(14249, 0, "'d'"), -(14250, 0, "'o'"), -(14251, 0, "'c'"), -(14252, 0, "'u'"), -(14253, 0, "'m'"), -(14254, 0, "'e'"), -(14255, 0, "'n'"), -(14256, 0, "'t'"), -(14257, 0, "' '"), -(14258, 0, "'w'"), -(14259, 0, "'h'"), -(14260, 0, "'e'"), -(14261, 0, "'r'"), -(14262, 0, "'e'"), -(14263, 0, "' '"), -(14264, 0, "'t'"), -(14265, 0, "'h'"), -(14266, 0, "'e'"), -(14267, 0, "'r'"), -(14268, 0, "'e'"), -(14269, 0, "' '"), -(14270, 0, "'h'"), -(14271, 0, "'a'"), -(14272, 0, "'v'"), -(14273, 0, "'e'"), -(14287, 0, "'*'"), -(14288, 0, "'n'"), -(14289, 0, "'*'"), -(14290, 0, "' '"), -(14291, 0, "'i'"), -(14292, 0, "'t'"), -(14293, 0, "'e'"), -(14294, 0, "'m'"), -(14295, 0, "'s'"), -(14296, 0, "' '"), -(14312, 0, "' '"), -(14313, 0, "'-'"), -(14314, 0, "' '"), -(14315, 0, "'d'"), -(14315, 1, "''"), -(14314, 1, "''"), -(14313, 1, "''"), -(14312, 1, "''"), -(14312, 0, "'.'"), -(14313, 0, "' '"), -(14314, 0, "'D'"), -(14314, 1, "''"), -(14313, 1, "''"), -(14312, 1, "''"), -(14312, 0, "','"), -(14313, 0, "' '"), -(14314, 0, "'b'"), -(14315, 0, "'e'"), -(14316, 0, "'c'"), -(14317, 0, "'a'"), -(14318, 0, "'u'"), -(14319, 0, "'s'"), -(14320, 0, "'e'"), -(14321, 0, "' '"), -(14322, 0, "'d'"), -(14323, 0, "'e'"), -(14324, 0, "'l'"), -(14325, 0, "'e'"), -(14326, 0, "'t'"), -(14327, 0, "'e'"), -(14328, 0, "'d'"), -(14329, 0, "' '"), -(14330, 0, "'i'"), -(14331, 0, "'t'"), -(14332, 0, "'e'"), -(14333, 0, "'m'"), -(14334, 0, "'s'"), -(14335, 0, "' '"), -(14336, 0, "'a'"), -(14337, 0, "'r'"), -(14338, 0, "'e'"), -(14339, 0, "' '"), -(14340, 0, "'n'"), -(14341, 0, "'e'"), -(14342, 0, "'v'"), -(14343, 0, "'e'"), -(14344, 0, "'r'"), -(14345, 0, "' '"), -(14346, 0, "'r'"), -(14347, 0, "'e'"), -(14348, 0, "'a'"), -(14349, 0, "'l'"), -(14350, 0, "'l'"), -(14351, 0, "'y'"), -(14352, 0, "' '"), -(14353, 0, "'r'"), -(14354, 0, "'e'"), -(14355, 0, "'m'"), -(14356, 0, "'o'"), -(14357, 0, "'v'"), -(14358, 0, "'e'"), -(14359, 0, "'d'"), -(14366, 0, "' '"), -(14367, 0, "'a'"), -(14368, 0, "'l'"), -(14369, 0, "'g'"), -(14370, 0, "'o'"), -(14371, 0, "'r'"), -(14372, 0, "'i'"), -(14373, 0, "'t'"), -(14374, 0, "'h'"), -(14375, 0, "'m'"), -(14422, 1, "''"), -(14422, 0, "' '"), -(14124, 0, "'n'"), -(14125, 0, "'n'"), -(14126, 0, "'I'"), -(14127, 0, "'n'"), -(14128, 0, "'s'"), -(14129, 0, "'e'"), -(14130, 0, "'r'"), -(14131, 0, "'t'"), -(14132, 0, "' '"), -(14132, 1, "''"), -(14132, 0, "'i'"), -(14133, 0, "'n'"), -(14134, 0, "'g'"), -(14135, 0, "' '"), -(14136, 0, "'a'"), -(14137, 0, "'n'"), -(14138, 0, "' '"), -(14139, 0, "'i'"), -(14140, 0, "'t'"), -(14141, 0, "'e'"), -(14142, 0, "'m'"), -(14143, 0, "' '"), -(14144, 0, "'w'"), -(14145, 0, "'i'"), -(14146, 0, "'l'"), -(14147, 0, "'l'"), -(14148, 0, "' '"), -(14149, 0, "'t'"), -(14150, 0, "'a'"), -(14151, 0, "'k'"), -(14144, 8, "'i'"), -(14145, 0, "'n'"), -(14146, 0, "'t'"), -(14147, 0, "'o'"), -(14148, 0, "' '"), -(14149, 0, "'a'"), -(14150, 0, "' '"), -(14151, 0, "'d'"), -(14152, 0, "'o'"), -(14153, 0, "'c'"), -(14154, 0, "'u'"), -(14155, 0, "'m'"), -(14156, 0, "'e'"), -(14157, 0, "'n'"), -(14158, 0, "'t'"), -(14159, 38, "''"), -(14174, 35, "''"), -(14174, 0, "' '"), -(14174, 1, "''"), -(14174, 0, "', the computer does about *n* steps'"), -(14174, 25, "' '"), -(14175, 0, "'w'"), -(14176, 0, "'i'"), -(14177, 0, "'l'"), -(14178, 0, "'l'"), -(14179, 0, "' '"), -(14180, 0, "'t'"), -(14181, 0, "'a'"), -(14182, 0, "'k'"), -(14183, 0, "'e'"), -(14196, 5, "'N'"), -(14197, 0, "'o'"), -(14198, 0, "'p'"), -(14199, 0, "'e'"), -(14200, 0, "','"), -(14201, 0, "' '"), -(14202, 0, "'i'"), -(14203, 0, "'t'"), -(14204, 0, "'s'"), -(14205, 0, "' '"), -(14206, 0, "'w'"), -(14207, 0, "'o'"), -(14208, 0, "'r'"), -(14209, 0, "'s'"), -(14210, 0, "'e'"), -(14211, 0, "' '"), -(14212, 0, "'t'"), -(14213, 0, "'h'"), -(14214, 0, "'a'"), -(14215, 0, "'n'"), -(14216, 0, "' '"), -(14217, 0, "'t'"), -(14218, 0, "'h'"), -(14219, 0, "'a'"), -(14220, 0, "'t'"), -(14221, 0, "'.'"), -(14222, 15, "''"), -(14223, 1, "''"), -(14223, 0, "'I'"), -(14229, 0, "'i'"), -(14230, 0, "'n'"), -(14231, 0, "'g'"), -(14276, 1, "''"), -(14266, 1, "''"), -(14266, 0, "'*'"), -(14276, 0, "'*'"), -(14287, 16, "''"), -(14221, 0, "' '"), -(14222, 0, "'b'"), -(14223, 0, "'e'"), -(14224, 0, "'a'"), -(14225, 0, "'u'"), -(14225, 1, "''"), -(14224, 1, "''"), -(14224, 0, "'c'"), -(14225, 0, "'a'"), -(14226, 0, "'u'"), -(14227, 0, "'s'"), -(14228, 0, "'e'"), -(14229, 0, "' '"), -(14230, 0, "'d'"), -(14231, 0, "'e'"), -(14232, 0, "'l'"), -(14233, 0, "'e'"), -(14234, 0, "'t'"), -(14235, 0, "'e'"), -(14236, 0, "'d'"), -(14237, 0, "' '"), -(14238, 0, "'i'"), -(14239, 0, "'t'"), -(14240, 0, "'e'"), -(14241, 0, "'m'"), -(14242, 0, "'s'"), -(14243, 0, "' '"), -(14244, 0, "'a'"), -(14245, 0, "'r'"), -(14246, 0, "'e'"), -(14247, 0, "'n'"), -(14248, 0, "'''"), -(14249, 0, "'t'"), -(14250, 0, "' '"), -(14251, 0, "'r'"), -(14252, 0, "'e'"), -(14253, 0, "'a'"), -(14254, 0, "'l'"), -(14255, 0, "'l'"), -(14256, 0, "'y'"), -(14257, 0, "' '"), -(14258, 0, "'r'"), -(14259, 0, "'e'"), -(14260, 0, "'m'"), -(14261, 0, "'o'"), -(14262, 0, "'v'"), -(14263, 0, "'e'"), -(14264, 0, "'d'"), -(14331, 48, "''"), -(14331, 0, "' '"), -(14332, 0, "'w'"), -(14333, 0, "'i'"), -(14334, 0, "'l'"), -(14335, 0, "'l'"), -(14336, 0, "' '"), -(14337, 0, "'t'"), -(14338, 0, "'a'"), -(14339, 0, "'k'"), -(14340, 0, "'e'"), -(14341, 0, "' '"), -(14342, 0, "'n'"), -(14343, 0, "' '"), -(14344, 0, "'s'"), -(14345, 0, "'t'"), -(14346, 0, "'e'"), -(14347, 0, "'p'"), -(14348, 0, "'s'"), -(14342, 0, "'*'"), -(14344, 0, "'*'"), -(14414, 0, "'I'"), -(14415, 0, "'n'"), -(14416, 0, "' '"), -(14417, 0, "'B'"), -(14418, 0, "'i'"), -(14419, 0, "'g'"), -(14420, 0, "'-'"), -(14421, 0, "'O'"), -(14422, 0, "' '"), -(14423, 0, "'n'"), -(14424, 0, "'o'"), -(14425, 0, "'t'"), -(14426, 0, "'a'"), -(14427, 0, "'t'"), -(14428, 0, "'i'"), -(14429, 0, "'o'"), -(14430, 0, "'n'"), -(14431, 0, "','"), -(14432, 0, "' '"), -(14433, 1, "''"), -(14433, 0, "'i'"), -(14466, 0, "'*'"), -(14473, 0, "'*'"), -(14443, 0, "'*'"), -(14445, 0, "'*'"), -(14477, 0, "'n'"), -(14498, 0, "'n'"), -(14498, 0, "'n'"), -(14499, 0, "'C'"), -(14500, 0, "'a'"), -(14501, 0, "'n'"), -(14502, 0, "' '"), -(14503, 0, "'w'"), -(14504, 0, "'e'"), -(14505, 0, "' '"), -(14506, 0, "'f'"), -(14507, 0, "'i'"), -(14508, 0, "'x'"), -(14509, 0, "' '"), -(14510, 0, "'t'"), -(14511, 0, "'h'"), -(14512, 0, "'i'"), -(14513, 0, "'s'"), -(14514, 0, "'?'"), -(14515, 0, "' '"), -(14516, 0, "'Y'"), -(14517, 0, "'e'"), -(14518, 0, "'s'"), -(14519, 0, "' '"), -(14520, 0, "'w'"), -(14521, 0, "'e'"), -(14522, 0, "' '"), -(14523, 0, "'c'"), -(14524, 0, "'a'"), -(14525, 0, "'n'"), -(14526, 0, "'!'"), -(14529, 0, "'W'"), -(14530, 0, "'e'"), -(14531, 0, "' '"), -(14532, 0, "'n'"), -(14533, 0, "'e'"), -(14534, 0, "'e'"), -(14535, 0, "'d'"), -(14536, 0, "' '"), -(14537, 0, "'t'"), -(14537, 1, "''"), -(14529, 8, "''"), -(14962, 0, "','"), -(14963, 0, "' '"), -(14964, 0, "'w'"), -(14965, 0, "'i'"), -(14966, 0, "'t'"), -(14967, 0, "'h'"), -(14968, 0, "'o'"), -(14969, 0, "'u'"), -(14970, 0, "'t'"), -(14971, 0, "' '"), -(14972, 0, "'s'"), -(14973, 0, "'l'"), -(14974, 0, "'i'"), -(14975, 0, "'d'"), -(14976, 0, "'i'"), -(14977, 0, "'n'"), -(14978, 0, "'g'"), -(14979, 0, "' '"), -(14972, 8, "'c'"), -(14973, 0, "'o'"), -(14974, 0, "'p'"), -(14975, 0, "'y'"), -(14976, 0, "'i'"), -(14977, 0, "'n'"), -(14978, 0, "'g'"), -(14979, 0, "' '"), -(14980, 0, "'a'"), -(14981, 0, "'l'"), -(14982, 0, "'l'"), -(14983, 0, "' '"), -(14984, 0, "'t'"), -(14985, 0, "'h'"), -(14986, 0, "'e'"), -(14987, 0, "' '"), -(14988, 0, "'e'"), -(14989, 0, "'x'"), -(14990, 0, "'i'"), -(14991, 0, "'s'"), -(14992, 0, "'t'"), -(14993, 0, "'i'"), -(14994, 0, "'n'"), -(14995, 0, "'g'"), -(14996, 0, "' '"), -(14997, 0, "'i'"), -(14998, 0, "'t'"), -(14999, 0, "'e'"), -(15000, 0, "'m'"), -(15001, 0, "'s'"), -(15002, 0, "' '"), -(15003, 0, "'a'"), -(15004, 0, "'r'"), -(15005, 0, "'o'"), -(15006, 0, "'u'"), -(15007, 0, "'n'"), -(15008, 0, "'d'"), -(15009, 7, "''"), -(15009, 0, "'.'"), -(15011, 1, "''"), -(15011, 0, "'W'"), -(15067, 0, "' '"), -(15068, 0, "'-'"), -(15069, 0, "' '"), -(15070, 0, "'b'"), -(15071, 0, "'e'"), -(15072, 0, "'c'"), -(15073, 0, "'a'"), -(15074, 0, "'u'"), -(15075, 0, "'s'"), -(15076, 0, "'e'"), -(15077, 0, "' '"), -(15078, 0, "'l'"), -(15079, 0, "'i'"), -(15080, 0, "'n'"), -(15081, 0, "'k'"), -(15082, 0, "'e'"), -(15083, 0, "'d'"), -(15084, 0, "' '"), -(15085, 0, "'l'"), -(15086, 0, "'i'"), -(15087, 0, "'s'"), -(15088, 0, "'t'"), -(15089, 0, "'s'"), -(15090, 0, "' '"), -(15091, 0, "'a'"), -(15092, 0, "'l'"), -(15093, 0, "'l'"), -(15094, 0, "'o'"), -(15095, 0, "'w'"), -(15096, 0, "' '"), -(15097, 0, "'i'"), -(15098, 0, "'n'"), -(15099, 0, "'s'"), -(15100, 0, "'e'"), -(15101, 0, "'r'"), -(15091, 11, "'c'"), -(15091, 1, "'allow inser'"), -(15102, 0, "'t'"), -(15103, 0, "'s'"), -(15104, 0, "' '"), -(15105, 0, "'i'"), -(15106, 0, "'n'"), -(15107, 0, "' '"), -(15108, 0, "'t'"), -(15109, 0, "'h'"), -(15110, 0, "'e'"), -(15111, 0, "' '"), -(15112, 0, "'m'"), -(15113, 0, "'i'"), -(15114, 0, "'d'"), -(15115, 0, "'d'"), -(15116, 0, "'l'"), -(15117, 0, "'e'"), -(15118, 0, "' '"), -(15119, 0, "'i'"), -(15120, 0, "'n'"), -(15121, 0, "' '"), -(15122, 0, "'O'"), -(15123, 0, "'('"), -(15124, 0, "'1'"), -(15125, 0, "')'"), -(15126, 0, "' '"), -(15127, 0, "'t'"), -(15128, 0, "'i'"), -(15129, 0, "'m'"), -(15130, 0, "'e'"), -(15134, 0, "'W'"), -(15135, 0, "'e'"), -(15136, 0, "'l'"), -(15137, 0, "'l'"), -(15138, 0, "','"), -(15139, 0, "' '"), -(15140, 1, "''"), -(15140, 0, "'i'"), -(15132, 79, "''"), -(15137, 0, "' '"), -(15138, 0, "'a'"), -(15139, 0, "'d'"), -(15140, 0, "'d'"), -(15141, 0, "'s'"), -(15142, 4, "''"), -(15180, 18, "'t'"), -(15181, 0, "'h'"), -(15182, 0, "'i'"), -(15183, 0, "'n'"), -(15184, 0, "'g'"), -(15800, 18, "''"), -(15800, 0, "'A'"), -(15801, 0, "'a'"), -(15802, 0, "'a'"), -(15803, 0, "'h'"), -(15804, 0, "' '"), -(15805, 1, "''"), -(15805, 0, "'f'"), -(15895, 0, "'.'"), -(15896, 0, "' '"), -(15897, 0, "'C'"), -(15898, 0, "'o'"), -(15899, 0, "'l'"), -(15900, 0, "'l'"), -(15897, 4, "'W'"), -(15898, 0, "'e'"), -(15899, 0, "' '"), -(15900, 0, "'c'"), -(15901, 0, "'a'"), -(15902, 0, "'n'"), -(15903, 0, "' '"), -(15904, 0, "'o'"), -(15905, 0, "'n'"), -(15906, 0, "'l'"), -(15907, 0, "'y'"), -(15908, 0, "' '"), -(15909, 0, "'c'"), -(15910, 0, "'o'"), -(15911, 0, "'l'"), -(15912, 0, "'l'"), -(15913, 0, "'a'"), -(15914, 0, "'p'"), -(15915, 0, "'s'"), -(15916, 0, "'e'"), -(15917, 0, "' '"), -(15918, 0, "'r'"), -(15919, 0, "'u'"), -(15920, 0, "'n'"), -(15921, 0, "'s'"), -(15922, 0, "' '"), -(15923, 0, "'o'"), -(15924, 0, "'f'"), -(15925, 0, "' '"), -(15926, 0, "'i'"), -(15927, 0, "'t'"), -(15928, 0, "'e'"), -(15929, 0, "'m'"), -(15930, 0, "'s'"), -(15931, 0, "' '"), -(15932, 18, "''"), -(15931, 1, "''"), -(15951, 8, "''"), -(15937, 14, "'t'"), -(15938, 0, "'h'"), -(15939, 0, "'e'"), -(15940, 0, "' '"), -(15941, 0, "'i'"), -(15942, 0, "'D'"), -(15942, 1, "''"), -(15941, 1, "''"), -(15941, 0, "'I'"), -(15942, 0, "'D'"), -(15943, 0, "'s'"), -(15944, 0, "' '"), -(15945, 0, "'a'"), -(15946, 0, "'n'"), -(15947, 0, "'d'"), -(15948, 0, "' '"), -(15949, 0, "'p'"), -(15950, 0, "'a'"), -(15951, 0, "'r'"), -(15952, 0, "'e'"), -(15953, 0, "'n'"), -(15954, 0, "'t'"), -(15955, 0, "'s'"), -(15956, 0, "' '"), -(15957, 0, "'a'"), -(15958, 0, "'r'"), -(15959, 0, "'e'"), -(15960, 0, "' '"), -(15961, 0, "'s'"), -(15962, 0, "'e'"), -(15963, 0, "'q'"), -(15964, 0, "'u'"), -(15965, 0, "'e'"), -(15966, 0, "'n'"), -(15967, 0, "'t'"), -(15968, 0, "'i'"), -(15969, 0, "'a'"), -(15970, 0, "'l'"), -(15976, 0, "' '"), -(15977, 0, "'t'"), -(15978, 0, "'h'"), -(15979, 0, "'e'"), -(15980, 0, "' '"), -(15981, 0, "'c'"), -(15982, 0, "'o'"), -(15983, 0, "'d'"), -(15984, 0, "'e'"), -(15985, 6, "''"), -(15990, 0, "'s'"), -(15996, 0, "' '"), -(15997, 0, "'t'"), -(15998, 0, "'r'"), -(15999, 0, "'i'"), -(16000, 0, "'c'"), -(16001, 0, "'k'"), -(16002, 0, "'y'"), -(16003, 8, "''"), -(16034, 0, "'a'"), -(16035, 0, "'g'"), -(16036, 0, "'a'"), -(16037, 0, "'i'"), -(16038, 0, "'n'"), -(16039, 0, "' '"), -(16066, 10, "''"), -(16082, 4, "' '"), -(16083, 0, "'a'"), -(16084, 3, "''"), -(16084, 6, "''"), -(16095, 26, "''"), -(16094, 1, "''"), -(16094, 0, "'t'"), -(16095, 0, "' '"), -(16096, 2, "''"), -(16130, 5, "'e'"), -(16131, 0, "'n'"), -(16132, 0, "'t'"), -(16133, 0, "'r'"), -(16134, 0, "'i'"), -(16135, 0, "'e'"), -(16136, 0, "'s'"), -(16096, 0, "'f'"), -(16097, 0, "'o'"), -(16098, 0, "'r'"), -(16099, 0, "' '"), -(16100, 0, "'t'"), -(16101, 0, "'h'"), -(16102, 0, "'i'"), -(16103, 0, "'s'"), -(16104, 0, "' '"), -(16105, 0, "'e'"), -(16106, 0, "'d'"), -(16107, 0, "'i'"), -(16108, 0, "'t'"), -(16109, 0, "'i'"), -(16110, 0, "'n'"), -(16111, 0, "'g'"), -(16112, 0, "' '"), -(16113, 0, "'t'"), -(16114, 0, "'r'"), -(16115, 0, "'a'"), -(16116, 0, "'c'"), -(16117, 0, "'e'"), -(16118, 0, "','"), -(16119, 0, "' '"), -(16096, 24, "'i'"), -(16097, 0, "'n'"), -(16098, 0, "' '"), -(16099, 0, "'M'"), -(16100, 0, "'a'"), -(16101, 0, "'r'"), -(16102, 0, "'t'"), -(16103, 0, "'i'"), -(16104, 0, "'n'"), -(16105, 0, "'''"), -(16106, 0, "'s'"), -(16107, 0, "' '"), -(16108, 0, "'e'"), -(16109, 0, "'d'"), -(16110, 0, "'i'"), -(16111, 0, "'t'"), -(16112, 0, "'i'"), -(16113, 0, "'n'"), -(16114, 0, "'g'"), -(16115, 0, "' '"), -(16116, 0, "'t'"), -(16117, 0, "'r'"), -(16118, 0, "'a'"), -(16119, 0, "'c'"), -(16120, 0, "'e'"), -(16121, 0, "','"), -(16122, 0, "' '"), -(15885, 10, "' '"), -(15886, 0, "'i'"), -(15887, 0, "'n'"), -(15888, 0, "'t'"), -(15889, 0, "'o'"), -(15890, 0, "' '"), -(15891, 0, "'a'"), -(15892, 0, "' '"), -(15893, 0, "'s'"), -(15894, 0, "'i'"), -(15895, 0, "'n'"), -(15896, 0, "'g'"), -(15897, 0, "'l'"), -(15898, 0, "'e'"), -(15899, 0, "' '"), -(15900, 0, "'i'"), -(15901, 0, "'t'"), -(15902, 0, "'e'"), -(15903, 0, "'m'"), -(15853, 0, "'N'"), -(15854, 0, "'o'"), -(15855, 0, "'t'"), -(15856, 0, "'e'"), -(15857, 0, "' '"), -(15858, 1, "''"), -(15858, 0, "'w'"), -(15860, 0, "' '"), -(15861, 0, "'u'"), -(15862, 0, "'n'"), -(15863, 0, "'f'"), -(15864, 0, "'o'"), -(15865, 0, "'r'"), -(15866, 0, "'t'"), -(15867, 0, "'u'"), -(15868, 0, "'n'"), -(15869, 0, "'a'"), -(15870, 0, "'t'"), -(15871, 0, "'e'"), -(15872, 0, "'l'"), -(15873, 0, "'y'"), -(15946, 13, "'i'"), -(15947, 0, "'n'"), -(15948, 0, "'s'"), -(15949, 0, "'e'"), -(15950, 0, "'r'"), -(15951, 0, "'t'"), -(15952, 0, "'s'"), -(15978, 4, "' '"), -(15979, 0, "'l'"), -(15980, 0, "'i'"), -(15981, 0, "'n'"), -(15982, 0, "'e'"), -(15983, 0, "' '"), -(15984, 0, "'u'"), -(15985, 0, "'p'"), -(15979, 7, "'a'"), -(15980, 0, "'r'"), -(15981, 0, "'e'"), -(15979, 3, "'l'"), -(15980, 0, "'i'"), -(15981, 0, "'n'"), -(15982, 0, "'e'"), -(15983, 0, "' '"), -(15984, 0, "'u'"), -(15985, 0, "'p'"), -(15997, 0, "'l'"), -(15998, 0, "'y'"), -(16001, 5, "'T'"), -(16009, 0, "' '"), -(16010, 0, "'a'"), -(16011, 0, "'l'"), -(16012, 0, "'s'"), -(16013, 0, "'o'"), -(16026, 6, "''"), -(16025, 1, "''"), -(16001, 33, "'W'"), -(16002, 0, "'e'"), -(16003, 0, "'''"), -(16004, 0, "'l'"), -(16005, 0, "'l'"), -(16006, 0, "' '"), -(16007, 0, "'a'"), -(16008, 0, "'l'"), -(16009, 0, "'s'"), -(16010, 0, "'o'"), -(16011, 0, "' '"), -(16012, 0, "'s'"), -(16013, 0, "'o'"), -(16014, 0, "'m'"), -(16015, 0, "'e'"), -(16016, 0, "'t'"), -(16017, 0, "'i'"), -(16018, 0, "'m'"), -(16019, 0, "'e'"), -(16020, 0, "'s'"), -(16021, 0, "' '"), -(16022, 0, "'n'"), -(16023, 0, "'e'"), -(16024, 0, "'e'"), -(16025, 0, "'d'"), -(16026, 0, "' '"), -(16027, 0, "'t'"), -(16028, 0, "'o'"), -(16068, 6, "''"), -(16093, 0, "' '"), -(16094, 0, "'o'"), -(16095, 0, "'n'"), -(16096, 0, "'e'"), -(16097, 0, "' '"), -(16098, 0, "'o'"), -(16099, 0, "'f'"), -(16100, 0, "' '"), -(16101, 0, "'o'"), -(16102, 0, "'u'"), -(16103, 0, "'r'"), -(16104, 2, "''"), -(16115, 26, "''"), -(16115, 0, "' in Martin's editing trace'"), -(16115, 26, "','"), -(16116, 0, "' '"), -(16117, 0, "'w'"), -(16118, 0, "'i'"), -(16119, 0, "'t'"), -(16120, 0, "'h'"), -(16121, 0, "' '"), -(16122, 0, "'t'"), -(16123, 0, "'h'"), -(16124, 0, "'i'"), -(16125, 0, "'s'"), -(16126, 0, "' '"), -(16127, 0, "'b'"), -(16128, 0, "'e'"), -(16129, 0, "'n'"), -(16130, 0, "'c'"), -(16131, 0, "'h'"), -(16132, 0, "'m'"), -(16133, 0, "'a'"), -(16134, 0, "'r'"), -(16135, 0, "'k'"), -(16136, 0, "' '"), -(16137, 0, "'d'"), -(16138, 0, "'a'"), -(16139, 0, "'t'"), -(16140, 0, "'a'"), -(16233, 29, "'H'"), -(16234, 0, "'o'"), -(16235, 0, "'w'"), -(16236, 0, "' '"), -(16237, 0, "'f'"), -(16238, 0, "'a'"), -(16239, 0, "'s'"), -(16240, 0, "'t'"), -(16241, 0, "' '"), -(16242, 0, "'i'"), -(16243, 0, "'s'"), -(16244, 0, "' '"), -(16245, 0, "'i'"), -(16246, 0, "'t'"), -(16247, 0, "' '"), -(16248, 0, "'n'"), -(16249, 0, "'o'"), -(16250, 0, "'w'"), -(16251, 0, "'?'"), -(16252, 0, "' '"), -(16253, 0, "'Y'"), -(16254, 0, "'j'"), -(16255, 0, "'s'"), -(16256, 10, "''"), -(16270, 0, "' '"), -(16271, 0, "'t'"), -(16272, 0, "'h'"), -(16273, 0, "'a'"), -(16274, 0, "'n'"), -(16275, 0, "' '"), -(16276, 0, "'t'"), -(16277, 0, "'h'"), -(16278, 0, "'e'"), -(16279, 0, "' '"), -(16280, 0, "'r'"), -(16281, 0, "'e'"), -(16282, 0, "'f'"), -(16283, 0, "'e'"), -(16284, 0, "'r'"), -(16285, 0, "'e'"), -(16286, 0, "'n'"), -(16287, 0, "'c'"), -(16288, 0, "'e'"), -(16289, 0, "'-'"), -(16290, 0, "'c'"), -(16291, 0, "'r'"), -(16292, 0, "'d'"), -(16293, 0, "'t'"), -(16294, 0, "'s'"), -(16295, 0, "' '"), -(16296, 0, "'i'"), -(16297, 0, "'m'"), -(16298, 0, "'p'"), -(16299, 0, "'l'"), -(16300, 0, "'e'"), -(16301, 0, "'m'"), -(16302, 0, "'e'"), -(16303, 0, "'n'"), -(16304, 0, "'t'"), -(16305, 0, "'a'"), -(16306, 0, "'t'"), -(16307, 0, "'i'"), -(16308, 0, "'o'"), -(16309, 0, "'n'"), -(16310, 0, "','"), -(16311, 0, "' '"), -(16312, 0, "'a'"), -(16313, 0, "'n'"), -(16314, 0, "'d'"), -(16315, 0, "' '"), -(16316, 0, "'i'"), -(16317, 0, "'t'"), -(16318, 0, "' '"), -(16319, 0, "'o'"), -(16320, 0, "'n'"), -(16321, 0, "'l'"), -(16322, 0, "'y'"), -(16323, 0, "' '"), -(16324, 16, "'u'"), -(16325, 0, "'s'"), -(16326, 0, "'e'"), -(16327, 0, "'s'"), -(16743, 0, "' '"), -(16744, 0, "'a'"), -(16745, 0, "'n'"), -(16746, 0, "'d'"), -(16747, 0, "' '"), -(16748, 0, "'c'"), -(16749, 0, "'o'"), -(16750, 0, "'n'"), -(16751, 0, "'f'"), -(16752, 0, "'u'"), -(16753, 0, "'s'"), -(16754, 0, "'e'"), -(16755, 0, "'d'"), -(16748, 8, "'b'"), -(16748, 1, "''"), -(16748, 0, "'b'"), -(16748, 1, "'confused'"), -(16747, 9, "''"), -(16743, 4, "''"), -(16785, 4, "''"), -(16785, 0, "' '"), -(16786, 0, "'s'"), -(16787, 0, "'o'"), -(16788, 0, "'m'"), -(16789, 0, "'e'"), -(16790, 9, "''"), -(16811, 0, "' '"), -(16812, 0, "'i'"), -(16813, 0, "'s'"), -(16819, 1, "''"), -(16818, 1, "''"), -(16818, 0, "'i'"), -(16819, 0, "'n'"), -(16820, 0, "'g'"), -(16869, 42, "'L'"), -(16870, 0, "'e'"), -(16871, 0, "'a'"), -(16872, 0, "'v'"), -(16873, 0, "'i'"), -(16874, 0, "'n'"), -(16875, 0, "'g'"), -(16876, 0, "' '"), -(16876, 1, "''"), -(16869, 7, "'Everything is faster in Rust, with B-Trees'"), -(16869, 42, "'I'"), -(16870, 0, "'t'"), -(16871, 0, "'s'"), -(16869, 3, "'Everything is faster in Rust, with B-Trees'"), -(16869, 42, "'J'"), -(16870, 0, "'a'"), -(16871, 0, "'v'"), -(16872, 0, "'a'"), -(16873, 0, "'s'"), -(16874, 0, "'c'"), -(16875, 0, "'r'"), -(16876, 0, "'i'"), -(16877, 0, "'p'"), -(16878, 0, "'t'"), -(16869, 10, "'F'"), -(16870, 0, "'a'"), -(16871, 0, "'s'"), -(16872, 0, "'t'"), -(16873, 0, "'e'"), -(16874, 0, "'r'"), -(16875, 0, "' '"), -(16876, 0, "'t'"), -(16877, 0, "'h'"), -(16878, 0, "'a'"), -(16879, 0, "'n'"), -(16880, 0, "' '"), -(16881, 0, "'J'"), -(16882, 0, "'a'"), -(16883, 0, "'v'"), -(16884, 0, "'a'"), -(16885, 0, "'s'"), -(16886, 0, "'c'"), -(16887, 0, "'r'"), -(16888, 0, "'i'"), -(16889, 0, "'p'"), -(16890, 0, "'t'"), -(16893, 22, "''"), -(16970, 1, "''"), -(16970, 0, "','"), -(16971, 0, "' '"), -(16972, 0, "'a'"), -(16973, 0, "'n'"), -(16974, 0, "'d'"), -(16976, 1, "''"), -(16976, 0, "'i'"), -(16936, 36, "''"), -(16893, 0, "'Yjs is very well optimized already, '"), -(16929, 0, "'a'"), -(16930, 0, "'n'"), -(16931, 0, "'d'"), -(16932, 0, "' '"), -(16933, 0, "'I'"), -(16934, 0, "' '"), -(16935, 0, "'d'"), -(16936, 0, "'o'"), -(16937, 0, "'u'"), -(16938, 0, "'b'"), -(16935, 4, "'s'"), -(16936, 0, "'u'"), -(16937, 0, "'s'"), -(16938, 0, "'p'"), -(16939, 0, "'e'"), -(16940, 0, "'c'"), -(16941, 0, "'t'"), -(16942, 0, "' '"), -(16943, 1, "''"), -(16943, 0, "'j'"), -(16954, 5, "'c'"), -(16955, 0, "'a'"), -(16956, 0, "'n'"), -(16957, 0, "'''"), -(16958, 0, "'t'"), -(16942, 0, "' '"), -(16943, 0, "'w'"), -(16944, 0, "'e'"), -(16945, 0, "' '"), -(16946, 0, "'c'"), -(16947, 0, "'a'"), -(16948, 0, "'n'"), -(16949, 0, "'''"), -(16950, 0, "'t'"), -(16951, 0, "' '"), -(16952, 0, "'m'"), -(16953, 0, "'a'"), -(16954, 0, "'k'"), -(16955, 0, "'e'"), -(16967, 9, "' '"), -(16968, 0, "'r'"), -(16969, 0, "'u'"), -(16970, 0, "'n'"), -(16984, 9, "'i'"), -(16985, 0, "'n'"), -(16986, 0, "' '"), -(16987, 0, "'t'"), -(16988, 0, "'h'"), -(16989, 0, "'i'"), -(16990, 0, "'s'"), -(16991, 0, "' '"), -(16992, 0, "'t'"), -(16993, 0, "'e'"), -(16994, 0, "'s'"), -(16995, 0, "'t'"), -(16998, 5, "'I'"), -(16997, 1, "''"), -(16997, 0, "'n'"), -(16998, 0, "'n'"), -(16998, 1, "''"), -(16997, 1, "''"), -(16997, 0, "' '"), -(17081, 1, "''"), -(17081, 0, "' '"), -(17082, 0, "'w'"), -(17082, 1, "''"), -(17082, 0, "'-'"), -(17083, 0, "' '"), -(17084, 0, "'w'"), -(17085, 0, "'h'"), -(17086, 0, "'i'"), -(17087, 0, "'c'"), -(17088, 0, "'h'"), -(17089, 0, "' '"), -(17090, 0, "'w'"), -(17091, 0, "'e'"), -(17092, 0, "' '"), -(17093, 0, "'c'"), -(17094, 0, "'a'"), -(17095, 0, "'n'"), -(17096, 0, "' '"), -(17097, 0, "'o'"), -(17098, 0, "'n'"), -(17099, 0, "'l'"), -(17100, 0, "'y'"), -(17101, 0, "' '"), -(17102, 0, "'d'"), -(17103, 0, "'o'"), -(17053, 51, "'m'"), -(17054, 0, "'o'"), -(17055, 0, "'r'"), -(17056, 0, "'e'"), -(17057, 0, "' '"), -(17058, 0, "'c'"), -(17059, 0, "'o'"), -(17060, 0, "'n'"), -(17061, 0, "'t'"), -(17062, 0, "'r'"), -(17063, 0, "'o'"), -(17064, 0, "'l'"), -(17065, 0, "' '"), -(17066, 0, "'o'"), -(17067, 0, "'v'"), -(17068, 0, "'e'"), -(17069, 0, "'r'"), -(17070, 0, "' '"), -(17071, 0, "'t'"), -(17072, 0, "'h'"), -(17073, 0, "'e'"), -(17074, 0, "' '"), -(17075, 0, "'m'"), -(17076, 0, "'e'"), -(17077, 0, "'m'"), -(17078, 0, "'o'"), -(17079, 0, "'r'"), -(17080, 0, "'y'"), -(17081, 0, "' '"), -(17082, 0, "'l'"), -(17083, 0, "'a'"), -(17084, 0, "'y'"), -(17085, 0, "'o'"), -(17086, 0, "'u'"), -(17087, 0, "'t'"), -(17088, 0, "' '"), -(17089, 0, "'-'"), -(17090, 0, "' '"), -(17091, 0, "'w'"), -(17092, 0, "'h'"), -(17093, 0, "'i'"), -(17094, 0, "'c'"), -(17095, 0, "'h'"), -(17096, 0, "' '"), -(17097, 0, "'w'"), -(17098, 0, "'e'"), -(17099, 0, "' '"), -(17100, 0, "'c'"), -(17101, 0, "'a'"), -(17102, 0, "'n'"), -(17103, 0, "' '"), -(17104, 0, "'o'"), -(17105, 0, "'n'"), -(17106, 0, "'l'"), -(17107, 0, "'y'"), -(17108, 0, "' '"), -(17109, 0, "'d'"), -(17110, 0, "'o'"), -(17111, 0, "' '"), -(17112, 0, "'i'"), -(17113, 0, "'n'"), -(17114, 0, "' '"), -(17115, 0, "'a'"), -(17116, 0, "' '"), -(17117, 0, "'l'"), -(17118, 0, "'o'"), -(17119, 0, "'w'"), -(17120, 0, "'e'"), -(17121, 0, "'r'"), -(17117, 5, "'s'"), -(17118, 0, "'s'"), -(17119, 0, "'t'"), -(17119, 1, "''"), -(17118, 1, "''"), -(17118, 0, "'y'"), -(17119, 0, "'s'"), -(17120, 0, "'t'"), -(17121, 0, "'e'"), -(17122, 0, "'m'"), -(17123, 0, "'s'"), -(17124, 0, "' '"), -(17104, 5, "''"), -(17120, 0, "'l'"), -(17121, 0, "'a'"), -(17122, 0, "'n'"), -(17123, 0, "'g'"), -(17124, 0, "'u'"), -(17125, 0, "'a'"), -(17126, 0, "'g'"), -(17127, 0, "'e'"), -(17128, 0, "' '"), -(17129, 0, "'l'"), -(17130, 0, "'i'"), -(17131, 0, "'k'"), -(17132, 0, "'e'"), -(17133, 0, "' '"), -(17134, 0, "'R'"), -(17135, 0, "'u'"), -(17136, 0, "'s'"), -(17137, 0, "'t'"), -(17138, 0, "'.'"), -(17320, 0, "' '"), -(17321, 0, "'i'"), -(17322, 0, "'n'"), -(17323, 0, "' '"), -(17324, 0, "'m'"), -(17325, 0, "'e'"), -(17326, 0, "'m'"), -(17327, 0, "'o'"), -(17328, 0, "'r'"), -(17329, 0, "'y'"), -(17344, 0, "'B'"), -(17345, 0, "'y'"), -(17346, 0, "' '"), -(17347, 0, "'t'"), -(17348, 0, "'h'"), -(17349, 0, "'e'"), -(17350, 0, "' '"), -(17351, 0, "'w'"), -(17352, 0, "'a'"), -(17353, 0, "'y'"), -(17354, 0, "','"), -(17355, 0, "' '"), -(17357, 1, "''"), -(17357, 0, "'y'"), -(17385, 0, "'I'"), -(17386, 0, "'t'"), -(17387, 0, "'s'"), -(17388, 0, "' '"), -(17388, 1, "''"), -(17387, 1, "''"), -(17386, 1, "''"), -(17385, 1, "''"), -(17385, 0, "'I'"), -(17386, 0, "'t'"), -(17387, 0, "'s'"), -(17388, 0, "' '"), -(17389, 0, "'t'"), -(17390, 0, "'e'"), -(17391, 0, "'r'"), -(17392, 0, "'r'"), -(17393, 0, "'i'"), -(17394, 0, "'b'"), -(17395, 0, "'l'"), -(17396, 0, "'e'"), -(17397, 0, "' '"), -(17398, 0, "'b'"), -(17399, 0, "'e'"), -(17400, 0, "'c'"), -(17401, 0, "'a'"), -(17402, 0, "'u'"), -(17403, 0, "'s'"), -(17404, 0, "'e'"), -(17405, 0, "' '"), -(17406, 1, "''"), -(17406, 0, "'a'"), -(17422, 0, "'f'"), -(17423, 0, "'r'"), -(17424, 0, "'a'"), -(17425, 0, "'g'"), -(17426, 0, "'m'"), -(17427, 0, "'e'"), -(17428, 0, "'n'"), -(17429, 0, "'t'"), -(17430, 0, "'e'"), -(17431, 0, "'d'"), -(17432, 0, "' '"), -(17433, 0, "'-'"), -(17434, 0, "' '"), -(17434, 1, "''"), -(17433, 1, "''"), -(17432, 1, "''"), -(17432, 0, "'.'"), -(17433, 0, "' '"), -(17434, 0, "'I'"), -(17435, 0, "'t'"), -(17436, 0, "'s'"), -(17437, 0, "' '"), -(17438, 0, "'a'"), -(17439, 0, "'l'"), -(17440, 0, "'l'"), -(17441, 0, "' '"), -(17468, 30, "' '"), -(17469, 0, "'a'"), -(17470, 0, "'r'"), -(17471, 0, "'r'"), -(17472, 0, "'a'"), -(17473, 0, "'n'"), -(17474, 0, "'g'"), -(17475, 0, "'e'"), -(17476, 0, "' '"), -(17477, 0, "'d'"), -(17478, 0, "'a'"), -(17479, 0, "'t'"), -(17480, 0, "'a'"), -(17481, 0, "' '"), -(17482, 0, "'l'"), -(17483, 0, "'i'"), -(17484, 0, "'k'"), -(17485, 0, "'e'"), -(17486, 0, "' '"), -(17487, 0, "'t'"), -(17488, 0, "'h'"), -(17489, 0, "'i'"), -(17490, 0, "'s'"), -(17528, 0, "' '"), -(17529, 0, "'f'"), -(17530, 0, "'o'"), -(17531, 0, "'r'"), -(17532, 0, "' '"), -(17533, 0, "'e'"), -(17534, 0, "'a'"), -(17535, 0, "'c'"), -(17536, 0, "'h'"), -(17537, 0, "' '"), -(17538, 0, "'i'"), -(17539, 0, "'t'"), -(17540, 0, "'e'"), -(17541, 0, "'m'"), -(17529, 0, "'o'"), -(17530, 0, "'n'"), -(17531, 0, "'e'"), -(17532, 0, "' '"), -(17533, 0, "'b'"), -(17534, 0, "'y'"), -(17535, 0, "' '"), -(17536, 0, "'o'"), -(17537, 0, "'n'"), -(17538, 0, "'e'"), -(17539, 0, "' '"), -(17605, 5, "''"), -(17611, 0, "'a'"), -(17612, 0, "'l'"), -(17613, 0, "'l'"), -(17614, 0, "' '"), -(17615, 0, "'o'"), -(17616, 0, "'f'"), -(17617, 0, "' '"), -(17618, 0, "'t'"), -(17619, 0, "'h'"), -(17620, 0, "'o'"), -(17621, 0, "'s'"), -(17622, 0, "'e'"), -(17623, 0, "' '"), -(17624, 14, "'o'"), -(17625, 0, "'b'"), -(17626, 0, "'j'"), -(17627, 0, "'e'"), -(17628, 0, "'c'"), -(17629, 0, "'t'"), -(17630, 0, "'s'"), -(17602, 0, "'e'"), -(17603, 0, "'x'"), -(17604, 0, "'t'"), -(17605, 0, "'r'"), -(17606, 0, "'a'"), -(17607, 0, "' '"), -(17608, 0, "'d'"), -(17609, 0, "'a'"), -(17610, 0, "'t'"), -(17611, 0, "'a'"), -(17612, 0, "' '"), -(17674, 12, "'l'"), -(17675, 0, "'l'"), -(17676, 0, "' '"), -(17699, 1, "''"), -(17699, 0, "'.'"), -(17700, 6, "' '"), -(17701, 0, "'I'"), -(17723, 0, "' '"), -(17724, 0, "'i'"), -(17725, 0, "'n'"), -(17726, 0, "' '"), -(17727, 0, "'m'"), -(17728, 0, "'e'"), -(17729, 0, "'m'"), -(17730, 0, "'o'"), -(17731, 0, "'r'"), -(17732, 0, "'y'"), -(17699, 1, "''"), -(17699, 0, "','"), -(17700, 0, "' '"), -(17701, 0, "'a'"), -(17702, 0, "'n'"), -(17703, 0, "'d'"), -(17705, 1, "''"), -(17705, 0, "'i'"), -(17699, 38, "''"), -(17801, 5, "''"), -(17806, 0, "' '"), -(17807, 0, "'a'"), -(17808, 0, "'s'"), -(17809, 0, "' '"), -(17810, 0, "'w'"), -(17811, 0, "'e'"), -(17812, 0, "'l'"), -(17813, 0, "'l'"), -(17816, 2, "'I'"), -(17817, 0, "'f'"), -(17818, 0, "' '"), -(17819, 0, "'w'"), -(17820, 0, "'e'"), -(17821, 4, "''"), -(17858, 26, "''"), -(17904, 1, "''"), -(17904, 0, "','"), -(17906, 19, "''"), -(17905, 1, "''"), -(17930, 0, "' '"), -(17931, 0, "'a'"), -(17932, 0, "'b'"), -(17933, 0, "'o'"), -(17934, 0, "'u'"), -(17935, 0, "'t'"), -(17949, 1, "''"), -(17949, 0, "' '"), -(17950, 0, "'-'"), -(17950, 1, "''"), -(17949, 1, "''"), -(17949, 0, "'-'"), -(17950, 0, "' '"), -(17969, 1, "''"), -(17971, 0, "'A'"), -(17972, 0, "'t'"), -(17973, 0, "' '"), -(17974, 0, "'t'"), -(17974, 1, "''"), -(17973, 1, "''"), -(17972, 1, "''"), -(17972, 0, "'n'"), -(17973, 0, "'d'"), -(17974, 0, "' '"), -(17975, 0, "'a'"), -(17976, 0, "'t'"), -(17977, 0, "' '"), -(17978, 0, "'t'"), -(17979, 0, "'h'"), -(17980, 0, "'i'"), -(17981, 0, "'s'"), -(17982, 0, "' '"), -(17983, 0, "'s'"), -(17984, 0, "'p'"), -(17985, 0, "'e'"), -(17986, 0, "'e'"), -(17987, 0, "'d'"), -(17988, 0, "','"), -(17989, 0, "' '"), -(17990, 4, "''"), -(18016, 17, "' '"), -(18017, 0, "'t'"), -(18018, 0, "'a'"), -(18019, 0, "'k'"), -(18020, 0, "'e'"), -(18021, 0, "'s'"), -(18022, 0, "' '"), -(18023, 0, "'t'"), -(18024, 0, "'h'"), -(18025, 0, "'e'"), -(18026, 0, "' '"), -(18027, 0, "'c'"), -(18028, 0, "'o'"), -(18029, 0, "'m'"), -(18030, 0, "'p'"), -(18031, 0, "'u'"), -(18032, 0, "'t'"), -(18033, 0, "'e'"), -(18034, 0, "'r'"), -(17971, 0, "'I'"), -(17972, 0, "'n'"), -(17973, 0, "' '"), -(17974, 0, "'c'"), -(17975, 0, "'o'"), -(17976, 0, "'m'"), -(17977, 0, "'p'"), -(17978, 0, "'s'"), -(17978, 1, "''"), -(17978, 0, "'a'"), -(17979, 0, "'r'"), -(17980, 0, "'o'"), -(17981, 0, "'n'"), -(17982, 0, "'s'"), -(17982, 1, "''"), -(17981, 1, "''"), -(17980, 1, "''"), -(17980, 0, "'i'"), -(17981, 0, "'s'"), -(17982, 0, "'o'"), -(17983, 0, "'n'"), -(17984, 0, "','"), -(17985, 0, "' '"), -(17986, 4, "''"), -(17999, 1, "''"), -(18094, 5, "''"), -(18103, 6, "''"), -(18102, 1, "''"), -(18107, 1, "''"), -(18106, 1, "''"), -(18105, 1, "''"), -(18105, 0, "'i'"), -(18106, 0, "'t'"), -(18107, 0, "'i'"), -(18108, 0, "'n'"), -(18109, 0, "'g'"), -(18168, 0, "' '"), -(18169, 0, "'s'"), -(18170, 0, "'h'"), -(18171, 0, "'o'"), -(18172, 0, "'p'"), -(18173, 0, "'p'"), -(18174, 0, "'i'"), -(18175, 0, "'n'"), -(18176, 0, "'g'"), -(18177, 0, "' '"), -(18177, 1, "''"), -(18056, 1, "''"), -(18056, 0, "'n'"), -(18057, 0, "'n'"), -(18127, 1, "''"), -(18127, 0, "'.'"), -(18129, 1, "''"), -(18129, 0, "'B'"), -(18223, 14, "''"), -(18229, 5, "' '"), -(18230, 0, "'i'"), -(18231, 0, "'t'"), -(18232, 0, "'e'"), -(18233, 0, "'m'"), -(18234, 0, "' '"), -(18235, 0, "'i'"), -(18236, 0, "'n'"), -(18237, 0, "' '"), -(18238, 0, "'t'"), -(18239, 0, "'h'"), -(18240, 0, "'e'"), -(18241, 0, "' '"), -(18242, 0, "'s'"), -(18243, 0, "'c'"), -(18244, 0, "'a'"), -(18245, 0, "'v'"), -(18246, 0, "'e'"), -(18247, 0, "'n'"), -(18248, 0, "'g'"), -(18249, 0, "'e'"), -(18250, 0, "'r'"), -(18251, 0, "' '"), -(18252, 0, "'h'"), -(18253, 0, "'u'"), -(18254, 0, "'n'"), -(18255, 0, "'t'"), -(18256, 0, "' '"), -(18257, 0, "'n'"), -(18258, 0, "'a'"), -(18259, 0, "'m'"), -(18260, 0, "'e'"), -(18261, 0, "'s'"), -(18262, 6, "''"), -(18289, 33, "''"), -(18288, 1, "''"), -(18287, 1, "''"), -(18286, 1, "''"), -(18286, 0, "','"), -(18287, 0, "' '"), -(18288, 0, "'w'"), -(18289, 0, "'i'"), -(18290, 0, "'t'"), -(18291, 0, "'h'"), -(18292, 0, "' '"), -(18293, 0, "'a'"), -(18294, 0, "' '"), -(18295, 0, "'h'"), -(18296, 0, "'i'"), -(18297, 0, "'d'"), -(18298, 0, "'d'"), -(18299, 0, "'n'"), -(18300, 0, "'e'"), -(18300, 1, "''"), -(18299, 1, "''"), -(18299, 0, "'e'"), -(18300, 0, "'n'"), -(18301, 5, "''"), -(18333, 0, "'o'"), -(18334, 0, "'r'"), -(18335, 0, "' '"), -(18336, 0, "'w'"), -(18337, 0, "'h'"), -(18338, 0, "'a'"), -(18339, 0, "'t'"), -(18340, 0, "'e'"), -(18341, 0, "'v'"), -(18342, 0, "'e'"), -(18343, 0, "'r'"), -(18344, 0, "' '"), -(18351, 41, "''"), -(18351, 0, "' '"), -(18351, 1, "''"), -(18351, 0, "'nnReading the whole list would take ages.'"), -(18352, 1, "''"), -(18351, 1, "''"), -(18350, 1, "''"), -(18350, 0, "' '"), -(18350, 1, "''"), -(18350, 0, "'.'"), -(18351, 0, "' '"), -(18352, 0, "'N'"), -(18353, 0, "'e'"), -(18354, 0, "'e'"), -(18355, 0, "'d'"), -(18356, 0, "'l'"), -(18357, 0, "'e'"), -(18358, 0, "'s'"), -(18359, 0, "'s'"), -(18360, 0, "' '"), -(18361, 0, "'t'"), -(18362, 0, "'o'"), -(18363, 0, "' '"), -(18364, 0, "'s'"), -(18365, 0, "'a'"), -(18366, 0, "'y'"), -(18367, 0, "','"), -(18368, 0, "' '"), -(18369, 1, "''"), -(18369, 0, "'r'"), -(18391, 0, "' '"), -(18392, 0, "'t'"), -(18393, 0, "'a'"), -(18394, 0, "'k'"), -(18395, 0, "'e'"), -(18396, 0, "'s'"), -(18397, 0, "' '"), -(18398, 0, "'t'"), -(18399, 0, "'h'"), -(18400, 0, "'e'"), -(18401, 0, "' '"), -(18402, 0, "'c'"), -(18403, 0, "'o'"), -(18404, 0, "'m'"), -(18405, 0, "'p'"), -(18406, 0, "'u'"), -(18407, 0, "'t'"), -(18408, 0, "'e'"), -(18409, 0, "'r'"), -(18410, 11, "''"), -(18416, 0, "' '"), -(18417, 0, "'('"), -(18417, 1, "''"), -(18416, 1, "''"), -(18415, 1, "''"), -(18415, 0, "' '"), -(18416, 0, "'('"), -(18417, 0, "'i'"), -(18418, 0, "'n'"), -(18419, 0, "' '"), -(18420, 0, "'c'"), -(18421, 0, "'o'"), -(18422, 0, "'m'"), -(18423, 0, "'p'"), -(18424, 0, "'u'"), -(18425, 0, "'t'"), -(18426, 0, "'e'"), -(18427, 0, "'r'"), -(18428, 0, "' '"), -(18429, 0, "'t'"), -(18430, 0, "'i'"), -(18431, 0, "'m'"), -(18432, 0, "'e'"), -(18433, 0, "')'"), -(18434, 0, "'.'"), -(18675, 0, "'l'"), -(18676, 0, "'i'"), -(18677, 0, "'n'"), -(18678, 0, "'k'"), -(18679, 0, "'e'"), -(18680, 0, "'d'"), -(18681, 0, "' '"), -(18682, 0, "'l'"), -(18683, 0, "'i'"), -(18665, 19, "'F'"), -(18665, 1, "''"), -(18665, 0, "'W'"), -(18666, 0, "'i'"), -(18667, 0, "'t'"), -(18668, 0, "'h'"), -(18669, 0, "' '"), -(18670, 0, "'l'"), -(18671, 0, "'i'"), -(18672, 0, "'n'"), -(18673, 0, "'k'"), -(18674, 0, "'e'"), -(18675, 0, "'d'"), -(18676, 0, "' '"), -(18677, 0, "'l'"), -(18678, 0, "'i'"), -(18679, 0, "'s'"), -(18680, 0, "'t'"), -(18681, 0, "'s'"), -(18682, 0, "' '"), -(18688, 2, "' '"), -(18689, 0, "'t'"), -(18690, 0, "'h'"), -(18691, 0, "'a'"), -(18692, 0, "'t'"), -(18743, 18, "''"), -(18727, 16, "'b'"), -(18728, 0, "'e'"), -(18729, 0, "'t'"), -(18730, 0, "'w'"), -(18731, 0, "'e'"), -(18732, 0, "'e'"), -(18733, 0, "'n'"), -(18734, 0, "' '"), -(18735, 0, "'i'"), -(18736, 0, "'t'"), -(18737, 0, "'e'"), -(18738, 0, "'m'"), -(18739, 0, "'s'"), -(18740, 0, "','"), -(18741, 0, "' '"), -(18742, 0, "'a'"), -(18743, 0, "'n'"), -(18744, 0, "'d'"), -(18745, 0, "' '"), -(18746, 0, "'w'"), -(18747, 0, "'e'"), -(18748, 0, "' '"), -(18749, 0, "'d'"), -(18750, 0, "'o'"), -(18751, 0, "' '"), -(18752, 0, "'t'"), -(18753, 0, "'h'"), -(18754, 0, "'a'"), -(18755, 0, "'t'"), -(18756, 0, "' '"), -(18757, 0, "'a'"), -(18758, 0, "' '"), -(18759, 0, "'l'"), -(18760, 0, "'o'"), -(18761, 0, "'t'"), -(18740, 22, "''"), -(18777, 12, "'F'"), -(18812, 0, "' '"), -(18813, 0, "'n'"), -(18814, 0, "'e'"), -(18815, 0, "'e'"), -(18816, 0, "'d'"), -(18817, 0, "' '"), -(18818, 0, "'a'"), -(18819, 0, "' '"), -(18820, 0, "'l'"), -(18821, 0, "'o'"), -(18822, 0, "'t'"), -(18823, 0, "' '"), -(18824, 0, "'o'"), -(18825, 0, "'f'"), -(18826, 0, "' '"), -(18827, 0, "'o'"), -(18828, 0, "'b'"), -(18829, 0, "'j'"), -(18830, 0, "'e'"), -(18831, 0, "'c'"), -(18832, 0, "'t'"), -(18833, 0, "'s'"), -(18834, 0, "','"), -(18835, 0, "' '"), -(18836, 27, "''"), -(18835, 1, "''"), -(18835, 0, "' '"), -(18836, 0, "'s'"), -(18837, 0, "'o'"), -(18838, 4, "' '"), -(18839, 0, "'w'"), -(18840, 0, "'e'"), -(18834, 1, "''"), -(18834, 0, "'.'"), -(18835, 0, "' '"), -(18836, 0, "'S'"), -(18837, 0, "'o'"), -(18838, 0, "' '"), -(18839, 0, "'t'"), -(18840, 0, "'h'"), -(18841, 0, "'e'"), -(18842, 0, "'r'"), -(18843, 0, "'e'"), -(18844, 0, "'''"), -(18845, 0, "'s'"), -(18836, 10, "''"), -(18826, 0, "' '"), -(18827, 0, "'w'"), -(18828, 0, "'e'"), -(18829, 0, "'i'"), -(18830, 0, "'r'"), -(18831, 0, "'d'"), -(18840, 1, "''"), -(18840, 0, "','"), -(18841, 0, "' '"), -(18842, 0, "'w'"), -(18843, 0, "'h'"), -(18844, 0, "'i'"), -(18845, 0, "'c'"), -(18846, 0, "'h'"), -(18847, 0, "' '"), -(18848, 0, "'w'"), -(18849, 0, "'i'"), -(18850, 0, "'l'"), -(18851, 0, "'l'"), -(18852, 0, "'e'"), -(18853, 0, "'n'"), -(18853, 1, "''"), -(18852, 1, "''"), -(18852, 0, "' '"), -(18853, 0, "'e'"), -(18854, 0, "'n'"), -(18855, 0, "'d'"), -(18856, 0, "' '"), -(18857, 0, "'u'"), -(18858, 0, "'p'"), -(18859, 32, "''"), -(18840, 0, "' '"), -(18841, 0, "'('"), -(18842, 0, "'l'"), -(18843, 0, "'i'"), -(18844, 0, "'k'"), -(18845, 0, "'e'"), -(18846, 0, "' '"), -(18847, 0, "'f'"), -(18848, 0, "'i'"), -(18849, 0, "'x'"), -(18850, 0, "'e'"), -(18851, 0, "'d'"), -(18852, 0, "' '"), -(18853, 0, "'s'"), -(18854, 0, "'i'"), -(18855, 0, "'z'"), -(18856, 0, "'e'"), -(18857, 0, "' '"), -(18858, 0, "'a'"), -(18859, 0, "'r'"), -(18860, 0, "'a'"), -(18860, 1, "''"), -(18860, 0, "'r'"), -(18861, 0, "'a'"), -(18862, 0, "'y'"), -(18863, 0, "'s'"), -(18864, 0, "')'"), -(18865, 1, "''"), -(18865, 0, "'.'"), -(18866, 0, "' '"), -(18867, 0, "'T'"), -(18868, 0, "'h'"), -(18869, 0, "'e'"), -(18870, 0, "'s'"), -(18871, 0, "'e'"), -(18867, 5, "'I'"), -(18868, 0, "'n'"), -(18869, 0, "' '"), -(18870, 0, "'j'"), -(18871, 0, "'a'"), -(18872, 0, "'v'"), -(18873, 0, "'a'"), -(18874, 0, "'s'"), -(18875, 0, "'c'"), -(18876, 0, "'r'"), -(18877, 0, "'i'"), -(18878, 0, "'p'"), -(18879, 0, "'t'"), -(18880, 11, "' '"), -(18867, 14, "'A'"), -(18868, 0, "'n'"), -(18869, 0, "'d'"), -(18870, 0, "' '"), -(18871, 0, "'t'"), -(18872, 0, "'h'"), -(18873, 0, "'a'"), -(18874, 0, "'t'"), -(18875, 0, "' '"), -(18876, 0, "'m'"), -(18877, 0, "'a'"), -(18878, 0, "'k'"), -(18879, 0, "'e'"), -(18880, 0, "'s'"), -(18881, 0, "' '"), -(18882, 0, "'f'"), -(18883, 0, "'r'"), -(18884, 0, "'a'"), -(18885, 0, "'g'"), -(18886, 0, "'m'"), -(18887, 0, "'e'"), -(18888, 0, "'n'"), -(18889, 0, "'t'"), -(18890, 0, "'a'"), -(18891, 0, "'t'"), -(18892, 0, "'i'"), -(18893, 0, "'o'"), -(18894, 0, "'n'"), -(18895, 0, "' '"), -(18896, 0, "'w'"), -(18897, 0, "'o'"), -(18898, 0, "'r'"), -(18899, 0, "'s'"), -(18900, 0, "'e'"), -(18901, 0, "','"), -(18902, 0, "' '"), -(18903, 0, "'e'"), -(18904, 0, "'v'"), -(18905, 0, "'e'"), -(18906, 0, "'n'"), -(18907, 0, "' '"), -(18908, 0, "'a'"), -(18909, 0, "'s'"), -(18910, 0, "' '"), -(18911, 0, "'w'"), -(18912, 0, "'e'"), -(18913, 0, "'''"), -(18914, 0, "'r'"), -(18915, 0, "'e'"), -(18916, 0, "' '"), -(18917, 0, "'m'"), -(18918, 0, "'a'"), -(18919, 0, "'k'"), -(18920, 0, "'i'"), -(18921, 0, "'n'"), -(18922, 0, "'g'"), -(18923, 0, "' '"), -(18924, 0, "'t'"), -(18925, 0, "'h'"), -(18926, 0, "'e'"), -(18927, 0, "' '"), -(18903, 25, "''"), -(18902, 1, "''"), -(18901, 1, "''"), -(18901, 0, "'.'"), -(18902, 0, "' '"), -(18903, 0, "'I'"), -(18904, 0, "'t'"), -(18905, 0, "'s'"), -(18906, 0, "' '"), -(18907, 0, "'a'"), -(18908, 0, "' '"), -(18902, 45, "''"), -(18902, 0, "' '"), -(18901, 0, "','"), -(18902, 0, "' '"), -(18903, 0, "'w'"), -(18904, 0, "'h'"), -(18905, 0, "'i'"), -(18906, 0, "'c'"), -(18907, 0, "'h'"), -(18908, 0, "' '"), -(18909, 0, "'m'"), -(18910, 0, "'a'"), -(18911, 0, "'k'"), -(18912, 0, "'e'"), -(18913, 0, "'s'"), -(18909, 5, "'c'"), -(18910, 0, "'a'"), -(18911, 0, "'n'"), -(18912, 0, "' '"), -(18913, 0, "'m'"), -(18914, 0, "'a'"), -(18915, 0, "'k'"), -(18916, 0, "'e'"), -(18917, 0, "' '"), -(18918, 0, "'t'"), -(18919, 0, "'h'"), -(18920, 0, "'i'"), -(18921, 0, "'n'"), -(18922, 0, "'g'"), -(18923, 0, "'s'"), -(18924, 0, "' '"), -(18925, 0, "'s'"), -(18926, 0, "'l'"), -(18927, 0, "'o'"), -(18928, 0, "'w'"), -(18929, 0, "','"), -(18930, 0, "' '"), -(18930, 1, "''"), -(18929, 1, "''"), -(18929, 0, "'e'"), -(18930, 0, "'r'"), -(18931, 0, "','"), -(18932, 0, "' '"), -(18933, 0, "'n'"), -(18934, 0, "'o'"), -(18935, 0, "'t'"), -(18936, 0, "' '"), -(18937, 0, "'f'"), -(18938, 0, "'a'"), -(18939, 0, "'s'"), -(18940, 0, "'t'"), -(18941, 0, "'e'"), -(18942, 0, "'r'"), -(18999, 0, "'e'"), -(19000, 0, "'v'"), -(19001, 0, "'e'"), -(19002, 0, "'n'"), -(19003, 0, "' '"), -(19004, 49, "''"), -(19014, 0, "' '"), -(19015, 0, "'w'"), -(19016, 0, "'e'"), -(19017, 0, "' '"), -(19018, 0, "'d'"), -(19019, 0, "'o'"), -(19020, 0, "'n'"), -(19021, 0, "'''"), -(19022, 0, "'t'"), -(19023, 0, "' '"), -(19024, 0, "'h'"), -(19025, 0, "'a'"), -(19026, 0, "'v'"), -(19027, 0, "'e'"), -(19028, 0, "' '"), -(19029, 0, "'t'"), -(19030, 0, "'o'"), -(19031, 0, "' '"), -(19032, 0, "'u'"), -(19033, 0, "'s'"), -(19034, 0, "'e'"), -(19035, 0, "' '"), -(19036, 0, "'j'"), -(19037, 0, "'a'"), -(19038, 0, "'v'"), -(19039, 0, "'a'"), -(19040, 0, "'s'"), -(19041, 0, "'c'"), -(19042, 0, "'r'"), -(19043, 0, "'i'"), -(19044, 0, "'p'"), -(19045, 0, "'t'"), -(19046, 0, "' '"), -(19047, 0, "'a'"), -(19048, 0, "'n'"), -(19049, 0, "'y'"), -(19050, 0, "' '"), -(19051, 0, "'m'"), -(19052, 0, "'o'"), -(19053, 0, "'r'"), -(19054, 0, "'e'"), -(18986, 1, "''"), -(18985, 1, "''"), -(18985, 0, "' '"), -(18496, 10, "'I'"), -(18497, 0, "' '"), -(18498, 0, "'w'"), -(18499, 0, "'a'"), -(18500, 0, "'n'"), -(18501, 0, "'t'"), -(18502, 0, "' '"), -(18503, 0, "'t'"), -(18504, 0, "'o'"), -(18534, 1, "''"), -(18533, 1, "''"), -(18533, 0, "'.'"), -(18535, 1, "''"), -(18535, 0, "'A'"), -(18639, 6, "''"), -(18655, 79, "''"), -(18655, 0, "' (With linked lists we do that scavenger hunt each time we move between items!)'"), -(18675, 25, "'y'"), -(18676, 0, "'o'"), -(18677, 0, "'u'"), -(18678, 0, "' '"), -(18679, 0, "'i'"), -(18680, 0, "'n'"), -(18681, 0, "'c'"), -(18682, 0, "'u'"), -(18683, 0, "'r'"), -(18684, 0, "' '"), -(18685, 0, "'a'"), -(18686, 0, "' '"), -(18687, 0, "'m'"), -(18688, 0, "'e'"), -(18689, 0, "'m'"), -(18690, 0, "'o'"), -(18691, 0, "'r'"), -(18692, 0, "'y'"), -(18693, 0, "' '"), -(18694, 0, "'r'"), -(18695, 0, "'e'"), -(18696, 0, "'a'"), -(18697, 0, "'d'"), -(18708, 3, "' '"), -(18709, 0, "'y'"), -(18710, 0, "'o'"), -(18711, 0, "'u'"), -(18858, 3, "'A'"), -(18859, 0, "'l'"), -(18860, 0, "'l'"), -(18861, 0, "' '"), -(18862, 0, "'t'"), -(18863, 0, "'h'"), -(18864, 0, "'o'"), -(18865, 0, "'s'"), -(18866, 0, "'e'"), -(18867, 0, "' '"), -(18868, 0, "'e'"), -(18869, 0, "'x'"), -(18870, 0, "'t'"), -(18871, 0, "'r'"), -(18872, 0, "'a'"), -(18873, 0, "' '"), -(18874, 0, "'o'"), -(18875, 0, "'b'"), -(18876, 0, "'j'"), -(18877, 0, "'e'"), -(18878, 0, "'c'"), -(18879, 0, "'t'"), -(18880, 0, "'s'"), -(18881, 5, "''"), -(18909, 0, "'s'"), -(18910, 0, "'o'"), -(18911, 0, "' '"), -(18912, 0, "'t'"), -(18913, 0, "'h'"), -(18914, 0, "'e'"), -(18915, 0, "' '"), -(18916, 0, "'r'"), -(18917, 0, "'e'"), -(18918, 0, "'s'"), -(18919, 0, "'u'"), -(18920, 0, "'l'"), -(18921, 0, "'t'"), -(18922, 0, "' '"), -(18923, 0, "'i'"), -(18924, 0, "'s'"), -(18925, 0, "' '"), -(18926, 0, "'o'"), -(18927, 0, "'f'"), -(18928, 0, "'t'"), -(18929, 0, "'e'"), -(18930, 0, "'n'"), -(18931, 21, "''"), -(18952, 0, "'T'"), -(18953, 0, "'h'"), -(18954, 0, "'i'"), -(18955, 0, "'s'"), -(18956, 0, "' '"), -(18957, 0, "'i'"), -(18958, 0, "'s'"), -(18959, 0, "' '"), -(18960, 3, "''"), -(18959, 1, "''"), -(19000, 8, "''"), -(19067, 11, "'W'"), -(19068, 0, "'e'"), -(19069, 0, "'b'"), -(19070, 0, "'A'"), -(19071, 0, "'s'"), -(19072, 0, "'s'"), -(19073, 0, "'e'"), -(19074, 0, "'m'"), -(19075, 0, "'b'"), -(19076, 0, "'l'"), -(19077, 0, "'y'"), -(19081, 2, "'T'"), -(19082, 0, "'o'"), -(19083, 0, "' '"), -(19084, 0, "'s'"), -(19085, 0, "'e'"), -(19086, 0, "'e'"), -(19087, 0, "' '"), -(19088, 0, "'h'"), -(19089, 0, "'o'"), -(19090, 0, "'w'"), -(19091, 0, "' '"), -(19092, 0, "'f'"), -(19093, 0, "'a'"), -(19094, 0, "'s'"), -(19095, 0, "'t'"), -(19096, 0, "' '"), -(19097, 0, "'w'"), -(19098, 0, "'e'"), -(19099, 0, "' '"), -(19100, 0, "'c'"), -(19101, 0, "'a'"), -(19102, 0, "'n'"), -(19103, 0, "' '"), -(19104, 0, "'*'"), -(19105, 0, "'r'"), -(19106, 0, "'e'"), -(19107, 0, "'a'"), -(19108, 0, "'l'"), -(19109, 0, "'l'"), -(19110, 0, "'y'"), -(19111, 0, "'*'"), -(19112, 0, "' '"), -(19113, 0, "'g'"), -(19114, 0, "'o'"), -(19115, 0, "','"), -(19268, 0, "'t'"), -(19269, 0, "'h'"), -(19270, 0, "'e'"), -(19271, 0, "' '"), -(19275, 0, "' '"), -(19276, 0, "'i'"), -(19277, 0, "'m'"), -(19278, 0, "'p'"), -(19279, 0, "'l'"), -(19280, 0, "'e'"), -(19281, 0, "'m'"), -(19282, 0, "'e'"), -(19283, 0, "'n'"), -(19276, 8, "''"), -(19275, 1, "''"), -(19272, 0, "'p'"), -(19273, 0, "'r'"), -(19274, 0, "'e'"), -(19275, 0, "'v'"), -(19276, 0, "'i'"), -(19277, 0, "'o'"), -(19278, 0, "'u'"), -(19279, 0, "'s'"), -(19280, 0, "' '"), -(19272, 9, "''"), -(19268, 4, "''"), -(19241, 30, "'w'"), -(19242, 0, "'o'"), -(19243, 0, "'r'"), -(19244, 0, "'k'"), -(19245, 0, "'s'"), -(19246, 0, "' '"), -(19247, 0, "'t'"), -(19248, 0, "'h'"), -(19249, 0, "'e'"), -(19250, 0, "' '"), -(19251, 0, "'s'"), -(19252, 0, "'a'"), -(19253, 0, "'m'"), -(19254, 0, "'e'"), -(19255, 0, "' '"), -(19256, 0, "'a'"), -(19257, 0, "'s'"), -(19258, 0, "' '"), -(19259, 0, "'y'"), -(19260, 0, "'j'"), -(19261, 0, "'s'"), -(19262, 1, "''"), -(19262, 0, "','"), -(19264, 1, "''"), -(19264, 0, "'b'"), -(19309, 0, "' '"), -(19310, 0, "'i'"), -(19311, 0, "'n'"), -(19312, 0, "'t'"), -(19313, 0, "'e'"), -(19314, 0, "'r'"), -(19315, 0, "'n'"), -(19316, 0, "'a'"), -(19317, 0, "'l'"), -(19318, 0, "'l'"), -(19319, 0, "'y'"), -(19740, 9, "'a'"), -(19741, 0, "'n'"), -(19742, 0, "'y'"), -(19743, 0, "' '"), -(19744, 0, "'i'"), -(19745, 0, "'t'"), -(19746, 0, "'e'"), -(19747, 0, "'m'"), -(19748, 0, "'.'"), -(19784, 4, "'.'"), -(19785, 0, "' '"), -(19786, 0, "'U'"), -(19787, 0, "'p'"), -(19788, 0, "'d'"), -(19789, 0, "'a'"), -(19790, 0, "'t'"), -(19791, 0, "'e'"), -(19792, 0, "'s'"), -(19793, 1, "''"), -(19798, 1, "''"), -(19810, 0, "'s'"), -(19811, 0, "'o'"), -(19812, 0, "' '"), -(19813, 0, "'a'"), -(19814, 0, "'g'"), -(19815, 0, "'a'"), -(19816, 0, "'i'"), -(19817, 0, "'n'"), -(19818, 8, "''"), -(19832, 0, "' '"), -(19833, 0, "'a'"), -(19834, 0, "'n'"), -(19835, 0, "'d'"), -(19836, 0, "' '"), -(19837, 0, "'w'"), -(19838, 0, "'e'"), -(19839, 0, "'''"), -(19840, 0, "'r'"), -(19841, 0, "'e'"), -(19842, 0, "' '"), -(19843, 0, "'d'"), -(19844, 0, "'o'"), -(19845, 0, "'n'"), -(19846, 0, "'e'"), -(19889, 0, "'n'"), -(19889, 0, "'n'"), -(19890, 0, "'W'"), -(19891, 0, "'h'"), -(19892, 0, "'e'"), -(19893, 0, "'n'"), -(19894, 0, "' '"), -(19895, 0, "'w'"), -(19896, 0, "'e'"), -(19890, 7, "'I'"), -(19891, 0, "'t'"), -(19892, 0, "' '"), -(19893, 0, "'d'"), -(19894, 0, "'o'"), -(19895, 0, "'e'"), -(19896, 0, "'s'"), -(19897, 0, "'n'"), -(19898, 0, "'''"), -(19899, 0, "'t'"), -(19900, 0, "' '"), -(19901, 0, "'c'"), -(19902, 0, "'o'"), -(19903, 0, "'m'"), -(19904, 0, "'p'"), -(19905, 0, "'e'"), -(19905, 1, "''"), -(19904, 1, "''"), -(19904, 0, "'e'"), -(19905, 0, "' '"), -(19906, 0, "'i'"), -(19907, 0, "'n'"), -(19908, 0, "'t'"), -(19909, 0, "'o'"), -(19910, 0, "' '"), -(19911, 0, "'p'"), -(19912, 0, "'l'"), -(19913, 0, "'a'"), -(19914, 0, "'y'"), -(19915, 0, "' '"), -(19916, 0, "'h'"), -(19917, 0, "'e'"), -(19918, 0, "'r'"), -(19919, 0, "'e'"), -(19920, 0, "','"), -(19921, 0, "' '"), -(19922, 0, "'b'"), -(19923, 0, "'u'"), -(19924, 0, "'t'"), -(19925, 0, "' '"), -(19926, 0, "'w'"), -(19927, 0, "'h'"), -(19928, 0, "'e'"), -(19929, 0, "'n'"), -(19930, 0, "' '"), -(19931, 0, "'m'"), -(19932, 0, "'e'"), -(19933, 0, "'r'"), -(19934, 0, "'g'"), -(19935, 0, "'i'"), -(19936, 0, "'n'"), -(19937, 0, "'g'"), -(19938, 0, "' '"), -(19939, 0, "'r'"), -(19940, 0, "'e'"), -(19941, 0, "'m'"), -(19942, 0, "'o'"), -(19943, 0, "'t'"), -(19944, 0, "'e'"), -(19945, 0, "' '"), -(19946, 0, "'e'"), -(19947, 0, "'d'"), -(19948, 0, "'i'"), -(19949, 0, "'t'"), -(19950, 0, "'s'"), -(19951, 0, "' '"), -(19952, 0, "'w'"), -(19953, 0, "'e'"), -(19954, 0, "' '"), -(19955, 0, "'a'"), -(19956, 0, "'l'"), -(19957, 0, "'s'"), -(19958, 0, "'o'"), -(19959, 0, "' '"), -(19960, 0, "'n'"), -(19961, 0, "'e'"), -(19962, 0, "'e'"), -(19963, 0, "'d'"), -(19964, 0, "' '"), -(19965, 0, "'t'"), -(19966, 0, "'o'"), -(19967, 0, "' '"), -(19968, 0, "'f'"), -(19969, 0, "'i'"), -(19970, 0, "'n'"), -(19971, 0, "'d'"), -(19972, 0, "' '"), -(19973, 0, "'i'"), -(19974, 0, "'t'"), -(19975, 0, "'e'"), -(19976, 0, "'m'"), -(19977, 0, "'s'"), -(19978, 0, "' '"), -(19979, 0, "'b'"), -(19980, 0, "'y'"), -(19981, 0, "' '"), -(19982, 0, "'t'"), -(19983, 0, "'h'"), -(19984, 0, "'e'"), -(19985, 0, "'i'"), -(19986, 0, "'r'"), -(19987, 0, "' '"), -(19988, 0, "'I'"), -(19989, 0, "'D'"), -(19990, 0, "' '"), -(19991, 0, "'('"), -(19992, 71, "''"), -(20009, 0, "' '"), -(20010, 0, "'M'"), -(20011, 0, "'y'"), -(20012, 0, "' '"), -(20013, 0, "'r'"), -(20014, 0, "'u'"), -(20015, 0, "'s'"), -(20016, 0, "'t'"), -(20017, 0, "' '"), -(20018, 0, "'i'"), -(20019, 0, "'m'"), -(20020, 0, "'p'"), -(20021, 0, "'l'"), -(20022, 0, "'e'"), -(20023, 0, "'m'"), -(20024, 0, "'e'"), -(20025, 0, "'n'"), -(20026, 0, "'t'"), -(20027, 0, "'a'"), -(20028, 0, "'t'"), -(20029, 0, "'i'"), -(20030, 0, "'o'"), -(20031, 0, "'n'"), -(20032, 0, "' '"), -(20033, 0, "'h'"), -(20034, 0, "'a'"), -(20035, 0, "'s'"), -(20036, 0, "' '"), -(20037, 0, "'a'"), -(20038, 0, "'n'"), -(20039, 0, "' '"), -(20040, 0, "'i'"), -(20041, 0, "'n'"), -(20042, 0, "'d'"), -(20043, 0, "'e'"), -(20044, 0, "'x'"), -(20045, 0, "' '"), -(20046, 0, "'t'"), -(20047, 0, "'o'"), -(20048, 0, "' '"), -(20049, 0, "'m'"), -(20050, 0, "'a'"), -(20051, 0, "'k'"), -(20052, 0, "'e'"), -(20053, 0, "' '"), -(20054, 0, "'t'"), -(20055, 0, "'h'"), -(20056, 0, "'i'"), -(20057, 0, "'s'"), -(20058, 0, "' '"), -(20059, 0, "'f'"), -(20060, 0, "'a'"), -(20061, 0, "'s'"), -(20062, 0, "'t'"), -(20063, 0, "','"), -(20064, 0, "' '"), -(20065, 0, "'t'"), -(20066, 0, "'o'"), -(20067, 0, "'o'"), -(20068, 0, "'.'"), -(20071, 39, "'I'"), -(20072, 0, "'''"), -(20073, 0, "'m'"), -(20074, 0, "' '"), -(20075, 0, "'n'"), -(20076, 0, "'o'"), -(20077, 0, "'t'"), -(20078, 0, "' '"), -(20079, 0, "'u'"), -(20080, 0, "'s'"), -(20081, 0, "'i'"), -(20082, 0, "'n'"), -(20083, 0, "'g'"), -(20125, 0, "' '"), -(20126, 0, "'-'"), -(20127, 0, "' '"), -(20128, 0, "'w'"), -(20129, 0, "'h'"), -(20130, 0, "'i'"), -(20131, 0, "'c'"), -(20132, 0, "'h'"), -(20133, 0, "' '"), -(20134, 0, "'m'"), -(20135, 0, "'i'"), -(20136, 0, "'g'"), -(20137, 0, "'h'"), -(20138, 0, "'t'"), -(20139, 0, "' '"), -(20140, 0, "'m'"), -(20141, 0, "'a'"), -(20142, 0, "'k'"), -(20143, 0, "'e'"), -(20144, 0, "' '"), -(20145, 0, "'i'"), -(20146, 0, "'t'"), -(20147, 0, "' '"), -(20128, 20, "'a'"), -(20129, 0, "'t'"), -(20130, 0, "' '"), -(20131, 0, "'l'"), -(20132, 0, "'e'"), -(20133, 0, "'a'"), -(20134, 0, "'s'"), -(20135, 0, "'t'"), -(20136, 0, "' '"), -(20137, 0, "'n'"), -(20138, 0, "'o'"), -(20139, 0, "'t'"), -(20140, 0, "' '"), -(20141, 0, "'y'"), -(20142, 0, "'e'"), -(20143, 0, "'t'"), -(20148, 0, "'j'"), -(20149, 0, "'u'"), -(20150, 0, "'s'"), -(20151, 0, "'t'"), -(20152, 0, "' '"), -(20166, 10, "' '"), -(20167, 0, "'i'"), -(20168, 0, "'t'"), -(20169, 0, "'.'"), -(20146, 0, "'M'"), -(20147, 0, "'a'"), -(20148, 0, "'y'"), -(20149, 0, "'b'"), -(20150, 0, "' '"), -(20151, 0, "'e'"), -(20152, 0, "'i'"), -(20153, 0, "'t'"), -(20154, 0, "' '"), -(20155, 0, "'w'"), -(20155, 1, "''"), -(20154, 1, "''"), -(20153, 1, "''"), -(20152, 1, "''"), -(20151, 1, "''"), -(20150, 1, "''"), -(20150, 0, "'e'"), -(20151, 0, "' '"), -(20152, 0, "'i'"), -(20153, 0, "'t'"), -(20154, 0, "' '"), -(20155, 0, "'w'"), -(20156, 0, "'o'"), -(20157, 0, "'u'"), -(20158, 0, "'l'"), -(20159, 0, "'d'"), -(20160, 0, "' '"), -(20161, 0, "'h'"), -(20162, 0, "'e'"), -(20163, 0, "'l'"), -(20164, 0, "'p'"), -(20165, 0, "'?'"), -(20166, 0, "' '"), -(20168, 5, "''"), -(20192, 45, "''"), -(20192, 0, "' '"), -(20193, 0, "'a'"), -(20194, 0, "'v'"), -(20195, 0, "'o'"), -(20196, 0, "'i'"), -(20197, 0, "'d'"), -(20198, 0, "'s'"), -(20199, 0, "' '"), -(20199, 1, "''"), -(20192, 7, "''"), -(20192, 0, "' lets us pack all the items tightly in memory'"), -(20192, 45, "' '"), -(20193, 0, "'g'"), -(20194, 0, "'i'"), -(20195, 0, "'v'"), -(20196, 0, "'e'"), -(20197, 0, "'s'"), -(20198, 0, "' '"), -(20199, 0, "'u'"), -(20200, 0, "'s'"), -(20201, 0, "' '"), -(20202, 0, "'t'"), -(20203, 0, "'o'"), -(20204, 0, "'t'"), -(20205, 0, "'a'"), -(20206, 0, "'l'"), -(20207, 0, "' '"), -(20208, 0, "'c'"), -(20209, 0, "'o'"), -(20210, 0, "'n'"), -(20211, 0, "'t'"), -(20212, 0, "'r'"), -(20213, 0, "'o'"), -(20214, 0, "'l'"), -(20215, 0, "' '"), -(20216, 0, "'o'"), -(20217, 0, "'v'"), -(20218, 0, "'e'"), -(20219, 0, "'r'"), -(20220, 0, "' '"), -(20221, 0, "'t'"), -(20222, 0, "'h'"), -(20223, 0, "'e'"), -(20224, 0, "' '"), -(20225, 0, "'m'"), -(20226, 0, "'e'"), -(20227, 0, "'m'"), -(20228, 0, "'o'"), -(20229, 0, "'r'"), -(20230, 0, "'y'"), -(20231, 0, "' '"), -(20232, 0, "'l'"), -(20233, 0, "'a'"), -(20234, 0, "'t'"), -(20234, 1, "''"), -(20234, 0, "'y'"), -(20235, 0, "'o'"), -(20236, 0, "'u'"), -(20237, 0, "'t'"), -(20238, 0, "','"), -(20239, 0, "' '"), -(20240, 0, "'s'"), -(20241, 0, "'o'"), -(20242, 0, "' '"), -(20243, 0, "'w'"), -(20244, 0, "'e'"), -(20245, 0, "' '"), -(20246, 0, "'c'"), -(20247, 0, "'a'"), -(20248, 0, "'n'"), -(20249, 0, "' '"), -(20250, 0, "'p'"), -(20251, 0, "'a'"), -(20252, 0, "'c'"), -(20253, 0, "'k'"), -(20254, 0, "' '"), -(20255, 0, "'e'"), -(20256, 0, "'v'"), -(20257, 0, "'e'"), -(20258, 0, "'r'"), -(20259, 0, "'y'"), -(20260, 0, "'t'"), -(20261, 0, "'h'"), -(20262, 0, "'i'"), -(20263, 0, "'n'"), -(20264, 0, "'g'"), -(20265, 0, "' '"), -(20266, 0, "'i'"), -(20267, 0, "'n'"), -(20268, 0, "' '"), -(20269, 0, "'t'"), -(20270, 0, "'i'"), -(20271, 0, "'g'"), -(20272, 0, "'h'"), -(20273, 0, "'t'"), -(20274, 0, "'l'"), -(20275, 0, "'y'"), -(20309, 0, "'a'"), -(20310, 0, "' '"), -(20311, 0, "'r'"), -(20312, 0, "'u'"), -(20313, 0, "'n'"), -(20314, 0, "' '"), -(20315, 0, "'o'"), -(20316, 0, "'f'"), -(20317, 0, "' '"), -(20328, 28, "''"), -(20328, 0, "' '"), -(20328, 1, "''"), -(20328, 0, "','"), -(20329, 0, "' '"), -(20330, 0, "'a'"), -(20331, 0, "'l'"), -(20332, 0, "'l'"), -(20333, 0, "' '"), -(20334, 0, "'p'"), -(20335, 0, "'a'"), -(20336, 0, "'c'"), -(20337, 0, "'k'"), -(20338, 0, "'e'"), -(20339, 0, "'d'"), -(20334, 6, "'a'"), -(20335, 0, "'d'"), -(20336, 0, "'j'"), -(20337, 0, "'a'"), -(20338, 0, "'c'"), -(20339, 0, "'e'"), -(20340, 0, "'n'"), -(20341, 0, "'t'"), -(20342, 0, "' '"), -(20343, 0, "'i'"), -(20344, 0, "'n'"), -(20345, 0, "' '"), -(20346, 0, "'R'"), -(20347, 0, "'A'"), -(20348, 0, "'M'"), -(20436, 3, "'M'"), -(20437, 0, "'e'"), -(20438, 0, "'m'"), -(20439, 0, "'c'"), -(20440, 0, "'p'"), -(20441, 0, "'y'"), -(20442, 7, "' '"), -(20443, 0, "'i'"), -(20444, 0, "'s'"), -(20445, 0, "' '"), -(20446, 0, "'a'"), -(20447, 0, "'l'"), -(20448, 0, "'w'"), -(20449, 0, "'a'"), -(20450, 0, "'y'"), -(20451, 0, "'s'"), -(20483, 1, "''"), -(20483, 0, "' '"), -(20484, 0, "'-'"), -(20485, 0, "' '"), -(20486, 0, "'i'"), -(20487, 0, "'t'"), -(20488, 0, "'s'"), -(20489, 0, "' '"), -(20490, 0, "'a'"), -(20491, 0, "' '"), -(20492, 0, "'f'"), -(20493, 0, "'e'"), -(20494, 0, "'w'"), -(20495, 0, "' '"), -(20496, 0, "'h'"), -(20497, 0, "'e'"), -(20498, 0, "'a'"), -(20499, 0, "'r'"), -(20500, 0, "'b'"), -(20500, 1, "''"), -(20500, 0, "'t'"), -(20501, 0, "' '"), -(20502, 0, "'b'"), -(20503, 0, "'e'"), -(20504, 0, "'a'"), -(20505, 0, "'t'"), -(20506, 0, "'s'"), -(20507, 0, "'.'"), -(20508, 0, "' '"), -(20509, 0, "'N'"), -(20510, 0, "'o'"), -(20511, 0, "'t'"), -(20512, 0, "' '"), -(20513, 0, "'a'"), -(20514, 0, "' '"), -(20515, 0, "'s'"), -(20516, 0, "'c'"), -(20517, 0, "'a'"), -(20518, 0, "'v'"), -(20519, 0, "'e'"), -(20520, 0, "'n'"), -(20521, 0, "'g'"), -(20522, 0, "'e'"), -(20523, 0, "'r'"), -(20524, 0, "' '"), -(20525, 0, "'h'"), -(20526, 0, "'u'"), -(20527, 0, "'n'"), -(20528, 0, "'t'"), -(20529, 0, "'.'"), -(20486, 4, "''"), -(20486, 0, "'i'"), -(20487, 0, "'t'"), -(20488, 0, "'s'"), -(20489, 0, "' '"), -(20513, 0, "'t'"), -(20514, 0, "'h'"), -(20515, 0, "'e'"), -(20516, 0, "' '"), -(20517, 2, "''"), -(20531, 0, "' '"), -(20532, 0, "'o'"), -(20533, 0, "'f'"), -(20534, 0, "' '"), -(20535, 0, "'a'"), -(20536, 0, "' '"), -(20537, 0, "'m'"), -(20538, 0, "'a'"), -(20539, 0, "'i'"), -(20540, 0, "'n'"), -(20541, 0, "' '"), -(20542, 0, "'m'"), -(20543, 0, "'e'"), -(20544, 0, "'m'"), -(20545, 0, "'o'"), -(20546, 0, "'r'"), -(20547, 0, "'y'"), -(20548, 0, "' '"), -(20549, 0, "'l'"), -(20550, 0, "'o'"), -(20551, 0, "'o'"), -(20552, 0, "'k'"), -(20553, 0, "'u'"), -(20554, 0, "'p'"), -(20642, 6, "'w'"), -(20643, 0, "'e'"), -(20644, 0, "' '"), -(20645, 0, "'c'"), -(20646, 0, "'a'"), -(20647, 0, "'n'"), -(20648, 0, "' '"), -(20649, 0, "'n'"), -(20650, 0, "'o'"), -(20651, 0, "'w'"), -(20652, 0, "' '"), -(20653, 0, "'p'"), -(20654, 0, "'r'"), -(20655, 0, "'o'"), -(20656, 0, "'c'"), -(20657, 0, "'e'"), -(20658, 0, "'s'"), -(20659, 0, "' '"), -(20659, 1, "''"), -(20659, 0, "'s'"), -(20660, 0, "' '"), -(20661, 0, "'t'"), -(20662, 0, "'h'"), -(20663, 0, "'e'"), -(20664, 0, "' '"), -(20665, 0, "'w'"), -(20666, 0, "'h'"), -(20667, 0, "'o'"), -(20668, 0, "'l'"), -(20669, 0, "'e'"), -(20670, 0, "' '"), -(20671, 0, "'t'"), -(20672, 0, "'r'"), -(20673, 0, "'a'"), -(20674, 0, "'c'"), -(20675, 0, "'e'"), -(20676, 0, "' '"), -(20677, 0, "'i'"), -(20678, 0, "'n'"), -(20679, 7, "''"), -(20598, 12, "'D'"), -(20599, 0, "'r'"), -(20600, 0, "'i'"), -(20601, 0, "'v'"), -(20602, 0, "'e'"), -(20603, 0, "'n'"), -(20604, 0, "' '"), -(20605, 0, "'f'"), -(20606, 0, "'r'"), -(20607, 0, "'o'"), -(20608, 0, "'m'"), -(20609, 0, "' '"), -(20621, 7, "'t'"), -(20622, 0, "'o'"), -(20598, 25, "'I'"), -(20599, 0, "'f'"), -(20600, 0, "' '"), -(20601, 0, "'w'"), -(20602, 0, "'e'"), -(20603, 0, "' '"), -(20604, 0, "'c'"), -(20605, 0, "'o'"), -(20606, 0, "'m'"), -(20607, 0, "'p'"), -(20608, 0, "'i'"), -(20609, 0, "'l'"), -(20610, 0, "'e'"), -(20611, 0, "' '"), -(20612, 0, "'t'"), -(20613, 0, "'h'"), -(20614, 0, "'i'"), -(20615, 0, "'s'"), -(20616, 0, "' '"), -(20617, 0, "'c'"), -(20618, 0, "'o'"), -(20619, 0, "'d'"), -(20620, 0, "'e'"), -(20621, 0, "' '"), -(20622, 0, "'t'"), -(20623, 0, "'o'"), -(20636, 0, "' '"), -(20637, 0, "'a'"), -(20638, 0, "'n'"), -(20639, 0, "'d'"), -(20640, 0, "' '"), -(20641, 0, "'d'"), -(20642, 0, "'r'"), -(20643, 0, "'i'"), -(20644, 0, "'v'"), -(20645, 0, "'e'"), -(20646, 0, "' '"), -(20647, 0, "'i'"), -(20648, 0, "'t'"), -(20649, 0, "' '"), -(20650, 0, "'f'"), -(20651, 0, "'r'"), -(20652, 0, "'o'"), -(20653, 0, "'m'"), -(20654, 0, "' '"), -(20655, 0, "'j'"), -(20656, 0, "'a'"), -(20657, 0, "'v'"), -(20658, 0, "'a'"), -(20659, 0, "'s'"), -(20660, 0, "'c'"), -(20661, 0, "'r'"), -(20662, 0, "'i'"), -(20663, 0, "'p'"), -(20664, 0, "'t'"), -(20723, 0, "'A'"), -(20724, 0, "'n'"), -(20725, 0, "'d'"), -(20726, 0, "' '"), -(20727, 0, "'i'"), -(20728, 0, "'f'"), -(20729, 0, "' '"), -(20730, 0, "'w'"), -(20731, 0, "'e'"), -(20732, 0, "' '"), -(20733, 0, "'c'"), -(20734, 0, "'o'"), -(20735, 0, "'m'"), -(20736, 0, "'p'"), -(20737, 0, "'i'"), -(20738, 0, "'l'"), -(20739, 0, "'e'"), -(20740, 0, "' '"), -(20741, 0, "'i'"), -(20742, 0, "'t'"), -(20743, 0, "' '"), -(20744, 0, "'t'"), -(20745, 0, "'o'"), -(20746, 0, "' '"), -(20747, 0, "'n'"), -(20748, 0, "'a'"), -(20749, 0, "'t'"), -(20750, 0, "'i'"), -(20751, 0, "'v'"), -(20752, 0, "'e'"), -(20753, 0, "' '"), -(20754, 0, "'c'"), -(20755, 0, "'o'"), -(20756, 0, "'d'"), -(20757, 0, "'e'"), -(20758, 0, "' '"), -(20759, 0, "'a'"), -(20760, 0, "'n'"), -(20761, 0, "'d'"), -(20762, 0, "' '"), -(20763, 6, "'c'"), -(20764, 0, "'a'"), -(20765, 0, "'l'"), -(20766, 0, "'l'"), -(20767, 0, "' '"), -(20768, 0, "'i'"), -(20769, 0, "'t'"), -(20828, 0, "'*'"), -(20844, 0, "'*'"), -(20845, 1, "''"), -(20845, 0, "':'"), -(20845, 1, "''"), -(20845, 0, "'.'"), -(21353, 0, "'I'"), -(21354, 0, "'''"), -(21355, 0, "'v'"), -(21356, 0, "'e'"), -(21357, 0, "' '"), -(21358, 0, "'d'"), -(21359, 0, "'o'"), -(21360, 0, "'n'"), -(21361, 0, "'e'"), -(21362, 0, "' '"), -(21363, 8, "''"), -(21377, 10, "''"), -(21352, 0, "'n'"), -(21352, 0, "'n'"), -(21353, 0, "'-'"), -(21354, 0, "'-'"), -(21355, 0, "'-'"), -(21461, 0, "' '"), -(21462, 0, "'a'"), -(21463, 0, "'n'"), -(21464, 0, "'d'"), -(21465, 0, "' '"), -(21466, 0, "'I'"), -(21467, 0, "' '"), -(21468, 0, "'c'"), -(21469, 0, "'o'"), -(21470, 0, "'u'"), -(21471, 0, "'l'"), -(21472, 0, "'d'"), -(21473, 0, "'n'"), -(21474, 0, "'''"), -(21475, 0, "'t'"), -(21476, 0, "' '"), -(21477, 0, "'h'"), -(21478, 0, "'e'"), -(21479, 0, "'l'"), -(21480, 0, "'p'"), -(21481, 0, "' '"), -(21482, 0, "'m'"), -(21483, 0, "'y'"), -(21484, 0, "'s'"), -(21485, 0, "'e'"), -(21486, 0, "'l'"), -(21487, 0, "'f'"), -(21490, 0, "'I'"), -(21491, 0, "'n'"), -(21492, 0, "' '"), -(21493, 0, "'t'"), -(21494, 0, "'h'"), -(21495, 0, "'i'"), -(21496, 0, "'s'"), -(21497, 0, "' '"), -(21498, 0, "'i'"), -(21499, 0, "'m'"), -(21500, 0, "'p'"), -(21501, 0, "'l'"), -(21502, 0, "'e'"), -(21503, 0, "'m'"), -(21504, 0, "'e'"), -(21505, 0, "'n'"), -(21506, 0, "'t'"), -(21507, 0, "'a'"), -(21508, 0, "'t'"), -(21509, 0, "'i'"), -(21510, 0, "'o'"), -(21511, 0, "'n'"), -(21512, 0, "','"), -(21513, 0, "' '"), -(21541, 4, "''"), -(21525, 0, "' '"), -(21526, 0, "'t'"), -(21527, 0, "'e'"), -(21528, 0, "'x'"), -(21529, 0, "'t'"), -(21577, 0, "' '"), -(21578, 0, "'T'"), -(21579, 0, "'h'"), -(21580, 0, "'e'"), -(21581, 0, "' '"), -(21582, 0, "'r'"), -(21583, 0, "'e'"), -(21584, 0, "'a'"), -(21585, 0, "'s'"), -(21586, 0, "'o'"), -(21587, 0, "'n'"), -(21588, 0, "' '"), -(21589, 0, "'i'"), -(21590, 0, "'s'"), -(21591, 0, "' '"), -(21592, 0, "'t'"), -(21593, 0, "'h'"), -(21594, 0, "'a'"), -(21595, 0, "'t'"), -(21597, 1, "''"), -(21597, 0, "'w'"), -(21842, 0, "' '"), -(21843, 0, "'t'"), -(21844, 0, "'o'"), -(21845, 0, "'o'"), -(21772, 1, "''"), -(21772, 0, "' '"), -(21773, 0, "'d'"), -(21774, 0, "'o'"), -(21775, 0, "'n'"), -(21776, 0, "'''"), -(21777, 0, "'t'"), -(21778, 0, "' '"), -(21779, 0, "'t'"), -(21780, 0, "'h'"), -(21781, 0, "'i'"), -(21782, 0, "'n'"), -(21783, 0, "'k'"), -(21784, 0, "' '"), -(21785, 0, "'i'"), -(21786, 0, "'t'"), -(21787, 8, "''"), -(21792, 0, "'s'"), -(21859, 3, "'m'"), -(21859, 1, "''"), -(21856, 3, "''"), -(21856, 0, "'M'"), -(21857, 0, "'y'"), -(21917, 28, "''"), -(21917, 0, "'['"), -(21918, 0, "'i'"), -(21918, 1, "''"), -(21917, 1, "''"), -(21917, 0, "'B'"), -(21918, 0, "'t'"), -(21919, 0, "'r'"), -(21920, 0, "'e'"), -(21921, 0, "'e'"), -(21917, 0, "'<'"), -(21923, 0, "' '"), -(21924, 0, "'o'"), -(21925, 0, "'f'"), -(21926, 0, "' '"), -(21927, 0, "'{'"), -(21927, 1, "''"), -(21927, 0, "'['"), -(21928, 0, "'i'"), -(21929, 0, "'t'"), -(21930, 0, "'e'"), -(21931, 0, "'m'"), -(21932, 0, "','"), -(21933, 0, "' '"), -(21934, 0, "'i'"), -(21935, 0, "'t'"), -(21936, 0, "'e'"), -(21937, 0, "'m'"), -(21938, 0, "' '"), -(21939, 0, "'i'"), -(21940, 0, "'t'"), -(21941, 0, "'e'"), -(21942, 0, "'m'"), -(21938, 0, "','"), -(21944, 0, "','"), -(21945, 0, "' '"), -(21946, 0, "'.'"), -(21947, 0, "'.'"), -(21948, 0, "'.'"), -(21949, 0, "']'"), -(21932, 0, "' '"), -(21933, 0, "'s'"), -(21934, 0, "'p'"), -(21935, 0, "'a'"), -(21936, 0, "'n'"), -(21943, 0, "' '"), -(21944, 0, "'s'"), -(21945, 0, "'p'"), -(21946, 0, "'a'"), -(21947, 0, "'n'"), -(21950, 6, "''"), -(21954, 1, "''"), -(21954, 0, "'>'"), -(21955, 0, "','"), -(16869, 0, "'M'"), -(16870, 0, "'a'"), -(16871, 0, "'k'"), -(16872, 0, "'i'"), -(16873, 0, "'n'"), -(16874, 0, "'g'"), -(16875, 0, "' '"), -(16876, 0, "'i'"), -(16877, 0, "'t'"), -(16878, 0, "' '"), -(16879, 1, "''"), -(16879, 0, "'f'"), -(21362, 0, "'n'"), -(21362, 0, "'n'"), -(21363, 0, "'T'"), -(21364, 0, "'h'"), -(21365, 0, "'i'"), -(21365, 1, "''"), -(21364, 1, "''"), -(21363, 1, "''"), -(21363, 0, "'T'"), -(21364, 0, "'h'"), -(21365, 0, "'i'"), -(21366, 0, "'s'"), -(21367, 0, "' '"), -(21368, 0, "'c'"), -(21369, 0, "'o'"), -(21370, 0, "'d'"), -(21371, 0, "'e'"), -(21372, 0, "' '"), -(21373, 0, "'i'"), -(21374, 0, "'s'"), -(21375, 0, "' '"), -(21376, 0, "'f'"), -(21377, 0, "'a'"), -(21378, 0, "'s'"), -(21379, 0, "'t'"), -(21380, 0, "'e'"), -(21381, 0, "'r'"), -(21382, 0, "' '"), -(21383, 0, "'t'"), -(21384, 0, "'h'"), -(21385, 0, "'a'"), -(21386, 0, "'n'"), -(21387, 0, "' '"), -(21388, 0, "'u'"), -(21389, 0, "'s'"), -(21390, 0, "'i'"), -(21391, 0, "'n'"), -(21392, 0, "'g'"), -(21393, 0, "' '"), -(21394, 0, "'a'"), -(21395, 0, "' '"), -(21396, 0, "'r'"), -(21397, 0, "'a'"), -(21398, 0, "'w'"), -(21399, 0, "' '"), -(21400, 0, "'j'"), -(21401, 0, "'a'"), -(21402, 0, "'v'"), -(21403, 0, "'a'"), -(21404, 0, "'s'"), -(21405, 0, "'c'"), -(21406, 0, "'r'"), -(21407, 0, "'i'"), -(21408, 0, "'p'"), -(21409, 0, "'t'"), -(21410, 0, "' '"), -(21411, 0, "'s'"), -(21412, 0, "'t'"), -(21413, 0, "'r'"), -(21414, 0, "'i'"), -(21415, 0, "'n'"), -(21416, 0, "'g'"), -(21417, 0, "'.'"), -(21388, 0, "'e'"), -(21389, 0, "'d'"), -(21390, 0, "'i'"), -(21391, 0, "'t'"), -(21392, 0, "'i'"), -(21393, 0, "'n'"), -(21394, 0, "'g'"), -(21395, 5, "''"), -(21397, 0, "' '"), -(21398, 0, "'n'"), -(21399, 0, "'o'"), -(21400, 0, "'r'"), -(21401, 0, "'m'"), -(21402, 0, "'a'"), -(21403, 0, "'l'"), -(21404, 4, "''"), -(21363, 0, "'E'"), -(21364, 0, "'v'"), -(21365, 0, "'e'"), -(21366, 0, "'n'"), -(21367, 0, "' '"), -(21368, 0, "'f'"), -(21369, 0, "'r'"), -(21370, 0, "'o'"), -(21371, 0, "'m'"), -(21372, 0, "' '"), -(21373, 0, "'w'"), -(21374, 0, "'e'"), -(21375, 0, "'b'"), -(21376, 0, "'a'"), -(21377, 0, "'s'"), -(21378, 0, "'s'"), -(21379, 0, "'e'"), -(21380, 0, "'m'"), -(21381, 0, "'b'"), -(21382, 0, "'l'"), -(21383, 0, "'y'"), -(21384, 0, "' '"), -(21384, 1, "''"), -(21384, 0, "','"), -(21385, 0, "' '"), -(21368, 4, "'t'"), -(21369, 0, "'h'"), -(21370, 0, "'r'"), -(21371, 0, "'o'"), -(21372, 0, "'u'"), -(21373, 0, "'g'"), -(21374, 0, "'h'"), -(21389, 1, "''"), -(21389, 0, "'t'"), -(21401, 0, "' '"), -(21402, 0, "'3'"), -(21403, 0, "'x'"), -(21426, 0, "' '"), -(21427, 0, "'n'"), -(21428, 0, "'a'"), -(21429, 0, "'i'"), -(21429, 1, "''"), -(21429, 0, "'t'"), -(21430, 0, "'i'"), -(21431, 0, "'v'"), -(21432, 0, "'e'"), -(21433, 7, "''"), -(21458, 0, "'n'"), -(21459, 0, "'B'"), -(21460, 0, "'u'"), -(21461, 0, "'t'"), -(21462, 1, "''"), -(21462, 0, "' '"), -(21552, 7, "' '"), -(21553, 0, "'s'"), -(21554, 0, "'o'"), -(21555, 0, "'u'"), -(21556, 0, "'n'"), -(21557, 0, "'d'"), -(21558, 0, "'e'"), -(21559, 0, "'d'"), -(21622, 5, "'s'"), -(21623, 0, "'p'"), -(21624, 0, "'l'"), -(21625, 0, "'i'"), -(21626, 0, "'t'"), -(21627, 0, "' '"), -(21628, 0, "'o'"), -(21629, 0, "'u'"), -(21630, 0, "'t'"), -(21635, 0, "' '"), -(21636, 0, "'d'"), -(21637, 0, "'o'"), -(21638, 0, "'c'"), -(21639, 0, "'u'"), -(21640, 0, "'m'"), -(21641, 0, "'e'"), -(21642, 0, "'n'"), -(21643, 0, "'t'"), -(21644, 0, "'''"), -(21645, 0, "'s'"), -(21660, 7, "''"), -(22136, 0, "'I'"), -(22137, 0, "'''"), -(22138, 0, "'m'"), -(22139, 0, "' '"), -(22136, 4, "''"), -(21968, 0, "' '"), -(21968, 1, "''"), -(21968, 0, "' '"), -(21969, 0, "'I'"), -(21970, 0, "'t'"), -(21971, 0, "'s'"), -(21972, 0, "' '"), -(21973, 0, "'a'"), -(21974, 0, "' '"), -(21975, 0, "'''"), -(21976, 0, "'s'"), -(21977, 0, "'t'"), -(21978, 0, "'r'"), -(21979, 0, "'u'"), -(21980, 0, "'c'"), -(21981, 0, "'t'"), -(21982, 0, "' '"), -(21983, 0, "'o'"), -(21984, 0, "'f'"), -(21985, 0, "' '"), -(21986, 0, "'a'"), -(21987, 0, "'r'"), -(21988, 0, "'r'"), -(21989, 0, "'a'"), -(21990, 0, "'y'"), -(21991, 0, "'s'"), -(21992, 0, "'''"), -(21993, 0, "' '"), -(21994, 0, "'r'"), -(21995, 0, "'a'"), -(21996, 0, "'t'"), -(21997, 0, "'h'"), -(21998, 0, "'e'"), -(21999, 0, "'r'"), -(22000, 0, "' '"), -(22001, 0, "'t'"), -(22002, 0, "'h'"), -(22003, 0, "'a'"), -(22004, 0, "'n'"), -(22005, 0, "' '"), -(22006, 0, "'''"), -(22007, 0, "'a'"), -(22008, 0, "'r'"), -(22009, 0, "'r'"), -(22010, 0, "'a'"), -(22011, 0, "'y'"), -(22012, 0, "' '"), -(22013, 0, "'o'"), -(22014, 0, "'f'"), -(22015, 0, "' '"), -(22016, 0, "'s'"), -(22017, 0, "'t'"), -(22018, 0, "'r'"), -(22019, 0, "'u'"), -(22020, 0, "'c'"), -(22021, 0, "'t'"), -(22022, 0, "'s'"), -(22023, 0, "'''"), -(22024, 0, "' '"), -(22025, 0, "'a'"), -(22026, 0, "'p'"), -(22027, 0, "'p'"), -(22028, 0, "'r'"), -(22029, 0, "'o'"), -(22030, 0, "'a'"), -(22031, 0, "'c'"), -(22032, 0, "'h'"), -(22033, 0, "'.'"), -(21968, 1, "''"), -(21968, 0, "'n'"), -(21969, 0, "'n'"), -(22037, 0, "'S'"), -(22038, 0, "'o'"), -(22039, 0, "' '"), -(22040, 1, "''"), -(22040, 0, "'m'"), -(22036, 1, "''"), -(22035, 1, "''"), -(22035, 0, "' '"), -(22036, 4, "'M'"), -(22034, 1, "''"), -(22034, 0, "','"), -(22035, 0, "' '"), -(22036, 0, "'w'"), -(22037, 0, "'i'"), -(22038, 0, "'t'"), -(22039, 0, "'h'"), -(22041, 1, "''"), -(22041, 0, "'m'"), -(22074, 1, "''"), -(22074, 0, "'i'"), -(22075, 0, "'n'"), -(22076, 0, "'g'"), -(22415, 0, "'S'"), -(22416, 0, "'o'"), -(22417, 0, "' '"), -(22418, 1, "''"), -(22418, 0, "'l'"), -(23120, 14, "''"), -(23120, 0, "'.'"), -(23121, 0, "' '"), -(23122, 0, "'T'"), -(23123, 0, "'h'"), -(23124, 0, "'a'"), -(23125, 0, "'t'"), -(23126, 0, "'s'"), -(23127, 0, "' '"), -(23128, 0, "'h'"), -(23129, 0, "'o'"), -(23130, 0, "'w'"), -(23131, 0, "' '"), -(23132, 0, "'y'"), -(23133, 0, "'o'"), -(23134, 0, "'u'"), -(23135, 0, "' '"), -(23136, 0, "'i'"), -(23137, 0, "'m'"), -(23138, 0, "'p'"), -(23139, 0, "'l'"), -(23140, 0, "'e'"), -(23141, 0, "'m'"), -(23142, 0, "'e'"), -(23143, 0, "'n'"), -(23144, 0, "'t'"), -(23145, 0, "' '"), -(23146, 0, "'a'"), -(23147, 0, "' '"), -(23148, 0, "'C'"), -(23149, 0, "'R'"), -(23150, 0, "'D'"), -(23151, 0, "'T'"), -(23152, 0, "'.'"), -(22595, 0, "' '"), -(22596, 0, "'S'"), -(22597, 0, "'e'"), -(22598, 0, "'m'"), -(22599, 0, "'a'"), -(22600, 0, "'n'"), -(22601, 0, "'t'"), -(22602, 0, "'i'"), -(22603, 0, "'c'"), -(22604, 0, "'s'"), -(22605, 0, "' '"), -(22606, 0, "'|'"), -(22607, 0, "' '"), -(22608, 0, "'L'"), -(22609, 0, "'A'"), -(22610, 0, "'n'"), -(22611, 0, "'g'"), -(22611, 1, "''"), -(22610, 1, "''"), -(22609, 1, "''"), -(22609, 0, "'a'"), -(22610, 0, "'n'"), -(22611, 0, "'g'"), -(22612, 0, "'u'"), -(22613, 0, "'a'"), -(22614, 0, "'g'"), -(22615, 0, "'e'"), -(22616, 0, "' '"), -(22617, 0, "'|'"), -(22618, 0, "' '"), -(22619, 0, "'D'"), -(22620, 0, "'a'"), -(22621, 0, "'t'"), -(22622, 0, "'a'"), -(22623, 0, "' '"), -(22624, 0, "'s'"), -(22625, 0, "'t'"), -(22626, 0, "'r'"), -(22627, 0, "'u'"), -(22628, 0, "'c'"), -(22629, 0, "'t'"), -(22630, 0, "'u'"), -(22631, 0, "'r'"), -(22632, 0, "'e'"), -(22696, 0, "' '"), -(22697, 0, "'-'"), -(22698, 0, "'-'"), -(22699, 0, "'-'"), -(22700, 0, "'-'"), -(22701, 0, "'-'"), -(22702, 0, "'-'"), -(22703, 0, "'-'"), -(22704, 0, "'-'"), -(22705, 0, "'-'"), -(22769, 0, "' '"), -(22770, 0, "'A'"), -(22771, 0, "'M'"), -(22771, 1, "''"), -(22770, 1, "''"), -(22770, 0, "'R'"), -(22771, 0, "'G'"), -(22772, 0, "'A'"), -(22836, 0, "'R'"), -(22837, 0, "'G'"), -(22838, 0, "'A'"), -(22838, 1, "''"), -(22837, 1, "''"), -(22836, 1, "''"), -(22836, 0, "' '"), -(22837, 0, "'R'"), -(22838, 0, "'G'"), -(22839, 0, "'A'"), -(22840, 0, "' '"), -(22841, 0, "'/'"), -(22842, 0, "' '"), -(22843, 0, "'Y'"), -(22844, 0, "'A'"), -(22845, 0, "'T'"), -(22846, 0, "'A'"), -(22910, 0, "' '"), -(22911, 0, "'Y'"), -(22912, 0, "'A'"), -(22913, 0, "'T'"), -(22914, 0, "'A'"), -(22978, 0, "' '"), -(22979, 0, "'('"), -(22980, 0, "'n'"), -(22981, 0, "'o'"), -(22982, 0, "'n'"), -(22983, 0, "'e'"), -(22984, 0, "')'"), -(23048, 0, "' '"), -(23049, 0, "'Y'"), -(23050, 0, "'A'"), -(23051, 0, "'T'"), -(23052, 0, "'A'"), -(23116, 0, "' '"), -(23117, 0, "'Y'"), -(23118, 0, "'A'"), -(23119, 0, "'T'"), -(23120, 0, "'A'"), -(23184, 0, "' '"), -(23185, 0, "'Y'"), -(23186, 0, "'A'"), -(23187, 0, "'T'"), -(23188, 0, "'A'"), -(22706, 0, "' '"), -(22634, 73, "'| -------------------------- | ---------- | --------- | ---------'"), -(22847, 0, "' '"), -(22848, 0, "'|'"), -(22773, 0, "' '"), -(22774, 0, "' '"), -(22775, 0, "' '"), -(22776, 0, "' '"), -(22777, 0, "' '"), -(22778, 0, "' '"), -(22779, 0, "' '"), -(22780, 0, "' '"), -(22781, 0, "'|'"), -(22606, 0, "' '"), -(22707, 0, "'-'"), -(22708, 0, "'-'"), -(22708, 1, "''"), -(22708, 0, "' '"), -(22709, 0, "'|'"), -(22710, 0, "' '"), -(22711, 0, "'-'"), -(22712, 0, "'-'"), -(22713, 0, "'-'"), -(22714, 0, "'-'"), -(22715, 0, "'-'"), -(22716, 0, "'-'"), -(22717, 0, "'-'"), -(22718, 0, "'-'"), -(22795, 0, "' '"), -(22796, 0, "'J'"), -(22797, 0, "'a'"), -(22798, 0, "'v'"), -(22799, 0, "'a'"), -(22800, 0, "'s'"), -(22801, 0, "'c'"), -(22802, 0, "'r'"), -(22803, 0, "'i'"), -(22804, 0, "'p'"), -(22805, 0, "'t'"), -(22796, 10, "'J'"), -(22797, 0, "'S'"), -(22874, 0, "' '"), -(22875, 0, "'J'"), -(22876, 0, "'S'"), -(22945, 0, "' '"), -(22946, 0, "' '"), -(22947, 0, "' '"), -(22948, 0, "' '"), -(22949, 0, "' '"), -(22950, 0, "' '"), -(22951, 0, "' '"), -(22952, 0, "'|'"), -(22953, 0, "' '"), -(22954, 0, "'J'"), -(22955, 0, "'S'"), -(22596, 23, "''"), -(22595, 1, "''"), -(22674, 21, "''"), -(22674, 0, "'---------- | --------'"), -(22685, 10, "''"), -(22684, 1, "''"), -(22684, 0, "'-'"), -(22685, 0, "'-'"), -(22686, 0, "'-'"), -(22687, 0, "'-'"), -(22688, 0, "'-'"), -(22689, 0, "'|'"), -(22610, 0, "' '"), -(22611, 0, "'|'"), -(22756, 15, "''"), -(22756, 0, "'T'"), -(22756, 1, "''"), -(22756, 0, "'N'"), -(22757, 0, "'a'"), -(22758, 0, "'i'"), -(22759, 0, "'v'"), -(22760, 0, "'e'"), -(22761, 0, "'-'"), -(22762, 0, "'t'"), -(22763, 0, "'r'"), -(22764, 0, "'e'"), -(22765, 0, "'e'"), -(22766, 0, "' '"), -(22767, 0, "' '"), -(22768, 0, "' '"), -(22769, 0, "' '"), -(22770, 0, "' '"), -(22771, 0, "'|'"), -(22761, 1, "''"), -(22761, 0, "' '"), -(22836, 15, "''"), -(22836, 0, "'A'"), -(22837, 0, "'r'"), -(22838, 0, "'r'"), -(22839, 0, "'a'"), -(22840, 0, "'y'"), -(22841, 0, "' '"), -(22842, 0, "' '"), -(22843, 0, "' '"), -(22844, 0, "' '"), -(22845, 0, "' '"), -(22846, 0, "' '"), -(22847, 0, "' '"), -(22848, 0, "' '"), -(22849, 0, "' '"), -(22850, 0, "' '"), -(22851, 0, "'|'"), -(22916, 15, "''"), -(22916, 0, "'L'"), -(22917, 0, "'i'"), -(22918, 0, "'n'"), -(22919, 0, "'k'"), -(22920, 0, "'e'"), -(22921, 0, "'d'"), -(22922, 0, "' '"), -(22923, 0, "'l'"), -(22924, 0, "'i'"), -(22925, 0, "'s'"), -(22926, 0, "'t'"), -(22927, 0, "' '"), -(22928, 0, "' '"), -(22929, 0, "' '"), -(22930, 0, "' '"), -(22931, 0, "'|'"), -(22996, 6, "''"), -(22996, 0, "'('"), -(22997, 0, "'n'"), -(22998, 0, "'o'"), -(22999, 0, "'n'"), -(23000, 0, "'e'"), -(23001, 0, "')'"), -(23002, 0, "' '"), -(23003, 0, "' '"), -(23004, 0, "' '"), -(23005, 0, "' '"), -(23006, 0, "' '"), -(23007, 0, "' '"), -(23008, 0, "' '"), -(23009, 0, "' '"), -(23010, 0, "' '"), -(23011, 0, "'|'"), -(23076, 4, "''"), -(23013, 63, "'| Rust (Called from JS via WASM) | 0.20s | ??? |'"), -(23002, 0, "'*'"), -(22996, 0, "'*'"), -(23004, 1, "''"), -(23004, 1, "''"), -(23075, 0, "' '"), -(23076, 0, "'B'"), -(23077, 0, "'-'"), -(23078, 0, "'T'"), -(23079, 0, "'r'"), -(23080, 0, "'e'"), -(23081, 0, "'e'"), -(23146, 4, "'B'"), -(23147, 0, "'-'"), -(23148, 0, "'T'"), -(23149, 0, "'r'"), -(23150, 0, "'e'"), -(23151, 0, "'e'"), -(23216, 4, "'B'"), -(23217, 0, "'-'"), -(23218, 0, "'T'"), -(23219, 0, "'r'"), -(23220, 0, "'e'"), -(23221, 0, "'e'"), -(23082, 0, "' '"), -(23083, 0, "' '"), -(23084, 0, "' '"), -(23085, 0, "' '"), -(23086, 0, "' '"), -(23087, 0, "' '"), -(23088, 0, "' '"), -(23089, 0, "' '"), -(23090, 0, "' '"), -(23091, 0, "'|'"), -(23162, 0, "' '"), -(23093, 70, "'| Rust (native) | 0.065s | 2.3 MB | B-Tree'"), -(23162, 0, "' |'"), -(23242, 0, "' |'"), -(22946, 0, "'*'"), -(22935, 0, "'*'"), -(22948, 1, "''"), -(22948, 1, "''"), -(23306, 0, "'n'"), -(23307, 0, "'n'"), -(23308, 0, "'n'"), -(28386, 64, "'You can't tell from looking at this method, but insertionsAfter'"), -(24905, 4073, "''"), -(24694, 211, "''"), -(23308, 0, "'n'"), -(23309, 0, "'n'"), -(7740, 1, "''"), -(9091, 1, "''"), -(12498, 1, "''"), -(14480, 1, "''"), -(14479, 1, "''"), -(16861, 1, "''"), -(16858, 0, "'n'"), -(16859, 0, "'B'"), -(16860, 0, "'u'"), -(16861, 0, "'t'"), -(16862, 0, "' '"), -(16863, 0, "'w'"), -(16864, 0, "'e'"), -(16859, 6, "'W'"), -(16860, 0, "'e'"), -(16860, 1, "''"), -(16859, 1, "''"), -(16859, 0, "'B'"), -(16860, 0, "'u'"), -(16861, 0, "'t'"), -(16862, 0, "' '"), -(16863, 0, "'w'"), -(16864, 0, "'e'"), -(16865, 0, "' '"), -(16866, 0, "'c'"), -(16867, 0, "'a'"), -(16868, 0, "'n'"), -(16869, 0, "' '"), -(16870, 0, "'g'"), -(16871, 0, "'o'"), -(16872, 0, "' '"), -(16873, 0, "'f'"), -(16874, 0, "'a'"), -(16875, 0, "'s'"), -(16876, 0, "'t'"), -(16877, 0, "'e'"), -(16878, 0, "'r'"), -(16859, 5, "'W'"), -(16859, 16, "''"), -(17144, 0, "'n'"), -(16897, 1, "''"), -(17143, 0, "'n## Making it faster than Javascript'"), -(16861, 36, "''"), -(17107, 0, "'n'"), -(16860, 1, "''"), -(17106, 0, "'n'"), -(16859, 1, "''"), -(16858, 0, "'n'"), -(16858, 0, "'n'"), -(16859, 0, "'B'"), -(16860, 0, "'u'"), -(16861, 0, "'t'"), -(16862, 0, "' '"), -(16863, 0, "'c'"), -(16864, 0, "'a'"), -(16865, 0, "'n'"), -(16866, 0, "' '"), -(16867, 0, "'w'"), -(16868, 0, "'e'"), -(16869, 0, "' '"), -(16870, 0, "'s'"), -(16871, 0, "'t'"), -(16872, 0, "'i'"), -(16873, 0, "'l'"), -(16874, 0, "'l'"), -(16875, 0, "' '"), -(16876, 0, "'g'"), -(16877, 0, "'o'"), -(16878, 0, "' '"), -(16859, 5, "'C'"), -(16875, 0, "'f'"), -(16876, 0, "'a'"), -(16877, 0, "'s'"), -(16878, 0, "'t'"), -(16879, 0, "'e'"), -(16880, 0, "'r'"), -(16881, 0, "'?'"), -(16859, 0, "'B'"), -(16860, 0, "'u'"), -(16861, 0, "'t'"), -(16862, 0, "' '"), -(16863, 1, "''"), -(16863, 0, "'c'"), -(16859, 5, "'C'"), -(16859, 24, "'Can we still go faster?'"), -(16859, 270, "'Can we still go faster? Yjs is very well optimized already, and I suspect we can't make javascript run much faster in this test. If we want to continue to improve performance, we need more control over the memory layout - which we can do in a systems language like Rust.'"), -(17078, 51, "''"), -(17078, 0, "'.'"), -(17085, 11, "'F'"), -(17043, 0, "'t'"), -(17044, 0, "'o'"), -(17045, 0, "' '"), -(17046, 0, "'g'"), -(17047, 0, "'o'"), -(17048, 0, "' '"), -(17049, 0, "'l'"), -(17050, 0, "'o'"), -(17051, 0, "'w'"), -(17052, 0, "'e'"), -(17053, 0, "'r'"), -(17054, 0, "' '"), -(17055, 0, "'l'"), -(17056, 0, "'e'"), -(17057, 0, "'v'"), -(17058, 0, "'e'"), -(17059, 0, "'l'"), -(17060, 0, "'.'"), -(17061, 0, "' '"), -(17062, 0, "'W'"), -(17062, 1, "''"), -(17061, 1, "''"), -(17061, 0, "' '"), -(17062, 0, "'W'"), -(17063, 0, "'e'"), -(17064, 0, "' '"), -(17065, 0, "'n'"), -(17066, 0, "'e'"), -(17067, 0, "'e'"), -(17068, 0, "'d'"), -(17069, 4, "''"), -(16988, 113, "''"), -(16859, 129, "'Can we still go faster? Yjs is very well optimized already, and I suspect we can't make javascript run much faster in this test.'"), -(17016, 0, "'n'"), -(17017, 0, "'If we want to continue to improve performance, we need to go lower level. We need control over the memory layout.'"), -(16987, 0, "' '"), -(16988, 0, "'B'"), -(16989, 0, "'u'"), -(16990, 0, "'t'"), -(16991, 0, "' '"), -(16992, 0, "'m'"), -(16993, 0, "'a'"), -(16994, 0, "'y'"), -(16995, 0, "'b'"), -(16996, 0, "'e'"), -(16997, 0, "'.'"), -(16998, 0, "'.'"), -(16999, 0, "' '"), -(17000, 0, "'j'"), -(17001, 0, "'u'"), -(17002, 0, "'s'"), -(17003, 0, "'t'"), -(17004, 0, "' '"), -(17005, 0, "'m'"), -(17006, 0, "'a'"), -(17007, 0, "'y'"), -(17008, 0, "'b'"), -(17009, 0, "'e'"), -(17010, 0, "' '"), -(17011, 0, "'w'"), -(17012, 0, "'e'"), -(17013, 0, "' '"), -(17014, 0, "'c'"), -(17015, 0, "'a'"), -(17016, 0, "'n'"), -(17017, 0, "' '"), -(17018, 0, "'b'"), -(17019, 0, "'e'"), -(17020, 1, "''"), -(17104, 6, "'a'"), -(17105, 0, "' '"), -(17117, 0, "' '"), -(17118, 0, "'l'"), -(17119, 0, "'a'"), -(17120, 0, "'n'"), -(17121, 0, "'g'"), -(17122, 0, "'u'"), -(17123, 0, "'a'"), -(17124, 0, "'g'"), -(17125, 0, "'e'"), -(17126, 0, "','"), -(17127, 0, "' '"), -(17128, 0, "'a'"), -(17129, 0, "'n'"), -(17130, 0, "'d'"), -(17131, 0, "' '"), -(17132, 0, "'w'"), -(17133, 0, "'e'"), -(17134, 0, "' '"), -(17135, 0, "'n'"), -(17136, 0, "'e'"), -(17137, 0, "'e'"), -(17138, 0, "'d'"), -(17139, 9, "''"), -(17128, 0, "'s'"), -(17129, 0, "'o'"), -(17130, 0, "' '"), -(17131, 0, "'w'"), -(17132, 0, "'e'"), -(17133, 11, "' '"), -(17134, 0, "'c'"), -(17135, 0, "'a'"), -(17136, 0, "'n'"), -(17145, 5, "''"), -(17369, 12, "''"), -(17370, 1, "''"), -(17370, 0, "'Y'"), -(17398, 3, "'T'"), -(17399, 0, "'h'"), -(17400, 0, "'i'"), -(17401, 0, "'s'"), -(17402, 0, "' '"), -(17403, 0, "'i'"), -(17404, 0, "'s'"), -(17833, 0, "'H'"), -(17834, 0, "'o'"), -(17835, 0, "'w'"), -(17836, 0, "' '"), -(17837, 0, "'s'"), -(17838, 0, "'l'"), -(17839, 0, "'o'"), -(17840, 0, "'w'"), -(17841, 0, "'?'"), -(17842, 0, "' '"), -(17681, 1, "''"), -(17680, 1, "''"), -(17680, 0, "' '"), -(17831, 1, "''"), -(17831, 0, "'n'"), -(17832, 0, "'n'"), -(17841, 0, "' '"), -(17842, 0, "'a'"), -(17843, 0, "'r'"), -(17844, 0, "'e'"), -(17845, 0, "' '"), -(17846, 0, "'m'"), -(17847, 0, "'a'"), -(17848, 0, "'i'"), -(17849, 0, "'n'"), -(17850, 0, "' '"), -(17851, 0, "'m'"), -(17852, 0, "'e'"), -(17853, 0, "'m'"), -(17854, 0, "'o'"), -(17855, 0, "'r'"), -(17856, 0, "'y'"), -(17857, 0, "' '"), -(17858, 0, "'r'"), -(17859, 0, "'e'"), -(17860, 0, "'a'"), -(17861, 0, "'d'"), -(17862, 0, "'s'"), -(17973, 0, "' '"), -(17974, 0, "'w'"), -(17975, 0, "'o'"), -(17976, 0, "'u'"), -(17977, 0, "'l'"), -(17978, 0, "'d'"), -(17984, 1, "''"), -(18002, 8, "'.'"), -(18003, 0, "' '"), -(18004, 0, "'T'"), -(18005, 0, "'h'"), -(18006, 0, "'e'"), -(18007, 0, "' '"), -(18008, 0, "'o'"), -(18009, 0, "'m'"), -(18010, 0, "'p'"), -(18010, 1, "''"), -(18009, 1, "''"), -(18008, 1, "''"), -(18008, 0, "'c'"), -(18009, 0, "'o'"), -(18010, 0, "'m'"), -(18011, 0, "'p'"), -(18012, 0, "'u'"), -(18013, 0, "'t'"), -(18014, 0, "'e'"), -(18015, 0, "'r'"), -(18016, 0, "' '"), -(18002, 15, "''"), -(18002, 0, "' '"), -(18003, 0, "'-'"), -(18004, 0, "' '"), -(18005, 0, "'a'"), -(18006, 0, "'b'"), -(18007, 0, "'o'"), -(18008, 0, "'u'"), -(18009, 0, "'t'"), -(18012, 0, "' '"), -(18013, 0, "'h'"), -(18014, 0, "'u'"), -(18015, 0, "'m'"), -(18016, 0, "'a'"), -(18017, 0, "'n'"), -(18060, 4, "'e'"), -(18061, 0, "'v'"), -(18062, 0, "'e'"), -(18063, 0, "'r'"), -(18064, 0, "'y'"), -(18087, 0, "' '"), -(18088, 0, "'w'"), -(18089, 0, "'l'"), -(18089, 1, "''"), -(18089, 0, "'i'"), -(18090, 0, "'l'"), -(18091, 0, "'l'"), -(18112, 0, "'a'"), -(18113, 0, "'l'"), -(18114, 0, "'m'"), -(18115, 0, "'o'"), -(18116, 0, "'s'"), -(18117, 0, "'t'"), -(18118, 0, "' '"), -(18128, 1, "''"), -(18128, 0, "'!'"), -(18131, 0, "'T'"), -(18132, 0, "'h'"), -(18133, 0, "'i'"), -(18134, 0, "'s'"), -(18135, 0, "' '"), -(18136, 0, "'i'"), -(18137, 0, "'s'"), -(18138, 0, "' '"), -(18139, 0, "'w'"), -(18140, 0, "'h'"), -(18141, 0, "'a'"), -(18142, 0, "'t'"), -(18143, 0, "' '"), -(18144, 0, "'w'"), -(18145, 0, "'e'"), -(18146, 0, "' '"), -(18147, 0, "'d'"), -(18148, 0, "'o'"), -(18149, 0, "' '"), -(18150, 0, "'d'"), -(18151, 0, "'o'"), -(18152, 0, "' '"), -(18153, 0, "'t'"), -(18154, 0, "'o'"), -(18154, 1, "''"), -(18154, 0, "'h'"), -(18155, 0, "'e'"), -(18156, 0, "' '"), -(18150, 7, "'d'"), -(18151, 0, "'o'"), -(18151, 1, "''"), -(18150, 1, "''"), -(18150, 0, "'t'"), -(18151, 0, "'o'"), -(18152, 0, "' '"), -(18153, 0, "'t'"), -(18154, 0, "'h'"), -(18155, 0, "'e'"), -(18156, 0, "' '"), -(18157, 0, "'c'"), -(18158, 0, "'o'"), -(18159, 0, "'m'"), -(18160, 0, "'p'"), -(18161, 0, "'u'"), -(18162, 0, "'t'"), -(18163, 0, "'e'"), -(18164, 0, "'r'"), -(18165, 0, "' '"), -(18166, 0, "'w'"), -(18167, 0, "'h'"), -(18168, 0, "'e'"), -(18169, 0, "'n'"), -(18170, 0, "' '"), -(18171, 0, "'i'"), -(18172, 0, "'t'"), -(18173, 0, "' '"), -(18174, 0, "'r'"), -(18175, 0, "'u'"), -(18176, 0, "'n'"), -(18177, 0, "'s'"), -(18178, 0, "' '"), -(18179, 0, "'j'"), -(18180, 0, "'a'"), -(18181, 0, "'v'"), -(18182, 0, "'a'"), -(18183, 0, "'s'"), -(18184, 0, "'c'"), -(18185, 0, "'r'"), -(18186, 0, "'i'"), -(18187, 0, "'p'"), -(18188, 0, "'t'"), -(18189, 0, "'.'"), -(18190, 0, "' '"), -(18191, 0, "'I'"), -(18192, 0, "'n'"), -(18193, 0, "' '"), -(18194, 9, "''"), -(18193, 1, "''"), -(18193, 0, "' Arranging'"), -(18193, 1, "''"), -(18190, 3, "''"), -(18178, 12, "''"), -(18173, 5, "''"), -(18170, 3, "''"), -(18165, 5, "''"), -(18156, 9, "''"), -(18152, 4, "''"), -(18150, 2, "''"), -(18150, 0, "'do'"), -(18150, 2, "'do the '"), -(18156, 1, "''"), -(18154, 2, "''"), -(18154, 0, "'o'"), -(18152, 3, "''"), -(18149, 3, "''"), -(18146, 3, "''"), -(18143, 3, "''"), -(18138, 5, "''"), -(18135, 3, "''"), -(18131, 4, "''"), -(18200, 1, "''"), -(18200, 0, "'.'"), -(18129, 0, "' '"), -(18130, 0, "'I'"), -(18131, 0, "'m'"), -(18132, 0, "'a'"), -(18133, 0, "'g'"), -(18134, 0, "'i'"), -(18135, 0, "'n'"), -(18136, 0, "'e'"), -(18137, 0, "' '"), -(18138, 0, "'i'"), -(18139, 0, "'n'"), -(18140, 0, "'s'"), -(18141, 0, "'t'"), -(18142, 0, "'e'"), -(18143, 0, "'a'"), -(18144, 0, "'d'"), -(18145, 0, "' '"), -(18146, 0, "'o'"), -(18147, 0, "'f'"), -(18148, 0, "' '"), -(18130, 19, "''"), -(18129, 1, "''"), -(18471, 13, "''"), -(16471, 1, "''"), -(16471, 0, "':'"), -(16459, 1, "''"), -(16459, 0, "':'"), -(22711, 1, "''"), -(21019, 1, "''"), -(16459, 1, "''"), -(12074, 1, "''"), -(7609, 1, "''"), -(22707, 0, "':'"), -(21016, 0, "':'"), -(16457, 0, "':'"), -(12073, 0, "':'"), -(7609, 0, "':'"), -(22723, 1, "''"), -(21031, 1, "''"), -(16471, 1, "''"), -(12086, 1, "''"), -(7621, 1, "''"), -(22719, 0, "':'"), -(21028, 0, "':'"), -(16469, 0, "':'"), -(12085, 0, "':'"), -(7621, 0, "':'"), -(16727, 0, "'H'"), -(16728, 0, "'o'"), -(16729, 0, "'n'"), -(16730, 0, "'e'"), -(16731, 0, "'s'"), -(16732, 0, "'t'"), -(16733, 0, "'l'"), -(16734, 0, "'y'"), -(16735, 0, "' '"), -(16747, 0, "' '"), -(16748, 0, "'a'"), -(16749, 0, "'n'"), -(16750, 0, "'d'"), -(16751, 0, "' '"), -(16752, 0, "'a'"), -(16753, 0, "' '"), -(16754, 0, "'l'"), -(16755, 0, "'i'"), -(16756, 0, "'t'"), -(16757, 0, "'t'"), -(16758, 0, "'l'"), -(16759, 0, "'e'"), -(16760, 0, "' '"), -(16761, 0, "'s'"), -(16762, 0, "'u'"), -(16763, 0, "'s'"), -(16764, 0, "'p'"), -(16765, 0, "'i'"), -(16766, 0, "'c'"), -(16767, 0, "'i'"), -(16768, 0, "'o'"), -(16769, 0, "'u'"), -(16770, 0, "'s'"), -(16771, 0, "' '"), -(16772, 0, "'o'"), -(16773, 0, "'f'"), -(22992, 1, "''"), -(21249, 1, "''"), -(16653, 1, "''"), -(22990, 0, "'2'"), -(21248, 0, "'2'"), -(16653, 0, "'2'"), -(22992, 1, "''"), -(21249, 1, "''"), -(16653, 1, "''"), -(22990, 0, "'3'"), -(21248, 0, "'3'"), -(16653, 0, "'3'"), -(17084, 0, "'n'"), -(17085, 0, "'n'"), -(17085, 0, "'I'"), -(17086, 0, "' '"), -(17086, 1, "''"), -(17085, 1, "''"), -(17085, 0, "'W'"), -(17086, 0, "'h'"), -(17087, 0, "'e'"), -(17088, 0, "'n'"), -(17089, 0, "' '"), -(17090, 0, "'I'"), -(17091, 0, "' '"), -(17092, 0, "'t'"), -(17093, 0, "'o'"), -(17094, 0, "'l'"), -(17095, 0, "'d'"), -(17096, 0, "' '"), -(17097, 0, "'K'"), -(17098, 0, "'e'"), -(17099, 0, "'v'"), -(17100, 0, "'i'"), -(17101, 0, "'n'"), -(17102, 0, "' '"), -(17103, 0, "'t'"), -(17104, 0, "'h'"), -(17105, 0, "'a'"), -(17106, 0, "'t'"), -(17107, 0, "' '"), -(17108, 0, "'h'"), -(17108, 1, "''"), -(17108, 0, "'I'"), -(17109, 0, "' '"), -(17110, 0, "'t'"), -(17111, 0, "'h'"), -(17112, 0, "'o'"), -(17113, 0, "'u'"), -(17114, 0, "'g'"), -(17115, 0, "'h'"), -(17116, 0, "'t'"), -(17117, 0, "' '"), -(17118, 0, "'I'"), -(17119, 0, "' '"), -(17120, 0, "'c'"), -(17121, 0, "'o'"), -(17122, 0, "'u'"), -(17123, 0, "'l'"), -(17124, 0, "'d'"), -(17125, 0, "' '"), -(17085, 41, "'When I told Kevin that I thought I could'"), -(17056, 0, "'.'"), -(17057, 0, "'.'"), -(17058, 0, "'.'"), -(17128, 0, "' '"), -(17129, 0, "'w'"), -(17130, 0, "'e'"), -(17131, 0, "' '"), -(17121, 11, "'a'"), -(17122, 0, "' '"), -(17123, 0, "'g'"), -(17124, 0, "'o'"), -(17125, 0, "'o'"), -(17126, 0, "'d'"), -(17127, 0, "' '"), -(17128, 0, "'r'"), -(17129, 0, "'u'"), -(17130, 0, "'s'"), -(17131, 0, "'t'"), -(17132, 0, "' '"), -(17133, 0, "'i'"), -(17134, 0, "'m'"), -(17135, 0, "'p'"), -(17136, 0, "'l'"), -(17137, 0, "'e'"), -(17138, 0, "'e'"), -(17139, 0, "'m'"), -(17140, 0, "'n'"), -(17141, 0, "'t'"), -(17142, 0, "'a'"), -(17143, 0, "'t'"), -(17144, 0, "'i'"), -(17145, 0, "'o'"), -(17146, 0, "'n'"), -(17133, 14, "'i'"), -(17134, 0, "'m'"), -(17135, 0, "'p'"), -(17136, 0, "'l'"), -(17137, 0, "'e'"), -(17138, 0, "'m'"), -(17139, 0, "'e'"), -(17140, 0, "'n'"), -(17141, 0, "'t'"), -(17142, 0, "'a'"), -(17143, 0, "'t'"), -(17144, 0, "'i'"), -(17145, 0, "'o'"), -(17146, 0, "'n'"), -(17147, 0, "' '"), -(17148, 0, "'w'"), -(17149, 0, "'o'"), -(17150, 0, "'u'"), -(17151, 0, "'l'"), -(17152, 0, "'d'"), -(17153, 0, "' '"), -(17154, 0, "'g'"), -(17155, 0, "'o'"), -(17156, 0, "' '"), -(17157, 0, "'f'"), -(17158, 0, "'a'"), -(17159, 0, "'s'"), -(17160, 0, "'t'"), -(17161, 0, "'e'"), -(17162, 0, "'r'"), -(17121, 0, "'I'"), -(17122, 0, "' '"), -(17123, 0, "'c'"), -(17124, 0, "'o'"), -(17125, 0, "'u'"), -(17126, 0, "'l'"), -(17127, 0, "'d'"), -(17128, 0, "' '"), -(17129, 0, "'m'"), -(17130, 0, "'a'"), -(17131, 0, "'k'"), -(17132, 0, "'e'"), -(17133, 0, "' '"), -(17134, 0, "'a'"), -(17134, 1, "''"), -(17160, 0, "' '"), -(17161, 0, "'t'"), -(17162, 0, "'h'"), -(17163, 0, "'a'"), -(17164, 0, "'t'"), -(17165, 0, "' '"), -(17166, 0, "'w'"), -(17167, 0, "'e'"), -(17168, 0, "'n'"), -(17169, 0, "'t'"), -(17170, 0, "' '"), -(17171, 10, "''"), -(17177, 0, "' '"), -(17178, 0, "'t'"), -(17179, 0, "'h'"), -(17180, 0, "'a'"), -(17181, 0, "'n'"), -(17182, 0, "' '"), -(17183, 0, "'y'"), -(17184, 0, "'j'"), -(17185, 0, "'s'"), -(17186, 0, "','"), -(17187, 0, "' '"), -(17188, 0, "'h'"), -(17189, 0, "'e'"), -(17190, 0, "' '"), -(17191, 0, "'d'"), -(17192, 0, "'i'"), -(17193, 0, "'d'"), -(17194, 0, "'n'"), -(17195, 0, "'''"), -(17196, 0, "'t'"), -(17197, 0, "' '"), -(17198, 0, "'b'"), -(17199, 0, "'e'"), -(17200, 0, "'l'"), -(17201, 0, "'i'"), -(17202, 0, "'e'"), -(17203, 0, "'v'"), -(17204, 0, "'e'"), -(17205, 0, "' '"), -(17206, 0, "'m'"), -(17207, 0, "'e'"), -(17208, 0, "'.'"), -(17209, 0, "' '"), -(17210, 0, "'E'"), -(17211, 0, "'H'"), -(17211, 1, "''"), -(17210, 1, "''"), -(17210, 0, "'H'"), -(17211, 0, "'e'"), -(17212, 0, "' '"), -(17213, 0, "'s'"), -(17214, 0, "'a'"), -(17215, 0, "'i'"), -(17216, 0, "'d'"), -(17217, 0, "' '"), -(17218, 0, "'y'"), -(17219, 0, "'j'"), -(17220, 0, "'s'"), -(17221, 0, "' '"), -(17222, 0, "'w'"), -(17223, 0, "'a'"), -(17224, 0, "'s'"), -(17225, 0, "' '"), -(17226, 0, "'a'"), -(17227, 0, "'l'"), -(17228, 0, "'r'"), -(17229, 0, "'e'"), -(17230, 0, "'a'"), -(17231, 0, "'d'"), -(17232, 0, "'y'"), -(17233, 0, "' '"), -(17234, 0, "'s'"), -(17235, 0, "'o'"), -(17236, 0, "' '"), -(17237, 0, "'o'"), -(17238, 0, "'p'"), -(17239, 0, "'t'"), -(17240, 0, "'i'"), -(17241, 0, "'m'"), -(17242, 0, "'i'"), -(17243, 0, "'z'"), -(17244, 0, "'e'"), -(17245, 0, "'d'"), -(17246, 0, "','"), -(17247, 0, "' '"), -(17248, 0, "'h'"), -(17249, 0, "'e'"), -(17134, 11, "'C'"), -(17135, 0, "'R'"), -(17136, 0, "'D'"), -(17137, 0, "'T'"), -(17134, 0, "'a'"), -(17135, 0, "' '"), -(17160, 5, "' '"), -(17161, 0, "'g'"), -(17162, 0, "'o'"), -(17163, 0, "'e'"), -(17164, 0, "'s'"), -(17244, 1, "''"), -(17243, 1, "''"), -(17243, 0, "'h'"), -(17244, 0, "'e'"), -(17245, 0, "' '"), -(17246, 0, "'d'"), -(17247, 0, "'o'"), -(17248, 0, "'u'"), -(17249, 0, "'b'"), -(17250, 0, "'t'"), -(17251, 0, "'e'"), -(17252, 0, "'d'"), -(17253, 0, "' '"), -(17254, 0, "'i'"), -(17254, 1, "''"), -(17253, 1, "''"), -(17243, 10, "'t'"), -(17244, 0, "'h'"), -(17245, 0, "'e'"), -(17246, 0, "'r'"), -(17247, 0, "'e'"), -(17248, 0, "' '"), -(17249, 0, "'w'"), -(17250, 0, "'a'"), -(17251, 0, "'s'"), -(17252, 0, "'n'"), -(17253, 0, "'''"), -(17254, 0, "'t'"), -(17255, 0, "' '"), -(17256, 0, "'m'"), -(17257, 0, "'u'"), -(17258, 0, "'c'"), -(17259, 0, "'h'"), -(17260, 0, "' '"), -(17243, 18, "'g'"), -(17244, 0, "'o'"), -(17245, 0, "'i'"), -(17246, 0, "'n'"), -(17247, 0, "'g'"), -(17248, 0, "' '"), -(17249, 0, "'e'"), -(17250, 0, "'v'"), -(17251, 0, "'e'"), -(17252, 0, "'n'"), -(17253, 0, "' '"), -(17254, 0, "'f'"), -(17255, 0, "'a'"), -(17256, 0, "'s'"), -(17257, 0, "'t'"), -(17258, 0, "'e'"), -(17259, 0, "'r'"), -(17260, 0, "' '"), -(17261, 0, "'w'"), -(17262, 0, "'a'"), -(17263, 0, "'s'"), -(17264, 0, "' '"), -(17265, 0, "'g'"), -(17266, 0, "'o'"), -(17267, 0, "'i'"), -(17268, 0, "'n'"), -(17269, 0, "'g'"), -(17270, 0, "' '"), -(17271, 0, "'t'"), -(17272, 0, "'o'"), -(17273, 0, "' '"), -(17274, 0, "'b'"), -(17275, 0, "'e'"), -(17276, 0, "' '"), -(17277, 0, "'b'"), -(17278, 0, "'a'"), -(17279, 0, "'s'"), -(17280, 0, "'i'"), -(17281, 0, "'c'"), -(17282, 0, "'a'"), -(17283, 0, "'l'"), -(17284, 0, "'l'"), -(17285, 0, "'y'"), -(17286, 0, "' '"), -(17287, 0, "'i'"), -(17288, 0, "'m'"), -(17289, 0, "'p'"), -(17290, 0, "'o'"), -(17291, 0, "'s'"), -(17292, 0, "'s'"), -(17293, 0, "'i'"), -(17294, 0, "'b'"), -(17295, 0, "'l'"), -(17296, 0, "'e'"), -(17297, 0, "'.'"), -(17264, 0, "'n'"), -(17265, 0, "'''"), -(17266, 0, "'t'"), -(17280, 20, "'p'"), -(17281, 0, "'o'"), -(17282, 0, "'s'"), -(17283, 0, "'s'"), -(17284, 0, "'i'"), -(17285, 0, "'b'"), -(17286, 0, "'e'"), -(17286, 1, "''"), -(17286, 0, "'l'"), -(17286, 1, "''"), -(17286, 0, "'l'"), -(17287, 0, "'e'"), -(17160, 5, "'s'"), -(17228, 0, "'w'"), -(17229, 0, "'e'"), -(17230, 0, "'l'"), -(17231, 0, "'l'"), -(17232, 0, "' '"), -(17261, 0, "' '"), -(17262, 0, "'p'"), -(17263, 0, "'r'"), -(17264, 0, "'o'"), -(17265, 0, "'b'"), -(17266, 0, "'a'"), -(17267, 0, "'b'"), -(17268, 0, "'l'"), -(17269, 0, "'y'"), -(17277, 12, "''"), -(17287, 0, "'n'"), -(17288, 0, "'n'"), -(17289, 0, "'B'"), -(17290, 0, "'u'"), -(17291, 0, "'t'"), -(17292, 0, "' '"), -(17293, 0, "'I'"), -(17294, 0, "' '"), -(17295, 0, "'k'"), -(17296, 0, "'n'"), -(17297, 0, "'e'"), -(17298, 0, "'w'"), -(17299, 0, "' '"), -(17300, 0, "'a'"), -(17301, 0, "'b'"), -(17302, 0, "'o'"), -(17303, 0, "'u'"), -(17304, 0, "'t'"), -(17300, 5, "'s'"), -(17301, 0, "'o'"), -(17302, 0, "'m'"), -(17303, 0, "'e'"), -(17304, 0, "'t'"), -(17305, 0, "'h'"), -(17306, 0, "'i'"), -(17307, 0, "'n'"), -(17308, 0, "'g'"), -(17309, 0, "' '"), -(17310, 0, "'h'"), -(17311, 0, "'e'"), -(17312, 0, "' '"), -(17313, 0, "'d'"), -(17314, 0, "'d'"), -(17314, 1, "''"), -(17314, 0, "'i'"), -(17315, 0, "'d'"), -(17316, 0, "'n'"), -(17317, 0, "'''"), -(17318, 0, "'t'"), -(17319, 0, "':'"), -(17320, 0, "' '"), -(17321, 0, "'T'"), -(17322, 0, "'h'"), -(17323, 0, "'e'"), -(17324, 0, "' '"), -(17325, 0, "'w'"), -(17326, 0, "'a'"), -(17327, 0, "'y'"), -(17328, 0, "' '"), -(17329, 0, "'t'"), -(17330, 0, "'h'"), -(17331, 0, "'e'"), -(17332, 0, "' '"), -(17333, 0, "'c'"), -(17334, 0, "'o'"), -(17335, 0, "'m'"), -(17336, 0, "'p'"), -(17337, 0, "'u'"), -(17338, 0, "'t'"), -(17339, 0, "'e'"), -(17340, 0, "'r'"), -(17341, 0, "' '"), -(17342, 0, "'o'"), -(17343, 0, "'r'"), -(17344, 0, "'g'"), -(17345, 0, "'a'"), -(17346, 0, "'n'"), -(17347, 0, "'i'"), -(17348, 0, "'z'"), -(17349, 0, "'e'"), -(17350, 0, "'s'"), -(17351, 0, "' '"), -(17352, 0, "'m'"), -(17353, 0, "'e'"), -(17354, 0, "'m'"), -(17355, 0, "'o'"), -(17356, 0, "'r'"), -(17357, 0, "'y'"), -(17358, 0, "' '"), -(17359, 0, "'a'"), -(17360, 0, "'n'"), -(17361, 0, "'d'"), -(17362, 0, "' '"), -(17363, 0, "'m'"), -(17364, 0, "'e'"), -(17365, 0, "'m'"), -(17366, 0, "'o'"), -(17367, 0, "'r'"), -(17368, 0, "'y'"), -(17369, 0, "' '"), -(17370, 0, "'l'"), -(17371, 0, "'o'"), -(17372, 0, "'o'"), -(17373, 0, "'k'"), -(17374, 0, "'u'"), -(17375, 0, "'p'"), -(17376, 0, "'s'"), -(17321, 0, "'U'"), -(17321, 1, "''"), -(17321, 0, "'W'"), -(17322, 0, "'e'"), -(17323, 0, "' '"), -(17324, 0, "'c'"), -(17325, 0, "'a'"), -(17326, 0, "'n'"), -(17327, 0, "' '"), -(17328, 0, "'u'"), -(17329, 0, "'s'"), -(17330, 0, "'e'"), -(17331, 0, "' '"), -(17332, 0, "'r'"), -(17333, 0, "'u'"), -(17334, 0, "'s'"), -(17335, 0, "'t'"), -(17336, 0, "' '"), -(17337, 0, "'t'"), -(17338, 0, "'o'"), -(17339, 0, "' '"), -(17321, 18, "'I'"), -(17322, 0, "'f'"), -(17323, 0, "' '"), -(17324, 0, "'w'"), -(17325, 0, "'e'"), -(17326, 0, "' '"), -(17327, 0, "'c'"), -(17328, 0, "'a'"), -(17329, 0, "'n'"), -(17330, 0, "' '"), -(17331, 0, "'c'"), -(17332, 0, "'o'"), -(17333, 0, "'n'"), -(17334, 0, "'t'"), -(17335, 0, "'r'"), -(17336, 0, "'o'"), -(17337, 0, "'l'"), -(17338, 8, "''"), -(17342, 0, "' '"), -(17343, 0, "'w'"), -(17344, 0, "'a'"), -(17345, 0, "'y'"), -(17346, 0, "' '"), -(17347, 0, "'t'"), -(17348, 0, "'h'"), -(17349, 0, "'e'"), -(17321, 74, "''"), -(17289, 32, "'But I knew something he didn't:'"), -(17287, 0, "' '"), -(17288, 0, "'''"), -(17289, 0, "'M'"), -(17290, 0, "'a'"), -(17291, 0, "'y'"), -(17292, 0, "'b'"), -(17293, 0, "'e'"), -(17294, 0, "' '"), -(17295, 0, "'a'"), -(17296, 0, "' '"), -(17297, 0, "'l'"), -(17298, 0, "'i'"), -(17299, 0, "'t'"), -(17300, 0, "'t'"), -(17301, 0, "'l'"), -(17302, 0, "'e'"), -(17303, 0, "' '"), -(17304, 0, "'f'"), -(17305, 0, "'a'"), -(17306, 0, "'s'"), -(17307, 0, "'t'"), -(17308, 0, "'e'"), -(17309, 0, "'r'"), -(17310, 0, "'.'"), -(17311, 0, "'.'"), -(17312, 0, "'.'"), -(17313, 0, "' '"), -(17314, 0, "'b'"), -(17315, 0, "'u'"), -(17316, 0, "'t'"), -(17317, 0, "' '"), -(17318, 0, "'n'"), -(17319, 0, "'o'"), -(17320, 0, "'t'"), -(17321, 0, "' '"), -(17322, 0, "'a'"), -(17323, 0, "' '"), -(17324, 0, "'l'"), -(17325, 0, "'o'"), -(17326, 0, "'t'"), -(17327, 0, "' '"), -(17328, 0, "'f'"), -(17329, 0, "'a'"), -(17330, 0, "'s'"), -(17331, 0, "'t'"), -(17332, 0, "'e'"), -(17333, 0, "'r'"), -(17334, 0, "'!'"), -(17335, 0, "'''"), -(17310, 0, "' '"), -(17311, 0, "'i'"), -(17312, 0, "'n'"), -(17313, 0, "' '"), -(17313, 1, "''"), -(17312, 1, "''"), -(17312, 0, "'f'"), -(17313, 0, "' '"), -(17314, 0, "'y'"), -(17315, 0, "'o'"), -(17316, 0, "'u'"), -(17317, 0, "' '"), -(17318, 0, "'j'"), -(17319, 0, "'u'"), -(17320, 0, "'s'"), -(17321, 0, "'t'"), -(17322, 0, "' '"), -(17323, 0, "'p'"), -(17324, 0, "'o'"), -(17325, 0, "'r'"), -(17326, 0, "'t'"), -(17327, 0, "' '"), -(17328, 0, "'i'"), -(17329, 0, "'t'"), -(17330, 0, "' '"), -(17331, 0, "'t'"), -(17332, 0, "'o'"), -(17333, 0, "' '"), -(17334, 0, "'r'"), -(17335, 0, "'u'"), -(17336, 0, "'s'"), -(17337, 0, "'t'"), -(17338, 2, "'.'"), -(17338, 1, "''"), -(17334, 1, "''"), -(17334, 0, "'R'"), -(17340, 1, "''"), -(17340, 0, "'B'"), -(17162, 0, "'w'"), -(17163, 0, "'a'"), -(17164, 0, "'y'"), -(17165, 0, "' '"), -(17165, 1, "''"), -(17165, 0, "' '"), -(17348, 4, "'i'"), -(17349, 0, "'t'"), -(17350, 0, "' '"), -(17351, 0, "'w'"), -(17352, 0, "'o'"), -(17353, 0, "'n'"), -(17354, 0, "'''"), -(17355, 0, "'t'"), -(17356, 0, "' '"), -(17357, 0, "'g'"), -(17358, 0, "'o'"), -(17359, 0, "' '"), -(17374, 0, "'.'"), -(17374, 1, "''"), -(17397, 2, "'K'"), -(17398, 0, "'e'"), -(17399, 0, "'v'"), -(17400, 0, "'i'"), -(17401, 0, "'n'"), -(17409, 0, "' '"), -(17410, 0, "'k'"), -(17411, 0, "'n'"), -(17412, 0, "'o'"), -(17413, 0, "'w'"), -(17415, 0, "' '"), -(17416, 0, "'I'"), -(17417, 0, "' '"), -(17418, 0, "'k'"), -(17419, 0, "'n'"), -(17420, 0, "'e'"), -(17421, 0, "'w'"), -(17422, 0, "' '"), -(17423, 0, "'a'"), -(17424, 0, "'b'"), -(17425, 0, "'o'"), -(17426, 0, "'u'"), -(17427, 0, "'t'"), -(17428, 0, "' '"), -(17429, 0, "'m'"), -(17430, 0, "'e'"), -(17431, 0, "'m'"), -(17432, 0, "'o'"), -(17433, 0, "'r'"), -(17434, 0, "'y'"), -(17435, 0, "' '"), -(17436, 0, "'f'"), -(17437, 0, "'r'"), -(17438, 0, "'a'"), -(17439, 0, "'g'"), -(17440, 0, "'m'"), -(17441, 0, "'e'"), -(17442, 0, "'n'"), -(17443, 0, "'t'"), -(17444, 0, "'a'"), -(17445, 0, "'t'"), -(17446, 0, "'i'"), -(17447, 0, "'o'"), -(17448, 0, "'n'"), -(17449, 0, "' '"), -(17450, 0, "'c'"), -(17450, 1, "''"), -(17450, 0, "'a'"), -(17451, 0, "'n'"), -(17452, 0, "'d'"), -(17453, 0, "' '"), -(17454, 0, "'c'"), -(17455, 0, "'a'"), -(17456, 0, "'c'"), -(17457, 0, "'h'"), -(17458, 0, "'e'"), -(17459, 0, "' '"), -(17460, 0, "'c'"), -(17461, 0, "'o'"), -(17462, 0, "'h'"), -(17463, 0, "'e'"), -(17464, 0, "'r'"), -(17465, 0, "'e'"), -(17466, 0, "'n'"), -(17467, 0, "'t'"), -(17468, 0, "' '"), -(17469, 0, "'s'"), -(17470, 0, "'t'"), -(17471, 0, "'r'"), -(17472, 0, "'u'"), -(17473, 0, "'c'"), -(17474, 0, "'t'"), -(17475, 0, "'u'"), -(17476, 0, "'r'"), -(17477, 0, "'e'"), -(17478, 0, "'s'"), -(17479, 0, "'.'"), -(17347, 12, "' '"), -(17348, 0, "'n'"), -(17349, 0, "'o'"), -(17350, 0, "'t'"), -(17213, 1, "''"), -(17213, 0, "'Y'"), -(17258, 0, "' '"), -(17259, 0, "'a'"), -(17260, 0, "' '"), -(17261, 0, "'l'"), -(17262, 0, "'i'"), -(17263, 0, "'t'"), -(17264, 0, "'t'"), -(17265, 0, "'l'"), -(17266, 0, "'e'"), -(17267, 0, "' '"), -(17268, 0, "'b'"), -(17269, 0, "'i'"), -(17270, 0, "'t'"), -(17253, 18, "' '"), -(17254, 0, "'a'"), -(17255, 0, "' '"), -(17256, 0, "'l'"), -(17257, 0, "'o'"), -(17258, 0, "'t'"), -(17367, 0, "' '"), -(17368, 0, "'V'"), -(17368, 1, "''"), -(17367, 1, "''"), -(17366, 0, "' '"), -(17367, 0, "'V'"), -(17368, 0, "'8'"), -(17369, 0, "' '"), -(17370, 0, "'i'"), -(17371, 0, "'s'"), -(17372, 0, "' '"), -(17373, 0, "'r'"), -(17374, 0, "'e'"), -(17375, 0, "'a'"), -(17376, 0, "'l'"), -(17377, 0, "'l'"), -(17378, 0, "'y'"), -(17379, 0, "' '"), -(17380, 0, "'f'"), -(17381, 0, "'a'"), -(17382, 0, "'s'"), -(17383, 0, "'t'"), -(17384, 0, "' '"), -(17385, 0, "'t'"), -(17386, 0, "'h'"), -(17387, 0, "'e'"), -(17388, 0, "'s'"), -(17389, 0, "'e'"), -(17390, 0, "' '"), -(17391, 0, "'d'"), -(17392, 0, "'a'"), -(17393, 0, "'y'"), -(17394, 0, "'s'"), -(17395, 0, "'!'"), -(17405, 4, "'k'"), -(17406, 0, "'n'"), -(17407, 0, "'o'"), -(17408, 0, "'w'"), -(17405, 4, "'knew'"), -(17490, 1, "''"), -(17490, 0, "'c'"), -(17491, 0, "'y'"), -(17492, 11, "''"), -(17509, 31, "'k'"), -(17510, 0, "'e'"), -(17511, 0, "'e'"), -(17512, 0, "'p'"), -(17513, 0, "' '"), -(17514, 0, "'m'"), -(17515, 0, "'a'"), -(17516, 0, "'k'"), -(17517, 0, "'i'"), -(17518, 0, "'n'"), -(17519, 0, "'g'"), -(17520, 0, "' '"), -(17521, 0, "'y'"), -(17522, 0, "'j'"), -(17523, 0, "'s'"), -(17520, 4, "' '"), -(17521, 0, "'o'"), -(17522, 0, "'u'"), -(17523, 0, "'r'"), -(17524, 0, "' '"), -(17525, 0, "'a'"), -(17526, 0, "'l'"), -(17527, 0, "'g'"), -(17528, 0, "'o'"), -(17529, 0, "'r'"), -(17530, 0, "'i'"), -(17531, 0, "'t'"), -(17532, 0, "'h'"), -(17533, 0, "'m'"), -(17534, 0, "'s'"), -(17535, 0, "' '"), -(17493, 54, "''"), -(17493, 0, "' '"), -(17494, 0, "'R'"), -(17495, 0, "'u'"), -(17496, 0, "'s'"), -(17497, 0, "'t'"), -(17498, 0, "' '"), -(17499, 0, "'i'"), -(17500, 0, "'s'"), -(17501, 0, "'n'"), -(17502, 0, "'''"), -(17503, 0, "'t'"), -(17504, 0, "' '"), -(17505, 0, "'j'"), -(17506, 0, "'u'"), -(17507, 0, "'s'"), -(17508, 0, "'t'"), -(17509, 0, "' '"), -(17510, 0, "'*'"), -(17511, 0, "'f'"), -(17512, 0, "'a'"), -(17513, 0, "'s'"), -(17514, 0, "'t'"), -(17515, 0, "'e'"), -(17516, 0, "'r'"), -(17517, 0, "'*'"), -(17518, 0, "'.'"), -(17519, 0, "' '"), -(17520, 0, "'I'"), -(17521, 0, "'t'"), -(17522, 0, "' '"), -(17522, 1, "''"), -(17522, 0, "'s'"), -(17523, 0, "' '"), -(17524, 0, "'a'"), -(17525, 0, "'l'"), -(17526, 0, "'s'"), -(17527, 0, "'o'"), -(17551, 21, "'a'"), -(17552, 0, "'n'"), -(17553, 0, "'d'"), -(17554, 0, "' '"), -(17555, 0, "'t'"), -(17556, 0, "'h'"), -(17557, 0, "'a'"), -(17558, 0, "'t'"), -(17559, 0, "' '"), -(17560, 0, "'g'"), -(17561, 0, "'i'"), -(17562, 0, "'v'"), -(17563, 0, "'e'"), -(17564, 0, "'s'"), -(17565, 0, "' '"), -(17566, 0, "'u'"), -(17567, 0, "'s'"), -(17568, 0, "' '"), -(17569, 0, "'t'"), -(17570, 0, "'h'"), -(17571, 0, "'e'"), -(17572, 0, "' '"), -(17573, 0, "'t'"), -(17574, 0, "'o'"), -(17575, 0, "'o'"), -(17576, 0, "'l'"), -(17577, 0, "'s'"), -(17578, 0, "' '"), -(17579, 0, "'w'"), -(17580, 0, "'e'"), -(17581, 0, "' '"), -(17582, 0, "'n'"), -(17583, 0, "'e'"), -(17584, 0, "'e'"), -(17585, 0, "'d'"), -(17586, 0, "' '"), -(17587, 0, "'t'"), -(17588, 0, "'o'"), -(17589, 0, "' '"), -(17590, 0, "'c'"), -(17591, 0, "'o'"), -(17592, 0, "'n'"), -(17593, 0, "'t'"), -(17594, 0, "'r'"), -(17595, 0, "'o'"), -(17596, 0, "'l'"), -(17597, 0, "' '"), -(17598, 0, "'a'"), -(17599, 0, "'l'"), -(17600, 0, "'l'"), -(17601, 0, "'o'"), -(17602, 0, "'c'"), -(17603, 0, "'a'"), -(17604, 0, "'t'"), -(17605, 0, "'i'"), -(17606, 0, "'o'"), -(17607, 0, "'n'"), -(17608, 0, "'s'"), -(17609, 0, "' '"), -(17610, 0, "'a'"), -(17611, 0, "'n'"), -(17612, 0, "'d'"), -(17613, 0, "' '"), -(17614, 0, "'t'"), -(17615, 0, "'h'"), -(17616, 0, "'e'"), -(17614, 3, "''"), -(17613, 1, "''"), -(16893, 0, "' '"), -(16894, 0, "'A'"), -(16895, 0, "'p'"), -(16896, 0, "'p'"), -(16897, 0, "'a'"), -(16898, 0, "'r'"), -(16899, 0, "'e'"), -(16900, 0, "'n'"), -(16901, 0, "'t'"), -(16902, 0, "'l'"), -(16903, 0, "'y'"), -(16904, 0, "' '"), -(16905, 0, "'s'"), -(16906, 0, "'o'"), -(16907, 0, "'m'"), -(16908, 0, "'e'"), -(16909, 0, "' '"), -(16910, 0, "'p'"), -(16911, 0, "'a'"), -(16912, 0, "'r'"), -(16913, 0, "'t'"), -(16914, 0, "'s'"), -(16915, 0, "' '"), -(16916, 0, "'o'"), -(16917, 0, "'f'"), -(16918, 0, "' '"), -(16919, 0, "'y'"), -(16920, 0, "'j'"), -(16921, 0, "'s'"), -(16922, 0, "' '"), -(16923, 0, "'h'"), -(16924, 0, "'a'"), -(16925, 0, "'v'"), -(16926, 0, "'e'"), -(16927, 0, "' '"), -(16928, 0, "'b'"), -(16929, 0, "'e'"), -(16930, 0, "'e'"), -(16931, 0, "'n'"), -(16932, 0, "' '"), -(16933, 0, "'r'"), -(16934, 0, "'e'"), -(16935, 0, "'w'"), -(16936, 0, "'r'"), -(16937, 0, "'i'"), -(16938, 0, "'t'"), -(16939, 0, "'t'"), -(16940, 0, "'e'"), -(16941, 0, "'n'"), -(16942, 0, "' '"), -(16943, 0, "'a'"), -(16944, 0, "'b'"), -(16945, 0, "'o'"), -(16946, 0, "'u'"), -(16947, 0, "'t'"), -(16948, 0, "' '"), -(16949, 0, "'1'"), -(16950, 0, "'1'"), -(16951, 0, "' '"), -(16952, 0, "'t'"), -(16953, 0, "'i'"), -(16954, 0, "'v'"), -(16955, 0, "'e'"), -(16956, 0, "'s'"), -(16956, 1, "''"), -(16955, 1, "''"), -(16954, 1, "''"), -(16954, 0, "'m'"), -(16955, 0, "'e'"), -(16956, 0, "'s'"), -(16957, 0, "' '"), -(16958, 0, "'i'"), -(16959, 0, "'n'"), -(16960, 0, "' '"), -(16961, 0, "'o'"), -(16962, 0, "'r'"), -(16963, 0, "'d'"), -(16964, 0, "'e'"), -(16965, 0, "'r'"), -(16966, 0, "' '"), -(16967, 0, "'t'"), -(16968, 0, "'o'"), -(16969, 0, "' '"), -(16970, 0, "'m'"), -(16971, 0, "'a'"), -(16972, 0, "'k'"), -(16973, 0, "'e'"), -(16974, 0, "' '"), -(16975, 0, "'i'"), -(16976, 0, "'t'"), -(16977, 0, "' '"), -(16978, 0, "'g'"), -(16979, 0, "'o'"), -(16980, 0, "' '"), -(16981, 0, "'t'"), -(16982, 0, "'h'"), -(16983, 0, "'a'"), -(16984, 0, "'t'"), -(16985, 0, "' '"), -(16986, 0, "'f'"), -(16987, 0, "'a'"), -(16988, 0, "'s'"), -(16989, 0, "'t'"), -(16977, 13, "' '"), -(16978, 0, "'w'"), -(16979, 0, "'o'"), -(16980, 0, "'r'"), -(16981, 0, "'k'"), -(16982, 0, "' '"), -(16983, 0, "'s'"), -(16984, 0, "'o'"), -(16985, 0, "' '"), -(16986, 0, "'w'"), -(16987, 0, "'e'"), -(16988, 0, "'l'"), -(16989, 0, "'l'"), -(16990, 0, "'.'"), -(16991, 0, "' '"), -(16991, 1, "''"), -(16991, 0, "' '"), -(16992, 0, "'I'"), -(16993, 0, "'T'"), -(16994, 0, "'s'"), -(16995, 0, "' '"), -(16996, 0, "'s'"), -(16997, 0, "'u'"), -(16998, 0, "'p'"), -(16999, 0, "'e'"), -(17000, 0, "'r'"), -(16992, 9, "'I'"), -(16993, 0, "'t'"), -(16994, 0, "'s'"), -(16995, 0, "' '"), -(16996, 0, "'s'"), -(16997, 0, "'u'"), -(16998, 0, "'p'"), -(16999, 0, "'e'"), -(17000, 0, "'r'"), -(17001, 0, "' '"), -(17002, 0, "'i'"), -(17003, 0, "'m'"), -(17004, 0, "'p'"), -(17005, 0, "'r'"), -(17006, 0, "'e'"), -(17007, 0, "'s'"), -(17008, 0, "'s'"), -(17009, 0, "'i'"), -(17010, 0, "'v'"), -(17011, 0, "'e'"), -(17012, 0, "'!'"), -(16923, 9, "'w'"), -(16924, 0, "'e'"), -(16925, 0, "'r'"), -(16926, 0, "'e'"), -(16923, 4, "'have been'"), -(16950, 1, "''"), -(16950, 0, "'2'"), -(16991, 22, "''"), -(16990, 1, "''"), -(16990, 0, "'!'"), -(16993, 0, "'B'"), -(16994, 0, "'u'"), -(16995, 0, "'t'"), -(16996, 0, "' '"), -(16997, 1, "''"), -(16997, 0, "'c'"), -(16993, 5, "'C'"), -(17017, 40, "''"), -(16993, 0, "'B'"), -(16994, 0, "'u'"), -(16995, 0, "'t'"), -(16996, 0, "' '"), -(16997, 1, "''"), -(16997, 0, "'c'"), -(17019, 0, "' '"), -(17020, 0, "'a'"), -(17021, 0, "'n'"), -(17022, 0, "'y'"), -(17023, 0, "'w'"), -(17024, 0, "'a'"), -(17025, 0, "'y'"), -(17028, 0, "'H'"), -(17029, 0, "'o'"), -(17030, 0, "'n'"), -(17031, 0, "'e'"), -(17032, 0, "'s'"), -(17033, 0, "'t'"), -(17034, 0, "'l'"), -(17035, 0, "'y'"), -(17036, 0, "' '"), -(17039, 21, "'d'"), -(17040, 0, "'o'"), -(17041, 0, "'u'"), -(17042, 0, "'b'"), -(17043, 0, "'t'"), -(17044, 0, "' '"), -(17045, 0, "'I'"), -(17046, 0, "' '"), -(17047, 0, "'c'"), -(17048, 0, "'a'"), -(17049, 0, "'n'"), -(17050, 0, "' '"), -(17051, 0, "'m'"), -(17052, 0, "'a'"), -(17053, 0, "'e'"), -(17053, 1, "''"), -(17053, 0, "'k'"), -(17054, 0, "'e'"), -(17071, 14, "''"), -(17070, 1, "''"), -(17080, 0, "' '"), -(17081, 0, "'a'"), -(17082, 0, "'n'"), -(17083, 0, "'y'"), -(17084, 0, "' '"), -(17085, 0, "'f'"), -(17086, 0, "'a'"), -(17087, 0, "'s'"), -(17088, 0, "'t'"), -(17089, 0, "'e'"), -(17090, 0, "'r'"), -(17091, 0, "' '"), -(17092, 0, "'t'"), -(17093, 0, "'h'"), -(17094, 0, "'a'"), -(17095, 0, "'n'"), -(17096, 0, "' '"), -(17097, 0, "'K'"), -(17098, 0, "'e'"), -(17099, 0, "'v'"), -(17100, 0, "'i'"), -(17101, 0, "'n'"), -(17102, 0, "' '"), -(17103, 0, "'d'"), -(17104, 0, "'i'"), -(17105, 0, "'d'"), -(17039, 5, "''"), -(17038, 1, "''"), -(17038, 0, "'''"), -(17039, 0, "'m'"), -(17040, 0, "' '"), -(17041, 0, "'n'"), -(17042, 0, "'e'"), -(17043, 0, "'r'"), -(17044, 0, "'v'"), -(17045, 0, "'o'"), -(17046, 0, "'u'"), -(17047, 0, "'s'"), -(17048, 0, "' '"), -(17049, 0, "'a'"), -(17050, 0, "'b'"), -(17051, 0, "'o'"), -(17052, 0, "'u'"), -(17053, 0, "'t'"), -(17054, 0, "' '"), -(17055, 0, "'r'"), -(17056, 0, "'u'"), -(17057, 0, "'n'"), -(17058, 0, "'n'"), -(17059, 0, "'i'"), -(17060, 0, "'n'"), -(17061, 0, "'g'"), -(17054, 8, "''"), -(17048, 6, "''"), -(17040, 8, "''"), -(17038, 2, "''"), -(17038, 0, "' doubt'"), -(17056, 0, "'p'"), -(17057, 0, "'u'"), -(17058, 0, "'r'"), -(17059, 0, "'e'"), -(17060, 0, "' '"), -(17165, 0, "'P'"), -(17166, 0, "'u'"), -(17167, 0, "'r'"), -(17168, 0, "'e'"), -(17169, 0, "' '"), -(17165, 5, "''"), -(17484, 0, "'!'"), -(17718, 0, "'n'"), -(17719, 0, "'n'"), -(17720, 0, "'('"), -(17721, 0, "'I'"), -(17722, 0, "' '"), -(17723, 0, "'k'"), -(17723, 1, "''"), -(17723, 0, "'s'"), -(17724, 0, "'w'"), -(17725, 0, "'a'"), -(17726, 0, "'y'"), -(17726, 1, "''"), -(17725, 1, "''"), -(17724, 1, "''"), -(17724, 0, "'a'"), -(17725, 0, "'y'"), -(17726, 0, "' '"), -(17727, 0, "'*'"), -(17728, 0, "'n'"), -(17728, 1, "''"), -(17728, 0, "'k'"), -(17729, 0, "'n'"), -(17730, 0, "'e'"), -(17731, 0, "'w'"), -(17731, 1, "''"), -(17731, 0, "'w'"), -(17732, 0, "'*'"), -(17733, 0, "' '"), -(17734, 0, "'b'"), -(17735, 0, "'e'"), -(17736, 0, "'c'"), -(17737, 0, "'a'"), -(17738, 0, "'u'"), -(17739, 0, "'s'"), -(17740, 0, "'e'"), -(17741, 0, "' '"), -(17742, 0, "'K'"), -(17743, 0, "'e'"), -(17744, 0, "'v'"), -(17745, 0, "'i'"), -(17746, 0, "'n'"), -(17747, 0, "' '"), -(17748, 0, "'h'"), -(17748, 1, "''"), -(17748, 0, "'i'"), -(17749, 0, "'s'"), -(17750, 0, "' '"), -(17751, 0, "'c'"), -(17752, 0, "'o'"), -(17753, 0, "'p'"), -(17754, 0, "'y'"), -(17755, 0, "'i'"), -(17756, 0, "'n'"), -(17757, 0, "'g'"), -(17758, 0, "' '"), -(17759, 0, "'m'"), -(17760, 0, "'e'"), -(17761, 0, "' '"), -(17762, 0, "'r'"), -(17763, 0, "'i'"), -(17764, 0, "'g'"), -(17765, 0, "'h'"), -(17766, 0, "'t'"), -(17767, 0, "' '"), -(17768, 0, "'b'"), -(17769, 0, "'a'"), -(17770, 0, "'c'"), -(17771, 0, "'k'"), -(17772, 0, "','"), -(17773, 0, "' '"), -(17774, 0, "'a'"), -(17775, 0, "'n'"), -(17776, 0, "'d'"), -(17777, 0, "' '"), -(17778, 0, "'o'"), -(17779, 0, "'r'"), -(17780, 0, "'k'"), -(17780, 1, "''"), -(17779, 1, "''"), -(17778, 1, "''"), -(17778, 0, "'w'"), -(17779, 0, "'o'"), -(17780, 0, "'r'"), -(17781, 0, "'k'"), -(17782, 0, "'i'"), -(17783, 0, "'n'"), -(17784, 0, "'g'"), -(17785, 0, "' '"), -(17786, 0, "'o'"), -(17787, 0, "'n'"), -(17788, 0, "' '"), -(17723, 11, "'u'"), -(17724, 0, "'s'"), -(17725, 0, "'e'"), -(17726, 0, "' '"), -(17727, 0, "'t'"), -(17728, 0, "'h'"), -(17729, 0, "'e'"), -(17730, 0, "' '"), -(17731, 0, "'p'"), -(17732, 0, "'a'"), -(17733, 0, "'s'"), -(17734, 0, "'t'"), -(17735, 0, "' '"), -(17736, 0, "'t'"), -(17737, 0, "'e'"), -(17738, 0, "'n'"), -(17739, 0, "'s'"), -(17740, 0, "'e'"), -(17741, 0, "' '"), -(17742, 0, "'h'"), -(17743, 0, "'e'"), -(17744, 0, "'r'"), -(17745, 0, "'e'"), -(17746, 0, "' '"), -(17802, 0, "'['"), -(17803, 0, "'Y'"), -(17804, 0, "'r'"), -(17805, 0, "'s'"), -(17806, 0, "']'"), -(17807, 0, "'('"), -(17808, 0, "'https://github.com/yjs/y-crdt'"), -(17837, 0, "')'"), -(17838, 0, "' '"), -(17839, 0, "'-'"), -(17840, 0, "' '"), -(17841, 0, "'a'"), -(17842, 0, "' '"), -(17843, 0, "'r'"), -(17844, 0, "'u'"), -(17845, 0, "'s'"), -(17846, 0, "'t'"), -(17847, 0, "' '"), -(17848, 0, "'p'"), -(17849, 0, "'o'"), -(17850, 0, "'r'"), -(17851, 0, "'t'"), -(17841, 2, "'h'"), -(17842, 0, "'i'"), -(17843, 0, "'s'"), -(17844, 0, "' '"), -(17845, 0, "'o'"), -(17846, 0, "'w'"), -(17847, 0, "'n'"), -(17848, 0, "' '"), -(17858, 0, "' '"), -(17859, 0, "'o'"), -(17860, 0, "'f'"), -(17861, 0, "' '"), -(17862, 0, "'Y'"), -(17863, 0, "'j'"), -(17864, 0, "'s'"), -(17865, 0, "' '"), -(17866, 0, "'t'"), -(17867, 0, "'h'"), -(17868, 0, "'a'"), -(17869, 0, "'t'"), -(17870, 0, "' '"), -(17870, 1, "''"), -(17869, 1, "''"), -(17868, 1, "''"), -(17868, 0, "'a'"), -(17869, 0, "'t'"), -(17870, 0, "' '"), -(17870, 1, "''"), -(17869, 1, "''"), -(17868, 1, "''"), -(17867, 1, "''"), -(17866, 1, "''"), -(17865, 1, "''"), -(17865, 0, "'!'"), -(17866, 0, "')'"), -(17720, 0, "'>'"), -(17721, 0, "' '"), -(17722, 1, "''"), -(17867, 1, "''"), -(18072, 0, "'B'"), -(18073, 0, "'a'"), -(18074, 0, "'d'"), -(18075, 0, "' '"), -(18076, 0, "'n'"), -(18077, 0, "'e'"), -(18078, 0, "'w'"), -(18079, 0, "'s'"), -(18080, 0, "':'"), -(18081, 0, "' '"), -(18456, 7, "'w'"), -(18457, 0, "'i'"), -(18458, 0, "'l'"), -(18459, 0, "'l'"), -(18460, 0, "' '"), -(18461, 0, "'o'"), -(18462, 0, "'f'"), -(18463, 0, "'t'"), -(18464, 0, "'e'"), -(18465, 0, "'n'"), -(18471, 1, "''"), -(18746, 16, "'A'"), -(18811, 7, "' '"), -(18812, 0, "'c'"), -(18813, 0, "'l'"), -(18814, 0, "'o'"), -(18815, 0, "'s'"), -(18816, 0, "'e'"), -(18817, 0, "' '"), -(18818, 0, "'t'"), -(18819, 0, "'o'"), -(18831, 0, "'n'"), -(18832, 0, "'n'"), -(18833, 0, "'>'"), -(18834, 0, "' '"), -(18835, 0, "'I'"), -(18836, 0, "'n'"), -(18837, 0, "'t'"), -(18838, 0, "'e'"), -(18839, 0, "'r'"), -(18840, 0, "'a'"), -(18841, 0, "'c'"), -(18842, 0, "'t'"), -(18843, 0, "'i'"), -(18844, 0, "'v'"), -(18845, 0, "'e'"), -(18846, 0, "' '"), -(18847, 0, "'v'"), -(18848, 0, "'i'"), -(18849, 0, "'s'"), -(18850, 0, "' '"), -(18851, 0, "'s'"), -(18852, 0, "'h'"), -(18853, 0, "'o'"), -(18854, 0, "'w'"), -(18855, 0, "'i'"), -(18856, 0, "'n'"), -(18857, 0, "'g'"), -(18858, 0, "' '"), -(18859, 0, "'1'"), -(18860, 0, "'0'"), -(18861, 0, "'0'"), -(18862, 0, "' '"), -(18863, 0, "'s'"), -(18864, 0, "'e'"), -(18865, 0, "'c'"), -(18866, 0, "'o'"), -(18867, 0, "'n'"), -(18868, 0, "'d'"), -(18869, 0, "'s'"), -(18870, 0, "' '"), -(18871, 0, "'v'"), -(18872, 0, "'s'"), -(18873, 0, "' '"), -(18874, 0, "'0'"), -(18875, 0, "'.'"), -(18876, 0, "'5'"), -(18877, 0, "' '"), -(18878, 0, "'s'"), -(18879, 0, "'e'"), -(18880, 0, "'c'"), -(18881, 0, "'o'"), -(18882, 0, "'n'"), -(18883, 0, "'d'"), -(18884, 0, "'s'"), -(18886, 0, "'n'"), -(18886, 0, "'n'"), -(18887, 0, "'I'"), -(18888, 0, "'t'"), -(18889, 0, "'s'"), -(18890, 0, "' '"), -(18891, 0, "'t'"), -(18892, 0, "'h'"), -(18893, 0, "'e'"), -(18894, 0, "' '"), -(18895, 0, "'d'"), -(18896, 0, "'i'"), -(18897, 0, "'f'"), -(18898, 0, "'f'"), -(18899, 0, "'e'"), -(18900, 0, "'r'"), -(18901, 0, "'e'"), -(18902, 0, "'n'"), -(18903, 0, "'c'"), -(18904, 0, "'e'"), -(18905, 0, "' '"), -(18906, 0, "'b'"), -(18907, 0, "'e'"), -(18908, 0, "'t'"), -(18909, 0, "'w'"), -(18910, 0, "'e'"), -(18911, 0, "'e'"), -(18912, 0, "'n'"), -(18913, 0, "' '"), -(18914, 0, "'r'"), -(18915, 0, "'e'"), -(18916, 0, "'a'"), -(18917, 0, "'d'"), -(18918, 0, "'i'"), -(18919, 0, "'n'"), -(18920, 0, "'g'"), -(18921, 0, "' '"), -(18922, 0, "'a'"), -(18923, 0, "' '"), -(18924, 0, "'p'"), -(18925, 0, "'i'"), -(18926, 0, "'e'"), -(18927, 0, "'c'"), -(18928, 0, "'e'"), -(18929, 0, "' '"), -(18930, 0, "'o'"), -(18931, 0, "'f'"), -(18932, 0, "' '"), -(18933, 0, "'p'"), -(18934, 0, "'a'"), -(18935, 0, "'p'"), -(18936, 0, "'e'"), -(18937, 0, "'r'"), -(18938, 0, "','"), -(18939, 0, "' '"), -(18940, 0, "'a'"), -(18941, 0, "'n'"), -(18942, 0, "'d'"), -(18943, 0, "' '"), -(18944, 0, "'r'"), -(18945, 0, "'e'"), -(18946, 0, "'a'"), -(18947, 0, "'d'"), -(18948, 0, "'i'"), -(18949, 0, "'n'"), -(18950, 0, "'g'"), -(18951, 0, "' '"), -(18952, 0, "'a'"), -(18953, 0, "' '"), -(18954, 0, "'p'"), -(18955, 0, "'i'"), -(18956, 0, "'e'"), -(18957, 0, "'c'"), -(18958, 0, "'e'"), -(18959, 0, "' '"), -(18960, 0, "'o'"), -(18961, 0, "'f'"), -(18962, 0, "' '"), -(18963, 0, "'p'"), -(18964, 0, "'a'"), -(18965, 0, "'p'"), -(18966, 0, "'e'"), -(18967, 0, "'r'"), -(18968, 0, "' '"), -(18969, 0, "'w'"), -(18970, 0, "'i'"), -(18971, 0, "'t'"), -(18972, 0, "'h'"), -(18973, 0, "'a'"), -(18974, 0, "' '"), -(18975, 0, "'s'"), -(18976, 0, "'c'"), -(18977, 0, "'a'"), -(18977, 1, "''"), -(18976, 1, "''"), -(18975, 1, "''"), -(18974, 1, "''"), -(18973, 1, "''"), -(18973, 0, "' '"), -(18974, 0, "'l'"), -(18975, 0, "'o'"), -(18976, 0, "'c'"), -(18977, 0, "'a'"), -(18978, 0, "'t'"), -(18979, 0, "'i'"), -(18980, 0, "'o'"), -(18981, 0, "'n'"), -(18982, 0, "' '"), -(18983, 0, "'i'"), -(18984, 0, "'n'"), -(18985, 0, "' '"), -(18986, 0, "'y'"), -(18987, 0, "'o'"), -(18988, 0, "'u'"), -(18989, 0, "'r'"), -(18990, 0, "' '"), -(18991, 0, "'h'"), -(18992, 0, "'o'"), -(18993, 0, "'u'"), -(18994, 0, "'s'"), -(18995, 0, "'e'"), -(18996, 0, "'.'"), -(18997, 0, "' '"), -(18998, 0, "'T'"), -(18999, 0, "'h'"), -(19000, 0, "'e'"), -(19001, 0, "'n'"), -(19002, 0, "' '"), -(19003, 0, "'y'"), -(19004, 0, "'o'"), -(19005, 0, "'u'"), -(19006, 0, "' '"), -(19007, 0, "'h'"), -(19008, 0, "'a'"), -(19009, 0, "'v'"), -(19010, 0, "'e'"), -(19011, 0, "' '"), -(19012, 0, "'t'"), -(19013, 0, "'o'"), -(19014, 0, "' '"), -(19015, 0, "'g'"), -(19016, 0, "'o'"), -(19017, 0, "' '"), -(19018, 0, "'t'"), -(19019, 0, "'h'"), -(19020, 0, "'e'"), -(19021, 0, "'r'"), -(19022, 0, "'e'"), -(19023, 0, "','"), -(19024, 0, "' '"), -(19025, 0, "'s'"), -(19026, 0, "'e'"), -(19027, 0, "'a'"), -(19028, 0, "'r'"), -(19029, 0, "'c'"), -(19030, 0, "'h'"), -(19031, 0, "' '"), -(19032, 0, "'a'"), -(19033, 0, "'r'"), -(19034, 0, "'o'"), -(19035, 0, "'u'"), -(19036, 0, "'n'"), -(19037, 0, "'d'"), -(19038, 0, "' '"), -(19039, 0, "'a'"), -(19040, 0, "'n'"), -(19041, 0, "'d'"), -(19042, 0, "' '"), -(19043, 0, "'*'"), -(19044, 0, "'t'"), -(19045, 0, "'h'"), -(19046, 0, "'e'"), -(19047, 0, "'n'"), -(19048, 0, "'*'"), -(19049, 0, "' '"), -(19050, 0, "'y'"), -(19051, 0, "'o'"), -(19052, 0, "'u'"), -(19053, 0, "' '"), -(19054, 0, "'f'"), -(19055, 0, "'i'"), -(19056, 0, "'n'"), -(19057, 0, "'d'"), -(19058, 0, "' '"), -(19059, 0, "'a'"), -(19060, 0, "' '"), -(19061, 0, "'p'"), -(19062, 0, "'i'"), -(19044, 19, "'t'"), -(19045, 0, "'h'"), -(19046, 0, "'e'"), -(19047, 0, "'r'"), -(19048, 0, "'e'"), -(19048, 1, "''"), -(19047, 1, "''"), -(19046, 1, "''"), -(19045, 1, "''"), -(19044, 1, "''"), -(19043, 1, "''"), -(19043, 0, "'t'"), -(19044, 0, "'h'"), -(19045, 0, "'e'"), -(19046, 0, "'r'"), -(19047, 0, "'e'"), -(19048, 0, "' '"), -(19049, 0, "'y'"), -(19050, 0, "'o'"), -(19051, 0, "'u'"), -(19052, 0, "' '"), -(19053, 0, "'f'"), -(19054, 0, "'i'"), -(19055, 0, "'n'"), -(19056, 0, "'d'"), -(19057, 0, "' '"), -(19058, 0, "'a'"), -(19059, 0, "'n'"), -(19060, 0, "'o'"), -(19061, 0, "'t'"), -(19062, 0, "'h'"), -(19063, 0, "'e'"), -(19064, 0, "'r'"), -(18923, 0, "' '"), -(18924, 0, "'n'"), -(18925, 0, "'o'"), -(18926, 0, "'t'"), -(18927, 0, "'e'"), -(18928, 0, "' '"), -(18929, 0, "'o'"), -(18930, 0, "'n'"), -(18931, 0, "' '"), -(18932, 0, "'a'"), -(18964, 0, "'s'"), -(18965, 0, "'c'"), -(18966, 0, "'a'"), -(18967, 0, "'v'"), -(18968, 0, "'e'"), -(18969, 0, "'n'"), -(18970, 0, "'g'"), -(18971, 0, "'e'"), -(18972, 0, "'r'"), -(18973, 0, "' '"), -(18974, 0, "'h'"), -(18975, 0, "'u'"), -(18976, 0, "'n'"), -(18977, 0, "'t'"), -(18978, 14, "''"), -(18983, 0, "' '"), -(18984, 0, "'a'"), -(19009, 7, "' '"), -(19010, 0, "'Y'"), -(19065, 0, "'*'"), -(19073, 0, "'*'"), -(19074, 0, "' '"), -(19075, 0, "'p'"), -(19076, 0, "'i'"), -(19077, 0, "'e'"), -(19078, 0, "'c'"), -(19079, 0, "'e'"), -(19080, 0, "' '"), -(19081, 0, "'o'"), -(19082, 0, "'f'"), -(19083, 0, "' '"), -(19084, 0, "'p'"), -(19085, 0, "'a'"), -(19086, 0, "'p'"), -(19087, 0, "'e'"), -(19088, 0, "'r'"), -(19089, 0, "' '"), -(19090, 0, "'w'"), -(19091, 0, "'i'"), -(19092, 0, "'t'"), -(19093, 0, "'h'"), -(19094, 0, "' '"), -(19095, 0, "'t'"), -(19096, 0, "'h'"), -(19097, 0, "'e'"), -(19098, 0, "' '"), -(19099, 0, "'a'"), -(19100, 0, "'c'"), -(19101, 0, "'t'"), -(19102, 0, "'u'"), -(19103, 0, "'a'"), -(19104, 0, "'l'"), -(19105, 0, "' '"), -(19106, 0, "'n'"), -(19107, 0, "'o'"), -(19108, 0, "'t'"), -(19109, 0, "'e'"), -(19110, 0, "' '"), -(19111, 0, "'o'"), -(19112, 0, "'n'"), -(19113, 0, "' '"), -(19114, 0, "'i'"), -(19115, 0, "'t'"), -(19116, 0, "'.'"), -(18886, 231, "''"), -(18885, 1, "''"), -(18956, 5, "''"), -(18956, 0, "','"), -(18957, 0, "' '"), -(18958, 0, "'o'"), -(18959, 0, "'n'"), -(18960, 0, "'l'"), -(18961, 0, "'y'"), -(18974, 0, "'''"), -(18975, 0, "'C'"), -(18976, 0, "'h'"), -(18977, 0, "'e'"), -(18978, 0, "'e'"), -(18979, 0, "'s'"), -(18980, 0, "'e'"), -(18981, 0, "','"), -(18982, 0, "' '"), -(18983, 0, "'M'"), -(18984, 0, "'i'"), -(18985, 0, "'l'"), -(18986, 0, "'k'"), -(18987, 0, "','"), -(18988, 0, "' '"), -(18989, 0, "'B'"), -(18990, 0, "'r'"), -(18991, 0, "'e'"), -(18992, 0, "'a'"), -(18993, 0, "'d'"), -(18994, 0, "'''"), -(18995, 0, "','"), -(18996, 0, "' '"), -(18997, 20, "''"), -(18996, 1, "''"), -(19015, 25, "''"), -(19015, 0, "' '"), -(19016, 0, "'h'"), -(19017, 0, "'a'"), -(19018, 0, "'s'"), -(19018, 1, "''"), -(19017, 1, "''"), -(19016, 1, "''"), -(19016, 0, "'l'"), -(19017, 0, "'i'"), -(19018, 0, "'s'"), -(19019, 0, "'t'"), -(19020, 0, "'s'"), -(19021, 0, "' '"), -(19022, 0, "'a'"), -(19023, 0, "' '"), -(19024, 0, "'s'"), -(19025, 0, "'e'"), -(19026, 0, "'r'"), -(19027, 0, "'i'"), -(19028, 0, "'e'"), -(19029, 0, "'s'"), -(19030, 0, "' '"), -(19031, 0, "'o'"), -(19032, 0, "'f'"), -(19048, 0, "'s'"), -(19061, 28, "''"), -(19084, 1, "''"), -(19084, 0, "' '"), -(19085, 0, "'-'"), -(19086, 0, "' '"), -(19087, 0, "'a'"), -(19088, 0, "'n'"), -(19089, 0, "'d'"), -(19090, 0, "' '"), -(19091, 0, "'o'"), -(19092, 0, "'n'"), -(19093, 0, "'l'"), -(19094, 0, "'y'"), -(19095, 0, "' '"), -(19096, 0, "'w'"), -(19097, 0, "'h'"), -(19098, 0, "'e'"), -(19099, 0, "'n'"), -(19100, 0, "' '"), -(19101, 0, "'y'"), -(19102, 0, "'o'"), -(19103, 0, "'u'"), -(19104, 0, "' '"), -(19105, 0, "'s'"), -(19106, 0, "'e'"), -(19107, 0, "'a'"), -(19108, 0, "'r'"), -(19109, 0, "'c'"), -(19110, 0, "'h'"), -(19111, 0, "' '"), -(19112, 0, "'a'"), -(19113, 0, "'r'"), -(19114, 0, "'o'"), -(19115, 0, "'u'"), -(19116, 0, "'n'"), -(19117, 0, "'d'"), -(19118, 0, "' '"), -(19119, 0, "'t'"), -(19120, 0, "'h'"), -(19121, 0, "'e'"), -(19122, 0, "'r'"), -(19123, 0, "'e'"), -(19124, 0, "' '"), -(19125, 0, "'w'"), -(19126, 0, "'i'"), -(19127, 0, "'l'"), -(19128, 0, "'l'"), -(19129, 0, "' '"), -(19130, 0, "'y'"), -(19131, 0, "'o'"), -(19132, 0, "'u'"), -(19133, 0, "' '"), -(19134, 0, "'f'"), -(19135, 0, "'i'"), -(19136, 0, "'n'"), -(19137, 0, "'d'"), -(19138, 5, "''"), -(19153, 6, "'w'"), -(19154, 0, "'h'"), -(19155, 0, "'i'"), -(19156, 0, "'c'"), -(19157, 0, "'h'"), -(19158, 0, "' '"), -(19159, 0, "'a'"), -(19160, 0, "'c'"), -(19161, 0, "'t'"), -(19162, 0, "'u'"), -(19163, 0, "'a'"), -(19164, 0, "'l'"), -(19165, 0, "'l'"), -(19166, 0, "'y'"), -(19167, 0, "' '"), -(19168, 0, "'s'"), -(19169, 0, "'a'"), -(19170, 0, "'y'"), -(19171, 0, "'s'"), -(19172, 0, "' '"), -(19173, 0, "'y'"), -(19174, 0, "'o'"), -(19175, 0, "'u'"), -(19176, 0, "' '"), -(19177, 0, "'n'"), -(19178, 0, "'e'"), -(19179, 0, "'e'"), -(19180, 0, "'d'"), -(19188, 30, "''"), -(19236, 5, "''"), -(19237, 2, "''"), -(19237, 1, "''"), -(19251, 0, "' '"), -(19252, 0, "'a'"), -(19253, 0, "'g'"), -(19254, 0, "'e'"), -(19255, 0, "'s'"), -(19312, 0, "' '"), -(19313, 0, "'s'"), -(19314, 0, "'o'"), -(19315, 0, "' '"), -(19316, 0, "'o'"), -(19317, 0, "'u'"), -(19318, 0, "'r'"), -(19319, 0, "' '"), -(19320, 0, "'d'"), -(19321, 0, "'a'"), -(19322, 0, "'t'"), -(19323, 0, "'a'"), -(19324, 0, "' '"), -(19325, 0, "'i'"), -(19326, 0, "'s'"), -(19327, 0, "' '"), -(19328, 0, "'a'"), -(19329, 0, "'l'"), -(19330, 0, "'l'"), -(19331, 0, "' '"), -(19332, 0, "'t'"), -(19333, 0, "'o'"), -(19334, 0, "'g'"), -(19335, 0, "'e'"), -(19336, 0, "'t'"), -(19337, 0, "'h'"), -(19338, 0, "'e'"), -(19339, 0, "'r'"), -(19340, 0, "' '"), -(19341, 0, "'i'"), -(19342, 0, "'n'"), -(19343, 0, "' '"), -(19344, 0, "'m'"), -(19345, 0, "'e'"), -(19346, 0, "'m'"), -(19347, 0, "'o'"), -(19348, 0, "'r'"), -(19349, 0, "'y'"), -(19315, 12, "' '"), -(19316, 0, "'i'"), -(19317, 0, "'t'"), -(19318, 0, "'s'"), -(19344, 3, "''"), -(19343, 1, "''"), -(19345, 0, "' '"), -(19346, 0, "'a'"), -(19347, 0, "'l'"), -(19348, 0, "'s'"), -(19349, 0, "'o'"), -(19343, 0, "'n'"), -(19344, 0, "'n'"), -(19345, 0, "'n'"), -(19343, 0, "' '"), -(19344, 0, "'T'"), -(19345, 0, "'h'"), -(19346, 0, "'i'"), -(19347, 0, "'s'"), -(19348, 0, "' '"), -(19349, 0, "'i'"), -(19350, 0, "'s'"), -(19351, 0, "' '"), -(19352, 0, "'w'"), -(19353, 0, "'h'"), -(19354, 0, "'y'"), -(19355, 0, "' '"), -(19356, 0, "'l'"), -(19357, 0, "'i'"), -(19358, 0, "'n'"), -(19359, 0, "'k'"), -(19360, 0, "'e'"), -(19361, 0, "'d'"), -(19344, 18, "'T'"), -(19345, 0, "'h'"), -(19346, 0, "'e'"), -(19347, 0, "'r'"), -(19348, 0, "'e'"), -(19349, 0, "'''"), -(19350, 0, "'s'"), -(19351, 0, "' '"), -(19352, 0, "'a'"), -(19353, 0, "' '"), -(19354, 0, "'r'"), -(19355, 0, "'e'"), -(19356, 0, "'a'"), -(19357, 0, "'s'"), -(19358, 0, "'o'"), -(19359, 0, "'n'"), -(19360, 0, "' '"), -(19361, 0, "'w'"), -(19362, 0, "'h'"), -(19363, 0, "'y'"), -(19364, 0, "' '"), -(19365, 0, "'a'"), -(19366, 0, "'l'"), -(19367, 0, "'n'"), -(19368, 0, "'o'"), -(19368, 1, "''"), -(19367, 1, "''"), -(19367, 0, "'m'"), -(19368, 0, "'o'"), -(19369, 0, "'s'"), -(19370, 0, "'t'"), -(19371, 0, "' '"), -(19372, 0, "'n'"), -(19373, 0, "'o'"), -(19374, 0, "'b'"), -(19375, 0, "'o'"), -(19376, 0, "'d'"), -(19377, 0, "'y'"), -(19378, 0, "' '"), -(19379, 0, "'u'"), -(19380, 0, "'s'"), -(19381, 0, "'e'"), -(19382, 0, "'s'"), -(19383, 0, "' '"), -(19384, 0, "'l'"), -(19385, 0, "'i'"), -(19386, 0, "'n'"), -(19387, 0, "'k'"), -(19388, 0, "'e'"), -(19389, 0, "'d'"), -(19390, 0, "' '"), -(19391, 0, "'l'"), -(19392, 0, "'i'"), -(19393, 0, "'s'"), -(19394, 0, "'t'"), -(19395, 0, "'s'"), -(18596, 8, "'e'"), -(18597, 0, "'v'"), -(18598, 0, "'e'"), -(18599, 0, "'r'"), -(18600, 0, "'y'"), -(18601, 0, "'t'"), -(18602, 0, "'h'"), -(18603, 0, "'i'"), -(18604, 0, "'n'"), -(18605, 0, "'g'"), -(18606, 0, "' '"), -(18607, 0, "'t'"), -(18607, 1, "''"), -(18607, 0, "'y'"), -(18608, 0, "'o'"), -(18609, 0, "'u'"), -(18610, 0, "'r'"), -(18611, 0, "' '"), -(18612, 0, "'c'"), -(18613, 0, "'o'"), -(18614, 0, "'m'"), -(18615, 0, "'p'"), -(18616, 0, "'u'"), -(18617, 0, "'t'"), -(18618, 0, "'e'"), -(18619, 0, "'r'"), -(18620, 0, "' '"), -(18621, 0, "'d'"), -(18622, 0, "'o'"), -(18623, 0, "'e'"), -(18624, 0, "'s'"), -(18625, 8, "''"), -(19029, 5, "'i'"), -(19030, 0, "'s'"), -(19066, 4, "'t'"), -(19067, 0, "'h'"), -(19068, 0, "'i'"), -(19069, 0, "'n'"), -(19070, 0, "' '"), -(19070, 1, "''"), -(19070, 0, "'g'"), -(19071, 0, "' '"), -(19072, 0, "'y'"), -(19073, 0, "'o'"), -(19074, 0, "'u'"), -(19075, 0, "' '"), -(19076, 0, "'n'"), -(19077, 0, "'e'"), -(19078, 0, "'e'"), -(19079, 0, "'d'"), -(19080, 0, "' '"), -(19081, 0, "'t'"), -(19082, 0, "'o'"), -(19083, 0, "' '"), -(19084, 0, "'b'"), -(19085, 0, "'u'"), -(19086, 0, "'y'"), -(19061, 22, "'T'"), -(19062, 0, "'h'"), -(19063, 0, "'e'"), -(19064, 0, "' '"), -(19065, 0, "'n'"), -(19066, 0, "'a'"), -(19067, 0, "'m'"), -(19068, 0, "'e'"), -(19061, 36, "''"), -(19061, 0, "'E'"), -(19062, 0, "'a'"), -(19063, 0, "'c'"), -(19064, 0, "'h'"), -(19065, 0, "' '"), -(19066, 0, "'i'"), -(19067, 0, "'t'"), -(19068, 0, "'e'"), -(19069, 0, "'m'"), -(19070, 0, "' '"), -(19071, 0, "'o'"), -(19072, 0, "'n'"), -(19073, 0, "' '"), -(19074, 0, "'y'"), -(19075, 0, "'o'"), -(19076, 0, "'u'"), -(19077, 0, "'r'"), -(19078, 0, "' '"), -(19079, 0, "'s'"), -(19080, 0, "'h'"), -(19081, 0, "'o'"), -(19082, 0, "'p'"), -(19083, 0, "'p'"), -(19084, 0, "'i'"), -(19085, 0, "'n'"), -(19086, 0, "'g'"), -(19087, 0, "' '"), -(19088, 0, "'l'"), -(19089, 0, "'i'"), -(19090, 0, "'s'"), -(19091, 0, "'t'"), -(19092, 0, "' '"), -(19093, 0, "'n'"), -(19094, 0, "'a'"), -(19095, 0, "'m'"), -(19096, 0, "'e'"), -(19097, 0, "'s'"), -(19098, 0, "' '"), -(19099, 0, "'s'"), -(19100, 0, "'o'"), -(19101, 0, "'m'"), -(19102, 0, "'e'"), -(19103, 0, "'w'"), -(19104, 0, "'h'"), -(19105, 0, "'e'"), -(19106, 0, "'r'"), -(19107, 0, "'e'"), -(19108, 0, "' '"), -(19109, 0, "'i'"), -(19110, 0, "'n'"), -(19111, 0, "' '"), -(19112, 0, "'y'"), -(19113, 0, "'o'"), -(19114, 0, "'u'"), -(19115, 0, "'r'"), -(19116, 0, "' '"), -(19117, 0, "'h'"), -(19118, 0, "'o'"), -(19119, 0, "'u'"), -(19120, 0, "'s'"), -(19121, 0, "'e'"), -(19122, 6, "''"), -(19122, 0, "'.'"), -(19124, 1, "''"), -(19124, 0, "'Y'"), -(19124, 1, "''"), -(19124, 0, "'O'"), -(19215, 1, "''"), -(19219, 1, "''"), -(19215, 1, "''"), -(19215, 0, "'m'"), -(19267, 15, "'y'"), -(19268, 0, "'o'"), -(19269, 0, "'u'"), -(19269, 1, "''"), -(19268, 1, "''"), -(19267, 1, "''"), -(19266, 1, "''"), -(19271, 0, "' '"), -(19272, 0, "'f'"), -(19273, 0, "'o'"), -(19274, 0, "'r'"), -(19275, 0, "' '"), -(19276, 0, "'y'"), -(19277, 0, "'o'"), -(19278, 0, "'u'"), -(19279, 0, "'r'"), -(19280, 0, "' '"), -(19281, 0, "'c'"), -(19282, 0, "'o'"), -(19283, 0, "'m'"), -(19284, 0, "'p'"), -(19285, 0, "'u'"), -(19286, 0, "'t'"), -(19287, 0, "'e'"), -(19288, 0, "'r'"), -(19289, 0, "')'"), -(19272, 0, "'('"), -(19273, 17, "'r'"), -(19274, 0, "'e'"), -(19275, 0, "'l'"), -(19276, 0, "'a'"), -(19277, 0, "'t'"), -(19278, 0, "'i'"), -(19279, 0, "'v'"), -(19280, 0, "'e'"), -(19281, 0, "'l'"), -(19282, 0, "'y'"), -(19283, 0, "' '"), -(19284, 0, "'s'"), -(19285, 0, "'p'"), -(19286, 0, "'e'"), -(19287, 0, "'a'"), -(19288, 0, "'k'"), -(19289, 0, "'i'"), -(19290, 0, "'n'"), -(19291, 0, "'g'"), -(19293, 0, "' '"), -(19294, 0, "'a'"), -(19295, 0, "'g'"), -(19296, 0, "'e'"), -(19297, 0, "'s'"), -(19297, 1, "''"), -(19296, 1, "''"), -(19295, 1, "''"), -(19294, 1, "''"), -(19293, 1, "''"), -(19353, 7, "'t'"), -(19354, 0, "'h'"), -(19355, 0, "'e'"), -(19356, 0, "'c'"), -(19357, 0, "'o'"), -(19358, 0, "'m'"), -(19359, 0, "'p'"), -(19360, 0, "'u'"), -(19360, 1, "''"), -(19359, 1, "''"), -(19358, 1, "''"), -(19357, 1, "''"), -(19356, 1, "''"), -(19356, 0, "' '"), -(19357, 0, "'c'"), -(19358, 0, "'o'"), -(19359, 0, "'m'"), -(19360, 0, "'p'"), -(19361, 0, "'u'"), -(19362, 0, "'t'"), -(19363, 0, "'e'"), -(19364, 0, "'r'"), -(19365, 0, "' '"), -(19366, 0, "'c'"), -(19367, 0, "'a'"), -(19368, 0, "'n'"), -(19369, 0, "' '"), -(19370, 0, "'f'"), -(19371, 0, "'e'"), -(19372, 0, "'t'"), -(19373, 0, "'c'"), -(19374, 0, "'h'"), -(19375, 0, "' '"), -(19376, 0, "'i'"), -(19377, 0, "'t'"), -(19378, 0, "' '"), -(19379, 0, "'a'"), -(19380, 0, "'l'"), -(19381, 0, "'l'"), -(19382, 0, "' '"), -(19383, 0, "'i'"), -(19384, 0, "'n'"), -(19385, 0, "' '"), -(19386, 0, "'o'"), -(19387, 0, "'n'"), -(19388, 0, "'e'"), -(19389, 0, "' '"), -(19390, 0, "'g'"), -(19391, 0, "'o'"), -(19392, 19, "''"), -(19446, 0, "' '"), -(19447, 0, "'a'"), -(19448, 0, "'n'"), -(19449, 0, "'d'"), -(19450, 0, "' '"), -(19451, 0, "'t'"), -(19452, 0, "'h'"), -(19453, 0, "'i'"), -(19454, 0, "'s'"), -(19455, 0, "' '"), -(19456, 0, "'i'"), -(19457, 0, "'s'"), -(19458, 0, "' '"), -(19459, 0, "'u'"), -(19459, 1, "''"), -(19459, 0, "'i'"), -(19460, 0, "'t'"), -(19461, 0, "' '"), -(19462, 0, "'-'"), -(19463, 0, "' '"), -(19464, 0, "'m'"), -(19465, 0, "'e'"), -(19466, 0, "'m'"), -(19467, 0, "'o'"), -(19468, 0, "'r'"), -(19469, 0, "'y'"), -(19470, 0, "' '"), -(19471, 0, "'f'"), -(19472, 0, "'r'"), -(19473, 0, "'a'"), -(19474, 0, "'g'"), -(19475, 0, "'m'"), -(19476, 0, "'e'"), -(19477, 0, "'n'"), -(19478, 0, "'t'"), -(19479, 0, "'a'"), -(19480, 0, "'t'"), -(19481, 0, "'i'"), -(19482, 0, "'o'"), -(19483, 0, "'n'"), -(19484, 0, "' '"), -(19485, 0, "'s'"), -(19486, 0, "'u'"), -(19486, 1, "''"), -(19485, 1, "''"), -(19485, 0, "'r'"), -(19486, 0, "'u'"), -(19487, 0, "'i'"), -(19488, 0, "'n'"), -(19489, 0, "'s'"), -(19490, 0, "' '"), -(19491, 0, "'p'"), -(19492, 0, "'e'"), -(19493, 0, "'r'"), -(19494, 0, "'f'"), -(19495, 0, "'o'"), -(19496, 0, "'r'"), -(19497, 0, "'m'"), -(19498, 0, "'a'"), -(19499, 0, "'n'"), -(19500, 0, "'c'"), -(19501, 0, "'e'"), -(19502, 0, "' '"), -(19503, 0, "'i'"), -(19504, 0, "'n'"), -(19505, 0, "' '"), -(19506, 0, "'t'"), -(19507, 0, "'h'"), -(19508, 0, "'e'"), -(19509, 0, "' '"), -(19510, 0, "'r'"), -(19511, 0, "'e'"), -(19512, 0, "'a'"), -(19513, 0, "'l'"), -(19514, 0, "' '"), -(19515, 0, "'w'"), -(19516, 0, "'o'"), -(19517, 0, "'r'"), -(19518, 0, "'l'"), -(19519, 0, "'d'"), -(19520, 0, "'.'"), -(19415, 19, "''"), -(19427, 0, "' '"), -(19428, 0, "'a'"), -(19429, 0, "'r'"), -(19430, 0, "'e'"), -(19431, 0, "' '"), -(19432, 0, "'a'"), -(19433, 0, "'l'"), -(19434, 0, "'m'"), -(19435, 0, "'o'"), -(19436, 0, "'s'"), -(19437, 0, "'t'"), -(19438, 0, "' '"), -(19439, 0, "'n'"), -(19440, 0, "'e'"), -(19441, 0, "'v'"), -(19442, 0, "'e'"), -(19443, 0, "'r'"), -(19444, 0, "' '"), -(19445, 0, "'u'"), -(19446, 0, "'s'"), -(19447, 0, "'e'"), -(19448, 0, "'d'"), -(19449, 0, "' '"), -(19450, 0, "'i'"), -(19451, 0, "'n'"), -(19452, 0, "' '"), -(19453, 0, "'t'"), -(19454, 0, "'h'"), -(19455, 0, "'e'"), -(19456, 0, "' '"), -(19457, 0, "'r'"), -(19458, 0, "'e'"), -(19459, 0, "'a'"), -(19460, 0, "'l'"), -(19461, 0, "' '"), -(19462, 0, "'w'"), -(19463, 0, "'o'"), -(19464, 0, "'r'"), -(19465, 0, "'l'"), -(19466, 0, "'d'"), -(19523, 18, "''"), -(19526, 1, "''"), -(19526, 1, "''"), -(19568, 24, "' '"), -(19569, 0, "'b'"), -(19570, 0, "'e'"), -(19571, 0, "'c'"), -(19572, 0, "'a'"), -(19573, 0, "'u'"), -(19574, 0, "'s'"), -(19575, 0, "'e'"), -(19674, 78, "''"), -(19658, 0, "'t'"), -(19659, 0, "'h'"), -(19660, 0, "'o'"), -(19661, 0, "'s'"), -(19662, 0, "'e'"), -(19663, 0, "' '"), -(19525, 1, "''"), -(19524, 1, "''"), -(19524, 0, "' '"), -(19714, 0, "'T'"), -(19715, 0, "'h'"), -(19716, 0, "'e'"), -(19717, 0, "' '"), -(19718, 0, "'p'"), -(19719, 0, "'r'"), -(19720, 0, "'o'"), -(19721, 0, "'b'"), -(19722, 0, "'l'"), -(19723, 0, "'e'"), -(19724, 0, "'m'"), -(19725, 0, "' '"), -(19726, 0, "'w'"), -(19727, 0, "'i'"), -(19728, 0, "'t'"), -(19729, 0, "'h'"), -(19730, 0, "' '"), -(19731, 1, "''"), -(19731, 0, "'f'"), -(19767, 0, "'i'"), -(19768, 0, "'s'"), -(19769, 0, "' '"), -(19770, 0, "'t'"), -(19771, 0, "'h'"), -(19772, 0, "'a'"), -(19773, 0, "'t'"), -(19774, 0, "' '"), -(19775, 0, "'y'"), -(19776, 0, "'o'"), -(19777, 0, "'u'"), -(19778, 0, "' '"), -(19779, 0, "'e'"), -(19780, 0, "'n'"), -(19781, 0, "'d'"), -(19782, 0, "' '"), -(19783, 0, "'u'"), -(19784, 0, "'p'"), -(19785, 0, "' '"), -(19790, 0, "'i'"), -(19791, 0, "'n'"), -(19792, 0, "'g'"), -(19871, 1, "''"), -(19896, 19, "'a'"), -(19897, 0, "'s'"), -(19898, 0, "' '"), -(19899, 0, "'a'"), -(19900, 0, "' '"), -(19901, 0, "'r'"), -(19902, 0, "'e'"), -(19903, 0, "'s'"), -(19904, 0, "'u'"), -(19905, 0, "'l'"), -(19906, 0, "'t'"), -(19907, 0, "' '"), -(19908, 0, "'y'"), -(19909, 0, "'o'"), -(19910, 0, "'u'"), -(19911, 0, "'r'"), -(19912, 0, "' '"), -(19913, 0, "'p'"), -(19914, 0, "'r'"), -(19915, 0, "'o'"), -(19916, 0, "'g'"), -(19917, 0, "'r'"), -(19918, 0, "'a'"), -(19919, 0, "'m'"), -(19920, 0, "'s'"), -(19921, 0, "' '"), -(19922, 0, "'o'"), -(19923, 0, "'f'"), -(19924, 0, "'t'"), -(19925, 0, "'e'"), -(19926, 0, "'n'"), -(19927, 0, "' '"), -(19928, 0, "'e'"), -(19929, 0, "'n'"), -(19930, 0, "'d'"), -(19931, 0, "' '"), -(19932, 0, "'u'"), -(19933, 0, "'p'"), -(19934, 0, "' '"), -(19935, 0, "'r'"), -(19936, 0, "'u'"), -(19937, 0, "'n'"), -(19938, 0, "'n'"), -(19939, 0, "'i'"), -(19940, 0, "'n'"), -(19941, 0, "'g'"), -(19949, 12, "' '"), -(19950, 0, "'a'"), -(19951, 0, "'n'"), -(19952, 0, "'y'"), -(19953, 0, "'w'"), -(19954, 0, "'a'"), -(19955, 0, "'y'"), -(19908, 0, "'o'"), -(19909, 0, "'f'"), -(19910, 0, "' '"), -(19911, 0, "'a'"), -(19912, 0, "'l'"), -(19913, 0, "'l'"), -(19914, 0, "' '"), -(19915, 0, "'t'"), -(19916, 0, "'h'"), -(19917, 0, "'a'"), -(19918, 0, "'t'"), -(19919, 0, "' '"), -(19920, 0, "'w'"), -(19921, 0, "'o'"), -(19922, 0, "'r'"), -(19923, 0, "'k'"), -(19924, 0, "' '"), -(20018, 0, "','"), -(20019, 0, "' '"), -(20020, 0, "'a'"), -(20021, 0, "'n'"), -(20022, 0, "'d'"), -(20023, 0, "' '"), -(20024, 0, "'w'"), -(20025, 0, "'h'"), -(20026, 0, "'y'"), -(20027, 0, "' '"), -(20028, 0, "'i'"), -(20029, 0, "'t'"), -(20030, 0, "' '"), -(20031, 0, "'h'"), -(20032, 0, "'a'"), -(20033, 0, "'n'"), -(20033, 1, "''"), -(20033, 0, "'s'"), -(20034, 0, "'n'"), -(20035, 0, "'''"), -(20036, 0, "'t'"), -(20037, 0, "' '"), -(20038, 0, "'g'"), -(20039, 0, "'o'"), -(20040, 0, "'t'"), -(20041, 0, "'t'"), -(20042, 0, "'e'"), -(20043, 0, "'n'"), -(20044, 0, "' '"), -(20045, 0, "'f'"), -(20046, 0, "'a'"), -(20047, 0, "'s'"), -(20048, 0, "'t'"), -(20049, 0, "'e'"), -(20050, 0, "'r'"), -(20051, 0, "' '"), -(20052, 0, "'i'"), -(20053, 0, "'n'"), -(20037, 17, "' '"), -(20038, 0, "'r'"), -(20039, 0, "'e'"), -(20040, 0, "'a'"), -(20041, 0, "'l'"), -(20042, 0, "'l'"), -(20043, 0, "'y'"), -(20044, 0, "' '"), -(20045, 0, "'g'"), -(20046, 0, "'o'"), -(20047, 0, "'t'"), -(20048, 0, "'t'"), -(20049, 0, "'e'"), -(20050, 0, "'n'"), -(20051, 0, "' '"), -(20052, 0, "'a'"), -(20053, 0, "'n'"), -(20054, 0, "'y'"), -(20055, 0, "' '"), -(20056, 0, "'f'"), -(20057, 0, "'a'"), -(20058, 0, "'s'"), -(20059, 0, "'t'"), -(20060, 0, "'e'"), -(20061, 0, "'r'"), -(20502, 0, "' '"), -(20503, 0, "'A'"), -(20504, 0, "'n'"), -(20505, 0, "'d'"), -(20506, 0, "' '"), -(20507, 0, "'a'"), -(20508, 0, "'t'"), -(20509, 0, "' '"), -(20510, 0, "'l'"), -(20510, 1, "''"), -(20510, 0, "'e'"), -(20511, 0, "'a'"), -(20512, 0, "'c'"), -(20513, 0, "'h'"), -(20514, 0, "' '"), -(20515, 0, "'l'"), -(20516, 0, "'e'"), -(20517, 0, "'a'"), -(20518, 0, "'f'"), -(20519, 0, "','"), -(20520, 0, "' '"), -(20521, 0, "'e'"), -(20522, 0, "'w'"), -(20523, 0, "' '"), -(20523, 1, "''"), -(20522, 1, "''"), -(20521, 1, "''"), -(20521, 0, "'w'"), -(20522, 0, "'e'"), -(20523, 0, "' '"), -(20524, 0, "'s'"), -(20525, 0, "'t'"), -(20526, 0, "'o'"), -(20527, 0, "'r'"), -(20528, 0, "'e'"), -(20529, 0, "' '"), -(20530, 0, "'3'"), -(20531, 0, "'2'"), -(20532, 0, "' '"), -(20533, 0, "'s'"), -(20534, 0, "'p'"), -(20535, 0, "'a'"), -(20536, 0, "'n'"), -(20537, 0, "'s'"), -(20538, 0, "' '"), -(20539, 0, "'o'"), -(20540, 0, "'f'"), -(20541, 0, "' '"), -(20542, 0, "'i'"), -(20543, 0, "'n'"), -(20544, 0, "'s'"), -(20545, 0, "'e'"), -(20546, 0, "'r'"), -(20547, 0, "'t'"), -(20548, 0, "'s'"), -(20549, 0, "' '"), -(20550, 0, "'('"), -(20551, 0, "'!'"), -(20552, 0, "')'"), -(20549, 0, "','"), -(20550, 0, "' '"), -(20551, 0, "'a'"), -(20551, 1, "''"), -(20550, 1, "''"), -(20549, 1, "''"), -(20530, 0, "'a'"), -(20531, 0, "' '"), -(20532, 0, "'c'"), -(20533, 0, "'h'"), -(20534, 0, "'u'"), -(20535, 0, "'n'"), -(20536, 0, "'k'"), -(20537, 0, "' '"), -(20538, 0, "'o'"), -(20539, 0, "'f'"), -(20540, 0, "' '"), -(20560, 0, "','"), -(20561, 0, "' '"), -(20562, 0, "'a'"), -(20563, 0, "'l'"), -(20564, 0, "'l'"), -(20565, 0, "' '"), -(20566, 0, "'c'"), -(20567, 0, "'o'"), -(20568, 0, "'n'"), -(20569, 0, "'g'"), -(20570, 0, "'i'"), -(20570, 1, "''"), -(20569, 1, "''"), -(20569, 0, "'t'"), -(20570, 0, "'i'"), -(20571, 0, "'g'"), -(20572, 0, "'u'"), -(20573, 0, "'o'"), -(20574, 0, "'u'"), -(20575, 0, "'s'"), -(20576, 0, "' '"), -(20577, 0, "'i'"), -(20578, 0, "'n'"), -(20579, 0, "' '"), -(20580, 0, "'m'"), -(20581, 0, "'e'"), -(20582, 0, "'m'"), -(20583, 0, "'o'"), -(20584, 0, "'r'"), -(20585, 0, "'y'"), -(20587, 1, "''"), -(20586, 1, "''"), -(20587, 1, "''"), -(20543, 9, "''"), -(20550, 1, "''"), -(20550, 0, "' '"), -(20551, 0, "'s'"), -(20552, 0, "'p'"), -(20553, 0, "'a'"), -(20554, 0, "'n'"), -(20555, 0, "'s'"), -(20872, 0, "'a'"), -(20873, 0, "'b'"), -(20874, 0, "'o'"), -(20875, 0, "'u'"), -(20876, 0, "'t'"), -(20877, 0, "' '"), -(20972, 0, "' '"), -(20973, 0, "'a'"), -(20974, 0, "'f'"), -(20975, 0, "'t'"), -(20976, 0, "'e'"), -(20977, 0, "'r'"), -(21208, 0, "' '"), -(21208, 1, "''"), -(21208, 0, "' '"), -(21209, 0, "'a'"), -(21210, 0, "'l'"), -(21211, 0, "'s'"), -(21212, 0, "'o'"), -(21212, 1, "''"), -(21211, 1, "''"), -(21210, 1, "''"), -(21209, 1, "''"), -(21208, 1, "''"), -(20502, 81, "''"), -(21357, 32, "''"), -(21357, 0, "'I'"), -(21358, 0, "'''"), -(21359, 0, "'m'"), -(21360, 0, "' '"), -(21361, 0, "'s'"), -(21362, 0, "'t'"), -(21363, 0, "'o'"), -(21364, 0, "'r'"), -(21365, 0, "'i'"), -(21366, 0, "'n'"), -(21367, 0, "'g'"), -(21368, 0, "' '"), -(21369, 0, "'a'"), -(21370, 0, "'n'"), -(21371, 0, "' '"), -(21372, 0, "'i'"), -(21373, 0, "'n'"), -(21374, 0, "'l'"), -(21375, 0, "'i'"), -(21376, 0, "'n'"), -(21377, 0, "'e'"), -(21378, 0, "' '"), -(21379, 0, "'a'"), -(21380, 0, "'r'"), -(21381, 0, "'r'"), -(21382, 0, "'a'"), -(21383, 0, "'y'"), -(21384, 4, "''"), -(21398, 0, "' '"), -(21399, 0, "'i'"), -(21400, 0, "'n'"), -(21401, 0, "' '"), -(21402, 0, "'e'"), -(21403, 0, "'a'"), -(21404, 0, "'c'"), -(21405, 0, "'h'"), -(21406, 0, "' '"), -(21407, 0, "'l'"), -(21408, 0, "'e'"), -(21409, 0, "'a'"), -(21410, 0, "'f'"), -(21411, 0, "' '"), -(21412, 0, "'n'"), -(21413, 0, "'o'"), -(21414, 0, "'d'"), -(21415, 0, "'e'"), -(21379, 0, "'p'"), -(21380, 0, "'a'"), -(21381, 0, "'c'"), -(21382, 0, "'k'"), -(21383, 0, "'e'"), -(21384, 0, "'d'"), -(21385, 0, "' '"), -(21423, 21, "''"), -(21445, 1, "''"), -(21449, 1, "''"), -(21449, 5, "' '"), -(21450, 0, "'r'"), -(21451, 0, "'e'"), -(21452, 0, "'s'"), -(21453, 0, "'u'"), -(21454, 0, "'l'"), -(21455, 0, "'t'"), -(21456, 0, "' '"), -(21457, 0, "'i'"), -(21458, 0, "'n'"), -(21586, 0, "'I'"), -(21587, 0, "'t'"), -(21588, 0, "'s'"), -(21589, 0, "' '"), -(21590, 1, "''"), -(21590, 0, "'n'"), -(21584, 0, "' '"), -(21585, 0, "'p'"), -(21586, 0, "'e'"), -(21587, 0, "'r'"), -(21588, 0, "' '"), -(21589, 0, "'w'"), -(21590, 0, "'o'"), -(21591, 0, "'r'"), -(21592, 0, "'d'"), -(21595, 4, "''"), -(21594, 1, "''"), -(21593, 1, "''"), -(21593, 0, "','"), -(21594, 0, "' '"), -(21595, 0, "'a'"), -(21596, 0, "'s'"), -(21597, 0, "' '"), -(21598, 0, "'o'"), -(21599, 0, "'p'"), -(21600, 0, "'p'"), -(21601, 0, "'o'"), -(21602, 0, "'s'"), -(21603, 0, "'e'"), -(21604, 0, "'d'"), -(21605, 0, "' '"), -(21606, 0, "'t'"), -(21607, 0, "'o'"), -(21608, 0, "' '"), -(21609, 4, "''"), -(21567, 26, "'a'"), -(21568, 0, "' '"), -(21569, 0, "'f'"), -(21570, 0, "'e'"), -(21571, 0, "'w'"), -(21572, 0, "' '"), -(21573, 0, "'b'"), -(21574, 0, "'y'"), -(21575, 0, "'t'"), -(21576, 0, "'e'"), -(21577, 0, "'s'"), -(21578, 0, "' '"), -(21579, 0, "'p'"), -(21580, 0, "'e'"), -(21581, 0, "'r'"), -(21582, 0, "' '"), -(21583, 0, "'h'"), -(21584, 0, "'e'"), -(21585, 0, "'a'"), -(21586, 0, "'r'"), -(21587, 0, "'t'"), -(21588, 0, "'b'"), -(21589, 0, "'e'"), -(21590, 0, "'a'"), -(21591, 0, "'t'"), -(21611, 0, "' '"), -(21612, 0, "'e'"), -(21613, 0, "'p'"), -(21614, 0, "'i'"), -(21615, 0, "'c'"), -(21616, 0, "' '"), -(21616, 1, "''"), -(21946, 0, "' '"), -(21947, 0, "'T'"), -(21948, 0, "'h'"), -(21949, 0, "'a'"), -(21950, 0, "'t'"), -(21951, 0, "'s'"), -(21952, 0, "' '"), -(21953, 0, "'4'"), -(21954, 0, "'4'"), -(21955, 0, "'0'"), -(21956, 0, "'0'"), -(21956, 1, "''"), -(21955, 1, "''"), -(21954, 1, "''"), -(21954, 0, "'5'"), -(21955, 0, "'0'"), -(21956, 0, "'0'"), -(21957, 0, "'x'"), -(21958, 0, "' '"), -(21959, 0, "'f'"), -(21960, 0, "'a'"), -(21961, 0, "'s'"), -(21962, 0, "'t'"), -(21963, 0, "'e'"), -(21964, 0, "'r'"), -(21965, 0, "' '"), -(21966, 0, "'t'"), -(21967, 0, "'h'"), -(21968, 0, "'a'"), -(21969, 0, "'n'"), -(21970, 0, "' '"), -(21971, 0, "'t'"), -(21972, 0, "'h'"), -(21973, 0, "'e'"), -(21971, 3, "'w'"), -(21972, 0, "'h'"), -(21973, 0, "'e'"), -(21974, 0, "'r'"), -(21975, 0, "'e'"), -(21976, 0, "' '"), -(21977, 0, "'w'"), -(21978, 0, "'e'"), -(21979, 0, "' '"), -(21980, 0, "'s'"), -(21981, 0, "'t'"), -(21982, 0, "'a'"), -(21983, 0, "'r'"), -(21984, 0, "'t'"), -(21985, 0, "'e'"), -(21986, 0, "'d'"), -(21987, 0, "' '"), -(21988, 0, "'w'"), -(21989, 0, "'i'"), -(21990, 0, "'t'"), -(21991, 0, "'h'"), -(21992, 0, "' '"), -(21993, 0, "'a'"), -(21994, 0, "'u'"), -(21995, 0, "'t'"), -(21996, 0, "'o'"), -(21997, 0, "'m'"), -(21998, 0, "'e'"), -(21999, 0, "'r'"), -(22000, 0, "'g'"), -(22001, 0, "'e'"), -(22002, 0, "'.'"), -(22002, 1, "''"), -(22002, 0, "','"), -(22003, 0, "' '"), -(22004, 0, "'o'"), -(22005, 0, "'r'"), -(22006, 0, "' '"), -(22007, 0, "'a'"), -(22008, 0, "'b'"), -(22009, 0, "'o'"), -(22010, 0, "'u'"), -(22011, 0, "'t'"), -(22012, 0, "' '"), -(22013, 0, "'4'"), -(22014, 0, "'.'"), -(22015, 0, "'3'"), -(22016, 0, "' '"), -(22017, 0, "'m'"), -(22018, 0, "'i'"), -(22019, 0, "'l'"), -(22020, 0, "'l'"), -(22021, 0, "'i'"), -(22022, 0, "'o'"), -(22023, 0, "'n'"), -(22024, 0, "' '"), -(22025, 0, "'p'"), -(22025, 1, "''"), -(22025, 0, "'o'"), -(22026, 0, "'p'"), -(22027, 0, "'e'"), -(22028, 0, "'r'"), -(22029, 0, "'a'"), -(22030, 0, "'t'"), -(22031, 0, "'i'"), -(22032, 0, "'o'"), -(22033, 0, "'n'"), -(22034, 0, "'s'"), -(22035, 0, "' '"), -(22036, 0, "'e'"), -(22037, 0, "'v'"), -(22038, 0, "'e'"), -(22039, 0, "'r'"), -(22040, 0, "'y'"), -(22041, 0, "' '"), -(22042, 0, "'s'"), -(22043, 0, "'e'"), -(22044, 0, "'c'"), -(22045, 0, "'o'"), -(22046, 0, "'n'"), -(22047, 0, "'d'"), -(22048, 0, "'.'"), -(22003, 1, "''"), -(22002, 1, "''"), -(22002, 0, "'.'"), -(22003, 0, "' '"), -(22004, 0, "'I'"), -(22005, 0, "'t'"), -(22006, 0, "' '"), -(22007, 0, "'c'"), -(22008, 0, "'a'"), -(22009, 0, "'n'"), -(22010, 0, "' '"), -(22011, 0, "'p'"), -(22012, 0, "'r'"), -(22013, 0, "'o'"), -(22014, 0, "'c'"), -(22015, 0, "'e'"), -(22016, 0, "'s'"), -(22017, 0, "'s'"), -(22018, 2, "''"), -(22019, 6, "''"), -(22023, 0, "'*'"), -(22031, 0, "'*'"), -(22376, 0, "'*'"), -(22388, 0, "'*'"), -(22389, 1, "''"), -(22389, 1, "''"), -(22660, 511, "''"), -(25386, 0, "'n'"), -(25387, 0, "'But I've done one last thing. I don't know if its a good idea, but I did it anyway because it sounded clever and I couldn't help myself. In this implementation, I split out the document's text content into a separate data structure. The reason is that when you're actually doing collaborative editing, you probably want all the characters in your document to be stored in an actual array, or in VS Code's editor or something. I don't think it makes sense to duplicate the document's content in my library too.nn'"), -(22659, 0, "'n'"), -(22660, 0, "'T'"), -(22661, 0, "'h'"), -(22662, 0, "'i'"), -(22663, 0, "'s'"), -(22664, 0, "' '"), -(22665, 0, "'i'"), -(22666, 0, "'m'"), -(22667, 0, "'p'"), -(22668, 0, "'l'"), -(22669, 0, "'e'"), -(22670, 0, "'m'"), -(22671, 0, "'e'"), -(22672, 0, "'n'"), -(22673, 0, "'t'"), -(22674, 0, "'a'"), -(22675, 0, "'t'"), -(22676, 0, "'i'"), -(22677, 0, "'o'"), -(22678, 0, "'n'"), -(22679, 0, "' '"), -(22680, 0, "'u'"), -(22681, 0, "'s'"), -(22682, 0, "'e'"), -(22683, 0, "'s'"), -(22684, 0, "' '"), -(22685, 0, "'a'"), -(22686, 6, "''"), -(22705, 0, "' '"), -(22706, 0, "'a'"), -(22707, 0, "'p'"), -(22708, 0, "'p'"), -(22709, 0, "'r'"), -(22710, 0, "'o'"), -(22711, 0, "'a'"), -(22712, 0, "'c'"), -(22713, 0, "'h'"), -(22754, 0, "' '"), -(22755, 0, "'f'"), -(22756, 0, "'o'"), -(22757, 0, "'r'"), -(22758, 0, "' '"), -(22759, 0, "'t'"), -(22760, 0, "'h'"), -(22761, 0, "'e'"), -(22762, 0, "' '"), -(22763, 0, "'s'"), -(22764, 0, "'t'"), -(22765, 0, "'r'"), -(22766, 0, "'i'"), -(22767, 0, "'n'"), -(22768, 0, "'g'"), -(22769, 0, "' '"), -(22770, 0, "'c'"), -(22771, 0, "'o'"), -(22772, 0, "'n'"), -(22773, 0, "'t'"), -(22774, 0, "'e'"), -(22775, 0, "'n'"), -(22776, 0, "'t'"), -(22777, 0, "'.'"), -(22778, 9, "' '"), -(22779, 0, "'T'"), -(22780, 0, "'h'"), -(22781, 0, "'e'"), -(22782, 0, "' '"), -(22783, 0, "'c'"), -(22784, 0, "'o'"), -(22785, 0, "'m'"), -(22786, 0, "'p'"), -(22787, 0, "'l'"), -(22788, 0, "'e'"), -(22789, 0, "'t'"), -(22790, 0, "'e'"), -(22783, 8, "'w'"), -(22784, 0, "'h'"), -(22785, 0, "'o'"), -(22786, 0, "'l'"), -(22787, 0, "'e'"), -(22783, 5, "''"), -(22782, 1, "''"), -(22808, 8, "' '"), -(22809, 0, "'l'"), -(22810, 0, "'o'"), -(22811, 0, "'o'"), -(22812, 0, "'k'"), -(22813, 0, "'s'"), -(22852, 9, "''"), -(22852, 0, "'{'"), -(22853, 0, "'}'"), -(22853, 0, "'i'"), -(22854, 0, "'d'"), -(22855, 0, "','"), -(22856, 0, "' '"), -(22857, 0, "'p'"), -(22858, 0, "'a'"), -(22859, 0, "'r'"), -(22860, 0, "'e'"), -(22861, 0, "'n'"), -(22862, 0, "'t'"), -(22863, 0, "','"), -(22864, 0, "' '"), -(22865, 0, "'.'"), -(22866, 0, "'.'"), -(22867, 0, "'.'"), -(22855, 0, "' '"), -(22856, 0, "'l'"), -(22857, 0, "'e'"), -(22858, 0, "'n'"), -(22858, 1, "''"), -(22857, 1, "''"), -(22856, 1, "''"), -(22855, 1, "''"), -(22855, 0, "','"), -(22856, 0, "' '"), -(22857, 0, "'l'"), -(22858, 0, "'e'"), -(22859, 0, "'n'"), -(22860, 0, "'g'"), -(22861, 0, "'t'"), -(22862, 0, "'h'"), -(22871, 5, "''"), -(22874, 9, "'{id, length, parent}'"), -(22967, 0, "'n'"), -(22967, 0, "'n'"), -(22968, 0, "'A'"), -(22969, 0, "'l'"), -(22970, 0, "'l'"), -(22971, 0, "' '"), -(22972, 0, "'t'"), -(22973, 0, "'h'"), -(22974, 0, "'e'"), -(22975, 0, "' '"), -(22976, 0, "'t'"), -(22977, 0, "'e'"), -(22978, 0, "'t'"), -(22978, 1, "''"), -(22978, 0, "'x'"), -(22979, 0, "'t'"), -(22980, 0, "' '"), -(22981, 0, "'c'"), -(22982, 0, "'o'"), -(22983, 0, "'n'"), -(22984, 0, "'t'"), -(22985, 0, "'e'"), -(22986, 0, "'n'"), -(22987, 0, "'t'"), -(22988, 0, "' '"), -(22989, 0, "'i'"), -(22990, 0, "'t'"), -(22991, 0, "'s'"), -(22992, 0, "'l'"), -(22993, 0, "'e'"), -(22994, 0, "'f'"), -(22994, 1, "''"), -(22993, 1, "''"), -(22992, 1, "''"), -(22992, 0, "'e'"), -(22993, 0, "'l'"), -(22994, 0, "'f'"), -(22995, 0, "' '"), -(22996, 0, "'i'"), -(22997, 0, "'s'"), -(22998, 0, "' '"), -(22999, 0, "'p'"), -(23000, 0, "'u'"), -(23001, 0, "'l'"), -(23002, 0, "'l'"), -(23003, 0, "'e'"), -(23004, 0, "'d'"), -(23005, 0, "' '"), -(23006, 0, "'o'"), -(23007, 0, "'u'"), -(23008, 0, "'t'"), -(23009, 0, "' '"), -(23010, 0, "'i'"), -(23011, 0, "'n'"), -(23012, 0, "'t'"), -(23013, 0, "'o'"), -(23014, 0, "' '"), -(23015, 0, "'a'"), -(23016, 0, "' '"), -(23017, 0, "'r'"), -(23018, 0, "'o'"), -(23019, 0, "'p'"), -(23020, 0, "'e'"), -(23021, 0, "' '"), -(23022, 0, "'l'"), -(23023, 0, "'i'"), -(23024, 0, "'b'"), -(23025, 0, "'r'"), -(23026, 0, "'a'"), -(23027, 0, "'r'"), -(23028, 0, "'y'"), -(23029, 0, "' '"), -(23029, 1, "''"), -(23029, 0, "'.'"), -(23030, 0, "' '"), -(23031, 0, "'('"), -(23032, 0, "'S'"), -(23033, 0, "'m'"), -(23034, 0, "'a'"), -(23035, 0, "'r'"), -(23036, 0, "'t'"), -(23032, 5, "'R'"), -(23033, 0, "'o'"), -(23034, 0, "'p'"), -(23035, 0, "'e'"), -(23036, 0, "'s'"), -(23037, 0, "' '"), -(23038, 0, "'a'"), -(23039, 0, "'r'"), -(23040, 0, "'e'"), -(23041, 0, "' '"), -(23042, 0, "'s'"), -(23043, 0, "'m'"), -(23044, 0, "'a'"), -(23045, 0, "'r'"), -(23046, 0, "'t'"), -(23047, 0, "' '"), -(23048, 0, "'s'"), -(23049, 0, "'t'"), -(23050, 0, "'r'"), -(23051, 0, "'i'"), -(23052, 0, "'n'"), -(23053, 0, "'g'"), -(23054, 0, "'s'"), -(23055, 0, "')'"), -(23055, 0, "'.'"), -(23056, 0, "' '"), -(23057, 0, "'G'"), -(23058, 0, "'e'"), -(23059, 0, "'t'"), -(23060, 0, "' '"), -(23061, 0, "'i'"), -(23062, 0, "'t'"), -(23063, 0, "'?'"), -(23041, 6, "' '"), -(23042, 0, "'f'"), -(23043, 0, "'a'"), -(23044, 0, "'n'"), -(23045, 0, "'c'"), -(23046, 0, "'y'"), -(23065, 1, "''"), -(23065, 1, "''"), -(23065, 0, "'.'"), -(23066, 0, "' '"), -(23087, 0, "' '"), -(23088, 0, "'h'"), -(23089, 0, "'e'"), -(23090, 0, "'r'"), -(23091, 0, "'e'"), -(23147, 1, "''"), -(23146, 1, "''"), -(23146, 0, "','"), -(23147, 0, "' '"), -(23148, 0, "'w'"), -(23149, 0, "'o'"), -(23150, 0, "'r'"), -(23151, 0, "'k'"), -(23151, 1, "''"), -(23150, 1, "''"), -(23149, 1, "''"), -(23149, 0, "'h'"), -(23150, 0, "'i'"), -(23151, 0, "'c'"), -(23152, 0, "'h'"), -(23153, 0, "' '"), -(23154, 0, "'w'"), -(23155, 0, "'o'"), -(23156, 0, "'r'"), -(23157, 0, "'k'"), -(23158, 0, "'s'"), -(23159, 0, "' '"), -(23160, 0, "'g'"), -(23161, 0, "'r'"), -(23162, 0, "'e'"), -(23163, 0, "'a'"), -(23164, 0, "'t'"), -(23165, 15, "''"), -(23197, 0, "' '"), -(23198, 0, "'s'"), -(23199, 0, "'o'"), -(23200, 0, "' '"), -(23201, 0, "'f'"), -(23202, 0, "'a'"), -(23203, 0, "'s'"), -(23204, 0, "'t'"), -(23205, 0, "' '"), -(23206, 0, "'t'"), -(23207, 0, "'h'"), -(23208, 0, "'a'"), -(23209, 0, "'t'"), -(23210, 12, "''"), -(23216, 0, "' '"), -(23216, 1, "''"), -(23216, 0, "' '"), -(23217, 0, "'i'"), -(23218, 0, "'s'"), -(23219, 0, "' '"), -(23220, 0, "'a'"), -(23221, 0, "'c'"), -(23222, 0, "'t'"), -(23223, 0, "'u'"), -(23224, 0, "'a'"), -(23225, 0, "'l'"), -(23226, 0, "'l'"), -(23227, 0, "'y'"), -(23228, 0, "' '"), -(23229, 0, "'d'"), -(23230, 0, "'o'"), -(23231, 0, "'m'"), -(23232, 0, "'i'"), -(23233, 0, "'n'"), -(23234, 0, "'a'"), -(23235, 0, "'t'"), -(23236, 0, "'i'"), -(23237, 0, "'n'"), -(23238, 0, "'g'"), -(23211, 28, "'m'"), -(23212, 0, "'o'"), -(23213, 0, "'s'"), -(23214, 0, "'t'"), -(23215, 0, "' '"), -(23216, 0, "'o'"), -(23217, 0, "'f'"), -(23218, 0, "' '"), -(23219, 0, "'t'"), -(23220, 0, "'h'"), -(23221, 0, "'e'"), -(23222, 0, "' '"), -(23223, 0, "'a'"), -(23224, 0, "'l'"), -(23225, 0, "'g'"), -(23226, 0, "'o'"), -(23227, 0, "'r'"), -(23228, 0, "'i'"), -(23229, 0, "'t'"), -(23230, 0, "'h'"), -(23231, 0, "'m'"), -(23232, 0, "'''"), -(23233, 0, "'s'"), -(23234, 0, "' '"), -(23235, 0, "'t'"), -(23236, 0, "'i'"), -(23237, 0, "'m'"), -(23238, 0, "'e'"), -(23239, 0, "' '"), -(23240, 0, "'i'"), -(23241, 0, "'s'"), -(23242, 0, "' '"), -(23243, 0, "'s'"), -(23244, 0, "'p'"), -(23245, 0, "'e'"), -(23246, 0, "'n'"), -(23247, 0, "'t'"), -(23248, 0, "' '"), -(23249, 0, "'i'"), -(23250, 0, "'n'"), -(23251, 0, "' '"), -(23252, 0, "'r'"), -(23253, 0, "'o'"), -(23254, 0, "'p'"), -(23255, 0, "'e'"), -(23256, 0, "'y'"), -(23249, 0, "'u'"), -(23250, 0, "'p'"), -(23251, 0, "'d'"), -(23252, 0, "'a'"), -(23253, 0, "'t'"), -(23254, 0, "'i'"), -(23255, 0, "'n'"), -(23256, 0, "'g'"), -(23257, 0, "' '"), -(23258, 0, "'t'"), -(23259, 0, "'h'"), -(23260, 0, "'i'"), -(23261, 0, "'n'"), -(23262, 0, "'g'"), -(23263, 0, "'s'"), -(23264, 0, "' '"), -(23274, 97, "''"), -(23275, 1, "''"), -(23275, 0, "'W'"), -(23307, 4, "'r'"), -(23308, 0, "'o'"), -(23309, 0, "'p'"), -(23310, 0, "'e'"), -(23311, 0, "'y'"), -(23275, 0, "'I'"), -(23276, 0, "'t'"), -(23277, 0, "'s'"), -(23278, 0, "' '"), -(23279, 0, "'n'"), -(23280, 0, "'o'"), -(23281, 0, "'t'"), -(23282, 0, "' '"), -(23275, 8, "''"), -(24101, 0, "' '"), -(24102, 0, "'1'"), -(24103, 0, "'1'"), -(24104, 0, "' '"), -(24105, 0, "'m'"), -(24106, 0, "'i'"), -(24107, 0, "'l'"), -(24108, 0, "'l'"), -(24109, 0, "'i'"), -(24110, 0, "'o'"), -(24111, 0, "'n'"), -(24112, 0, "' '"), -(24113, 0, "'o'"), -(24114, 0, "'p'"), -(24115, 0, "'e'"), -(24116, 0, "'r'"), -(24117, 0, "'a'"), -(24118, 0, "'t'"), -(24119, 0, "'i'"), -(24120, 0, "'o'"), -(24121, 0, "'n'"), -(24122, 0, "'s'"), -(24123, 0, "' '"), -(24124, 0, "'/'"), -(24125, 0, "' '"), -(24126, 0, "'e'"), -(24126, 1, "''"), -(24126, 0, "'s'"), -(24127, 0, "'e'"), -(24128, 0, "'c'"), -(24129, 0, "'o'"), -(24130, 0, "'n'"), -(24131, 0, "'d'"), -(24132, 0, "'.'"), -(24138, 1, "''"), -(24138, 0, "','"), -(24139, 0, "' '"), -(24140, 0, "'m'"), -(24141, 0, "'y'"), -(24142, 0, "' '"), -(24143, 0, "'f'"), -(24144, 0, "'r'"), -(24145, 0, "'i'"), -(24146, 0, "'e'"), -(24147, 0, "'n'"), -(24148, 0, "'d'"), -(24149, 0, "'s'"), -(24150, 0, "','"), -(24151, 0, "' '"), -(24152, 0, "'i'"), -(24153, 0, "'s'"), -(24182, 0, "'n'"), -(24183, 0, "'#'"), -(24184, 0, "' '"), -(24185, 0, "'C'"), -(24186, 0, "'o'"), -(24187, 0, "'n'"), -(24188, 0, "'c'"), -(24189, 0, "'o'"), -(24189, 1, "''"), -(24189, 0, "'l'"), -(24190, 0, "'i'"), -(24191, 0, "'u'"), -(24192, 0, "'t'"), -(24193, 0, "'i'"), -(24194, 0, "'o'"), -(24195, 0, "'n'"), -(24195, 1, "''"), -(24194, 1, "''"), -(24193, 1, "''"), -(24192, 1, "''"), -(24191, 1, "''"), -(24190, 1, "''"), -(24190, 0, "'u'"), -(24191, 0, "'s'"), -(24192, 0, "'i'"), -(24193, 0, "'o'"), -(24194, 0, "'n'"), -(24195, 0, "'n'"), -(24196, 0, "'n'"), -(24197, 0, "'I'"), -(24198, 0, "'''"), -(24199, 0, "'m'"), -(24200, 0, "' '"), -(24201, 0, "'r'"), -(24202, 0, "'e'"), -(24203, 0, "'a'"), -(24204, 0, "'l'"), -(24205, 0, "'l'"), -(24206, 0, "'y'"), -(24207, 0, "' '"), -(24208, 0, "'g'"), -(24201, 8, "'k'"), -(24202, 0, "'i'"), -(24203, 0, "'n'"), -(24204, 0, "'d'"), -(24205, 0, "' '"), -(24206, 0, "'o'"), -(24207, 0, "'f'"), -(24208, 0, "' '"), -(24209, 0, "'g'"), -(24210, 0, "'r'"), -(24211, 0, "'a'"), -(24212, 0, "'t'"), -(24213, 0, "'e'"), -(24214, 0, "'f'"), -(24215, 0, "'u'"), -(24216, 0, "'l'"), -(24217, 0, "' '"), -(24218, 0, "'f'"), -(24219, 0, "'o'"), -(24220, 0, "'r'"), -(24221, 0, "' '"), -(24222, 0, "'t'"), -(24223, 0, "'h'"), -(24224, 0, "'a'"), -(24225, 0, "'t'"), -(24226, 0, "' '"), -(24227, 0, "'p'"), -(24228, 0, "'a'"), -(24229, 0, "'p'"), -(24230, 0, "'e'"), -(24231, 0, "'r'"), -(24232, 0, "' '"), -(24233, 0, "'n'"), -(24234, 0, "'o'"), -(24235, 0, "'w'"), -(24236, 0, "'.'"), -(24237, 0, "' '"), -(24238, 0, "'I'"), -(24239, 0, "'''"), -(24239, 1, "''"), -(24238, 1, "''"), -(24237, 1, "''"), -(24237, 0, "' '"), -(24238, 0, "'I'"), -(24239, 0, "' '"), -(24240, 0, "'m'"), -(24241, 0, "'e'"), -(24242, 0, "'a'"), -(24243, 0, "'n'"), -(24244, 0, "','"), -(24245, 0, "' '"), -(24246, 0, "'y'"), -(24247, 0, "'o'"), -(24248, 0, "'u'"), -(24249, 0, "' '"), -(24250, 0, "'d'"), -(24251, 0, "'o'"), -(24252, 0, "'n'"), -(24253, 0, "'''"), -(24254, 0, "'t'"), -(24255, 0, "' '"), -(24256, 0, "'l'"), -(24257, 0, "'i'"), -(24258, 0, "'k'"), -(24237, 22, "''"), -(24227, 0, "'s'"), -(24228, 0, "'i'"), -(24229, 0, "'l'"), -(24230, 0, "'l'"), -(24231, 0, "'y'"), -(24232, 0, "' '"), -(24233, 0, "'a'"), -(24234, 0, "'c'"), -(24235, 0, "'a'"), -(24236, 0, "'d'"), -(24237, 0, "'e'"), -(24238, 0, "'m'"), -(24239, 0, "'i'"), -(24240, 0, "'c'"), -(24241, 0, "' '"), -(24252, 0, "' '"), -(24253, 0, "'I'"), -(24254, 0, "' '"), -(24255, 0, "'u'"), -(24256, 0, "'s'"), -(24257, 0, "'e'"), -(24258, 0, "'d'"), -(24259, 0, "' '"), -(24260, 0, "'t'"), -(24261, 0, "'o'"), -(24262, 0, "' '"), -(24263, 0, "'t'"), -(24264, 0, "'h'"), -(24265, 0, "'i'"), -(24266, 0, "'n'"), -(24267, 0, "'k'"), -(24268, 0, "' '"), -(24269, 0, "'t'"), -(24270, 0, "'h'"), -(24271, 0, "'a'"), -(24272, 0, "'t'"), -(24273, 0, "' '"), -(24274, 0, "'a'"), -(24275, 0, "'c'"), -(24276, 0, "'a'"), -(24277, 0, "'d'"), -(24278, 0, "'e'"), -(24279, 0, "'m'"), -(24280, 0, "'i'"), -(24281, 0, "'c'"), -(24282, 0, "'s'"), -(24283, 0, "' '"), -(24284, 0, "'w'"), -(24285, 0, "'e'"), -(24286, 0, "'r'"), -(24287, 0, "'e'"), -(24288, 0, "' '"), -(24289, 0, "'r'"), -(24290, 0, "'e'"), -(24291, 0, "'a'"), -(24292, 0, "'l'"), -(24293, 0, "'l'"), -(24294, 0, "'y'"), -(24295, 0, "' '"), -(24296, 0, "'c'"), -(24297, 0, "'l'"), -(24298, 0, "'e'"), -(24299, 0, "'v'"), -(24300, 0, "'e'"), -(24301, 0, "'r'"), -(24302, 0, "','"), -(24303, 0, "' '"), -(24304, 0, "'b'"), -(24305, 0, "'u'"), -(24306, 0, "'t'"), -(24307, 0, "' '"), -(24308, 0, "'i'"), -(24309, 0, "'t'"), -(24310, 0, "' '"), -(24311, 0, "'t'"), -(24312, 0, "'u'"), -(24313, 0, "'r'"), -(24314, 0, "'n'"), -(24315, 0, "'s'"), -(24316, 0, "' '"), -(24317, 0, "'o'"), -(24318, 0, "'u'"), -(24319, 0, "'t'"), -(24320, 0, "' '"), -(24321, 0, "'t'"), -(24322, 0, "'h'"), -(24323, 0, "'e'"), -(24324, 0, "'r'"), -(24325, 0, "'e'"), -(24326, 0, "'''"), -(24326, 1, "''"), -(24325, 1, "''"), -(24324, 1, "''"), -(24324, 0, "'y'"), -(24325, 0, "'''"), -(24326, 0, "'r'"), -(24327, 0, "'e'"), -(24328, 0, "' '"), -(24329, 0, "'j'"), -(24330, 0, "'u'"), -(24331, 0, "'s'"), -(24332, 0, "'t'"), -(24333, 0, "' '"), -(24334, 0, "'l'"), -(24335, 0, "'i'"), -(24336, 0, "'k'"), -(24337, 0, "'e'"), -(24338, 0, "' '"), -(24339, 0, "'t'"), -(24340, 0, "'h'"), -(24341, 0, "'e'"), -(24342, 0, "' '"), -(24343, 0, "'r'"), -(24344, 0, "'e'"), -(24345, 0, "'s'"), -(24346, 0, "'t'"), -(24347, 0, "' '"), -(24348, 0, "'o'"), -(24349, 0, "'f'"), -(24350, 0, "' '"), -(24351, 0, "'u'"), -(24352, 0, "'s'"), -(24353, 0, "'.'"), -(24334, 0, "'a'"), -(24335, 0, "'s'"), -(24336, 0, "' '"), -(24337, 0, "'m'"), -(24338, 0, "'y'"), -(24339, 0, "'o'"), -(24340, 0, "'p'"), -(24341, 0, "'i'"), -(24342, 0, "'c'"), -(24343, 0, "' '"), -(24344, 0, "'a'"), -(24345, 0, "'n'"), -(24346, 0, "'d'"), -(24347, 0, "' '"), -(24348, 0, "'o'"), -(24349, 0, "'b'"), -(24350, 0, "'s'"), -(24351, 0, "'e'"), -(24352, 0, "'s'"), -(24353, 0, "'s'"), -(24354, 0, "'i'"), -(24355, 0, "'v'"), -(24356, 0, "'e'"), -(24357, 0, "' '"), -(24358, 0, "'a'"), -(24359, 0, "'s'"), -(24360, 0, "' '"), -(24361, 8, "''"), -(24360, 1, "''"), -(24360, 0, "' '"), -(24361, 0, "'t'"), -(24362, 0, "'h'"), -(24363, 0, "'e'"), -(24376, 0, "' '"), -(24377, 0, "'('"), -(24378, 0, "'I'"), -(24379, 0, "'''"), -(24380, 0, "'m'"), -(24381, 0, "' '"), -(24382, 0, "'n'"), -(24383, 0, "'o'"), -(24383, 1, "''"), -(24382, 1, "''"), -(24381, 1, "''"), -(24380, 1, "''"), -(24379, 1, "''"), -(24378, 1, "''"), -(24378, 0, "'W'"), -(24379, 0, "'e'"), -(24380, 0, "'l'"), -(24381, 0, "'l'"), -(24382, 0, "' '"), -(24383, 0, "'n'"), -(24384, 0, "'o'"), -(24385, 0, "'t'"), -(24386, 0, "' '"), -(24387, 0, "'m'"), -(24388, 0, "'e'"), -(24389, 0, "' '"), -(24390, 0, "'-'"), -(24391, 0, "' '"), -(24321, 71, "''"), -(24321, 0, "'t'"), -(24322, 0, "'h'"), -(24323, 0, "'a'"), -(24324, 0, "'t'"), -(24308, 17, "'a'"), -(24309, 0, "'p'"), -(24310, 0, "'p'"), -(24311, 0, "'a'"), -(24312, 0, "'r'"), -(24313, 0, "'e'"), -(24314, 0, "'n'"), -(24315, 0, "'y'"), -(24316, 0, "'l'"), -(24316, 1, "''"), -(24315, 1, "''"), -(24315, 0, "'t'"), -(24316, 0, "'l'"), -(24317, 0, "'y'"), -(24318, 0, "' '"), -(24319, 0, "'b'"), -(24320, 0, "'e'"), -(24321, 0, "'i'"), -(24322, 0, "'n'"), -(24323, 0, "'g'"), -(24324, 0, "' '"), -(24325, 0, "'g'"), -(24326, 0, "'o'"), -(24327, 0, "'o'"), -(24328, 0, "'d'"), -(24329, 0, "' '"), -(24330, 0, "'a'"), -(24331, 0, "'t'"), -(24332, 0, "' '"), -(24333, 0, "'w'"), -(24334, 0, "'r'"), -(24335, 0, "'i'"), -(24336, 0, "'t'"), -(24337, 0, "'i'"), -(24338, 0, "'n'"), -(24339, 0, "'g'"), -(24340, 0, "' '"), -(24341, 0, "'p'"), -(24342, 0, "'a'"), -(24343, 0, "'p'"), -(24344, 0, "'e'"), -(24345, 0, "'r'"), -(24346, 0, "'s'"), -(24347, 0, "' '"), -(24348, 0, "'i'"), -(24349, 0, "'s'"), -(24350, 0, "' '"), -(24351, 0, "'a'"), -(24352, 0, "' '"), -(24197, 156, "'I'm kind of grateful for that silly academic paper now. I used to think that academics were really clever, but apparently being good at writing papers is a'"), -(24100, 0, "' '"), -(24101, 0, "'t'"), -(24102, 0, "'h'"), -(24103, 0, "'a'"), -(24104, 0, "'n'"), -(24105, 0, "' '"), -(24106, 0, "'a'"), -(24107, 0, "'u'"), -(24108, 0, "'t'"), -(24109, 0, "'o'"), -(24110, 0, "'m'"), -(24111, 0, "'e'"), -(24112, 0, "'r'"), -(24113, 0, "'g'"), -(24114, 0, "'e'"), -(24317, 50, "''"), -(24317, 0, "' '"), -(24318, 0, "'('"), -(24319, 0, "'a'"), -(24320, 0, "'n'"), -(24321, 0, "'d'"), -(24322, 0, "' '"), -(24323, 0, "'m'"), -(24324, 0, "'a'"), -(24325, 0, "'y'"), -(24326, 0, "'b'"), -(24327, 0, "'e'"), -(24328, 0, "' '"), -(24329, 0, "'I'"), -(24330, 0, "'''"), -(24331, 0, "'m'"), -(24332, 0, "' '"), -(24333, 0, "'n'"), -(24334, 0, "'o'"), -(24335, 0, "'t'"), -(24336, 0, "' '"), -(24337, 0, "'t'"), -(24338, 0, "'h'"), -(24339, 0, "'a'"), -(24340, 0, "'t'"), -(24333, 0, "'j'"), -(24334, 0, "'u'"), -(24335, 0, "'s'"), -(24336, 0, "'t'"), -(24337, 0, "' '"), -(24342, 4, "'s'"), -(24343, 0, "'m'"), -(24344, 0, "'a'"), -(24345, 0, "'r'"), -(24346, 0, "'t'"), -(24347, 0, "' '"), -(24348, 0, "'e'"), -(24349, 0, "'n'"), -(24350, 0, "'o'"), -(24351, 0, "'u'"), -(24352, 0, "'g'"), -(24353, 0, "'h'"), -(24354, 0, "')'"), -(24354, 0, "'!'"), -(24356, 0, "'.'"), -(24354, 1, "''"), -(24355, 1, "''"), -(24355, 0, "'!'"), -(24331, 23, "'l'"), -(24332, 0, "'l'"), -(24333, 0, "' '"), -(24334, 0, "'j'"), -(24335, 0, "'u'"), -(24336, 0, "'s'"), -(24337, 0, "'t'"), -(24338, 0, "' '"), -(24339, 0, "'e'"), -(24340, 0, "'n'"), -(24341, 0, "'v'"), -(24342, 0, "'e'"), -(24343, 0, "'r'"), -(24344, 0, "' '"), -(24345, 0, "'b'"), -(24346, 0, "'e'"), -(24339, 8, "'n'"), -(24340, 0, "'e'"), -(24341, 0, "'v'"), -(24342, 0, "'e'"), -(24343, 0, "'r'"), -(24344, 0, "' '"), -(24345, 0, "'b'"), -(24346, 0, "'e'"), -(24347, 0, "' '"), -(24348, 0, "'t'"), -(24349, 0, "'h'"), -(24350, 0, "'a'"), -(24351, 0, "'t'"), -(24352, 0, "' '"), -(24353, 0, "'s'"), -(24354, 0, "'m'"), -(24355, 0, "'a'"), -(24356, 0, "'r'"), -(24357, 0, "'t'"), -(24360, 0, "' '"), -(24361, 0, "'N'"), -(24362, 0, "'o'"), -(24363, 0, "'w'"), -(24364, 0, "' '"), -(24365, 0, "'I'"), -(24366, 0, "' '"), -(24367, 0, "'k'"), -(24368, 0, "'n'"), -(24369, 0, "'o'"), -(24370, 0, "'w'"), -(24371, 0, "' '"), -(24372, 0, "'t'"), -(24373, 0, "'h'"), -(24374, 0, "'a'"), -(24375, 0, "'t'"), -(24376, 0, "' '"), -(24212, 165, "'I'm kind of grateful for that silly academic paper now. I used to think that academics were really clever (and maybe I'll just never be that smart)! Now I know that'"), -(24361, 15, "'B'"), -(24362, 0, "'u'"), -(24363, 0, "'t'"), -(24364, 0, "' '"), -(24365, 0, "'I'"), -(24366, 0, "'''"), -(24367, 0, "'m'"), -(24368, 0, "' '"), -(24369, 0, "'s'"), -(24370, 0, "'t'"), -(24371, 0, "'a'"), -(24372, 0, "'r'"), -(24373, 0, "'t'"), -(24374, 0, "'i'"), -(24375, 0, "'n'"), -(24376, 0, "'g'"), -(24377, 0, "' '"), -(24378, 0, "'t'"), -(24379, 0, "'o'"), -(24380, 0, "' '"), -(24381, 0, "'r'"), -(24382, 0, "'e'"), -(24383, 0, "'a'"), -(24384, 0, "'l'"), -(24385, 0, "'i'"), -(24386, 0, "'s'"), -(24387, 0, "'e'"), -(24388, 0, "' '"), -(24389, 0, "'t'"), -(24390, 0, "'h'"), -(24391, 0, "'a'"), -(24392, 0, "'t'"), -(24393, 0, "' '"), -(24394, 0, "'t'"), -(24394, 1, "''"), -(24394, 0, "'t'"), -(24395, 0, "'h'"), -(24396, 0, "'e'"), -(24397, 0, "'y'"), -(24398, 0, "'''"), -(24399, 0, "'r'"), -(24400, 0, "'e'"), -(24401, 0, "' '"), -(24402, 0, "'j'"), -(24403, 0, "'u'"), -(24404, 0, "'s'"), -(24405, 0, "'t'"), -(24406, 0, "' '"), -(24407, 0, "'a'"), -(24408, 0, "' '"), -(24408, 1, "''"), -(24408, 0, "'s'"), -(24409, 0, "' '"), -(24407, 3, "'l'"), -(24408, 0, "'i'"), -(24409, 0, "'k'"), -(24410, 0, "'e'"), -(24411, 0, "' '"), -(24412, 0, "'t'"), -(24413, 0, "'h'"), -(24414, 0, "'e'"), -(24415, 0, "' '"), -(24416, 0, "'r'"), -(24417, 0, "'e'"), -(24418, 0, "'s'"), -(24419, 0, "'t'"), -(24420, 0, "' '"), -(24421, 0, "'o'"), -(24422, 0, "'f'"), -(24423, 0, "' '"), -(24424, 0, "'u'"), -(24425, 0, "'s'"), -(24426, 0, "' '"), -(24427, 0, "'-'"), -(24428, 0, "' '"), -(24429, 0, "'o'"), -(24430, 0, "'b'"), -(24431, 0, "'s'"), -(24432, 0, "'e'"), -(24433, 0, "'s'"), -(24434, 0, "'s'"), -(24435, 0, "'e'"), -(24436, 0, "'d'"), -(24437, 0, "' '"), -(24427, 1, "''"), -(24426, 1, "''"), -(24426, 0, "'.'"), -(24427, 0, "' '"), -(24428, 0, "'T'"), -(24429, 0, "'h'"), -(24430, 0, "'e'"), -(24431, 0, "'y'"), -(24432, 0, "'''"), -(24433, 0, "'r'"), -(24434, 0, "'e'"), -(24435, 0, "' '"), -(24436, 0, "'s'"), -(24437, 0, "'m'"), -(24438, 0, "'a'"), -(24439, 0, "'r'"), -(24440, 0, "'t'"), -(24441, 0, "' '"), -(24442, 0, "'i'"), -(24443, 0, "'n'"), -(24444, 0, "' '"), -(24445, 0, "'o'"), -(24446, 0, "'n'"), -(24447, 0, "'e'"), -(24448, 0, "' '"), -(24449, 0, "'d'"), -(24450, 0, "'o'"), -(24451, 0, "'m'"), -(24452, 0, "'a'"), -(24453, 0, "'i'"), -(24454, 0, "'n'"), -(24455, 0, "','"), -(24456, 0, "' '"), -(24457, 0, "'a'"), -(24458, 0, "'n'"), -(24459, 0, "'d'"), -(24460, 0, "' '"), -(24461, 0, "'k'"), -(24462, 0, "'i'"), -(24463, 0, "'n'"), -(24464, 0, "'f'"), -(24465, 0, "' '"), -(24465, 1, "''"), -(24464, 1, "''"), -(24464, 0, "'d'"), -(24465, 0, "' '"), -(24466, 0, "'o'"), -(24467, 0, "'f'"), -(24468, 10, "''"), -(24468, 0, "' '"), -(24469, 0, "'t'"), -(24470, 0, "'e'"), -(24471, 0, "'r'"), -(24472, 0, "'r'"), -(24473, 0, "'i'"), -(24474, 0, "'b'"), -(24475, 0, "'l'"), -(24476, 0, "'e'"), -(24299, 18, "'m'"), -(24300, 0, "'u'"), -(24301, 0, "'s'"), -(24302, 0, "'t'"), -(24303, 0, "' '"), -(24304, 0, "'b'"), -(24305, 0, "'e'"), -(24306, 0, "' '"), -(24307, 0, "'t'"), -(24308, 0, "'h'"), -(24309, 0, "'e'"), -(24310, 0, "' '"), -(24311, 0, "'s'"), -(24312, 0, "'m'"), -(24313, 0, "'a'"), -(24314, 0, "'r'"), -(24315, 0, "'t'"), -(24316, 0, "'e'"), -(24317, 0, "'s'"), -(24318, 0, "'t'"), -(24319, 0, "' '"), -(24320, 0, "'p'"), -(24321, 0, "'e'"), -(24322, 0, "'o'"), -(24323, 0, "'p'"), -(24324, 0, "'l'"), -(24325, 0, "'e'"), -(24326, 0, "' '"), -(24327, 0, "'a'"), -(24328, 0, "'r'"), -(24329, 0, "'o'"), -(24330, 0, "'u'"), -(24331, 0, "'n'"), -(24332, 0, "'d'"), -(24381, 29, "''"), -(24388, 0, "' '"), -(24389, 0, "'r'"), -(24390, 0, "'e'"), -(24391, 0, "'a'"), -(24392, 0, "'j'"), -(24392, 1, "''"), -(24392, 0, "'l'"), -(24393, 0, "'l'"), -(24394, 0, "'y'"), -(24430, 5, "'g'"), -(24431, 0, "'r'"), -(24432, 0, "'e'"), -(24433, 0, "'a'"), -(24434, 0, "'t'"), -(24435, 0, "' '"), -(24436, 0, "'a'"), -(24437, 0, "'t'"), -(24438, 3, "''"), -(24442, 7, "' '"), -(24443, 0, "'o'"), -(24444, 0, "'b'"), -(24445, 0, "'s'"), -(24446, 0, "'e'"), -(24447, 0, "'s'"), -(24448, 0, "'s'"), -(24449, 0, "'i'"), -(24450, 0, "'o'"), -(24451, 0, "'n'"), -(24420, 0, "' '"), -(24421, 0, "'m'"), -(24422, 0, "'u'"), -(24423, 0, "'g'"), -(24424, 0, "'s'"), -(24443, 0, "' '"), -(24444, 0, "'t'"), -(24445, 0, "'h'"), -(24446, 0, "'e'"), -(24447, 0, "'r'"), -(24448, 0, "'i'"), -(24448, 1, "''"), -(24447, 1, "''"), -(24447, 0, "'i'"), -(24448, 0, "'r'"), -(24454, 9, "'s'"), -(24455, 0, "'p'"), -(24456, 0, "'e'"), -(24457, 0, "'c'"), -(24458, 0, "'i'"), -(24459, 0, "'a'"), -(24460, 0, "'l'"), -(24461, 0, "' '"), -(24462, 0, "'i'"), -(24463, 0, "'n'"), -(24464, 0, "'t'"), -(24465, 0, "'e'"), -(24466, 0, "'r'"), -(24467, 0, "'e'"), -(24468, 0, "'s'"), -(24469, 0, "'t'"), -(24470, 0, "' '"), -(24471, 0, "'a'"), -(24472, 0, "'r'"), -(24473, 0, "'e'"), -(24474, 0, "'a'"), -(24497, 0, "' '"), -(24498, 0, "'e'"), -(24499, 0, "'v'"), -(24500, 0, "'e'"), -(24501, 0, "'r'"), -(24502, 0, "'y'"), -(24503, 0, "'w'"), -(24504, 0, "'h'"), -(24505, 0, "'e'"), -(24506, 0, "'r'"), -(24507, 0, "'e'"), -(24508, 0, "' '"), -(24509, 0, "'e'"), -(24510, 0, "'l'"), -(24511, 0, "'s'"), -(24512, 0, "'e'"), -(24513, 0, "'.'"), -(24514, 0, "'n'"), -(24515, 0, "'n'"), -(24516, 0, "'I'"), -(24517, 0, "'n'"), -(24518, 0, "'v'"), -(24519, 0, "'e'"), -(24520, 0, "'n'"), -(24521, 0, "'t'"), -(24522, 0, "'i'"), -(24523, 0, "'n'"), -(24524, 0, "'g'"), -(24525, 0, "' '"), -(24526, 0, "'a'"), -(24527, 0, "' '"), -(24528, 0, "'C'"), -(24529, 0, "'R'"), -(24530, 0, "'D'"), -(24531, 0, "'T'"), -(24532, 0, "' '"), -(24533, 0, "'a'"), -(24534, 0, "'l'"), -(24534, 1, "''"), -(24533, 1, "''"), -(24526, 0, "'t'"), -(24527, 0, "'h'"), -(24528, 0, "'e'"), -(24529, 0, "' '"), -(24530, 0, "'s'"), -(24531, 0, "'e'"), -(24532, 0, "'m'"), -(24533, 0, "'a'"), -(24534, 0, "'n'"), -(24535, 0, "'t'"), -(24536, 0, "'i'"), -(24537, 0, "'c'"), -(24538, 0, "'s'"), -(24539, 0, "' '"), -(24540, 0, "'f'"), -(24541, 0, "'o'"), -(24542, 0, "'r'"), -(24543, 0, "' '"), -(24544, 0, "'c'"), -(24545, 0, "'o'"), -(24546, 0, "'n'"), -(24547, 0, "'c'"), -(24548, 0, "'u'"), -(24549, 0, "'r'"), -(24550, 0, "'r'"), -(24551, 0, "'e'"), -(24552, 0, "'n'"), -(24553, 0, "'t'"), -(24554, 0, "' '"), -(24555, 0, "'e'"), -(24556, 0, "'d'"), -(24557, 0, "'i'"), -(24558, 0, "'t'"), -(24559, 0, "'i'"), -(24560, 0, "'n'"), -(24561, 0, "'g'"), -(24562, 0, "' '"), -(24563, 0, "'i'"), -(24564, 0, "'s'"), -(24565, 0, "' '"), -(24566, 0, "'r'"), -(24567, 0, "'e'"), -(24568, 0, "'a'"), -(24569, 0, "'l'"), -(24570, 0, "'l'"), -(24571, 0, "'y'"), -(24572, 0, "' '"), -(24573, 0, "'h'"), -(24574, 0, "'a'"), -(24575, 0, "'r'"), -(24576, 0, "'d'"), -(24577, 0, "' '"), -(24566, 11, "''"), -(24565, 1, "''"), -(24564, 1, "''"), -(24563, 1, "''"), -(24563, 0, "'s'"), -(24564, 0, "'o'"), -(24565, 0, "'u'"), -(24566, 0, "'n'"), -(24567, 0, "'d'"), -(24568, 0, "'s'"), -(24563, 6, "''"), -(24544, 0, "'p'"), -(24545, 0, "'e'"), -(24546, 0, "'r'"), -(24546, 1, "''"), -(24546, 0, "'e'"), -(24547, 0, "'r'"), -(24548, 0, "'-'"), -(24549, 0, "'t'"), -(24550, 0, "'o'"), -(24551, 0, "'-'"), -(24552, 0, "'p'"), -(24553, 0, "'e'"), -(24554, 0, "'e'"), -(24555, 0, "'r'"), -(24556, 0, "' '"), -(24576, 0, "'s'"), -(24577, 0, "'o'"), -(24578, 0, "'u'"), -(24579, 0, "'n'"), -(24580, 0, "'d'"), -(24581, 0, "'s'"), -(24582, 0, "' '"), -(24583, 0, "'t'"), -(24584, 0, "'e'"), -(24585, 0, "'r'"), -(24586, 0, "'r'"), -(24587, 0, "'i'"), -(24588, 0, "'f'"), -(24589, 0, "'y'"), -(24590, 0, "'i'"), -(24591, 0, "'n'"), -(24592, 0, "'g'"), -(24516, 85, "'Inventing the semantics for peer-to-peer concurrent editing sounds terrifying a CRDT'"), -(24424, 1, "''"), -(24423, 1, "''"), -(24422, 1, "''"), -(24421, 1, "''"), -(24420, 1, "''"), -(24444, 4, "''"), -(24535, 56, "''"), -(24535, 0, "'a'"), -(24536, 0, "' '"), -(24537, 0, "'C'"), -(24538, 0, "'R'"), -(24539, 0, "'D'"), -(24540, 0, "'T'"), -(24507, 0, "'I'"), -(24508, 0, "' '"), -(24509, 0, "'w'"), -(24510, 0, "'a'"), -(24511, 0, "'s'"), -(24512, 0, "'n'"), -(24513, 0, "'''"), -(24514, 0, "'t'"), -(24515, 0, "' '"), -(24516, 0, "'s'"), -(24517, 0, "'m'"), -(24518, 0, "'a'"), -(24519, 0, "'r'"), -(24520, 0, "'t'"), -(24521, 0, "' '"), -(24522, 0, "'e'"), -(24523, 0, "'n'"), -(24524, 0, "'o'"), -(24525, 0, "'u'"), -(24526, 0, "'g'"), -(24527, 0, "'h'"), -(24528, 0, "' '"), -(24528, 0, "' '"), -(24529, 0, "'t'"), -(24530, 0, "'o'"), -(24531, 0, "' '"), -(24532, 0, "'f'"), -(24533, 0, "'i'"), -(24534, 0, "'g'"), -(24535, 0, "'u'"), -(24536, 0, "'r'"), -(24537, 0, "'e'"), -(24538, 0, "' '"), -(24539, 0, "'o'"), -(24540, 0, "'u'"), -(24541, 0, "'t'"), -(24542, 0, "' '"), -(24543, 0, "'t'"), -(24544, 0, "'h'"), -(24545, 0, "'e'"), -(24546, 0, "' '"), -(24547, 0, "'s'"), -(24548, 0, "'e'"), -(24549, 0, "'m'"), -(24550, 0, "'a'"), -(24551, 0, "'n'"), -(24552, 0, "'t'"), -(24553, 0, "'i'"), -(24554, 0, "'c'"), -(24555, 0, "'s'"), -(24556, 0, "' '"), -(24557, 0, "'f'"), -(24558, 0, "'o'"), -(24559, 0, "'r'"), -(24560, 0, "' '"), -(24561, 29, "''"), -(24507, 0, "'I'"), -(24508, 0, "' '"), -(24509, 0, "'r'"), -(24510, 0, "'e'"), -(24511, 0, "'a'"), -(24512, 0, "'l'"), -(24513, 0, "'l'"), -(24514, 0, "'y'"), -(24515, 0, "' '"), -(24516, 0, "'w'"), -(24517, 0, "'a'"), -(24517, 1, "''"), -(24517, 0, "'a'"), -(24518, 0, "'n'"), -(24519, 0, "'t'"), -(24520, 0, "'e'"), -(24521, 0, "'d'"), -(24522, 0, "' '"), -(24523, 0, "'l'"), -(24524, 0, "'i'"), -(24525, 0, "'s'"), -(24526, 0, "'t'"), -(24527, 0, "' '"), -(24528, 0, "'c'"), -(24529, 0, "'R'"), -(24530, 0, "'D'"), -(24530, 1, "''"), -(24529, 1, "''"), -(24528, 1, "''"), -(24528, 0, "'C'"), -(24529, 0, "'R'"), -(24530, 0, "'D'"), -(24531, 0, "'T'"), -(24532, 0, "'s'"), -(24533, 0, "' '"), -(24507, 9, "'W'"), -(24508, 0, "'e'"), -(24509, 0, "' '"), -(24510, 0, "'r'"), -(24511, 0, "'e'"), -(24512, 0, "'a'"), -(24513, 0, "'l'"), -(24514, 0, "'l'"), -(24515, 0, "'y'"), -(24516, 0, "' '"), -(24517, 0, "'n'"), -(24518, 0, "'e'"), -(24519, 0, "'e'"), -(24520, 0, "'d'"), -(24521, 0, "'e'"), -(24522, 0, "'d'"), -(24523, 0, "' '"), -(24524, 0, "'a'"), -(24525, 0, "' '"), -(24526, 7, "''"), -(24535, 1, "''"), -(24535, 0, "' '"), -(24284, 5, "''"), -(24293, 5, "' '"), -(24294, 0, "'w'"), -(24295, 0, "'e'"), -(24296, 0, "'r'"), -(24297, 0, "'e'"), -(24298, 3, "''"), -(24528, 0, "'o'"), -(24529, 0, "'n'"), -(24530, 0, "' '"), -(24531, 0, "'W'"), -(24532, 0, "'a'"), -(24533, 0, "'v'"), -(24534, 0, "'e'"), -(24528, 7, "''"), -(24527, 1, "''"), -(24499, 0, "'G'"), -(24500, 0, "'o'"), -(24501, 0, "'o'"), -(24502, 0, "'g'"), -(24503, 0, "'l'"), -(24504, 0, "'e'"), -(24505, 0, "' '"), -(24506, 0, "'w'"), -(24507, 0, "'a'"), -(24508, 0, "'v'"), -(24509, 0, "'e'"), -(24510, 0, "','"), -(24511, 0, "' '"), -(24512, 0, "'a'"), -(24513, 0, "'l'"), -(24514, 0, "'l'"), -(24515, 0, "' '"), -(24516, 0, "'t'"), -(24517, 0, "'h'"), -(24518, 0, "'o'"), -(24519, 0, "'s'"), -(24520, 0, "'e'"), -(24521, 0, "' '"), -(24522, 0, "'y'"), -(24523, 0, "'e'"), -(24524, 0, "'a'"), -(24525, 0, "'r'"), -(24526, 0, "'s'"), -(24527, 0, "' '"), -(24528, 0, "'a'"), -(24529, 0, "'g'"), -(24530, 0, "'o'"), -(24531, 0, "' '"), -(24531, 1, "''"), -(24531, 0, "','"), -(24532, 0, "' '"), -(24533, 0, "'r'"), -(24534, 0, "'e'"), -(24535, 0, "'a'"), -(24536, 0, "'l'"), -(24537, 0, "'l'"), -(24538, 0, "'y'"), -(24539, 0, "' '"), -(24540, 0, "'w'"), -(24541, 0, "'a'"), -(24541, 1, "''"), -(24540, 1, "''"), -(24540, 0, "'n'"), -(24541, 0, "'e'"), -(24542, 0, "'e'"), -(24543, 0, "'d'"), -(24544, 0, "'e'"), -(24545, 0, "'d'"), -(24546, 16, "''"), -(24548, 0, "' '"), -(24549, 0, "'h'"), -(24550, 0, "'i'"), -(24551, 0, "'g'"), -(24552, 0, "'h'"), -(24553, 0, "' '"), -(24554, 0, "'p'"), -(24555, 0, "'e'"), -(24556, 0, "'r'"), -(24557, 0, "'f'"), -(24558, 0, "'o'"), -(24559, 0, "'r'"), -(24560, 0, "'m'"), -(24561, 0, "'a'"), -(24562, 0, "'n'"), -(24563, 0, "'c'"), -(24564, 0, "'e'"), -(24575, 0, "'.'"), -(24576, 0, "' '"), -(24577, 0, "'I'"), -(24578, 0, "' '"), -(24579, 0, "'w'"), -(24580, 0, "'a'"), -(24581, 0, "'s'"), -(24582, 0, "'n'"), -(24583, 0, "'''"), -(24584, 0, "'t'"), -(24585, 0, "' '"), -(24586, 61, "'s'"), -(24587, 0, "'m'"), -(24588, 0, "'a'"), -(24589, 0, "'r'"), -(24590, 0, "'t'"), -(24591, 0, "' '"), -(24592, 0, "'e'"), -(24593, 0, "'n'"), -(24594, 0, "'o'"), -(24595, 0, "'u'"), -(24596, 0, "'g'"), -(24597, 0, "'h'"), -(24598, 0, "' '"), -(24599, 0, "'t'"), -(24600, 0, "'o'"), -(24601, 0, "' '"), -(24602, 0, "'i'"), -(24603, 0, "'n'"), -(24604, 0, "'v'"), -(24605, 0, "'e'"), -(24606, 0, "'n'"), -(24607, 0, "'t'"), -(24608, 0, "' '"), -(24609, 0, "'o'"), -(24610, 0, "'n'"), -(24611, 0, "'e'"), -(24577, 0, "'I'"), -(24578, 0, "' '"), -(24579, 0, "'l'"), -(24580, 0, "'i'"), -(24580, 1, "''"), -(24579, 1, "''"), -(24579, 0, "'t'"), -(24580, 0, "'h'"), -(24581, 0, "'i'"), -(24582, 0, "'n'"), -(24583, 0, "'k'"), -(24584, 0, "' '"), -(24585, 0, "'p'"), -(24586, 0, "'r'"), -(24587, 0, "'e'"), -(24588, 0, "'t'"), -(24589, 0, "'t'"), -(24590, 0, "'y'"), -(24591, 0, "' '"), -(24592, 0, "'h'"), -(24593, 0, "'i'"), -(24594, 0, "'g'"), -(24595, 0, "'h'"), -(24596, 0, "'l'"), -(24597, 0, "'y'"), -(24598, 0, "' '"), -(24599, 0, "'o'"), -(24600, 0, "'f'"), -(24601, 0, "' '"), -(24602, 0, "'m'"), -(24603, 0, "'y'"), -(24604, 0, "'s'"), -(24605, 0, "'e'"), -(24606, 0, "'l'"), -(24607, 0, "'f'"), -(24608, 0, "','"), -(24609, 0, "' '"), -(24610, 0, "'b'"), -(24611, 0, "'u'"), -(24612, 0, "'t'"), -(24613, 0, "' '"), -(24649, 0, "' '"), -(24650, 0, "'b'"), -(24651, 0, "'a'"), -(24652, 0, "'c'"), -(24653, 0, "'k'"), -(24654, 0, "' '"), -(24655, 0, "'t'"), -(24656, 0, "'h'"), -(24657, 0, "'e'"), -(24658, 0, "'n'"), -(24659, 0, "'.'"), -(24660, 0, "' '"), -(24660, 1, "''"), -(24660, 0, "' '"), -(24661, 0, "'S'"), -(24662, 0, "'o'"), -(24663, 0, "' '"), -(24660, 0, "' '"), -(24661, 0, "'A'"), -(24662, 0, "'n'"), -(24663, 0, "'d'"), -(24664, 0, "' '"), -(24665, 0, "'b'"), -(24666, 0, "'e'"), -(24667, 0, "'c'"), -(24668, 0, "'a'"), -(24669, 0, "'u'"), -(24670, 0, "'s'"), -(24671, 0, "'e'"), -(24672, 0, "' '"), -(24673, 0, "'t'"), -(24674, 0, "'h'"), -(24675, 0, "'e'"), -(24676, 0, "' '"), -(24677, 0, "'a'"), -(24678, 0, "'c'"), -(24679, 0, "'a'"), -(24680, 0, "'d'"), -(24681, 0, "'e'"), -(24682, 0, "'m'"), -(24683, 0, "'i'"), -(24684, 0, "'c'"), -(24685, 0, "'s'"), -(24686, 0, "' '"), -(24687, 0, "'d'"), -(24688, 0, "'i'"), -(24689, 0, "'d'"), -(24690, 0, "'n'"), -(24691, 0, "'''"), -(24692, 0, "'t'"), -(24693, 0, "' '"), -(24694, 0, "'m'"), -(24695, 0, "'a'"), -(24696, 0, "'k'"), -(24697, 0, "'e'"), -(24698, 0, "' '"), -(24699, 0, "'C'"), -(24700, 0, "'R'"), -(24701, 0, "'D'"), -(24702, 0, "'T'"), -(24703, 0, "'s'"), -(24704, 0, "' '"), -(24705, 0, "'f'"), -(24706, 0, "'a'"), -(24707, 0, "'s'"), -(24708, 0, "'t'"), -(24709, 0, "','"), -(24710, 0, "' '"), -(24711, 0, "'I'"), -(24712, 0, "' '"), -(24713, 0, "'a'"), -(24714, 0, "'s'"), -(24715, 0, "'s'"), -(24716, 0, "'u'"), -(24717, 0, "'m'"), -(24718, 0, "'e'"), -(24719, 0, "'d'"), -(24720, 0, "' '"), -(24721, 0, "'n'"), -(24722, 0, "'o'"), -(24723, 0, "'b'"), -(24724, 0, "'d'"), -(24724, 1, "''"), -(24724, 0, "'o'"), -(24725, 0, "'d'"), -(24726, 0, "'y'"), -(24727, 0, "' '"), -(24728, 0, "'c'"), -(24729, 0, "'o'"), -(24730, 0, "'u'"), -(24731, 0, "'l'"), -(24732, 0, "'d'"), -(24733, 0, "'.'"), -(24734, 0, "' '"), -(24734, 1, "''"), -(24734, 4, "''"), -(24734, 0, "' '"), -(24735, 0, "'I'"), -(24736, 0, "' '"), -(24737, 0, "'m'"), -(24738, 0, "'i'"), -(24739, 0, "'g'"), -(24740, 0, "'h'"), -(24741, 0, "'t'"), -(24735, 0, "'B'"), -(24736, 0, "'u'"), -(24737, 0, "'t'"), -(24738, 0, "','"), -(24739, 0, "' '"), -(24739, 1, "''"), -(24738, 1, "''"), -(24738, 0, "' '"), -(24746, 0, "' '"), -(24747, 0, "'n'"), -(24748, 0, "'o'"), -(24749, 0, "'t'"), -(24750, 0, "' '"), -(24751, 0, "'m'"), -(24752, 0, "'e'"), -(24753, 0, "' '"), -(24753, 1, "''"), -(24752, 1, "''"), -(24751, 1, "''"), -(24751, 0, "'b'"), -(24752, 0, "'e'"), -(24753, 0, "' '"), -(24754, 0, "'c'"), -(24755, 0, "'l'"), -(24756, 0, "'e'"), -(24757, 0, "'v'"), -(24758, 0, "'e'"), -(24759, 0, "'r'"), -(24760, 0, "' '"), -(24761, 0, "'e'"), -(24762, 0, "'n'"), -(24763, 0, "'o'"), -(24764, 0, "'u'"), -(24765, 0, "'g'"), -(24766, 0, "'h'"), -(24767, 0, "' '"), -(24768, 0, "'t'"), -(24769, 0, "'o'"), -(24770, 0, "' '"), -(24771, 0, "'i'"), -(24772, 0, "'n'"), -(24577, 37, "''"), -(24577, 0, "'A'"), -(24578, 0, "'n'"), -(24579, 0, "'d'"), -(24580, 0, "' '"), -(24616, 10, "''"), -(24580, 0, "' '"), -(24581, 0, "'b'"), -(24582, 0, "'a'"), -(24583, 0, "'c'"), -(24584, 0, "'k'"), -(24585, 0, "' '"), -(24586, 0, "'t'"), -(24587, 0, "'h'"), -(24588, 0, "'e'"), -(24589, 0, "'n'"), -(24628, 0, "'I'"), -(24629, 0, "' '"), -(24630, 0, "'a'"), -(24631, 0, "'s'"), -(24632, 0, "'s'"), -(24633, 0, "'u'"), -(24634, 0, "'m'"), -(24635, 0, "'e'"), -(24636, 0, "'d'"), -(24637, 0, "' '"), -(24638, 0, "'t'"), -(24639, 0, "'h'"), -(24640, 0, "'a'"), -(24641, 0, "'t'"), -(24642, 3, "''"), -(24651, 3, "''"), -(24650, 1, "''"), -(24661, 0, "'c'"), -(24662, 0, "'o'"), -(24663, 0, "'u'"), -(24664, 0, "'l'"), -(24665, 0, "'d'"), -(24666, 0, "'n'"), -(24667, 0, "'''"), -(24668, 0, "'t'"), -(24669, 0, "' '"), -(24670, 7, "''"), -(24674, 0, "' '"), -(24675, 0, "'t'"), -(24676, 0, "'h'"), -(24677, 0, "'e'"), -(24678, 0, "'i'"), -(24679, 0, "'r'"), -(24686, 0, "' '"), -(24687, 0, "'r'"), -(24688, 0, "'u'"), -(24689, 0, "'n'"), -(24697, 10, "''"), -(24710, 1, "''"), -(24710, 0, "'n'"), -(24711, 0, "'n'"), -(24710, 0, "' '"), -(24711, 0, "'T'"), -(24712, 0, "'h'"), -(24713, 0, "'a'"), -(24714, 0, "'t'"), -(24715, 0, "' '"), -(24716, 0, "'w'"), -(24717, 0, "'a'"), -(24718, 0, "'s'"), -(24719, 0, "' '"), -(24720, 0, "'w'"), -(24721, 0, "'r'"), -(24722, 0, "'o'"), -(24723, 0, "'n'"), -(24724, 0, "'g'"), -(24725, 0, "' '"), -(24726, 0, "'-'"), -(24727, 0, "' '"), -(24728, 0, "'I'"), -(24729, 0, "' '"), -(24729, 1, "''"), -(24728, 1, "''"), -(24728, 0, "'m'"), -(24729, 0, "'y'"), -(24730, 0, "' '"), -(24731, 0, "'f'"), -(24732, 0, "'o'"), -(24733, 0, "'r'"), -(24734, 0, "'t'"), -(24735, 0, "'e'"), -(24736, 0, "' '"), -(24737, 0, "'i'"), -(24738, 0, "'s'"), -(24739, 0, "'n'"), -(24740, 0, "'''"), -(24741, 0, "'t'"), -(24742, 0, "' '"), -(24499, 244, "'Google wave, all those years ago, really needed a high performance list CRDT. And back then I wasn't smart enough to invent one. I assumed that because academics couldn't make their CRDTs run fast, nobody could. That was wrong - my forte isn't'"), -(24392, 0, "' '"), -(24393, 0, "'m'"), -(24394, 0, "'u'"), -(24395, 0, "'g'"), -(24396, 0, "'s'"), -(24477, 8, "'m'"), -(24478, 0, "'i'"), -(24479, 0, "'d'"), -(24480, 0, "'d'"), -(24481, 0, "'l'"), -(24482, 0, "'i'"), -(24483, 0, "'n'"), -(24484, 0, "'g'"), -(24582, 5, "'B'"), -(24594, 22, "'d'"), -(24595, 0, "'i'"), -(24596, 0, "'d'"), -(24597, 0, "'n'"), -(24598, 0, "'''"), -(24599, 0, "'t'"), -(24600, 0, "' '"), -(24601, 0, "'m'"), -(24602, 0, "'a'"), -(24603, 0, "'n'"), -(24604, 0, "'a'"), -(24605, 0, "'g'"), -(24606, 0, "'e'"), -(24607, 0, "' '"), -(24608, 0, "'t'"), -(24609, 0, "'o'"), -(24623, 0, "'W'"), -(24624, 0, "'h'"), -(24625, 0, "'e'"), -(24626, 0, "'n'"), -(24627, 0, "' '"), -(24628, 0, "'p'"), -(24629, 0, "'a'"), -(24630, 0, "'p'"), -(24631, 0, "'e'"), -(24632, 0, "'r'"), -(24633, 0, "'s'"), -(24634, 0, "' '"), -(24635, 0, "'l'"), -(24636, 0, "'i'"), -(24637, 0, "'k'"), -(24638, 0, "'e'"), -(24639, 0, "' '"), -(24640, 0, "'L'"), -(24641, 0, "'O'"), -(24642, 0, "'G'"), -(24643, 0, "'O'"), -(24644, 0, "'O'"), -(24645, 0, "'T'"), -(24646, 0, "' '"), -(24647, 0, "'a'"), -(24648, 0, "'n'"), -(24649, 0, "'d'"), -(24650, 0, "' '"), -(24651, 0, "'W'"), -(24652, 0, "'O'"), -(24653, 0, "'O'"), -(24654, 0, "'T'"), -(24655, 0, "' '"), -(24656, 0, "'c'"), -(24657, 0, "'a'"), -(24658, 0, "'m'"), -(24659, 0, "'e'"), -(24660, 0, "' '"), -(24661, 0, "'o'"), -(24662, 0, "'u'"), -(24663, 0, "'t'"), -(24664, 0, "' '"), -(24665, 0, "'a'"), -(24666, 0, "'n'"), -(24667, 0, "'d'"), -(24668, 0, "' '"), -(24669, 0, "'t'"), -(24670, 0, "'h'"), -(24671, 0, "'e'"), -(24672, 0, "'i'"), -(24673, 0, "'r'"), -(24674, 0, "' '"), -(24675, 0, "'a'"), -(24676, 0, "'l'"), -(24677, 0, "'g'"), -(24678, 0, "'o'"), -(24679, 0, "'r'"), -(24680, 0, "'i'"), -(24681, 0, "'t'"), -(24682, 0, "'h'"), -(24683, 0, "'m'"), -(24684, 0, "'s'"), -(24685, 0, "' '"), -(24686, 0, "'r'"), -(24687, 0, "'a'"), -(24688, 0, "'n'"), -(24689, 0, "' '"), -(24690, 0, "'r'"), -(24691, 0, "'e'"), -(24692, 0, "'a'"), -(24693, 0, "'l'"), -(24694, 0, "'l'"), -(24695, 0, "'y'"), -(24696, 0, "' '"), -(24697, 0, "'s'"), -(24698, 0, "'l'"), -(24699, 0, "'o'"), -(24700, 0, "'w'"), -(24701, 0, "'l'"), -(24702, 0, "'y'"), -(24703, 0, "','"), -(24704, 0, "' '"), -(24665, 3, "'I'"), -(24666, 0, "' '"), -(24667, 0, "'w'"), -(24668, 0, "'a'"), -(24669, 0, "'s'"), -(24670, 0, "' '"), -(24671, 0, "'e'"), -(24672, 0, "'x'"), -(24673, 0, "'c'"), -(24674, 0, "'e'"), -(24674, 1, "''"), -(24674, 0, "'i'"), -(24675, 0, "'t'"), -(24676, 0, "'e'"), -(24677, 0, "'d'"), -(24678, 0, "' '"), -(24679, 0, "'-'"), -(24680, 0, "' '"), -(24681, 0, "'b'"), -(24682, 0, "'u'"), -(24683, 0, "'t'"), -(24719, 1, "''"), -(24719, 0, "'.'"), -(24744, 0, "'t'"), -(24745, 0, "'h'"), -(24746, 0, "'e'"), -(24747, 0, "' '"), -(24757, 0, "' '"), -(24758, 0, "'i'"), -(24759, 0, "'n'"), -(24760, 0, "'v'"), -(24761, 0, "'o'"), -(24762, 0, "'l'"), -(24763, 0, "'v'"), -(24764, 0, "'e'"), -(24765, 0, "'d'"), -(24553, 17, "' '"), -(24554, 0, "'g'"), -(24555, 0, "'o'"), -(24556, 0, "'o'"), -(24557, 0, "'d'"), -(24558, 0, "' '"), -(24559, 0, "'q'"), -(24560, 0, "'u'"), -(24561, 0, "'a'"), -(24562, 0, "'l'"), -(24563, 0, "'i'"), -(24564, 0, "'t'"), -(24565, 0, "'y'"), -(24577, 0, "' '"), -(24578, 0, "'O'"), -(24579, 0, "'u'"), -(24580, 0, "'r'"), -(24581, 0, "' '"), -(24582, 0, "'f'"), -(24583, 0, "'e'"), -(24584, 0, "'d'"), -(24585, 0, "'e'"), -(24586, 0, "'r'"), -(24587, 0, "'a'"), -(24588, 0, "'t'"), -(24589, 0, "'i'"), -(24590, 0, "'o'"), -(24591, 0, "'n'"), -(24592, 0, "' '"), -(24593, 0, "'m'"), -(24594, 0, "'o'"), -(24595, 0, "'d'"), -(24596, 0, "'e'"), -(24597, 0, "'l'"), -(24598, 0, "' '"), -(24599, 0, "'w'"), -(24600, 0, "'a'"), -(24601, 0, "'s'"), -(24602, 0, "' '"), -(24603, 0, "'b'"), -(24604, 0, "'o'"), -(24605, 0, "'n'"), -(24606, 0, "'k'"), -(24607, 0, "'e'"), -(24608, 0, "'r'"), -(24609, 0, "'s'"), -(24610, 0, "','"), -(24611, 0, "' '"), -(24612, 0, "'a'"), -(24613, 0, "'n'"), -(24614, 0, "'d'"), -(24615, 0, "' '"), -(24616, 0, "'i'"), -(24617, 0, "'t'"), -(24618, 0, "' '"), -(24619, 0, "'w'"), -(24620, 0, "'o'"), -(24621, 0, "'u'"), -(24622, 0, "'l'"), -(24623, 0, "'d'"), -(24624, 0, "' '"), -(24625, 0, "'b'"), -(24625, 1, "''"), -(24625, 0, "'h'"), -(24626, 0, "'a'"), -(24627, 0, "'v'"), -(24628, 0, "'e'"), -(24629, 0, "' '"), -(24630, 0, "'b'"), -(24631, 0, "'e'"), -(24632, 0, "'e'"), -(24633, 0, "'n'"), -(24634, 0, "' '"), -(24635, 0, "'s'"), -(24636, 0, "'o'"), -(24637, 0, "' '"), -(24638, 0, "'s'"), -(24639, 0, "'i'"), -(24640, 0, "'m'"), -(24641, 0, "'p'"), -(24642, 0, "'l'"), -(24643, 0, "'e'"), -(24644, 0, "' '"), -(24645, 0, "'w'"), -(24646, 0, "'i'"), -(24647, 0, "'t'"), -(24648, 0, "'h'"), -(24649, 0, "' '"), -(24650, 0, "' '"), -(24651, 0, "'a'"), -(24651, 1, "''"), -(24650, 1, "''"), -(24650, 0, "'a'"), -(24651, 0, "' '"), -(24652, 0, "'C'"), -(24653, 0, "'R'"), -(24654, 0, "'D'"), -(24655, 0, "'T'"), -(24656, 0, "'.'"), -(24657, 0, "' '"), -(24658, 0, "'B'"), -(24659, 0, "'u'"), -(24660, 0, "'t'"), -(24663, 1, "''"), -(24663, 0, "'b'"), -(24663, 1, "''"), -(24662, 1, "''"), -(24662, 0, "'b'"), -(24663, 0, "'a'"), -(24658, 45, "''"), -(24658, 0, "'S'"), -(24659, 0, "'o'"), -(24660, 0, "' '"), -(24661, 1, "''"), -(24661, 0, "'w'"), -(24705, 3, "'g'"), -(24706, 0, "'o'"), -(24707, 0, "'t'"), -(24758, 0, "' '"), -(24759, 0, "'A'"), -(24760, 0, "'n'"), -(24761, 0, "'d'"), -(24762, 0, "' '"), -(24762, 1, "''"), -(24777, 0, "' '"), -(24778, 0, "'m'"), -(24779, 0, "'e'"), -(24780, 0, "'a'"), -(24778, 3, "'m'"), -(24779, 0, "'e'"), -(24780, 0, "'a'"), -(24781, 0, "'n'"), -(24782, 0, "'t'"), -(24783, 0, "' '"), -(24784, 0, "'t'"), -(24785, 0, "'h'"), -(24786, 0, "'e'"), -(24787, 0, "' '"), -(24788, 0, "'a'"), -(24773, 16, "'t'"), -(24774, 0, "'h'"), -(24775, 0, "'e'"), -(24776, 0, "' '"), -(24777, 0, "'a'"), -(24778, 0, "'c'"), -(24779, 0, "'a'"), -(24773, 7, "'t'"), -(24774, 0, "'h'"), -(24775, 0, "'a'"), -(24776, 0, "'t'"), -(24777, 0, "' '"), -(24778, 0, "'w'"), -(24779, 0, "'a'"), -(24780, 0, "'s'"), -(24781, 0, "' '"), -(24782, 0, "'a'"), -(24783, 0, "'s'"), -(24784, 0, "' '"), -(24785, 0, "'f'"), -(24786, 0, "'a'"), -(24787, 0, "'s'"), -(24788, 0, "'t'"), -(24789, 0, "' '"), -(24790, 0, "'a'"), -(24791, 0, "'s'"), -(24792, 0, "' '"), -(24793, 0, "'t'"), -(24794, 0, "'h'"), -(24795, 0, "'o'"), -(24796, 0, "'s'"), -(24797, 0, "'e'"), -(24798, 0, "' '"), -(24799, 0, "'a'"), -(24800, 0, "'l'"), -(24801, 0, "'g'"), -(24802, 0, "'o'"), -(24803, 0, "'r'"), -(24804, 0, "'i'"), -(24805, 0, "'t'"), -(24806, 0, "'h'"), -(24807, 0, "'m'"), -(24808, 0, "'s'"), -(24809, 0, "' '"), -(24810, 0, "'c'"), -(24811, 0, "'o'"), -(24812, 0, "'u'"), -(24813, 0, "'l'"), -(24814, 0, "'d'"), -(24815, 0, "' '"), -(24816, 0, "'e'"), -(24817, 0, "'v'"), -(24818, 0, "'e'"), -(24819, 0, "'r'"), -(24820, 0, "' '"), -(24821, 0, "'g'"), -(24822, 0, "'o'"), -(24823, 0, "','"), -(24824, 0, "' '"), -(24824, 1, "''"), -(24832, 4, "' '"), -(24833, 0, "'i'"), -(24834, 0, "'f'"), -(24845, 0, "'t'"), -(24846, 0, "'h'"), -(24846, 1, "''"), -(24845, 1, "''"), -(24836, 0, "'t'"), -(24837, 0, "'h'"), -(24838, 0, "'e'"), -(24839, 0, "' '"), -(24849, 9, "''"), -(24899, 1, "''"), -(24899, 0, "'n'"), -(24900, 0, "'n'"), -(24582, 0, "'w'"), -(24583, 0, "'a'"), -(24584, 0, "'v'"), -(24585, 0, "'e'"), -(24586, 0, "' '"), -(24582, 0, "'['"), -(24604, 0, "']'"), -(24605, 0, "'https://web.archive.org/web/20130330144116/http://www.waveprotocol.org/federation'"), -(24605, 81, "''"), -(24605, 0, "'('"), -(24606, 0, "'https://web.archive.org/web/20130330144116/http://www.waveprotocol.org/federation'"), -(24687, 0, "')'"), -(24604, 84, "''"), -(24582, 1, "''"), -(24616, 0, "' '"), -(24616, 1, "''"), -(24616, 0, "' '"), -(24617, 0, "'a'"), -(24618, 0, "'n'"), -(24619, 0, "'d'"), -(24620, 0, "' '"), -(24621, 0, "'r'"), -(24622, 0, "'e'"), -(24623, 0, "'a'"), -(24624, 0, "'l'"), -(24625, 0, "'l'"), -(24626, 0, "'y'"), -(24627, 0, "' '"), -(24628, 0, "'b'"), -(24629, 0, "'u'"), -(24630, 0, "'g'"), -(24631, 0, "'g'"), -(24632, 0, "'y'"), -(24633, 0, "'.'"), -(24634, 6, "' '"), -(24635, 0, "'I'"), -(24621, 6, "'i'"), -(24622, 0, "'t'"), -(24623, 0, "' '"), -(24624, 0, "'n'"), -(24625, 0, "'e'"), -(24626, 0, "'v'"), -(24627, 0, "'e'"), -(24628, 0, "'r'"), -(24629, 0, "' '"), -(24630, 0, "'w'"), -(24631, 0, "'o'"), -(24632, 0, "'r'"), -(24633, 0, "'k'"), -(24634, 0, "'e'"), -(24635, 0, "'d'"), -(24636, 0, "' '"), -(24637, 0, "'p'"), -(24638, 0, "'r'"), -(24639, 0, "'o'"), -(24640, 0, "'p'"), -(24641, 0, "'e'"), -(24642, 0, "'r'"), -(24643, 0, "'l'"), -(24644, 0, "'y'"), -(24645, 6, "''"), -(24774, 7, "' '"), -(24775, 0, "'s'"), -(24776, 0, "'o'"), -(24777, 0, "' '"), -(24777, 1, "''"), -(24777, 7, "' '"), -(24778, 0, "'s'"), -(24779, 0, "'l'"), -(24780, 0, "'o'"), -(24781, 0, "'w'"), -(24782, 0, "' '"), -(24783, 0, "'t'"), -(24784, 0, "'h'"), -(24785, 0, "'e'"), -(24786, 0, "'y'"), -(24787, 0, "' '"), -(24788, 0, "'w'"), -(24789, 0, "'e'"), -(24790, 0, "'r'"), -(24791, 0, "'e'"), -(24792, 0, "' '"), -(24793, 0, "'u'"), -(24794, 0, "'n'"), -(24795, 0, "'w'"), -(24796, 0, "'o'"), -(24797, 0, "'r'"), -(24798, 0, "'k'"), -(24799, 0, "'a'"), -(24800, 0, "'b'"), -(24801, 0, "'l'"), -(24802, 0, "'e'"), -(24647, 21, "'T'"), -(24648, 0, "'h'"), -(24649, 0, "'e'"), -(24650, 0, "' '"), -(24651, 0, "'w'"), -(24652, 0, "'h'"), -(24653, 0, "'o'"), -(24654, 0, "'l'"), -(24655, 0, "'e'"), -(24656, 0, "' '"), -(24657, 0, "'t'"), -(24658, 0, "'h'"), -(24659, 0, "'i'"), -(24660, 0, "'n'"), -(24661, 0, "'g'"), -(24662, 0, "' '"), -(24663, 0, "'w'"), -(24664, 0, "'o'"), -(24665, 0, "'u'"), -(24666, 0, "'l'"), -(24667, 0, "'d'"), -(24668, 0, "' '"), -(24669, 0, "'h'"), -(24670, 0, "'a'"), -(24671, 0, "'v'"), -(24672, 0, "'e'"), -(24673, 0, "' '"), -(24674, 0, "'b'"), -(24675, 0, "'e'"), -(24676, 0, "'e'"), -(24677, 0, "'n'"), -(24678, 0, "' '"), -(24679, 0, "'s'"), -(24680, 0, "'o'"), -(24681, 0, "' '"), -(24682, 0, "'m'"), -(24683, 0, "'u'"), -(24684, 0, "'c'"), -(24685, 0, "'h'"), -(24693, 0, "'r'"), -(24701, 0, "' '"), -(24702, 0, "'g'"), -(24703, 0, "'o'"), -(24704, 0, "'o'"), -(24705, 0, "'d'"), -(24713, 4, "'W'"), -(24578, 135, "''"), -(24578, 0, "'S'"), -(24579, 0, "'o'"), -(24580, 0, "' '"), -(24581, 1, "''"), -(24581, 0, "'w'"), -(24578, 19, "'I'"), -(24579, 0, "' '"), -(24580, 0, "'g'"), -(24581, 0, "'o'"), -(24582, 0, "'t'"), -(24583, 0, "' '"), -(24584, 0, "'e'"), -(24585, 0, "'x'"), -(24586, 0, "'c'"), -(24587, 0, "'i'"), -(24588, 0, "'t'"), -(24589, 0, "'e'"), -(24590, 0, "'d'"), -(24591, 0, "' '"), -(24592, 0, "'w'"), -(24593, 0, "'h'"), -(24594, 0, "'e'"), -(24595, 0, "'n'"), -(24621, 16, "''"), -(24597, 0, "'p'"), -(24598, 0, "'a'"), -(24599, 0, "'p'"), -(24600, 0, "'e'"), -(24601, 0, "'r'"), -(24602, 0, "'s'"), -(24603, 0, "' '"), -(24604, 0, "'d'"), -(24605, 0, "'e'"), -(24606, 0, "'s'"), -(24607, 0, "'c'"), -(24608, 0, "'r'"), -(24609, 0, "'i'"), -(24610, 0, "'b'"), -(24611, 0, "'i'"), -(24612, 0, "'n'"), -(24613, 0, "'g'"), -(24614, 0, "' '"), -(24639, 0, "'.'"), -(24640, 0, "' '"), -(24641, 0, "'B'"), -(24642, 0, "'u'"), -(24643, 0, "'t'"), -(24644, 0, "' '"), -(24645, 0, "'t'"), -(24646, 0, "'h'"), -(24647, 0, "'a'"), -(24648, 0, "'t'"), -(24649, 0, "' '"), -(24650, 0, "'e'"), -(24651, 0, "'x'"), -(24652, 0, "'c'"), -(24653, 0, "'i'"), -(24654, 0, "'t'"), -(24655, 0, "'e'"), -(24656, 0, "'m'"), -(24657, 0, "'t'"), -(24658, 0, "'n'"), -(24659, 0, "' '"), -(24659, 1, "''"), -(24658, 1, "''"), -(24657, 1, "''"), -(24656, 1, "''"), -(24655, 1, "''"), -(24655, 0, "'m'"), -(24656, 0, "'e'"), -(24657, 0, "'n'"), -(24658, 0, "'t'"), -(24659, 0, "' '"), -(24650, 10, "'e'"), -(24651, 0, "'x'"), -(24652, 0, "'c'"), -(24653, 0, "'i'"), -(24654, 0, "'t'"), -(24655, 0, "'e'"), -(24656, 0, "'m'"), -(24657, 0, "'e'"), -(24658, 0, "'n'"), -(24659, 0, "'t'"), -(24660, 0, "' '"), -(24661, 0, "'t'"), -(24662, 0, "'u'"), -(24663, 0, "'r'"), -(24664, 0, "'n'"), -(24665, 0, "'e'"), -(24666, 0, "'d'"), -(24667, 0, "' '"), -(24668, 0, "'t'"), -(24669, 0, "'o'"), -(24670, 0, "' '"), -(24671, 0, "'d'"), -(24672, 0, "'u'"), -(24673, 0, "'s'"), -(24674, 0, "'t'"), -(24675, 0, "' '"), -(24676, 0, "'w'"), -(24677, 0, "'h'"), -(24678, 0, "'e'"), -(24679, 0, "'n'"), -(24680, 0, "' '"), -(24681, 0, "'I'"), -(24682, 0, "' '"), -(24683, 0, "'r'"), -(24684, 0, "'e'"), -(24685, 0, "'a'"), -(24686, 0, "'l'"), -(24687, 0, "'i'"), -(24688, 0, "'s'"), -(24689, 0, "'e'"), -(24690, 0, "'d'"), -(24691, 0, "' '"), -(24692, 0, "'h'"), -(24693, 0, "'o'"), -(24694, 0, "'w'"), -(24695, 0, "' '"), -(24696, 0, "'s'"), -(24697, 0, "'l'"), -(24698, 0, "'o'"), -(24699, 0, "'w'"), -(24700, 0, "' '"), -(24701, 0, "'a'"), -(24702, 0, "'n'"), -(24703, 0, "'d'"), -(24704, 0, "' '"), -(24705, 0, "'i'"), -(24706, 0, "'n'"), -(24707, 0, "'e'"), -(24708, 0, "'f'"), -(24709, 0, "'f'"), -(24710, 0, "'i'"), -(24711, 0, "'c'"), -(24712, 0, "'i'"), -(24713, 0, "'e'"), -(24714, 0, "'n'"), -(24715, 0, "'t'"), -(24716, 0, "' '"), -(24717, 0, "'t'"), -(24718, 0, "'h'"), -(24719, 0, "'e'"), -(24720, 0, "'i'"), -(24721, 0, "'r'"), -(24722, 0, "' '"), -(24723, 0, "'a'"), -(24724, 0, "'l'"), -(24725, 0, "'g'"), -(24726, 0, "'o'"), -(24727, 0, "'i'"), -(24728, 0, "'r'"), -(24729, 0, "'t'"), -(24730, 0, "'h'"), -(24723, 8, "'a'"), -(24724, 0, "'l'"), -(24725, 0, "'g'"), -(24726, 0, "'i'"), -(24726, 1, "''"), -(24726, 0, "'o'"), -(24727, 0, "'r'"), -(24728, 0, "'i'"), -(24729, 0, "'t'"), -(24730, 0, "'h'"), -(24731, 0, "'m'"), -(24732, 0, "'s'"), -(24733, 0, "' '"), -(24734, 0, "'w'"), -(24735, 0, "'e'"), -(24736, 0, "'r'"), -(24737, 0, "'e'"), -(24738, 21, "'.'"), -(24739, 0, "' '"), -(24740, 0, "'T'"), -(24741, 0, "'h'"), -(24742, 0, "'e'"), -(24743, 0, "'y'"), -(24777, 1, "''"), -(24777, 0, "' '"), -(24778, 0, "'-'"), -(24779, 0, "' '"), -(24780, 0, "'a'"), -(24781, 0, "'n'"), -(24782, 0, "'d'"), -(24783, 74, "''"), -(24821, 9, "''"), -(24820, 1, "''"), -(24819, 1, "''"), -(24818, 1, "''"), -(24818, 0, "'m'"), -(24819, 0, "' '"), -(24819, 1, "''"), -(24855, 0, "'.'"), -(24856, 17, "' '"), -(24857, 0, "'M'"), -(24858, 0, "'y'"), -(24859, 0, "' '"), -(24860, 0, "'g'"), -(24861, 0, "'i'"), -(24862, 0, "'f'"), -(24863, 0, "'t'"), -(24864, 0, "' '"), -(24865, 0, "'t'"), -(24866, 0, "'o'"), -(24867, 0, "' '"), -(24868, 0, "'t'"), -(24869, 0, "'h'"), -(24870, 0, "'e'"), -(24871, 0, "' '"), -(24872, 0, "'w'"), -(24873, 0, "'o'"), -(24874, 0, "'r'"), -(24875, 0, "'l'"), -(24876, 0, "'d'"), -(24857, 0, "'P'"), -(24858, 0, "'a'"), -(24859, 0, "'r'"), -(24860, 0, "' '"), -(24861, 0, "'t'"), -(24861, 1, "''"), -(24860, 1, "''"), -(24860, 0, "'t'"), -(24861, 0, "' '"), -(24862, 0, "'o'"), -(24863, 0, "'f'"), -(24864, 0, "' '"), -(24865, 1, "''"), -(24865, 0, "'m'"), -(24857, 9, "'M'"), -(24877, 0, "' '"), -(24878, 0, "'i'"), -(24879, 0, "'s'"), -(24880, 0, "'n'"), -(24881, 0, "'''"), -(24882, 0, "'t'"), -(24878, 5, "'m'"), -(24879, 0, "'i'"), -(24880, 0, "'g'"), -(24881, 0, "'h'"), -(24882, 0, "'t'"), -(24883, 0, "' '"), -(24884, 0, "'n'"), -(24885, 0, "'o'"), -(24886, 0, "'t'"), -(24887, 0, "' '"), -(24888, 0, "'b'"), -(24889, 0, "'e'"), -(24890, 0, "' '"), -(24891, 0, "'C'"), -(24892, 0, "'R'"), -(24893, 0, "'D'"), -(24894, 0, "'T'"), -(24891, 0, "'i'"), -(24892, 0, "'n'"), -(24893, 0, "'v'"), -(24894, 0, "'e'"), -(24895, 0, "'n'"), -(24896, 0, "'t'"), -(24897, 0, "'i'"), -(24898, 0, "'n'"), -(24899, 0, "'g'"), -(24900, 0, "' '"), -(24901, 0, "'n'"), -(24902, 0, "'e'"), -(24903, 0, "'w'"), -(24904, 0, "' '"), -(24905, 0, "'c'"), -(24906, 0, "'l'"), -(24907, 0, "'a'"), -(24908, 0, "'s'"), -(24909, 0, "'s'"), -(24910, 0, "'e'"), -(24911, 0, "'s'"), -(24912, 0, "' '"), -(24913, 0, "'o'"), -(24914, 0, "'f'"), -(24915, 0, "' '"), -(24920, 0, "'.'"), -(24921, 0, "' '"), -(24922, 0, "'B'"), -(24923, 0, "'u'"), -(24924, 0, "'t'"), -(24925, 0, "' '"), -(24926, 0, "'I'"), -(24927, 0, "' '"), -(24928, 0, "'d'"), -(24929, 0, "'o'"), -(24930, 0, "' '"), -(24931, 0, "'k'"), -(24932, 0, "'n'"), -(24933, 0, "'o'"), -(24934, 0, "'w'"), -(24935, 0, "' '"), -(24936, 0, "'h'"), -(24937, 0, "'o'"), -(24938, 0, "'w'"), -(24939, 0, "' '"), -(24940, 0, "'t'"), -(24941, 0, "'o'"), -(24942, 0, "' '"), -(24943, 0, "'m'"), -(24944, 0, "'a'"), -(24945, 0, "'k'"), -(24946, 0, "'e'"), -(24947, 0, "' '"), -(24948, 0, "'c'"), -(24949, 0, "'o'"), -(24950, 0, "'d'"), -(24951, 0, "'e'"), -(24952, 0, "' '"), -(24953, 0, "'r'"), -(24954, 0, "'u'"), -(24955, 0, "'n'"), -(24956, 0, "' '"), -(24957, 0, "'f'"), -(24958, 0, "'a'"), -(24959, 0, "'s'"), -(24960, 0, "'t'"), -(24961, 0, "'.'"), -(24962, 0, "' '"), -(24963, 0, "'A'"), -(24964, 0, "'n'"), -(24965, 0, "'d'"), -(24966, 0, "' '"), -(24967, 0, "'I'"), -(24968, 0, "' '"), -(24969, 0, "'w'"), -(24970, 0, "'a'"), -(24971, 0, "'s'"), -(24972, 0, "' '"), -(24973, 0, "'l'"), -(24974, 0, "'e'"), -(24975, 0, "'t'"), -(24976, 0, "'t'"), -(24977, 0, "'i'"), -(24978, 0, "'n'"), -(24979, 0, "'g'"), -(24980, 0, "' '"), -(24981, 0, "'d'"), -(24982, 0, "'o'"), -(24983, 0, "'w'"), -(24984, 0, "'n'"), -(24985, 0, "' '"), -(24986, 0, "'t'"), -(24987, 0, "'h'"), -(24988, 0, "'e'"), -(24989, 0, "' '"), -(24990, 0, "'a'"), -(24991, 0, "'c'"), -(24992, 0, "'a'"), -(24993, 0, "'d'"), -(24994, 0, "'e'"), -(24995, 0, "'m'"), -(24996, 0, "'i'"), -(24997, 0, "'c'"), -(24998, 0, "'s'"), -(24999, 0, "' '"), -(25000, 0, "'i'"), -(25001, 0, "'n'"), -(25002, 0, "' '"), -(25003, 0, "'t'"), -(25004, 0, "'u'"), -(25005, 0, "'r'"), -(25006, 0, "'n'"), -(25007, 0, "' '"), -(25008, 0, "'b'"), -(25009, 0, "' '"), -(25009, 1, "''"), -(25009, 0, "'y'"), -(25010, 0, "' '"), -(25011, 0, "'n'"), -(25012, 0, "'o'"), -(25013, 0, "'t'"), -(25014, 0, "' '"), -(25015, 0, "'s'"), -(25016, 0, "'h'"), -(25017, 0, "'o'"), -(25018, 0, "'w'"), -(25019, 0, "'i'"), -(25020, 0, "'n'"), -(25021, 0, "'g'"), -(25022, 0, "' '"), -(25023, 0, "'u'"), -(25024, 0, "'p'"), -(25025, 0, "' '"), -(25026, 0, "'a'"), -(25027, 0, "'n'"), -(25028, 0, "'d'"), -(25029, 0, "' '"), -(25030, 0, "'d'"), -(25031, 0, "'o'"), -(25032, 0, "'i'"), -(25033, 0, "'n'"), -(25034, 0, "'g'"), -(25035, 0, "' '"), -(25036, 0, "'m'"), -(25037, 0, "'y'"), -(25038, 0, "' '"), -(25039, 0, "'p'"), -(25040, 0, "'a'"), -(25041, 0, "'r'"), -(25042, 0, "'t'"), -(25043, 0, "'.'"), -(25044, 0, "'n'"), -(25045, 0, "'n'"), -(24857, 20, "'I'"), -(24858, 0, "' '"), -(24859, 0, "'m'"), -(24860, 0, "'i'"), -(24861, 0, "'g'"), -(24862, 0, "'h'"), -(24863, 0, "'t'"), -(24864, 0, "' '"), -(24865, 0, "'h'"), -(24866, 0, "'a'"), -(24867, 0, "'v'"), -(24868, 0, "'e'"), -(24869, 0, "' '"), -(24870, 0, "'n'"), -(24871, 0, "'o'"), -(24872, 0, "' '"), -(24873, 0, "'i'"), -(24874, 0, "'d'"), -(24875, 0, "'e'"), -(24876, 0, "'a'"), -(24877, 0, "' '"), -(24878, 0, "'h'"), -(24879, 0, "'o'"), -(24880, 0, "'w'"), -(24881, 0, "' '"), -(24882, 0, "'t'"), -(24883, 0, "'o'"), -(24884, 0, "' '"), -(24885, 14, "''"), -(24893, 1, "''"), -(24892, 1, "''"), -(24891, 1, "''"), -(24891, 15, "''"), -(24896, 0, "'s'"), -(24933, 0, "' '"), -(24934, 0, "'r'"), -(24935, 0, "'e'"), -(24936, 0, "'a'"), -(24937, 0, "'l'"), -(24938, 0, "'l'"), -(24939, 0, "'y'"), -(24947, 4, "''"), -(24966, 21, "'e'"), -(24967, 0, "'v'"), -(24968, 0, "'e'"), -(24969, 0, "'r'"), -(24970, 0, "'y'"), -(24971, 0, "'o'"), -(24972, 0, "'n'"), -(24973, 0, "'e'"), -(24966, 8, "''"), -(24965, 1, "''"), -(24953, 0, "'q'"), -(24954, 0, "'u'"), -(24955, 0, "'i'"), -(24956, 0, "'e'"), -(24957, 0, "'t'"), -(24958, 0, "'l'"), -(24959, 0, "'y'"), -(24960, 0, "' '"), -(24968, 0, "' '"), -(24969, 0, "'e'"), -(24970, 0, "'v'"), -(24971, 0, "'e'"), -(24972, 0, "'r'"), -(24973, 0, "'y'"), -(24974, 0, "'o'"), -(24975, 0, "'n'"), -(24976, 0, "'e'"), -(25018, 1, "''"), -(25018, 0, "' '"), -(25019, 0, "'i'"), -(25020, 0, "'n'"), -(25021, 0, "' '"), -(25021, 1, "''"), -(25020, 1, "''"), -(25019, 1, "''"), -(25018, 1, "''"), -(25018, 0, "' '"), -(25019, 0, "'t'"), -(25020, 0, "'o'"), -(25021, 0, "' '"), -(25022, 0, "'m'"), -(25022, 1, "''"), -(25021, 1, "''"), -(25020, 1, "''"), -(25019, 1, "''"), -(25018, 1, "''"), -(25018, 0, "' '"), -(25019, 0, "'h'"), -(25020, 0, "'e'"), -(25021, 0, "'r'"), -(25022, 0, "'e'"), -(25023, 0, "'.'"), -(24222, 1, "''"), -(24221, 1, "''"), -(24220, 1, "''"), -(24219, 1, "''"), -(24218, 1, "''"), -(24217, 1, "''"), -(24216, 1, "''"), -(24216, 0, "'a'"), -(24217, 0, "' '"), -(24218, 0, "'l'"), -(24219, 0, "'i'"), -(24220, 0, "'t'"), -(24221, 0, "'t'"), -(24222, 0, "'l'"), -(24223, 0, "'e'"), -(24224, 0, "' '"), -(24225, 0, "'b'"), -(24226, 0, "'i'"), -(24227, 0, "'t'"), -(24582, 0, "' '"), -(24583, 0, "'s'"), -(24584, 0, "'o'"), -(24584, 1, "''"), -(24583, 1, "''"), -(24583, 0, "'S'"), -(24584, 0, "'o'"), -(24605, 0, "'t'"), -(24606, 0, "'h'"), -(24607, 0, "'e'"), -(24608, 0, "' '"), -(24615, 11, "' '"), -(24616, 0, "'f'"), -(24617, 0, "'o'"), -(24618, 0, "'r'"), -(24771, 0, "' '"), -(24772, 0, "'j'"), -(24773, 0, "'u'"), -(24774, 0, "'s'"), -(24775, 0, "'t'"), -(24793, 0, "' '"), -(24794, 0, "'I'"), -(24795, 0, "' '"), -(24796, 0, "'f'"), -(24797, 0, "'i'"), -(24798, 0, "'g'"), -(24799, 0, "'u'"), -(24800, 0, "'r'"), -(24801, 0, "'e'"), -(24802, 0, "'d'"), -(24861, 4, "'B'"), -(24862, 0, "'u'"), -(24863, 0, "'t'"), -(24864, 0, "' '"), -(24865, 0, "'I'"), -(24886, 19, "'n'"), -(24887, 0, "'o'"), -(24888, 0, "'t'"), -(24889, 0, "' '"), -(24890, 0, "'b'"), -(24891, 0, "'e'"), -(24892, 0, "' '"), -(24893, 0, "'a'"), -(24894, 0, "'n'"), -(24895, 0, "'y'"), -(24896, 0, "' '"), -(24897, 0, "'g'"), -(24898, 0, "'o'"), -(24899, 0, "'o'"), -(24900, 0, "'d'"), -(24901, 0, "' '"), -(24902, 0, "'a'"), -(24903, 0, "'t'"), -(24911, 0, "'i'"), -(24912, 0, "'n'"), -(24913, 0, "'g'"), -(24920, 1, "''"), -(24920, 0, "','"), -(24922, 1, "''"), -(24922, 0, "'b'"), -(24956, 7, "''"), -(24928, 3, "''"), -(24959, 0, "' '"), -(24960, 0, "'B'"), -(24961, 0, "'u'"), -(24962, 0, "'t'"), -(24963, 0, "' '"), -(24964, 0, "'I'"), -(24965, 0, "' '"), -(24966, 0, "'d'"), -(24967, 0, "'i'"), -(24968, 0, "'d'"), -(24969, 0, "'n'"), -(24970, 0, "'''"), -(24971, 0, "'t'"), -(24972, 0, "' '"), -(24973, 0, "'e'"), -(24974, 0, "'v'"), -(24975, 0, "'e'"), -(24976, 0, "'n'"), -(24977, 0, "' '"), -(24978, 0, "'t'"), -(24979, 0, "'r'"), -(24980, 0, "'y'"), -(24981, 0, "' '"), -(24982, 0, "'t'"), -(24983, 0, "'o'"), -(24984, 0, "' '"), -(24985, 0, "'h'"), -(24986, 0, "'e'"), -(24987, 0, "'l'"), -(24988, 0, "'p'"), -(24989, 0, "' '"), -(24990, 0, "'o'"), -(24991, 0, "'u'"), -(24992, 0, "'t'"), -(24990, 0, "'t'"), -(24991, 0, "'h'"), -(24992, 0, "'o'"), -(24993, 0, "'s'"), -(24994, 0, "'e'"), -(24995, 0, "' '"), -(24996, 0, "'a'"), -(24997, 0, "'l'"), -(24997, 1, "''"), -(24997, 0, "'c'"), -(24998, 0, "'a'"), -(24999, 0, "'d'"), -(25000, 0, "'e'"), -(25001, 0, "'m'"), -(25002, 0, "'i'"), -(25003, 0, "'c'"), -(25004, 0, "'s'"), -(25005, 0, "' '"), -(25009, 0, "' '"), -(25010, 0, "'a'"), -(25011, 0, "'n'"), -(25012, 0, "'d'"), -(25013, 0, "' '"), -(25014, 0, "'i'"), -(25015, 0, "'m'"), -(25016, 0, "'p'"), -(25017, 0, "'r'"), -(25018, 0, "'o'"), -(25019, 0, "'v'"), -(25020, 0, "'e'"), -(25021, 0, "' '"), -(25014, 8, "'f'"), -(25015, 0, "'i'"), -(25016, 0, "'x'"), -(25017, 0, "' '"), -(25018, 0, "'u'"), -(25019, 0, "'p'"), -(25020, 0, "' '"), -(25021, 0, "'t'"), -(25022, 0, "'h'"), -(25023, 0, "'e'"), -(25024, 0, "'i'"), -(25025, 0, "'r'"), -(25026, 0, "' '"), -(25027, 0, "'a'"), -(25028, 0, "'l'"), -(25029, 0, "'g'"), -(25030, 0, "'o'"), -(25031, 0, "'r'"), -(25032, 0, "'i'"), -(25033, 0, "'t'"), -(25034, 0, "'h'"), -(25035, 0, "'m'"), -(25036, 0, "'s'"), -(25037, 0, "'.'"), -(24978, 0, "'*'"), -(24982, 0, "'*'"), -(24982, 1, "''"), -(24978, 1, "''"), -(24966, 0, "'*'"), -(24982, 0, "'*'"), -(25029, 10, "'i'"), -(25030, 0, "'m'"), -(25031, 0, "'p'"), -(25032, 0, "'l'"), -(25033, 0, "'e'"), -(25034, 0, "'m'"), -(25035, 0, "'e'"), -(25036, 0, "'n'"), -(25037, 0, "'t'"), -(25038, 0, "'a'"), -(25039, 0, "'t'"), -(25040, 0, "'i'"), -(25041, 0, "'o'"), -(25042, 0, "'n'"), -(25043, 0, "'s'"), -(24520, 22, "''"), -(24509, 0, "'A'"), -(24510, 0, "' '"), -(24511, 0, "'d'"), -(24512, 0, "'e'"), -(24513, 0, "'c'"), -(24514, 0, "'a'"), -(24515, 0, "'d'"), -(24516, 0, "'e'"), -(24517, 0, "' '"), -(24518, 0, "'a'"), -(24519, 0, "'g'"), -(24520, 0, "'o'"), -(24521, 0, "' '"), -(24533, 7, "''"), -(24566, 3, "''"), -(24566, 0, "' So'"), -(24575, 0, "' '"), -(24576, 0, "'r'"), -(24577, 0, "'e'"), -(24578, 0, "'a'"), -(24579, 0, "'l'"), -(24580, 0, "'l'"), -(24581, 0, "'y'"), -(24610, 0, "' '"), -(24611, 0, "'t'"), -(24612, 0, "'h'"), -(24613, 0, "'e'"), -(24630, 0, "' '"), -(24631, 0, "'C'"), -(24632, 0, "'R'"), -(24633, 0, "'D'"), -(24634, 0, "'T'"), -(24635, 0, "'s'"), -(24773, 4, "'t'"), -(24774, 0, "'o'"), -(24775, 0, "'t'"), -(24776, 0, "'a'"), -(24777, 0, "'l'"), -(24778, 0, "'l'"), -(24779, 0, "'y'"), -(24791, 0, "' '"), -(24792, 0, "'o'"), -(24793, 0, "'u'"), -(24794, 0, "'t'"), -(24795, 0, "'s'"), -(24796, 0, "'i'"), -(24797, 0, "'d'"), -(24798, 0, "'e'"), -(24799, 0, "' '"), -(24800, 0, "'o'"), -(24801, 0, "'f'"), -(24802, 0, "' '"), -(24803, 0, "'t'"), -(24804, 0, "'h'"), -(24805, 0, "'e'"), -(24806, 0, "' '"), -(24807, 0, "'l'"), -(24808, 0, "'a'"), -(24809, 0, "'b'"), -(24882, 0, "' '"), -(24883, 0, "'S'"), -(24884, 0, "'o'"), -(24885, 0, "' '"), -(24886, 0, "'I'"), -(24887, 0, "' '"), -(24887, 1, "''"), -(24886, 1, "''"), -(24885, 1, "''"), -(24884, 1, "''"), -(24884, 0, "'o'"), -(24885, 0, "' '"), -(24886, 0, "'I'"), -(24887, 0, "' '"), -(24888, 0, "'i'"), -(24889, 0, "'g'"), -(24890, 0, "'n'"), -(24891, 0, "'''"), -(24892, 0, "'r'"), -(24893, 0, "'e'"), -(24894, 0, "'d'"), -(24895, 0, "' '"), -(24896, 0, "'t'"), -(24897, 0, "'h'"), -(24898, 0, "'e'"), -(24899, 0, "'m'"), -(24883, 17, "''"), -(24883, 0, "'A'"), -(24884, 0, "'n'"), -(24885, 0, "'d'"), -(24886, 0, "' '"), -(24887, 0, "'I'"), -(24888, 0, "' '"), -(24889, 0, "'i'"), -(24890, 0, "'g'"), -(24891, 0, "'n'"), -(24892, 0, "'o'"), -(24893, 0, "'r'"), -(24894, 0, "'e'"), -(24895, 0, "'d'"), -(24896, 0, "' '"), -(24897, 0, "'t'"), -(24898, 0, "'h'"), -(24899, 0, "'e'"), -(24900, 0, "'m'"), -(24901, 0, "'.'"), -(24970, 0, "' '"), -(24971, 0, "'d'"), -(24972, 0, "'o'"), -(24999, 0, "' '"), -(25000, 0, "'r'"), -(25001, 0, "'e'"), -(25002, 0, "'a'"), -(25003, 0, "'l'"), -(25004, 0, "'l'"), -(25005, 0, "'y'"), -(25061, 20, "'m'"), -(25062, 0, "'a'"), -(25063, 0, "'k'"), -(25064, 0, "'e'"), -(25065, 0, "' '"), -(25066, 0, "'g'"), -(25067, 0, "'o'"), -(25068, 0, "'o'"), -(25069, 0, "'d'"), -(25087, 0, "' '"), -(25088, 0, "'T'"), -(25089, 0, "'h'"), -(25090, 0, "'e'"), -(25091, 0, "'y'"), -(25092, 0, "' '"), -(25093, 0, "'w'"), -(25094, 0, "'e'"), -(25095, 0, "'r'"), -(25096, 0, "'e'"), -(25097, 0, "' '"), -(25098, 0, "'t'"), -(25098, 1, "''"), -(25098, 0, "'d'"), -(25099, 0, "'o'"), -(25100, 0, "'i'"), -(25101, 0, "'n'"), -(25102, 0, "'g'"), -(25103, 0, "' '"), -(25104, 0, "'t'"), -(25105, 0, "'h'"), -(25106, 0, "'e'"), -(25107, 0, "'i'"), -(25108, 0, "'r'"), -(25109, 0, "' '"), -(25110, 0, "'p'"), -(25111, 0, "'a'"), -(25112, 0, "'r'"), -(25113, 0, "'t'"), -(25114, 0, "' '"), -(25115, 0, "'i'"), -(25116, 0, "'n'"), -(25117, 0, "' '"), -(25118, 0, "'t'"), -(25119, 0, "'h'"), -(25120, 0, "'i'"), -(25121, 0, "'s'"), -(25122, 0, "' '"), -(25123, 0, "'b'"), -(25124, 0, "'i'"), -(25123, 2, "'d'"), -(25124, 0, "'a'"), -(25125, 0, "'n'"), -(25126, 0, "'c'"), -(25127, 0, "'e'"), -(25128, 0, "','"), -(25129, 0, "' '"), -(25130, 0, "'a'"), -(25131, 0, "'n'"), -(25132, 0, "'d'"), -(25133, 0, "' '"), -(25134, 0, "'I'"), -(25135, 0, "' '"), -(25136, 0, "'w'"), -(25137, 0, "'a'"), -(25138, 0, "'s'"), -(25139, 0, "'n'"), -(25140, 0, "'''"), -(25141, 0, "'t'"), -(25142, 0, "' '"), -(25143, 0, "'d'"), -(25144, 0, "'o'"), -(25145, 0, "'i'"), -(25146, 0, "'n'"), -(25147, 0, "'g'"), -(25148, 0, "' '"), -(25149, 0, "'m'"), -(25150, 0, "'i'"), -(25151, 0, "'n'"), -(25152, 0, "'e'"), -(25000, 6, "'s'"), -(25001, 0, "'t'"), -(25002, 0, "'u'"), -(25003, 0, "'p'"), -(25004, 0, "'i'"), -(25005, 0, "'d'"), -(25006, 0, "'l'"), -(25007, 0, "'y'"), -(25000, 8, "'really'"), -(25016, 0, "' '"), -(25017, 0, "'h'"), -(25018, 0, "'e'"), -(25019, 0, "'r'"), -(25020, 0, "'e'"), -(25021, 0, "','"), -(25022, 0, "' '"), -(25023, 0, "'i'"), -(25024, 0, "'n'"), -(25025, 0, "' '"), -(25026, 0, "'m'"), -(25027, 0, "'y'"), -(25028, 0, "' '"), -(25029, 0, "'o'"), -(25030, 0, "'w'"), -(25031, 0, "'n'"), -(25032, 0, "' '"), -(25033, 0, "'f'"), -(25034, 0, "'i'"), -(25035, 0, "'e'"), -(25036, 0, "'l'"), -(25037, 0, "'d'"), -(25038, 0, "','"), -(25038, 1, "''"), -(25087, 0, "' '"), -(25088, 0, "'t'"), -(25089, 0, "'h'"), -(25090, 0, "'e'"), -(25091, 0, "'i'"), -(25092, 0, "'r'"), -(25093, 5, "''"), -(25109, 0, "' '"), -(25110, 0, "'w'"), -(25111, 0, "'o'"), -(25112, 0, "'r'"), -(25113, 0, "'k'"), -(25114, 0, "' '"), -(25115, 0, "'w'"), -(25116, 0, "'e'"), -(25117, 0, "'l'"), -(25118, 0, "'l'"), -(25186, 0, "'.'"), -(25187, 78, "''"), -(25189, 0, "'I'"), -(25190, 0, "' '"), -(25190, 1, "''"), -(25189, 1, "''"), -(25189, 0, "'I'"), -(25189, 1, "''"), -(25189, 0, "'I'"), -(25190, 0, "' '"), -(25191, 0, "'t'"), -(25192, 0, "'h'"), -(25193, 0, "'i'"), -(25194, 0, "'n'"), -(25195, 0, "'k'"), -(25196, 0, "' '"), -(25197, 0, "'t'"), -(25198, 0, "'h'"), -(25199, 0, "'e'"), -(25200, 0, "' '"), -(25201, 0, "'i'"), -(25202, 0, "'d'"), -(25203, 0, "'e'"), -(25204, 0, "'a'"), -(25205, 0, "' '"), -(25206, 0, "'t'"), -(25207, 0, "'h'"), -(25208, 0, "'a'"), -(25209, 0, "'t'"), -(25210, 0, "' '"), -(25211, 0, "'e'"), -(25212, 0, "'v'"), -(25213, 0, "'e'"), -(25214, 0, "'r'"), -(25215, 0, "'y'"), -(25216, 0, "'o'"), -(25217, 0, "'n'"), -(25218, 0, "'e'"), -(25219, 0, "' '"), -(25220, 0, "'h'"), -(25221, 0, "'a'"), -(25222, 0, "'s'"), -(25223, 0, "' '"), -(25224, 0, "'s'"), -(25225, 0, "'o'"), -(25226, 0, "'m'"), -(25227, 0, "'e'"), -(25228, 0, "' '"), -(25229, 0, "'h'"), -(25230, 0, "'i'"), -(25231, 0, "'d'"), -(25232, 0, "'d'"), -(25233, 0, "'n'"), -(25234, 0, "'e'"), -(25234, 1, "''"), -(25233, 1, "''"), -(25233, 0, "'e'"), -(25234, 0, "'n'"), -(25235, 0, "' '"), -(25236, 0, "'t'"), -(25237, 0, "'e'"), -(25237, 1, "''"), -(25237, 0, "'a'"), -(25238, 0, "'l'"), -(25239, 0, "'e'"), -(25240, 0, "'n'"), -(25241, 0, "'t'"), -(25242, 0, "' '"), -(25243, 0, "'i'"), -(25244, 0, "'s'"), -(25245, 0, "' '"), -(25246, 0, "'t'"), -(25247, 0, "'o'"), -(25248, 0, "'s'"), -(25249, 0, "'h'"), -(25246, 0, "'a'"), -(25247, 0, "' '"), -(25248, 0, "'b'"), -(25249, 0, "'i'"), -(25250, 0, "'t'"), -(25251, 0, "' '"), -(25252, 0, "'o'"), -(25253, 0, "'f'"), -(25254, 0, "' '"), -(25246, 9, "''"), -(25250, 0, "'.'"), -(25251, 0, "' '"), -(25252, 0, "'B'"), -(25253, 0, "'u'"), -(25254, 0, "'t'"), -(25255, 0, "' '"), -(25256, 0, "'I'"), -(25257, 0, "' '"), -(25258, 0, "'d'"), -(25259, 0, "'o'"), -(25260, 0, "' '"), -(25261, 0, "'t'"), -(25262, 0, "'h'"), -(25263, 0, "'i'"), -(25264, 0, "'n'"), -(25265, 0, "'k'"), -(25266, 0, "' '"), -(25267, 0, "'w'"), -(25268, 0, "'e'"), -(25269, 0, "' '"), -(25270, 0, "'a'"), -(25271, 0, "'l'"), -(25272, 0, "'l'"), -(25273, 0, "' '"), -(25189, 85, "'I think the idea that everyone has some hidden talent is tosh. But I do think we all'"), -(24970, 0, "' '"), -(24971, 0, "'a'"), -(24972, 0, "'m'"), -(24973, 0, "' '"), -(24974, 0, "'p'"), -(24975, 0, "'r'"), -(24976, 0, "'e'"), -(24977, 0, "'t'"), -(24978, 0, "'y'"), -(24978, 1, "''"), -(24978, 0, "'t'"), -(24979, 0, "'y'"), -(24980, 0, "' '"), -(24981, 0, "'g'"), -(24982, 0, "'o'"), -(24983, 0, "'o'"), -(24984, 0, "'d'"), -(24985, 0, "' '"), -(24986, 0, "'a'"), -(24987, 0, "'t'"), -(24988, 15, "''"), -(24992, 1, "''"), -(24992, 0, "'i'"), -(24993, 0, "'n'"), -(24994, 0, "'g'"), -(25004, 7, "''"), -(25011, 3, "'A'"), -(25012, 0, "'n'"), -(25013, 0, "'d'"), -(25036, 0, "','"), -(25036, 1, "''"), -(25036, 0, "','"), -(25082, 10, "'i'"), -(25083, 0, "'m'"), -(25084, 0, "'p'"), -(25085, 0, "'r'"), -(25086, 0, "'o'"), -(25087, 0, "'v'"), -(25088, 0, "'e'"), -(25089, 0, "' '"), -(25090, 0, "'t'"), -(25091, 0, "'h'"), -(25092, 0, "'e'"), -(25093, 0, "'i'"), -(25094, 0, "'r'"), -(25111, 10, "''"), -(25265, 0, "' '"), -(25266, 0, "'h'"), -(25267, 0, "'a'"), -(25268, 0, "'v'"), -(25269, 0, "'e'"), -(25270, 0, "' '"), -(25271, 0, "'d'"), -(25272, 0, "'i'"), -(25273, 0, "'f'"), -(25274, 0, "'f'"), -(25275, 0, "'e'"), -(25276, 0, "'r'"), -(25277, 0, "'e'"), -(25278, 0, "'n'"), -(25279, 0, "'t'"), -(25280, 0, "' '"), -(25281, 0, "'p'"), -(25282, 0, "'r'"), -(25283, 0, "'o'"), -(25284, 0, "'c'"), -(25285, 0, "'l'"), -(25286, 0, "'i'"), -(25287, 0, "'v'"), -(25288, 0, "'i'"), -(25289, 0, "'t'"), -(25290, 0, "'i'"), -(25291, 0, "'e'"), -(25292, 0, "'s'"), -(25293, 0, "' '"), -(25294, 0, "'a'"), -(25295, 0, "'n'"), -(25296, 0, "'d'"), -(25297, 0, "' '"), -(25298, 0, "'i'"), -(25299, 0, "'n'"), -(25300, 0, "'t'"), -(25301, 0, "'e'"), -(25302, 0, "'r'"), -(25303, 0, "'e'"), -(25304, 0, "'s'"), -(25305, 0, "'t'"), -(25306, 0, "'s'"), -(25307, 0, "'.'"), -(25308, 0, "' '"), -(25309, 0, "'W'"), -(25310, 0, "'e'"), -(25311, 0, "' '"), -(25312, 0, "'a'"), -(25313, 0, "'l'"), -(25314, 0, "'l'"), -(25315, 0, "' '"), -(25316, 0, "'h'"), -(25317, 0, "'a'"), -(25318, 0, "'v'"), -(25319, 0, "'e'"), -(25320, 0, "' '"), -(25321, 0, "'d'"), -(25322, 0, "'i'"), -(25323, 0, "'f'"), -(25324, 0, "'f'"), -(25325, 0, "'e'"), -(25326, 0, "'r'"), -(25327, 0, "'e'"), -(25328, 0, "'n'"), -(25329, 0, "'t'"), -(25330, 0, "' '"), -(25331, 0, "'s'"), -(25332, 0, "'o'"), -(25333, 0, "'n'"), -(25334, 0, "'g'"), -(25335, 0, "'s'"), -(25336, 0, "' '"), -(25337, 0, "'t'"), -(25338, 0, "'o'"), -(25339, 0, "' '"), -(25340, 0, "'s'"), -(25341, 0, "'i'"), -(25342, 0, "'n'"), -(25343, 0, "'g'"), -(25309, 35, "'E'"), -(25310, 0, "'a'"), -(25311, 0, "'c'"), -(25312, 0, "'h'"), -(25313, 0, "' '"), -(25314, 0, "'o'"), -(25315, 0, "'f'"), -(25316, 0, "' '"), -(25317, 0, "'u'"), -(25318, 0, "'s'"), -(25319, 0, "' '"), -(25320, 0, "'a'"), -(25320, 1, "''"), -(25320, 0, "'h'"), -(25321, 0, "'a'"), -(25322, 0, "'s'"), -(25323, 0, "' '"), -(25324, 0, "'a'"), -(25325, 0, "' '"), -(25326, 0, "'s'"), -(25327, 0, "'o'"), -(25328, 0, "'n'"), -(25329, 0, "'g'"), -(25330, 0, "' '"), -(25331, 0, "'t'"), -(25332, 0, "'o'"), -(25333, 0, "' '"), -(25334, 0, "'s'"), -(25335, 0, "'i'"), -(25336, 0, "'n'"), -(25337, 0, "'g'"), -(25338, 0, "' '"), -(25339, 0, "'o'"), -(25340, 0, "'v'"), -(25341, 0, "'e'"), -(25342, 0, "'r'"), -(25343, 0, "' '"), -(25344, 0, "'t'"), -(25345, 0, "'h'"), -(25346, 0, "'e'"), -(25347, 0, "' '"), -(25348, 0, "'c'"), -(25349, 0, "'i'"), -(25350, 0, "'t'"), -(25351, 0, "'y'"), -(25352, 0, "'.'"), -(25353, 0, "' '"), -(25354, 0, "'A'"), -(25354, 1, "''"), -(25353, 1, "''"), -(25179, 0, "' '"), -(25180, 0, "'T'"), -(25181, 0, "'h'"), -(25182, 0, "'e'"), -(25183, 0, "'y'"), -(25184, 0, "' '"), -(25185, 0, "'f'"), -(25186, 0, "'i'"), -(25187, 0, "'g'"), -(25188, 0, "'u'"), -(25189, 0, "'r'"), -(25190, 0, "'e'"), -(25191, 0, "'d'"), -(25192, 0, "' '"), -(25193, 0, "'o'"), -(25194, 0, "'u'"), -(25195, 0, "'t'"), -(25196, 0, "' '"), -(25197, 0, "'t'"), -(25198, 0, "'h'"), -(25199, 0, "'e'"), -(25200, 0, "' '"), -(25201, 0, "'s'"), -(25202, 0, "'e'"), -(25203, 0, "'m'"), -(25204, 0, "'n'"), -(25205, 0, "'a'"), -(25206, 0, "'t'"), -(25207, 0, "'i'"), -(25208, 0, "'c'"), -(25209, 0, "'s'"), -(25201, 9, "'s'"), -(25202, 0, "'e'"), -(25203, 0, "'m'"), -(25204, 0, "'a'"), -(25205, 0, "'n'"), -(25206, 0, "'t'"), -(25207, 0, "'i'"), -(25208, 0, "'c'"), -(25209, 0, "'s'"), -(25210, 0, "','"), -(25211, 0, "' '"), -(25212, 0, "'n'"), -(25213, 0, "'u'"), -(25214, 0, "'t'"), -(25215, 0, "' '"), -(25216, 0, "'t'"), -(25216, 1, "''"), -(25215, 1, "''"), -(25214, 1, "''"), -(25213, 1, "''"), -(25212, 1, "''"), -(25212, 0, "'b'"), -(25213, 0, "'n'"), -(25214, 0, "'u'"), -(25215, 0, "'t'"), -(25216, 0, "' '"), -(25217, 0, "'t'"), -(25217, 1, "''"), -(25216, 1, "''"), -(25215, 1, "''"), -(25214, 1, "''"), -(25213, 1, "''"), -(25213, 0, "'u'"), -(25214, 0, "'t'"), -(25215, 0, "' '"), -(25216, 0, "'t'"), -(25217, 0, "'h'"), -(25218, 0, "'e'"), -(25219, 0, "' '"), -(25219, 1, "''"), -(25219, 0, "'y'"), -(25220, 0, "' '"), -(24904, 317, "'But I was wrong. I might not be any good at inventing CRDTs, but I am pretty good at making code run fast. And here, in my own field, I *didn't even try* to help those academics improve their implementations. They were doing their part in this dance, and I wasn't doing mine. They figured out the semantics, but they'"), -(24615, 0, "'['"), -(24622, 0, "']'"), -(24623, 0, "'('"), -(24624, 0, "'https://hal.inria.fr/inria-00432368/document'"), -(24668, 0, "')'"), -(24674, 0, "'['"), -(24679, 0, "']'"), -(24680, 0, "'('"), -(24681, 0, "'https://hal.inria.fr/inria-00445975/document'"), -(24725, 0, "')'"), -(24741, 0, "' '"), -(24742, 0, "'1'"), -(24743, 0, "'2'"), -(24744, 0, "' '"), -(24745, 0, "'y'"), -(24746, 0, "'e'"), -(24747, 0, "'a'"), -(24748, 0, "'r'"), -(24749, 0, "'s'"), -(24750, 0, "' '"), -(24751, 0, "'a'"), -(24752, 0, "'g'"), -(24753, 0, "'o'"), -(24996, 0, "'s'"), -(24997, 0, "'o'"), -(24998, 0, "' '"), -(25177, 46, "''"), -(25213, 0, "' '"), -(25214, 0, "'s'"), -(25215, 0, "'t'"), -(25216, 0, "'r'"), -(25217, 0, "'a'"), -(25218, 0, "'g'"), -(25219, 0, "'e'"), -(25219, 1, "''"), -(25218, 1, "''"), -(25217, 1, "''"), -(25216, 1, "''"), -(25216, 0, "'r'"), -(25217, 0, "'a'"), -(25218, 0, "'n'"), -(25219, 0, "'g'"), -(25220, 0, "'e'"), -(24507, 0, "' '"), -(24508, 0, "'('"), -(24509, 0, "'I'"), -(24510, 0, "'s'"), -(24511, 0, "' '"), -(24512, 0, "'t'"), -(24513, 0, "'h'"), -(24514, 0, "'a'"), -(24515, 0, "'t'"), -(24516, 0, "' '"), -(24517, 0, "'a'"), -(24518, 0, "' '"), -(24519, 0, "'m'"), -(24520, 0, "'a'"), -(24521, 0, "'s'"), -(24522, 0, "'i'"), -(24523, 0, "'s'"), -(24523, 1, "''"), -(24522, 1, "''"), -(24522, 0, "'s'"), -(24523, 0, "'i'"), -(24524, 0, "'v'"), -(24525, 0, "'e'"), -(22655, 3, "''"), -(22655, 0, "'#'"), -(22656, 0, "'#'"), -(22657, 0, "'#'"), -(22657, 1, "''"), -(22657, 0, "' '"), -(22658, 0, "'S'"), -(22659, 0, "'t'"), -(22660, 0, "'r'"), -(22661, 0, "'u'"), -(22662, 0, "'c'"), -(22663, 0, "'t'"), -(22664, 0, "' '"), -(22665, 0, "'o'"), -(22666, 0, "'f'"), -(22667, 0, "' '"), -(22668, 0, "'a'"), -(22669, 0, "'r'"), -(22670, 0, "'r'"), -(22671, 0, "'a'"), -(22672, 0, "'y'"), -(22673, 0, "'s'"), -(22674, 0, "' '"), -(22675, 0, "'v'"), -(22676, 0, "'s'"), -(22677, 0, "' '"), -(22678, 0, "'A'"), -(22679, 0, "'r'"), -(22680, 0, "'r'"), -(22681, 0, "'a'"), -(22682, 0, "'y'"), -(22683, 0, "' '"), -(22684, 0, "'o'"), -(22685, 0, "'f'"), -(22686, 0, "' '"), -(22687, 0, "'s'"), -(22688, 0, "'t'"), -(22689, 0, "'r'"), -(22690, 0, "'u'"), -(22691, 0, "'c'"), -(22692, 0, "'t'"), -(22693, 0, "'s'"), -(22695, 0, "'n'"), -(22695, 0, "'n'"), -(22696, 0, "'I'"), -(22697, 0, "'''"), -(22698, 0, "'m'"), -(22699, 0, "' '"), -(22700, 0, "'d'"), -(22701, 0, "'o'"), -(22702, 0, "'i'"), -(22703, 0, "'n'"), -(22704, 0, "'g'"), -(22705, 0, "' '"), -(22706, 0, "'a'"), -(22707, 0, "' '"), -(22708, 0, "'s'"), -(22709, 0, "'l'"), -(22710, 0, "'i'"), -(22711, 0, "'g'"), -(22712, 0, "'h'"), -(22713, 0, "'t'"), -(22714, 0, "' '"), -(22715, 0, "'o'"), -(22716, 0, "'f'"), -(22717, 0, "' '"), -(22718, 0, "'h'"), -(22719, 0, "'a'"), -(22720, 0, "'n'"), -(22721, 0, "'d'"), -(22722, 0, "' '"), -(22723, 0, "'h'"), -(22724, 0, "'e'"), -(22725, 0, "'r'"), -(22726, 0, "'e'"), -(22727, 0, "' '"), -(22728, 0, "'-'"), -(22729, 0, "' '"), -(22730, 0, "'t'"), -(22730, 1, "''"), -(22729, 1, "''"), -(22728, 1, "''"), -(22727, 1, "''"), -(22727, 0, "'.'"), -(22728, 0, "' '"), -(22729, 0, "'T'"), -(22730, 0, "'h'"), -(22731, 0, "'i'"), -(22732, 0, "'s'"), -(22733, 0, "' '"), -(22734, 0, "'i'"), -(22735, 0, "'m'"), -(22736, 0, "'p'"), -(22737, 0, "'l'"), -(22738, 0, "'m'"), -(22739, 0, "'e'"), -(22739, 1, "''"), -(22738, 1, "''"), -(22738, 0, "'e'"), -(22739, 0, "'m'"), -(22740, 0, "'e'"), -(22741, 0, "'n'"), -(22742, 0, "'t'"), -(22743, 0, "'a'"), -(22744, 0, "'t'"), -(22745, 0, "'i'"), -(22746, 0, "'o'"), -(22747, 0, "'n'"), -(22748, 0, "' '"), -(22749, 0, "'i'"), -(22750, 0, "'s'"), -(22751, 0, "'n'"), -(22752, 0, "'''"), -(22753, 0, "'t'"), -(22749, 5, "'h'"), -(22750, 0, "'a'"), -(22751, 0, "'s'"), -(22752, 0, "' '"), -(22753, 0, "'a'"), -(22754, 0, "'n'"), -(22755, 0, "'o'"), -(22756, 0, "'t'"), -(22757, 0, "'h'"), -(22758, 0, "'e'"), -(22759, 0, "'r'"), -(22760, 0, "' '"), -(22761, 0, "'s'"), -(22762, 0, "'m'"), -(22763, 0, "'a'"), -(22764, 0, "'l'"), -(22765, 0, "'l'"), -(22766, 0, "' '"), -(22767, 0, "'c'"), -(22768, 0, "'h'"), -(22769, 0, "'a'"), -(22770, 0, "'n'"), -(22771, 0, "'g'"), -(22772, 0, "'e'"), -(22773, 0, "' '"), -(22774, 0, "'-'"), -(22775, 0, "' '"), -(22776, 0, "'a'"), -(22777, 0, "'n'"), -(22778, 0, "'d'"), -(22779, 0, "' '"), -(22780, 0, "'I'"), -(22781, 0, "'''"), -(22782, 0, "'m'"), -(22783, 0, "' '"), -(22784, 0, "'n'"), -(22785, 0, "'o'"), -(22786, 0, "'t'"), -(22787, 0, "' '"), -(22788, 0, "'s'"), -(22789, 0, "'u'"), -(22790, 0, "'r'"), -(22791, 0, "'e'"), -(22792, 0, "' '"), -(22793, 0, "'i'"), -(22794, 0, "'f'"), -(22795, 0, "'I'"), -(22796, 0, "' '"), -(22797, 0, "'l'"), -(22798, 0, "'i'"), -(22799, 0, "'k'"), -(22800, 0, "'e'"), -(22793, 8, "'i'"), -(22794, 0, "'f'"), -(22795, 0, "' '"), -(22796, 0, "'I'"), -(22797, 0, "' '"), -(22798, 0, "'l'"), -(22799, 0, "'i'"), -(22800, 0, "'k'"), -(22801, 0, "'e'"), -(22802, 0, "' '"), -(22803, 0, "'i'"), -(22804, 0, "'t'"), -(22805, 0, "'.'"), -(22806, 0, "'n'"), -(22807, 0, "'n'"), -(22808, 0, "'I'"), -(22809, 0, "'n'"), -(22810, 0, "' '"), -(22811, 0, "'j'"), -(22812, 0, "'a'"), -(22813, 0, "'v'"), -(22814, 0, "'a'"), -(22815, 0, "'s'"), -(22816, 0, "'c'"), -(22817, 0, "'r'"), -(22818, 0, "'i'"), -(22819, 0, "'p'"), -(22820, 0, "'t'"), -(22821, 0, "' '"), -(22822, 0, "'w'"), -(22823, 0, "'e'"), -(22824, 0, "' '"), -(22825, 0, "'h'"), -(22826, 0, "'a'"), -(22827, 0, "'v'"), -(22828, 0, "'e'"), -(22829, 0, "' '"), -(22830, 0, "'t'"), -(22831, 0, "'h'"), -(22832, 0, "'i'"), -(22833, 0, "'s'"), -(22834, 0, "':'"), -(22835, 0, "'n'"), -(22836, 0, "'n'"), -(22837, 0, "'`'"), -(22838, 0, "'`'"), -(22839, 0, "'`'"), -(22840, 0, "'n'"), -(22841, 0, "'{ item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },'"), -(22841, 0, "'d'"), -(22842, 0, "'o'"), -(22843, 0, "'c'"), -(22844, 0, "' '"), -(22845, 0, "'='"), -(22846, 0, "' '"), -(22840, 0, "'j'"), -(22841, 0, "'a'"), -(22842, 0, "'v'"), -(22843, 0, "'a'"), -(22844, 0, "'s'"), -(22845, 0, "'c'"), -(22846, 0, "'r'"), -(22847, 0, "'i'"), -(22848, 0, "'p'"), -(22849, 0, "'t'"), -(22854, 0, "'.'"), -(22854, 1, "''"), -(22857, 0, "'n'"), -(22851, 6, "'doc ='"), -(22857, 0, "'['"), -(22857, 1, "''"), -(22856, 1, "''"), -(22856, 0, "'{'"), -(22856, 1, "''"), -(22856, 0, "' '"), -(22857, 0, "'{'"), -(22858, 0, "'n '"), -(22861, 0, "'c'"), -(22862, 0, "'o'"), -(22863, 0, "'n'"), -(22864, 0, "'t'"), -(22865, 0, "'e'"), -(22866, 0, "'n'"), -(22867, 0, "'t'"), -(22868, 0, "':'"), -(22869, 0, "' '"), -(22870, 0, "'['"), -(22871, 0, "'n '"), -(22872, 0, "' { item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },n'"), -(22962, 5, "'w'"), -(22963, 0, "'o'"), -(22964, 0, "'r'"), -(22965, 0, "'l'"), -(22966, 0, "'d'"), -(22981, 5, "'t'"), -(22982, 0, "'r'"), -(22983, 0, "'u'"), -(22984, 0, "'e'"), -(22993, 4, "'m'"), -(22994, 0, "'i'"), -(22995, 0, "'k'"), -(22996, 0, "'e'"), -(23017, 4, "''"), -(23017, 0, "'['"), -(23018, 0, "'''"), -(23019, 0, "'s'"), -(23020, 0, "'e'"), -(23021, 0, "'p'"), -(23022, 0, "'h'"), -(23023, 0, "'''"), -(23024, 0, "','"), -(23025, 0, "' '"), -(23026, 0, "'0'"), -(23027, 0, "']'"), -(23031, 0, "'n '"), -(23036, 0, "'.'"), -(23037, 0, "'.'"), -(23038, 0, "'.'"), -(23039, 0, "'n '"), -(23040, 4, "' ]'"), -(23043, 0, "'n '"), -(23044, 2, "'}'"), -(23045, 0, "'n'"), -(23046, 0, "'`'"), -(23047, 0, "'`'"), -(23048, 0, "'`'"), -(23049, 0, "'n'"), -(23050, 0, "'n'"), -(23051, 0, "'I'"), -(23052, 0, "'n'"), -(23053, 0, "' '"), -(23054, 0, "'r'"), -(23055, 0, "'u'"), -(23056, 0, "'s'"), -(23057, 0, "'t'"), -(23058, 0, "' '"), -(23059, 0, "'I'"), -(23060, 0, "'''"), -(23061, 0, "'m'"), -(23062, 0, "' '"), -(23063, 0, "'d'"), -(23064, 0, "'o'"), -(23065, 0, "'i'"), -(23066, 0, "'n'"), -(23067, 0, "'g'"), -(23068, 0, "' '"), -(23069, 0, "'t'"), -(23070, 0, "'h'"), -(23071, 0, "'i'"), -(23072, 0, "'s'"), -(23073, 0, "':'"), -(22851, 20, "'doc = { content: ['"), -(22947, 4, "' '"), -(22870, 4, "' '"), -(23034, 2, "''"), -(23034, 3, "'] }'"), -(23035, 1, "''"), -(23060, 0, "'t'"), -(23061, 0, "'h'"), -(23062, 0, "'e'"), -(23063, 0, "' '"), -(23064, 0, "'e'"), -(23065, 0, "'q'"), -(23066, 0, "'u'"), -(23067, 0, "'i'"), -(23068, 0, "'v'"), -(23069, 0, "'a'"), -(23070, 0, "'l'"), -(23071, 0, "'e'"), -(23072, 0, "'n'"), -(23073, 0, "'t'"), -(23074, 0, "' '"), -(23075, 0, "'o'"), -(23076, 0, "'f'"), -(23077, 0, "' '"), -(23084, 0, "'n'"), -(23084, 0, "'n'"), -(23085, 0, "'n```javascriptndoc = { content: [n { item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },n { item: 'world', isDeleted: true, id: ['mike', 0], seq, parent: ['seph', 0] },n ...n]}n```'"), -(23084, 1, "''"), -(23122, 13, "'l'"), -(23123, 0, "'e'"), -(23124, 0, "'n'"), -(23125, 0, "'g'"), -(23126, 0, "'t'"), -(23127, 0, "'h'"), -(23128, 0, "':'"), -(23129, 0, "' '"), -(23130, 0, "'5'"), -(23133, 18, "''"), -(23175, 13, "''"), -(23175, 0, "'l'"), -(23176, 0, "'e'"), -(23177, 0, "'n'"), -(23178, 0, "'g'"), -(23179, 0, "'t'"), -(23180, 0, "'h'"), -(23181, 0, "':'"), -(23182, 0, "' '"), -(23183, 0, "'-'"), -(23184, 0, "'5'"), -(23187, 17, "''"), -(23117, 0, "'n '"), -(23120, 0, "'/'"), -(23121, 0, "'/'"), -(23122, 0, "' '"), -(23123, 0, "'N'"), -(23124, 0, "'o'"), -(23125, 0, "' '"), -(23126, 0, "'s'"), -(23127, 0, "'t'"), -(23128, 0, "'r'"), -(23129, 0, "'i'"), -(23130, 0, "'n'"), -(23131, 0, "'g'"), -(23132, 0, "' '"), -(23133, 0, "'c'"), -(23134, 0, "'o'"), -(23135, 0, "'n'"), -(23136, 0, "'t'"), -(23137, 0, "'e'"), -(23138, 0, "'n'"), -(23139, 0, "'t'"), -(23140, 0, "'!'"), -(23106, 1, "''"), -(23106, 0, "'n '"), -(23258, 4, "' '"), -(23197, 2, "' '"), -(23144, 2, "' '"), -(23120, 2, "' '"), -(23264, 6, "' '"), -(23271, 1, "''"), -(23271, 0, "'n '"), -(23272, 4, "' '"), -(23275, 0, "'n '"), -(23276, 2, "''"), -(23275, 0, "','"), -(23276, 0, "'n '"), -(23279, 0, "'n '"), -(23277, 2, "''"), -(23280, 0, "'t'"), -(23281, 0, "'e'"), -(23282, 0, "'x'"), -(23283, 0, "'t'"), -(23284, 0, "'C'"), -(23285, 0, "'o'"), -(23286, 0, "'n'"), -(23287, 0, "'t'"), -(23288, 0, "'e'"), -(23289, 0, "'n'"), -(23290, 0, "'t'"), -(23291, 0, "':'"), -(23292, 0, "' '"), -(23293, 0, "'''"), -(23294, 0, "'h'"), -(23295, 0, "'e'"), -(23296, 0, "'l'"), -(23297, 0, "'l'"), -(23298, 0, "'o'"), -(23299, 0, "'''"), -(23300, 0, "' '"), -(23301, 0, "'/'"), -(23302, 0, "'/'"), -(23303, 0, "' '"), -(23304, 0, "'A'"), -(23305, 0, "'c'"), -(23306, 0, "'t'"), -(23307, 0, "'u'"), -(23308, 0, "'a'"), -(23309, 0, "'l'"), -(23310, 0, "'l'"), -(23311, 0, "'y'"), -(23312, 0, "' '"), -(23313, 0, "'i'"), -(23314, 0, "'n'"), -(23315, 0, "' '"), -(23316, 0, "'a'"), -(23317, 0, "' '"), -(23318, 0, "'r'"), -(23319, 0, "'o'"), -(23320, 0, "'p'"), -(23321, 0, "'e'"), -(23318, 4, "'R'"), -(23319, 0, "'o'"), -(23320, 0, "'p'"), -(23321, 0, "'e'"), -(23322, 0, "','"), -(23323, 0, "' '"), -(23324, 0, "'n'"), -(23325, 0, "'o'"), -(23326, 0, "'t'"), -(23327, 0, "' '"), -(23328, 0, "'a'"), -(23329, 0, "' '"), -(23330, 0, "'s'"), -(23331, 0, "'t'"), -(23332, 0, "'r'"), -(23333, 0, "'i'"), -(23334, 0, "'n'"), -(23335, 0, "'g'"), -(23336, 0, "'.'"), -(23318, 1, "''"), -(23318, 0, "'r'"), -(23059, 18, "''"), -(23059, 0, "' '"), -(23060, 0, "'s'"), -(23061, 0, "'o'"), -(23062, 0, "'m'"), -(23063, 0, "'e'"), -(23064, 0, "'t'"), -(23065, 0, "'h'"), -(23066, 0, "'i'"), -(23067, 0, "'n'"), -(23068, 0, "'g'"), -(23069, 0, "' '"), -(23070, 0, "'l'"), -(23070, 1, "''"), -(23070, 0, "'m'"), -(23071, 0, "'o'"), -(23072, 0, "'r'"), -(23073, 0, "'e'"), -(23074, 0, "' '"), -(23075, 0, "'l'"), -(23076, 0, "'i'"), -(23077, 0, "'k'"), -(23078, 0, "'e'"), -(23108, 0, "'n '"), -(23111, 0, "'c'"), -(23112, 0, "'l'"), -(23113, 0, "'i'"), -(23114, 0, "'e'"), -(23115, 0, "'n'"), -(23116, 0, "'t'"), -(23117, 0, "'s'"), -(23118, 0, "':'"), -(23119, 0, "' '"), -(23120, 0, "'['"), -(23121, 0, "'''"), -(23122, 0, "'s'"), -(23123, 0, "'e'"), -(23124, 0, "'p'"), -(23125, 0, "'h'"), -(23126, 0, "'''"), -(23127, 0, "','"), -(23128, 0, "' '"), -(23129, 0, "'''"), -(23130, 0, "'m'"), -(23131, 0, "'m'"), -(23132, 0, "'i'"), -(23132, 1, "''"), -(23131, 1, "''"), -(23131, 0, "'i'"), -(23132, 0, "'k'"), -(23133, 0, "'e'"), -(23134, 0, "'''"), -(23135, 0, "']'"), -(23136, 0, "','"), -(23137, 0, "'n '"), -(23138, 2, "''"), -(23282, 6, "'0'"), -(23200, 6, "'0'"), -(23251, 6, "'1'"), -(23220, 4, "''"), -(23220, 0, "'['"), -(23221, 0, "'-'"), -(23222, 0, "'1'"), -(23223, 0, "','"), -(23224, 0, "' '"), -(23225, 0, "'-'"), -(23225, 1, "''"), -(23224, 1, "''"), -(23223, 1, "''"), -(23223, 0, "','"), -(23224, 0, "' '"), -(23225, 0, "'0'"), -(23226, 0, "']'"), -(23225, 1, "''"), -(23224, 1, "''"), -(23223, 1, "''"), -(23223, 0, "','"), -(23224, 0, "' '"), -(23225, 0, "'-'"), -(23226, 0, "'1'"), -(23231, 0, "' '"), -(23232, 0, "'/'"), -(23233, 0, "'/'"), -(23234, 0, "' '"), -(23235, 0, "'r'"), -(23236, 0, "'o'"), -(23237, 0, "'o'"), -(23238, 0, "'t'"), -(23239, 0, "' '"), -(23232, 8, "''"), -(23231, 1, "''"), -(23141, 7, "'i'"), -(23142, 0, "'t'"), -(23143, 0, "'e'"), -(23144, 0, "'m'"), -(23145, 0, "'s'"), -(23148, 0, "'R'"), -(23149, 0, "'a'"), -(23150, 0, "'n'"), -(23151, 0, "'g'"), -(23152, 0, "'e'"), -(23153, 0, "'T'"), -(23154, 0, "'r'"), -(23155, 0, "'e'"), -(23156, 0, "'e'"), -(23157, 0, "' '"), -(23322, 0, "'R'"), -(23323, 0, "'o'"), -(23324, 0, "'p'"), -(23325, 0, "'e'"), -(23326, 0, "' '"), -(23334, 37, "''"), -(23326, 0, "'y'"), -(23327, 0, "' '"), -(23328, 0, "'R'"), -(23329, 0, "'o'"), -(23330, 0, "'p'"), -(23331, 0, "'e'"), -(23332, 0, "' '"), -(23333, 0, "'{'"), -(23342, 0, "' '"), -(23343, 0, "'}'"), -(23327, 1, "''"), -(23148, 9, "'B'"), -(23149, 0, "'T'"), -(23150, 0, "'r'"), -(23151, 0, "'e'"), -(23152, 0, "'e'"), -(23148, 5, "'R'"), -(23149, 0, "'a'"), -(23150, 0, "'n'"), -(23151, 0, "'g'"), -(23152, 0, "'e'"), -(23153, 0, "'T'"), -(23154, 0, "'r'"), -(23155, 0, "'e'"), -(23156, 0, "'e'"), -(23158, 0, "'{'"), -(23305, 0, "'}'"), -(23229, 8, "'N'"), -(23230, 0, "'U'"), -(23231, 0, "'L'"), -(23232, 0, "'L'"), -(23232, 1, "''"), -(23231, 1, "''"), -(23230, 1, "''"), -(23229, 1, "''"), -(23229, 0, "'n'"), -(23230, 0, "'u'"), -(23231, 0, "'l'"), -(23232, 0, "'l'"), -(23229, 4, "'R'"), -(23230, 0, "'O'"), -(23231, 0, "'O'"), -(23232, 0, "'T'"), -(23341, 0, "'n'"), -(23304, 1, "''"), -(23340, 0, "'n ]},'"), -(23298, 6, "''"), -(23334, 0, "'n ...'"), -(23290, 8, "''"), -(23326, 0, "'n { length: -5, id: [1, 0], seq, parent: [0, 0] },'"), -(23237, 53, "''"), -(23273, 0, "'n { length: 5, id: [0, 0], seq, parent: ROOT },'"), -(23187, 50, "''"), -(23223, 0, "'n // No string content!'"), -(23187, 2, "' '"), -(23161, 26, "''"), -(23199, 0, "'n items: RangeTree {['"), -(23139, 22, "''"), -(23177, 0, "'n'"), -(23138, 1, "''"), -(23138, 4, "' '"), -(23174, 0, "','"), -(23137, 0, "'n '"), -(23138, 2, "''"), -(23137, 1, "''"), -(23175, 0, "'n clients: ['seph', 'mike'],'"), -(23109, 29, "''"), -(23146, 0, "'n '"), -(23147, 2, "''"), -(23342, 1, "''"), -(23349, 0, "'n'"), -(23350, 308, "''"), -(23349, 1, "''"), -(23349, 0, "'n'"), -(23349, 0, "'n'"), -(23350, 0, "'T'"), -(23351, 0, "'h'"), -(23352, 0, "'e'"), -(23353, 0, "'r'"), -(23354, 0, "'e'"), -(23355, 0, "'''"), -(23356, 0, "'s'"), -(23357, 0, "' '"), -(23358, 0, "'a'"), -(23359, 0, "' '"), -(23360, 0, "'f'"), -(23361, 0, "'e'"), -(23362, 0, "'w'"), -(23363, 0, "' '"), -(23364, 0, "'t'"), -(23365, 0, "'w'"), -(23366, 0, "'e'"), -(23367, 0, "'a'"), -(23368, 0, "'k'"), -(23369, 0, "'s'"), -(23370, 0, "' '"), -(23371, 0, "'h'"), -(23372, 0, "'e'"), -(23373, 0, "'r'"), -(23374, 0, "'e'"), -(23375, 0, "','"), -(23376, 0, "' '"), -(23377, 0, "'b'"), -(23378, 0, "'u'"), -(23379, 0, "'t'"), -(23380, 0, "' '"), -(23350, 31, "''"), -(23349, 1, "''"), -(23349, 0, "'n'"), -(23350, 0, "'N'"), -(23351, 0, "'o'"), -(23352, 0, "'t'"), -(23353, 0, "'i'"), -(23354, 0, "'c'"), -(23355, 0, "'e'"), -(23356, 0, "' '"), -(23357, 0, "'t'"), -(23358, 0, "'h'"), -(23359, 0, "'e'"), -(23360, 0, "' '"), -(23361, 0, "'t'"), -(23362, 0, "'e'"), -(23363, 0, "'t'"), -(23363, 1, "''"), -(23363, 0, "'x'"), -(23364, 0, "'t'"), -(23350, 0, "'T'"), -(23351, 0, "'h'"), -(23352, 0, "'e'"), -(23353, 0, "'r'"), -(23354, 0, "'e'"), -(23355, 0, "'''"), -(23356, 0, "'s'"), -(23357, 0, "' '"), -(23358, 0, "'a'"), -(23359, 0, "' '"), -(23360, 0, "'b'"), -(23361, 0, "'u'"), -(23362, 0, "'n'"), -(23363, 0, "'c'"), -(23364, 0, "'h'"), -(23365, 0, "' '"), -(23366, 0, "'o'"), -(23367, 0, "'f'"), -(23368, 0, "' '"), -(23369, 0, "'s'"), -(23370, 0, "'m'"), -(23371, 0, "'a'"), -(23372, 0, "'l'"), -(23373, 0, "'l'"), -(23374, 0, "' '"), -(23375, 0, "'t'"), -(23376, 0, "'w'"), -(23377, 0, "'e'"), -(23378, 0, "'a'"), -(23379, 0, "'k'"), -(23380, 0, "'s'"), -(23381, 0, "' '"), -(23382, 0, "'h'"), -(23383, 0, "'e'"), -(23384, 0, "'r'"), -(23385, 0, "'e'"), -(23386, 0, "','"), -(23387, 0, "' '"), -(23388, 0, "'b'"), -(23389, 0, "'u'"), -(23390, 0, "'t'"), -(23391, 0, "' '"), -(23393, 0, "'t'"), -(23393, 1, "''"), -(23392, 1, "''"), -(23392, 0, "'n'"), -(23407, 0, "' '"), -(23408, 0, "'c'"), -(23409, 0, "'o'"), -(23410, 0, "'n'"), -(23411, 0, "'t'"), -(23412, 0, "'e'"), -(23413, 0, "'n'"), -(23414, 0, "'t'"), -(23415, 0, "'?'"), -(23416, 0, "' '"), -(23417, 0, "'I'"), -(23418, 0, "'t'"), -(23419, 0, "'s'"), -(23420, 0, "' '"), -(23420, 1, "''"), -(23419, 1, "''"), -(23418, 1, "''"), -(23418, 0, "' '"), -(23419, 0, "'p'"), -(23420, 0, "'u'"), -(23421, 0, "'l'"), -(23422, 0, "'l'"), -(23423, 0, "'e'"), -(23424, 0, "'d'"), -(23425, 0, "' '"), -(23426, 0, "'i'"), -(23427, 0, "'t'"), -(23428, 0, "' '"), -(23429, 0, "'o'"), -(23430, 0, "'u'"), -(23431, 0, "'t'"), -(23432, 0, "' '"), -(23433, 0, "'i'"), -(23434, 0, "'n'"), -(23435, 0, "'t'"), -(23436, 0, "'o'"), -(23437, 0, "' '"), -(23438, 0, "'i'"), -(23439, 0, "'t'"), -(23440, 0, "'s'"), -(23441, 0, "' '"), -(23442, 0, "'o'"), -(23443, 0, "'w'"), -(23444, 0, "'n'"), -(23445, 0, "' '"), -(23446, 0, "'s'"), -(23447, 0, "'t'"), -(23448, 0, "'r'"), -(23449, 0, "'u'"), -(23450, 0, "'c'"), -(23451, 0, "'t'"), -(23452, 0, "'u'"), -(23453, 0, "'r'"), -(23454, 0, "'e'"), -(23455, 0, "'.'"), -(23456, 0, "' '"), -(23457, 0, "'T'"), -(23458, 0, "'h'"), -(23459, 0, "'e'"), -(23460, 0, "' '"), -(23461, 0, "'b'"), -(23462, 0, "'e'"), -(23463, 0, "'e'"), -(23464, 0, "'n'"), -(23464, 1, "''"), -(23463, 1, "''"), -(23463, 0, "'n'"), -(23464, 0, "'e'"), -(23465, 0, "'f'"), -(23466, 0, "'i'"), -(23467, 0, "'t'"), -(23468, 0, "' '"), -(23457, 12, "'T'"), -(23458, 0, "'h'"), -(23459, 0, "'i'"), -(23460, 0, "'s'"), -(23461, 0, "' '"), -(23462, 0, "'i'"), -(23463, 0, "'s'"), -(23464, 0, "' '"), -(23465, 0, "'a'"), -(23466, 0, "' '"), -(23467, 0, "'t'"), -(23468, 0, "'r'"), -(23469, 0, "'a'"), -(23470, 0, "'d'"), -(23471, 0, "'e'"), -(23472, 0, "'o'"), -(23473, 0, "'f'"), -(23474, 0, "'f'"), -(23475, 0, "':'"), -(23476, 0, "'n'"), -(23477, 0, "'n'"), -(23478, 0, "'-'"), -(23479, 0, "' '"), -(23478, 2, "'-'"), -(23457, 10, "'W'"), -(23458, 0, "'e'"), -(23459, 0, "'l'"), -(23460, 0, "'o'"), -(23461, 0, "'m'"), -(23461, 1, "''"), -(23460, 1, "''"), -(23460, 0, "'c'"), -(23461, 0, "'o'"), -(23462, 0, "'m'"), -(23463, 0, "'e'"), -(23464, 0, "' '"), -(23465, 0, "'t'"), -(23466, 0, "'o'"), -(23467, 0, "' '"), -(23438, 7, "'a'"), -(23439, 0, "' '"), -(23440, 0, "'s'"), -(23441, 0, "'e'"), -(23442, 0, "'p'"), -(23443, 0, "'a'"), -(23444, 0, "'r'"), -(23445, 0, "'a'"), -(23446, 0, "'t'"), -(23447, 0, "'e'"), -(23448, 0, "' '"), -(23449, 0, "'d'"), -(23450, 0, "'a'"), -(23451, 0, "'t'"), -(23452, 0, "'a'"), -(23484, 0, "' '"), -(23476, 0, "'t'"), -(23477, 0, "'h'"), -(23478, 0, "'e'"), -(23479, 0, "' '"), -(23480, 0, "'l'"), -(23481, 0, "'a'"), -(23482, 0, "'n'"), -(23483, 0, "'d'"), -(23484, 0, "' '"), -(23485, 0, "'o'"), -(23486, 0, "'f'"), -(23487, 0, "' '"), -(23496, 0, "'s'"), -(23497, 1, "''"), -(23488, 0, "'E'"), -(23489, 0, "'n'"), -(23490, 0, "'g'"), -(23491, 0, "'i'"), -(23492, 0, "'n'"), -(23493, 0, "'e'"), -(23494, 0, "'e'"), -(23495, 0, "'r'"), -(23496, 0, "'i'"), -(23497, 0, "'n'"), -(23498, 0, "'g'"), -(23499, 0, "' '"), -(23500, 1, "''"), -(23500, 0, "'T'"), -(23480, 1, "''"), -(23480, 0, "'L'"), -(23650, 43, "''"), -(23650, 0, "'[Ropey](https://docs.rs/ropey/1.2.0/ropey/)'"), -(23463, 0, "'('"), -(23464, 0, "' '"), -(23464, 1, "''"), -(23464, 0, "' '"), -(23464, 1, "''"), -(23463, 1, "''"), -(23463, 0, "' '"), -(23464, 0, "'('"), -(23465, 0, "'[Ropey](https://docs.rs/ropey/1.2.0/ropey/)'"), -(23465, 0, "'U'"), -(23465, 1, "''"), -(23465, 0, "'u'"), -(23466, 0, "'s'"), -(23467, 0, "'i'"), -(23468, 0, "'n'"), -(23469, 0, "'g'"), -(23470, 0, "' '"), -(23471, 0, "'a'"), -(23472, 0, "' '"), -(23473, 0, "'l'"), -(23474, 0, "'i'"), -(23475, 0, "'s'"), -(23476, 0, "'t'"), -(23476, 1, "''"), -(23475, 1, "''"), -(23474, 1, "''"), -(23473, 1, "''"), -(23472, 1, "''"), -(23472, 0, "' '"), -(23473, 0, "'r'"), -(23474, 0, "'u'"), -(23475, 0, "'s'"), -(23476, 0, "'t'"), -(23477, 0, "' '"), -(23478, 0, "'l'"), -(23479, 0, "'i'"), -(23480, 0, "'b'"), -(23481, 0, "'r'"), -(23482, 0, "'a'"), -(23483, 0, "'r'"), -(23484, 0, "'y'"), -(23485, 0, "' '"), -(23486, 0, "'c'"), -(23487, 0, "'a'"), -(23488, 0, "'l'"), -(23489, 0, "'l'"), -(23490, 0, "'e'"), -(23491, 0, "' '"), -(23492, 0, "'d'"), -(23492, 1, "''"), -(23491, 1, "''"), -(23491, 0, "'d'"), -(23492, 0, "' '"), -(23536, 0, "')'"), -(23536, 0, "','"), -(23537, 0, "' '"), -(23538, 0, "'w'"), -(23539, 0, "'h'"), -(23540, 0, "'i'"), -(23541, 0, "'c'"), -(23542, 0, "'h'"), -(23543, 0, "' '"), -(23544, 0, "'i'"), -(23545, 0, "' '"), -(23545, 1, "''"), -(23545, 0, "'s'"), -(23546, 0, "' '"), -(23547, 0, "'*'"), -(23547, 1, "''"), -(23546, 1, "''"), -(23545, 1, "''"), -(23544, 1, "''"), -(23544, 0, "'i'"), -(23545, 0, "'m'"), -(23546, 0, "'p'"), -(23547, 0, "'l'"), -(23548, 0, "'e'"), -(23549, 0, "'m'"), -(23550, 0, "'e'"), -(23551, 0, "'n'"), -(23552, 0, "'t'"), -(23553, 0, "'s'"), -(23554, 0, "' '"), -(23555, 0, "'*'"), -(23556, 0, "'a'"), -(23557, 0, "'n'"), -(23558, 0, "'o'"), -(23559, 0, "'t'"), -(23560, 0, "'h'"), -(23561, 0, "'e'"), -(23562, 0, "'r'"), -(23563, 0, "'*'"), -(23564, 0, "' '"), -(23565, 0, "'b'"), -(23566, 0, "'-'"), -(23567, 0, "'t'"), -(23568, 0, "'r'"), -(23569, 0, "'e'"), -(23570, 0, "'e'"), -(23571, 0, "'!'"), -(23623, 0, "' '"), -(23624, 0, "'H'"), -(23625, 0, "'a'"), -(23626, 0, "'v'"), -(23627, 0, "'i'"), -(23628, 0, "'n'"), -(23629, 0, "' '"), -(23629, 1, "''"), -(23629, 0, "'g'"), -(23630, 0, "' '"), -(23631, 0, "'t'"), -(23632, 0, "'h'"), -(23633, 0, "'e'"), -(23634, 0, "' '"), -(23635, 0, "'t'"), -(23636, 0, "'e'"), -(23637, 0, "'x'"), -(23638, 0, "'x'"), -(23639, 0, "'t'"), -(23640, 0, "' '"), -(23641, 0, "'c'"), -(23642, 0, "'o'"), -(23643, 0, "'n'"), -(23644, 0, "'t'"), -(23645, 0, "'e'"), -(23638, 1, "''"), -(23645, 0, "'n'"), -(23646, 0, "'t'"), -(23647, 0, "' '"), -(23648, 0, "'s'"), -(23649, 0, "'e'"), -(23650, 0, "'l'"), -(23651, 0, "'f'"), -(23652, 0, "' '"), -(23653, 0, "'c'"), -(23654, 0, "'o'"), -(23655, 0, "'n'"), -(23656, 0, "'t'"), -(23657, 0, "'a'"), -(23658, 0, "'i'"), -(23659, 0, "'n'"), -(23660, 0, "'e'"), -(23661, 0, "'d'"), -(23662, 0, "' '"), -(23663, 0, "'l'"), -(23664, 0, "'i'"), -(23665, 0, "'k'"), -(23666, 0, "'e'"), -(23667, 0, "' '"), -(23668, 0, "'t'"), -(23669, 0, "'h'"), -(23670, 0, "'i'"), -(23671, 0, "'s'"), -(23672, 0, "' '"), -(23673, 0, "'m'"), -(23674, 0, "'e'"), -(23675, 0, "'a'"), -(23676, 0, "'n'"), -(23677, 0, "'s'"), -(23678, 0, "' '"), -(23679, 0, "'t'"), -(23680, 0, "'h'"), -(23681, 0, "'e'"), -(23682, 0, "' '"), -(23679, 4, "'r'"), -(23680, 0, "'o'"), -(23681, 0, "'p'"), -(23682, 0, "'e'"), -(23683, 0, "'y'"), -(23684, 0, "' '"), -(23685, 0, "'c'"), -(23686, 0, "'a'"), -(23687, 0, "'n'"), -(23688, 0, "' '"), -(23689, 0, "'d'"), -(23690, 0, "'o'"), -(23691, 0, "' '"), -(23692, 0, "'t'"), -(23693, 0, "'e'"), -(23694, 0, "'x'"), -(23695, 0, "'t'"), -(23696, 0, "'-'"), -(23697, 0, "'s'"), -(23698, 0, "'p'"), -(23699, 0, "'e'"), -(23700, 0, "'c'"), -(23701, 0, "'i'"), -(23702, 0, "'f'"), -(23703, 0, "'i'"), -(23704, 0, "'c'"), -(23705, 0, "' '"), -(23706, 0, "'o'"), -(23707, 0, "'p'"), -(23708, 0, "'t'"), -(23709, 0, "'i'"), -(23710, 0, "'m'"), -(23711, 0, "'i'"), -(23712, 0, "'z'"), -(23713, 0, "'a'"), -(23714, 0, "'t'"), -(23715, 0, "'i'"), -(23716, 0, "'o'"), -(23717, 0, "'n'"), -(23718, 0, "'s'"), -(23673, 0, "'a'"), -(23674, 0, "'l'"), -(23675, 0, "'l'"), -(23676, 0, "'o'"), -(23677, 0, "'w'"), -(23678, 0, "'s'"), -(23679, 0, "' '"), -(23680, 6, "''"), -(23685, 0, "' '"), -(23686, 0, "'t'"), -(23687, 0, "'o'"), -(23688, 4, "''"), -(23719, 0, "','"), -(23720, 0, "' '"), -(23721, 0, "'l'"), -(23722, 0, "'i'"), -(23723, 0, "'k'"), -(23724, 0, "'e'"), -(23725, 0, "' '"), -(23726, 0, "'p'"), -(23727, 0, "'a'"), -(23728, 0, "'c'"), -(23729, 0, "'k'"), -(23730, 0, "'i'"), -(23731, 0, "'n'"), -(23732, 0, "'g'"), -(23733, 0, "' '"), -(23734, 0, "'a'"), -(23735, 0, "'l'"), -(23736, 0, "'l'"), -(23737, 0, "' '"), -(23738, 0, "'t'"), -(23739, 0, "'h'"), -(23740, 0, "'e'"), -(23741, 0, "' '"), -(23742, 0, "'c'"), -(23743, 0, "'h'"), -(23744, 0, "'a'"), -(23745, 0, "'r'"), -(23746, 0, "'a'"), -(23719, 28, "'.'"), -(23720, 0, "' '"), -(23721, 0, "'S'"), -(23722, 0, "'o'"), -(23723, 0, "' '"), -(23724, 0, "'w'"), -(23725, 0, "'e'"), -(23726, 0, "' '"), -(23727, 0, "'u'"), -(23728, 0, "'s'"), -(23729, 0, "'e'"), -(23730, 0, "' '"), -(23731, 0, "'l'"), -(23732, 0, "'e'"), -(23733, 0, "'s'"), -(23734, 0, "'s'"), -(23735, 0, "' '"), -(23736, 0, "'r'"), -(23737, 0, "'a'"), -(23738, 0, "'m'"), -(23739, 0, "'.'"), -(23740, 0, "'n'"), -(23741, 0, "'-'"), -(23742, 0, "' '"), -(23741, 2, "'-'"), -(23721, 19, "'T'"), -(23722, 0, "'h'"), -(23723, 0, "'e'"), -(23724, 0, "' '"), -(23725, 0, "'b'"), -(23726, 0, "'i'"), -(23727, 0, "'g'"), -(23728, 0, "'g'"), -(23729, 0, "'e'"), -(23730, 0, "'s'"), -(23731, 0, "'t'"), -(23732, 0, "' '"), -(23733, 0, "'a'"), -(23734, 0, "'d'"), -(23735, 0, "'v'"), -(23736, 0, "'a'"), -(23737, 0, "'n'"), -(23738, 0, "'t'"), -(23739, 0, "'a'"), -(23740, 0, "'g'"), -(23741, 0, "'e'"), -(23742, 0, "' '"), -(23743, 0, "'i'"), -(23744, 0, "'s'"), -(23745, 0, "' '"), -(23746, 0, "'w'"), -(23747, 0, "'e'"), -(23748, 0, "' '"), -(23749, 0, "'u'"), -(23750, 0, "'s'"), -(23751, 0, "'e'"), -(23752, 0, "' '"), -(23753, 0, "'a'"), -(23754, 0, "' '"), -(23755, 0, "'l'"), -(23756, 0, "'o'"), -(23757, 0, "'t'"), -(23758, 0, "' '"), -(23759, 0, "'l'"), -(23760, 0, "'e'"), -(23761, 0, "'s'"), -(23762, 0, "'s'"), -(23763, 0, "' '"), -(23764, 0, "'r'"), -(23765, 0, "'a'"), -(23766, 0, "'m'"), -(23767, 0, "' '"), -(23768, 0, "'t'"), -(23769, 0, "'h'"), -(23770, 0, "'i'"), -(23771, 0, "'s'"), -(23772, 0, "' '"), -(23773, 0, "'w'"), -(23774, 0, "'a'"), -(23775, 0, "'y'"), -(23776, 0, "'.'"), -(23597, 0, "' '"), -(23598, 0, "'U'"), -(23599, 0, "'n'"), -(23600, 0, "'c'"), -(23601, 0, "'o'"), -(23602, 0, "'m'"), -(23603, 0, "'f'"), -(23604, 0, "'o'"), -(23605, 0, "'r'"), -(23606, 0, "'t'"), -(23607, 0, "'a'"), -(23608, 0, "'b'"), -(23609, 0, "'l'"), -(23610, 0, "'e'"), -(23793, 0, "' '"), -(23794, 0, "'B'"), -(23795, 0, "'u'"), -(23796, 0, "'t'"), -(23797, 0, "' '"), -(23798, 0, "'i'"), -(23799, 0, "'n'"), -(23800, 0, "'s'"), -(23801, 0, "'e'"), -(23802, 0, "'r'"), -(23803, 0, "'t'"), -(23804, 0, "'i'"), -(23805, 0, "'n'"), -(23806, 0, "'g'"), -(23807, 0, "' '"), -(23808, 0, "'i'"), -(23809, 0, "'n'"), -(23810, 0, "'t'"), -(23811, 0, "'o'"), -(23812, 0, "' '"), -(23813, 0, "'b'"), -(23814, 0, "'o'"), -(23815, 0, "'t'"), -(23816, 0, "'h'"), -(23798, 19, "'e'"), -(23799, 0, "'i'"), -(23799, 1, "''"), -(23798, 1, "''"), -(23798, 0, "'w'"), -(23799, 0, "'i'"), -(23800, 0, "'t'"), -(23801, 0, "'h'"), -(23802, 0, "' '"), -(23803, 0, "'e'"), -(23804, 0, "'c'"), -(23805, 0, "'h'"), -(23805, 1, "''"), -(23804, 1, "''"), -(23804, 0, "'a'"), -(23805, 0, "'c'"), -(23806, 0, "'h'"), -(23807, 0, "' '"), -(23808, 0, "'i'"), -(23809, 0, "'n'"), -(23810, 0, "'s'"), -(23811, 0, "'e'"), -(23812, 0, "'r'"), -(23813, 0, "'t'"), -(23814, 0, "' '"), -(23815, 0, "'w'"), -(23816, 0, "'e'"), -(23817, 0, "'''"), -(23817, 1, "''"), -(23817, 0, "' '"), -(23818, 0, "'n'"), -(23819, 0, "'e'"), -(23820, 0, "'e'"), -(23821, 0, "'d'"), -(23822, 0, "' '"), -(23823, 0, "'t'"), -(23824, 0, "'o'"), -(23825, 0, "' '"), -(23826, 0, "'u'"), -(23827, 0, "'p'"), -(23828, 0, "'d'"), -(23829, 0, "'a'"), -(23830, 0, "'t'"), -(23831, 0, "'e'"), -(23832, 0, "' '"), -(23833, 0, "'2'"), -(23834, 0, "' '"), -(23835, 0, "'d'"), -(23836, 0, "'a'"), -(23837, 0, "'t'"), -(23838, 0, "'a'"), -(23839, 0, "' '"), -(23840, 0, "'s'"), -(23841, 0, "'t'"), -(23842, 0, "'r'"), -(23843, 0, "'u'"), -(23844, 0, "'c'"), -(23845, 0, "'t'"), -(23846, 0, "'u'"), -(23847, 0, "'r'"), -(23848, 0, "'e'"), -(23849, 0, "'s'"), -(23850, 0, "'.'"), -(23851, 0, "' '"), -(23852, 0, "'R'"), -(23853, 0, "'o'"), -(23854, 0, "'p'"), -(23854, 1, "''"), -(23853, 1, "''"), -(23852, 1, "''"), -(23851, 1, "''"), -(23850, 1, "''"), -(23850, 0, "' '"), -(23851, 0, "'i'"), -(23852, 0, "'n'"), -(23853, 0, "'s'"), -(23854, 0, "'t'"), -(23855, 0, "'e'"), -(23856, 0, "'a'"), -(23857, 0, "'d'"), -(23858, 0, "' '"), -(23859, 0, "'o'"), -(23860, 0, "'f'"), -(23861, 0, "' '"), -(23862, 0, "'1'"), -(23863, 0, "','"), -(23864, 0, "' '"), -(23865, 0, "'w'"), -(23866, 0, "'h'"), -(23867, 0, "'i'"), -(23868, 0, "'c'"), -(23869, 0, "'h'"), -(23870, 0, "' '"), -(23871, 0, "'m'"), -(23872, 0, "'a'"), -(23873, 0, "'k'"), -(23874, 0, "'e'"), -(23875, 0, "'s'"), -(23876, 0, "' '"), -(23877, 0, "'e'"), -(23878, 0, "'v'"), -(23879, 0, "'e'"), -(23880, 0, "'r'"), -(23881, 0, "'y'"), -(23882, 0, "'t'"), -(23883, 0, "'h'"), -(23884, 0, "'i'"), -(23885, 0, "'n'"), -(23886, 0, "'g'"), -(23887, 0, "' '"), -(23888, 0, "'m'"), -(23889, 0, "'o'"), -(23890, 0, "'r'"), -(23891, 0, "'e'"), -(23892, 0, "' '"), -(23893, 0, "'t'"), -(23894, 0, "'h'"), -(23895, 0, "'a'"), -(23896, 0, "'n'"), -(23871, 0, "'i'"), -(23872, 0, "'n'"), -(23873, 0, "' '"), -(23874, 0, "'t'"), -(23875, 0, "'h'"), -(23876, 0, "'i'"), -(23877, 0, "'s'"), -(23878, 0, "' '"), -(23879, 0, "'c'"), -(23880, 0, "'a'"), -(23881, 0, "'s'"), -(23882, 0, "'e'"), -(23883, 0, "' '"), -(23910, 0, "' '"), -(23910, 1, "''"), -(23910, 0, "' '"), -(23911, 0, "'t'"), -(23912, 0, "'w'"), -(23913, 0, "'i'"), -(23914, 0, "'c'"), -(23915, 0, "'e'"), -(23916, 0, "' '"), -(23917, 0, "'a'"), -(23918, 0, "'s'"), -(23919, 0, "' '"), -(23920, 0, "'s'"), -(23921, 0, "'l'"), -(23922, 0, "'o'"), -(23923, 0, "'w'"), -(23924, 0, "' '"), -(23925, 0, "'a'"), -(23926, 0, "'s'"), -(23927, 0, "' '"), -(23928, 0, "'i'"), -(23929, 0, "'t'"), -(23930, 0, "' '"), -(23931, 0, "'c'"), -(23932, 0, "'o'"), -(23933, 0, "'u'"), -(23934, 0, "'l'"), -(23935, 0, "'d'"), -(23936, 0, "' '"), -(23937, 0, "'b'"), -(23938, 0, "'e'"), -(23861, 0, "' '"), -(23862, 0, "'j'"), -(23863, 0, "'u'"), -(23864, 0, "'s'"), -(23865, 0, "'t'"), -(23875, 13, "''"), -(23892, 19, "''"), -(23897, 0, "'e'"), -(23898, 0, "'r'"), -(23899, 15, "''"), -(23899, 0, "'n'"), -(23900, 0, "'-'"), -(23901, 0, "' '"), -(23900, 2, "'-'"), -(23399, 3, "'w'"), -(23400, 0, "'h'"), -(23401, 0, "'a'"), -(23402, 0, "'t'"), -(23403, 0, "' '"), -(23404, 0, "'I'"), -(23405, 0, "' '"), -(23406, 0, "'d'"), -(23407, 0, "'i'"), -(23408, 0, "'d'"), -(23409, 0, "' '"), -(23410, 0, "'w'"), -(23411, 0, "'i'"), -(23412, 0, "'t'"), -(23413, 0, "'h'"), -(23414, 0, "' '"), -(23415, 0, "'t'"), -(23416, 0, "'h'"), -(23417, 0, "'e'"), -(23431, 1, "''"), -(23431, 0, "' '"), -(23432, 0, "'h'"), -(23433, 0, "'e'"), -(23434, 0, "'r'"), -(23435, 0, "'e'"), -(23436, 0, "'.'"), -(23485, 1, "''"), -(23484, 1, "''"), -(23484, 0, "','"), -(23485, 0, "' '"), -(23557, 1, "''"), -(23557, 0, "'.'"), -(23558, 0, "' '"), -(23559, 0, "'R'"), -(23560, 0, "'o'"), -(23561, 0, "'p'"), -(23562, 0, "'e'"), -(23563, 0, "'y'"), -(23564, 0, "' '"), -(23565, 0, "'i'"), -(23566, 0, "'m'"), -(23567, 0, "'p'"), -(23568, 0, "'l'"), -(23569, 0, "'e'"), -(23570, 0, "'m'"), -(23571, 0, "'e'"), -(23572, 0, "'n'"), -(23573, 0, "'t'"), -(23574, 0, "'s'"), -(23575, 17, "''"), -(23594, 1, "''"), -(23593, 1, "''"), -(23591, 0, "' '"), -(23592, 0, "'t'"), -(23592, 1, "''"), -(23591, 1, "''"), -(23592, 0, "' '"), -(23592, 1, "''"), -(23592, 0, "' '"), -(23593, 0, "'t'"), -(23594, 0, "'o'"), -(23595, 0, "' '"), -(23596, 0, "'e'"), -(23597, 0, "'f'"), -(23598, 0, "'f'"), -(23599, 0, "'i'"), -(23600, 0, "'c'"), -(23601, 0, "'i'"), -(23602, 0, "'e'"), -(23603, 0, "'n'"), -(23604, 0, "'t'"), -(23605, 0, "'l'"), -(23606, 0, "'y'"), -(23607, 0, "' '"), -(23608, 0, "'m'"), -(23609, 0, "'a'"), -(23610, 0, "'n'"), -(23611, 0, "'a'"), -(23612, 0, "'g'"), -(23613, 0, "'e'"), -(23614, 0, "' '"), -(23615, 0, "'t'"), -(23616, 0, "'e'"), -(23617, 0, "'x'"), -(23618, 0, "'t'"), -(23619, 0, "' '"), -(23620, 0, "'i'"), -(23621, 0, "'n'"), -(23622, 0, "'s'"), -(23623, 0, "'e'"), -(23624, 0, "'r'"), -(23625, 0, "'t'"), -(23626, 0, "'s'"), -(23627, 1, "''"), -(23627, 0, "'.'"), -(23628, 0, "' '"), -(23629, 0, "'T'"), -(23630, 0, "'h'"), -(23631, 0, "'i'"), -(23632, 0, "'s'"), -(23633, 0, "' '"), -(23634, 0, "'i'"), -(23635, 0, "'s'"), -(23636, 0, "'n'"), -(23637, 0, "'''"), -(23638, 0, "'t'"), -(23639, 0, "' '"), -(23640, 0, "'a'"), -(23641, 0, "' '"), -(23642, 0, "'n'"), -(23643, 0, "'e'"), -(23644, 0, "'t'"), -(23645, 0, "' '"), -(23646, 0, "'w'"), -(23647, 0, "'i'"), -(23648, 0, "'n'"), -(23649, 0, "'.'"), -(23651, 10, "'W'"), -(23652, 0, "'e'"), -(23653, 0, "' '"), -(23654, 0, "'h'"), -(23655, 0, "'a'"), -(23656, 0, "'v'"), -(23657, 0, "'e'"), -(23658, 0, "' '"), -(23659, 0, "'u'"), -(23660, 0, "'n'"), -(23661, 0, "'f'"), -(23662, 0, "'o'"), -(23663, 0, "'r'"), -(23664, 0, "'t'"), -(23665, 0, "'u'"), -(23666, 0, "'n'"), -(23667, 0, "'a'"), -(23668, 0, "'t'"), -(23669, 0, "'e'"), -(23670, 0, "'l'"), -(23671, 0, "'y'"), -(23672, 0, "' '"), -(23673, 0, "'a'"), -(23674, 0, "'r'"), -(23675, 0, "'r'"), -(23676, 0, "'i'"), -(23677, 0, "'v'"), -(23678, 0, "'e'"), -(23679, 0, "'d'"), -(23680, 0, "' '"), -(23681, 0, "'a'"), -(23682, 0, "'t'"), -(23386, 5, "'.'"), -(23387, 0, "' '"), -(23388, 0, "'B'"), -(23389, 0, "'u'"), -(23390, 0, "'t'"), -(23399, 0, "'i'"), -(23400, 0, "'n'"), -(23401, 0, "' '"), -(23402, 0, "'p'"), -(23403, 0, "'a'"), -(23404, 0, "'r'"), -(23405, 0, "'t'"), -(23406, 0, "'i'"), -(23407, 0, "'c'"), -(23408, 0, "'u'"), -(23409, 0, "'l'"), -(23410, 0, "'a'"), -(23411, 0, "'r'"), -(23412, 0, "' '"), -(23388, 44, "''"), -(23350, 38, "''"), -(23350, 0, "'O'"), -(23351, 0, "'n'"), -(23352, 0, "'e'"), -(23353, 0, "' '"), -(23354, 0, "'b'"), -(23355, 0, "'i'"), -(23356, 0, "'g'"), -(23357, 0, "' '"), -(23357, 1, "''"), -(23070, 10, "'c'"), -(23071, 0, "'l'"), -(23072, 0, "'o'"), -(23073, 0, "'s'"), -(23074, 0, "'e'"), -(23075, 0, "'r'"), -(23076, 0, "' '"), -(23077, 0, "'t'"), -(23078, 0, "'o'"), -(23079, 0, "' '"), -(23350, 26, "'O'"), -(23351, 0, "'n'"), -(23352, 0, "'e'"), -(23353, 0, "' '"), -(23353, 1, "''"), -(23352, 1, "''"), -(23351, 1, "''"), -(23350, 1, "''"), -(23350, 0, "'N'"), -(23351, 0, "'o'"), -(23352, 0, "'t'"), -(23353, 0, "'e'"), -(23364, 2, "'t'"), -(23365, 0, "'h'"), -(23366, 0, "'e'"), -(23367, 0, "' '"), -(23368, 0, "'t'"), -(23369, 0, "'e'"), -(23370, 0, "'x'"), -(23371, 0, "'t'"), -(22766, 0, "','"), -(22767, 0, "' '"), -(22768, 0, "'i'"), -(22769, 0, "'m'"), -(22770, 0, "'p'"), -(22771, 0, "'o'"), -(22772, 0, "'r'"), -(22773, 0, "'t'"), -(22774, 0, "'a'"), -(22775, 0, "'n'"), -(22776, 0, "'t'"), -(23361, 5, "'T'"), -(23362, 0, "'o'"), -(23363, 0, "' '"), -(23363, 1, "''"), -(23362, 1, "''"), -(23361, 1, "''"), -(23379, 0, "'c'"), -(23380, 0, "'o'"), -(23381, 0, "'n'"), -(23382, 0, "'t'"), -(23383, 0, "'e'"), -(23384, 0, "'n'"), -(23385, 0, "'t'"), -(23386, 0, "' '"), -(23712, 10, "''"), -(23792, 6, "''"), -(23918, 0, "'.'"), -(23921, 0, "' '"), -(23922, 0, "'A'"), -(23923, 0, "'n'"), -(23924, 0, "'d'"), -(23925, 0, "' '"), -(23926, 0, "'t'"), -(23927, 0, "'h'"), -(23928, 0, "'e'"), -(23929, 0, "' '"), -(23930, 0, "'b'"), -(23926, 5, "'i'"), -(23927, 0, "'t'"), -(23928, 0, "' '"), -(23929, 0, "'d'"), -(23930, 0, "'o'"), -(23931, 0, "'u'"), -(23932, 0, "'b'"), -(23933, 0, "'l'"), -(23934, 0, "'e'"), -(23935, 0, "'s'"), -(23936, 0, "' '"), -(23937, 0, "'t'"), -(23938, 0, "'h'"), -(23939, 0, "'e'"), -(23940, 0, "' '"), -(23941, 0, "'c'"), -(23942, 0, "'o'"), -(23943, 0, "'m'"), -(23944, 0, "'p'"), -(23945, 0, "'i'"), -(23946, 0, "'l'"), -(23947, 0, "'e'"), -(23948, 0, "'d'"), -(23941, 0, "'s'"), -(23942, 0, "'i'"), -(23943, 0, "'z'"), -(23944, 0, "'e'"), -(23945, 0, "' '"), -(23946, 0, "'o'"), -(23947, 0, "'f'"), -(23948, 0, "' '"), -(23949, 0, "'t'"), -(23950, 0, "'h'"), -(23951, 0, "'e'"), -(23952, 0, "' '"), -(23961, 0, "' '"), -(23962, 0, "'b'"), -(23963, 0, "'i'"), -(23964, 0, "'n'"), -(23965, 0, "'a'"), -(23966, 0, "'r'"), -(23967, 0, "'y'"), -(23968, 0, "' '"), -(23969, 0, "'-'"), -(23970, 0, "' '"), -(23971, 0, "'w'"), -(23972, 0, "'i'"), -(23973, 0, "'t'"), -(23974, 0, "'h'"), -(23975, 0, "' '"), -(23976, 0, "'w'"), -(23977, 0, "'a'"), -(23978, 0, "'s'"), -(23979, 0, "'m'"), -(23980, 0, "' '"), -(23968, 7, "','"), -(23969, 0, "' '"), -(23970, 0, "'w'"), -(23971, 0, "'h'"), -(23972, 0, "'i'"), -(23973, 0, "'c'"), -(23974, 0, "'h'"), -(23975, 0, "' '"), -(23976, 0, "'m'"), -(23977, 0, "'a'"), -(23978, 0, "'t'"), -(23979, 0, "'t'"), -(23980, 0, "'e'"), -(23981, 0, "'r'"), -(23982, 0, "'s'"), -(23983, 0, "' '"), -(23984, 0, "'o'"), -(23985, 0, "'n'"), -(23986, 0, "' '"), -(23987, 0, "'t'"), -(23988, 0, "'h'"), -(23989, 0, "'e'"), -(23990, 0, "' '"), -(23991, 0, "'w'"), -(23992, 0, "'e'"), -(23993, 0, "'b'"), -(23994, 0, "'.'"), -(23995, 0, "' '"), -(23996, 0, "'T'"), -(23997, 0, "'h'"), -(23998, 0, "'e'"), -(24005, 0, "'b'"), -(24006, 0, "'u'"), -(24007, 0, "'n'"), -(24008, 0, "'d'"), -(24009, 0, "'l'"), -(24010, 0, "'e'"), -(24011, 0, "' '"), -(24012, 0, "'g'"), -(24013, 0, "'o'"), -(24014, 0, "'e'"), -(24015, 0, "'s'"), -(24016, 0, "' '"), -(24017, 0, "'f'"), -(24018, 0, "'r'"), -(24019, 0, "'o'"), -(24020, 0, "'m'"), -(24021, 0, "' '"), -(24022, 0, "'6'"), -(24023, 0, "'0'"), -(24024, 0, "'k'"), -(24025, 0, "'b'"), -(24026, 0, "' '"), -(24027, 0, "'t'"), -(24028, 0, "'o'"), -(24029, 0, "' '"), -(24030, 0, "'1'"), -(24031, 0, "'2'"), -(24032, 0, "'0'"), -(24033, 0, "'k'"), -(24034, 0, "'b'"), -(24035, 0, "'.'"), -(24012, 4, "'i'"), -(24013, 0, "'n'"), -(24014, 0, "'c'"), -(24015, 0, "'r'"), -(24016, 0, "'e'"), -(24017, 0, "'a'"), -(24018, 0, "'s'"), -(24019, 0, "'e'"), -(24020, 0, "'s'"), -(24040, 1, "''"), -(24040, 0, "' '"), -(24041, 0, "'w'"), -(24042, 0, "'h'"), -(24043, 0, "'e'"), -(24044, 0, "'n'"), -(24045, 0, "' '"), -(24046, 0, "'w'"), -(24047, 0, "'e'"), -(24048, 0, "' '"), -(24049, 0, "'d'"), -(24050, 0, "'e'"), -(24051, 0, "'p'"), -(24052, 0, "'e'"), -(24053, 0, "'n'"), -(24054, 0, "'d'"), -(24055, 0, "' '"), -(24056, 0, "'o'"), -(24057, 0, "'n'"), -(24058, 0, "' '"), -(24059, 0, "'R'"), -(24060, 0, "'o'"), -(24061, 0, "'p'"), -(24062, 0, "'e'"), -(24063, 0, "'y'"), -(24064, 0, "'.'"), -(23968, 26, "''"), -(24039, 0, "'n'"), -(24040, 0, "'-'"), -(24041, 0, "' '"), -(24042, 0, "'B'"), -(24043, 0, "'u'"), -(24044, 0, "'t'"), -(24045, 0, "' '"), -(24046, 0, "'i'"), -(24047, 0, "'t'"), -(24048, 0, "' '"), -(24049, 0, "'m'"), -(24050, 0, "'a'"), -(24051, 0, "'k'"), -(24052, 0, "'e'"), -(24053, 0, "'s'"), -(24054, 0, "' '"), -(24055, 0, "'i'"), -(24056, 0, "'t'"), -(24057, 0, "' '"), -(24058, 0, "'w'"), -(24059, 0, "'a'"), -(24060, 0, "'y'"), -(24061, 0, "' '"), -(24062, 0, "'a'"), -(24062, 1, "''"), -(24062, 0, "'f'"), -(24063, 0, "'a'"), -(24064, 0, "'s'"), -(24065, 0, "'t'"), -(24066, 0, "'e'"), -(24067, 0, "'r'"), -(24068, 0, "' '"), -(24069, 0, "'t'"), -(24070, 0, "'o'"), -(24071, 0, "' '"), -(24072, 0, "'r'"), -(24073, 0, "'e'"), -(24074, 0, "'a'"), -(24075, 0, "'d'"), -(24076, 0, "' '"), -(24077, 0, "'o'"), -(24078, 0, "'f'"), -(24079, 0, "'f'"), -(24080, 0, "' '"), -(24042, 5, "'I'"), -(24044, 0, "' '"), -(24045, 0, "'a'"), -(24046, 0, "'l'"), -(24047, 0, "'s'"), -(24048, 0, "'o'"), -(24040, 42, "'- It also makes it way faster to read off'"), -(22818, 234, "''"), -(28308, 0, "'nIn javascript we have this:nn```javascriptndoc = { content: [n { item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },n { item: 'world', isDeleted: true, id: ['mike', 0], seq, parent: ['seph', 0] },n ...n]}n```n'"), -(22847, 9, "'l'"), -(22848, 0, "'i'"), -(22849, 0, "'k'"), -(22850, 0, "'e'"), -(22851, 0, "' '"), -(22851, 1, "''"), -(23122, 12, "'N'"), -(23123, 0, "'o'"), -(23124, 0, "'t'"), -(23125, 0, "'i'"), -(23126, 0, "'c'"), -(23127, 0, "'e'"), -(23128, 0, "' '"), -(23129, 0, "'t'"), -(23130, 0, "'e'"), -(23130, 1, "''"), -(23130, 0, "'h'"), -(23131, 0, "'e'"), -(23132, 0, "' '"), -(23133, 0, "'d'"), -(23134, 0, "'o'"), -(23135, 0, "'c'"), -(23136, 0, "'u'"), -(23137, 0, "'m'"), -(23138, 0, "'e'"), -(23139, 0, "'n'"), -(23140, 0, "'t'"), -(23141, 0, "'''"), -(23142, 0, "'s'"), -(23156, 0, "' '"), -(23157, 0, "'i'"), -(23158, 0, "'s'"), -(23159, 0, "' '"), -(23159, 1, "''"), -(23158, 1, "''"), -(23157, 1, "''"), -(23157, 0, "'h'"), -(23158, 0, "'a'"), -(23159, 0, "'s'"), -(23160, 0, "' '"), -(23161, 0, "'b'"), -(23162, 0, "'e'"), -(23163, 0, "'e'"), -(23164, 0, "'n'"), -(23165, 0, "' '"), -(23166, 0, "'p'"), -(23167, 0, "'u'"), -(23168, 0, "'l'"), -(23169, 0, "'l'"), -(23170, 0, "'e'"), -(23171, 0, "'d'"), -(23207, 0, "'.'"), -(23208, 0, "' '"), -(23209, 0, "'I'"), -(23210, 0, "'''"), -(23211, 0, "'m'"), -(23212, 1, "' '"), -(23212, 1, "''"), -(23463, 47, "'C'"), -(23463, 1, "''"), -(23463, 0, "'R'"), -(23468, 0, "' '"), -(23469, 0, "'c'"), -(23470, 0, "'a'"), -(23471, 0, "'n'"), -(23508, 26, "'W'"), -(23514, 0, "' '"), -(23515, 0, "'m'"), -(23516, 0, "'u'"), -(23517, 0, "'c'"), -(23518, 0, "'h'"), -(23515, 4, "''"), -(23514, 1, "''"), -(23539, 10, "' '"), -(23540, 0, "'w'"), -(23541, 0, "'h'"), -(23542, 0, "'e'"), -(23543, 0, "'n'"), -(23544, 0, "' '"), -(23544, 1, "''"), -(23551, 0, "'i'"), -(23552, 0, "'n'"), -(23553, 0, "'g'"), -(23601, 5, "''"), -(23603, 1, "''"), -(23603, 0, "'.'"), -(23604, 0, "' '"), -(23605, 0, "'T'"), -(23606, 0, "'h'"), -(23607, 0, "'i'"), -(23608, 0, "'s'"), -(23609, 6, "''"), -(23637, 6, "'D'"), -(23638, 0, "'e'"), -(23639, 0, "'p'"), -(23640, 0, "'e'"), -(23641, 0, "'n'"), -(23642, 0, "'d'"), -(23643, 0, "'i'"), -(23644, 0, "'n'"), -(23645, 0, "'g'"), -(23646, 0, "' '"), -(23647, 0, "'o'"), -(23648, 0, "'n'"), -(23649, 0, "' '"), -(23650, 0, "'r'"), -(23651, 0, "'o'"), -(23652, 0, "'p'"), -(23653, 0, "'e'"), -(23654, 0, "'y'"), -(23676, 3, "'o'"), -(23677, 0, "'u'"), -(23678, 0, "'r'"), -(23741, 25, "''"), -(23741, 0, "' '"), -(23742, 0, "'-'"), -(23743, 0, "' '"), -(23744, 0, "'w'"), -(23745, 0, "'h'"), -(23746, 0, "'i'"), -(23747, 0, "'c'"), -(23748, 0, "'h'"), -(23749, 0, "' '"), -(23750, 0, "'i'"), -(23751, 0, "'s'"), -(23741, 11, "''"), -(23744, 0, "'R'"), -(23745, 0, "'o'"), -(23746, 0, "'p'"), -(23747, 0, "'e'"), -(23748, 0, "'y'"), -(23749, 0, "' '"), -(23750, 8, "''"), -(23781, 0, "' '"), -(23782, 0, "'t'"), -(23783, 0, "'h'"), -(23784, 0, "'e'"), -(23785, 0, "' '"), -(23786, 0, "'d'"), -(23787, 0, "'o'"), -(23788, 0, "'c'"), -(23789, 0, "'u'"), -(23790, 0, "'m'"), -(23791, 0, "'e'"), -(23792, 0, "'n'"), -(23793, 0, "'t'"), -(23794, 0, "'''"), -(23795, 0, "'s'"), -(23742, 54, "''"), -(23741, 1, "''"), -(24535, 0, "'| *JS baseline* | 0.61s | 0.1 MB | *(none)* |n'"), -(24618, 2, "'R'"), -(24619, 0, "'o'"), -(24620, 0, "'p'"), -(24621, 0, "'e'"), -(24622, 0, "'y'"), -(24623, 0, "' '"), -(24624, 0, "'('"), -(24625, 0, "'r'"), -(24626, 0, "'u'"), -(24627, 0, "'s'"), -(24628, 0, "'t'"), -(24629, 0, "')'"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24640, 1, "''"), -(24655, 2, "'0'"), -(24656, 0, "'2'"), -(24657, 0, "'9'"), -(24660, 1, "''"), -(24694, 80, "''"), -(24615, 0, "'| Rust (Called from JS via WASM) | 0.20s | ??? | B-Tree |n'"), -(24774, 80, "''"), -(24695, 0, "'| Rust (native) | 0.065s | 2.3 MB | B-Tree |n'"), -(24828, 1, "''"), -(24828, 0, "'2'"), -(22675, 2, "'o'"), -(22676, 0, "'r'"), -(22694, 0, "'?'"), -(23742, 0, "'.'"), -(23742, 1, "''"), -(23744, 217, "''"), -(23747, 6, "'C'"), -(23748, 0, "'R'"), -(23749, 0, "'D'"), -(23750, 0, "'T'"), -(23751, 0, "' '"), -(23752, 0, "'i'"), -(23753, 0, "'m'"), -(23754, 0, "'p'"), -(23755, 0, "'l'"), -(23756, 0, "'e'"), -(23757, 0, "'m'"), -(23758, 0, "'e'"), -(23759, 0, "'n'"), -(23760, 0, "'t'"), -(23761, 0, "'a'"), -(23762, 0, "'t'"), -(23763, 0, "'i'"), -(23764, 0, "'o'"), -(23765, 0, "'n'"), -(23766, 0, "' '"), -(23766, 1, "''"), -(23777, 0, "' '"), -(23778, 0, "'a'"), -(23779, 0, "'t'"), -(23780, 0, "' '"), -(23781, 0, "'t'"), -(23782, 0, "'h'"), -(23783, 0, "'i'"), -(23784, 0, "'s'"), -(23785, 0, "' '"), -(23786, 0, "'p'"), -(23787, 0, "'o'"), -(23788, 0, "'i'"), -(23789, 0, "'n'"), -(23790, 0, "'t'"), -(23902, 3, "' '"), -(23903, 0, "'a'"), -(23904, 0, "'n'"), -(23905, 0, "'d'"), -(23742, 0, "'n'"), -(23743, 0, "'-'"), -(23744, 0, "' '"), -(23745, 0, "'S'"), -(23746, 0, "'o'"), -(23747, 0, "'m'"), -(23748, 0, "'e'"), -(23749, 0, "'t'"), -(23750, 0, "'i'"), -(23751, 0, "'m'"), -(23752, 0, "'e'"), -(23753, 0, "'s'"), -(23754, 0, "' '"), -(23755, 0, "'w'"), -(23756, 0, "'e'"), -(23757, 0, "' '"), -(23743, 15, "''"), -(23742, 1, "''"), -(23742, 0, "'n'"), -(23743, 0, "'n'"), -(23744, 0, "'I'"), -(23745, 0, "'''"), -(23746, 0, "'m'"), -(23747, 0, "' '"), -(23748, 0, "'s'"), -(23749, 0, "'t'"), -(23750, 0, "'i'"), -(23751, 0, "'l'"), -(23752, 0, "'l'"), -(23753, 0, "' '"), -(23754, 0, "'n'"), -(23755, 0, "'o'"), -(23756, 0, "'t'"), -(23757, 0, "' '"), -(23758, 0, "'s'"), -(23759, 0, "'u'"), -(23760, 0, "'r'"), -(23761, 0, "'e'"), -(23762, 0, "' '"), -(23744, 19, "'I'm still not sure'"), -(23762, 0, "' '"), -(23763, 0, "'i'"), -(23764, 0, "'f'"), -(23765, 0, "' '"), -(23766, 0, "'I'"), -(23767, 0, "' '"), -(23768, 0, "'l'"), -(23769, 0, "'i'"), -(23770, 0, "'k'"), -(23771, 0, "'e'"), -(23772, 0, "' '"), -(23773, 0, "'t'"), -(23774, 0, "'h'"), -(23775, 0, "'i'"), -(23776, 0, "'s'"), -(23777, 0, "' '"), -(23778, 0, "'c'"), -(23779, 0, "'h'"), -(23780, 0, "'a'"), -(23781, 0, "'n'"), -(23782, 0, "'g'"), -(23783, 0, "'e'"), -(23784, 0, "'.'"), -(23763, 22, "'w'"), -(23764, 0, "'h'"), -(23765, 0, "'e'"), -(23766, 0, "'t'"), -(23767, 0, "'h'"), -(23768, 0, "'e'"), -(23769, 0, "'r'"), -(23770, 0, "' '"), -(23771, 0, "'I'"), -(23772, 0, "' '"), -(23773, 0, "'l'"), -(23774, 0, "'i'"), -(23775, 0, "'k'"), -(23776, 0, "'e'"), -(23777, 0, "' '"), -(23778, 0, "'t'"), -(23779, 0, "'h'"), -(23780, 0, "'i'"), -(23781, 0, "'s'"), -(23782, 0, "' '"), -(23783, 0, "'a'"), -(23784, 0, "'p'"), -(23785, 0, "'p'"), -(23786, 0, "'r'"), -(23787, 0, "'o'"), -(23788, 0, "'a'"), -(23789, 0, "'c'"), -(23790, 0, "'h'"), -(23791, 0, "'.'"), -(23635, 0, "' '"), -(23636, 0, "'I'"), -(23637, 0, "'t'"), -(23638, 0, "' '"), -(23639, 0, "'a'"), -(23640, 0, "'l'"), -(23641, 0, "'s'"), -(23642, 0, "'o'"), -(23643, 62, "''"), -(23643, 0, "' '"), -(23644, 0, "'i'"), -(23645, 0, "'n'"), -(23646, 0, "'c'"), -(23647, 0, "'r'"), -(23648, 0, "'e'"), -(23649, 0, "'a'"), -(23650, 0, "'s'"), -(23651, 0, "'e'"), -(23652, 0, "'s'"), -(23653, 0, "' '"), -(23654, 0, "'t'"), -(23655, 0, "'h'"), -(23656, 0, "'e'"), -(23657, 0, "' '"), -(23658, 0, "'s'"), -(23659, 0, "'i'"), -(23660, 0, "'z'"), -(23661, 0, "'e'"), -(23662, 0, "' '"), -(23663, 0, "'o'"), -(23664, 0, "'f'"), -(23665, 0, "' '"), -(23666, 0, "'t'"), -(23667, 0, "'h'"), -(23668, 0, "'e'"), -(23670, 1, "''"), -(23670, 3, "''"), -(23682, 10, "''"), -(23700, 0, "'.'"), -(23644, 9, "'d'"), -(23645, 0, "'o'"), -(23646, 0, "'u'"), -(23647, 0, "'b'"), -(23648, 0, "'l'"), -(23649, 0, "'e'"), -(23650, 0, "'s'"), -(23537, 5, "'W'"), -(23695, 0, "'n'"), -(23696, 0, "'-'"), -(23697, 0, "' '"), -(23698, 0, "'W'"), -(23699, 0, "'e'"), -(23700, 0, "' '"), -(23701, 0, "'s'"), -(23702, 0, "'o'"), -(23703, 0, "'m'"), -(23704, 0, "'e'"), -(23705, 0, "'t'"), -(23706, 0, "'i'"), -(23707, 0, "'m'"), -(23708, 0, "'e'"), -(23709, 0, "'s'"), -(23710, 0, "' '"), -(23711, 0, "'d'"), -(23712, 0, "'o'"), -(23713, 0, "'n'"), -(23714, 0, "'''"), -(23715, 0, "'t'"), -(23716, 0, "' '"), -(23717, 0, "'n'"), -(23718, 0, "'e'"), -(23719, 0, "'e'"), -(23720, 0, "'d'"), -(23721, 0, "' '"), -(23722, 0, "'t'"), -(23723, 0, "'h'"), -(23724, 0, "'e'"), -(23725, 0, "' '"), -(23726, 0, "'t'"), -(23727, 0, "'e'"), -(23728, 0, "'x'"), -(23729, 0, "'t'"), -(23730, 0, "' '"), -(23731, 0, "'c'"), -(23732, 0, "'o'"), -(23733, 0, "'n'"), -(23734, 0, "'t'"), -(23735, 0, "'e'"), -(23736, 0, "'n'"), -(23737, 0, "'t'"), -(23738, 0, "' '"), -(23739, 0, "'a'"), -(23740, 0, "'t'"), -(23741, 0, "' '"), -(23742, 0, "'a'"), -(23743, 0, "'l'"), -(23744, 0, "'l'"), -(23745, 0, "' '"), -(23746, 0, "'-'"), -(23747, 0, "' '"), -(23748, 0, "'l'"), -(23749, 0, "'i'"), -(23750, 0, "'k'"), -(23751, 0, "'e'"), -(23752, 0, "' '"), -(23753, 0, "'w'"), -(23754, 0, "'h'"), -(23755, 0, "'e'"), -(23756, 0, "'n'"), -(23698, 59, "''"), -(23698, 0, "'M'"), -(23699, 0, "'o'"), -(23700, 0, "'s'"), -(23701, 0, "'t'"), -(23702, 0, "' '"), -(23703, 0, "'a'"), -(23704, 0, "'p'"), -(23705, 0, "'p'"), -(23706, 0, "'l'"), -(23707, 0, "'i'"), -(23708, 0, "'c'"), -(23709, 0, "'a'"), -(23710, 0, "'t'"), -(23711, 0, "'i'"), -(23712, 0, "'o'"), -(23713, 0, "'n'"), -(23714, 0, "'s'"), -(23698, 17, "'T'"), -(23699, 0, "'h'"), -(23700, 0, "'e'"), -(23701, 0, "'r'"), -(23702, 0, "'e'"), -(23703, 0, "'''"), -(23704, 0, "'s'"), -(23705, 0, "' '"), -(23706, 0, "'a'"), -(23707, 0, "' '"), -(23708, 0, "'b'"), -(23709, 0, "'u'"), -(23710, 0, "'n'"), -(23711, 0, "'c'"), -(23712, 0, "'h'"), -(23713, 0, "' '"), -(23714, 0, "'o'"), -(23715, 0, "'f'"), -(23716, 0, "' '"), -(23717, 0, "'u'"), -(23718, 0, "'s'"), -(23719, 0, "'e'"), -(23720, 0, "' '"), -(23721, 0, "'c'"), -(23722, 0, "'a'"), -(23723, 0, "'s'"), -(23724, 0, "'e'"), -(23725, 0, "'s'"), -(23726, 0, "' '"), -(23727, 0, "'w'"), -(23728, 0, "'h'"), -(23729, 0, "'e'"), -(23730, 0, "'r'"), -(23731, 0, "'e'"), -(23732, 0, "' '"), -(23733, 0, "'d'"), -(23734, 0, "'o'"), -(23735, 0, "'n'"), -(23735, 1, "''"), -(23734, 1, "''"), -(23733, 1, "''"), -(23733, 0, "'w'"), -(23734, 0, "'e'"), -(23735, 0, "' '"), -(23736, 0, "'d'"), -(23737, 0, "'o'"), -(23738, 0, "'n'"), -(23739, 0, "'''"), -(23740, 0, "'t'"), -(23741, 0, "' '"), -(23696, 46, "'- There's a bunch of use cases where we don't'"), -(23157, 0, "' '"), -(23158, 0, "'d'"), -(23159, 0, "'o'"), -(23160, 0, "'e'"), -(23161, 0, "'s'"), -(23162, 0, "'n'"), -(23163, 0, "'''"), -(23164, 0, "'t'"), -(23165, 0, "' '"), -(23166, 0, "'l'"), -(23167, 0, "'i'"), -(23168, 0, "'v'"), -(23169, 0, "'e'"), -(23170, 0, "' '"), -(23171, 0, "'i'"), -(23172, 0, "'n'"), -(23173, 0, "' '"), -(23174, 0, "'t'"), -(23175, 0, "'h'"), -(23176, 0, "'e'"), -(23177, 0, "' '"), -(23178, 0, "'i'"), -(23179, 0, "'t'"), -(23180, 0, "'e'"), -(23181, 0, "'m'"), -(23182, 0, "'s'"), -(23178, 5, "'l'"), -(23179, 0, "'i'"), -(23180, 0, "'s'"), -(23181, 0, "'t'"), -(23182, 0, "' '"), -(23183, 0, "'o'"), -(23184, 0, "'f'"), -(23185, 0, "' '"), -(23186, 0, "'i'"), -(23187, 0, "'t'"), -(23188, 0, "'e'"), -(23189, 0, "'m'"), -(23190, 0, "'s'"), -(23191, 0, "' '"), -(23192, 0, "'a'"), -(23193, 0, "'n'"), -(23194, 0, "'y'"), -(23195, 0, "'m'"), -(23196, 0, "'o'"), -(23197, 0, "'r'"), -(23198, 0, "'e'"), -(23199, 0, "'.'"), -(23200, 0, "' '"), -(23201, 0, "'N'"), -(23202, 0, "'o'"), -(23203, 0, "'w'"), -(23204, 0, "' '"), -(23205, 0, "'i'"), -(23206, 0, "'t'"), -(23207, 0, "'s'"), -(23208, 25, "' '"), -(23209, 0, "'i'"), -(23210, 0, "'n'"), -(23211, 0, "' '"), -(23211, 1, "''"), -(23263, 0, "' '"), -(23264, 0, "'f'"), -(23265, 0, "'o'"), -(23266, 0, "'r'"), -(23267, 0, "' '"), -(23268, 0, "'t'"), -(23269, 0, "'h'"), -(23270, 0, "'i'"), -(23271, 0, "'s'"), -(23359, 0, "'w'"), -(23360, 0, "'h'"), -(23361, 0, "'i'"), -(23362, 0, "'c'"), -(23363, 0, "'h'"), -(23364, 0, "' '"), -(23365, 0, "'c'"), -(23366, 0, "'a'"), -(23366, 1, "''"), -(23365, 1, "''"), -(23364, 1, "''"), -(23363, 1, "''"), -(23362, 1, "''"), -(23361, 1, "''"), -(23360, 1, "''"), -(23359, 1, "''"), -(23358, 1, "''"), -(23358, 0, "' '"), -(23288, 34, "'https://crates.io/crates/ropey'"), -(23358, 12, "''"), -(23339, 0, "'e'"), -(23340, 0, "'t'"), -(23341, 0, "' '"), -(23341, 1, "''"), -(23340, 1, "''"), -(23339, 1, "''"), -(23339, 0, "'y'"), -(23340, 0, "'e'"), -(23341, 0, "'t'"), -(23342, 0, "' '"), -(23339, 4, "''"), -(23357, 0, "' '"), -(23358, 0, "'e'"), -(23359, 0, "'f'"), -(23360, 0, "'f'"), -(23361, 0, "'i'"), -(23362, 0, "'c'"), -(23363, 0, "'i'"), -(23364, 0, "'e'"), -(23365, 0, "'n'"), -(23366, 0, "'t'"), -(23367, 0, "'l'"), -(23368, 0, "'y'"), -(23376, 0, "' '"), -(23377, 0, "'t'"), -(23378, 0, "'h'"), -(23379, 0, "'e'"), -(23380, 0, "' '"), -(23381, 0, "'d'"), -(23382, 0, "'o'"), -(23383, 0, "'c'"), -(23384, 0, "'u'"), -(23385, 0, "'m'"), -(23386, 0, "'e'"), -(23387, 0, "'n'"), -(23388, 0, "'t'"), -(23389, 0, "'''"), -(23390, 0, "'s'"), -(23396, 8, "' '"), -(23397, 0, "'c'"), -(23398, 0, "'o'"), -(23399, 0, "'n'"), -(23400, 0, "'t'"), -(23401, 0, "'e'"), -(23402, 0, "'n'"), -(23403, 0, "'t'"), -(23583, 0, "' '"), -(23584, 0, "'('"), -(23585, 0, "'R'"), -(23586, 0, "'o'"), -(23587, 0, "'p'"), -(23588, 0, "'e'"), -(23589, 0, "'y'"), -(23590, 0, "' '"), -(23591, 0, "'o'"), -(23592, 0, "'n'"), -(23593, 0, "'l'"), -(23594, 0, "'y'"), -(23595, 0, "' '"), -(23596, 0, "'u'"), -(23597, 0, "'s'"), -(23598, 0, "'e'"), -(23599, 0, "'s'"), -(23600, 0, "' '"), -(23601, 0, "'2'"), -(23602, 0, "'0'"), -(23603, 0, "'0'"), -(23604, 0, "'k'"), -(23605, 0, "'b'"), -(23606, 0, "' '"), -(23607, 0, "'f'"), -(23608, 0, "'o'"), -(23609, 0, "'r'"), -(23610, 0, "' '"), -(23611, 0, "'t'"), -(23612, 0, "'h'"), -(23613, 0, "'e'"), -(23614, 0, "' '"), -(23607, 8, "'t'"), -(23608, 0, "'o'"), -(23609, 0, "' '"), -(23610, 0, "'s'"), -(23611, 0, "'t'"), -(23612, 0, "'o'"), -(23613, 0, "'r'"), -(23614, 0, "'e'"), -(23615, 0, "' '"), -(23616, 0, "'t'"), -(23617, 0, "'h'"), -(23618, 0, "'e'"), -(23619, 0, "' '"), -(23620, 0, "'w'"), -(23621, 0, "'h'"), -(23622, 0, "'o'"), -(23623, 0, "'l'"), -(23624, 0, "'e'"), -(23625, 0, "' '"), -(23626, 0, "'d'"), -(23627, 0, "'o'"), -(23628, 0, "'c'"), -(23629, 0, "'u'"), -(23630, 0, "'m'"), -(23631, 0, "'e'"), -(23632, 0, "'n'"), -(23633, 0, "'t'"), -(23634, 0, "' '"), -(23635, 0, "'-'"), -(23636, 0, "' '"), -(23637, 0, "'i'"), -(23638, 0, "'t'"), -(23639, 0, "'s'"), -(23640, 0, "' '"), -(23641, 0, "'w'"), -(23642, 0, "'a'"), -(23643, 0, "'y'"), -(23644, 0, "' '"), -(23645, 0, "'m'"), -(23646, 0, "'o'"), -(23647, 0, "'r'"), -(23648, 0, "'e'"), -(23649, 0, "' '"), -(23650, 0, "'e'"), -(23651, 0, "'f'"), -(23652, 0, "'f'"), -(23653, 0, "'i'"), -(23654, 0, "'c'"), -(23655, 0, "'i'"), -(23656, 0, "'e'"), -(23657, 0, "'n'"), -(23658, 0, "'t'"), -(23659, 0, "' '"), -(23660, 0, "'t'"), -(23661, 0, "'h'"), -(23662, 0, "'a'"), -(23663, 0, "'n'"), -(23645, 19, "'t'"), -(23646, 0, "'i'"), -(23647, 0, "'g'"), -(23648, 0, "'h'"), -(23649, 0, "'t'"), -(23650, 0, "'e'"), -(23651, 0, "'r'"), -(23652, 0, "' '"), -(23653, 0, "'t'"), -(23654, 0, "'h'"), -(23655, 0, "'a'"), -(23656, 0, "'n'"), -(23657, 0, "' '"), -(23658, 0, "'m'"), -(23659, 0, "'y'"), -(23660, 0, "' '"), -(23661, 0, "'c'"), -(23662, 0, "'o'"), -(23663, 0, "'d'"), -(23664, 0, "'e'"), -(23665, 0, "'!'"), -(23666, 0, "')'"), -(23641, 0, "'a'"), -(23642, 0, "'p'"), -(23643, 0, "'p'"), -(23644, 0, "'a'"), -(23645, 0, "'r'"), -(23646, 0, "'e'"), -(23647, 0, "'n'"), -(23648, 0, "'t'"), -(23649, 0, "'l'"), -(23650, 0, "'y'"), -(23651, 0, "' '"), -(23583, 95, "''"), -(23543, 13, "'p'"), -(23544, 0, "'a'"), -(23545, 0, "'c'"), -(23546, 0, "'k'"), -(23547, 0, "'i'"), -(23548, 0, "'n'"), -(23549, 0, "'g'"), -(23543, 0, "'b'"), -(23544, 0, "'y'"), -(23545, 0, "'t'"), -(23546, 0, "'e'"), -(23547, 0, "' '"), -(23600, 0, "'l'"), -(23601, 0, "'i'"), -(23602, 0, "'k'"), -(23603, 0, "'e'"), -(23604, 0, "' '"), -(23605, 0, "'t'"), -(23606, 0, "'h'"), -(23607, 0, "'i'"), -(23608, 0, "'s'"), -(23609, 0, "' '"), -(23764, 10, "'s'"), -(23765, 0, "'o'"), -(23766, 0, "'m'"), -(23767, 0, "'e'"), -(23793, 0, "' '"), -(23794, 0, "'c'"), -(23795, 0, "'a'"), -(23796, 0, "'r'"), -(23797, 0, "'e'"), -(23798, 0, "' '"), -(23799, 0, "'a'"), -(23800, 0, "'b'"), -(23801, 0, "'o'"), -(23802, 0, "'u'"), -(23803, 0, "'t'"), -(23804, 0, "' '"), -(23805, 0, "'t'"), -(23806, 0, "'h'"), -(23807, 0, "'e'"), -(23808, 0, "' '"), -(23809, 0, "'d'"), -(23810, 0, "'o'"), -(23811, 0, "'c'"), -(23812, 0, "'u'"), -(23813, 0, "'m'"), -(23814, 0, "'e'"), -(23815, 0, "'n'"), -(23816, 0, "'t'"), -(23817, 0, "'''"), -(23818, 0, "'s'"), -(23819, 0, "' '"), -(23820, 0, "'c'"), -(23821, 0, "'o'"), -(23822, 0, "'n'"), -(23823, 0, "'t'"), -(23824, 0, "'e'"), -(23825, 0, "'n'"), -(23826, 0, "'t'"), -(23827, 0, "'s'"), -(23828, 0, "'.'"), -(23828, 0, "' '"), -(23829, 0, "'a'"), -(23830, 0, "'n'"), -(23831, 0, "'y'"), -(23832, 0, "'w'"), -(23833, 0, "'a'"), -(23834, 0, "'y'"), -(23753, 83, "''"), -(23805, 0, "'B'"), -(23806, 0, "'u'"), -(23807, 0, "'t'"), -(23808, 0, "' '"), -(23809, 1, "''"), -(23809, 0, "'m'"), -(23967, 0, "'?'"), -(23968, 12, "' '"), -(23969, 0, "'H'"), -(23970, 0, "'o'"), -(23971, 0, "'w'"), -(23978, 0, "'c'"), -(23979, 0, "'a'"), -(23980, 0, "'n'"), -(23981, 0, "' '"), -(24659, 1, "''"), -(24659, 0, "'R'"), -(24659, 1, "''"), -(24659, 0, "'r'"), -(24072, 4, "'C'"), -(24073, 0, "'R'"), -(24074, 0, "'D'"), -(24075, 0, "'T'"), -(24925, 0, "'n'"), -(24926, 0, "'('"), -(24926, 1, "''"), -(24926, 0, "'('"), -(24927, 0, "'W'"), -(24928, 0, "'h'"), -(24929, 0, "'y'"), -(24930, 0, "' '"), -(24931, 0, "'i'"), -(24932, 0, "'s'"), -(24933, 0, "' '"), -(24934, 0, "'i'"), -(24935, 0, "'t'"), -(24936, 0, "' '"), -(24937, 0, "'s'"), -(24938, 0, "'l'"), -(24939, 0, "'o'"), -(24940, 0, "'w'"), -(24941, 0, "'e'"), -(24942, 0, "'r'"), -(24931, 12, "'d'"), -(24931, 1, "'is it slower'"), -(24937, 6, "'f'"), -(24938, 0, "'a'"), -(24939, 0, "'s'"), -(24940, 0, "'t'"), -(24941, 0, "'e'"), -(24942, 0, "'r'"), -(24943, 0, "' '"), -(24944, 0, "'t'"), -(24945, 0, "'o'"), -(24946, 0, "' '"), -(24931, 16, "'d'"), -(24932, 0, "'o'"), -(24933, 0, "'n'"), -(24934, 0, "'''"), -(24935, 0, "'t'"), -(24936, 0, "' '"), -(24927, 10, "'W'"), -(24928, 0, "'e'"), -(24929, 0, "'i'"), -(24930, 0, "'r'"), -(24931, 0, "'d'"), -(24932, 0, "' '"), -(24933, 0, "'-'"), -(24934, 0, "' '"), -(24935, 0, "'2'"), -(24936, 0, "'9'"), -(24937, 0, "'m'"), -(24938, 0, "'s'"), -(24939, 0, "' '"), -(24940, 0, "'+'"), -(24941, 0, "' '"), -(24942, 0, "'2'"), -(24943, 0, "'3'"), -(24944, 0, "'m'"), -(24945, 0, "'s'"), -(24946, 0, "' '"), -(24947, 0, "'!'"), -(24948, 0, "' '"), -(24948, 1, "''"), -(24948, 0, "'='"), -(24949, 0, "' '"), -(24950, 0, "'6'"), -(24951, 0, "'5'"), -(24952, 0, "'m'"), -(24953, 0, "'s'"), -(24954, 0, "'.'"), -(24955, 0, "' '"), -(24956, 0, "'I'"), -(24957, 0, "' '"), -(24958, 0, "'w'"), -(24959, 0, "'o'"), -(24960, 0, "'n'"), -(24961, 0, "'d'"), -(24962, 0, "'e'"), -(24963, 0, "'r'"), -(24964, 0, "' '"), -(24965, 0, "'i'"), -(24966, 0, "'f'"), -(24967, 0, "' '"), -(24968, 0, "'i'"), -(24969, 0, "'t'"), -(24970, 0, "'s'"), -(24971, 0, "' '"), -(24971, 1, "''"), -(24971, 0, "' '"), -(24956, 16, "'W'"), -(24957, 0, "'e'"), -(24958, 0, "'''"), -(24959, 0, "'r'"), -(24960, 0, "'e'"), -(24961, 0, "' '"), -(24926, 1, "''"), -(24926, 0, "'O'"), -(24927, 0, "'h'"), -(24928, 0, "' '"), -(24929, 0, "'l'"), -(24930, 0, "'o'"), -(24931, 0, "'o'"), -(24932, 0, "'k'"), -(24933, 5, "''"), -(24926, 37, "'Oh look - 29ms + 23ms != 65ms. We're'"), -(24906, 17, "' '"), -(24907, 0, "'m'"), -(24908, 0, "'a'"), -(24909, 0, "'k'"), -(24910, 0, "'e'"), -(24911, 0, "' '"), -(24912, 0, "'t'"), -(24913, 0, "'h'"), -(24914, 0, "'e'"), -(24915, 0, "' '"), -(24916, 0, "'c'"), -(24917, 0, "'o'"), -(24918, 0, "'m'"), -(24919, 0, "'p'"), -(24920, 0, "'u'"), -(24921, 0, "'t'"), -(24922, 0, "'e'"), -(24923, 0, "'r'"), -(24924, 0, "' '"), -(24925, 0, "'d'"), -(24926, 0, "'o'"), -(24927, 0, "' '"), -(24928, 0, "'l'"), -(24929, 0, "'e'"), -(24930, 0, "'s'"), -(24931, 0, "'s'"), -(24932, 0, "' '"), -(24933, 0, "'w'"), -(24934, 0, "'o'"), -(24935, 0, "'r'"), -(24936, 0, "'k'"), -(24938, 0, "'n'"), -(24939, 0, "'n'"), -(24940, 0, "'A'"), -(24941, 0, "'n'"), -(24942, 0, "'d'"), -(24943, 0, "' '"), -(24944, 0, "'j'"), -(24945, 0, "'u'"), -(24946, 0, "'s'"), -(24947, 0, "'t'"), -(24948, 0, "' '"), -(24949, 0, "'t'"), -(24950, 0, "'o'"), -(24951, 0, "' '"), -(24940, 12, "''"), -(24939, 1, "''"), -(24938, 1, "''"), -(24976, 0, "' '"), -(24977, 0, "'p'"), -(24978, 0, "'r'"), -(24979, 0, "'o'"), -(24980, 0, "'b'"), -(24981, 0, "'a'"), -(24982, 0, "'b'"), -(24983, 0, "'l'"), -(24984, 0, "'y'"), -(24985, 0, "' '"), -(24986, 0, "'f'"), -(24987, 0, "'i'"), -(24988, 0, "'l'"), -(24989, 0, "'l'"), -(24971, 19, "'I'"), -(24972, 0, "' '"), -(24971, 2, "'I'"), -(24972, 0, "'''"), -(24973, 0, "'m'"), -(24974, 0, "' '"), -(24975, 0, "'p'"), -(24976, 0, "'r'"), -(24977, 0, "'o'"), -(24978, 0, "'b'"), -(24979, 0, "'a'"), -(24980, 0, "'b'"), -(24981, 0, "'l'"), -(24982, 0, "'y'"), -(24983, 0, "' '"), -(24984, 0, "'t'"), -(24985, 0, "'h'"), -(24986, 0, "'r'"), -(24987, 0, "'a'"), -(24988, 0, "'s'"), -(24989, 0, "'h'"), -(24990, 0, "'i'"), -(24991, 0, "'n'"), -(24992, 0, "'g'"), -(24993, 0, "' '"), -(24994, 0, "'t'"), -(24995, 0, "'h'"), -(24996, 0, "'e'"), -(24997, 0, "' '"), -(24998, 0, "'c'"), -(24999, 0, "'P'"), -(25000, 0, "'U'"), -(25001, 0, "' '"), -(25002, 0, "'c'"), -(25002, 1, "''"), -(25001, 1, "''"), -(25000, 1, "''"), -(24999, 1, "''"), -(24998, 1, "''"), -(24998, 0, "'C'"), -(24999, 0, "'P'"), -(25000, 0, "'U'"), -(25001, 0, "'''"), -(25002, 0, "'s'"), -(25003, 0, "' '"), -(25004, 0, "'c'"), -(25005, 0, "'a'"), -(25006, 0, "'c'"), -(25007, 0, "'h'"), -(25008, 0, "'e'"), -(25009, 0, "' '"), -(25010, 0, "'i'"), -(25011, 0, "'n'"), -(25012, 0, "'s'"), -(25013, 0, "'e'"), -(25014, 0, "'r'"), -(25015, 0, "'t'"), -(25016, 0, "'i'"), -(25017, 0, "'n'"), -(25018, 0, "'g'"), -(25019, 0, "' '"), -(25020, 0, "'o'"), -(25021, 0, "'n'"), -(25022, 0, "'e'"), -(25023, 0, "' '"), -(25024, 0, "'c'"), -(25025, 0, "'h'"), -(25026, 0, "'a'"), -(25027, 0, "'r'"), -(25028, 0, "'a'"), -(25029, 0, "'c'"), -(25030, 0, "'t'"), -(25031, 0, "'e'"), -(25032, 0, "'r'"), -(25033, 0, "' '"), -(25034, 0, "'a'"), -(25035, 0, "'t'"), -(25036, 0, "' '"), -(25037, 0, "'a'"), -(25038, 0, "' '"), -(25039, 0, "'t'"), -(25040, 0, "'i'"), -(25041, 0, "'m'"), -(25042, 0, "'e'"), -(25010, 0, "'b'"), -(25011, 0, "'y'"), -(25012, 0, "' '"), -(25013, 0, "'p'"), -(25014, 0, "'r'"), -(25015, 0, "'o'"), -(25016, 0, "'c'"), -(25017, 0, "'e'"), -(25018, 0, "'s'"), -(25019, 0, "'s'"), -(25020, 0, "'i'"), -(25021, 0, "'n'"), -(25022, 0, "'g'"), -(25023, 0, "' '"), -(25024, 10, "''"), -(25027, 10, "' '"), -(25028, 0, "'e'"), -(25029, 0, "'d'"), -(25030, 0, "'i'"), -(25031, 0, "'t'"), -(24970, 72, "''"), -(24970, 0, "' '"), -(24971, 0, "'I'"), -(24972, 0, "'t'"), -(24973, 0, "' '"), -(24974, 0, "'l'"), -(24975, 0, "'o'"), -(24976, 0, "'o'"), -(24977, 0, "'k'"), -(24971, 7, "'I'"), -(24972, 0, "' '"), -(24973, 0, "'c'"), -(24974, 0, "'a'"), -(24975, 0, "'n'"), -(24976, 0, "' '"), -(24973, 4, "'s'"), -(24974, 0, "'m'"), -(24975, 0, "'e'"), -(24976, 0, "'l'"), -(24977, 0, "'l'"), -(24978, 0, "' '"), -(24979, 0, "'m'"), -(24980, 0, "'o'"), -(24981, 0, "'r'"), -(24982, 0, "'e'"), -(24979, 4, "'f'"), -(24980, 0, "'a'"), -(24981, 0, "'s'"), -(24982, 0, "'t'"), -(24983, 0, "'e'"), -(24984, 0, "'r'"), -(24985, 0, "' '"), -(24986, 0, "'p'"), -(24987, 0, "'e'"), -(24988, 0, "'r'"), -(24989, 0, "'f'"), -(24990, 0, "'o'"), -(24991, 0, "'r'"), -(24992, 0, "'m'"), -(24993, 0, "'a'"), -(24994, 0, "'n'"), -(24995, 0, "'c'"), -(24996, 0, "'e'"), -(24997, 0, "' '"), -(24979, 19, "'o'"), -(24980, 0, "'p'"), -(24981, 0, "'p'"), -(24982, 0, "'p'"), -(24983, 0, "'o'"), -(24983, 1, "''"), -(24982, 1, "''"), -(24982, 0, "'o'"), -(24983, 0, "'r'"), -(24984, 0, "'t'"), -(24985, 0, "'u'"), -(24986, 0, "'n'"), -(24987, 0, "'i'"), -(24988, 0, "'t'"), -(24989, 0, "'i'"), -(24990, 0, "'e'"), -(24991, 0, "'s'"), -(24992, 0, "' '"), -(24993, 0, "'f'"), -(24994, 0, "'o'"), -(24995, 0, "'r'"), -(24996, 0, "' '"), -(24997, 0, "'e'"), -(24998, 0, "'v'"), -(24999, 0, "'e'"), -(25000, 0, "'n'"), -(25001, 0, "' '"), -(25002, 0, "'m'"), -(25003, 0, "'o'"), -(25004, 0, "'r'"), -(25005, 0, "'e'"), -(25006, 0, "' '"), -(25007, 0, "'p'"), -(25008, 0, "'e'"), -(25009, 0, "'r'"), -(25010, 0, "'f'"), -(25011, 0, "'o'"), -(25012, 0, "'r'"), -(25013, 0, "'m'"), -(25014, 0, "'a'"), -(25015, 0, "'n'"), -(25016, 0, "'c'"), -(25017, 0, "'e'"), -(25018, 0, "'.'"), -(24979, 27, "'a'"), -(24980, 0, "' '"), -(24981, 0, "'b'"), -(24982, 0, "'a'"), -(24983, 0, "'t'"), -(24984, 0, "'c'"), -(24985, 0, "'h'"), -(24986, 0, "'_'"), -(24987, 0, "'u'"), -(24988, 0, "'p'"), -(24989, 0, "'d'"), -(24990, 0, "'a'"), -(24991, 0, "'t'"), -(24992, 0, "'e'"), -(24993, 0, "'('"), -(24994, 0, "')'"), -(24995, 0, "' '"), -(24996, 0, "'m'"), -(24997, 0, "'e'"), -(24998, 0, "'t'"), -(24999, 0, "'h'"), -(25000, 0, "'o'"), -(25001, 0, "'d'"), -(25002, 0, "'s'"), -(25003, 0, "' '"), -(25003, 1, "''"), -(25002, 1, "''"), -(25002, 0, "' '"), -(25003, 0, "'w'"), -(25004, 0, "'i'"), -(25005, 0, "'t'"), -(25006, 0, "'h'"), -(25007, 0, "' '"), -(25008, 0, "'f'"), -(25009, 0, "'a'"), -(25010, 0, "'s'"), -(25011, 0, "'t'"), -(25012, 0, "'e'"), -(25013, 0, "'r'"), -(24971, 9, "'I'"), -(24972, 0, "'t'"), -(24973, 0, "' '"), -(24974, 0, "'l'"), -(24975, 0, "'o'"), -(24976, 0, "'o'"), -(24977, 0, "'k'"), -(24978, 0, "'s'"), -(24979, 0, "' '"), -(24980, 0, "'l'"), -(24981, 0, "'i'"), -(24982, 0, "'k'"), -(24983, 0, "'e'"), -(24984, 0, "' '"), -(24985, 0, "'a'"), -(25009, 4, "'w'"), -(25010, 0, "'o'"), -(25011, 0, "'u'"), -(25012, 0, "'l'"), -(25013, 0, "'d'"), -(25014, 0, "' '"), -(25015, 0, "'h'"), -(25016, 0, "'a'"), -(25017, 0, "'v'"), -(25018, 0, "'e'"), -(25019, 0, "' '"), -(25020, 0, "'e'"), -(25021, 0, "'v'"), -(25022, 0, "'e'"), -(25023, 0, "'n'"), -(24971, 16, "'I'"), -(24972, 0, "' '"), -(24973, 0, "'s'"), -(24974, 0, "'m'"), -(24975, 0, "'e'"), -(24976, 0, "'l'"), -(24977, 0, "'l'"), -(24978, 0, "' '"), -(24979, 0, "'a'"), -(24980, 0, "' '"), -(24981, 0, "'*'"), -(24996, 0, "'*'"), -(25004, 0, "' '"), -(25005, 0, "'i'"), -(25006, 0, "'n'"), -(25007, 0, "' '"), -(25008, 0, "'m'"), -(25009, 0, "'y'"), -(25010, 0, "' '"), -(25011, 0, "'f'"), -(25012, 0, "'u'"), -(25013, 0, "'t'"), -(25014, 0, "'u'"), -(25015, 0, "'r'"), -(25016, 0, "'e'"), -(25017, 35, "''"), -(25017, 0, "' '"), -(25018, 0, "'w'"), -(25019, 0, "'i'"), -(25020, 0, "'t'"), -(25021, 0, "'h'"), -(25022, 0, "' '"), -(25023, 0, "'*'"), -(25024, 0, "'a'"), -(25025, 0, "'n'"), -(25026, 0, "'o'"), -(25027, 0, "'t'"), -(25028, 0, "'h'"), -(25029, 0, "'e'"), -(25030, 0, "'r'"), -(25031, 0, "'*'"), -(25032, 0, "' '"), -(25033, 0, "'2'"), -(25034, 0, "'0'"), -(25018, 17, "'w'"), -(25019, 0, "'h'"), -(25020, 0, "'i'"), -(25021, 0, "'c'"), -(25022, 0, "'h'"), -(25023, 0, "' '"), -(25024, 0, "'c'"), -(25025, 0, "'a'"), -(25026, 0, "'n'"), -(25027, 0, "' '"), -(25028, 0, "'p'"), -(25029, 0, "'r'"), -(25030, 0, "'o'"), -(25031, 0, "'c'"), -(25032, 0, "'e'"), -(25033, 0, "'s'"), -(25034, 0, "'s'"), -(25035, 0, "' '"), -(25036, 0, "'t'"), -(25037, 0, "'h'"), -(25038, 0, "'i'"), -(25039, 0, "'s'"), -(25040, 0, "' '"), -(25041, 0, "'t'"), -(25042, 0, "'r'"), -(25043, 0, "'a'"), -(25044, 0, "'c'"), -(25045, 0, "'e'"), -(25046, 0, "' '"), -(25047, 0, "'i'"), -(25048, 0, "'n'"), -(25049, 0, "' '"), -(25050, 0, "'5'"), -(25051, 0, "'2'"), -(25052, 0, "'m'"), -(25053, 0, "'s'"), -(25055, 0, "'n'"), -(25046, 0, "','"), -(25047, 0, "' '"), -(25048, 0, "'r'"), -(25049, 0, "'o'"), -(25050, 0, "'p'"), -(25051, 0, "'e'"), -(25052, 0, "' '"), -(25053, 0, "'a'"), -(25054, 0, "'n'"), -(25055, 0, "'d'"), -(25056, 0, "' '"), -(25057, 0, "'a'"), -(25058, 0, "'l'"), -(25059, 0, "'l'"), -(25060, 0, "','"), -(25272, 5, "''"), -(25292, 1, "''"), -(25292, 0, "' '"), -(25293, 0, "'-'"), -(25295, 1, "''"), -(25295, 7, "''"), -(25317, 0, "'t'"), -(25318, 0, "'y'"), -(25319, 14, "''"), -(25358, 19, "''"), -(25380, 1, "''"), -(25380, 0, "'W'"), -(25385, 6, "'r'"), -(25386, 0, "'e'"), -(25387, 0, "'a'"), -(25388, 0, "'l'"), -(25389, 0, "'l'"), -(25390, 0, "'y'"), -(25391, 0, "' '"), -(25392, 0, "'n'"), -(25393, 0, "'e'"), -(25394, 0, "'e'"), -(25395, 0, "'d'"), -(25396, 0, "'e'"), -(25397, 0, "'d'"), -(25425, 3, "''"), -(25431, 6, "'s'"), -(25432, 0, "'u'"), -(25433, 0, "'p'"), -(25434, 0, "'e'"), -(25435, 0, "'r'"), -(25465, 0, "'C'"), -(25466, 0, "'R'"), -(25467, 0, "'D'"), -(25468, 0, "'T'"), -(25469, 0, "'s'"), -(25470, 0, "' '"), -(25471, 0, "'s'"), -(25472, 0, "'t'"), -(25473, 0, "'a'"), -(25474, 0, "'r'"), -(25475, 0, "'t'"), -(25476, 0, "'e'"), -(25477, 0, "'d'"), -(25478, 0, "' '"), -(25479, 0, "'t'"), -(25480, 0, "'o'"), -(25481, 0, "' '"), -(25482, 0, "'e'"), -(25483, 0, "'m'"), -(25484, 0, "'e'"), -(25485, 0, "'r'"), -(25486, 0, "'g'"), -(25487, 0, "'e'"), -(25488, 0, "'.'"), -(25489, 3, "''"), -(25601, 0, "' '"), -(25602, 0, "'w'"), -(25603, 0, "'e'"), -(25604, 0, "'r'"), -(25605, 0, "'e'"), -(25606, 0, "'a'"), -(25607, 0, "' '"), -(25607, 1, "''"), -(25606, 1, "''"), -(25606, 0, "' '"), -(25607, 0, "'a'"), -(25608, 0, "' '"), -(25609, 0, "'b'"), -(25610, 0, "'i'"), -(25611, 0, "'g'"), -(25612, 0, "' '"), -(25613, 0, "'d'"), -(25614, 0, "'e'"), -(25615, 0, "'a'"), -(25616, 0, "'l'"), -(25617, 0, "' '"), -(25618, 0, "'-'"), -(25619, 0, "' '"), -(25620, 0, "'a'"), -(25621, 0, "'n'"), -(25622, 0, "'d'"), -(25623, 0, "' '"), -(25624, 0, "'t'"), -(25625, 0, "'h'"), -(25626, 0, "'e'"), -(25627, 0, "'y'"), -(25628, 0, "'''"), -(25629, 0, "'r'"), -(25630, 0, "'e'"), -(25631, 15, "''"), -(25644, 0, "' '"), -(25645, 0, "'n'"), -(25646, 0, "'o'"), -(25647, 0, "'1'"), -(25647, 1, "''"), -(25647, 0, "'w'"), -(25648, 0, "'!'"), -(25649, 1, "''"), -(25617, 31, "''"), -(25602, 4, "'s'"), -(25603, 0, "'e'"), -(25604, 0, "'e'"), -(25605, 0, "'m'"), -(25606, 0, "'d'"), -(25606, 1, "''"), -(25606, 0, "'e'"), -(25607, 0, "'d'"), -(25608, 0, "' '"), -(25609, 0, "'l'"), -(25610, 0, "'i'"), -(25611, 0, "'k'"), -(25612, 0, "'e'"), -(25741, 0, "'l'"), -(25742, 0, "'y'"), -(25773, 18, "''"), -(25754, 19, "'p'"), -(25755, 0, "'r'"), -(25756, 0, "'e'"), -(25757, 0, "'t'"), -(25758, 0, "'t'"), -(25759, 0, "'y'"), -(25760, 0, "' '"), -(25761, 0, "'u'"), -(25762, 0, "'n'"), -(25763, 0, "'i'"), -(25763, 1, "''"), -(25763, 0, "'u'"), -(25764, 0, "'s'"), -(25765, 0, "'a'"), -(25766, 0, "'b'"), -(25767, 0, "'l'"), -(25768, 0, "'e'"), -(25769, 0, "' '"), -(25770, 0, "'f'"), -(25771, 0, "'o'"), -(25772, 0, "'r'"), -(25773, 0, "' '"), -(25774, 0, "'r'"), -(25775, 0, "'e'"), -(25776, 0, "'a'"), -(25777, 0, "'l'"), -(25778, 0, "' '"), -(25779, 0, "'w'"), -(25780, 0, "'o'"), -(25781, 0, "'r'"), -(25782, 0, "'l'"), -(25783, 0, "'d'"), -(25784, 0, "' '"), -(25785, 0, "'e'"), -(25786, 0, "'d'"), -(25787, 0, "'i'"), -(25788, 0, "'t'"), -(25789, 0, "'i'"), -(25790, 0, "'n'"), -(25791, 0, "'g'"), -(25793, 1, "''"), -(25792, 1, "''"), -(25792, 0, "','"), -(25792, 1, "''"), -(25792, 0, "'.'"), -(25793, 0, "' '"), -(25795, 1, "''"), -(25794, 1, "''"), -(25794, 0, "'A'"), -(25799, 0, "' '"), -(25800, 0, "'m'"), -(25801, 0, "'a'"), -(25802, 0, "'d'"), -(25803, 0, "'e'"), -(25804, 0, "' '"), -(25805, 0, "'a'"), -(25806, 0, "' '"), -(25800, 7, "''"), -(25799, 1, "''"), -(25799, 0, "' '"), -(25800, 0, "'m'"), -(25801, 0, "'a'"), -(25802, 0, "'d'"), -(25803, 0, "'e'"), -(25804, 0, "' '"), -(25805, 0, "'a'"), -(25806, 0, "' '"), -(25807, 0, "'b'"), -(25808, 0, "'i'"), -(25809, 0, "'g'"), -(25810, 0, "' '"), -(25811, 0, "'m'"), -(25812, 0, "'i'"), -(25813, 0, "'s'"), -(25814, 0, "'t'"), -(25815, 0, "'a'"), -(25816, 0, "'k'"), -(25817, 0, "'e'"), -(25818, 0, "' '"), -(25819, 0, "'-'"), -(25820, 0, "' '"), -(25821, 0, "'I'"), -(25823, 7, "'a'"), -(25824, 0, "'s'"), -(25825, 0, "'s'"), -(25826, 0, "'u'"), -(25827, 0, "'m'"), -(25828, 0, "'e'"), -(25829, 0, "'d'"), -(25887, 5, "'S'"), -(25924, 48, "''"), -(24970, 0, "' '"), -(24971, 0, "'T'"), -(24972, 0, "'h'"), -(24973, 0, "'e'"), -(24974, 0, "' '"), -(24975, 0, "'r'"), -(24976, 0, "'e'"), -(24977, 0, "'a'"), -(24978, 0, "'s'"), -(24979, 0, "'o'"), -(24980, 0, "'n'"), -(24947, 0, "' '"), -(24948, 0, "'a'"), -(24949, 0, "'t'"), -(24950, 0, "' '"), -(24951, 0, "'t'"), -(24952, 0, "'h'"), -(24953, 0, "'o'"), -(24954, 0, "'s'"), -(24955, 0, "'e'"), -(24956, 0, "' '"), -(24957, 0, "'l'"), -(24958, 0, "'a'"), -(24959, 0, "'s'"), -(24960, 0, "'t'"), -(24961, 0, "' '"), -(24962, 0, "'t'"), -(24963, 0, "'h'"), -(24964, 0, "'r'"), -(24965, 0, "'e'"), -(24966, 0, "'e'"), -(24967, 0, "' '"), -(24968, 0, "'r'"), -(24969, 0, "'o'"), -(24970, 0, "'w'"), -(24971, 0, "'s'"), -(24988, 1, "''"), -(24987, 1, "''"), -(24987, 0, "'i'"), -(24988, 0, "'s'"), -(24989, 0, "' '"), -(24990, 0, "'l'"), -(24991, 0, "'e'"), -(24992, 0, "'s'"), -(24993, 0, "'s'"), -(24994, 0, "' '"), -(24995, 0, "'t'"), -(24996, 0, "'h'"), -(24997, 0, "'a'"), -(24998, 0, "'n'"), -(24978, 1, "''"), -(24977, 1, "''"), -(24983, 1, "''"), -(24982, 1, "''"), -(24999, 1, "''"), -(24998, 1, "''"), -(24983, 12, "''"), -(24983, 0, "'<'"), -(24973, 1, "''"), -(24972, 1, "''"), -(24972, 0, "'!'"), -(24987, 0, "' '"), -(24988, 0, "'W'"), -(24989, 0, "'e'"), -(24990, 0, "'''"), -(24991, 0, "'r'"), -(24992, 0, "'e'"), -(24993, 0, "' '"), -(24994, 0, "'p'"), -(24995, 0, "'r'"), -(24996, 0, "'o'"), -(24997, 0, "'b'"), -(24998, 0, "'a'"), -(24999, 0, "'b'"), -(25000, 0, "'l'"), -(25001, 0, "'y'"), -(25002, 0, "' '"), -(25003, 0, "'s'"), -(25004, 0, "'e'"), -(25005, 0, "'e'"), -(25006, 0, "'i'"), -(25007, 0, "'n'"), -(25008, 0, "'g'"), -(25009, 0, "' '"), -(25010, 0, "'t'"), -(24988, 23, "'T'"), -(24989, 0, "'h'"), -(24990, 0, "'e'"), -(24991, 0, "'r'"), -(24992, 0, "'e'"), -(24993, 0, "'''"), -(24994, 0, "'s'"), -(24995, 0, "' '"), -(24988, 8, "'I'"), -(24989, 0, "'''"), -(24990, 0, "'m'"), -(24991, 0, "' '"), -(24992, 0, "'p'"), -(24993, 0, "'r'"), -(24994, 0, "'o'"), -(24995, 0, "'b'"), -(24996, 0, "'a'"), -(24997, 0, "'b'"), -(24998, 0, "'l'"), -(24999, 0, "'y'"), -(25000, 0, "' '"), -(25001, 0, "'t'"), -(25002, 0, "'h'"), -(25003, 0, "'r'"), -(25004, 0, "'a'"), -(25005, 0, "'s'"), -(25006, 0, "'h'"), -(25007, 0, "'i'"), -(25008, 0, "'n'"), -(25009, 0, "'g'"), -(25010, 0, "' '"), -(25011, 0, "'t'"), -(25012, 0, "'h'"), -(25013, 0, "'e'"), -(25014, 0, "' '"), -(25015, 0, "'C'"), -(25016, 0, "'P'"), -(25017, 0, "'U'"), -(25018, 0, "' '"), -(25019, 0, "'c'"), -(25020, 0, "'a'"), -(25021, 0, "'c'"), -(25022, 0, "'h'"), -(25023, 0, "'e'"), -(25024, 0, "'.'"), -(25024, 0, "' '"), -(25025, 0, "'w'"), -(25025, 1, "''"), -(25025, 0, "'b'"), -(25026, 0, "'y'"), -(25027, 0, "' '"), -(25028, 0, "'b'"), -(25029, 0, "'o'"), -(25030, 0, "'u'"), -(25031, 0, "'n'"), -(25032, 0, "'c'"), -(25033, 0, "'i'"), -(25034, 0, "'n'"), -(25035, 0, "'g'"), -(25036, 0, "' '"), -(25037, 0, "'b'"), -(25038, 0, "'e'"), -(25039, 0, "'t'"), -(25040, 0, "'w'"), -(25041, 0, "'e'"), -(25042, 0, "'e'"), -(25043, 0, "'n'"), -(25044, 0, "' '"), -(25045, 0, "'t'"), -(25046, 0, "'h'"), -(25047, 0, "'o'"), -(25048, 0, "'s'"), -(25049, 0, "'e'"), -(25050, 0, "'s'"), -(25051, 0, "' '"), -(25045, 7, "'t'"), -(25046, 0, "'h'"), -(25047, 0, "'e'"), -(25048, 0, "'s'"), -(25049, 0, "'e'"), -(25050, 0, "' '"), -(25051, 0, "'t'"), -(25052, 0, "'w'"), -(25053, 0, "'o'"), -(25054, 0, "' '"), -(25055, 0, "'B'"), -(25056, 0, "'-'"), -(25057, 0, "'t'"), -(25058, 0, "'r'"), -(25059, 0, "'e'"), -(25060, 0, "'e'"), -(25061, 0, "'s'"), -(25064, 11, "''"), -(25158, 0, "'j'"), -(25159, 0, "'u'"), -(25160, 0, "'s'"), -(25161, 0, "'t'"), -(25162, 0, "' '"), -(25158, 4, "''"), -(25157, 1, "''"), -(25045, 5, "'t'"), -(25046, 0, "'h'"), -(25047, 0, "'e'"), -(25059, 1, "''"), -(25059, 0, "' '"), -(25060, 0, "'i'"), -(25060, 1, "''"), -(25059, 1, "''"), -(25059, 0, "'s'"), -(25059, 1, "''"), -(25059, 0, "' '"), -(25059, 1, "''"), -(25059, 0, "'s'"), -(26015, 0, "'I'"), -(26016, 0, "'t'"), -(26017, 0, "' '"), -(26018, 0, "'t'"), -(26019, 0, "'u'"), -(26020, 0, "'r'"), -(26021, 0, "'n'"), -(26022, 0, "'s'"), -(26023, 0, "' '"), -(26024, 0, "'o'"), -(26025, 0, "'u'"), -(26026, 0, "'t'"), -(26027, 0, "' '"), -(26029, 0, "'''"), -(26030, 0, "'m'"), -(26031, 3, "''"), -(26015, 0, "'I'"), -(26016, 0, "'''"), -(26017, 0, "'m'"), -(26018, 0, "' '"), -(26018, 1, "''"), -(26017, 1, "''"), -(26016, 1, "''"), -(26016, 0, "' '"), -(26017, 0, "'d'"), -(26018, 0, "'o'"), -(26019, 0, "'n'"), -(26020, 0, "'''"), -(26021, 0, "'t'"), -(26022, 0, "' '"), -(26023, 0, "'k'"), -(26024, 0, "'n'"), -(26025, 0, "'o'"), -(26026, 0, "'w'"), -(26027, 0, "' '"), -(26028, 0, "'w'"), -(26029, 0, "'h'"), -(26030, 0, "'o'"), -(26030, 1, "''"), -(26029, 1, "''"), -(26028, 1, "''"), -(26028, 0, "'''"), -(26016, 0, "'''"), -(26017, 12, "'m'"), -(26018, 0, "' '"), -(26019, 0, "'t'"), -(26020, 0, "'e'"), -(26021, 0, "'r'"), -(26022, 0, "'i'"), -(26023, 0, "'b'"), -(26023, 1, "''"), -(26022, 1, "''"), -(26022, 0, "'r'"), -(26023, 0, "'i'"), -(26024, 0, "'b'"), -(26025, 0, "'l'"), -(26026, 0, "'e'"), -(26027, 0, "' '"), -(26028, 0, "'a'"), -(26029, 0, "'t'"), -(26030, 0, "' '"), -(26031, 0, "'a'"), -(26032, 0, "'c'"), -(26033, 0, "'a'"), -(26034, 0, "'d'"), -(26035, 0, "'e'"), -(26036, 0, "'m'"), -(26037, 0, "'i'"), -(26038, 0, "'c'"), -(26039, 0, "' '"), -(26040, 0, "'p'"), -(26041, 0, "'a'"), -(26042, 0, "'p'"), -(26043, 0, "'e'"), -(26044, 0, "'r'"), -(26045, 0, "'s'"), -(26046, 0, "','"), -(26047, 0, "' '"), -(26048, 0, "'b'"), -(26049, 0, "'u'"), -(26050, 0, "'t'"), -(26051, 0, "' '"), -(26053, 1, "''"), -(26052, 1, "''"), -(26052, 0, "'i'"), -(26151, 1, "''"), -(26159, 0, "'*'"), -(26155, 0, "'u'"), -(26156, 0, "'s'"), -(26157, 0, "'e'"), -(26158, 0, "' '"), -(26159, 0, "'m'"), -(26160, 0, "'y'"), -(26161, 0, "' '"), -(26162, 0, "'s'"), -(26163, 0, "'k'"), -(26164, 0, "'i'"), -(26165, 0, "'l'"), -(26166, 0, "'l'"), -(26167, 0, "'s'"), -(26168, 0, "' '"), -(26169, 0, "'a'"), -(26170, 0, "'n'"), -(26171, 0, "'d'"), -(26172, 0, "' '"), -(26183, 1, "''"), -(26183, 0, "' '"), -(26184, 0, "'r'"), -(26185, 0, "'e'"), -(26186, 0, "'s'"), -(26187, 0, "'e'"), -(26188, 0, "'a'"), -(26189, 0, "'r'"), -(26190, 0, "'c'"), -(26191, 0, "'h'"), -(26192, 0, "'e'"), -(26193, 0, "'r'"), -(26194, 0, "'s'"), -(26239, 0, "' '"), -(26240, 0, "'o'"), -(26241, 0, "'f'"), -(26242, 0, "' '"), -(26243, 0, "'i'"), -(26244, 0, "'n'"), -(26245, 0, "'v'"), -(26246, 0, "'e'"), -(26247, 0, "'n'"), -(26248, 0, "'t'"), -(26249, 0, "'i'"), -(26250, 0, "'n'"), -(26251, 0, "'g'"), -(26252, 0, "' '"), -(26253, 0, "'C'"), -(26254, 0, "'R'"), -(26255, 0, "'D'"), -(26256, 0, "'T'"), -(26257, 0, "' '"), -(26258, 0, "'s'"), -(26259, 0, "'e'"), -(26260, 0, "'m'"), -(26261, 0, "'a'"), -(26262, 0, "'n'"), -(26263, 0, "'t'"), -(26264, 0, "'i'"), -(26265, 0, "'c'"), -(26266, 0, "'s'"), -(26267, 0, "'.'"), -(26268, 0, "' '"), -(26269, 0, "'B'"), -(26270, 0, "'u'"), -(26271, 0, "'t'"), -(26272, 5, "''"), -(26293, 41, "''"), -(26293, 0, "' '"), -(26294, 0, "'O'"), -(26295, 0, "'o'"), -(26296, 0, "'p'"), -(26297, 0, "'s'"), -(26298, 0, "'!'"), -(26294, 0, "'A'"), -(26295, 0, "'n'"), -(26296, 0, "'d'"), -(26297, 0, "' '"), -(26298, 0, "'I'"), -(26299, 0, "' '"), -(26299, 1, "''"), -(26298, 1, "''"), -(26298, 0, "'i'"), -(26299, 0, "'f'"), -(26300, 0, "' '"), -(26301, 0, "'I'"), -(26302, 0, "' '"), -(26303, 0, "'d'"), -(26304, 0, "'i'"), -(26305, 0, "'d'"), -(26306, 0, "','"), -(26307, 0, "' '"), -(26308, 0, "'w'"), -(26309, 0, "'e'"), -(26310, 0, "' '"), -(26311, 0, "'c'"), -(26312, 0, "'o'"), -(26313, 0, "'u'"), -(26314, 0, "'l'"), -(26315, 0, "'d'"), -(26316, 0, "' '"), -(26317, 0, "'h'"), -(26318, 0, "'a'"), -(26319, 0, "'v'"), -(26320, 0, "'e'"), -(26321, 0, "' '"), -(26322, 0, "'f'"), -(26322, 1, "''"), -(26322, 0, "'h'"), -(26323, 0, "'a'"), -(26324, 0, "'d'"), -(26325, 0, "' '"), -(26326, 0, "'f'"), -(26327, 0, "'a'"), -(26328, 0, "'s'"), -(26329, 0, "'t'"), -(26330, 0, "','"), -(26331, 0, "' '"), -(26332, 0, "'w'"), -(26333, 0, "'o'"), -(26334, 0, "'r'"), -(26335, 0, "'k'"), -(26336, 0, "'a'"), -(26337, 0, "'b'"), -(26338, 0, "'l'"), -(26339, 0, "'e'"), -(26340, 0, "' '"), -(26341, 0, "'C'"), -(26342, 0, "'D'"), -(26342, 1, "''"), -(26342, 0, "'R'"), -(26343, 0, "'D'"), -(26344, 0, "'T'"), -(26345, 0, "'s'"), -(26346, 0, "' '"), -(26347, 0, "'a'"), -(26348, 0, "' '"), -(26349, 0, "'d'"), -(26350, 0, "'e'"), -(26351, 0, "'c'"), -(26352, 0, "'a'"), -(26353, 0, "'d'"), -(26354, 0, "'e'"), -(26355, 0, "' '"), -(26356, 0, "'a'"), -(26357, 0, "'g'"), -(26358, 0, "'o'"), -(26359, 0, "'.'"), -(26360, 0, "' '"), -(26311, 0, "'m'"), -(26312, 0, "'i'"), -(26313, 0, "'g'"), -(26314, 0, "'h'"), -(26315, 0, "'t'"), -(26316, 5, "''"), -(26341, 0, "'t'"), -(26342, 0, "'e'"), -(26342, 1, "''"), -(26341, 1, "''"), -(26346, 0, "' '"), -(26347, 0, "'f'"), -(26348, 0, "'o'"), -(26349, 0, "'r'"), -(26350, 0, "' '"), -(26351, 0, "'t'"), -(26352, 0, "'e'"), -(26353, 0, "'x'"), -(26354, 0, "'t'"), -(26355, 0, "' '"), -(26356, 0, "'e'"), -(26357, 0, "'d'"), -(26358, 0, "'i'"), -(26359, 0, "'t'"), -(26360, 0, "'i'"), -(26361, 0, "'n'"), -(26362, 0, "'g'"), -(26385, 0, "'F'"), -(26386, 0, "'o'"), -(26387, 0, "'r'"), -(26388, 0, "' '"), -(26389, 0, "'t'"), -(26390, 0, "'h'"), -(26391, 0, "'e'"), -(26392, 0, "' '"), -(26393, 0, "'r'"), -(26394, 0, "'e'"), -(26395, 0, "'c'"), -(26396, 0, "'o'"), -(26397, 0, "'r'"), -(26398, 0, "'d'"), -(26399, 0, "','"), -(26400, 0, "' '"), -(26513, 14, "''"), -(26467, 11, "''"), -(26470, 4, "' '"), -(26471, 0, "'d'"), -(26472, 0, "'o'"), -(26473, 0, "' '"), -(26474, 0, "'a'"), -(26475, 0, "'l'"), -(26476, 0, "'l'"), -(26506, 0, "' '"), -(26507, 0, "'W'"), -(26508, 0, "'e'"), -(26509, 0, "' '"), -(26506, 4, "''"), -(26506, 0, "' '"), -(26507, 0, "'D'"), -(26508, 0, "'i'"), -(26509, 0, "'f'"), -(26510, 0, "'f'"), -(26511, 0, "'e'"), -(26512, 0, "'r'"), -(26513, 0, "'e'"), -(26514, 0, "'n'"), -(26515, 0, "'t'"), -(26516, 0, "' '"), -(26517, 0, "'d'"), -(26518, 0, "'h'"), -(26519, 0, "'a'"), -(26520, 0, "'r'"), -(26521, 0, "'m'"), -(26522, 0, "'a'"), -(26523, 0, "'s'"), -(26524, 0, "'.'"), -(26525, 0, "' '"), -(26525, 1, "''"), -(26541, 1, "'o'"), -(26542, 0, "'u'"), -(26543, 0, "'r'"), -(26544, 0, "' '"), -(26545, 0, "'o'"), -(26546, 0, "'w'"), -(26547, 0, "'n'"), -(26548, 0, "' '"), -(26549, 0, "'g'"), -(26550, 0, "'i'"), -(26551, 0, "'f'"), -(26552, 0, "'t'"), -(26553, 0, "' '"), -(26554, 0, "'f'"), -(26555, 0, "'o'"), -(26556, 0, "'r'"), -(26557, 0, "' '"), -(26558, 0, "'t'"), -(26559, 0, "'h'"), -(26560, 0, "'e'"), -(26561, 0, "' '"), -(26562, 0, "'w'"), -(26563, 0, "'o'"), -(26564, 0, "'r'"), -(26565, 0, "'l'"), -(26566, 0, "'d'"), -(26567, 27, "''"), -(26567, 0, "','"), -(26568, 0, "' '"), -(26569, 0, "'i'"), -(26570, 0, "'f'"), -(26571, 0, "' '"), -(26572, 0, "'w'"), -(26573, 0, "'e'"), -(26574, 0, "' '"), -(26575, 0, "'c'"), -(26576, 0, "'a'"), -(26577, 0, "'n'"), -(26578, 0, "' '"), -(26579, 0, "'f'"), -(26580, 0, "'i'"), -(26581, 0, "'n'"), -(26582, 0, "'d'"), -(26583, 0, "' '"), -(26584, 0, "'i'"), -(26585, 0, "'t'"), -(26587, 0, "'n'"), -(26588, 0, "'n'"), -(26589, 0, "'I'"), -(26590, 0, "'n'"), -(26591, 0, "'s'"), -(26592, 0, "'t'"), -(26593, 0, "'e'"), -(26594, 0, "'a'"), -(26595, 0, "'d'"), -(26596, 0, "' '"), -(26597, 0, "'o'"), -(26598, 0, "'f'"), -(26599, 0, "' '"), -(26600, 0, "'b'"), -(26601, 0, "'e'"), -(26602, 0, "'i'"), -(26603, 0, "'n'"), -(26604, 0, "'g'"), -(26605, 0, "' '"), -(26606, 0, "'f'"), -(26607, 0, "'r'"), -(26608, 0, "'u'"), -(26609, 0, "'s'"), -(26610, 0, "'t'"), -(26611, 0, "'r'"), -(26612, 0, "'a'"), -(26613, 0, "'t'"), -(26614, 0, "'e'"), -(26615, 0, "'d'"), -(26616, 0, "' '"), -(26617, 0, "'a'"), -(26618, 0, "'t'"), -(26619, 0, "' '"), -(26620, 0, "'t'"), -(26621, 0, "'h'"), -(26622, 0, "'a'"), -(26623, 0, "'t'"), -(26624, 0, "' '"), -(26625, 0, "'p'"), -(26626, 0, "'a'"), -(26627, 0, "'p'"), -(26628, 0, "'e'"), -(26629, 0, "'r'"), -(26630, 0, "','"), -(26631, 0, "' '"), -(26632, 0, "'I'"), -(26633, 0, "' '"), -(26634, 0, "'s'"), -(26635, 0, "'h'"), -(26636, 0, "'o'"), -(26637, 0, "'u'"), -(26638, 0, "'d'"), -(26638, 1, "''"), -(26638, 0, "'l'"), -(26639, 0, "'d'"), -(26640, 0, "' '"), -(26641, 0, "'n'"), -(26641, 1, "''"), -(26641, 0, "'h'"), -(26642, 0, "'a'"), -(26643, 0, "'v'"), -(26644, 0, "'e'"), -(26632, 13, "''"), -(26631, 1, "''"), -(26630, 1, "''"), -(26589, 32, "'T'"), -(26599, 0, "' '"), -(26600, 0, "'w'"), -(26601, 0, "'a'"), -(26602, 0, "'s'"), -(26603, 0, "' '"), -(26604, 0, "'a'"), -(26605, 0, "' '"), -(26606, 0, "'c'"), -(26607, 0, "'a'"), -(26608, 0, "'l'"), -(26609, 0, "'l'"), -(26610, 0, "' '"), -(26611, 0, "'t'"), -(26612, 0, "'o'"), -(26613, 0, "' '"), -(26614, 0, "'a'"), -(26615, 0, "'d'"), -(26616, 0, "'v'"), -(26617, 0, "'e'"), -(26618, 0, "'n'"), -(26619, 0, "'t'"), -(26620, 0, "'u'"), -(26621, 0, "'r'"), -(26622, 0, "'e'"), -(26623, 0, "' '"), -(26623, 1, "''"), -(26623, 0, "'.'"), -(26624, 0, "' '"), -(26625, 0, "'T'"), -(26626, 0, "'h'"), -(26627, 0, "'a'"), -(26628, 0, "'t'"), -(26629, 0, "' '"), -(26630, 0, "'w'"), -(26631, 0, "'a'"), -(26632, 0, "'s'"), -(26633, 0, "' '"), -(26634, 0, "'t'"), -(26635, 0, "'h'"), -(26636, 0, "'e'"), -(26637, 0, "' '"), -(26638, 0, "'w'"), -(26639, 0, "'o'"), -(26640, 0, "'r'"), -(26641, 0, "'l'"), -(26642, 0, "'d'"), -(26643, 0, "' '"), -(26644, 0, "'s'"), -(26645, 0, "'a'"), -(26646, 0, "'y'"), -(26647, 0, "'i'"), -(26648, 0, "'n'"), -(26649, 0, "'g'"), -(26650, 0, "' '"), -(26651, 0, "'''"), -(26652, 0, "'Y'"), -(26653, 0, "'o'"), -(26654, 0, "'u'"), -(26655, 0, "'r'"), -(26656, 0, "' '"), -(26657, 0, "'s'"), -(26658, 0, "'k'"), -(26659, 0, "'i'"), -(26660, 0, "'l'"), -(26661, 0, "'l'"), -(26662, 0, "'s'"), -(26663, 0, "' '"), -(26664, 0, "'a'"), -(26665, 0, "'r'"), -(26666, 0, "'e'"), -(26667, 0, "' '"), -(26668, 0, "'r'"), -(26669, 0, "'a'"), -(26670, 0, "'r'"), -(26671, 0, "'e'"), -(26672, 0, "'''"), -(26625, 10, "'T'"), -(26641, 0, "' '"), -(26642, 0, "'w'"), -(26643, 0, "'a'"), -(26644, 0, "'s'"), -(26645, 0, "' '"), -(26646, 0, "'s'"), -(26647, 0, "'a'"), -(26648, 0, "'y'"), -(26649, 0, "'i'"), -(26650, 0, "'n'"), -(26651, 0, "'h'"), -(26651, 1, "''"), -(26651, 0, "'g'"), -(26670, 4, "'v'"), -(26671, 0, "'a'"), -(26672, 0, "'l'"), -(26673, 0, "'u'"), -(26674, 0, "'a'"), -(26675, 0, "'b'"), -(26676, 0, "'l'"), -(26677, 0, "'e'"), -(26678, 0, "'.'"), -(26679, 0, "' '"), -(26680, 0, "'W'"), -(26680, 1, "''"), -(26679, 1, "''"), -(26678, 1, "''"), -(26678, 0, "' '"), -(26679, 0, "'a'"), -(26680, 0, "'n'"), -(26670, 11, "'n'"), -(26671, 0, "'e'"), -(26672, 0, "'e'"), -(26673, 0, "'d'"), -(26674, 0, "'e'"), -(26675, 0, "'d'"), -(26676, 0, "' '"), -(26677, 0, "'h'"), -(26678, 0, "'e'"), -(26679, 0, "'r'"), -(26680, 0, "'e'"), -(26681, 0, "'.'"), -(26579, 7, "'f'"), -(26580, 0, "'i'"), -(26581, 0, "'g'"), -(26582, 0, "'u'"), -(26583, 0, "'r'"), -(26584, 0, "'e'"), -(26585, 0, "' '"), -(26586, 0, "'o'"), -(26587, 0, "'u'"), -(26588, 0, "'t'"), -(26589, 0, "' '"), -(26590, 0, "'t'"), -(26591, 0, "'h'"), -(26591, 1, "''"), -(26590, 1, "''"), -(26590, 0, "'w'"), -(26591, 0, "'h'"), -(26592, 0, "'a'"), -(26593, 0, "'t'"), -(26594, 0, "' '"), -(26595, 0, "'t'"), -(26596, 0, "'h'"), -(26597, 0, "'a'"), -(26598, 0, "'t'"), -(26599, 0, "' '"), -(26600, 0, "'i'"), -(26601, 0, "'s'"), -(26605, 4, "'I'"), -(26606, 0, "'n'"), -(26607, 0, "' '"), -(26608, 0, "'t'"), -(26609, 0, "'h'"), -(26610, 0, "'i'"), -(26611, 0, "'s'"), -(26612, 0, "' '"), -(26613, 0, "'s'"), -(26614, 0, "'p'"), -(26615, 0, "'i'"), -(26616, 0, "'r'"), -(26617, 0, "'i'"), -(26618, 0, "'t'"), -(26619, 0, "','"), -(26605, 15, "'T'"), -(26606, 0, "'h'"), -(26607, 0, "'a'"), -(26608, 0, "'t'"), -(26620, 0, "'r'"), -(26621, 0, "'e'"), -(26622, 0, "'a'"), -(26623, 0, "'l'"), -(26624, 0, "'l'"), -(26625, 0, "'y'"), -(26626, 0, "' '"), -(26648, 0, "'I'"), -(26649, 0, "'t'"), -(26650, 0, "' '"), -(26651, 0, "'w'"), -(26652, 0, "'a'"), -(26653, 0, "'s'"), -(26654, 0, "' '"), -(26655, 3, "''"), -(26654, 1, "''"), -(26654, 0, "' '"), -(26655, 0, "'t'"), -(26656, 0, "'h'"), -(26657, 0, "'e'"), -(26684, 0, "'H'"), -(26685, 0, "'e'"), -(26686, 0, "' '"), -(26686, 1, "''"), -(26686, 0, "'y'"), -(26687, 0, "' '"), -(26688, 0, "'s'"), -(26689, 0, "'e'"), -(26690, 0, "'p'"), -(26691, 0, "'h'"), -(26692, 0, "','"), -(26693, 0, "' '"), -(26688, 1, "''"), -(26688, 0, "'S'"), -(26694, 27, "''"), -(26694, 0, "'W'"), -(26695, 0, "'e'"), -(26696, 0, "' '"), -(26696, 1, "''"), -(26695, 1, "''"), -(26694, 1, "''"), -(26694, 0, "'w'"), -(26695, 0, "'e'"), -(26696, 0, "' '"), -(26697, 0, "'n'"), -(26698, 0, "'e'"), -(26699, 0, "'e'"), -(26700, 0, "'d'"), -(26701, 0, "' '"), -(26702, 0, "'y'"), -(26703, 0, "'o'"), -(26704, 0, "'u'"), -(26705, 0, "'r'"), -(26706, 0, "' '"), -(26707, 0, "'h'"), -(26708, 0, "'e'"), -(26709, 0, "'l'"), -(26710, 0, "'p'"), -(26711, 0, "' '"), -(26712, 0, "'o'"), -(26713, 0, "'v'"), -(26714, 0, "'e'"), -(26715, 0, "'r'"), -(26716, 0, "' '"), -(26717, 0, "'h'"), -(26718, 0, "'e'"), -(26719, 0, "'r'"), -(26720, 0, "'e'"), -(26721, 0, "'.'"), -(26722, 0, "' '"), -(26723, 0, "'Y'"), -(26724, 0, "'o'"), -(26725, 0, "'u'"), -(26726, 0, "'''"), -(26727, 0, "'r'"), -(26728, 0, "'e'"), -(26729, 0, "' '"), -(26730, 0, "'h'"), -(26731, 0, "'o'"), -(26732, 0, "'l'"), -(26733, 0, "'d'"), -(26734, 0, "'i'"), -(26735, 0, "'n'"), -(26736, 0, "'g'"), -(26737, 0, "' '"), -(26738, 0, "'a'"), -(26739, 0, "' '"), -(26740, 0, "'p'"), -(26741, 0, "'i'"), -(26742, 0, "'e'"), -(26743, 0, "'c'"), -(26744, 0, "'e'"), -(26745, 0, "' '"), -(26746, 0, "'o'"), -(26747, 0, "'f'"), -(26748, 0, "' '"), -(26749, 0, "'t'"), -(26750, 0, "'h'"), -(26751, 0, "'e'"), -(26752, 0, "' '"), -(26753, 0, "'p'"), -(26754, 0, "'u'"), -(26755, 0, "'z'"), -(26756, 0, "'z'"), -(26757, 0, "'l'"), -(26758, 0, "'e'"), -(26749, 3, "'t'"), -(26750, 0, "'h'"), -(26751, 0, "'i'"), -(26752, 0, "'s'"), -(26762, 0, "' '"), -(26763, 0, "'I'"), -(26764, 0, "'n'"), -(26765, 0, "' '"), -(26766, 0, "'m'"), -(26767, 0, "'y'"), -(26768, 0, "' '"), -(26769, 0, "'o'"), -(26770, 0, "'u'"), -(26770, 1, "''"), -(26769, 1, "''"), -(26769, 0, "'y'"), -(26770, 0, "'o'"), -(26771, 0, "'u'"), -(26772, 0, "'t'"), -(26773, 0, "'h'"), -(26774, 0, "'n'"), -(26774, 1, "''"), -(26774, 0, "'f'"), -(26775, 0, "'u'"), -(26776, 0, "'l'"), -(26777, 0, "' '"), -(26726, 3, "'r'"), -(26727, 0, "' '"), -(26728, 0, "'s'"), -(26729, 0, "'k'"), -(26730, 0, "'i'"), -(26731, 0, "'l'"), -(26732, 0, "'s'"), -(26732, 1, "''"), -(26732, 0, "'l'"), -(26733, 0, "'s'"), -(26734, 0, "' '"), -(26735, 0, "'a'"), -(26736, 0, "'r'"), -(26737, 0, "'e'"), -(26738, 8, "''"), -(26761, 0, "','"), -(26762, 0, "' '"), -(26763, 0, "'a'"), -(26764, 0, "'n'"), -(26765, 0, "'d'"), -(26766, 0, "' '"), -(26767, 0, "'w'"), -(26768, 0, "'e'"), -(26769, 0, "' '"), -(26770, 0, "'c'"), -(26771, 0, "'a'"), -(26772, 0, "'n'"), -(26773, 0, "'''"), -(26774, 0, "'t'"), -(26775, 0, "' '"), -(26776, 0, "'g'"), -(26777, 0, "'e'"), -(26778, 0, "'t'"), -(26779, 0, "' '"), -(26780, 0, "'i'"), -(26781, 0, "'t'"), -(26782, 0, "' '"), -(26783, 0, "'o'"), -(26784, 0, "'w'"), -(26785, 0, "'r'"), -(26786, 0, "'k'"), -(26787, 0, "'i'"), -(26788, 0, "'n'"), -(26789, 0, "'g'"), -(26783, 7, "'w'"), -(26784, 0, "'i'"), -(26784, 1, "''"), -(26784, 0, "'o'"), -(26785, 0, "'r'"), -(26786, 0, "'k'"), -(26787, 0, "'i'"), -(26788, 0, "'n'"), -(26789, 0, "'g'"), -(26790, 0, "' '"), -(26791, 0, "'w'"), -(26792, 0, "'i'"), -(26793, 0, "'t'"), -(26794, 0, "'h'"), -(26795, 0, "'o'"), -(26796, 0, "'u'"), -(26797, 0, "'t'"), -(26798, 0, "' '"), -(26799, 0, "'y'"), -(26800, 0, "'o'"), -(26801, 0, "'u'"), -(26820, 0, "'a'"), -(26821, 0, "'r'"), -(26822, 0, "'r'"), -(26823, 0, "'o'"), -(26824, 0, "'g'"), -(26825, 0, "'a'"), -(26826, 0, "'n'"), -(26827, 0, "'c'"), -(26828, 0, "'e'"), -(26829, 0, "' '"), -(26830, 0, "'I'"), -(26831, 0, "' '"), -(26605, 227, "'That paper was really a call to adventure. It was the world saying was saying 'Hey Seph, we need your help over here. Your skills are a piece of this puzzle, and we can't get it working without you.' In my youthful arrogance I'"), -(26017, 1, "''"), -(26016, 1, "''"), -(26016, 0, "' '"), -(26017, 0, "'m'"), -(26018, 0, "'i'"), -(26019, 0, "'g'"), -(26020, 0, "'h'"), -(26021, 0, "'t'"), -(26022, 0, "' '"), -(26023, 0, "'b'"), -(26024, 0, "'e'"), -(26260, 0, "'P'"), -(26261, 0, "'2'"), -(26262, 0, "'P'"), -(26263, 0, "' '"), -(26264, 0, "'c'"), -(26265, 0, "'o'"), -(26266, 0, "'l'"), -(26267, 0, "'l'"), -(26268, 0, "'a'"), -(26269, 0, "'b'"), -(26270, 0, "'o'"), -(26271, 0, "'r'"), -(26272, 0, "'a'"), -(26273, 0, "'t'"), -(26274, 0, "'i'"), -(26275, 0, "'v'"), -(26276, 0, "'e'"), -(26277, 0, "' '"), -(26278, 0, "'e'"), -(26279, 0, "'d'"), -(26280, 0, "'i'"), -(26281, 0, "'t'"), -(26282, 0, "'i'"), -(26283, 0, "'n'"), -(26284, 0, "'g'"), -(26285, 14, "''"), -(26312, 5, "'I'"), -(26662, 10, "'T'"), -(26663, 0, "'h'"), -(26664, 0, "'e'"), -(26671, 0, "' '"), -(26672, 0, "'c'"), -(26673, 0, "'a'"), -(26674, 0, "'m'"), -(26675, 0, "'e'"), -(26676, 0, "' '"), -(26677, 0, "'k'"), -(26678, 0, "'n'"), -(26679, 0, "'o'"), -(26680, 0, "'c'"), -(26681, 0, "'k'"), -(26682, 0, "'i'"), -(26683, 0, "'n'"), -(26684, 0, "'g'"), -(26685, 0, "' '"), -(26686, 0, "'a'"), -(26687, 0, "'t'"), -(26688, 0, "' '"), -(26689, 0, "'m'"), -(26690, 0, "'y'"), -(26691, 0, "' '"), -(26692, 0, "'d'"), -(26693, 0, "'o'"), -(26694, 0, "'o'"), -(26695, 0, "'r'"), -(26703, 11, "''"), -(26705, 4, "''"), -(26778, 5, "''"), -(26779, 1, "''"), -(26778, 1, "''"), -(26778, 0, "'.'"), -(26779, 0, "' '"), -(26780, 0, "'W'"), -(26788, 4, "' '"), -(26789, 3, "'t'"), -(26790, 0, "'h'"), -(26791, 0, "'i'"), -(26792, 0, "'s'"), -(26842, 0, "' '"), -(26843, 0, "'t'"), -(26844, 0, "'u'"), -(26845, 0, "'r'"), -(26846, 0, "'n'"), -(26847, 0, "'e'"), -(26848, 0, "'d'"), -(26849, 0, "' '"), -(26850, 0, "'a'"), -(26851, 0, "'w'"), -(26852, 0, "'a'"), -(26853, 0, "'y'"), -(26854, 0, "'.'"), -(26855, 0, "' '"), -(26855, 1, "''"), -(26854, 1, "''"), -(26854, 0, "'.'"), -(26855, 0, "' '"), -(26856, 0, "'I'"), -(26857, 0, "' '"), -(26858, 0, "'d'"), -(26859, 0, "'i'"), -(26859, 1, "''"), -(26858, 1, "''"), -(26857, 1, "''"), -(26856, 1, "''"), -(26855, 1, "''"), -(26855, 0, "' '"), -(26856, 0, "'I'"), -(26857, 0, "' '"), -(26858, 0, "'d'"), -(26859, 0, "'i'"), -(26860, 0, "'d'"), -(26861, 0, "'n'"), -(26862, 0, "'''"), -(26863, 0, "'t'"), -(26864, 0, "' '"), -(26865, 0, "'e'"), -(26866, 0, "'n'"), -(26867, 0, "'t'"), -(26868, 0, "'e'"), -(26869, 0, "'r'"), -(26870, 0, "' '"), -(26871, 0, "'t'"), -(26872, 0, "'h'"), -(26873, 0, "'e'"), -(26874, 0, "' '"), -(26875, 0, "'d'"), -(26876, 0, "'r'"), -(26877, 0, "'a'"), -(26878, 0, "'g'"), -(26879, 0, "'o'"), -(26880, 0, "'n'"), -(26881, 0, "'''"), -(26882, 0, "'s'"), -(26883, 0, "' '"), -(26884, 0, "'c'"), -(26885, 0, "'a'"), -(26886, 0, "'v'"), -(26887, 0, "'e'"), -(26888, 0, "','"), -(26889, 0, "' '"), -(26890, 0, "'a'"), -(26891, 0, "'n'"), -(26892, 0, "'d'"), -(26893, 0, "' '"), -(26894, 0, "'d'"), -(26895, 0, "'i'"), -(26896, 0, "'d'"), -(26897, 0, "'n'"), -(26898, 0, "'''"), -(26899, 0, "'t'"), -(26900, 0, "' '"), -(26894, 7, "'i'"), -(26895, 0, "'t'"), -(26896, 0, "' '"), -(26897, 0, "'t'"), -(26898, 0, "'o'"), -(26899, 0, "'o'"), -(26900, 0, "'k'"), -(26901, 0, "' '"), -(26902, 0, "'m'"), -(26903, 0, "'e'"), -(26904, 0, "' '"), -(26905, 0, "'a'"), -(26906, 0, "'n'"), -(26907, 0, "'o'"), -(26908, 0, "'t'"), -(26909, 0, "'h'"), -(26910, 0, "'e'"), -(26911, 0, "'r'"), -(26912, 0, "' '"), -(26913, 0, "'d'"), -(26914, 0, "'e'"), -(26915, 0, "'c'"), -(26916, 0, "'a'"), -(26917, 0, "'d'"), -(26918, 0, "'e'"), -(26919, 0, "'s'"), -(26919, 1, "''"), -(26919, 0, "' '"), -(26920, 0, "'t'"), -(26921, 0, "'o'"), -(26922, 0, "' '"), -(26923, 0, "'f'"), -(26924, 0, "'i'"), -(26925, 0, "'n'"), -(26926, 0, "'d'"), -(26927, 0, "' '"), -(26928, 0, "'t'"), -(26929, 0, "'h'"), -(26930, 0, "'e'"), -(26931, 0, "' '"), -(26932, 0, "'t'"), -(26933, 0, "'r'"), -(26934, 0, "'e'"), -(26935, 0, "'a'"), -(26936, 0, "'t'"), -(26936, 1, "''"), -(26936, 0, "'s'"), -(26937, 0, "'u'"), -(26938, 0, "'r'"), -(26939, 0, "'e'"), -(26940, 0, "' '"), -(26941, 0, "'i'"), -(26942, 0, "'n'"), -(26943, 0, "'s'"), -(26944, 0, "'i'"), -(26945, 0, "'d'"), -(26946, 0, "'e'"), -(26947, 0, "'.'"), -(26948, 0, "'n'"), -(26949, 0, "'n'"), -(26950, 0, "'B'"), -(26951, 0, "'u'"), -(26952, 0, "'t'"), -(26953, 0, "' '"), -(26954, 0, "'w'"), -(26955, 0, "'e'"), -(26956, 0, "'''"), -(26957, 0, "'v'"), -(26958, 0, "'e'"), -(26959, 0, "' '"), -(26960, 0, "'f'"), -(26961, 0, "'o'"), -(26962, 0, "'u'"), -(26963, 0, "'n'"), -(26964, 0, "'d'"), -(26965, 0, "' '"), -(26966, 0, "'i'"), -(26967, 0, "'t'"), -(26968, 0, "' '"), -(26969, 0, "'n'"), -(26970, 0, "'o'"), -(26971, 0, "'w'"), -(26972, 0, "'.'"), -(26973, 0, "' '"), -(26974, 0, "'P'"), -(26975, 0, "'2'"), -(26976, 0, "'P'"), -(26974, 3, "'R'"), -(26975, 0, "'e'"), -(26976, 0, "'a'"), -(26977, 0, "'l'"), -(26978, 0, "'t'"), -(26979, 0, "'i'"), -(26980, 0, "'m'"), -(26981, 0, "'e'"), -(26982, 0, "' '"), -(26983, 0, "'c'"), -(26984, 0, "'o'"), -(26985, 0, "'l'"), -(26986, 0, "'l'"), -(26987, 0, "'a'"), -(26988, 0, "'b'"), -(26989, 0, "'o'"), -(26990, 0, "'r'"), -(26991, 0, "'a'"), -(26992, 0, "'t'"), -(26993, 0, "'i'"), -(26994, 0, "'v'"), -(26995, 0, "'e'"), -(26996, 0, "' '"), -(26997, 0, "'e'"), -(26998, 0, "'d'"), -(26999, 0, "'i'"), -(27000, 0, "'t'"), -(27001, 0, "'i'"), -(27002, 0, "'n'"), -(27003, 0, "'g'"), -(26974, 0, "'D'"), -(26975, 0, "'e'"), -(26976, 0, "'c'"), -(26977, 0, "'e'"), -(26978, 0, "'n'"), -(26979, 0, "'t'"), -(26980, 0, "'r'"), -(26981, 0, "'a'"), -(26982, 0, "'l'"), -(26983, 0, "'i'"), -(26984, 0, "'z'"), -(26985, 0, "'e'"), -(26986, 0, "'d'"), -(26987, 0, "' '"), -(26988, 1, "''"), -(26988, 0, "'r'"), -(27018, 0, "'?'"), -(27019, 0, "' '"), -(27020, 0, "'W'"), -(27021, 0, "'e'"), -(27022, 0, "'''"), -(27023, 0, "'r'"), -(27024, 0, "'e'"), -(27025, 0, "' '"), -(27026, 0, "'c'"), -(27027, 0, "'o'"), -(27028, 0, "'m'"), -(27029, 0, "'i'"), -(27030, 0, "'n'"), -(27031, 0, "'g'"), -(27032, 0, "' '"), -(27033, 0, "'f'"), -(27034, 0, "'o'"), -(27035, 0, "'r'"), -(27036, 0, "' '"), -(27037, 0, "'y'"), -(27038, 0, "'o'"), -(27039, 0, "'u'"), -(27040, 0, "'.'"), -(27041, 0, "'n'"), -(27042, 0, "'n'"), -(27043, 0, "'n'"), -(27044, 43, "''"), -(27044, 2, "''"), -(27044, 0, "'#'"), -(27045, 0, "' '"), -(27046, 0, "'A'"), -(27047, 0, "'p'"), -(27048, 0, "'p'"), -(27049, 0, "'e'"), -(27050, 0, "'n'"), -(27051, 0, "'d'"), -(27052, 0, "'i'"), -(27053, 0, "'n'"), -(27054, 0, "'g'"), -(27055, 0, "' '"), -(27056, 0, "'X'"), -(27056, 1, "''"), -(27056, 0, "'A'"), -(27057, 0, "':'"), -(27058, 0, "' '"), -(27058, 1, "''"), -(27058, 0, "' '"), -(27059, 0, "'L'"), -(27060, 0, "'y'"), -(27061, 0, "'i'"), -(27062, 0, "'n'"), -(27063, 0, "'g'"), -(27064, 0, "' '"), -(27065, 0, "'w'"), -(27066, 0, "'i'"), -(27067, 0, "'t'"), -(27068, 0, "'h'"), -(27069, 0, "' '"), -(27070, 0, "'b'"), -(27071, 0, "'e'"), -(27072, 0, "'n'"), -(27073, 0, "'c'"), -(27074, 0, "'h'"), -(27075, 0, "'m'"), -(27076, 0, "'a'"), -(27077, 0, "'r'"), -(27078, 0, "'k'"), -(27079, 0, "'s'"), -(27080, 0, "'n'"), -(27081, 0, "'n'"), -(27082, 0, "'I'"), -(27083, 0, "'''"), -(27084, 0, "'v'"), -(27085, 0, "'e'"), -(27086, 0, "' '"), -(27087, 0, "'o'"), -(27088, 0, "'d'"), -(27089, 0, "'n'"), -(27090, 0, "'e'"), -(27091, 0, "' '"), -(27092, 0, "'a'"), -(27087, 6, "'d'"), -(27088, 0, "'o'"), -(27089, 0, "'n'"), -(27090, 0, "'e'"), -(27091, 0, "' '"), -(27092, 0, "'a'"), -(27093, 0, "' '"), -(27094, 0, "'f'"), -(27095, 0, "'e'"), -(27096, 0, "'w'"), -(27097, 0, "' '"), -(27098, 0, "'l'"), -(27099, 0, "'g'"), -(27100, 0, "'i'"), -(27100, 1, "''"), -(27099, 1, "''"), -(27098, 1, "''"), -(27098, 0, "'g'"), -(27099, 0, "'l'"), -(27100, 0, "'i'"), -(27101, 0, "'t'"), -(27102, 0, "'h'"), -(27103, 0, "'s'"), -(27104, 0, "' '"), -(27098, 7, "'s'"), -(27099, 0, "'l'"), -(27100, 0, "'i'"), -(27101, 0, "'g'"), -(27102, 0, "'h'"), -(27103, 0, "'t'"), -(27104, 0, "'s'"), -(27105, 0, "' '"), -(27106, 0, "'o'"), -(27107, 0, "'f'"), -(27108, 0, "' '"), -(27109, 0, "'h'"), -(27110, 0, "'a'"), -(27111, 0, "'n'"), -(27112, 0, "'d'"), -(27113, 0, "'s'"), -(27082, 11, "'T'"), -(27083, 0, "'h'"), -(27084, 0, "'e'"), -(27085, 0, "'r'"), -(27086, 0, "'e'"), -(27087, 0, "' '"), -(27088, 0, "'a'"), -(27089, 0, "'r'"), -(27090, 0, "'e'"), -(27091, 0, "' '"), -(27092, 0, "'a'"), -(27113, 1, "''"), -(27113, 0, "' '"), -(27114, 0, "'a'"), -(27115, 0, "'b'"), -(27116, 0, "'o'"), -(27117, 0, "'v'"), -(27118, 0, "'e'"), -(27119, 0, "' '"), -(27120, 0, "'t'"), -(27121, 0, "'h'"), -(27122, 0, "'a'"), -(27123, 0, "'t'"), -(27124, 0, "' '"), -(27125, 0, "'I'"), -(27126, 0, "' '"), -(27127, 0, "'w'"), -(27128, 0, "'a'"), -(27129, 0, "'n'"), -(27130, 0, "'t'"), -(27131, 0, "' '"), -(27132, 0, "'t'"), -(27133, 0, "'o'"), -(27134, 0, "' '"), -(27135, 0, "'a'"), -(27136, 0, "'d'"), -(27137, 0, "'m'"), -(27138, 0, "'i'"), -(27139, 0, "'t'"), -(27140, 0, "','"), -(27141, 0, "' '"), -(27142, 0, "'j'"), -(27143, 0, "'u'"), -(27144, 0, "'s'"), -(27145, 0, "'t'"), -(27146, 0, "'i'"), -(27142, 5, "'e'"), -(27143, 0, "'f'"), -(27144, 0, "'e'"), -(27142, 3, "''"), -(27141, 1, "''"), -(27140, 1, "''"), -(27140, 0, "' '"), -(27141, 0, "'a'"), -(27142, 0, "'n'"), -(27143, 0, "'d'"), -(27144, 0, "' '"), -(27145, 0, "'d'"), -(27146, 0, "'e'"), -(27147, 0, "'f'"), -(27148, 0, "'e'"), -(27149, 0, "'n'"), -(27150, 0, "'d'"), -(27135, 6, "'f'"), -(27135, 1, "''"), -(27135, 0, "'c'"), -(27136, 0, "'o'"), -(27137, 0, "'n'"), -(27138, 0, "'f'"), -(27139, 0, "'e'"), -(27139, 1, "''"), -(27138, 1, "''"), -(27137, 1, "''"), -(27136, 1, "''"), -(27135, 1, "''"), -(27135, 0, "'''"), -(27136, 0, "'f'"), -(27137, 0, "'e'"), -(27138, 0, "'s'"), -(27139, 0, "'s'"), -(27140, 0, "' '"), -(27141, 0, "'u'"), -(27142, 0, "'p'"), -(27143, 0, "' '"), -(27144, 0, "'t'"), -(27145, 0, "'o'"), -(27146, 0, "' '"), -(27157, 0, "'.'"), -(27158, 0, "'n'"), -(27159, 0, "'n'"), -(27160, 0, "'1'"), -(27161, 0, "'.'"), -(27162, 0, "' '"), -(27163, 0, "'I'"), -(27164, 0, "'''"), -(27164, 1, "''"), -(27163, 1, "''"), -(27163, 0, "'I'"), -(27164, 0, "'''"), -(27165, 0, "'v'"), -(27166, 0, "'e'"), -(27167, 0, "' '"), -(27168, 0, "'w'"), -(27169, 0, "'r'"), -(27170, 0, "'i'"), -(27171, 0, "'t'"), -(27172, 0, "'t'"), -(27173, 0, "'e'"), -(27174, 0, "'n'"), -(27175, 0, "' '"), -(27176, 0, "'t'"), -(27177, 0, "'h'"), -(27178, 0, "'i'"), -(27179, 0, "'s'"), -(27180, 0, "' '"), -(27181, 0, "'p'"), -(27182, 0, "'o'"), -(27183, 0, "'s'"), -(27184, 0, "'t'"), -(27185, 0, "' '"), -(27186, 0, "'b'"), -(27163, 24, "'I'"), -(27164, 0, "'''"), -(27165, 0, "'v'"), -(27166, 0, "'e'"), -(27167, 0, "' '"), -(27168, 0, "'p'"), -(27169, 0, "'l'"), -(27170, 0, "'a'"), -(27171, 0, "'y'"), -(27172, 0, "'e'"), -(27173, 0, "'d'"), -(27174, 0, "' '"), -(27175, 0, "'f'"), -(27176, 0, "'a'"), -(27177, 0, "'s'"), -(27178, 0, "'t'"), -(27179, 0, "' '"), -(27180, 0, "'a'"), -(27181, 0, "'n'"), -(27182, 0, "'d'"), -(27183, 0, "' '"), -(27184, 0, "'l'"), -(27185, 0, "'o'"), -(27186, 0, "'o'"), -(27187, 0, "'s'"), -(27188, 0, "'e'"), -(27189, 0, "' '"), -(27190, 0, "'w'"), -(27191, 0, "'i'"), -(27192, 0, "'t'"), -(27193, 0, "'h'"), -(27194, 0, "' '"), -(27195, 0, "'t'"), -(27196, 0, "'w'"), -(27197, 0, "'o'"), -(27198, 0, "' '"), -(27199, 0, "'C'"), -(27200, 0, "'R'"), -(27201, 0, "'D'"), -(27202, 0, "'T'"), -(27203, 0, "' '"), -(27204, 0, "'a'"), -(27205, 0, "'l'"), -(27206, 0, "'g'"), -(27207, 0, "'o'"), -(27208, 0, "'i'"), -(27209, 0, "'r'"), -(27204, 6, "'s'"), -(27205, 0, "'e'"), -(27206, 0, "'m'"), -(27207, 0, "'a'"), -(27208, 0, "'n'"), -(27209, 0, "'t'"), -(27210, 0, "'i'"), -(27211, 0, "'c'"), -(27212, 0, "'s'"), -(27190, 0, "'d'"), -(27191, 0, "'i'"), -(27192, 0, "'r'"), -(27193, 0, "'e'"), -(27194, 0, "'c'"), -(27195, 0, "'t'"), -(27196, 0, "'l'"), -(27197, 0, "'y'"), -(27198, 0, "' '"), -(27199, 0, "'c'"), -(27200, 0, "'o'"), -(27201, 0, "'m'"), -(27202, 0, "'p'"), -(27203, 0, "'a'"), -(27204, 0, "'r'"), -(27205, 0, "'i'"), -(27206, 0, "'n'"), -(27207, 0, "'g'"), -(27208, 0, "' '"), -(27209, 0, "'i'"), -(27210, 0, "'m'"), -(27211, 0, "'p'"), -(27212, 0, "'l'"), -(27213, 0, "'e'"), -(27214, 0, "'m'"), -(27215, 0, "'e'"), -(27216, 0, "'n'"), -(27217, 0, "'t'"), -(27218, 0, "'a'"), -(27219, 0, "'t'"), -(27220, 0, "'i'"), -(27221, 0, "'o'"), -(27222, 0, "'n'"), -(27223, 0, "'s'"), -(27224, 0, "' '"), -(27225, 0, "'w'"), -(27226, 0, "'h'"), -(27227, 0, "'i'"), -(27228, 0, "'c'"), -(27229, 0, "'h'"), -(27230, 0, "' '"), -(27231, 0, "'u'"), -(27232, 0, "'s'"), -(27233, 0, "'e'"), -(27234, 0, "' '"), -(27235, 4, "''"), -(27234, 1, "''"), -(27239, 0, "'d'"), -(27240, 0, "'i'"), -(27241, 0, "'f'"), -(27242, 0, "'f'"), -(27243, 0, "'e'"), -(27244, 0, "'r'"), -(27245, 0, "'e'"), -(27246, 0, "'n'"), -(27247, 0, "'t'"), -(27248, 0, "' '"), -(27263, 0, "':'"), -(27264, 0, "' '"), -(27265, 0, "'Y'"), -(27265, 1, "''"), -(27265, 0, "'R'"), -(27266, 0, "'G'"), -(27267, 0, "'A'"), -(27268, 0, "' '"), -(27269, 0, "'('"), -(27270, 0, "'a'"), -(27271, 0, "'u'"), -(27272, 0, "'t'"), -(27273, 0, "'o'"), -(27274, 0, "'m'"), -(27275, 0, "'e'"), -(27276, 0, "'r'"), -(27277, 0, "'g'"), -(27278, 0, "'e'"), -(27279, 0, "')'"), -(27280, 0, "' '"), -(27281, 0, "'a'"), -(27282, 0, "'n'"), -(27283, 0, "'d'"), -(27284, 0, "' '"), -(27285, 0, "'Y'"), -(27286, 0, "'A'"), -(27287, 0, "'R'"), -(27288, 0, "'T'"), -(27289, 0, "'A'"), -(27289, 1, "''"), -(27288, 1, "''"), -(27287, 1, "''"), -(27287, 0, "'T'"), -(27288, 0, "'A'"), -(27289, 0, "' '"), -(27290, 0, "'('"), -(27291, 0, "'y'"), -(27292, 0, "'j'"), -(27293, 0, "'s'"), -(27294, 0, "' '"), -(27295, 0, "'+'"), -(27296, 0, "' '"), -(27297, 0, "'m'"), -(27298, 0, "'y'"), -(27299, 0, "' '"), -(27300, 0, "'r'"), -(27301, 0, "'u'"), -(27302, 0, "'s'"), -(27303, 0, "'t'"), -(27304, 0, "' '"), -(27305, 0, "'c'"), -(27306, 0, "'o'"), -(27307, 0, "'d'"), -(27308, 0, "'e'"), -(27309, 0, "')'"), -(27310, 0, "'.'"), -(27311, 0, "' '"), -(27312, 0, "'T'"), -(27313, 0, "'h'"), -(27314, 0, "'i'"), -(27315, 0, "'s'"), -(27316, 0, "' '"), -(27317, 0, "'i'"), -(27317, 1, "''"), -(27316, 1, "''"), -(27315, 1, "''"), -(27314, 1, "''"), -(27313, 1, "''"), -(27312, 1, "''"), -(27312, 0, "'M'"), -(27313, 0, "'y'"), -(27314, 0, "' '"), -(27315, 0, "'c'"), -(27316, 0, "'l'"), -(27317, 0, "'a'"), -(27318, 0, "'i'"), -(27319, 0, "'m'"), -(27320, 0, "' '"), -(27312, 9, "'I'"), -(27313, 0, "'''"), -(27314, 0, "'m'"), -(27315, 0, "' '"), -(27316, 0, "'m'"), -(27317, 0, "'a'"), -(27318, 0, "'k'"), -(27319, 0, "'i'"), -(27320, 0, "'n'"), -(27321, 0, "'g'"), -(27322, 0, "' '"), -(27323, 0, "'a'"), -(27324, 0, "' '"), -(27324, 1, "'n'"), -(27325, 0, "' '"), -(27326, 0, "'a'"), -(27327, 0, "'s'"), -(27328, 0, "'s'"), -(27329, 0, "'u'"), -(27330, 0, "'m'"), -(27331, 0, "'p'"), -(27332, 0, "'t'"), -(27333, 0, "'i'"), -(27334, 0, "'o'"), -(27335, 0, "'n'"), -(27189, 0, "' '"), -(27190, 0, "'w'"), -(27191, 0, "'i'"), -(27192, 0, "'t'"), -(27193, 0, "'h'"), -(27194, 0, "' '"), -(27195, 0, "'n'"), -(27196, 0, "'u'"), -(27197, 0, "'m'"), -(27198, 0, "'b'"), -(27199, 0, "'e'"), -(27200, 0, "'r'"), -(27201, 0, "'s'"), -(27202, 0, "','"), -(27319, 4, "'i'"), -(27320, 0, "'m'"), -(27321, 0, "'p'"), -(27322, 0, "'l'"), -(27323, 0, "'e'"), -(27324, 0, "'m'"), -(27325, 0, "'e'"), -(27326, 0, "'n'"), -(27327, 0, "'t'"), -(27328, 0, "'a'"), -(27329, 0, "'t'"), -(27330, 0, "'i'"), -(27331, 0, "'o'"), -(27332, 0, "'n'"), -(27347, 3, "'t'"), -(27348, 0, "'h'"), -(27349, 0, "'e'"), -(27350, 0, "' '"), -(27361, 0, "' '"), -(27362, 0, "'t'"), -(27363, 0, "'h'"), -(27364, 0, "'a'"), -(27365, 0, "'t'"), -(27366, 0, "' '"), -(27367, 0, "'b'"), -(27368, 0, "'o'"), -(27369, 0, "'t'"), -(27370, 0, "'h'"), -(27371, 0, "' '"), -(27372, 0, "'a'"), -(27373, 0, "'l'"), -(27374, 0, "'g'"), -(27375, 0, "'o'"), -(27376, 0, "'r'"), -(27377, 0, "'i'"), -(27378, 0, "'t'"), -(27379, 0, "'h'"), -(27380, 0, "'m'"), -(27381, 0, "'s'"), -(27382, 0, "' '"), -(27383, 0, "'a'"), -(27384, 0, "'r'"), -(27385, 0, "'e'"), -(27386, 0, "' '"), -(27372, 15, "''"), -(27367, 5, "'t'"), -(27368, 0, "'h'"), -(27369, 0, "'e'"), -(27370, 0, "' '"), -(27371, 0, "'i'"), -(27372, 0, "'m'"), -(27373, 0, "'p'"), -(27374, 0, "'l'"), -(27375, 0, "'e'"), -(27376, 0, "'m'"), -(27377, 0, "'e'"), -(27378, 0, "'n'"), -(27379, 0, "'t'"), -(27380, 0, "'a'"), -(27381, 0, "'t'"), -(27382, 0, "'i'"), -(27383, 0, "'o'"), -(27384, 0, "'n'"), -(27385, 0, "' '"), -(27386, 0, "'s'"), -(27387, 0, "'p'"), -(27388, 0, "'e'"), -(27389, 0, "'e'"), -(27390, 0, "'d'"), -(27391, 0, "' '"), -(27392, 0, "'i'"), -(27393, 0, "'s'"), -(27394, 0, "' '"), -(27395, 0, "'i'"), -(27396, 0, "'d'"), -(27397, 0, "'e'"), -(27398, 0, "'n'"), -(27399, 0, "'t'"), -(27400, 0, "'i'"), -(27401, 0, "'c'"), -(27402, 0, "'a'"), -(27403, 0, "'l'"), -(27404, 0, "' '"), -(27405, 0, "'-'"), -(27406, 0, "' '"), -(27407, 0, "'b'"), -(27408, 0, "'e'"), -(27409, 0, "'c'"), -(27410, 0, "'a'"), -(27411, 0, "'u'"), -(27412, 0, "'s'"), -(27413, 0, "'e'"), -(27414, 0, "' '"), -(27415, 0, "'i'"), -(27416, 0, "'n'"), -(27417, 0, "' '"), -(27418, 0, "'m'"), -(27419, 0, "'y'"), -(27420, 0, "' '"), -(27421, 0, "'r'"), -(27422, 0, "'e'"), -(27423, 0, "'f'"), -(27424, 0, "'e'"), -(27425, 0, "'r'"), -(27426, 0, "'e'"), -(27427, 0, "'n'"), -(27428, 0, "'c'"), -(27429, 0, "'e'"), -(27430, 0, "' '"), -(27431, 0, "'C'"), -(27432, 0, "'R'"), -(27433, 0, "'D'"), -(27434, 0, "'T'"), -(27435, 0, "' '"), -(27436, 0, "'i'"), -(27437, 0, "'m'"), -(27438, 0, "'p'"), -(27439, 0, "'l'"), -(27440, 0, "'e'"), -(27441, 0, "'m'"), -(27442, 0, "'e'"), -(27443, 0, "'n'"), -(27444, 0, "'t'"), -(27445, 0, "'a'"), -(27446, 0, "'t'"), -(27447, 0, "'i'"), -(27448, 0, "'o'"), -(27449, 0, "'n'"), -(27450, 0, "' '"), -(27450, 1, "''"), -(27450, 0, "','"), -(27451, 0, "' '"), -(27452, 0, "'i'"), -(27453, 0, "'t'"), -(27454, 0, "' '"), -(27455, 0, "'i'"), -(27456, 0, "'s'"), -(27457, 0, "'.'"), -(27458, 0, "' '"), -(27459, 0, "'A'"), -(27459, 1, "''"), -(27421, 0, "'['"), -(27436, 0, "']'"), -(27436, 1, "''"), -(27451, 0, "']'"), -(27452, 0, "'('"), -(27453, 0, "'https://github.com/josephg/reference-crdts'"), -(27495, 0, "')'"), -(27505, 0, "'W'"), -(27506, 0, "'i'"), -(27507, 0, "'t'"), -(27508, 0, "'h'"), -(27509, 0, "' '"), -(27510, 0, "'a'"), -(27511, 0, "' '"), -(27511, 1, "''"), -(27510, 1, "''"), -(27510, 0, "'t'"), -(27511, 0, "'h'"), -(27512, 0, "'i'"), -(27513, 0, "'s'"), -(27514, 0, "' '"), -(27515, 0, "'e'"), -(27516, 0, "'d'"), -(27517, 0, "'i'"), -(27518, 0, "'t'"), -(27519, 0, "'i'"), -(27520, 0, "'n'"), -(27521, 0, "'g'"), -(27522, 0, "' '"), -(27523, 0, "'t'"), -(27524, 0, "'r'"), -(27525, 0, "'a'"), -(27526, 0, "'c'"), -(27527, 0, "'e'"), -(27528, 0, "','"), -(27529, 0, "' '"), -(27164, 84, "''"), -(27164, 0, "'''"), -(27165, 0, "'v'"), -(27166, 0, "'e'"), -(27167, 0, "' '"), -(27168, 0, "'w'"), -(27169, 0, "'r'"), -(27170, 0, "'i'"), -(27171, 0, "'t'"), -(27172, 0, "'t'"), -(27173, 0, "'e'"), -(27174, 0, "'n'"), -(27175, 0, "' '"), -(27176, 0, "'t'"), -(27177, 0, "'h'"), -(27163, 15, "''"), -(27163, 29, "'I'"), -(27164, 0, "'''"), -(27165, 0, "'m'"), -(27166, 0, "' '"), -(27167, 0, "'c'"), -(27168, 0, "'o'"), -(27169, 0, "'m'"), -(27170, 0, "'p'"), -(27170, 1, "''"), -(27169, 1, "''"), -(27168, 1, "''"), -(27167, 1, "''"), -(27167, 0, "'d'"), -(27168, 0, "'i'"), -(27169, 0, "'r'"), -(27170, 0, "'e'"), -(27171, 0, "'c'"), -(27172, 0, "'t'"), -(27173, 0, "'l'"), -(27174, 0, "'y'"), -(27175, 0, "' '"), -(27176, 0, "'c'"), -(27177, 0, "'o'"), -(27178, 0, "'m'"), -(27179, 0, "'p'"), -(27180, 0, "'a'"), -(27181, 0, "'r'"), -(27182, 0, "'i'"), -(27183, 0, "'n'"), -(27184, 0, "'g'"), -(27185, 0, "' '"), -(27186, 0, "'t'"), -(27187, 0, "'h'"), -(27188, 0, "'e'"), -(27189, 0, "' '"), -(27190, 0, "'p'"), -(27191, 0, "'e'"), -(27192, 0, "'r'"), -(27193, 0, "'f'"), -(27194, 0, "'o'"), -(27195, 0, "'r'"), -(27196, 0, "'m'"), -(27197, 0, "'a'"), -(27198, 0, "'n'"), -(27199, 0, "'c'"), -(27200, 0, "'e'"), -(27201, 0, "' '"), -(27202, 0, "'o'"), -(27203, 0, "'f'"), -(27204, 0, "' '"), -(27205, 0, "'i'"), -(27206, 0, "'m'"), -(27207, 0, "'p'"), -(27208, 0, "'l'"), -(27209, 0, "'e'"), -(27210, 0, "'m'"), -(27211, 0, "'e'"), -(27212, 0, "'n'"), -(27213, 0, "'t'"), -(27214, 0, "'a'"), -(27215, 0, "'t'"), -(27216, 0, "'i'"), -(27217, 0, "'o'"), -(27218, 0, "'n'"), -(27219, 0, "'s'"), -(27220, 0, "' '"), -(27221, 0, "'i'"), -(27222, 0, "'m'"), -(27222, 1, "''"), -(27221, 1, "''"), -(27221, 0, "'o'"), -(27222, 0, "'f'"), -(27223, 1, "''"), -(27163, 0, "'T'"), -(27164, 0, "'h'"), -(27165, 0, "'r'"), -(27166, 0, "'o'"), -(27167, 0, "'u'"), -(27168, 0, "'g'"), -(27169, 0, "'h'"), -(27170, 0, "' '"), -(27171, 0, "'t'"), -(27172, 0, "'h'"), -(27173, 0, "'i'"), -(27174, 0, "'s'"), -(27175, 0, "' '"), -(27176, 0, "'p'"), -(27177, 0, "'o'"), -(27178, 0, "'s'"), -(27179, 0, "'t'"), -(27180, 0, "' '"), -(27297, 0, "' '"), -(27298, 0, "'i'"), -(27299, 0, "'n'"), -(27300, 0, "'t'"), -(27301, 0, "'e'"), -(27302, 0, "'r'"), -(27303, 0, "'c'"), -(27304, 0, "'h'"), -(27305, 0, "'a'"), -(27306, 0, "'n'"), -(27307, 0, "'g'"), -(27308, 0, "'a'"), -(27309, 0, "'b'"), -(27310, 0, "'l'"), -(27311, 0, "'y'"), -(27308, 0, "'e'"), -(27314, 0, "' '"), -(27315, 0, "'T'"), -(27316, 0, "'h'"), -(27317, 0, "'i'"), -(27318, 0, "'s'"), -(27319, 0, "' '"), -(27320, 0, "'o'"), -(27321, 0, "'n'"), -(27322, 0, "'l'"), -(27323, 0, "'y'"), -(27324, 0, "' '"), -(27325, 0, "'m'"), -(27326, 0, "'a'"), -(27327, 0, "'k'"), -(27328, 0, "'e'"), -(27329, 0, "'s'"), -(27330, 0, "' '"), -(27331, 0, "'s'"), -(27332, 0, "'e'"), -(27333, 0, "'n'"), -(27334, 0, "'s'"), -(27335, 0, "'e'"), -(27336, 0, "' '"), -(27337, 0, "'i'"), -(27338, 0, "'f'"), -(27339, 69, "''"), -(27339, 0, "' '"), -(27340, 0, "'t'"), -(27341, 0, "'h'"), -(27342, 0, "'e'"), -(27343, 0, "' '"), -(27344, 0, "'a'"), -(27345, 0, "'l'"), -(27346, 0, "'g'"), -(27347, 0, "'o'"), -(27348, 0, "'r'"), -(27349, 0, "'i'"), -(27350, 0, "'t'"), -(27351, 0, "'h'"), -(27352, 0, "'m'"), -(27353, 0, "'s'"), -(27354, 0, "' '"), -(27355, 0, "'a'"), -(27356, 0, "'r'"), -(27357, 0, "'e'"), -(27358, 0, "' '"), -(27359, 0, "'i'"), -(27360, 0, "'n'"), -(27361, 0, "'t'"), -(27362, 0, "'e'"), -(27363, 0, "'r'"), -(27364, 0, "'n'"), -(27364, 1, "''"), -(27364, 0, "'c'"), -(27365, 0, "'h'"), -(27366, 0, "'a'"), -(27367, 0, "'n'"), -(27368, 0, "'g'"), -(27369, 0, "'a'"), -(27370, 0, "'b'"), -(27371, 0, "'l'"), -(27372, 0, "'e'"), -(27369, 0, "'e'"), -(27315, 59, "''"), -(27315, 0, "'T'"), -(27316, 0, "'h'"), -(27317, 0, "'i'"), -(27318, 0, "'s'"), -(27319, 0, "' '"), -(27320, 0, "'r'"), -(27321, 0, "'e'"), -(27322, 0, "'s'"), -(27323, 0, "'t'"), -(27324, 0, "'s'"), -(27325, 0, "' '"), -(27326, 0, "'o'"), -(27327, 0, "'n'"), -(27328, 0, "' '"), -(27329, 0, "'t'"), -(27330, 0, "'h'"), -(27331, 0, "'e'"), -(27332, 0, "' '"), -(27333, 0, "'a'"), -(27334, 0, "'s'"), -(27335, 0, "'s'"), -(27336, 0, "'u'"), -(27337, 0, "'m'"), -(27338, 0, "'p'"), -(27339, 0, "'t'"), -(27340, 0, "'i'"), -(27341, 0, "'o'"), -(27342, 0, "'n'"), -(27343, 0, "' '"), -(27344, 0, "'t'"), -(27345, 0, "'h'"), -(27346, 0, "'a'"), -(27347, 0, "'t'"), -(27348, 0, "' '"), -(27349, 0, "'b'"), -(27350, 0, "'o'"), -(27351, 0, "'t'"), -(27352, 0, "'h'"), -(27353, 0, "' '"), -(27354, 0, "'a'"), -(27355, 0, "'l'"), -(27356, 0, "'g'"), -(27357, 0, "'o'"), -(27358, 0, "'r'"), -(27359, 0, "'i'"), -(27360, 0, "'t'"), -(27361, 0, "'h'"), -(27362, 0, "'m'"), -(27363, 0, "'s'"), -(27364, 0, "' '"), -(27365, 0, "'r'"), -(27366, 0, "'u'"), -(27367, 0, "'n'"), -(27368, 0, "' '"), -(27369, 0, "'j'"), -(27370, 0, "'u'"), -(27371, 0, "'s'"), -(27372, 0, "'t'"), -(27373, 0, "' '"), -(27374, 0, "'a'"), -(27375, 0, "'s'"), -(27376, 0, "' '"), -(27377, 0, "'f'"), -(27378, 0, "'a'"), -(27379, 0, "'s'"), -(27380, 0, "'t'"), -(27381, 0, "' '"), -(27382, 0, "'a'"), -(27383, 0, "'s'"), -(27384, 0, "' '"), -(27385, 0, "'e'"), -(27386, 0, "'a'"), -(27387, 0, "'c'"), -(27388, 0, "'h'"), -(27389, 0, "' '"), -(27390, 0, "'o'"), -(27391, 0, "'t'"), -(27392, 0, "'h'"), -(27393, 0, "'e'"), -(27394, 0, "'r'"), -(27398, 13, "''"), -(27397, 1, "''"), -(27396, 1, "''"), -(27395, 1, "''"), -(27395, 0, "'.'"), -(27314, 0, "' '"), -(27315, 0, "'Y'"), -(27316, 0, "'A'"), -(27317, 0, "'T'"), -(27318, 0, "'A'"), -(27319, 0, "' '"), -(27315, 5, "'W'"), -(27316, 0, "'h'"), -(27317, 0, "'e'"), -(27318, 0, "'n'"), -(27319, 0, "' '"), -(27320, 0, "'t'"), -(27321, 0, "'h'"), -(27322, 0, "'e'"), -(27323, 0, "'r'"), -(27324, 0, "'e'"), -(27325, 0, "' '"), -(27326, 0, "'a'"), -(27327, 0, "'r'"), -(27328, 0, "'e'"), -(27329, 0, "' '"), -(27330, 0, "'n'"), -(27331, 0, "'o'"), -(27332, 0, "' '"), -(27333, 0, "'c'"), -(27334, 0, "'o'"), -(27335, 0, "'n'"), -(27336, 0, "'c'"), -(27337, 0, "'u'"), -(27338, 0, "'r'"), -(27339, 0, "'r'"), -(27340, 0, "'e'"), -(27341, 0, "'n'"), -(27342, 0, "'t'"), -(27343, 0, "' '"), -(27344, 0, "'e'"), -(27345, 0, "'d'"), -(27346, 0, "'i'"), -(27347, 0, "'t'"), -(27348, 0, "'s'"), -(27349, 0, "','"), -(27350, 0, "' '"), -(27351, 0, "'a'"), -(27352, 0, "'l'"), -(27353, 0, "'l'"), -(27354, 0, "' '"), -(27355, 0, "'C'"), -(27356, 0, "'R'"), -(27357, 0, "'D'"), -(27358, 0, "'T'"), -(27355, 0, "'l'"), -(27356, 0, "'i'"), -(27357, 0, "'s'"), -(27358, 0, "'t'"), -(27359, 0, "' '"), -(27364, 0, "'s'"), -(27365, 0, "' '"), -(27315, 51, "''"), -(27314, 1, "''"), -(27329, 3, "'a'"), -(27329, 1, "''"), -(27329, 0, "'t'"), -(27330, 0, "'h'"), -(27331, 0, "'e'"), -(27354, 10, "'s'"), -(27355, 0, "'e'"), -(27356, 0, "'m'"), -(27357, 0, "'a'"), -(27358, 0, "'n'"), -(27359, 0, "'t'"), -(27360, 0, "'i'"), -(27361, 0, "'c'"), -(27362, 0, "'s'"), -(27363, 0, "' '"), -(27349, 5, "'t'"), -(27350, 0, "'h'"), -(27351, 0, "'e'"), -(27352, 0, "' '"), -(27362, 0, "' '"), -(27363, 0, "'a'"), -(27364, 0, "'r'"), -(27365, 0, "'e'"), -(27366, 0, "' '"), -(27367, 0, "'i'"), -(27368, 0, "'n'"), -(27369, 0, "'t'"), -(27370, 0, "'e'"), -(27371, 0, "'r'"), -(27372, 0, "'c'"), -(27373, 0, "'h'"), -(27374, 0, "'a'"), -(27375, 0, "'n'"), -(27376, 0, "'g'"), -(27377, 0, "'a'"), -(27378, 0, "'b'"), -(27379, 0, "'l'"), -(27380, 0, "'e'"), -(27377, 0, "'e'"), -(27382, 32, "''"), -(27382, 0, "','"), -(27383, 0, "' '"), -(27384, 0, "'a'"), -(27385, 0, "'n'"), -(27386, 0, "'d'"), -(27387, 0, "' '"), -(27388, 0, "'t'"), -(27389, 0, "'h'"), -(27390, 0, "'e'"), -(27391, 0, "' '"), -(27392, 0, "'p'"), -(27393, 0, "'e'"), -(27394, 0, "'r'"), -(27395, 0, "'f'"), -(27396, 0, "'o'"), -(27397, 0, "'r'"), -(27398, 0, "'m'"), -(27399, 0, "'a'"), -(27400, 0, "'n'"), -(27401, 0, "'c'"), -(27402, 0, "'e'"), -(27388, 15, "'i'"), -(27389, 0, "'f'"), -(27390, 0, "' '"), -(27391, 0, "'y'"), -(27392, 0, "'o'"), -(27393, 0, "'u'"), -(27394, 0, "' '"), -(27395, 0, "'s'"), -(27396, 0, "'w'"), -(27397, 0, "'a'"), -(27398, 0, "'p'"), -(27399, 0, "' '"), -(27400, 0, "'s'"), -(27401, 0, "'e'"), -(27402, 0, "'m'"), -(27403, 0, "'a'"), -(27404, 0, "'n'"), -(27405, 0, "'t'"), -(27406, 0, "'i'"), -(27407, 0, "'c'"), -(27408, 0, "'s'"), -(27409, 0, "','"), -(27410, 0, "' '"), -(27411, 0, "'t'"), -(27412, 0, "'h'"), -(27413, 0, "'e'"), -(27414, 0, "' '"), -(27415, 0, "'p'"), -(27416, 0, "'e'"), -(27417, 0, "'r'"), -(27418, 0, "'f'"), -(27419, 0, "'o'"), -(27420, 0, "'m'"), -(27421, 0, "'r'"), -(27422, 0, "'a'"), -(27422, 1, "''"), -(27421, 1, "''"), -(27420, 1, "''"), -(27420, 0, "'r'"), -(27421, 0, "'m'"), -(27422, 0, "'a'"), -(27423, 0, "'n'"), -(27424, 0, "'c'"), -(27425, 0, "'e'"), -(27426, 0, "' '"), -(27427, 0, "'w'"), -(27428, 0, "'o'"), -(27429, 0, "'n'"), -(27430, 0, "'''"), -(27431, 0, "'t'"), -(27432, 0, "' '"), -(27433, 0, "'c'"), -(27434, 0, "'h'"), -(27435, 0, "'a'"), -(27436, 0, "'n'"), -(27437, 0, "'g'"), -(27438, 0, "'e'"), -(27439, 0, "'.'"), -(27439, 1, "''"), -(27441, 0, "'I'"), -(27442, 0, "'''"), -(27443, 0, "'v'"), -(27444, 0, "'e'"), -(27445, 0, "' '"), -(27446, 0, "'d'"), -(27447, 0, "'e'"), -(27448, 0, "'m'"), -(27449, 0, "'o'"), -(27450, 0, "'n'"), -(27451, 0, "'s'"), -(27452, 0, "'t'"), -(27453, 0, "'r'"), -(27454, 0, "'a'"), -(27455, 0, "'t'"), -(27456, 0, "'e'"), -(27457, 0, "'d'"), -(27458, 0, "' '"), -(27459, 0, "'t'"), -(27460, 0, "'h'"), -(27461, 0, "'i'"), -(27462, 0, "'s'"), -(27463, 0, "' '"), -(27464, 0, "'i'"), -(27465, 0, "'n'"), -(27466, 0, "'t'"), -(27467, 0, "'e'"), -(27468, 0, "'r'"), -(27469, 0, "'c'"), -(27470, 0, "'h'"), -(27471, 0, "'a'"), -(27472, 0, "'n'"), -(27473, 0, "'g'"), -(27474, 0, "'a'"), -(27475, 0, "'b'"), -(27476, 0, "'i'"), -(27477, 0, "'l'"), -(27478, 0, "'i'"), -(27479, 0, "'t'"), -(27480, 0, "'y'"), -(27481, 0, "' '"), -(27482, 0, "'i'"), -(27483, 0, "'n'"), -(27484, 0, "' '"), -(27485, 0, "'m'"), -(27486, 0, "'y'"), -(27487, 0, "' '"), -(27464, 18, "'p'"), -(27465, 0, "'r'"), -(27466, 0, "'o'"), -(27467, 0, "'p'"), -(27468, 0, "'e'"), -(27469, 0, "'r'"), -(27470, 0, "'t'"), -(27471, 0, "'y'"), -(27472, 0, "' '"), -(27441, 0, "'T'"), -(27442, 0, "'h'"), -(27443, 0, "'i'"), -(27444, 0, "'s'"), -(27445, 0, "' '"), -(27446, 0, "'i'"), -(27447, 0, "'s'"), -(27448, 0, "' '"), -(27449, 0, "'a'"), -(27450, 0, "'c'"), -(27451, 0, "'t'"), -(27452, 0, "'u'"), -(27453, 0, "'a'"), -(27454, 0, "'l'"), -(27455, 0, "'l'"), -(27456, 0, "'y'"), -(27457, 0, "' '"), -(27458, 0, "'a'"), -(27459, 0, "' '"), -(27460, 0, "'b'"), -(27461, 0, "'o'"), -(27462, 0, "'l'"), -(27463, 0, "'d'"), -(27464, 0, "' '"), -(27465, 0, "'l'"), -(27465, 1, "''"), -(27465, 0, "'c'"), -(27466, 0, "'l'"), -(27467, 0, "'a'"), -(27468, 0, "'i'"), -(27469, 0, "'m'"), -(27470, 0, "' '"), -(27471, 0, "'-'"), -(27472, 0, "' '"), -(27473, 0, "'w'"), -(27474, 0, "'h'"), -(27475, 0, "'i'"), -(27476, 0, "'c'"), -(27477, 0, "'h'"), -(27478, 0, "' '"), -(27497, 14, "''"), -(27578, 34, "''"), -(27578, 0, "'.'"), -(27579, 0, "' '"), -(27580, 0, "'A'"), -(27581, 0, "'n'"), -(27582, 0, "'d'"), -(27583, 0, "' '"), -(27580, 4, "'Y'"), -(27581, 0, "'o'"), -(27582, 0, "'u'"), -(27583, 0, "' '"), -(27580, 4, "'I'"), -(27581, 0, "' '"), -(27582, 0, "'b'"), -(27583, 0, "'e'"), -(27584, 0, "'l'"), -(27585, 0, "'i'"), -(27586, 0, "'e'"), -(27587, 0, "'v'"), -(27588, 0, "'e'"), -(27589, 0, "' '"), -(27590, 0, "'y'"), -(27591, 0, "'o'"), -(27592, 0, "'u'"), -(27593, 0, "' '"), -(27594, 0, "'c'"), -(27595, 0, "'o'"), -(27596, 0, "'u'"), -(27597, 0, "'l'"), -(27598, 0, "'d'"), -(27599, 0, "' '"), -(27600, 0, "'u'"), -(27601, 0, "'s'"), -(27602, 0, "'e'"), -(27603, 0, "' '"), -(27604, 0, "'t'"), -(27605, 0, "'h'"), -(27606, 0, "'e'"), -(27607, 0, "' '"), -(27608, 0, "'s'"), -(27609, 0, "'a'"), -(27610, 0, "'m'"), -(27611, 0, "'e'"), -(27612, 0, "' '"), -(27613, 0, "'a'"), -(27614, 0, "'p'"), -(27615, 0, "'p'"), -(27616, 0, "'r'"), -(27617, 0, "'o'"), -(27618, 0, "'a'"), -(27619, 0, "'c'"), -(27620, 0, "'h'"), -(27621, 0, "' '"), -(27622, 0, "'t'"), -(27623, 0, "'o'"), -(27624, 0, "' '"), -(27625, 0, "'m'"), -(27626, 0, "'o'"), -(27627, 0, "'d'"), -(27628, 0, "'i'"), -(27629, 0, "'f'"), -(27630, 0, "'y'"), -(27631, 0, "' '"), -(27632, 0, "'y'"), -(27633, 0, "'j'"), -(27634, 0, "'s'"), -(27635, 0, "' '"), -(27636, 0, "'t'"), -(27637, 0, "'o'"), -(27638, 0, "' '"), -(27639, 0, "'i'"), -(27640, 0, "'m'"), -(27641, 0, "'p'"), -(27642, 0, "'e'"), -(27643, 0, "'m'"), -(27644, 0, "'e'"), -(27645, 0, "'n'"), -(27646, 0, "'t'"), -(27639, 8, "'i'"), -(27640, 0, "'m'"), -(27641, 0, "'p'"), -(27642, 0, "'l'"), -(27643, 0, "'e'"), -(27644, 0, "'m'"), -(27645, 0, "'e'"), -(27646, 0, "'n'"), -(27647, 0, "'t'"), -(27648, 0, "' '"), -(27649, 0, "'R'"), -(27650, 0, "'G'"), -(27651, 0, "'A'"), -(27652, 0, "' '"), -(27653, 0, "'s'"), -(27654, 0, "'e'"), -(27655, 0, "'m'"), -(27656, 0, "'a'"), -(27657, 0, "'n'"), -(27658, 0, "'t'"), -(27659, 0, "'i'"), -(27660, 0, "'c'"), -(27661, 0, "'s'"), -(27662, 0, "' '"), -(27663, 0, "'-'"), -(27664, 0, "' '"), -(27665, 0, "'y'"), -(27666, 0, "'o'"), -(27667, 0, "'u'"), -(27668, 0, "'''"), -(27669, 0, "'d'"), -(27670, 0, "' '"), -(27671, 0, "'j'"), -(27672, 0, "'u'"), -(27673, 0, "'s'"), -(27674, 0, "'t'"), -(27675, 0, "' '"), -(27676, 0, "'h'"), -(27677, 0, "'a'"), -(27678, 0, "'v'"), -(27679, 0, "'e'"), -(27680, 0, "' '"), -(27681, 0, "'t'"), -(27682, 0, "'o'"), -(27683, 0, "' '"), -(27684, 0, "'c'"), -(27685, 0, "'h'"), -(27686, 0, "'a'"), -(27687, 0, "'n'"), -(27688, 0, "'g'"), -(27689, 0, "'e'"), -(27581, 0, "'''"), -(27582, 0, "'m'"), -(27583, 0, "' '"), -(27584, 0, "'c'"), -(27585, 0, "'o'"), -(27586, 0, "'n'"), -(27587, 0, "'v'"), -(27588, 0, "'i'"), -(27589, 0, "'n'"), -(27590, 0, "'c'"), -(27591, 0, "'e'"), -(27592, 0, "'d'"), -(27593, 8, "''"), -(27694, 0, "' '"), -(27695, 0, "'y'"), -(27696, 0, "'j'"), -(27697, 0, "'s'"), -(27698, 0, "'''"), -(27699, 0, "'s'"), -(27700, 0, "' '"), -(27701, 0, "'*'"), -(27702, 0, "'i'"), -(27703, 0, "'n'"), -(27704, 0, "'t'"), -(27705, 0, "'e'"), -(27706, 0, "'g'"), -(27707, 0, "'r'"), -(27708, 0, "'a'"), -(27709, 0, "'t'"), -(27710, 0, "'e'"), -(27711, 0, "'*'"), -(27712, 0, "' '"), -(27713, 0, "'m'"), -(27714, 0, "'e'"), -(27715, 0, "'t'"), -(27716, 0, "'h'"), -(27717, 0, "'o'"), -(27718, 0, "'d'"), -(27719, 0, "','"), -(27720, 0, "' '"), -(27721, 0, "'a'"), -(27722, 0, "'n'"), -(27723, 0, "'d'"), -(27724, 0, "' '"), -(27725, 0, "'s'"), -(27726, 0, "'t'"), -(27727, 0, "'o'"), -(27728, 0, "'r'"), -(27729, 0, "'e'"), -(27730, 0, "' '"), -(27731, 0, "'*'"), -(27732, 0, "'m'"), -(27733, 0, "'a'"), -(27733, 1, "''"), -(27732, 1, "''"), -(27732, 0, "'s'"), -(27733, 0, "'e'"), -(27721, 4, "''"), -(27730, 0, "'q'"), -(27731, 0, "'*'"), -(27732, 0, "' '"), -(27733, 0, "'i'"), -(27734, 0, "'s'"), -(27735, 0, "'n'"), -(27736, 0, "'t'"), -(27737, 0, "'e'"), -(27738, 0, "'a'"), -(27739, 0, "'d'"), -(27740, 0, "' '"), -(27741, 0, "'o'"), -(27742, 0, "'f'"), -(27733, 10, "'i'"), -(27734, 0, "'n'"), -(27735, 0, "'s'"), -(27736, 0, "'t'"), -(27737, 0, "'e'"), -(27738, 0, "'a'"), -(27739, 0, "'d'"), -(27740, 0, "' '"), -(27741, 0, "'o'"), -(27742, 0, "'f'"), -(27743, 0, "' '"), -(27744, 0, "'*'"), -(27745, 0, "'o'"), -(27746, 0, "'r'"), -(27747, 0, "'i'"), -(27748, 0, "'g'"), -(27749, 0, "'i'"), -(27750, 0, "'n'"), -(27751, 0, "'R'"), -(27752, 0, "'i'"), -(27753, 0, "'g'"), -(27754, 0, "'h'"), -(27755, 0, "'t'"), -(27756, 0, "'*'"), -(27757, 0, "' '"), -(27758, 0, "'i'"), -(27759, 0, "'n'"), -(27760, 0, "' '"), -(27761, 0, "'*'"), -(27762, 0, "'I'"), -(27763, 0, "'t'"), -(27764, 0, "'e'"), -(27765, 0, "'m'"), -(27766, 0, "'*'"), -(27767, 0, "' '"), -(27768, 0, "'a'"), -(27769, 0, "'n'"), -(27770, 0, "'d'"), -(27771, 0, "' '"), -(27772, 0, "'s'"), -(27773, 0, "'t'"), -(27774, 0, "'o'"), -(27775, 0, "'r'"), -(27776, 0, "'e'"), -(27777, 0, "' '"), -(27778, 0, "'*'"), -(27779, 0, "'m'"), -(27780, 0, "'a'"), -(27781, 0, "'x'"), -(27782, 0, "'S'"), -(27783, 0, "'e'"), -(27784, 0, "'q'"), -(27785, 0, "'*'"), -(27777, 0, "' '"), -(27778, 0, "'a'"), -(27779, 0, "'n'"), -(27780, 0, "'d'"), -(27781, 0, "' '"), -(27782, 0, "'u'"), -(27783, 0, "'p'"), -(27784, 0, "'d'"), -(27785, 0, "'a'"), -(27786, 0, "'t'"), -(27787, 0, "'e'"), -(27797, 0, "' '"), -(27798, 0, "'i'"), -(27799, 0, "'n'"), -(27800, 0, "' '"), -(27801, 0, "'t'"), -(27802, 0, "'h'"), -(27803, 0, "'e'"), -(27804, 0, "' '"), -(27805, 0, "'d'"), -(27806, 0, "'o'"), -(27807, 0, "'c'"), -(27808, 0, "'u'"), -(27809, 0, "'m'"), -(27810, 0, "'e'"), -(27811, 0, "'n'"), -(27812, 0, "'t'"), -(27813, 0, "'.'"), -(27814, 0, "' '"), -(27815, 0, "'T'"), -(27816, 0, "'h'"), -(27817, 0, "'i'"), -(27818, 0, "'s'"), -(27819, 0, "' '"), -(27815, 5, "'T'"), -(27816, 0, "'h'"), -(27817, 0, "'e'"), -(27580, 15, "'Y'"), -(27652, 0, "' '"), -(27653, 0, "'i'"), -(27654, 0, "'f'"), -(27655, 0, "' '"), -(27656, 0, "'y'"), -(27657, 0, "'o'"), -(27658, 0, "'u'"), -(27659, 0, "' '"), -(27660, 0, "'w'"), -(27661, 0, "'a'"), -(27662, 0, "'n'"), -(27663, 0, "'t'"), -(27664, 0, "'e'"), -(27665, 0, "'d'"), -(27667, 1, "''"), -(27666, 1, "''"), -(27666, 0, "'.'"), -(27668, 1, "''"), -(27668, 0, "'Y'"), -(27666, 0, "' '"), -(27667, 0, "'t'"), -(27668, 0, "'o'"), -(27762, 0, "' '"), -(27763, 0, "'e'"), -(27764, 0, "'a'"), -(27765, 0, "'c'"), -(27766, 0, "'h'"), -(27774, 0, "','"), -(27775, 4, "''"), -(27817, 0, "' '"), -(27818, 0, "'a'"), -(27819, 0, "'n'"), -(27820, 0, "'d'"), -(27821, 0, "' '"), -(27822, 0, "'h'"), -(27822, 1, "''"), -(27822, 0, "'c'"), -(27823, 0, "'h'"), -(27824, 0, "'a'"), -(27825, 0, "'n'"), -(27826, 0, "'g'"), -(27827, 0, "'e'"), -(27828, 0, "' '"), -(27829, 0, "'t'"), -(27830, 0, "'h'"), -(27831, 0, "'e'"), -(27832, 0, "' '"), -(27833, 0, "'b'"), -(27834, 0, "'i'"), -(27835, 0, "'n'"), -(27836, 0, "'a'"), -(27837, 0, "'r'"), -(27838, 0, "'y'"), -(27839, 0, "' '"), -(27840, 0, "'e'"), -(27841, 0, "'n'"), -(27842, 0, "'c'"), -(27843, 0, "'o'"), -(27844, 0, "'d'"), -(27845, 0, "'i'"), -(27846, 0, "'n'"), -(27847, 0, "'g'"), -(27848, 0, "' '"), -(27849, 0, "'f'"), -(27850, 0, "'o'"), -(27851, 0, "'r'"), -(27852, 0, "'m'"), -(27853, 0, "'a'"), -(27854, 0, "'t'"), -(27857, 3, "'I'"), -(27858, 0, "' '"), -(27859, 0, "'t'"), -(27860, 0, "'a'"), -(27861, 0, "'l'"), -(27862, 0, "'k'"), -(27863, 0, "'e'"), -(27864, 0, "'d'"), -(27865, 0, "' '"), -(27866, 0, "'t'"), -(27867, 0, "'o'"), -(27868, 0, "' '"), -(27869, 0, "'K'"), -(27870, 0, "'e'"), -(27871, 0, "'v'"), -(27872, 0, "'i'"), -(27873, 0, "'n'"), -(27874, 0, "' '"), -(27875, 0, "'a'"), -(27876, 0, "'b'"), -(27877, 0, "'o'"), -(27878, 0, "'u'"), -(27879, 0, "'t'"), -(27880, 0, "' '"), -(27881, 0, "'t'"), -(27882, 0, "'h'"), -(27883, 0, "'i'"), -(27884, 0, "'s'"), -(27885, 0, "' '"), -(27886, 0, "'a'"), -(27887, 0, "'n'"), -(27888, 0, "'d'"), -(27889, 0, "' '"), -(27890, 0, "'h'"), -(27891, 0, "'e'"), -(27892, 0, "' '"), -(27893, 0, "'d'"), -(27894, 0, "'o'"), -(27895, 0, "'e'"), -(27896, 0, "'s'"), -(27897, 0, "'n'"), -(27898, 0, "'''"), -(27899, 0, "'t'"), -(27900, 0, "' '"), -(27901, 0, "'s'"), -(27902, 0, "'e'"), -(27903, 0, "'e'"), -(27904, 0, "' '"), -(27905, 0, "'t'"), -(27905, 1, "''"), -(27905, 0, "'a'"), -(27906, 0, "'n'"), -(27907, 0, "'y'"), -(27908, 0, "' '"), -(27909, 0, "'p'"), -(27910, 0, "'o'"), -(27911, 0, "'i'"), -(27912, 0, "'n'"), -(27913, 0, "'t'"), -(27914, 0, "'.'"), -(27889, 1, "''"), -(27889, 0, "','"), -(27890, 0, "' '"), -(27891, 0, "'w'"), -(27892, 0, "'h'"), -(27893, 0, "'i'"), -(27894, 0, "'l'"), -(27895, 0, "'e'"), -(27896, 0, "' '"), -(27897, 0, "'c'"), -(27898, 0, "'o'"), -(27899, 0, "'o'"), -(27900, 0, "'l'"), -(27901, 0, "','"), -(27902, 0, "' '"), -(27927, 0, "' '"), -(27928, 0, "'i'"), -(27929, 0, "'n'"), -(27930, 0, "' '"), -(27930, 1, "''"), -(27929, 1, "''"), -(27928, 1, "''"), -(27927, 1, "''"), -(27918, 4, "'t'"), -(27919, 0, "'h'"), -(27920, 0, "'e'"), -(27921, 0, "' '"), -(27927, 0, "' '"), -(27928, 0, "'o'"), -(27929, 0, "'f'"), -(27930, 0, "' '"), -(27931, 0, "'m'"), -(27932, 0, "'a'"), -(27933, 0, "'k'"), -(27934, 0, "'i'"), -(27935, 0, "'n'"), -(27936, 0, "'g'"), -(27931, 6, "'a'"), -(27932, 0, "'d'"), -(27933, 0, "'d'"), -(27934, 0, "'i'"), -(27935, 0, "'n'"), -(27931, 5, "'m'"), -(27932, 0, "'a'"), -(27933, 0, "'k'"), -(27934, 0, "'i'"), -(27935, 0, "'n'"), -(27936, 0, "'g'"), -(27937, 0, "' '"), -(27938, 0, "'y'"), -(27939, 0, "'j'"), -(27940, 0, "'s'"), -(27941, 0, "' '"), -(27942, 0, "'c'"), -(27943, 0, "'o'"), -(27944, 0, "'m'"), -(27945, 0, "'p'"), -(27946, 0, "'a'"), -(27947, 0, "'t'"), -(27948, 0, "'i'"), -(27949, 0, "'b'"), -(27950, 0, "'l'"), -(27951, 0, "'e'"), -(27927, 25, "''"), -(27918, 4, "'a'"), -(27919, 0, "'n'"), -(27920, 0, "'y'"), -(27921, 0, "' '"), -(27387, 0, "'t'"), -(27388, 0, "' '"), -(27389, 0, "'a'"), -(27390, 0, "'h'"), -(27391, 0, "'t'"), -(27391, 1, "''"), -(27390, 1, "''"), -(27389, 1, "''"), -(27388, 1, "''"), -(27387, 1, "''"), -(27387, 0, "' '"), -(27388, 0, "'t'"), -(27389, 0, "'h'"), -(27390, 0, "'a'"), -(27391, 0, "'t'"), -(27444, 0, "' '"), -(27445, 0, "'('"), -(27446, 0, "'a'"), -(27447, 0, "'t'"), -(27448, 0, "' '"), -(27449, 0, "'l'"), -(27450, 0, "'e'"), -(27451, 0, "'a'"), -(27452, 0, "'s'"), -(27453, 0, "'t'"), -(27454, 0, "' '"), -(27455, 0, "'f'"), -(27456, 0, "'o'"), -(27457, 0, "'r'"), -(27458, 0, "' '"), -(27459, 0, "'s'"), -(27460, 0, "'i'"), -(27461, 0, "'n'"), -(27462, 0, "'g'"), -(27463, 0, "'l'"), -(27464, 0, "'e'"), -(27465, 0, "' '"), -(27466, 0, "'u'"), -(27467, 0, "'s'"), -(27468, 0, "'e'"), -(27469, 0, "'r'"), -(27470, 0, "' '"), -(27471, 0, "'e'"), -(27472, 0, "'d'"), -(27473, 0, "'i'"), -(27474, 0, "'t'"), -(27475, 0, "'i'"), -(27476, 0, "'n'"), -(27477, 0, "'g'"), -(27478, 0, "' '"), -(27479, 0, "'t'"), -(27480, 0, "'r'"), -(27481, 0, "'a'"), -(27482, 0, "'c'"), -(27483, 0, "'e'"), -(27484, 0, "'s'"), -(27485, 0, "')'"), -(27506, 0, "' '"), -(27507, 0, "'k'"), -(27508, 0, "'i'"), -(27509, 0, "'n'"), -(27509, 1, "''"), -(27508, 1, "''"), -(27507, 1, "''"), -(27506, 1, "''"), -(27506, 5, "' '"), -(27507, 0, "'n'"), -(27508, 0, "'o'"), -(27509, 0, "'v'"), -(27510, 0, "'e'"), -(27511, 0, "'n'"), -(27511, 1, "''"), -(27510, 1, "''"), -(27509, 1, "''"), -(27509, 0, "'v'"), -(27510, 0, "'e'"), -(27511, 0, "'l'"), -(27518, 0, "'.'"), -(27520, 8, "''"), -(27537, 0, "' '"), -(27538, 0, "'t'"), -(27539, 0, "'h'"), -(27540, 0, "'a'"), -(27541, 0, "'t'"), -(27542, 0, "' '"), -(27543, 0, "'t'"), -(27544, 0, "'h'"), -(27545, 0, "'i'"), -(27546, 0, "'s'"), -(27547, 0, "' '"), -(27548, 0, "'i'"), -(27549, 0, "'s'"), -(27550, 0, "' '"), -(27551, 0, "'t'"), -(27552, 0, "'r'"), -(27553, 0, "'u'"), -(27554, 0, "'e'"), -(27637, 0, "','"), -(27638, 0, "' '"), -(27639, 0, "'w'"), -(27640, 0, "'h'"), -(27641, 0, "'i'"), -(27642, 0, "'c'"), -(27643, 0, "'h'"), -(27644, 0, "' '"), -(27645, 0, "'h'"), -(27646, 0, "'a'"), -(27647, 0, "'s'"), -(27648, 0, "' '"), -(27649, 0, "'i'"), -(27650, 0, "'d'"), -(27651, 0, "'e'"), -(27652, 0, "'n'"), -(27653, 0, "'t'"), -(27654, 0, "'i'"), -(27655, 0, "'c'"), -(27656, 0, "'a'"), -(27657, 0, "'l'"), -(27658, 0, "' '"), -(27659, 0, "'p'"), -(27660, 0, "'e'"), -(27661, 0, "'r'"), -(27662, 0, "'f'"), -(27663, 0, "'o'"), -(27664, 0, "'r'"), -(27665, 0, "'m'"), -(27666, 0, "'a'"), -(27667, 0, "'n'"), -(27668, 0, "'c'"), -(27669, 0, "'e'"), -(27670, 0, "' '"), -(27671, 0, "'f'"), -(27672, 0, "'o'"), -(27673, 0, "'r'"), -(27674, 0, "' '"), -(27675, 0, "'y'"), -(27676, 0, "'j'"), -(27677, 0, "'s'"), -(27678, 0, "' '"), -(27679, 0, "'a'"), -(27680, 0, "'n'"), -(27681, 0, "'d'"), -(27682, 0, "' '"), -(27683, 0, "'a'"), -(27684, 0, "'u'"), -(27685, 0, "'t'"), -(27686, 0, "'o'"), -(27687, 0, "'m'"), -(27688, 0, "'e'"), -(27689, 0, "'r'"), -(27690, 0, "'g'"), -(27691, 0, "'e'"), -(27671, 0, "'w'"), -(27672, 0, "'h'"), -(27673, 0, "'e'"), -(27674, 0, "'n'"), -(27675, 0, "' '"), -(27676, 0, "'u'"), -(27677, 0, "'s'"), -(27678, 0, "'i'"), -(27679, 0, "'n'"), -(27680, 0, "'g'"), -(27681, 0, "' '"), -(27682, 3, "''"), -(27681, 1, "''"), -(27686, 3, "'o'"), -(27687, 0, "'r'"), -(27698, 0, "' '"), -(27699, 0, "'a'"), -(27699, 1, "''"), -(27699, 0, "'s'"), -(27700, 0, "'e'"), -(27701, 0, "'m'"), -(27702, 0, "'a'"), -(27703, 0, "'n'"), -(27704, 0, "'t'"), -(27705, 0, "'i'"), -(27706, 0, "'c'"), -(27707, 0, "'s'"), -(27710, 0, "'A'"), -(27711, 0, "'n'"), -(27712, 0, "'d'"), -(27713, 0, "' '"), -(27714, 0, "'I'"), -(27715, 0, "' '"), -(27716, 0, "'t'"), -(27717, 0, "'h'"), -(27718, 0, "'i'"), -(27719, 0, "'n'"), -(27720, 0, "'k'"), -(27721, 0, "' '"), -(27722, 1, "''"), -(27722, 0, "'y'"), -(27716, 7, "''"), -(27715, 1, "''"), -(27715, 0, "'''"), -(27716, 0, "'m'"), -(27717, 0, "' '"), -(27718, 0, "'c'"), -(27719, 0, "'o'"), -(27720, 0, "'n'"), -(27721, 0, "'f'"), -(27722, 0, "'i'"), -(27723, 0, "'d'"), -(27724, 0, "'e'"), -(27725, 0, "'n'"), -(27726, 0, "'t'"), -(27727, 0, "' '"), -(27728, 0, "'y'"), -(27159, 0, "'n'"), -(27160, 0, "'n'"), -(27160, 0, "'#'"), -(27161, 0, "'#'"), -(27162, 0, "'#'"), -(27163, 0, "' '"), -(27164, 0, "'Y'"), -(27165, 0, "'j'"), -(27166, 0, "'s'"), -(27167, 0, "' '"), -(27168, 0, "'='"), -(27169, 0, "'='"), -(27170, 0, "'='"), -(27164, 7, "'A'"), -(27165, 0, "'r'"), -(27166, 0, "'e'"), -(27167, 0, "' '"), -(27168, 0, "'t'"), -(27169, 0, "'h'"), -(27170, 0, "'e'"), -(27171, 0, "'s'"), -(27172, 0, "'e'"), -(27173, 0, "' '"), -(27174, 0, "'C'"), -(27175, 0, "'R'"), -(27176, 0, "'D'"), -(27177, 0, "'T'"), -(27178, 0, "'s'"), -(27179, 0, "' '"), -(27180, 0, "'a'"), -(27181, 0, "'c'"), -(27182, 0, "'t'"), -(27183, 0, "'u'"), -(27184, 0, "'l'"), -(27185, 0, "'l'"), -(27185, 1, "''"), -(27184, 1, "''"), -(27184, 0, "'a'"), -(27185, 0, "'l'"), -(27186, 0, "'l'"), -(27187, 0, "'y'"), -(27188, 0, "' '"), -(27189, 0, "'t'"), -(27190, 0, "'h'"), -(27191, 0, "'e'"), -(27192, 0, "' '"), -(27193, 0, "'s'"), -(27194, 0, "'a'"), -(27195, 0, "'m'"), -(27196, 0, "'e'"), -(27197, 0, "'?'"), -(27202, 1, "''"), -(27201, 1, "''"), -(27200, 1, "''"), -(27351, 1, "''"), -(27350, 1, "''"), -(27350, 0, "'.'"), -(27351, 0, "'n'"), -(27352, 0, "'n'"), -(27404, 16, "' '"), -(27405, 0, "'b'"), -(27406, 0, "'a'"), -(27407, 0, "'s'"), -(27408, 0, "'c'"), -(27409, 0, "'a'"), -(27410, 0, "'i'"), -(27410, 1, "''"), -(27409, 1, "''"), -(27409, 0, "'i'"), -(27409, 1, "''"), -(27408, 1, "''"), -(27408, 0, "'i'"), -(27409, 0, "'c'"), -(27410, 0, "'a'"), -(27411, 0, "'l'"), -(27412, 0, "'l'"), -(27413, 0, "'y'"), -(27414, 0, "' '"), -(27415, 0, "'t'"), -(27416, 0, "'h'"), -(27417, 0, "'e'"), -(27418, 0, "' '"), -(27419, 0, "'s'"), -(27420, 0, "'a'"), -(27421, 0, "'m'"), -(27422, 0, "'e'"), -(27547, 0, "' '"), -(27548, 0, "'b'"), -(27549, 0, "'i'"), -(27550, 0, "'g'"), -(27551, 0, "' '"), -(27552, 0, "'b'"), -(27553, 0, "'o'"), -(27554, 0, "'l'"), -(27555, 0, "'d'"), -(27548, 8, "''"), -(27547, 1, "''"), -(27559, 0, "','"), -(27559, 1, "''"), -(27559, 1, "''"), -(27559, 0, "'!'"), -(27537, 11, "''"), -(27537, 5, "''"), -(27537, 0, "'a'"), -(27538, 0, "' '"), -(27539, 0, "'n'"), -(27540, 0, "'e'"), -(27541, 0, "'w'"), -(27542, 6, "' '"), -(27543, 0, "'i'"), -(27544, 0, "'d'"), -(27545, 0, "'e'"), -(27546, 0, "'a'"), -(27547, 0, "' '"), -(27548, 0, "'t'"), -(27549, 0, "'h'"), -(27550, 0, "'a'"), -(27550, 1, "''"), -(27549, 1, "''"), -(27548, 1, "''"), -(27547, 1, "''"), -(27547, 0, "' '"), -(27548, 0, "'a'"), -(27549, 0, "'n'"), -(27550, 0, "'d'"), -(27551, 0, "' '"), -(27552, 0, "'I'"), -(27553, 0, "' '"), -(27554, 0, "'t'"), -(27555, 0, "'h'"), -(27556, 0, "'i'"), -(27557, 0, "'n'"), -(27558, 0, "'k'"), -(27559, 0, "' '"), -(27560, 0, "'I'"), -(27561, 0, "' '"), -(27548, 14, "'t'"), -(27549, 0, "'h'"), -(27550, 0, "'a'"), -(27551, 0, "'t'"), -(27552, 0, "' '"), -(27553, 0, "'I'"), -(27554, 0, "' '"), -(27555, 0, "'t'"), -(27556, 0, "'h'"), -(27557, 0, "'i'"), -(27558, 0, "'n'"), -(27559, 0, "'k'"), -(27560, 0, "' '"), -(27561, 0, "'I'"), -(27562, 0, "' '"), -(27539, 24, "'n'"), -(27540, 0, "'o'"), -(27541, 0, "'v'"), -(27542, 0, "'e'"), -(27543, 0, "'l'"), -(27544, 0, "' '"), -(27545, 0, "'i'"), -(27546, 0, "'d'"), -(27547, 0, "'e'"), -(27548, 0, "'a'"), -(27549, 0, "' '"), -(27550, 0, "'t'"), -(27551, 0, "'h'"), -(27552, 0, "'a'"), -(27553, 0, "'t'"), -(27554, 0, "' '"), -(27555, 0, "'n'"), -(27556, 0, "'o'"), -(27557, 0, "'b'"), -(27558, 0, "'o'"), -(27559, 0, "'d'"), -(27560, 0, "'y'"), -(27561, 0, "' '"), -(27555, 0, "'I'"), -(27556, 0, "' '"), -(27557, 0, "'t'"), -(27558, 0, "'h'"), -(27559, 0, "'i'"), -(27560, 0, "'n'"), -(27561, 0, "'k'"), -(27562, 0, "' '"), -(27570, 0, "'h'"), -(27571, 0, "'a'"), -(27572, 0, "'s'"), -(27573, 0, "' '"), -(27574, 0, "'d'"), -(27575, 0, "'i'"), -(27576, 0, "'s'"), -(27577, 0, "'c'"), -(27578, 0, "'o'"), -(27579, 0, "'v'"), -(27580, 0, "'e'"), -(27581, 0, "'r'"), -(27582, 0, "'e'"), -(27583, 0, "'d'"), -(27584, 0, "' '"), -(27585, 0, "'b'"), -(27586, 0, "'e'"), -(27587, 0, "'f'"), -(27588, 0, "'o'"), -(27589, 0, "'r'"), -(27590, 0, "'e'"), -(27591, 1, "''"), -(27591, 0, "'.'"), -(27592, 1, "''"), -(27592, 0, "'n'"), -(27593, 0, "'n'"), -(27611, 5, "''"), -(27616, 8, "''"), -(27616, 0, "'p'"), -(27617, 0, "'r'"), -(27618, 0, "'o'"), -(27619, 0, "'p'"), -(27620, 0, "'e'"), -(27621, 0, "'r'"), -(27621, 1, "''"), -(27620, 1, "''"), -(27619, 1, "''"), -(27618, 1, "''"), -(27617, 1, "''"), -(27616, 1, "''"), -(27616, 0, "' '"), -(27617, 0, "'p'"), -(27618, 0, "'r'"), -(27619, 0, "'o'"), -(27620, 0, "'p'"), -(27621, 0, "'e'"), -(27622, 0, "'r'"), -(27623, 0, "'t'"), -(27624, 0, "'y'"), -(27751, 0, "' '"), -(27752, 0, "'e'"), -(27753, 0, "'i'"), -(27754, 0, "'t'"), -(27755, 0, "'h'"), -(27756, 0, "'e'"), -(27757, 0, "'r'"), -(27775, 0, "'''"), -(27776, 0, "'s'"), -(27904, 4, "''"), -(27903, 1, "''"), -(27911, 0, "':'"), -(27912, 0, "'n'"), -(27913, 0, "'n'"), -(27914, 0, "'-'"), -(27916, 1, "''"), -(27916, 0, "'C'"), -(27923, 1, "''"), -(27923, 0, "'Y'"), -(27947, 0, "' '"), -(27948, 0, "'('"), -(27949, 0, "'o'"), -(27950, 0, "'r'"), -(27951, 0, "' '"), -(27952, 0, "'m'"), -(27953, 0, "'a'"), -(27954, 0, "'k'"), -(27955, 0, "'e'"), -(27956, 0, "' '"), -(27957, 0, "'a'"), -(27958, 0, "'n'"), -(27959, 0, "' '"), -(27960, 0, "'a'"), -(27961, 0, "'l'"), -(27962, 0, "'t'"), -(27963, 0, "'e'"), -(27964, 0, "'r'"), -(27965, 0, "'n'"), -(27966, 0, "'a'"), -(27967, 0, "'t'"), -(27968, 0, "'i'"), -(27969, 0, "'v'"), -(27970, 0, "'e'"), -(27971, 0, "' '"), -(27972, 0, "'w'"), -(27973, 0, "'i'"), -(27974, 0, "'t'"), -(27975, 0, "'h'"), -(27976, 0, "' '"), -(27977, 0, "'a'"), -(27978, 0, "'t'"), -(27977, 2, "'a'"), -(27978, 0, "'u'"), -(27979, 0, "'t'"), -(27980, 0, "'o'"), -(27972, 9, "''"), -(27971, 1, "''"), -(27971, 0, "')'"), -(27972, 0, "' '"), -(27973, 0, "'w'"), -(27974, 0, "'h'"), -(27975, 0, "'i'"), -(27976, 0, "'c'"), -(27977, 0, "'h'"), -(27978, 0, "' '"), -(27979, 0, "'u'"), -(27980, 0, "'s'"), -(27981, 0, "'e'"), -(27982, 0, "'d'"), -(27983, 0, "' '"), -(27984, 0, "'s'"), -(27985, 0, "'l'"), -(27986, 0, "'i'"), -(27987, 0, "'g'"), -(27988, 0, "'h'"), -(27989, 0, "'t'"), -(27990, 0, "'l'"), -(27991, 0, "'y'"), -(27992, 0, "' '"), -(27993, 0, "'d'"), -(27994, 0, "'i'"), -(27995, 0, "'f'"), -(27996, 0, "'f'"), -(27997, 0, "'e'"), -(27998, 0, "'r'"), -(27999, 0, "'e'"), -(28000, 0, "'n'"), -(28001, 0, "'t'"), -(28002, 0, "' '"), -(28003, 0, "'l'"), -(28004, 0, "'o'"), -(28005, 0, "'g'"), -(28006, 0, "'i'"), -(28007, 0, "'c'"), -(28008, 0, "' '"), -(28009, 0, "'f'"), -(28010, 0, "'o'"), -(28011, 0, "'r'"), -(28012, 0, "' '"), -(28013, 0, "'c'"), -(28014, 0, "'o'"), -(28015, 0, "'n'"), -(28016, 0, "'c'"), -(28017, 0, "'u'"), -(28018, 0, "'r'"), -(28019, 0, "'r'"), -(28020, 0, "'e'"), -(28021, 0, "'n'"), -(28022, 0, "'t'"), -(28023, 0, "' '"), -(28024, 0, "'e'"), -(28025, 0, "'d'"), -(28026, 0, "'i'"), -(28027, 0, "'t'"), -(28028, 0, "'s'"), -(28029, 3, "''"), -(28029, 0, "'n'"), -(28030, 0, "'-'"), -(28031, 0, "' '"), -(28032, 0, "'S'"), -(28083, 3, "''"), -(28083, 0, "'n'"), -(28084, 0, "'-'"), -(28085, 0, "' '"), -(28086, 0, "'S'"), -(28092, 11, "''"), -(28116, 0, "','"), -(28117, 0, "' '"), -(28118, 0, "'a'"), -(28119, 0, "'n'"), -(28120, 0, "'d'"), -(28121, 0, "' '"), -(28122, 0, "'k'"), -(28123, 0, "'e'"), -(28124, 0, "'e'"), -(28125, 0, "'p'"), -(28126, 0, "' '"), -(28127, 0, "'i'"), -(28128, 0, "'t'"), -(28129, 0, "' '"), -(28130, 0, "'u'"), -(28131, 0, "'p'"), -(28132, 0, "' '"), -(28133, 0, "'t'"), -(28134, 0, "'o'"), -(28135, 0, "' '"), -(28136, 0, "'d'"), -(28137, 0, "'o'"), -(28138, 0, "'a'"), -(28138, 1, "''"), -(28137, 1, "''"), -(28137, 0, "'a'"), -(28138, 0, "'t'"), -(28139, 0, "'e'"), -(28144, 1, "''"), -(28144, 0, "'n'"), -(28145, 0, "'-'"), -(28146, 0, "' '"), -(28147, 1, "''"), -(28147, 0, "'C'"), -(28154, 0, "'y'"), -(28155, 0, "'j'"), -(28156, 0, "'s'"), -(28157, 0, "'''"), -(28158, 0, "'s'"), -(28159, 0, "' '"), -(28160, 3, "''"), -(28159, 1, "''"), -(28183, 1, "''"), -(28183, 0, "'n'"), -(28184, 0, "'n'"), -(28255, 0, "' '"), -(28255, 1, "''"), -(28255, 0, "' '"), -(28256, 0, "'i'"), -(28257, 0, "'n'"), -(28258, 0, "' '"), -(28259, 0, "'a'"), -(28260, 0, "'d'"), -(28261, 0, "'d'"), -(28262, 0, "'i'"), -(28263, 0, "'n'"), -(28264, 0, "'g'"), -(28265, 0, "' '"), -(28266, 0, "'t'"), -(28267, 0, "'h'"), -(28268, 0, "'i'"), -(28269, 0, "'s'"), -(28270, 0, "' '"), -(28271, 0, "'h'"), -(28272, 0, "'i'"), -(28273, 0, "'n'"), -(28274, 0, "'g'"), -(28275, 0, "'e'"), -(28276, 0, "' '"), -(28277, 0, "'i'"), -(28278, 0, "'n'"), -(28279, 0, "'t'"), -(28280, 0, "'o'"), -(28281, 0, "' '"), -(28282, 0, "'h'"), -(28283, 0, "'i'"), -(28284, 0, "'s'"), -(28285, 0, "' '"), -(28286, 0, "'l'"), -(28287, 0, "'i'"), -(28288, 0, "'b'"), -(28289, 0, "'r'"), -(28290, 0, "'a'"), -(28291, 0, "'r'"), -(28292, 0, "'y'"), -(28294, 0, "'n'"), -(28295, 0, "'n'"), -(28296, 0, "'F'"), -(28297, 0, "'o'"), -(28298, 0, "'r'"), -(28299, 0, "' '"), -(28300, 0, "'m'"), -(28301, 0, "'y'"), -(28302, 0, "' '"), -(28303, 0, "'r'"), -(28304, 0, "'u'"), -(28305, 0, "'s'"), -(28306, 0, "'t'"), -(28307, 0, "' '"), -(28308, 0, "'c'"), -(28309, 0, "'o'"), -(28310, 0, "'d'"), -(28311, 0, "'e'"), -(28312, 0, "','"), -(28313, 0, "' '"), -(28314, 0, "'I'"), -(28315, 0, "' '"), -(28316, 0, "'p'"), -(28317, 0, "'r'"), -(28318, 0, "'o'"), -(28319, 0, "'b'"), -(28320, 0, "'a'"), -(28321, 0, "'b'"), -(28322, 0, "'l'"), -(28323, 0, "'y'"), -(28324, 0, "' '"), -(28325, 0, "'w'"), -(28326, 0, "'i'"), -(28327, 0, "'l'"), -(28328, 0, "'l'"), -(28329, 0, "' '"), -(28330, 0, "'a'"), -(28331, 0, "'t'"), -(28332, 0, "' '"), -(28333, 0, "'s'"), -(28334, 0, "'o'"), -(28335, 0, "'m'"), -(28336, 0, "'e'"), -(28337, 0, "' '"), -(28338, 0, "'p'"), -(28339, 0, "'o'"), -(28340, 0, "'i'"), -(28341, 0, "'n'"), -(28342, 0, "'t'"), -(28343, 0, "' '"), -(28344, 0, "'a'"), -(28345, 0, "'d'"), -(28346, 0, "'d'"), -(28347, 0, "' '"), -(28348, 0, "'a'"), -(28349, 0, "' '"), -(28344, 6, "'m'"), -(28345, 0, "'a'"), -(28346, 0, "'k'"), -(28347, 0, "'e'"), -(28348, 0, "' '"), -(28349, 0, "'m'"), -(28350, 0, "'y'"), -(28351, 0, "' '"), -(28352, 0, "'C'"), -(28353, 0, "'R'"), -(28354, 0, "'D'"), -(28355, 0, "'T'"), -(28356, 0, "' '"), -(28357, 0, "'i'"), -(28358, 0, "'m'"), -(28359, 0, "'p'"), -(28360, 0, "'l'"), -(28361, 0, "'e'"), -(28362, 0, "'m'"), -(28363, 0, "'e'"), -(28364, 0, "'n'"), -(28365, 0, "'t'"), -(28366, 0, "'a'"), -(28367, 0, "'t'"), -(28368, 0, "'i'"), -(28369, 0, "'o'"), -(28370, 0, "'n'"), -(28371, 0, "' '"), -(28372, 0, "'h'"), -(28373, 0, "'a'"), -(28373, 1, "''"), -(28372, 1, "''"), -(28372, 0, "'a'"), -(28373, 0, "'c'"), -(28374, 0, "'c'"), -(28375, 0, "'e'"), -(28376, 0, "'c'"), -(28377, 0, "'p'"), -(28378, 0, "'t'"), -(28379, 0, "' '"), -(28380, 0, "'a'"), -(28380, 1, "''"), -(28379, 1, "''"), -(28378, 1, "''"), -(28377, 1, "''"), -(28376, 1, "''"), -(28376, 0, "'e'"), -(28376, 1, "''"), -(28376, 0, "'p'"), -(28377, 0, "'t'"), -(28378, 0, "' '"), -(28379, 0, "'a'"), -(28380, 0, "' '"), -(28381, 0, "'t'"), -(28382, 0, "'y'"), -(28383, 0, "'p'"), -(28384, 0, "'e'"), -(28385, 0, "' '"), -(28386, 0, "'p'"), -(28387, 0, "'a'"), -(28388, 0, "'r'"), -(28389, 0, "'a'"), -(28390, 0, "'m'"), -(28391, 0, "'e'"), -(28392, 0, "'t'"), -(28393, 0, "'e'"), -(28394, 0, "'r'"), -(28395, 0, "' '"), -(28396, 0, "'w'"), -(28397, 0, "'h'"), -(28398, 0, "'i'"), -(28399, 0, "'c'"), -(28400, 0, "'h'"), -(28401, 0, "' '"), -(28402, 0, "'s'"), -(28403, 0, "'w'"), -(28404, 0, "'i'"), -(28405, 0, "'t'"), -(28406, 0, "'c'"), -(28407, 0, "'h'"), -(28408, 0, "'e'"), -(28409, 0, "'s'"), -(28410, 0, "' '"), -(28411, 0, "'b'"), -(28412, 0, "'e'"), -(28413, 0, "'t'"), -(28414, 0, "'w'"), -(28415, 0, "'e'"), -(28416, 0, "'e'"), -(28417, 0, "'n'"), -(28418, 0, "' '"), -(28419, 0, "'y'"), -(28420, 0, "'j'"), -(28421, 0, "'s'"), -(28422, 0, "' '"), -(28423, 0, "'a'"), -(28424, 0, "'n'"), -(28425, 0, "'d'"), -(28426, 0, "' '"), -(28427, 0, "'a'"), -(28428, 0, "'u'"), -(28429, 0, "'t'"), -(28430, 0, "'o'"), -(28431, 0, "'m'"), -(28432, 0, "'e'"), -(28433, 0, "'r'"), -(28434, 0, "'g'"), -(28435, 0, "'e'"), -(28436, 0, "' '"), -(28437, 0, "'s'"), -(28438, 0, "'e'"), -(28439, 0, "'m'"), -(28440, 0, "'a'"), -(28441, 0, "'n'"), -(28442, 0, "'t'"), -(28443, 0, "'i'"), -(28444, 0, "'c'"), -(28445, 0, "'s'"), -(28446, 0, "'.'"), -(27164, 9, "'H'"), -(27165, 0, "'a'"), -(27166, 0, "'n'"), -(27167, 0, "'g'"), -(27168, 0, "' '"), -(27169, 0, "'o'"), -(27170, 0, "'n'"), -(27171, 0, "' '"), -(27172, 0, "'-'"), -(27173, 0, "' '"), -(27174, 0, "'A'"), -(27174, 1, "''"), -(27174, 0, "'a'"), -(27175, 0, "'r'"), -(27176, 0, "'e'"), -(27177, 0, "' '"), -(27178, 0, "'t'"), -(27179, 0, "'h'"), -(27180, 0, "'e'"), -(27181, 0, "'s'"), -(27182, 0, "'e'"), -(28457, 0, "'n'"), -(28458, 0, "'n'"), -(28459, 0, "'#'"), -(28460, 0, "'#'"), -(28461, 0, "'#'"), -(28462, 0, "' '"), -(28459, 4, "'###'"), -(27043, 0, "'n'"), -(27043, 0, "'n'"), -(27044, 0, "'#'"), -(27045, 0, "' '"), -(27046, 0, "'A'"), -(27047, 0, "'p'"), -(27048, 0, "'p'"), -(27049, 0, "'e'"), -(27050, 0, "'n'"), -(27051, 0, "'d'"), -(27052, 0, "'i'"), -(27053, 0, "'n'"), -(27054, 0, "'g'"), -(27054, 1, "''"), -(27053, 1, "''"), -(27053, 0, "'x'"), -(27054, 0, "'n'"), -(27055, 0, "'n'"), -(27056, 0, "'#'"), -(27057, 0, "' '"), -(27058, 0, "'W'"), -(27059, 0, "'h'"), -(27059, 1, "''"), -(27058, 1, "''"), -(27057, 1, "''"), -(27057, 0, "'#'"), -(27061, 0, "'#'"), -(27063, 13, "''"), -(27063, 0, "'Appending A: '"), -(27063, 13, "''"), -(27063, 10, "'M'"), -(27064, 0, "'o'"), -(27065, 0, "'r'"), -(27066, 0, "'e'"), -(27067, 0, "' '"), -(27068, 0, "'i'"), -(27069, 0, "'n'"), -(27070, 0, "'f'"), -(27071, 0, "'o'"), -(27072, 0, "'r'"), -(27073, 0, "'m'"), -(27074, 0, "'a'"), -(27075, 0, "'t'"), -(27076, 0, "'i'"), -(27077, 0, "'o'"), -(27078, 0, "'n'"), -(27079, 0, "' '"), -(27080, 0, "'o'"), -(27081, 0, "'n'"), -(27082, 0, "' '"), -(27083, 0, "'m'"), -(27084, 0, "'y'"), -(27058, 0, "' '"), -(27059, 0, "'W'"), -(27060, 0, "'h'"), -(27061, 0, "'a'"), -(27062, 0, "'t'"), -(27063, 0, "' '"), -(27064, 0, "'i'"), -(27065, 0, "'f'"), -(27066, 0, "' '"), -(27067, 0, "'I'"), -(27068, 0, "' '"), -(27069, 0, "'w'"), -(27070, 0, "'a'"), -(27071, 0, "'n'"), -(27072, 0, "'t'"), -(27073, 0, "' '"), -(27074, 0, "'t'"), -(27075, 0, "'o'"), -(27076, 0, "' '"), -(27077, 0, "'u'"), -(27078, 0, "'s'"), -(27079, 0, "'e'"), -(27059, 21, "'T'"), -(27060, 0, "'h'"), -(27061, 0, "'a'"), -(27062, 0, "'t'"), -(27063, 0, "'s'"), -(27064, 0, "' '"), -(27065, 0, "'c'"), -(27066, 0, "'o'"), -(27067, 0, "'o'"), -(27059, 9, "'W'"), -(27060, 0, "'h'"), -(27061, 0, "'a'"), -(27062, 0, "'t'"), -(27063, 0, "' '"), -(27064, 0, "'n'"), -(27065, 0, "'o'"), -(27066, 0, "'w'"), -(27067, 0, "'?'"), -(27068, 0, "' '"), -(27069, 0, "'I'"), -(27070, 0, "' '"), -(27071, 0, "'w'"), -(27072, 0, "'a'"), -(27073, 0, "'n'"), -(27074, 0, "'t'"), -(27075, 0, "' '"), -(27076, 0, "'t'"), -(27077, 0, "'o'"), -(27078, 0, "' '"), -(27079, 0, "'u'"), -(27080, 0, "'s'"), -(27081, 0, "'e'"), -(27082, 0, "' '"), -(27083, 0, "'a'"), -(27084, 0, "' '"), -(27085, 0, "'C'"), -(27086, 0, "'R'"), -(27087, 0, "'D'"), -(27088, 0, "'T'"), -(27089, 0, "' '"), -(27090, 0, "'f'"), -(27091, 0, "'o'"), -(27092, 0, "'r'"), -(27093, 0, "' '"), -(27094, 0, "'m'"), -(27095, 0, "'y'"), -(27096, 0, "' '"), -(27097, 0, "'a'"), -(27098, 0, "'p'"), -(27099, 0, "'p'"), -(27100, 0, "'l'"), -(27101, 0, "'i'"), -(27102, 0, "'c'"), -(27103, 0, "'a'"), -(27104, 0, "'t'"), -(27105, 0, "'i'"), -(27106, 0, "'o'"), -(27107, 0, "'n'"), -(27108, 0, "'.'"), -(27109, 0, "' '"), -(27110, 0, "'W'"), -(27111, 0, "'h'"), -(27112, 0, "'a'"), -(27113, 0, "'t'"), -(27114, 0, "' '"), -(27115, 0, "'s'"), -(27116, 0, "'h'"), -(27117, 0, "'o'"), -(27118, 0, "'u'"), -(27119, 0, "'l'"), -(27120, 0, "'d'"), -(27121, 0, "' '"), -(27122, 0, "'I'"), -(27123, 0, "' '"), -(27124, 0, "'d'"), -(27125, 0, "'o'"), -(27126, 0, "'?'"), -(27127, 0, "'n'"), -(27128, 0, "'n'"), -(27129, 0, "'U'"), -(27130, 0, "'s'"), -(27131, 0, "'e'"), -(27132, 0, "' '"), -(27133, 0, "'y'"), -(27134, 0, "'j'"), -(27135, 0, "'s'"), -(27136, 0, "'.'"), -(27137, 0, "' '"), -(27138, 0, "'Y'"), -(27139, 0, "'j'"), -(27140, 0, "'s'"), -(27141, 0, "' '"), -(27142, 0, "'h'"), -(27143, 0, "'a'"), -(27144, 0, "'s'"), -(27145, 0, "' '"), -(27146, 0, "'e'"), -(27147, 0, "'x'"), -(27148, 0, "'c'"), -(27149, 0, "'e'"), -(27150, 0, "'l'"), -(27151, 0, "'l'"), -(27152, 0, "'e'"), -(27153, 0, "'n'"), -(27154, 0, "'t'"), -(27155, 0, "' '"), -(27156, 0, "'p'"), -(27157, 0, "'e'"), -(27158, 0, "'r'"), -(27159, 0, "'f'"), -(27160, 0, "'o'"), -(27161, 0, "'r'"), -(27162, 0, "'m'"), -(27163, 0, "'a'"), -(27164, 0, "'n'"), -(27165, 0, "'c'"), -(27166, 0, "'e'"), -(27129, 0, "'I'"), -(27130, 0, "'f'"), -(27131, 0, "' '"), -(27132, 0, "'y'"), -(27133, 0, "'o'"), -(27134, 0, "'u'"), -(27135, 0, "'''"), -(27136, 0, "'r'"), -(27137, 0, "'e'"), -(27138, 0, "' '"), -(27139, 0, "'b'"), -(27140, 0, "'u'"), -(27141, 0, "'i'"), -(27142, 0, "'l'"), -(27143, 0, "'d'"), -(27144, 0, "'i'"), -(27145, 0, "'n'"), -(27146, 0, "'g'"), -(27147, 0, "' '"), -(27148, 0, "'a'"), -(27149, 0, "'n'"), -(27150, 0, "' '"), -(27151, 0, "'a'"), -(27152, 0, "'p'"), -(27153, 0, "'p'"), -(27154, 0, "'l'"), -(27155, 0, "'i'"), -(27156, 0, "'c'"), -(27157, 0, "'a'"), -(27158, 0, "'t'"), -(27159, 0, "'i'"), -(27160, 0, "'o'"), -(27161, 0, "'n'"), -(27162, 0, "' '"), -(27163, 0, "'t'"), -(27164, 0, "'o'"), -(27165, 0, "'d'"), -(27166, 0, "'a'"), -(27167, 0, "'y'"), -(27168, 0, "' '"), -(27169, 0, "'y'"), -(27170, 0, "'o'"), -(27171, 0, "'u'"), -(27172, 0, "' '"), -(27173, 0, "'s'"), -(27174, 0, "'h'"), -(27175, 0, "'o'"), -(27176, 0, "'u'"), -(27177, 0, "'l'"), -(27178, 0, "'d'"), -(27179, 0, "' '"), -(27180, 1, "''"), -(27180, 0, "'u'"), -(27218, 0, "','"), -(27219, 0, "' '"), -(27220, 0, "'l'"), -(27221, 0, "'o'"), -(27222, 0, "'w'"), -(27223, 0, "' '"), -(27224, 0, "'m'"), -(27225, 0, "'e'"), -(27226, 0, "'m'"), -(27227, 0, "'o'"), -(27228, 0, "'r'"), -(27229, 0, "'y'"), -(27230, 0, "' '"), -(27231, 0, "'u'"), -(27232, 0, "'s'"), -(27233, 0, "'a'"), -(27234, 0, "'g'"), -(27235, 0, "'e'"), -(27236, 0, "','"), -(27237, 0, "' '"), -(27238, 0, "'g'"), -(27239, 0, "'r'"), -(27240, 0, "'e'"), -(27241, 0, "'a'"), -(27242, 0, "'t'"), -(27243, 0, "' '"), -(27244, 0, "'s'"), -(27245, 0, "'u'"), -(27246, 0, "'p'"), -(27247, 0, "'p'"), -(27248, 0, "'o'"), -(27249, 0, "'r'"), -(27250, 0, "'t'"), -(27251, 0, "' '"), -(27252, 0, "'('"), -(27253, 0, "'+'"), -(27254, 0, "' '"), -(27255, 0, "'p'"), -(27256, 0, "'a'"), -(27257, 0, "'i'"), -(27258, 0, "'d'"), -(27259, 0, "' '"), -(27260, 0, "'s'"), -(27261, 0, "'u'"), -(27262, 0, "'p'"), -(27263, 0, "'p'"), -(27264, 0, "'o'"), -(27265, 0, "'r'"), -(27266, 0, "'t'"), -(27267, 0, "' '"), -(27268, 0, "'i'"), -(27269, 0, "'f'"), -(27270, 0, "' '"), -(27271, 0, "'o'"), -(27272, 0, "'u'"), -(27273, 0, "' '"), -(27274, 0, "'w'"), -(27275, 0, "'a'"), -(27276, 0, "'n'"), -(27277, 0, "'t'"), -(27271, 7, "'y'"), -(27272, 0, "'o'"), -(27273, 0, "'u'"), -(27274, 0, "' '"), -(27275, 0, "'n'"), -(27276, 0, "'e'"), -(27277, 0, "'e'"), -(27278, 0, "'d'"), -(27236, 1, "''"), -(27236, 0, "' '"), -(27237, 0, "'a'"), -(27238, 0, "'n'"), -(27239, 0, "'d'"), -(27254, 0, "'.'"), -(27255, 0, "' '"), -(27256, 0, "'K'"), -(27257, 0, "'e'"), -(27258, 0, "'v'"), -(27259, 0, "'i'"), -(27260, 0, "'n'"), -(27261, 0, "' '"), -(27256, 6, "'Y'"), -(27257, 0, "'o'"), -(27258, 0, "'u'"), -(27259, 0, "' '"), -(27260, 0, "'c'"), -(27261, 0, "'a'"), -(27262, 0, "'n'"), -(27263, 0, "' '"), -(27264, 0, "'a'"), -(27265, 0, "'l'"), -(27266, 0, "'s'"), -(27267, 0, "'o'"), -(27268, 0, "' '"), -(27269, 0, "'g'"), -(27270, 0, "'e'"), -(27271, 0, "'t'"), -(27272, 3, "''"), -(27286, 11, "'i'"), -(27287, 0, "'f'"), -(27288, 0, "' '"), -(27289, 0, "'y'"), -(27290, 0, "'o'"), -(27291, 0, "'u'"), -(27292, 0, "' '"), -(27293, 0, "'n'"), -(27294, 0, "'e'"), -(27295, 0, "'e'"), -(27296, 0, "'d'"), -(27297, 0, "' '"), -(27298, 0, "'i'"), -(27299, 0, "'t'"), -(27269, 3, "'b'"), -(27270, 0, "'e'"), -(27271, 0, "'c'"), -(27272, 0, "'o'"), -(27273, 0, "'m'"), -(27274, 0, "'e'"), -(27275, 0, "' '"), -(27276, 0, "'a'"), -(27277, 0, "' '"), -(27278, 0, "'s'"), -(27279, 0, "'p'"), -(27280, 0, "'o'"), -(27281, 0, "'n'"), -(27282, 0, "'s'"), -(27283, 0, "'o'"), -(27284, 0, "'r'"), -(27285, 0, "' '"), -(27286, 0, "'o'"), -(27287, 0, "'f'"), -(27288, 0, "' '"), -(27289, 0, "'y'"), -(27290, 0, "'j'"), -(27291, 0, "'s'"), -(27292, 0, "' '"), -(27293, 0, "'t'"), -(27293, 1, "''"), -(27293, 28, "''"), -(27293, 0, "'i'"), -(27294, 0, "'f'"), -(27295, 0, "' '"), -(27296, 0, "'y'"), -(27297, 0, "'o'"), -(27298, 0, "'u'"), -(27299, 0, "' '"), -(27300, 0, "'w'"), -(27301, 0, "'a'"), -(27302, 0, "'n'"), -(27303, 0, "'t'"), -(27304, 0, "' '"), -(27305, 0, "'-'"), -(27306, 0, "' '"), -(27307, 0, "'w'"), -(27308, 0, "'h'"), -(27309, 0, "'i'"), -(27310, 0, "'c'"), -(27311, 0, "'h'"), -(27312, 0, "' '"), -(27313, 0, "'g'"), -(27313, 1, "''"), -(27313, 0, "'('"), -(27314, 0, "'i'"), -(27315, 0, "'f'"), -(27316, 0, "' '"), -(27317, 0, "'K'"), -(27318, 0, "'e'"), -(27319, 0, "'v'"), -(27320, 0, "'i'"), -(27321, 0, "'n'"), -(27322, 0, "' '"), -(27323, 0, "'h'"), -(27324, 0, "'a'"), -(27325, 0, "'s'"), -(27326, 0, "' '"), -(27327, 0, "'t'"), -(27328, 0, "'i'"), -(27329, 0, "'m'"), -(27330, 0, "'e'"), -(27331, 0, "')'"), -(27332, 0, "' '"), -(27333, 0, "'w'"), -(27334, 0, "'i'"), -(27335, 0, "'l'"), -(27336, 0, "'l'"), -(27256, 81, "''"), -(27256, 0, "'Y'"), -(27257, 0, "'o'"), -(27258, 0, "'u'"), -(27259, 0, "' '"), -(27259, 1, "''"), -(27258, 1, "''"), -(27257, 1, "''"), -(27256, 1, "''"), -(27256, 0, "'I'"), -(27257, 0, "'f'"), -(27258, 0, "' '"), -(27259, 0, "'y'"), -(27260, 0, "'o'"), -(27261, 0, "'u'"), -(27262, 0, "' '"), -(27263, 0, "'h'"), -(27264, 0, "'a'"), -(27265, 0, "'v'"), -(27266, 0, "'e'"), -(27267, 0, "' '"), -(27268, 0, "'m'"), -(27269, 0, "'o'"), -(27270, 0, "'n'"), -(27271, 0, "'e'"), -(27272, 0, "'y'"), -(27263, 10, "'w'"), -(27264, 0, "'a'"), -(27265, 0, "'n'"), -(27266, 0, "'t'"), -(27267, 0, "' '"), -(27268, 0, "'h'"), -(27269, 0, "'e'"), -(27270, 0, "'l'"), -(27271, 0, "'p'"), -(27272, 0, "' '"), -(27273, 0, "'i'"), -(27274, 0, "'m'"), -(27275, 0, "'e'"), -(27276, 0, "'p'"), -(27277, 0, "'l'"), -(27278, 0, "'m'"), -(27278, 1, "''"), -(27277, 1, "''"), -(27276, 1, "''"), -(27275, 1, "''"), -(27275, 0, "'p'"), -(27276, 0, "'l'"), -(27277, 0, "'e'"), -(27278, 0, "'m'"), -(27279, 0, "'e'"), -(27280, 0, "'n'"), -(27281, 0, "'t'"), -(27282, 0, "'i'"), -(27283, 0, "'n'"), -(27284, 0, "'g'"), -(27285, 0, "' '"), -(27286, 0, "'y'"), -(27287, 0, "'j'"), -(27288, 0, "'s'"), -(27289, 0, "' '"), -(27290, 0, "'i'"), -(27291, 0, "'n'"), -(27292, 0, "' '"), -(27293, 0, "'y'"), -(27294, 0, "'o'"), -(27295, 0, "'u'"), -(27296, 0, "'r'"), -(27297, 0, "' '"), -(27298, 0, "'a'"), -(27299, 0, "'p'"), -(27300, 0, "'p'"), -(27301, 0, "'l'"), -(27302, 0, "'i'"), -(27303, 0, "'c'"), -(27304, 0, "'a'"), -(27305, 0, "'t'"), -(27306, 0, "'i'"), -(27307, 0, "'o'"), -(27308, 0, "'n'"), -(27309, 0, "','"), -(27310, 0, "' '"), -(27311, 0, "'K'"), -(27312, 0, "'e'"), -(27313, 0, "'v'"), -(27314, 0, "'i'"), -(27315, 0, "'n'"), -(27316, 0, "' '"), -(27149, 1, "''"), -(27149, 0, "' '"), -(27150, 0, "'a'"), -(27150, 1, "''"), -(27150, 0, "'c'"), -(27151, 0, "'o'"), -(27151, 1, "''"), -(27150, 1, "''"), -(27150, 0, "'d'"), -(27151, 0, "'o'"), -(27152, 0, "'c'"), -(27153, 0, "'u'"), -(27154, 0, "'m'"), -(27155, 0, "'e'"), -(27156, 0, "'n'"), -(27157, 0, "'t'"), -(27158, 0, "' '"), -(27159, 0, "'b'"), -(27160, 0, "'a'"), -(27161, 0, "'s'"), -(27162, 0, "'e'"), -(27163, 0, "'d'"), -(27164, 0, "' '"), -(27165, 0, "'c'"), -(27166, 0, "'o'"), -(27167, 0, "'l'"), -(27168, 0, "'l'"), -(27169, 0, "'a'"), -(27170, 0, "'b'"), -(27171, 0, "'o'"), -(27172, 0, "'r'"), -(27173, 0, "'a'"), -(27174, 0, "'t'"), -(27175, 0, "'i'"), -(27176, 0, "'v'"), -(27177, 0, "'e'"), -(27196, 0, "','"), -(27197, 0, "' '"), -(27198, 0, "'a'"), -(27199, 0, "'n'"), -(27200, 0, "'d'"), -(27201, 0, "' '"), -(27202, 0, "'y'"), -(27203, 0, "'o'"), -(27204, 0, "'u'"), -(27205, 0, "' '"), -(27206, 0, "'w'"), -(27207, 0, "'a'"), -(27208, 0, "'n'"), -(27209, 0, "'t'"), -(27210, 0, "' '"), -(27211, 0, "'t'"), -(27212, 0, "'i'"), -(27213, 0, "' '"), -(27214, 0, "'t'"), -(27214, 1, "''"), -(27213, 1, "''"), -(27212, 1, "''"), -(27211, 1, "''"), -(27211, 0, "'t'"), -(27212, 0, "'o'"), -(27213, 0, "' '"), -(27214, 0, "'d'"), -(27215, 0, "'o'"), -(27216, 0, "' '"), -(27217, 0, "'i'"), -(27218, 0, "'t'"), -(27219, 0, "' '"), -(27220, 0, "'o'"), -(27221, 0, "'n'"), -(27222, 0, "' '"), -(27223, 0, "'t'"), -(27224, 0, "'o'"), -(27225, 0, "'p'"), -(27226, 0, "' '"), -(27227, 0, "'o'"), -(27228, 0, "'f'"), -(27229, 0, "' '"), -(27230, 0, "'C'"), -(27231, 0, "'R'"), -(27232, 0, "'D'"), -(27233, 0, "'T'"), -(27234, 0, "'s'"), -(27384, 0, "'m'"), -(27385, 0, "'i'"), -(27386, 0, "'g'"), -(27387, 0, "'h'"), -(27388, 0, "'t'"), -(27389, 0, "' '"), -(27390, 0, "'b'"), -(27391, 0, "'e'"), -(27392, 0, "' '"), -(27393, 0, "'a'"), -(27394, 0, "'b'"), -(27395, 0, "'l'"), -(27396, 0, "'e'"), -(27397, 0, "' '"), -(27398, 0, "'t'"), -(27399, 0, "'o'"), -(27400, 0, "' '"), -(27377, 24, "' '"), -(27378, 0, "'g'"), -(27379, 0, "'e'"), -(27380, 0, "'t'"), -(27381, 0, "' '"), -(27382, 0, "'i'"), -(27383, 0, "'n'"), -(27384, 0, "' '"), -(27385, 0, "'c'"), -(27386, 0, "'o'"), -(27387, 0, "'n'"), -(27388, 0, "'t'"), -(27389, 0, "'e'"), -(27389, 1, "''"), -(27389, 0, "'a'"), -(27390, 0, "'c'"), -(27391, 0, "'t'"), -(27392, 0, "' '"), -(27393, 0, "'w'"), -(27394, 0, "'i'"), -(27395, 0, "'t'"), -(27396, 0, "'h'"), -(27397, 0, "' '"), -(27398, 0, "'K'"), -(27399, 0, "'e'"), -(27400, 0, "'v'"), -(27401, 0, "'i'"), -(27402, 0, "'n'"), -(27403, 0, "' '"), -(27404, 0, "'J'"), -(27405, 0, "'a'"), -(27406, 0, "'h'"), -(27407, 0, "'n'"), -(27408, 0, "'s'"), -(27378, 20, "'y'"), -(27379, 0, "'j'"), -(27380, 0, "'s'"), -(27380, 1, "''"), -(27379, 1, "''"), -(27378, 1, "''"), -(27377, 1, "''"), -(27377, 0, "' '"), -(27389, 0, "' '"), -(27390, 0, "'a'"), -(27391, 0, "'c'"), -(27392, 0, "'c'"), -(27393, 0, "'e'"), -(27394, 0, "'p'"), -(27395, 0, "'t'"), -(27396, 0, "'s'"), -(27397, 0, "' '"), -(27398, 0, "'s'"), -(27399, 0, "'o'"), -(27400, 0, "'m'"), -(27401, 0, "'e'"), -(27402, 0, "' '"), -(27403, 0, "'p'"), -(27404, 0, "'a'"), -(27405, 0, "'i'"), -(27406, 0, "'d'"), -(27407, 0, "' '"), -(27408, 0, "'w'"), -(27409, 0, "'o'"), -(27410, 0, "'r'"), -(27411, 0, "'k'"), -(27412, 0, "' '"), -(27413, 0, "'i'"), -(27414, 0, "'n'"), -(27415, 0, "' '"), -(27416, 0, "'e'"), -(27417, 0, "'x'"), -(27418, 0, "'c'"), -(27419, 0, "'h'"), -(27420, 0, "'a'"), -(27421, 0, "'n'"), -(27422, 0, "'g'"), -(27423, 0, "'e'"), -(27424, 0, "' '"), -(27425, 0, "'f'"), -(27426, 0, "'o'"), -(27427, 0, "'r'"), -(27428, 0, "' '"), -(27425, 4, "''"), -(27424, 1, "''"), -(27413, 3, "''"), -(27413, 8, "'s'"), -(27414, 0, "'o'"), -(27415, 0, "' '"), -(27416, 0, "'k'"), -(27417, 0, "'e'"), -(27417, 1, "''"), -(27416, 1, "''"), -(27416, 0, "'h'"), -(27417, 0, "'e'"), -(27418, 0, "' '"), -(27419, 0, "'c'"), -(27420, 0, "'a'"), -(27421, 0, "'n'"), -(27422, 0, "' '"), -(27423, 0, "'w'"), -(27424, 0, "'o'"), -(27425, 0, "'r'"), -(27426, 0, "'k'"), -(27427, 0, "' '"), -(27428, 0, "'o'"), -(27429, 0, "'n'"), -(27430, 0, "' '"), -(27431, 0, "'y'"), -(27432, 0, "'j'"), -(27433, 0, "'s'"), -(27434, 0, "' '"), -(27435, 0, "'f'"), -(27436, 0, "'u'"), -(27437, 0, "'l'"), -(27438, 0, "' '"), -(27438, 1, "''"), -(27438, 0, "'l'"), -(27439, 0, "' '"), -(27440, 0, "'t'"), -(27441, 0, "'i'"), -(27442, 0, "'m'"), -(27443, 0, "'e'"), -(27444, 0, "'.'"), -(27413, 0, "'t'"), -(27414, 0, "'o'"), -(27415, 0, "' '"), -(27416, 0, "'f'"), -(27417, 0, "'u'"), -(27418, 0, "'n'"), -(27419, 0, "'d'"), -(27420, 0, "' '"), -(27421, 0, "'w'"), -(27422, 0, "'o'"), -(27423, 0, "'r'"), -(27424, 0, "'k'"), -(27425, 0, "'i'"), -(27426, 0, "'n'"), -(27427, 0, "'g'"), -(27428, 14, "''"), -(27435, 0, "' '"), -(27436, 0, "'('"), -(27437, 0, "'a'"), -(27438, 0, "'n'"), -(27439, 0, "'d'"), -(27440, 0, "' '"), -(27441, 0, "'a'"), -(27442, 0, "'d'"), -(27443, 0, "'j'"), -(27444, 0, "'a'"), -(27445, 0, "'c'"), -(27446, 0, "'e'"), -(27447, 0, "'n'"), -(27448, 0, "'t'"), -(27449, 0, "' '"), -(27450, 0, "'p'"), -(27450, 1, "''"), -(27450, 0, "'w'"), -(27451, 0, "'o'"), -(27452, 0, "'r'"), -(27453, 0, "'k'"), -(27454, 0, "')'"), -(27466, 0, "'n'"), -(27467, 0, "'n'"), -(27468, 0, "'M'"), -(27469, 0, "'y'"), -(27470, 0, "' '"), -(27471, 0, "'r'"), -(27472, 0, "'u'"), -(27473, 0, "'s'"), -(27474, 0, "'t'"), -(27475, 0, "' '"), -(27476, 0, "'c'"), -(27477, 0, "'o'"), -(27478, 0, "'d'"), -(27479, 0, "'e'"), -(27480, 0, "' '"), -(27481, 0, "'i'"), -(27482, 0, "'s'"), -(27483, 0, "' '"), -(27484, 0, "'r'"), -(27485, 0, "'e'"), -(27486, 0, "'a'"), -(27487, 0, "'l'"), -(27488, 0, "'l'"), -(27489, 0, "'y'"), -(27490, 0, "' '"), -(27491, 0, "'f'"), -(27492, 0, "'a'"), -(27493, 0, "'s'"), -(27494, 0, "'t'"), -(27495, 0, "','"), -(27496, 0, "' '"), -(27497, 0, "'b'"), -(27498, 0, "'u'"), -(27499, 0, "'t'"), -(27500, 0, "' '"), -(27501, 0, "'i'"), -(27502, 0, "'t'"), -(27503, 0, "' '"), -(27504, 0, "'m'"), -(27504, 1, "''"), -(27504, 0, "'p'"), -(27505, 0, "'r'"), -(27506, 0, "'o'"), -(27507, 0, "'b'"), -(27508, 0, "'a'"), -(27509, 0, "'b'"), -(27510, 0, "'l'"), -(27511, 0, "'y'"), -(27504, 0, "'w'"), -(27505, 0, "'i'"), -(27506, 0, "'l'"), -(27507, 0, "'l'"), -(27508, 0, "' '"), -(27517, 0, "' '"), -(27518, 0, "'n'"), -(27519, 0, "'e'"), -(27520, 0, "'v'"), -(27521, 0, "'e'"), -(27522, 0, "'r'"), -(27523, 0, "' '"), -(27524, 0, "'t'"), -(27525, 0, "'u'"), -(27526, 0, "'r'"), -(27527, 0, "'n'"), -(27528, 0, "' '"), -(27529, 0, "'i'"), -(27530, 0, "'n'"), -(27531, 0, "'t'"), -(27532, 0, "'o'"), -(27533, 0, "' '"), -(27534, 0, "'a'"), -(27535, 0, "' '"), -(27536, 0, "'r'"), -(27537, 0, "'e'"), -(27538, 0, "'l'"), -(27539, 0, "'i'"), -(27540, 0, "'a'"), -(27541, 0, "'b'"), -(27542, 0, "'l'"), -(27543, 0, "'e'"), -(27536, 8, "'u'"), -(27537, 0, "'s'"), -(27538, 0, "'e'"), -(27539, 0, "'f'"), -(27540, 0, "'u'"), -(27541, 0, "'l'"), -(27542, 0, "' '"), -(27543, 0, "'r'"), -(27543, 1, "''"), -(27543, 0, "'g'"), -(27544, 0, "'e'"), -(27545, 0, "'n'"), -(27546, 0, "'e'"), -(27547, 0, "'r'"), -(27548, 0, "'a'"), -(27549, 0, "'l'"), -(27550, 0, "' '"), -(27551, 0, "'p'"), -(27552, 0, "'u'"), -(27553, 0, "'r'"), -(27554, 0, "'p'"), -(27555, 0, "'o'"), -(27556, 0, "'s'"), -(27557, 0, "'e'"), -(27558, 0, "' '"), -(27559, 0, "'C'"), -(27560, 0, "'R'"), -(27561, 0, "'D'"), -(27562, 0, "'T'"), -(27563, 0, "' '"), -(27564, 0, "'l'"), -(27565, 0, "'i'"), -(27566, 0, "'b'"), -(27567, 0, "'r'"), -(27568, 0, "'a'"), -(27569, 0, "'r'"), -(27570, 0, "'y'"), -(27571, 0, "'.'"), -(27572, 0, "' '"), -(27573, 0, "'I'"), -(27574, 0, "' '"), -(27575, 0, "'s'"), -(27576, 0, "'i'"), -(27577, 0, "'m'"), -(27578, 0, "'p'"), -(27579, 0, "'l'"), -(27580, 0, "'y'"), -(27581, 0, "' '"), -(27582, 0, "'d'"), -(27583, 0, "'o'"), -(27584, 0, "'n'"), -(27585, 0, "'''"), -(27586, 0, "'t'"), -(27587, 0, "' '"), -(27588, 0, "'h'"), -(27589, 0, "'a'"), -(27590, 0, "'v'"), -(27591, 0, "'e'"), -(27573, 0, "'T'"), -(27574, 0, "'h'"), -(27575, 0, "'e'"), -(27576, 0, "'r'"), -(27577, 0, "'e'"), -(27578, 0, "'''"), -(27579, 0, "'s'"), -(27580, 0, "' '"), -(27581, 0, "'1'"), -(27582, 0, "'0'"), -(27583, 0, "'0'"), -(27584, 0, "' '"), -(27585, 0, "'o'"), -(27586, 0, "'t'"), -(27587, 0, "'h'"), -(27588, 0, "'e'"), -(27589, 0, "'r'"), -(27590, 0, "' '"), -(27591, 0, "'t'"), -(27592, 0, "'h'"), -(27593, 0, "'i'"), -(27594, 0, "'n'"), -(27595, 0, "'g'"), -(27596, 0, "'s'"), -(27597, 0, "' '"), -(27598, 0, "'t'"), -(27599, 0, "'h'"), -(27600, 0, "'a'"), -(27601, 0, "'t'"), -(27602, 0, "' '"), -(27573, 30, "''"), -(27573, 0, "'T'"), -(27574, 0, "'o'"), -(27575, 0, "' '"), -(27576, 0, "'b'"), -(27577, 0, "'e'"), -(27578, 0, "' '"), -(27579, 0, "'c'"), -(27580, 0, "'o'"), -(27581, 0, "'m'"), -(27582, 0, "'p'"), -(27583, 0, "'a'"), -(27584, 0, "'t'"), -(27585, 0, "'i'"), -(27586, 0, "'b'"), -(27587, 0, "'l'"), -(27588, 0, "'e'"), -(27589, 0, "' '"), -(27579, 11, "'a'"), -(27580, 0, "'b'"), -(27581, 0, "'l'"), -(27582, 0, "'e'"), -(27583, 0, "' '"), -(27584, 0, "'t'"), -(27585, 0, "'o'"), -(27586, 0, "' '"), -(27587, 0, "'c'"), -(27588, 0, "'o'"), -(27589, 0, "'m'"), -(27590, 0, "'p'"), -(27591, 0, "'e'"), -(27592, 0, "'t'"), -(27593, 0, "'e'"), -(27594, 0, "' '"), -(27595, 0, "'w'"), -(27596, 0, "'i'"), -(27597, 0, "'t'"), -(27598, 0, "'h'"), -(27599, 0, "' '"), -(27600, 0, "'y'"), -(27601, 0, "'j'"), -(27602, 0, "'s'"), -(27603, 0, "' '"), -(27604, 0, "'t'"), -(27605, 0, "'h'"), -(27606, 0, "'e'"), -(27607, 0, "'r'"), -(27608, 0, "'e'"), -(27609, 0, "' '"), -(27610, 0, "'a'"), -(27611, 0, "'r'"), -(27612, 0, "'e'"), -(27613, 0, "' '"), -(27604, 10, "'o'"), -(27605, 0, "'n'"), -(27606, 0, "' '"), -(27607, 0, "'f'"), -(27608, 0, "'u'"), -(27609, 0, "'n'"), -(27610, 0, "'c'"), -(27611, 0, "'t'"), -(27612, 0, "'i'"), -(27613, 0, "'o'"), -(27614, 0, "'n'"), -(27615, 0, "'a'"), -(27616, 0, "'l'"), -(27617, 0, "'i'"), -(27618, 0, "'t'"), -(27619, 0, "'y'"), -(27620, 0, "' '"), -(27621, 0, "'t'"), -(27622, 0, "'h'"), -(27623, 0, "'e'"), -(27624, 0, "'r'"), -(27625, 0, "'e'"), -(27626, 0, "' '"), -(27627, 0, "'a'"), -(27628, 0, "'r'"), -(27629, 0, "'e'"), -(27630, 0, "' '"), -(27631, 0, "'1'"), -(27632, 0, "'0'"), -(27633, 0, "'0'"), -(27634, 0, "' '"), -(27635, 0, "'o'"), -(27636, 0, "'t'"), -(27637, 0, "'h'"), -(27638, 0, "'e'"), -(27639, 0, "'r'"), -(27640, 0, "' '"), -(27641, 0, "'t'"), -(27642, 0, "'h'"), -(27643, 0, "'i'"), -(27644, 0, "'n'"), -(27645, 0, "'g'"), -(27646, 0, "'s'"), -(27647, 0, "' '"), -(27648, 19, "' '"), -(27649, 0, "'i'"), -(27650, 0, "'t'"), -(27651, 0, "' '"), -(27651, 1, "''"), -(27650, 1, "''"), -(27649, 1, "''"), -(27648, 1, "''"), -(27648, 0, "'i'"), -(27649, 0, "'t'"), -(27650, 0, "' '"), -(27651, 0, "'n'"), -(27652, 0, "'e'"), -(27653, 0, "'e'"), -(27654, 0, "'d'"), -(27655, 0, "'s'"), -(27656, 0, "' '"), -(27657, 0, "'t'"), -(27658, 0, "'o'"), -(27659, 0, "' '"), -(27660, 0, "'d'"), -(27661, 0, "'o'"), -(27662, 0, "' '"), -(27663, 0, "'w'"), -(27664, 0, "'e'"), -(27665, 0, "'l'"), -(27666, 0, "'l'"), -(27667, 0, "'.'"), -(27668, 0, "' '"), -(27603, 0, "'''"), -(27604, 0, "'s'"), -(27605, 3, "''"), -(27667, 1, "''"), -(27666, 1, "''"), -(27666, 0, "','"), -(27667, 0, "' '"), -(27668, 0, "'i'"), -(27669, 0, "'n'"), -(27670, 0, "'c'"), -(27671, 0, "'l'"), -(27672, 0, "'u'"), -(27673, 0, "'d'"), -(27674, 0, "'i'"), -(27675, 0, "'n'"), -(27676, 0, "'g'"), -(27677, 0, "' '"), -(27678, 0, "'b'"), -(27679, 0, "'i'"), -(27680, 0, "'n'"), -(27681, 0, "'a'"), -(27682, 0, "'r'"), -(27683, 0, "'y'"), -(27684, 0, "' '"), -(27685, 0, "'e'"), -(27686, 0, "'n'"), -(27687, 0, "'c'"), -(27688, 0, "'o'"), -(27689, 0, "'d'"), -(27690, 0, "'i'"), -(27691, 0, "'n'"), -(27692, 0, "'g'"), -(27693, 0, "' '"), -(27694, 0, "'a'"), -(27695, 0, "'n'"), -(27696, 0, "'d'"), -(27697, 0, "' '"), -(27694, 4, "''"), -(27693, 1, "''"), -(27693, 0, "','"), -(27694, 0, "' '"), -(27695, 0, "'n'"), -(27696, 0, "'e'"), -(27697, 0, "'t'"), -(27698, 0, "'w'"), -(27699, 0, "'o'"), -(27700, 0, "'r'"), -(27701, 0, "'k'"), -(27702, 0, "' '"), -(27703, 0, "'p'"), -(27704, 0, "'r'"), -(27705, 0, "'o'"), -(27706, 0, "'t'"), -(27707, 0, "'o'"), -(27708, 0, "'c'"), -(27709, 0, "'o'"), -(27710, 0, "'l'"), -(27711, 0, "'s'"), -(27712, 0, "','"), -(27713, 0, "' '"), -(27714, 0, "'s'"), -(27715, 0, "'u'"), -(27716, 0, "'p'"), -(27717, 0, "'p'"), -(27718, 0, "'o'"), -(27719, 0, "'r'"), -(27720, 0, "'t'"), -(27721, 0, "' '"), -(27722, 0, "'f'"), -(27723, 0, "'o'"), -(27724, 0, "'r'"), -(27725, 0, "' '"), -(27726, 0, "'n'"), -(27727, 0, "'o'"), -(27728, 0, "'n'"), -(27729, 0, "'-'"), -(27730, 0, "'l'"), -(27731, 0, "'i'"), -(27732, 0, "'s'"), -(27733, 0, "'t'"), -(27734, 0, "' '"), -(27735, 0, "'s'"), -(27736, 0, "'t'"), -(27737, 0, "'r'"), -(27738, 0, "'u'"), -(27739, 0, "'c'"), -(27740, 0, "'t'"), -(27741, 0, "'u'"), -(27742, 0, "'r'"), -(27743, 0, "'e'"), -(27744, 0, "'s'"), -(27745, 0, "','"), -(27746, 0, "' '"), -(27747, 0, "'p'"), -(27748, 0, "'r'"), -(27749, 0, "'e'"), -(27750, 0, "'s'"), -(27751, 0, "'e'"), -(27752, 0, "'n'"), -(27753, 0, "'c'"), -(27754, 0, "'e'"), -(27755, 0, "' '"), -(27756, 0, "'('"), -(27757, 0, "'c'"), -(27758, 0, "'u'"), -(27759, 0, "'r'"), -(27760, 0, "'o'"), -(27761, 0, "'s'"), -(27761, 1, "''"), -(27760, 1, "''"), -(27760, 0, "'s'"), -(27761, 0, "'o'"), -(27762, 0, "'r'"), -(27763, 0, "' '"), -(27764, 0, "'p'"), -(27765, 0, "'o'"), -(27766, 0, "'s'"), -(27767, 0, "'i'"), -(27768, 0, "'t'"), -(27769, 0, "'i'"), -(27770, 0, "'o'"), -(27771, 0, "'n'"), -(27772, 0, "'s'"), -(27773, 0, "')'"), -(27774, 0, "' '"), -(27775, 0, "'a'"), -(27776, 0, "'n'"), -(27777, 0, "'d'"), -(27778, 0, "' '"), -(27779, 0, "'s'"), -(27780, 0, "'o'"), -(27781, 0, "' '"), -(27782, 0, "'o'"), -(27783, 0, "'n'"), -(27784, 0, "'.'"), -(27571, 0, "' '"), -(27572, 0, "'l'"), -(27573, 0, "'i'"), -(27574, 0, "'k'"), -(27575, 0, "'e'"), -(27576, 0, "' '"), -(27577, 0, "'y'"), -(27578, 0, "'j'"), -(27579, 0, "'s'"), -(27613, 1, "''"), -(27612, 1, "''"), -(27612, 0, "','"), -(27613, 14, "''"), -(27779, 0, "'n'"), -(27780, 0, "'n'"), -(27781, 0, "'I'"), -(27782, 0, "'f'"), -(27783, 0, "' '"), -(27784, 0, "'y'"), -(27785, 0, "'o'"), -(27786, 0, "'u'"), -(27787, 0, "' '"), -(27788, 0, "'w'"), -(27789, 0, "'a'"), -(27790, 0, "'n'"), -(27791, 0, "'t'"), -(27792, 0, "' '"), -(27793, 0, "'d'"), -(27794, 0, "'a'"), -(27795, 0, "'t'"), -(27796, 0, "'a'"), -(27797, 0, "'b'"), -(27798, 0, "'a'"), -(27799, 0, "'s'"), -(27800, 0, "'e'"), -(27801, 0, "' '"), -(27802, 0, "'l'"), -(27803, 0, "'i'"), -(27804, 0, "'k'"), -(27805, 0, "'e'"), -(27806, 0, "' '"), -(27807, 0, "'s'"), -(27808, 0, "'e'"), -(27809, 0, "'m'"), -(27810, 0, "'a'"), -(27811, 0, "'n'"), -(27812, 0, "'t'"), -(27813, 0, "'i'"), -(27814, 0, "'c'"), -(27815, 0, "'s'"), -(27816, 0, "' '"), -(27817, 0, "'f'"), -(27818, 0, "'o'"), -(27819, 0, "'r'"), -(27820, 0, "' '"), -(27821, 0, "'r'"), -(27822, 0, "'e'"), -(27823, 0, "'a'"), -(27824, 0, "'l'"), -(27825, 0, "'t'"), -(27826, 0, "'i'"), -(27827, 0, "'m'"), -(27828, 0, "'e'"), -(27829, 0, "' '"), -(27830, 0, "'e'"), -(27831, 0, "'d'"), -(27832, 0, "'i'"), -(27833, 0, "'t'"), -(27834, 0, "'i'"), -(27835, 0, "'n'"), -(27836, 0, "'g'"), -(27837, 0, "','"), -(27838, 0, "' '"), -(27839, 0, "'y'"), -(27840, 0, "'o'"), -(27841, 0, "'u'"), -(27842, 0, "' '"), -(27843, 0, "'n'"), -(27844, 0, "'a'"), -(27844, 1, "''"), -(27843, 1, "''"), -(27843, 0, "'c'"), -(27844, 0, "'a'"), -(27845, 0, "'n'"), -(27839, 7, "'n'"), -(27840, 0, "'o'"), -(27841, 0, "'b'"), -(27842, 0, "'o'"), -(27843, 0, "'d'"), -(27844, 0, "'y'"), -(27845, 0, "' '"), -(27846, 0, "'h'"), -(27847, 0, "'a'"), -(27848, 0, "'s'"), -(27849, 0, "' '"), -(27850, 0, "'m'"), -(27850, 1, "''"), -(27850, 0, "'d'"), -(27851, 0, "'o'"), -(27852, 0, "'n'"), -(27853, 0, "'e'"), -(27854, 0, "' '"), -(27855, 0, "'t'"), -(27856, 0, "'h'"), -(27857, 0, "'i'"), -(27858, 0, "'s'"), -(27859, 0, "' '"), -(27860, 0, "'w'"), -(27861, 0, "'e'"), -(27862, 0, "'l'"), -(27863, 0, "'l'"), -(27864, 0, "' '"), -(27865, 0, "'y'"), -(27866, 0, "'e'"), -(27867, 0, "'t'"), -(27868, 0, "'.'"), -(27839, 0, "'a'"), -(27840, 0, "'s'"), -(27841, 0, "' '"), -(27842, 0, "'f'"), -(27843, 0, "'a'"), -(27844, 0, "'r'"), -(27845, 0, "' '"), -(27846, 0, "'a'"), -(27847, 0, "'s'"), -(27848, 0, "' '"), -(27849, 0, "'I'"), -(27850, 0, "' '"), -(27851, 0, "'k'"), -(27852, 0, "'n'"), -(27853, 0, "'o'"), -(27854, 0, "'w'"), -(27855, 0, "' '"), -(27882, 4, "'o'"), -(27883, 0, "'n'"), -(27884, 0, "' '"), -(27885, 0, "'t'"), -(27886, 0, "'o'"), -(27887, 0, "'p'"), -(27888, 0, "' '"), -(27889, 0, "'o'"), -(27890, 0, "'f'"), -(27891, 0, "' '"), -(27892, 0, "'C'"), -(27893, 0, "'R'"), -(27894, 0, "'D'"), -(27895, 0, "'T'"), -(27896, 0, "'s'"), -(27897, 0, "' '"), -(27898, 0, "'y'"), -(27899, 0, "'e'"), -(27900, 0, "'t'"), -(27901, 0, "'.'"), -(27902, 0, "' '"), -(27903, 0, "'Y'"), -(27904, 0, "'o'"), -(27905, 0, "'u'"), -(27906, 0, "' '"), -(27907, 0, "'c'"), -(27908, 0, "'a'"), -(27909, 0, "'n'"), -(27910, 0, "' '"), -(27911, 0, "'u'"), -(27912, 0, "'s'"), -(27913, 0, "'e'"), -(27914, 0, "' '"), -(27915, 0, "'S'"), -(27916, 0, "'h'"), -(27917, 0, "'a'"), -(27918, 0, "'r'"), -(27919, 0, "'e'"), -(27920, 0, "'d'"), -(27920, 1, "''"), -(27920, 0, "'D'"), -(27921, 0, "'B'"), -(27915, 0, "'m'"), -(27916, 0, "'y'"), -(27917, 0, "' '"), -(27915, 3, "''"), -(27922, 0, "' '"), -(27923, 0, "'('"), -(27924, 0, "'w'"), -(27925, 0, "'h'"), -(27926, 0, "'i'"), -(27927, 0, "'c'"), -(27928, 0, "'h'"), -(27929, 0, "' '"), -(27930, 0, "'I'"), -(27931, 0, "' '"), -(27932, 0, "'w'"), -(27933, 0, "'r'"), -(27934, 0, "'o'"), -(27935, 0, "'t'"), -(27936, 0, "'e'"), -(27937, 0, "' '"), -(27938, 0, "'y'"), -(27939, 0, "'e'"), -(27940, 0, "'s'"), -(27941, 0, "'r'"), -(27941, 1, "''"), -(27940, 1, "''"), -(27940, 0, "'a'"), -(27941, 0, "'r'"), -(27942, 0, "'s'"), -(27943, 0, "' '"), -(27944, 0, "'a'"), -(27945, 0, "'g'"), -(27946, 0, "'o'"), -(27947, 0, "','"), -(27948, 0, "' '"), -(27949, 0, "'a'"), -(27950, 0, "'n'"), -(27951, 0, "'d'"), -(27952, 0, "' '"), -(27953, 0, "'h'"), -(27954, 0, "'a'"), -(27955, 0, "'s'"), -(27956, 0, "' '"), -(27957, 0, "'b'"), -(27958, 0, "'e'"), -(27959, 0, "'e'"), -(27960, 0, "'n'"), -(27961, 0, "' '"), -(27962, 0, "'c'"), -(27963, 0, "'o'"), -(27964, 0, "'n'"), -(27965, 0, "'t'"), -(27966, 0, "'i'"), -(27967, 0, "'n'"), -(27968, 0, "'u'"), -(27969, 0, "'a'"), -(27970, 0, "'l'"), -(27971, 0, "'l'"), -(27972, 0, "'y'"), -(27973, 0, "' '"), -(27974, 0, "'i'"), -(27975, 0, "'m'"), -(27976, 0, "'p'"), -(27977, 0, "'r'"), -(27978, 0, "'o'"), -(27979, 0, "'v'"), -(27980, 0, "'e'"), -(27981, 0, "'d'"), -(27982, 0, "' '"), -(27983, 0, "'b'"), -(27984, 0, "'y'"), -(27985, 0, "' '"), -(27986, 0, "'a'"), -(27987, 0, "'n'"), -(27988, 0, "' '"), -(27989, 0, "'a'"), -(27990, 0, "'r'"), -(27991, 0, "'m'"), -(27992, 0, "'y'"), -(27993, 0, "' '"), -(27994, 0, "'o'"), -(27995, 0, "'c'"), -(27996, 0, "' '"), -(27996, 1, "''"), -(27995, 1, "''"), -(27995, 0, "'f'"), -(27996, 0, "' '"), -(27997, 0, "'c'"), -(27998, 0, "'o'"), -(27999, 0, "'n'"), -(28000, 0, "'t'"), -(28001, 0, "'r'"), -(28002, 0, "'i'"), -(28003, 0, "'b'"), -(28004, 0, "'u'"), -(28005, 0, "'t'"), -(28006, 0, "'o'"), -(28007, 0, "'r'"), -(28008, 0, "'s'"), -(28009, 0, "' '"), -(28010, 0, "'s'"), -(28011, 0, "'i'"), -(28012, 0, "'n'"), -(28013, 0, "'c'"), -(28014, 0, "'e'"), -(28015, 0, "' '"), -(28016, 0, "'t'"), -(28017, 0, "'h'"), -(28018, 0, "'e'"), -(28019, 0, "'n'"), -(28020, 0, "')'"), -(28021, 0, "'.'"), -(28022, 0, "' '"), -(27982, 28, "''"), -(27982, 0, "' '"), -(27996, 0, "'I'"), -(27997, 0, "'''"), -(27998, 0, "'m'"), -(27999, 0, "' '"), -(28000, 0, "'e'"), -(28001, 0, "'x'"), -(28002, 0, "'c'"), -(28003, 0, "'i'"), -(28004, 0, "'t'"), -(28005, 0, "'e'"), -(28006, 0, "'d'"), -(28007, 0, "' '"), -(28008, 0, "'f'"), -(28009, 0, "'o'"), -(28010, 0, "'r'"), -(28011, 0, "' '"), -(28012, 0, "'R'"), -(28013, 0, "'e'"), -(28014, 0, "'d'"), -(28015, 0, "'w'"), -(28016, 0, "'o'"), -(28017, 0, "'o'"), -(28018, 0, "'r'"), -(28018, 1, "''"), -(28018, 0, "'d'"), -(28019, 0, "'.'"), -(27915, 0, "'['"), -(27923, 0, "']'"), -(27924, 0, "'('"), -(27925, 0, "'https://github.com/share/sharedb/'"), -(27958, 0, "')'"), -(27959, 0, "'.'"), -(27961, 7, "''"), -(27962, 0, "' '"), -(27962, 1, "''"), -(27969, 0, "'s'"), -(27970, 0, "'h'"), -(27971, 0, "'a'"), -(27972, 0, "'r'"), -(27973, 0, "'d'"), -(27973, 1, "''"), -(27973, 0, "'e'"), -(27974, 0, "'d'"), -(27975, 0, "'b'"), -(27976, 0, "' '"), -(28032, 1, "''"), -(28033, 1, "''"), -(28033, 0, "' '"), -(28034, 0, "'L'"), -(28035, 0, "'o'"), -(28036, 0, "'o'"), -(28037, 0, "'k'"), -(28038, 0, "'i'"), -(28039, 0, "'n'"), -(28040, 0, "'g'"), -(28041, 0, "' '"), -(28042, 0, "'f'"), -(28043, 0, "'o'"), -(28044, 0, "'r'"), -(28045, 0, "'w'"), -(28046, 0, "'a'"), -(28047, 0, "'r'"), -(28048, 0, "'d'"), -(28049, 0, "','"), -(28050, 0, "' '"), -(28067, 0, "'['"), -(28075, 0, "']'"), -(28076, 0, "'('"), -(28077, 0, "'https://github.com/redwood/redwood'"), -(28111, 0, "')'"), -(28033, 1, "''"), -(28033, 0, "'n'"), -(28034, 0, "'n'"), -(28035, 0, "'I'"), -(28036, 0, "'f'"), -(28037, 0, "' '"), -(28038, 0, "'y'"), -(28039, 0, "'o'"), -(28040, 0, "'u'"), -(28041, 0, "' '"), -(28042, 0, "'w'"), -(28043, 0, "'a'"), -(28044, 0, "'n'"), -(28045, 0, "'t'"), -(28046, 0, "' '"), -(28047, 0, "'P'"), -(28048, 0, "'2'"), -(28049, 0, "'P'"), -(28050, 0, "' '"), -(28051, 0, "'s'"), -(28052, 0, "'u'"), -(28053, 0, "'p'"), -(28054, 0, "'p'"), -(28055, 0, "'o'"), -(28056, 0, "'r'"), -(28057, 0, "'t'"), -(28058, 0, "' '"), -(28035, 24, "''"), -(28113, 1, "''"), -(28113, 0, "' '"), -(28114, 0, "'-'"), -(28115, 0, "' '"), -(28116, 0, "'w'"), -(28117, 0, "'h'"), -(28118, 0, "'i'"), -(28119, 0, "'c'"), -(28120, 0, "'h'"), -(28121, 0, "' '"), -(28122, 0, "'p'"), -(28123, 0, "'r'"), -(28124, 0, "'o'"), -(28125, 0, "'m'"), -(28126, 0, "'i'"), -(28127, 0, "'s'"), -(28128, 0, "'e'"), -(28129, 0, "'s'"), -(28130, 0, "' '"), -(28122, 9, "'i'"), -(28123, 0, "'s'"), -(28124, 0, "' '"), -(28125, 0, "'i'"), -(28126, 0, "'m'"), -(28127, 0, "'p'"), -(28128, 0, "'l'"), -(28122, 7, "'h'"), -(28123, 0, "'a'"), -(28124, 0, "'s'"), -(28125, 0, "' '"), -(28126, 0, "'p'"), -(28127, 0, "'l'"), -(28128, 0, "'a'"), -(28129, 0, "'n'"), -(28130, 0, "'n'"), -(28131, 0, "'e'"), -(28132, 0, "'d'"), -(28133, 0, "' '"), -(28134, 0, "'f'"), -(28135, 0, "'u'"), -(28136, 0, "'l'"), -(28137, 0, "'l'"), -(28138, 0, "' '"), -(28139, 0, "'C'"), -(28140, 0, "'R'"), -(28141, 0, "'D'"), -(28142, 0, "'T'"), -(28143, 0, "' '"), -(28144, 0, "'s'"), -(28145, 0, "'u'"), -(28146, 0, "'p'"), -(28147, 0, "'p'"), -(28148, 0, "'o'"), -(28149, 0, "'r'"), -(28150, 0, "'t'"), -(28151, 0, "'.'"), -(28122, 0, "'u'"), -(28123, 0, "'s'"), -(28124, 0, "'e'"), -(28125, 0, "'s'"), -(28126, 0, "' '"), -(28122, 5, "'s'"), -(28123, 0, "'u'"), -(28124, 0, "'p'"), -(28125, 0, "'p'"), -(28126, 0, "'o'"), -(28127, 0, "'r'"), -(28128, 0, "'t'"), -(28129, 0, "'s'"), -(28130, 0, "' '"), -(28131, 0, "'p'"), -(28132, 0, "'2'"), -(28133, 0, "'p'"), -(28134, 0, "' '"), -(28135, 0, "'e'"), -(28136, 0, "'d'"), -(28137, 0, "'i'"), -(28138, 0, "'t'"), -(28139, 0, "'i'"), -(28140, 0, "'n'"), -(28141, 0, "'g'"), -(28142, 0, "' '"), -(28143, 0, "'a'"), -(28144, 0, "'n'"), -(28145, 0, "'d'"), -(28146, 0, "' '"), -(28131, 3, "'P'"), -(28132, 0, "'2'"), -(28133, 0, "'P'"), -(29597, 0, "' '"), -(29594, 4, "'###'"), -(27408, 7, "'s'"), -(27409, 0, "'u'"), -(27410, 0, "'p'"), -(27411, 0, "'p'"), -(27412, 0, "'o'"), -(27413, 0, "'r'"), -(27414, 0, "'t'"), -(27390, 25, "'s'"), -(27391, 0, "'o'"), -(27392, 0, "'m'"), -(27393, 0, "'e'"), -(27394, 0, "'t'"), -(27395, 0, "'i'"), -(27396, 0, "'m'"), -(27397, 0, "'e'"), -(27398, 0, "'s'"), -(27399, 0, "' '"), -(27400, 0, "'a'"), -(27401, 0, "'c'"), -(27402, 0, "'c'"), -(27403, 0, "'e'"), -(27404, 0, "'p'"), -(27405, 0, "'t'"), -(27406, 0, "'s'"), -(27407, 0, "' '"), -(27408, 0, "'m'"), -(27409, 0, "'o'"), -(27410, 0, "'n'"), -(27411, 0, "'e'"), -(27412, 0, "'y'"), -(27413, 0, "' '"), -(27414, 0, "'i'"), -(27415, 0, "'n'"), -(27416, 0, "' '"), -(27417, 0, "'e'"), -(27418, 0, "'x'"), -(27419, 0, "'c'"), -(27420, 0, "'h'"), -(27421, 0, "'a'"), -(27422, 0, "'n'"), -(27423, 0, "'n'"), -(27423, 1, "''"), -(27423, 0, "'g'"), -(27424, 0, "'e'"), -(27425, 0, "' '"), -(27426, 0, "'f'"), -(27427, 0, "'o'"), -(27428, 0, "'r'"), -(27429, 0, "' '"), -(27430, 0, "'h'"), -(27431, 0, "'e'"), -(27432, 0, "'l'"), -(27433, 0, "'p'"), -(27434, 0, "' '"), -(27435, 0, "'i'"), -(27436, 0, "'n'"), -(27437, 0, "'t'"), -(27438, 0, "'e'"), -(27439, 0, "'g'"), -(27440, 0, "'r'"), -(27441, 0, "'a'"), -(27442, 0, "'t'"), -(27443, 0, "'e'"), -(27443, 1, "''"), -(27443, 0, "'i'"), -(27444, 0, "'n'"), -(27445, 0, "'g'"), -(27446, 0, "' '"), -(27447, 0, "'y'"), -(27448, 0, "'j'"), -(27449, 0, "'s'"), -(27450, 0, "' '"), -(27451, 0, "'i'"), -(27452, 0, "'n'"), -(27453, 0, "'t'"), -(27454, 0, "'o'"), -(27455, 0, "' '"), -(27456, 0, "'v'"), -(27457, 0, "'a'"), -(27458, 0, "'r'"), -(27459, 0, "'i'"), -(27460, 0, "'o'"), -(27461, 0, "'u'"), -(27462, 0, "'s'"), -(27463, 0, "' '"), -(27464, 0, "'a'"), -(27465, 0, "'p'"), -(27466, 0, "'p'"), -(27467, 0, "'l'"), -(27468, 0, "'i'"), -(27469, 0, "'c'"), -(27470, 0, "'a'"), -(27471, 0, "'t'"), -(27472, 0, "'i'"), -(27473, 0, "'o'"), -(27474, 0, "'n'"), -(27475, 0, "'s'"), -(27476, 0, "'.'"), -(27477, 0, "' '"), -(27478, 0, "'H'"), -(27479, 0, "'e'"), -(27480, 0, "' '"), -(27481, 0, "'u'"), -(27482, 0, "'s'"), -(27483, 0, "'e'"), -(27484, 0, "'s'"), -(27485, 0, "'s'"), -(27486, 0, "' '"), -(27487, 0, "'t'"), -(27487, 1, "''"), -(27486, 1, "''"), -(27486, 0, "' '"), -(27486, 1, "''"), -(27485, 1, "''"), -(27485, 0, "' '"), -(27486, 0, "'t'"), -(27487, 0, "'h'"), -(27488, 0, "'i'"), -(27489, 0, "'s'"), -(27490, 0, "' '"), -(27491, 0, "'t'"), -(27492, 0, "'o'"), -(27498, 11, "''"), -(27498, 0, "' '"), -(27499, 0, "'w'"), -(27500, 0, "'o'"), -(27501, 0, "'r'"), -(27502, 0, "'k'"), -(27503, 0, "'i'"), -(27504, 0, "'n'"), -(27505, 0, "'g'"), -(27506, 0, "' '"), -(27507, 0, "'o'"), -(27508, 0, "'n'"), -(27701, 5, "' '"), -(27702, 0, "'l'"), -(27703, 0, "'o'"), -(27704, 0, "'t'"), -(27705, 0, "' '"), -(27705, 1, "''"), -(27705, 0, "'s'"), -(27706, 0, "' '"), -(27707, 0, "'o'"), -(27708, 0, "'f'"), -(27709, 0, "' '"), -(29679, 0, "' '"), -(29680, 0, "'T'"), -(29681, 0, "'h'"), -(29682, 0, "'i'"), -(29683, 0, "'s'"), -(29684, 0, "' '"), -(29685, 0, "'i'"), -(29686, 0, "'s'"), -(29687, 0, "' '"), -(29688, 0, "'t'"), -(29689, 0, "'h'"), -(29690, 0, "'e'"), -(29691, 0, "' '"), -(29692, 0, "'w'"), -(29693, 0, "'r'"), -(29694, 0, "'o'"), -(29695, 0, "'n'"), -(29696, 0, "'g'"), -(29697, 0, "' '"), -(29698, 0, "'b'"), -(29699, 0, "'e'"), -(29700, 0, "'n'"), -(29701, 0, "'c'"), -(29702, 0, "'h'"), -(29703, 0, "'m'"), -(29704, 0, "'a'"), -(29705, 0, "'r'"), -(29706, 0, "'k'"), -(29698, 9, "'m'"), -(29699, 0, "'e'"), -(29700, 0, "'a'"), -(29701, 0, "'s'"), -(29702, 0, "'u'"), -(29703, 0, "'r'"), -(29704, 0, "'e'"), -(29705, 0, "' '"), -(29706, 0, "'o'"), -(29707, 0, "'f'"), -(29708, 0, "' '"), -(29709, 0, "'p'"), -(29710, 0, "'e'"), -(29711, 0, "'r'"), -(29712, 0, "'f'"), -(29713, 0, "'o'"), -(29714, 0, "'r'"), -(29715, 0, "'m'"), -(29716, 0, "'a'"), -(29717, 0, "'n'"), -(29718, 0, "'c'"), -(29719, 0, "'e'"), -(29720, 0, "'n'"), -(29721, 0, "'n'"), -(29722, 0, "'Y'"), -(29723, 0, "'e'"), -(29724, 0, "'s'"), -(29725, 0, "','"), -(29726, 0, "' '"), -(29727, 0, "'I'"), -(29728, 0, "' '"), -(29729, 0, "'a'"), -(29730, 0, "'g'"), -(29731, 0, "'r'"), -(29732, 0, "'e'"), -(29733, 0, "'e'"), -(29734, 0, "'.'"), -(29735, 0, "'n'"), -(29736, 0, "'n'"), -(29737, 0, "'T'"), -(29738, 0, "'h'"), -(29739, 0, "'e'"), -(29740, 0, "' '"), -(29737, 4, "'The'"), -(29728, 0, "' '"), -(29729, 0, "'k'"), -(29730, 0, "'n'"), -(29731, 0, "'o'"), -(29732, 0, "'w'"), -(29733, 0, "' '"), -(29734, 0, "'a'"), -(29735, 0, "'n'"), -(29736, 0, "'d'"), -(29737, 0, "' '"), -(29738, 0, "'I'"), -(29748, 3, "'A'"), -(29749, 0, "'c'"), -(29750, 0, "'c'"), -(29751, 0, "'e'"), -(29752, 0, "'p'"), -(29753, 0, "'t'"), -(29754, 0, "'i'"), -(29755, 0, "'n'"), -(29756, 0, "'g'"), -(29757, 0, "' '"), -(29758, 0, "'i'"), -(29759, 0, "'n'"), -(29760, 0, "'c'"), -(29761, 0, "'o'"), -(29762, 0, "'m'"), -(29763, 0, "'i'"), -(29764, 0, "'n'"), -(29765, 0, "'g'"), -(29766, 0, "' '"), -(29767, 0, "'c'"), -(29768, 0, "'h'"), -(29769, 0, "'a'"), -(29770, 0, "'n'"), -(29771, 0, "'g'"), -(29772, 0, "'e'"), -(29773, 0, "'s'"), -(29774, 0, "' '"), -(29775, 0, "'f'"), -(29776, 0, "'r'"), -(29777, 0, "'o'"), -(29778, 0, "'m'"), -(29779, 0, "' '"), -(29780, 0, "'t'"), -(29781, 0, "'h'"), -(29782, 0, "'e'"), -(29783, 0, "' '"), -(29784, 0, "'u'"), -(29785, 0, "'s'"), -(29786, 0, "'e'"), -(29787, 0, "'r'"), -(29788, 0, "'o'"), -(29788, 1, "''"), -(29788, 0, "' '"), -(29789, 0, "'o'"), -(29790, 0, "'n'"), -(29791, 0, "'l'"), -(29792, 0, "'y'"), -(29793, 0, "' '"), -(29794, 0, "'n'"), -(29795, 0, "'e'"), -(29796, 0, "'e'"), -(29797, 0, "'d'"), -(29798, 0, "'s'"), -(29799, 0, "' '"), -(29800, 0, "'t'"), -(29801, 0, "'o'"), -(29802, 0, "' '"), -(29803, 0, "'h'"), -(29804, 0, "'a'"), -(29805, 0, "'p'"), -(29806, 0, "'p'"), -(29807, 0, "'e'"), -(29808, 0, "'n'"), -(29809, 0, "' '"), -(29810, 0, "'f'"), -(29811, 0, "'a'"), -(29812, 0, "'s'"), -(29813, 0, "'t'"), -(29814, 0, "' '"), -(29815, 0, "'e'"), -(29816, 0, "'n'"), -(29817, 0, "'o'"), -(29818, 0, "'u'"), -(29819, 0, "'g'"), -(29820, 0, "'h'"), -(29821, 0, "' '"), -(29821, 1, "''"), -(29815, 0, "'*'"), -(29822, 0, "'*'"), -(29823, 0, "'.'"), -(29824, 0, "' '"), -(29825, 0, "'F'"), -(29826, 0, "'i'"), -(29827, 0, "'n'"), -(29828, 0, "'g'"), -(29829, 0, "'e'"), -(29830, 0, "'r'"), -(29831, 0, "'s'"), -(29832, 0, "' '"), -(29833, 0, "'s'"), -(29834, 0, "'i'"), -(29835, 0, "'m'"), -(29836, 0, "'p'"), -(29837, 0, "'l'"), -(29838, 0, "'y'"), -(29839, 0, "' '"), -(29840, 0, "'d'"), -(29841, 0, "'o'"), -(29842, 0, "'n'"), -(29843, 0, "'''"), -(29844, 0, "'t'"), -(29845, 0, "' '"), -(29846, 0, "'t'"), -(29847, 0, "'y'"), -(29848, 0, "'p'"), -(29849, 0, "'e'"), -(29850, 0, "' '"), -(29851, 0, "'v'"), -(29852, 0, "'e'"), -(29853, 0, "'r'"), -(29854, 0, "'y'"), -(29855, 0, "' '"), -(29856, 0, "'f'"), -(29857, 0, "'a'"), -(29858, 0, "'s'"), -(29859, 0, "'t'"), -(29860, 0, "' '"), -(29861, 0, "'-'"), -(29862, 0, "' '"), -(29863, 0, "'s'"), -(29864, 0, "'o'"), -(29865, 0, "' '"), -(29866, 0, "'o'"), -(29867, 0, "'n'"), -(29868, 0, "'c'"), -(29869, 0, "'e'"), -(29870, 0, "' '"), -(29871, 0, "'a'"), -(29872, 0, "' '"), -(29873, 0, "'c'"), -(29874, 0, "'R'"), -(29874, 1, "''"), -(29873, 1, "''"), -(29873, 0, "'C'"), -(29874, 0, "'R'"), -(29875, 0, "'D'"), -(29876, 0, "'T'"), -(29877, 0, "' '"), -(29878, 0, "'g'"), -(29879, 0, "'e'"), -(29880, 0, "'t'"), -(29881, 0, "'s'"), -(29882, 0, "' '"), -(29878, 5, "'c'"), -(29879, 0, "'a'"), -(29880, 0, "'n'"), -(29881, 0, "' '"), -(29882, 0, "'h'"), -(29883, 0, "'a'"), -(29884, 0, "'n'"), -(29885, 0, "'d'"), -(29886, 0, "'l'"), -(29887, 0, "'e'"), -(29888, 0, "' '"), -(29889, 0, "'a'"), -(29890, 0, "'n'"), -(29891, 0, "'y'"), -(29892, 0, "' '"), -(29893, 0, "'u'"), -(29894, 0, "'s'"), -(29895, 0, "'e'"), -(29896, 0, "'r'"), -(29897, 0, "' '"), -(29898, 0, "'e'"), -(29899, 0, "'d'"), -(29900, 0, "'i'"), -(29901, 0, "'t'"), -(29902, 0, "' '"), -(29903, 0, "'i'"), -(29904, 0, "'n'"), -(29905, 0, "' '"), -(29893, 0, "'l'"), -(29894, 0, "'o'"), -(29895, 0, "'c'"), -(29896, 0, "'a'"), -(29897, 0, "'l'"), -(29898, 0, "' '"), -(29912, 0, "'u'"), -(29913, 0, "'n'"), -(29914, 0, "'d'"), -(29915, 0, "'e'"), -(29916, 0, "'r'"), -(29917, 0, "' '"), -(29918, 0, "'1'"), -(29919, 0, "'m'"), -(29920, 0, "'s'"), -(29921, 0, "','"), -(29922, 0, "' '"), -(29923, 0, "'g'"), -(29924, 0, "'o'"), -(29925, 0, "'i'"), -(29926, 0, "'n'"), -(29927, 0, "'g'"), -(29928, 0, "' '"), -(29929, 0, "'f'"), -(29930, 0, "'a'"), -(29931, 0, "'s'"), -(29932, 0, "'t'"), -(29933, 0, "'e'"), -(29934, 0, "'r'"), -(29935, 0, "' '"), -(29936, 0, "'p'"), -(29937, 0, "'r'"), -(29938, 0, "'o'"), -(29939, 0, "'b'"), -(29940, 0, "'a'"), -(29941, 0, "'b'"), -(29942, 0, "'l'"), -(29943, 0, "'y'"), -(29944, 0, "' '"), -(29945, 0, "'d'"), -(29946, 0, "'o'"), -(29947, 0, "'e'"), -(29948, 0, "'s'"), -(29949, 0, "'n'"), -(29950, 0, "'''"), -(29951, 0, "'t'"), -(29952, 0, "' '"), -(29953, 0, "'m'"), -(29954, 0, "'a'"), -(29955, 0, "'t'"), -(29956, 0, "'t'"), -(29957, 0, "'e'"), -(29958, 0, "'.'"), -(29958, 1, "''"), -(29958, 0, "'r'"), -(29959, 0, "'.'"), -(29960, 0, "'n'"), -(29961, 0, "'n'"), -(29962, 0, "'T'"), -(29963, 0, "'h'"), -(29964, 0, "'e'"), -(29965, 0, "' '"), -(29966, 0, "'i'"), -(29967, 0, "'m'"), -(29968, 0, "'p'"), -(29969, 0, "'o'"), -(29970, 0, "'r'"), -(29971, 0, "'t'"), -(29972, 0, "'a'"), -(29973, 0, "'n'"), -(29974, 0, "'t'"), -(29975, 0, "' '"), -(29976, 0, "'m'"), -(29977, 0, "'e'"), -(29978, 0, "'t'"), -(29979, 0, "'r'"), -(29980, 0, "'i'"), -(29981, 0, "'c'"), -(29982, 0, "'s'"), -(29983, 0, "' '"), -(29984, 0, "'a'"), -(29985, 0, "'r'"), -(29986, 0, "'e'"), -(29987, 0, "':'"), -(29966, 0, "'m'"), -(29967, 0, "'o'"), -(29968, 0, "'r'"), -(29969, 0, "'e'"), -(29970, 0, "' '"), -(29993, 0, "'n'"), -(29994, 0, "'n'"), -(29995, 0, "'-'"), -(29996, 0, "' '"), -(29997, 0, "'H'"), -(29998, 0, "'o'"), -(29999, 0, "'w'"), -(30000, 0, "' '"), -(30001, 0, "'l'"), -(30002, 0, "'o'"), -(30003, 0, "'n'"), -(30004, 0, "'g'"), -(30005, 0, "' '"), -(30006, 0, "'t'"), -(30007, 0, "'h'"), -(30008, 0, "'e'"), -(30009, 0, "' '"), -(30010, 0, "'d'"), -(30011, 0, "'o'"), -(30012, 0, "'c'"), -(30013, 0, "'u'"), -(30014, 0, "'m'"), -(30015, 0, "'e'"), -(30016, 0, "'n'"), -(30017, 0, "'t'"), -(30018, 0, "' '"), -(30019, 0, "'t'"), -(30020, 0, "'a'"), -(30021, 0, "'k'"), -(30022, 0, "'e'"), -(30023, 0, "'s'"), -(30024, 0, "' '"), -(30025, 0, "'t'"), -(30026, 0, "'o'"), -(30027, 0, "' '"), -(30028, 0, "'l'"), -(30029, 0, "'o'"), -(30030, 0, "'a'"), -(30031, 0, "'d'"), -(30032, 0, "' '"), -(30033, 0, "'f'"), -(30034, 0, "'r'"), -(30035, 0, "'o'"), -(30036, 0, "'m'"), -(30037, 0, "' '"), -(30038, 0, "'d'"), -(30039, 0, "'i'"), -(30040, 0, "'s'"), -(30041, 0, "'k'"), -(30042, 0, "'n'"), -(30043, 0, "'-'"), -(30044, 0, "' '"), -(30043, 2, "'-'"), -(30027, 0, "' '"), -(30028, 0, "'s'"), -(30029, 0, "'a'"), -(30030, 0, "'v'"), -(30031, 0, "'e'"), -(30032, 0, "' '"), -(30033, 0, "'a'"), -(30034, 0, "'n'"), -(30035, 0, "'d'"), -(30053, 0, "' '"), -(30054, 0, "'H'"), -(30055, 0, "'o'"), -(30056, 0, "'w'"), -(30057, 0, "'m'"), -(30057, 1, "''"), -(30057, 0, "' '"), -(30058, 0, "'m'"), -(30059, 0, "'u'"), -(30060, 0, "'c'"), -(30061, 0, "'h'"), -(30062, 0, "' '"), -(30063, 0, "'s'"), -(30064, 0, "'p'"), -(30065, 0, "'a'"), -(30066, 0, "'e'"), -(30066, 1, "''"), -(30066, 0, "'c'"), -(30067, 0, "'e'"), -(30068, 0, "' '"), -(30069, 0, "'t'"), -(30070, 0, "'h'"), -(30071, 0, "'e'"), -(30072, 0, "' '"), -(30073, 0, "'d'"), -(30074, 0, "'o'"), -(30069, 6, "'i'"), -(30070, 0, "'t'"), -(30071, 0, "' '"), -(30072, 0, "'t'"), -(30073, 0, "'a'"), -(30074, 0, "'k'"), -(30075, 0, "'e'"), -(30076, 0, "'s'"), -(30077, 0, "' '"), -(30078, 0, "'t'"), -(30079, 0, "'o'"), -(30080, 0, "' '"), -(30081, 0, "'s'"), -(30082, 0, "'e'"), -(30083, 0, "'n'"), -(30084, 0, "'d'"), -(30085, 0, "' '"), -(30086, 0, "'a'"), -(30087, 0, "'n'"), -(30088, 0, "'d'"), -(30089, 0, "' '"), -(30090, 0, "'r'"), -(30091, 0, "'e'"), -(30092, 0, "'v'"), -(30092, 1, "''"), -(30092, 0, "'c'"), -(30093, 0, "'e'"), -(30094, 0, "'i'"), -(30095, 0, "'v'"), -(30096, 0, "'e'"), -(30097, 0, "' '"), -(30098, 0, "'t'"), -(30099, 0, "'h'"), -(30100, 0, "'e'"), -(30101, 0, "' '"), -(30102, 0, "'d'"), -(30103, 0, "'o'"), -(30104, 0, "'c'"), -(30105, 0, "'u'"), -(30106, 0, "'m'"), -(30107, 0, "'e'"), -(30108, 0, "'n'"), -(30109, 0, "'t'"), -(30058, 52, "'m'"), -(30059, 0, "'a'"), -(30060, 0, "'n'"), -(30061, 0, "'y'"), -(30062, 0, "' '"), -(30063, 0, "'b'"), -(30064, 0, "'y'"), -(30065, 0, "'t'"), -(30066, 0, "'e'"), -(30067, 0, "'s'"), -(30068, 0, "' '"), -(30069, 0, "'a'"), -(30070, 0, "' '"), -(30071, 0, "'d'"), -(30072, 0, "'o'"), -(30073, 0, "'c'"), -(30074, 0, "'u'"), -(30075, 0, "'m'"), -(30076, 0, "'e'"), -(30077, 0, "'n'"), -(30078, 0, "'t'"), -(30079, 0, "' '"), -(30080, 0, "'t'"), -(30081, 0, "'a'"), -(30082, 0, "'k'"), -(30083, 0, "'e'"), -(30084, 0, "'s'"), -(30085, 0, "' '"), -(30086, 0, "'o'"), -(30087, 0, "'v'"), -(30088, 0, "'e'"), -(30089, 0, "'r'"), -(30090, 0, "' '"), -(30091, 0, "'t'"), -(30092, 0, "'h'"), -(30093, 0, "'e'"), -(30094, 0, "' '"), -(30095, 0, "'w'"), -(30096, 0, "'o'"), -(30096, 1, "''"), -(30096, 0, "'i'"), -(30097, 0, "'r'"), -(30098, 0, "'e'"), -(30095, 4, "'n'"), -(30096, 0, "'e'"), -(30097, 0, "'t'"), -(30098, 0, "'w'"), -(30099, 0, "'o'"), -(30100, 0, "'r'"), -(30101, 0, "'k'"), -(30086, 0, "'t'"), -(30087, 0, "'o'"), -(30088, 0, "' '"), -(30089, 0, "'e'"), -(30090, 0, "'n'"), -(30090, 1, "''"), -(30089, 1, "''"), -(30089, 0, "'s'"), -(30090, 0, "'e'"), -(30091, 0, "'n'"), -(30092, 0, "'d'"), -(30093, 0, "' '"), -(30089, 5, "'s'"), -(30090, 0, "'t'"), -(30091, 0, "'o'"), -(30092, 0, "'r'"), -(30093, 0, "'e'"), -(30094, 0, "' '"), -(30095, 0, "'o'"), -(30096, 0, "'r'"), -(30097, 0, "' '"), -(30098, 0, "'s'"), -(30099, 0, "'e'"), -(30100, 0, "'n'"), -(30101, 0, "'d'"), -(30102, 0, "' '"), -(30119, 0, "'n'"), -(30120, 0, "'n'"), -(30121, 0, "'W'"), -(30122, 0, "'e'"), -(30122, 1, "''"), -(30121, 1, "''"), -(30121, 0, "'I'"), -(30122, 0, "'''"), -(30123, 0, "'m'"), -(30124, 0, "' '"), -(30125, 0, "'a'"), -(30126, 0, "'l'"), -(30127, 0, "'s'"), -(30128, 0, "'o'"), -(30129, 0, "' '"), -(30121, 9, "'A'"), -(30122, 0, "'l'"), -(30123, 0, "'l'"), -(30124, 0, "' '"), -(30125, 0, "'o'"), -(30126, 0, "'f'"), -(30127, 0, "' '"), -(30128, 0, "'t'"), -(30129, 0, "'h'"), -(30130, 0, "'e'"), -(30131, 0, "'s'"), -(30132, 0, "'e'"), -(30133, 0, "' '"), -(30121, 13, "'T'"), -(30122, 0, "'h'"), -(30123, 0, "'e'"), -(30124, 0, "' '"), -(30125, 0, "'e'"), -(30126, 0, "'d'"), -(30127, 0, "'i'"), -(30128, 0, "'t'"), -(30129, 0, "'i'"), -(30130, 0, "'n'"), -(30131, 0, "'g'"), -(30132, 0, "' '"), -(30133, 0, "'t'"), -(30134, 0, "'r'"), -(30135, 0, "'a'"), -(30136, 0, "'c'"), -(30137, 0, "'e'"), -(30138, 0, "' '"), -(30139, 0, "'I'"), -(30140, 0, "'''"), -(30141, 0, "'m'"), -(30142, 0, "' '"), -(30143, 0, "'u'"), -(30144, 0, "'s'"), -(30145, 0, "'i'"), -(30146, 0, "'n'"), -(30147, 0, "'g'"), -(30148, 0, "' '"), -(30149, 0, "'h'"), -(30150, 0, "'e'"), -(30151, 0, "'r'"), -(30152, 0, "'e'"), -(30153, 0, "' '"), -(30154, 0, "'a'"), -(30155, 0, "'l'"), -(30156, 0, "'s'"), -(30157, 0, "'o'"), -(30158, 0, "' '"), -(30159, 0, "'o'"), -(30160, 0, "'n'"), -(30161, 0, "'l'"), -(30162, 0, "'y'"), -(30163, 0, "' '"), -(30164, 0, "'h'"), -(30165, 0, "'a'"), -(30166, 0, "'s'"), -(30167, 0, "' '"), -(30168, 0, "'a'"), -(30169, 0, "' '"), -(30170, 0, "'s'"), -(30171, 0, "'i'"), -(30172, 0, "'n'"), -(30173, 0, "'g'"), -(30174, 0, "'l'"), -(30175, 0, "'e'"), -(30176, 0, "' '"), -(30177, 0, "'u'"), -(30178, 0, "'s'"), -(30179, 0, "'e'"), -(30180, 0, "'r'"), -(30181, 0, "' '"), -(30182, 0, "'m'"), -(30183, 0, "'a'"), -(30184, 0, "'k'"), -(30185, 0, "'i'"), -(30186, 0, "'n'"), -(30187, 0, "'g'"), -(30188, 0, "' '"), -(30189, 0, "'e'"), -(30190, 0, "'d'"), -(30191, 0, "'i'"), -(30192, 0, "'t'"), -(30193, 0, "'s'"), -(30194, 0, "' '"), -(30195, 0, "'-'"), -(30196, 0, "' '"), -(30196, 1, "''"), -(30195, 1, "''"), -(30194, 1, "''"), -(30194, 0, "'.'"), -(30195, 0, "' '"), -(30196, 0, "'T'"), -(30197, 0, "'h'"), -(30198, 0, "'e'"), -(30199, 0, "'r'"), -(30200, 0, "'e'"), -(30201, 0, "' '"), -(30202, 0, "'m'"), -(30203, 0, "'i'"), -(30204, 0, "'g'"), -(30205, 0, "'h'"), -(30206, 0, "'t'"), -(30207, 0, "' '"), -(30202, 6, "'c'"), -(30203, 0, "'o'"), -(30204, 0, "'u'"), -(30205, 0, "'l'"), -(30206, 0, "'d'"), -(30207, 0, "' '"), -(30208, 0, "'b'"), -(30209, 0, "'e'"), -(30210, 0, "' '"), -(30211, 0, "'p'"), -(30212, 0, "'a'"), -(30213, 0, "'t'"), -(30214, 0, "'h'"), -(30215, 0, "'o'"), -(30216, 0, "'l'"), -(30217, 0, "'o'"), -(30218, 0, "'g'"), -(30219, 0, "'i'"), -(30220, 0, "'c'"), -(30221, 0, "'a'"), -(30222, 0, "'l'"), -(30223, 0, "' '"), -(30224, 0, "'c'"), -(30225, 0, "'a'"), -(30226, 0, "'s'"), -(30227, 0, "'e'"), -(30228, 0, "'s'"), -(30229, 0, "' '"), -(30230, 0, "'l'"), -(30231, 0, "'u'"), -(30232, 0, "'r'"), -(30233, 0, "'k'"), -(30234, 0, "'i'"), -(30235, 0, "'n'"), -(30236, 0, "'g'"), -(30237, 0, "' '"), -(30238, 0, "'i'"), -(30239, 0, "'n'"), -(30240, 0, "' '"), -(30241, 0, "'t'"), -(30242, 0, "'h'"), -(30243, 0, "'e'"), -(30244, 0, "' '"), -(30245, 0, "'s'"), -(30246, 0, "'h'"), -(30247, 0, "'a'"), -(30248, 0, "'d'"), -(30249, 0, "'o'"), -(30250, 0, "'w'"), -(30251, 0, "'s'"), -(30224, 0, "'p'"), -(30225, 0, "'e'"), -(30226, 0, "'r'"), -(30227, 0, "'f'"), -(30228, 0, "'o'"), -(30229, 0, "'r'"), -(30230, 0, "'m'"), -(30231, 0, "'a'"), -(30232, 0, "'n'"), -(30233, 0, "'c'"), -(30234, 0, "'e'"), -(30235, 0, "' '"), -(30264, 0, "' '"), -(30265, 0, "'w'"), -(30266, 0, "'h'"), -(30267, 0, "'e'"), -(30268, 0, "'n'"), -(30269, 0, "' '"), -(30270, 0, "'c'"), -(30271, 0, "'o'"), -(30272, 0, "'n'"), -(30273, 0, "'c'"), -(30274, 0, "'u'"), -(30275, 0, "'r'"), -(30276, 0, "'r'"), -(30277, 0, "'e'"), -(30278, 0, "'n'"), -(30279, 0, "'t'"), -(30280, 0, "' '"), -(30281, 0, "'e'"), -(30282, 0, "'d'"), -(30283, 0, "'i'"), -(30284, 0, "'t'"), -(30285, 0, "'s'"), -(30286, 0, "' '"), -(30287, 0, "'h'"), -(30288, 0, "'a'"), -(30289, 0, "'p'"), -(30290, 0, "'p'"), -(30291, 0, "'e'"), -(30292, 0, "'n'"), -(30293, 0, "' '"), -(30294, 0, "'h'"), -(30295, 0, "'e'"), -(30296, 0, "'r'"), -(30297, 0, "'e'"), -(30298, 0, "'.'"), -(29965, 0, "' '"), -(29966, 0, "'a'"), -(29967, 0, "'c'"), -(29968, 0, "'t'"), -(29969, 0, "'u'"), -(29970, 0, "'a'"), -(29971, 0, "'l'"), -(29972, 0, "'l'"), -(29973, 0, "'y'"), -(29974, 5, "''"), -(30290, 13, "''"), -(30274, 0, "'u'"), -(30275, 0, "'s'"), -(30276, 0, "'e'"), -(30277, 0, "'r'"), -(30278, 0, "'s'"), -(30279, 0, "' '"), -(30280, 0, "'m'"), -(30281, 0, "'a'"), -(30282, 0, "'k'"), -(30283, 0, "'e'"), -(30284, 0, "' '"), -(30301, 0, "'.'"), -(27054, 0, "' '"), -(27055, 0, "'A'"), -(27056, 0, "':'"), -(27057, 14, "''"), -(28251, 1, "''"), -(28251, 0, "' '"), -(28252, 0, "'A'"), -(28253, 0, "'p'"), -(28254, 0, "'p'"), -(28255, 0, "'e'"), -(28256, 0, "'n'"), -(28257, 0, "'d'"), -(28258, 0, "'i'"), -(28259, 0, "'n'"), -(28260, 0, "'g'"), -(28261, 0, "' '"), -(28262, 0, "'B'"), -(28263, 0, "':'"), -(28264, 0, "' '"), -(28265, 0, "'Y'"), -(28266, 0, "'o'"), -(28267, 0, "'u'"), -(28268, 0, "'r'"), -(28269, 0, "' '"), -(28270, 0, "'b'"), -(28271, 0, "'e'"), -(28272, 0, "'n'"), -(28273, 0, "'c'"), -(28274, 0, "'h'"), -(28275, 0, "'m'"), -(28276, 0, "'a'"), -(28277, 0, "'r'"), -(28278, 0, "'k'"), -(28279, 0, "'s'"), -(28280, 0, "' '"), -(28281, 0, "'a'"), -(28282, 0, "'r'"), -(28283, 0, "'e'"), -(28284, 0, "' '"), -(28285, 0, "'w'"), -(28286, 0, "'r'"), -(28287, 0, "'o'"), -(28288, 0, "'n'"), -(28289, 0, "'g'"), -(28290, 34, "''"), -(28285, 0, "'w'"), -(28286, 0, "'e'"), -(28287, 0, "'i'"), -(28288, 0, "'r'"), -(28289, 0, "'d'"), -(28290, 0, "' '"), -(28291, 0, "'/'"), -(28292, 0, "' '"), -(28298, 0, "' '"), -(28299, 0, "'/'"), -(28300, 0, "' '"), -(28301, 0, "'m'"), -(28302, 0, "'i'"), -(28303, 0, "'s'"), -(28304, 0, "'l'"), -(28305, 0, "'e'"), -(28306, 0, "'a'"), -(28307, 0, "'d'"), -(28308, 0, "'i'"), -(28309, 0, "'n'"), -(28310, 0, "'g'"), -(28265, 4, "'T'"), -(28266, 0, "'h'"), -(28267, 0, "'e'"), -(28268, 0, "'s'"), -(28269, 0, "'e'"), -(28464, 9, "''"), -(28586, 0, "'I'"), -(28586, 1, "''"), -(28586, 0, "'D'"), -(28587, 0, "'o'"), -(28588, 0, "'i'"), -(28589, 0, "'n'"), -(28590, 0, "'g'"), -(28591, 0, "' '"), -(28592, 0, "'t'"), -(28593, 0, "'h'"), -(28594, 0, "'i'"), -(28595, 0, "'s'"), -(28596, 4, "' '"), -(28596, 1, "''"), -(28640, 0, "'f'"), -(28641, 0, "'o'"), -(28642, 0, "'r'"), -(28643, 0, "' '"), -(28644, 0, "'Y'"), -(28645, 0, "'A'"), -(28646, 0, "'T'"), -(28647, 0, "'A'"), -(28648, 0, "' '"), -(28649, 0, "'a'"), -(28650, 0, "'n'"), -(28651, 0, "'d'"), -(28652, 0, "' '"), -(28653, 0, "'R'"), -(28654, 0, "'G'"), -(28655, 0, "'A'"), -(28656, 0, "' '"), -(28701, 0, "' '"), -(28702, 0, "'b'"), -(28703, 0, "'e'"), -(28704, 0, "'t'"), -(28705, 0, "'w'"), -(28706, 0, "'e'"), -(28707, 0, "'e'"), -(28708, 0, "'n'"), -(28709, 0, "' '"), -(28710, 0, "'C'"), -(28711, 0, "'R'"), -(28712, 0, "'D'"), -(28713, 0, "'T'"), -(28754, 42, "''"), -(28690, 3, "''"), -(28693, 0, "' '"), -(28694, 0, "'c'"), -(28695, 0, "'a'"), -(28696, 0, "'n'"), -(28725, 0, "' '"), -(28726, 0, "'w'"), -(28727, 0, "'i'"), -(28728, 0, "'t'"), -(28729, 0, "'h'"), -(28730, 0, "'o'"), -(28731, 0, "'u'"), -(28732, 0, "'t'"), -(28733, 0, "' '"), -(28734, 0, "'c'"), -(28735, 0, "'h'"), -(28736, 0, "'a'"), -(28737, 0, "'n'"), -(28738, 0, "'g'"), -(28739, 0, "'e'"), -(28739, 1, "''"), -(28739, 0, "'i'"), -(28740, 0, "'n'"), -(28741, 0, "'g'"), -(28742, 0, "' '"), -(28743, 0, "'y'"), -(28744, 0, "'o'"), -(28745, 0, "'u'"), -(28746, 0, "'r'"), -(28747, 0, "' '"), -(28748, 0, "'i'"), -(28749, 0, "'m'"), -(28750, 0, "'p'"), -(28751, 0, "'l'"), -(28752, 0, "'e'"), -(28753, 0, "'m'"), -(28754, 0, "'e'"), -(28755, 0, "'n'"), -(28756, 0, "'t'"), -(28757, 0, "'a'"), -(28758, 0, "'t'"), -(28759, 0, "'i'"), -(28760, 0, "'o'"), -(28761, 0, "'n'"), -(28762, 0, "','"), -(28763, 0, "' '"), -(28764, 0, "'o'"), -(28765, 0, "'r'"), -(28766, 0, "' '"), -(28767, 0, "'y'"), -(28768, 0, "'o'"), -(28769, 0, "'u'"), -(28770, 0, "'r'"), -(28771, 0, "' '"), -(28772, 0, "'i'"), -(28773, 0, "'m'"), -(28774, 0, "'p'"), -(28775, 0, "'l'"), -(28776, 0, "'e'"), -(28777, 0, "'m'"), -(28778, 0, "'e'"), -(28779, 0, "'n'"), -(28780, 0, "'t'"), -(28781, 0, "'a'"), -(28782, 0, "'t'"), -(28783, 0, "'i'"), -(28784, 0, "'o'"), -(28785, 0, "'n'"), -(28786, 0, "' '"), -(28787, 0, "'p'"), -(28788, 0, "'e'"), -(28789, 0, "'r'"), -(28790, 0, "'f'"), -(28791, 0, "'o'"), -(28792, 0, "'r'"), -(28793, 0, "'m'"), -(28794, 0, "'a'"), -(28795, 0, "'n'"), -(28796, 0, "'c'"), -(28797, 0, "'e'"), -(28798, 30, "''"), -(28845, 10, "'n'"), -(28845, 1, "''"), -(28845, 0, "'l'"), -(28846, 0, "'o'"), -(28847, 0, "'o'"), -(28848, 0, "'k'"), -(28849, 0, "'e'"), -(28850, 0, "'d'"), -(28851, 0, "' '"), -(28852, 0, "'a'"), -(28853, 0, "'t'"), -(28865, 3, "''"), -(28865, 0, "' '"), -(28866, 0, "'f'"), -(28867, 0, "'e'"), -(28868, 0, "'e'"), -(28869, 0, "'l'"), -(28870, 0, "' '"), -(28871, 0, "'c'"), -(28872, 0, "'o'"), -(28873, 0, "'n'"), -(28874, 0, "'f'"), -(28875, 0, "'i'"), -(28876, 0, "'d'"), -(28877, 0, "'e'"), -(28878, 0, "'n'"), -(28879, 0, "'t'"), -(28880, 0, "' '"), -(28881, 0, "'i'"), -(28882, 0, "'n'"), -(28883, 0, "' '"), -(28884, 0, "'t'"), -(28885, 0, "'h'"), -(28886, 0, "'i'"), -(28887, 0, "'s'"), -(28888, 0, "' '"), -(28889, 0, "'c'"), -(28890, 0, "'l'"), -(28891, 0, "'a'"), -(28892, 0, "'i'"), -(28893, 0, "'m'"), -(28894, 0, "' '"), -(28895, 0, "'b'"), -(28896, 0, "'e'"), -(28897, 0, "'c'"), -(28898, 0, "'a'"), -(28899, 0, "'u'"), -(28900, 0, "'s'"), -(28901, 0, "'e'"), -(28902, 0, "' '"), -(28903, 0, "'I'"), -(28923, 9, "''"), -(29049, 7, "''"), -(29038, 0, "'('"), -(29039, 0, "'a'"), -(29040, 0, "'n'"), -(29041, 0, "'d'"), -(29042, 0, "' '"), -(29043, 0, "'a'"), -(29044, 0, "'n'"), -(29045, 0, "' '"), -(29046, 0, "'i'"), -(29046, 1, "''"), -(29045, 1, "''"), -(29044, 1, "''"), -(29044, 0, "' '"), -(29045, 0, "'a'"), -(29046, 0, "'l'"), -(29047, 0, "'m'"), -(29048, 0, "'o'"), -(29049, 0, "'s'"), -(29050, 0, "'t'"), -(29051, 0, "'-'"), -(29052, 0, "'i'"), -(29053, 0, "'d'"), -(29054, 0, "'e'"), -(29055, 0, "'n'"), -(29056, 0, "'t'"), -(29057, 0, "'i'"), -(29058, 0, "'c'"), -(29059, 0, "'a'"), -(29060, 0, "'l'"), -(29061, 0, "' '"), -(29062, 0, "'c'"), -(29063, 0, "'o'"), -(29064, 0, "'d'"), -(29065, 0, "'e'"), -(29066, 0, "'p'"), -(29067, 0, "'a'"), -(29068, 0, "'t'"), -(29069, 0, "'h'"), -(29070, 0, "')'"), -(29071, 0, "' '"), -(29112, 0, "' '"), -(29113, 0, "'T'"), -(29114, 0, "'h'"), -(29115, 0, "'e'"), -(29116, 0, "'r'"), -(29117, 0, "'e'"), -(29118, 0, "' '"), -(29119, 0, "'m'"), -(29120, 0, "'i'"), -(29121, 0, "'g'"), -(29122, 0, "'h'"), -(29123, 0, "'t'"), -(29124, 0, "' '"), -(29125, 0, "'b'"), -(29126, 0, "'e'"), -(29127, 0, "' '"), -(29128, 0, "'s'"), -(29129, 0, "'o'"), -(29130, 0, "'m'"), -(29131, 0, "'e'"), -(29132, 0, "' '"), -(29133, 0, "'p'"), -(29134, 0, "'e'"), -(29135, 0, "'r'"), -(29136, 0, "'f'"), -(29137, 0, "'o'"), -(29138, 0, "'r'"), -(29139, 0, "'m'"), -(29140, 0, "'a'"), -(29141, 0, "'n'"), -(29142, 0, "'c'"), -(29143, 0, "'e'"), -(29144, 0, "' '"), -(29145, 0, "'c'"), -(29146, 0, "'h'"), -(29147, 0, "'a'"), -(29148, 0, "'n'"), -(29149, 0, "'g'"), -(29145, 5, "'d'"), -(29146, 0, "'i'"), -(29147, 0, "'f'"), -(29148, 0, "'f'"), -(29149, 0, "'e'"), -(29150, 0, "'r'"), -(29151, 0, "'e'"), -(29152, 0, "'n'"), -(29153, 0, "'c'"), -(29154, 0, "'e'"), -(29155, 0, "'s'"), -(29156, 0, "' '"), -(29157, 0, "'w'"), -(29158, 0, "'i'"), -(29159, 0, "'t'"), -(29160, 0, "'h'"), -(29161, 0, "' '"), -(29162, 0, "'c'"), -(29163, 0, "'o'"), -(29164, 0, "'n'"), -(29165, 0, "'f'"), -(29166, 0, "'l'"), -(29167, 0, "'i'"), -(29168, 0, "'c'"), -(29169, 0, "'t'"), -(29170, 0, "'-'"), -(29171, 0, "'h'"), -(29172, 0, "'e'"), -(29173, 0, "'a'"), -(29174, 0, "'v'"), -(29175, 0, "'y'"), -(29176, 0, "' '"), -(29177, 0, "'e'"), -(29178, 0, "'d'"), -(29179, 0, "'i'"), -(29180, 0, "'t'"), -(29181, 0, "'i'"), -(29182, 0, "'n'"), -(29183, 0, "'g'"), -(29184, 0, "' '"), -(29185, 0, "'t'"), -(29186, 0, "'r'"), -(29187, 0, "'a'"), -(29188, 0, "'c'"), -(29189, 0, "'e'"), -(29190, 0, "'s'"), -(29191, 0, "' '"), -(29192, 0, "'-'"), -(29193, 0, "' '"), -(29194, 0, "'b'"), -(29195, 0, "'u'"), -(29196, 0, "'t'"), -(29197, 0, "' '"), -(29198, 0, "'t'"), -(29199, 0, "'h'"), -(29200, 0, "'a'"), -(29201, 0, "'t'"), -(29202, 0, "'s'"), -(29203, 0, "' '"), -(29204, 0, "'e'"), -(29205, 0, "'x'"), -(29206, 0, "'t'"), -(29207, 0, "'r'"), -(29208, 0, "'e'"), -(29209, 0, "'m'"), -(29210, 0, "'e'"), -(29211, 0, "'l'"), -(29212, 0, "'y'"), -(29213, 0, "' '"), -(29214, 0, "'r'"), -(29215, 0, "'a'"), -(29216, 0, "'r'"), -(29217, 0, "'e'"), -(29218, 0, "' '"), -(29219, 0, "'i'"), -(29220, 0, "'n'"), -(29221, 0, "' '"), -(29222, 0, "'r'"), -(29223, 0, "'a'"), -(29223, 1, "''"), -(29222, 1, "''"), -(29222, 0, "'p'"), -(29223, 0, "'r'"), -(29224, 0, "'a'"), -(29225, 0, "'c'"), -(29226, 0, "'t'"), -(29227, 0, "'i'"), -(29228, 0, "'c'"), -(29229, 0, "'e'"), -(29230, 0, "'.'"), -(29232, 4, "''"), -(29231, 1, "''"), -(29231, 0, "'n'"), -(29232, 0, "'n'"), -(29236, 0, "' '"), -(29237, 0, "'a'"), -(29238, 0, "'l'"), -(29239, 0, "'s'"), -(29240, 0, "'o'"), -(29261, 25, "''"), -(29316, 0, "','"), -(29317, 0, "' '"), -(29318, 0, "'w'"), -(29319, 0, "'i'"), -(29320, 0, "'t'"), -(29321, 0, "'h'"), -(29322, 0, "'o'"), -(29323, 0, "'u'"), -(29324, 0, "'t'"), -(29325, 0, "' '"), -(29326, 0, "'c'"), -(29327, 0, "'h'"), -(29328, 0, "'a'"), -(29329, 0, "'n'"), -(29330, 0, "'g'"), -(29331, 0, "'i'"), -(29332, 0, "'n'"), -(29333, 0, "'g'"), -(29334, 0, "' '"), -(29335, 0, "'y'"), -(29336, 0, "'j'"), -(29337, 0, "'s'"), -(29338, 0, "'''"), -(29339, 0, "'s'"), -(29340, 0, "' '"), -(29341, 0, "'p'"), -(29342, 0, "'e'"), -(29343, 0, "'f'"), -(29343, 1, "''"), -(29343, 0, "'r'"), -(29344, 0, "'f'"), -(29345, 0, "'o'"), -(29346, 0, "'r'"), -(29347, 0, "'m'"), -(29348, 0, "'a'"), -(29349, 0, "'n'"), -(29350, 0, "'c'"), -(29351, 0, "'e'"), -(29340, 0, "' '"), -(29341, 0, "'r'"), -(29342, 0, "'e'"), -(29343, 0, "'s'"), -(29344, 0, "'u'"), -(29345, 0, "'l'"), -(29346, 0, "'t'"), -(29347, 0, "'i'"), -(29348, 0, "'n'"), -(29349, 0, "'g'"), -(29341, 9, "''"), -(29340, 1, "''"), -(29354, 13, "'I'"), -(29355, 0, "' '"), -(29356, 0, "'k'"), -(29357, 0, "'n'"), -(29358, 0, "'o'"), -(29359, 0, "'w'"), -(29360, 0, "' '"), -(29361, 0, "'h'"), -(29362, 0, "'o'"), -(29363, 0, "'w'"), -(29364, 0, "' '"), -(29365, 0, "'y'"), -(29366, 0, "'o'"), -(29367, 0, "'u'"), -(29368, 0, "'''"), -(29369, 0, "'d'"), -(29370, 0, "' '"), -(29371, 0, "'d'"), -(29372, 0, "'o'"), -(29373, 0, "' '"), -(29374, 0, "'i'"), -(29375, 0, "'t'"), -(29376, 0, "','"), -(29377, 0, "' '"), -(29378, 0, "'t'"), -(29379, 0, "'o'"), -(29380, 0, "'o'"), -(29687, 0, "' '"), -(29688, 0, "'h'"), -(29689, 0, "'e'"), -(29690, 0, "' '"), -(29691, 0, "'a'"), -(29691, 1, "''"), -(29690, 1, "''"), -(29689, 1, "''"), -(29688, 1, "''"), -(29687, 1, "''"), -(29686, 1, "''"), -(29685, 1, "''"), -(29684, 1, "''"), -(29683, 1, "''"), -(29683, 0, "'.'"), -(29684, 1, "''"), -(29685, 1, "''"), -(29685, 0, "'W'"), -(29732, 4, "'R'"), -(29733, 0, "'G'"), -(29734, 0, "'A'"), -(29735, 0, "' '"), -(29736, 0, "'s'"), -(29737, 0, "'u'"), -(29738, 0, "'p'"), -(29739, 0, "'p'"), -(29740, 0, "'o'"), -(29741, 0, "'r'"), -(29742, 0, "'t'"), -(29743, 11, "''"), -(29743, 0, "' '"), -(29744, 0, "'i'"), -(29745, 0, "'n'"), -(29746, 0, "'t'"), -(29747, 0, "'o'"), -(29761, 0, "' '"), -(29762, 0, "'I'"), -(29763, 0, "' '"), -(29764, 0, "'s'"), -(29765, 0, "'o'"), -(29766, 0, "'r'"), -(29767, 0, "'t'"), -(29768, 0, "' '"), -(29769, 0, "'o'"), -(29770, 0, "'f'"), -(29771, 0, "' '"), -(29764, 8, "''"), -(29763, 1, "''"), -(29763, 0, "' '"), -(29763, 1, "''"), -(29762, 1, "''"), -(29761, 1, "''"), -(29761, 0, "' '"), -(29762, 0, "'I'"), -(29763, 0, "'t'"), -(29764, 0, "'s'"), -(29765, 0, "' '"), -(29766, 0, "'a'"), -(29767, 0, "' '"), -(29768, 0, "'l'"), -(29769, 0, "'o'"), -(29770, 0, "'t'"), -(29771, 0, "' '"), -(29772, 0, "'o'"), -(29773, 0, "'f'"), -(29774, 0, "' '"), -(29762, 13, "'C'"), -(29763, 0, "'h'"), -(29764, 0, "'a'"), -(29765, 0, "'n'"), -(29766, 0, "'g'"), -(29767, 0, "'i'"), -(29768, 0, "'n'"), -(29769, 0, "'g'"), -(29770, 0, "' '"), -(29771, 0, "'t'"), -(29772, 0, "'h'"), -(29773, 0, "'e'"), -(29774, 0, "' '"), -(29775, 0, "'b'"), -(29776, 0, "'i'"), -(29777, 0, "'n'"), -(29778, 0, "'a'"), -(29779, 0, "'r'"), -(29780, 0, "'y'"), -(29781, 0, "' '"), -(29782, 0, "'f'"), -(29783, 0, "'o'"), -(29784, 0, "'r'"), -(29785, 0, "'m'"), -(29786, 0, "'a'"), -(29787, 0, "'t'"), -(29788, 0, "' '"), -(29789, 0, "'i'"), -(29790, 0, "'n'"), -(29791, 0, "' '"), -(29792, 0, "'p'"), -(29793, 0, "'a'"), -(29794, 0, "'r'"), -(29795, 0, "'t'"), -(29796, 0, "'i'"), -(29797, 0, "'c'"), -(29798, 0, "'u'"), -(29799, 0, "'l'"), -(29800, 0, "'a'"), -(29801, 0, "'r'"), -(29802, 0, "' '"), -(29803, 0, "'i'"), -(29804, 0, "'s'"), -(29805, 0, "' '"), -(29806, 0, "'a'"), -(29807, 0, "' '"), -(29808, 0, "'l'"), -(29809, 0, "'o'"), -(29810, 0, "'t'"), -(29811, 0, "' '"), -(29812, 0, "'o'"), -(29813, 0, "'f'"), -(29814, 0, "' '"), -(29815, 0, "'w'"), -(29816, 0, "'o'"), -(29817, 0, "'r'"), -(29818, 0, "'k'"), -(29819, 0, "' '"), -(29820, 0, "'-'"), -(29821, 0, "' '"), -(29822, 0, "'a'"), -(29823, 0, "'n'"), -(29824, 0, "'d'"), -(29825, 0, "' '"), -(29826, 0, "'t'"), -(29827, 0, "'h'"), -(29828, 0, "'e'"), -(29829, 0, "'r'"), -(29830, 0, "'e'"), -(29819, 12, "','"), -(29820, 0, "' '"), -(29821, 0, "'a'"), -(29822, 0, "'n'"), -(29823, 0, "'d'"), -(29824, 0, "' '"), -(29761, 64, "' '"), -(29762, 0, "'I'"), -(29763, 0, "'t'"), -(29764, 0, "'s'"), -(29765, 0, "' '"), -(29766, 0, "'n'"), -(29767, 0, "'o'"), -(29768, 0, "'t'"), -(29769, 0, "' '"), -(29770, 0, "'a'"), -(29771, 0, "' '"), -(29772, 0, "'f'"), -(29773, 0, "'e'"), -(29774, 0, "'a'"), -(29775, 0, "'t'"), -(29776, 0, "'u'"), -(29777, 0, "'r'"), -(29778, 0, "'e'"), -(29779, 0, "' '"), -(29780, 0, "'a'"), -(29781, 0, "'n'"), -(29782, 0, "'y'"), -(29783, 0, "'o'"), -(29784, 0, "'b'"), -(29784, 1, "''"), -(29783, 1, "''"), -(29783, 0, "'b'"), -(29784, 0, "'o'"), -(29785, 0, "'d'"), -(29786, 0, "'y'"), -(29787, 0, "' '"), -(29788, 0, "'a'"), -(29789, 0, "'c'"), -(29790, 0, "'t'"), -(29791, 0, "'u'"), -(29792, 0, "'a'"), -(29793, 0, "'l'"), -(29794, 0, "'l'"), -(29795, 0, "'y'"), -(29796, 0, "' '"), -(29797, 0, "'a'"), -(29798, 0, "'s'"), -(29799, 0, "'k'"), -(29800, 0, "'s'"), -(29801, 0, "' '"), -(29802, 0, "'f'"), -(29803, 0, "'o'"), -(29804, 0, "'r'"), -(29805, 0, "'.'"), -(30006, 25, "''"), -(30006, 0, "'nYes, I know and I agree.'"), -(30031, 0, "' '"), -(30032, 0, "'T'"), -(30033, 0, "'h'"), -(30034, 0, "'i'"), -(30035, 0, "'s'"), -(30036, 0, "' '"), -(30037, 0, "'p'"), -(30038, 0, "'o'"), -(30039, 0, "'s'"), -(30040, 0, "'t'"), -(30041, 0, "' '"), -(30042, 0, "'o'"), -(30043, 0, "'n'"), -(30044, 0, "'l'"), -(30045, 0, "'y'"), -(30046, 0, "' '"), -(30047, 0, "'m'"), -(30048, 0, "'e'"), -(30049, 0, "'a'"), -(30050, 0, "'s'"), -(30051, 0, "'u'"), -(30052, 0, "'r'"), -(30053, 0, "'e'"), -(30054, 0, "' '"), -(30054, 1, "''"), -(30054, 0, "'s'"), -(30055, 0, "' '"), -(30056, 0, "'t'"), -(30057, 0, "'h'"), -(30058, 0, "'e'"), -(30059, 0, "' '"), -(30060, 0, "'t'"), -(30061, 0, "'i'"), -(30062, 0, "'m'"), -(30063, 0, "'e'"), -(30064, 0, "' '"), -(30065, 0, "'t'"), -(30066, 0, "'o'"), -(30067, 0, "'a'"), -(30067, 1, "''"), -(30066, 1, "''"), -(30066, 0, "'a'"), -(30067, 0, "'k'"), -(30068, 0, "'e'"), -(30069, 0, "'n'"), -(30070, 0, "' '"), -(30071, 0, "'t'"), -(30072, 0, "'o'"), -(30073, 0, "' '"), -(30074, 0, "'r'"), -(30075, 0, "'e'"), -(30076, 0, "'p'"), -(30077, 0, "'l'"), -(30078, 0, "'a'"), -(30079, 0, "'c'"), -(30079, 1, "''"), -(30079, 0, "'y'"), -(30080, 0, "' '"), -(30081, 0, "'a'"), -(30082, 0, "'n'"), -(30083, 0, "' '"), -(30081, 3, "'a'"), -(30082, 0, "' '"), -(30083, 0, "'l'"), -(30084, 0, "'o'"), -(30085, 0, "'c'"), -(30086, 0, "'a'"), -(30087, 0, "'l'"), -(30088, 0, "' '"), -(30089, 0, "'e'"), -(30090, 0, "'d'"), -(30091, 0, "'i'"), -(30092, 0, "'t'"), -(30093, 0, "'i'"), -(30094, 0, "'n'"), -(30095, 0, "'g'"), -(30096, 0, "' '"), -(30097, 0, "'t'"), -(30098, 0, "'r'"), -(30099, 0, "'a'"), -(30100, 0, "'c'"), -(30101, 0, "'e'"), -(30102, 0, "'.'"), -(30103, 0, "' '"), -(30104, 0, "'T'"), -(30105, 0, "'h'"), -(30106, 0, "'e'"), -(30107, 0, "'r'"), -(30108, 0, "'e'"), -(30109, 0, "'''"), -(30110, 0, "'s'"), -(30111, 0, "' '"), -(30112, 0, "'l'"), -(30113, 0, "'o'"), -(30114, 0, "'t'"), -(30115, 0, "' '"), -(30116, 0, "'o'"), -(30116, 1, "''"), -(30115, 1, "''"), -(30115, 0, "'s'"), -(30065, 0, "'a'"), -(30066, 0, "'n'"), -(30067, 0, "'d'"), -(30068, 0, "' '"), -(30069, 0, "'m'"), -(30070, 0, "'e'"), -(30071, 0, "'m'"), -(30072, 0, "'o'"), -(30073, 0, "'r'"), -(30074, 0, "'y'"), -(30075, 0, "' '"), -(30065, 11, "''"), -(30102, 0, "','"), -(30103, 0, "' '"), -(30104, 0, "'a'"), -(30105, 0, "'n'"), -(30106, 0, "'d'"), -(30107, 0, "' '"), -(30108, 0, "'t'"), -(30109, 0, "'h'"), -(30110, 0, "'e'"), -(30111, 0, "' '"), -(30112, 0, "'r'"), -(30113, 0, "'e'"), -(30114, 0, "'s'"), -(30115, 0, "'u'"), -(30116, 0, "'l'"), -(30117, 0, "'t'"), -(30118, 0, "'i'"), -(30119, 0, "'n'"), -(30120, 0, "'g'"), -(30121, 0, "' '"), -(30122, 0, "'R'"), -(30123, 0, "'A'"), -(30124, 0, "'M'"), -(30125, 0, "' '"), -(30126, 0, "'u'"), -(30127, 0, "'s'"), -(30128, 0, "'a'"), -(30129, 0, "'g'"), -(30130, 0, "'e'"), -(30145, 0, "' '"), -(30146, 0, "'o'"), -(30147, 0, "'f'"), -(30148, 0, "' '"), -(30149, 0, "'m'"), -(30150, 0, "'o'"), -(30150, 1, "''"), -(30132, 18, "''"), -(30132, 1, "''"), -(30132, 1, "''"), -(30132, 0, "' '"), -(30133, 0, "'B'"), -(30134, 0, "'u'"), -(30135, 0, "'t'"), -(30136, 0, "' '"), -(30137, 0, "'a'"), -(30138, 0, "'r'"), -(30139, 0, "'g'"), -(30140, 0, "'u'"), -(30141, 0, "'a'"), -(30142, 0, "'b'"), -(30143, 0, "'l'"), -(30144, 0, "'y'"), -(30145, 0, "','"), -(30146, 0, "' '"), -(30147, 1, "''"), -(30147, 0, "'a'"), -(30145, 1, "''"), -(30364, 0, "'('"), -(30364, 1, "''"), -(30364, 0, "'*'"), -(30383, 0, "'*'"), -(30360, 24, "'B'"), -(30360, 1, "'The *actually important*'"), -(30702, 0, "'n'"), -(30703, 0, "'n'"), -(30704, 0, "'I'"), -(30705, 0, "' '"), -(30706, 0, "'d'"), -(30707, 0, "'i'"), -(30708, 0, "'d'"), -(30709, 0, "' '"), -(30710, 0, "'i'"), -(30711, 0, "'t'"), -(30712, 0, "' '"), -(30713, 0, "'t'"), -(30714, 0, "'h'"), -(30715, 0, "'i'"), -(30716, 0, "'s'"), -(30717, 0, "' '"), -(30718, 0, "'w'"), -(30719, 0, "'a'"), -(30720, 0, "'y'"), -(30721, 0, "' '"), -(30722, 0, "'b'"), -(30723, 0, "'e'"), -(30724, 0, "'c'"), -(30725, 0, "'a'"), -(30726, 0, "'s'"), -(30727, 0, "'u'"), -(30728, 0, "'e'"), -(30729, 0, "' '"), -(30730, 0, "'b'"), -(30731, 0, "'o'"), -(30732, 0, "'t'"), -(30733, 0, "'h'"), -(30734, 0, "' '"), -(30722, 13, "'b'"), -(30723, 0, "'e'"), -(30724, 0, "'c'"), -(30725, 0, "'a'"), -(30726, 0, "'u'"), -(30727, 0, "'s'"), -(30728, 0, "'e'"), -(30729, 0, "' '"), -(30730, 0, "'m'"), -(30731, 0, "'y'"), -(30732, 0, "' '"), -(30733, 0, "'r'"), -(30734, 0, "'e'"), -(30735, 0, "'f'"), -(30736, 0, "'e'"), -(30737, 0, "'r'"), -(30738, 0, "'e'"), -(30739, 0, "'n'"), -(30740, 0, "'c'"), -(30741, 0, "'e'"), -(30742, 0, "'-'"), -(30743, 0, "'c'"), -(30744, 0, "'r'"), -(30745, 0, "'d'"), -(30746, 0, "'t'"), -(30747, 0, "'s'"), -(30730, 18, "''"), -(30729, 1, "''"), -(30729, 0, "':'"), -(30730, 0, "'n'"), -(30731, 0, "'n'"), -(30732, 0, "'-'"), -(30733, 0, "' '"), -(30734, 0, "'Y'"), -(30735, 0, "'j'"), -(30736, 0, "'s'"), -(30737, 0, "' '"), -(30738, 0, "'a'"), -(30739, 0, "'n'"), -(30740, 0, "'d'"), -(30741, 0, "' '"), -(30742, 0, "'a'"), -(30743, 0, "'u'"), -(30744, 0, "'t'"), -(30745, 0, "'o'"), -(30746, 0, "'m'"), -(30747, 0, "'e'"), -(30748, 0, "'r'"), -(30749, 0, "'g'"), -(30750, 0, "'e'"), -(30751, 0, "' '"), -(30752, 0, "'b'"), -(30753, 0, "'o'"), -(30754, 0, "'t'"), -(30755, 0, "'h'"), -(30756, 0, "' '"), -(30757, 0, "'i'"), -(30758, 0, "'m'"), -(30759, 0, "'p'"), -(30760, 0, "'l'"), -(30761, 0, "'e'"), -(30762, 0, "'e'"), -(30763, 0, "'m'"), -(30764, 0, "'t'"), -(30765, 0, "'n'"), -(30734, 0, "'T'"), -(30735, 0, "'h'"), -(30736, 0, "'e'"), -(30737, 0, "' '"), -(30738, 1, "''"), -(30738, 0, "'y'"), -(30756, 14, "'l'"), -(30757, 0, "'i'"), -(30758, 0, "'b'"), -(30759, 0, "'r'"), -(30760, 0, "'a'"), -(30761, 0, "'r'"), -(30762, 0, "'i'"), -(30763, 0, "'e'"), -(30764, 0, "'s'"), -(30765, 0, "' '"), -(30766, 0, "'i'"), -(30767, 0, "'m'"), -(30768, 0, "'p'"), -(30769, 0, "'l'"), -(30770, 0, "'e'"), -(30771, 0, "'m'"), -(30772, 0, "'e'"), -(30773, 0, "'n'"), -(30774, 0, "'t'"), -(30775, 0, "' '"), -(30776, 0, "'v'"), -(30777, 0, "'e'"), -(30778, 0, "'r'"), -(30779, 0, "'y'"), -(30780, 0, "' '"), -(30781, 0, "'f'"), -(30782, 0, "'a'"), -(30783, 0, "'s'"), -(30784, 0, "'t'"), -(30781, 4, "'c'"), -(30782, 0, "'o'"), -(30783, 0, "'m'"), -(30784, 0, "'p'"), -(30785, 0, "'a'"), -(30786, 0, "'c'"), -(30787, 0, "'t'"), -(30788, 0, "' '"), -(30789, 0, "'b'"), -(30790, 0, "'i'"), -(30791, 0, "'n'"), -(30792, 0, "'a'"), -(30793, 0, "'r'"), -(30794, 0, "'y'"), -(30795, 0, "' '"), -(30796, 0, "'r'"), -(30797, 0, "'e'"), -(30798, 0, "'p'"), -(30799, 0, "'r'"), -(30800, 0, "'e'"), -(30801, 0, "'s'"), -(30802, 0, "'e'"), -(30803, 0, "'n'"), -(30804, 0, "'t'"), -(30805, 0, "'a'"), -(30806, 0, "'t'"), -(30807, 0, "'i'"), -(30808, 0, "'o'"), -(30809, 0, "'n'"), -(30810, 0, "'s'"), -(30766, 0, "'b'"), -(30767, 0, "'o'"), -(30768, 0, "'t'"), -(30769, 0, "'h'"), -(30770, 0, "' '"), -(30816, 0, "'.'"), -(30817, 0, "' '"), -(30818, 0, "'T'"), -(30819, 0, "'h'"), -(30818, 2, "'A'"), -(30819, 0, "'n'"), -(30820, 0, "' '"), -(30821, 0, "'e'"), -(30822, 0, "'x'"), -(30823, 0, "'i'"), -(30824, 0, "'s'"), -(30825, 0, "'t'"), -(30826, 0, "'e'"), -(30827, 0, "'n'"), -(30828, 0, "'c'"), -(30829, 0, "'e'"), -(30830, 0, "' '"), -(30831, 0, "'p'"), -(30832, 0, "'r'"), -(30833, 0, "'o'"), -(30834, 0, "'o'"), -(30835, 0, "'f'"), -(30836, 0, "' '"), -(30837, 0, "'i'"), -(30838, 0, "'s'"), -(30839, 0, "' '"), -(30840, 0, "'e'"), -(30841, 0, "'n'"), -(30842, 0, "'o'"), -(30843, 0, "'u'"), -(30844, 0, "'g'"), -(30845, 0, "'h'"), -(30846, 0, "' '"), -(30847, 0, "'f'"), -(30848, 0, "'o'"), -(30849, 0, "'r'"), -(30850, 0, "' '"), -(30851, 0, "'m'"), -(30852, 0, "'e'"), -(30853, 0, "' '"), -(30854, 0, "'h'"), -(30854, 1, "''"), -(30853, 1, "''"), -(30853, 0, "' '"), -(30854, 0, "'-'"), -(30855, 0, "' '"), -(30856, 0, "'I'"), -(30857, 0, "' '"), -(30858, 0, "'t'"), -(30859, 0, "'h'"), -(30860, 0, "'i'"), -(30861, 0, "'n'"), -(30862, 0, "'k'"), -(30863, 0, "' '"), -(30864, 0, "'y'"), -(30865, 0, "'o'"), -(30866, 0, "'u'"), -(30867, 0, "' '"), -(30868, 0, "'c'"), -(30869, 0, "'o'"), -(30870, 0, "'u'"), -(30871, 0, "'l'"), -(30872, 0, "'d'"), -(30873, 0, "' '"), -(30874, 0, "'p'"), -(30875, 0, "'o'"), -(30876, 0, "'r'"), -(30877, 0, "'t'"), -(30878, 0, "' '"), -(30879, 0, "'t'"), -(30880, 0, "'h'"), -(30881, 0, "'o'"), -(30882, 0, "'s'"), -(30883, 0, "'e'"), -(30884, 0, "' '"), -(30885, 0, "'b'"), -(30886, 0, "'i'"), -(30887, 0, "'n'"), -(30888, 0, "'a'"), -(30889, 0, "'r'"), -(30890, 0, "'y'"), -(30891, 0, "' '"), -(30892, 0, "'p'"), -(30893, 0, "'a'"), -(30894, 0, "'c'"), -(30895, 0, "'k'"), -(30896, 0, "'i'"), -(30897, 0, "'n'"), -(30898, 0, "'g'"), -(30899, 0, "' '"), -(30900, 0, "'f'"), -(30901, 0, "'o'"), -(30902, 0, "'r'"), -(30903, 0, "'m'"), -(30904, 0, "'a'"), -(30905, 0, "'t'"), -(30906, 0, "'s'"), -(30907, 0, "' '"), -(30908, 0, "'t'"), -(30909, 0, "'o'"), -(30910, 0, "' '"), -(30911, 0, "'a'"), -(30912, 0, "'n'"), -(30913, 0, "'y'"), -(30914, 0, "' '"), -(30915, 0, "'i'"), -(30916, 0, "'n'"), -(30917, 0, "'m'"), -(30917, 1, "''"), -(30916, 1, "''"), -(30916, 0, "'m'"), -(30917, 0, "'p'"), -(30918, 0, "'l'"), -(30919, 0, "'e'"), -(30920, 0, "'m'"), -(30921, 0, "'e'"), -(30922, 0, "'n'"), -(30923, 0, "'t'"), -(30924, 0, "'a'"), -(30925, 0, "'t'"), -(30926, 0, "'i'"), -(30927, 0, "'o'"), -(30928, 0, "'n'"), -(30731, 0, "'n'"), -(30732, 0, "'-'"), -(30733, 0, "' '"), -(30734, 0, "'M'"), -(30735, 0, "'y'"), -(30736, 0, "' '"), -(30737, 0, "'r'"), -(30738, 0, "'e'"), -(30738, 1, "''"), -(30737, 1, "''"), -(30736, 1, "''"), -(30735, 1, "''"), -(30734, 1, "''"), -(30734, 0, "'I'"), -(30735, 0, "' '"), -(30736, 0, "'d'"), -(30737, 0, "'o'"), -(30738, 0, "'n'"), -(30739, 0, "'''"), -(30740, 0, "'t'"), -(30741, 0, "' '"), -(30732, 10, "''"), -(30731, 1, "''"), -(30730, 1, "''"), -(30729, 1, "''"), -(30729, 0, "' '"), -(30730, 0, "'I'"), -(30731, 0, "' '"), -(30732, 0, "'d'"), -(30733, 0, "'o'"), -(30734, 0, "'n'"), -(30735, 0, "'''"), -(30736, 0, "'t'"), -(30737, 0, "' '"), -(30738, 0, "'h'"), -(30739, 0, "'a'"), -(30740, 0, "'v'"), -(30741, 0, "'e'"), -(30742, 0, "' '"), -(30743, 0, "'a'"), -(30744, 0, "' '"), -(30745, 0, "'b'"), -(30746, 0, "'i'"), -(30747, 0, "'n'"), -(30748, 0, "'a'"), -(30749, 0, "'r'"), -(30750, 0, "'y'"), -(30732, 4, "''"), -(30732, 1, "''"), -(30732, 0, "'h'"), -(30733, 0, "'a'"), -(30734, 0, "'v'"), -(30735, 0, "'e'"), -(30736, 0, "'n'"), -(30737, 0, "'''"), -(30738, 0, "'t'"), -(30739, 0, "' '"), -(30740, 0, "'i'"), -(30741, 0, "'m'"), -(30742, 0, "'p'"), -(30743, 0, "'l'"), -(30744, 0, "'e'"), -(30745, 0, "'m'"), -(30746, 0, "'e'"), -(30747, 0, "'n'"), -(30748, 0, "'t'"), -(30749, 0, "'e'"), -(30750, 0, "'d'"), -(30765, 0, "' '"), -(30766, 0, "'f'"), -(30767, 0, "'o'"), -(30768, 0, "'r'"), -(30769, 0, "'m'"), -(30770, 0, "'a'"), -(30771, 0, "'t'"), -(30772, 0, "' '"), -(30773, 0, "'i'"), -(30774, 0, "'n'"), -(30775, 0, "' '"), -(30776, 0, "'m'"), -(30777, 0, "'y'"), -(30778, 0, "' '"), -(30779, 0, "'r'"), -(30780, 0, "'e'"), -(30781, 0, "'f'"), -(30782, 0, "'e'"), -(30783, 0, "'r'"), -(30784, 0, "'e'"), -(30785, 0, "'n'"), -(30786, 0, "'c'"), -(30787, 0, "'e'"), -(30788, 0, "'-'"), -(30789, 0, "'c'"), -(30790, 0, "'r'"), -(30791, 0, "'d'"), -(30792, 0, "'t'"), -(30793, 0, "'s'"), -(30794, 0, "' '"), -(30795, 0, "'o'"), -(30796, 0, "'r'"), -(30797, 0, "' '"), -(30798, 0, "'r'"), -(30799, 0, "'u'"), -(30800, 0, "'s'"), -(30801, 0, "'t'"), -(30795, 0, "'i'"), -(30796, 0, "'m'"), -(30797, 0, "'p'"), -(30798, 0, "'l'"), -(30799, 0, "'e'"), -(30800, 0, "'m'"), -(30801, 0, "'e'"), -(30802, 0, "'n'"), -(30803, 0, "'t'"), -(30804, 0, "'a'"), -(30805, 0, "'t'"), -(30806, 0, "'i'"), -(30807, 0, "'o'"), -(30808, 0, "'n'"), -(30809, 0, "' '"), -(30812, 0, "' '"), -(30813, 0, "'m'"), -(30814, 0, "'y'"), -(30820, 0, "' '"), -(30821, 0, "'c'"), -(30822, 0, "'o'"), -(30823, 0, "'d'"), -(30824, 0, "'e'"), -(30825, 0, "'.'"), -(30826, 0, "'n'"), -(30826, 0, "' '"), -(30827, 0, "'I'"), -(30828, 0, "' '"), -(30829, 0, "'t'"), -(30830, 0, "'h'"), -(30831, 0, "'i'"), -(30832, 0, "'n'"), -(30833, 0, "'k'"), -(30834, 0, "' '"), -(30835, 0, "'i'"), -(30836, 0, "'t'"), -(30837, 0, "' '"), -(30838, 0, "'w'"), -(30839, 0, "'o'"), -(30840, 0, "'u'"), -(30841, 0, "'l'"), -(30842, 0, "'d'"), -(30843, 0, "' '"), -(30844, 0, "'b'"), -(30845, 0, "'e'"), -(30846, 0, "' '"), -(30847, 0, "'r'"), -(30848, 0, "'o'"), -(30849, 0, "'u'"), -(30850, 0, "'g'"), -(30851, 0, "'h'"), -(30852, 0, "'l'"), -(30853, 0, "'y'"), -(30854, 0, "' '"), -(30835, 0, "'t'"), -(30836, 0, "'h'"), -(30837, 0, "'e'"), -(30838, 0, "' '"), -(30839, 0, "'p'"), -(30840, 0, "'e'"), -(30841, 0, "'r'"), -(30842, 0, "'f'"), -(30843, 0, "'o'"), -(30844, 0, "'r'"), -(30845, 0, "'m'"), -(30846, 0, "'a'"), -(30847, 0, "'n'"), -(30848, 0, "'c'"), -(30849, 0, "'e'"), -(30850, 0, "' '"), -(30827, 11, "'I'"), -(30828, 0, "'f'"), -(30829, 0, "' '"), -(30830, 0, "'I'"), -(30831, 0, "' '"), -(30832, 0, "'d'"), -(30833, 0, "'i'"), -(30834, 0, "'d'"), -(30835, 0, "'n'"), -(30835, 1, "''"), -(30835, 0, "','"), -(30836, 0, "' '"), -(30837, 0, "'I'"), -(30838, 0, "'''"), -(30839, 0, "'d'"), -(30840, 0, "' '"), -(30841, 0, "'c'"), -(30842, 0, "'o'"), -(30843, 0, "'p'"), -(30844, 0, "'y'"), -(30845, 0, "' '"), -(30846, 0, "'y'"), -(30847, 0, "'j'"), -(30848, 0, "'s'"), -(30849, 0, "' '"), -(30850, 0, "'&'"), -(30851, 0, "' '"), -(30852, 0, "'a'"), -(30853, 0, "'u'"), -(30854, 0, "'t'"), -(30855, 0, "'o'"), -(30856, 0, "'m'"), -(30857, 0, "'e'"), -(30858, 0, "'r'"), -(30859, 0, "'g'"), -(30860, 0, "'e'"), -(30861, 0, "'''"), -(30862, 0, "'s'"), -(30863, 0, "' '"), -(30864, 0, "'b'"), -(30865, 0, "'i'"), -(30866, 0, "'n'"), -(30867, 0, "'a'"), -(30868, 0, "'r'"), -(30869, 0, "'y'"), -(30870, 0, "' '"), -(30871, 0, "'f'"), -(30872, 0, "'o'"), -(30873, 0, "'r'"), -(30874, 0, "'m'"), -(30875, 0, "'a'"), -(30876, 0, "'t'"), -(30877, 0, "'s'"), -(30878, 0, "' '"), -(30879, 0, "'('"), -(30880, 0, "'t'"), -(30881, 0, "'h'"), -(30882, 0, "'e'"), -(30883, 0, "'y'"), -(30884, 0, "'''"), -(30885, 0, "'r'"), -(30886, 0, "'e'"), -(30887, 0, "' '"), -(30888, 0, "'e'"), -(30889, 0, "'x'"), -(30890, 0, "'t'"), -(30891, 0, "'r'"), -(30892, 0, "'e'"), -(30893, 0, "'m'"), -(30894, 0, "'e'"), -(30895, 0, "'l'"), -(30896, 0, "'y'"), -(30897, 0, "' '"), -(30898, 0, "'c'"), -(30899, 0, "'o'"), -(30900, 0, "'m'"), -(30901, 0, "'p'"), -(30902, 0, "'a'"), -(30903, 0, "'c'"), -(30904, 0, "'t'"), -(30905, 0, "')'"), -(30841, 0, "'p'"), -(30842, 0, "'r'"), -(30843, 0, "'o'"), -(30844, 0, "'b'"), -(30845, 0, "'a'"), -(30846, 0, "'b'"), -(30847, 0, "'l'"), -(30848, 0, "'y'"), -(30849, 0, "' '"), -(30915, 0, "' '"), -(30916, 0, "'-'"), -(30917, 0, "' '"), -(30918, 0, "'s'"), -(30919, 0, "'o'"), -(30920, 0, "' '"), -(30921, 0, "'s'"), -(30922, 0, "'i'"), -(30923, 0, "'z'"), -(30924, 0, "'e'"), -(30925, 0, "' '"), -(30926, 0, "'w'"), -(30927, 0, "'o'"), -(30928, 0, "'u'"), -(30929, 0, "'l'"), -(30930, 0, "'d'"), -(30931, 0, "' '"), -(30932, 0, "'b'"), -(30933, 0, "'e'"), -(30934, 0, "' '"), -(30935, 0, "'i'"), -(30936, 0, "'d'"), -(30937, 0, "'e'"), -(30938, 0, "'n'"), -(30939, 0, "'t'"), -(30940, 0, "'i'"), -(30941, 0, "'c'"), -(30942, 0, "'a'"), -(30943, 0, "'l'"), -(30944, 0, "'.'"), -(30945, 0, "' '"), -(30946, 0, "'A'"), -(30947, 0, "'n'"), -(30948, 0, "'d'"), -(30949, 0, "' '"), -(30950, 0, "'I'"), -(30951, 0, "' '"), -(30952, 0, "'t'"), -(30953, 0, "'h'"), -(30954, 0, "'i'"), -(30955, 0, "'n'"), -(30956, 0, "'k'"), -(30990, 0, "'i'"), -(30991, 0, "'n'"), -(30992, 0, "' '"), -(30990, 3, "'p'"), -(30991, 0, "'r'"), -(30992, 0, "'o'"), -(30993, 0, "'p'"), -(30994, 0, "'o'"), -(30995, 0, "'r'"), -(30996, 0, "'t'"), -(30997, 0, "'i'"), -(30998, 0, "'o'"), -(30999, 0, "'n'"), -(31000, 0, "'a'"), -(31001, 0, "'l'"), -(31002, 0, "' '"), -(31003, 0, "'w'"), -(31003, 1, "''"), -(31003, 0, "'t'"), -(31004, 0, "'o'"), -(31005, 0, "' '"), -(31006, 0, "'t'"), -(31007, 0, "'h'"), -(31008, 0, "'e'"), -(31009, 0, "' '"), -(31010, 0, "'t'"), -(31011, 0, "'i'"), -(31012, 0, "'m'"), -(31013, 0, "'e'"), -(31014, 0, "' '"), -(31015, 0, "'t'"), -(31016, 0, "'a'"), -(31017, 0, "'k'"), -(31018, 0, "'e'"), -(31019, 0, "'n'"), -(31020, 0, "' '"), -(31021, 0, "'t'"), -(31022, 0, "'o'"), -(31023, 0, "' '"), -(31024, 0, "'p'"), -(31025, 0, "'r'"), -(31026, 0, "'o'"), -(31027, 0, "'c'"), -(31028, 0, "'e'"), -(31029, 0, "'s'"), -(31030, 0, "'s'"), -(31031, 0, "' '"), -(31032, 0, "'t'"), -(31033, 0, "'h'"), -(31034, 0, "'i'"), -(31035, 0, "'s'"), -(31036, 0, "' '"), -(31037, 0, "'e'"), -(31038, 0, "'d'"), -(31039, 0, "'i'"), -(31040, 0, "'t'"), -(31041, 0, "'i'"), -(31042, 0, "'n'"), -(31043, 0, "'g'"), -(31044, 0, "' '"), -(31045, 0, "'t'"), -(31046, 0, "'r'"), -(31047, 0, "'a'"), -(31048, 0, "'c'"), -(31049, 0, "'e'"), -(31050, 0, "' '"), -(31051, 0, "'-'"), -(31052, 0, "' '"), -(31052, 1, "''"), -(31051, 1, "''"), -(31050, 1, "''"), -(31032, 18, "'e'"), -(31033, 0, "'d'"), -(31034, 0, "'i'"), -(31035, 0, "'t'"), -(31036, 0, "'i'"), -(31037, 0, "'n'"), -(31038, 0, "'g'"), -(31039, 0, "' '"), -(31040, 0, "'t'"), -(31041, 0, "'r'"), -(31042, 0, "'a'"), -(31043, 0, "'c'"), -(31044, 0, "'e'"), -(31045, 0, "'s'"), -(31046, 0, "'.'"), -(31047, 200, "''"), -(31047, 0, "'n'"), -(31048, 0, "'n'"), -(31047, 0, "' '"), -(31048, 0, "'B'"), -(31049, 0, "'u'"), -(31050, 0, "'t'"), -(31051, 0, "' '"), -(31052, 0, "'I'"), -(31053, 0, "'''"), -(31054, 0, "'v'"), -(31055, 0, "'e'"), -(31056, 0, "' '"), -(31057, 0, "'b'"), -(31058, 0, "'e'"), -(31059, 0, "'e'"), -(31060, 0, "'n'"), -(31061, 0, "' '"), -(31062, 0, "'w'"), -(31063, 0, "'r'"), -(31064, 0, "'o'"), -(31065, 0, "'n'"), -(31066, 0, "'g'"), -(31067, 0, "' '"), -(31068, 0, "'b'"), -(31069, 0, "'e'"), -(31070, 0, "'f'"), -(31071, 0, "'o'"), -(31072, 0, "'r'"), -(31073, 0, "'e'"), -(30831, 0, "' '"), -(30832, 0, "'w'"), -(30833, 0, "'r'"), -(30834, 0, "'o'"), -(30835, 0, "'t'"), -(30836, 0, "'e'"), -(30837, 0, "' '"), -(30838, 0, "'t'"), -(30839, 0, "'h'"), -(30840, 0, "'a'"), -(30841, 0, "'t'"), -(30842, 0, "' '"), -(30843, 0, "'c'"), -(30844, 0, "'o'"), -(30845, 0, "'d'"), -(30846, 0, "'e'"), -(30847, 4, "''"), -(30851, 1, "''"), -(30850, 1, "''"), -(30849, 1, "''"), -(30849, 0, "'i'"), -(30850, 0, "'t'"), -(30851, 0, "' '"), -(30852, 0, "'w'"), -(30853, 0, "'o'"), -(30854, 0, "'u'"), -(30855, 0, "'l'"), -(30856, 0, "'d'"), -(30851, 6, "''"), -(30849, 2, "''"), -(30849, 0, "'I'd'"), -(30847, 0, "' did'"), -(30842, 5, "''"), -(30837, 5, "''"), -(30831, 6, "''"), -(30887, 0, "' '"), -(30888, 0, "'b'"), -(30889, 0, "'e'"), -(30890, 0, "'c'"), -(30891, 0, "'a'"), -(30892, 0, "'u'"), -(30893, 0, "'s'"), -(30894, 0, "'e'"), -(30895, 9, "' '"), -(30896, 0, "'t'"), -(30897, 0, "'h'"), -(30898, 0, "'e'"), -(30899, 0, "'y'"), -(30900, 0, "'''"), -(30901, 0, "'r'"), -(30902, 0, "'e'"), -(30903, 0, "' '"), -(30904, 0, "'s'"), -(30905, 0, "'o'"), -(30906, 10, "''"), -(30914, 1, "''"), -(30914, 0, "'.'"), -(30916, 3, "'S'"), -(30918, 0, "' '"), -(30919, 0, "'I'"), -(30920, 0, "' '"), -(30921, 0, "'e'"), -(30922, 0, "'x'"), -(30923, 0, "'p'"), -(30924, 0, "'e'"), -(30925, 0, "'c'"), -(30926, 0, "'t'"), -(30928, 0, "'t'"), -(30929, 0, "'h'"), -(30930, 0, "'e'"), -(30931, 0, "' '"), -(30932, 0, "'r'"), -(30933, 0, "'e'"), -(30934, 0, "'s'"), -(30935, 0, "'u'"), -(30936, 0, "'l'"), -(30937, 0, "'t'"), -(30938, 0, "'i'"), -(30939, 0, "'n'"), -(30940, 0, "'g'"), -(30941, 0, "' '"), -(30965, 0, "' '"), -(30966, 0, "'b'"), -(30967, 0, "'e'"), -(30968, 0, "'t'"), -(30969, 0, "'w'"), -(30970, 0, "'e'"), -(30971, 0, "'e'"), -(30972, 0, "'n'"), -(30973, 0, "' '"), -(30974, 0, "'a'"), -(30975, 0, "'l'"), -(30976, 0, "'l'"), -(30977, 0, "' '"), -(30978, 0, "'o'"), -(30979, 0, "'f'"), -(30980, 0, "' '"), -(30981, 0, "'t'"), -(30982, 0, "'h'"), -(30983, 0, "'e'"), -(30984, 0, "'s'"), -(30985, 0, "'e'"), -(30986, 0, "' '"), -(30987, 0, "'i'"), -(30988, 0, "'m'"), -(30989, 0, "'p'"), -(30990, 0, "'l'"), -(30991, 0, "'e'"), -(30992, 0, "'m'"), -(30993, 0, "'e'"), -(30994, 0, "'n'"), -(30995, 0, "'t'"), -(30996, 0, "'a'"), -(30997, 0, "'t'"), -(30998, 0, "'i'"), -(30999, 0, "'o'"), -(31000, 0, "'n'"), -(31001, 0, "'s'"), -(31009, 0, "' '"), -(31010, 0, "'s'"), -(31011, 0, "'u'"), -(31012, 0, "'s'"), -(31013, 0, "'p'"), -(31014, 0, "'e'"), -(31015, 0, "'c'"), -(31016, 0, "'t'"), -(31017, 0, "' '"), -(31018, 0, "'('"), -(31019, 0, "'c'"), -(31020, 0, "'l'"), -(31021, 0, "'a'"), -(31022, 0, "'i'"), -(31023, 0, "'m'"), -(31024, 0, "')'"), -(31017, 8, "''"), -(31017, 6, "''"), -(31030, 0, "'f'"), -(31031, 0, "'o'"), -(31032, 0, "'r'"), -(31033, 0, "' '"), -(31034, 0, "'l'"), -(31035, 0, "'o'"), -(31036, 0, "'a'"), -(31037, 0, "'d'"), -(31038, 0, "'i'"), -(31039, 0, "'n'"), -(31040, 0, "'g'"), -(31041, 0, "' '"), -(31042, 0, "'a'"), -(31043, 0, "'n'"), -(31044, 0, "'d'"), -(31045, 0, "' '"), -(31046, 0, "'s'"), -(31047, 0, "'a'"), -(31048, 0, "'v'"), -(31049, 0, "'i'"), -(31050, 0, "'n'"), -(31051, 0, "'g'"), -(31052, 0, "' '"), -(31053, 3, "''"), -(31061, 28, "''"), -(31061, 0, "' '"), -(31062, 0, "'p'"), -(31063, 0, "'r'"), -(31064, 0, "'e'"), -(31065, 0, "'t'"), -(31066, 0, "'t'"), -(31067, 0, "'y'"), -(31068, 0, "' '"), -(31069, 0, "'s'"), -(31070, 0, "'i'"), -(31071, 0, "'m'"), -(31072, 0, "'i'"), -(31073, 0, "'l'"), -(31074, 0, "'a'"), -(31075, 0, "'r'"), -(31076, 0, "' '"), -(31077, 0, "'t'"), -(31078, 0, "'o'"), -(31079, 0, "' '"), -(31080, 0, "'t'"), -(31081, 0, "'h'"), -(31082, 0, "'e'"), -(31121, 0, "' '"), -(31122, 0, "'P'"), -(31123, 0, "'r'"), -(31124, 0, "'o'"), -(31125, 0, "'b'"), -(31126, 0, "'a'"), -(31127, 0, "'b'"), -(31121, 7, "''"), -(31121, 0, "' '"), -(31122, 0, "'P'"), -(31123, 0, "'r'"), -(31124, 0, "'o'"), -(31125, 0, "'b'"), -(31126, 0, "'a'"), -(31127, 0, "'b'"), -(31128, 0, "'l'"), -(31129, 0, "'y'"), -(31130, 0, "' '"), -(31131, 0, "'a'"), -(31132, 0, "' '"), -(31133, 0, "'b'"), -(31134, 0, "'i'"), -(31135, 0, "'t'"), -(31136, 0, "' '"), -(31137, 0, "'f'"), -(31138, 0, "'a'"), -(31139, 0, "'s'"), -(31140, 0, "'t'"), -(31141, 0, "'e'"), -(31142, 0, "'r'"), -(31143, 0, "' '"), -(31144, 0, "'e'"), -(31144, 1, "''"), -(31144, 0, "'b'"), -(31145, 0, "'e'"), -(31146, 0, "'c'"), -(31147, 0, "'a'"), -(31148, 0, "'u'"), -(31149, 0, "'s'"), -(31150, 0, "'e'"), -(31151, 0, "' '"), -(31152, 0, "'y'"), -(31153, 0, "'o'"), -(31154, 0, "'u'"), -(31155, 0, "' '"), -(31156, 0, "'o'"), -(31157, 0, "'n'"), -(31158, 0, "'l'"), -(31159, 0, "'y'"), -(31160, 0, "' '"), -(31161, 0, "'h'"), -(31162, 0, "'a'"), -(31163, 0, "'v'"), -(31164, 0, "'e'"), -(31165, 0, "' '"), -(31166, 0, "'t'"), -(31167, 0, "'o'"), -(31168, 0, "' '"), -(31169, 0, "'p'"), -(31170, 0, "'r'"), -(31171, 0, "'o'"), -(31152, 20, "'t'"), -(31153, 0, "'h'"), -(31154, 0, "'e'"), -(31155, 0, "' '"), -(31152, 4, "'i'"), -(31153, 0, "'n'"), -(31154, 0, "' '"), -(31155, 0, "'t'"), -(31156, 0, "'h'"), -(31157, 0, "'i'"), -(31158, 0, "'s'"), -(31159, 0, "' '"), -(31160, 0, "'f'"), -(31161, 0, "'o'"), -(31162, 0, "'r'"), -(31163, 0, "'m'"), -(31164, 0, "'a'"), -(31165, 0, "'t'"), -(31166, 0, "' '"), -(31167, 0, "'t'"), -(31168, 0, "'h'"), -(31169, 0, "'e'"), -(31170, 0, "' '"), -(31171, 0, "'d'"), -(31172, 0, "'o'"), -(31173, 0, "'c'"), -(31174, 0, "'u'"), -(31175, 0, "'m'"), -(31176, 0, "'e'"), -(31177, 0, "'n'"), -(31178, 0, "'t'"), -(31179, 0, "' '"), -(31180, 0, "'i'"), -(31181, 0, "'s'"), -(31182, 0, "' '"), -(31183, 0, "'a'"), -(31184, 0, "'l'"), -(31185, 0, "'r'"), -(31186, 0, "'e'"), -(31187, 0, "'a'"), -(31188, 0, "'d'"), -(31189, 0, "' '"), -(31190, 0, "'s'"), -(31191, 0, "'t'"), -(31191, 1, "''"), -(31190, 1, "''"), -(31189, 1, "''"), -(31189, 0, "'y'"), -(31190, 0, "' '"), -(31191, 0, "'s'"), -(31192, 0, "'t'"), -(31193, 0, "'o'"), -(31194, 0, "'r'"), -(31195, 0, "'e'"), -(31196, 0, "'d'"), -(31197, 0, "' '"), -(31198, 0, "'i'"), -(31199, 0, "'n'"), -(31200, 0, "' '"), -(31201, 0, "'o'"), -(31202, 0, "'r'"), -(31203, 0, "'d'"), -(31204, 0, "'e'"), -(31205, 0, "'r'"), -(31206, 0, "'.'"), -(31122, 86, "''"), -(31148, 0, "'.'"), -(31149, 0, "'n'"), -(31150, 0, "'n'"), -(31151, 0, "'I'"), -(31152, 0, "' '"), -(31152, 1, "''"), -(31151, 1, "''"), -(31151, 0, "'T'"), -(31152, 0, "'h'"), -(31153, 0, "'e'"), -(31154, 0, "'r'"), -(31155, 0, "'e'"), -(31156, 0, "'''"), -(31157, 0, "'s'"), -(31158, 0, "' '"), -(31159, 0, "'a'"), -(31160, 0, "' '"), -(31161, 0, "'f'"), -(31162, 0, "'e'"), -(31163, 0, "'w'"), -(31164, 0, "' '"), -(31165, 0, "'s'"), -(31166, 0, "'m'"), -(31167, 0, "'a'"), -(31168, 0, "'l'"), -(31169, 0, "'l'"), -(31170, 0, "' '"), -(31171, 0, "'d'"), -(31172, 0, "'i'"), -(31173, 0, "'f'"), -(31174, 0, "'f'"), -(31175, 0, "'e'"), -(31176, 0, "'r'"), -(31177, 0, "'e'"), -(31178, 0, "'n'"), -(31179, 0, "'c'"), -(31180, 0, "'e'"), -(31181, 0, "'s'"), -(30316, 0, "'a'"), -(30317, 0, "'b'"), -(30318, 0, "'o'"), -(30319, 0, "'u'"), -(30320, 0, "'t'"), -(30321, 0, "' '"), -(30364, 0, "' '"), -(30364, 1, "''"), -(30364, 0, "' '"), -(30364, 1, "''"), -(30364, 0, "'n'"), -(30365, 0, "'n'"), -(30366, 0, "'I'"), -(30367, 0, "'t'"), -(30368, 0, "' '"), -(30369, 0, "'i'"), -(30370, 0, "'s'"), -(30371, 0, "' '"), -(30372, 0, "'r'"), -(30373, 0, "'e'"), -(30374, 0, "'a'"), -(30375, 0, "'l'"), -(30376, 0, "'l'"), -(30377, 0, "'y'"), -(30378, 0, "' '"), -(30379, 0, "'f'"), -(30380, 0, "'u'"), -(30381, 0, "'n'"), -(30382, 0, "' '"), -(30383, 0, "'t'"), -(30384, 0, "'h'"), -(30385, 0, "'o'"), -(30386, 0, "'u'"), -(30387, 0, "'g'"), -(30388, 0, "'h'"), -(30389, 0, "'.'"), -(31188, 26, "' '"), -(31189, 0, "'i'"), -(31190, 0, "'s'"), -(31191, 0, "' '"), -(31192, 0, "'o'"), -(31193, 0, "'n'"), -(31194, 0, "'e'"), -(31195, 0, "' '"), -(31196, 0, "'d'"), -(31197, 0, "'i'"), -(31198, 0, "'f'"), -(31199, 0, "'f'"), -(31200, 0, "'e'"), -(31201, 0, "'r'"), -(31202, 0, "'e'"), -(31203, 0, "'n'"), -(31204, 0, "'c'"), -(31205, 0, "'e'"), -(31206, 0, "' '"), -(31207, 0, "'w'"), -(31208, 0, "'h'"), -(31209, 0, "'i'"), -(31210, 0, "'c'"), -(31211, 0, "'h'"), -(31212, 0, "' '"), -(31213, 0, "'m'"), -(31214, 0, "'i'"), -(31215, 0, "'g'"), -(31216, 0, "'h'"), -(31217, 0, "'t'"), -(31218, 0, "' '"), -(31219, 0, "'m'"), -(31220, 0, "'a'"), -(31221, 0, "'t'"), -(31222, 0, "'t'"), -(31223, 0, "'e'"), -(31224, 0, "'r'"), -(31225, 0, "' '"), -(31226, 0, "'-'"), -(31227, 0, "' '"), -(31228, 0, "'y'"), -(31229, 0, "'j'"), -(31230, 0, "'s'"), -(31231, 0, "'''"), -(31232, 0, "'s'"), -(31233, 0, "' '"), -(31234, 0, "'b'"), -(31235, 0, "'i'"), -(31236, 0, "'n'"), -(31237, 0, "'a'"), -(31238, 0, "'r'"), -(31239, 0, "'y'"), -(31240, 0, "' '"), -(31241, 0, "'f'"), -(31242, 0, "'o'"), -(31243, 0, "'r'"), -(31244, 0, "'m'"), -(31245, 0, "'a'"), -(31246, 0, "'t'"), -(31247, 0, "' '"), -(31248, 0, "'d'"), -(31249, 0, "'o'"), -(31250, 0, "'e'"), -(31251, 0, "'s'"), -(31252, 0, "' '"), -(31253, 0, "'r'"), -(31254, 0, "'u'"), -(31255, 0, "'n'"), -(31256, 0, "'-'"), -(31257, 0, "'l'"), -(31258, 0, "'e'"), -(31259, 0, "'n'"), -(31260, 0, "'g'"), -(31261, 0, "'t'"), -(31262, 0, "'h'"), -(31263, 0, "' '"), -(31264, 0, "'e'"), -(31265, 0, "'n'"), -(31266, 0, "'c'"), -(31267, 0, "'o'"), -(31268, 0, "'d'"), -(31269, 0, "'i'"), -(31270, 0, "'n'"), -(31271, 0, "'g'"), -(31272, 0, "' '"), -(31273, 0, "'o'"), -(31274, 0, "'f'"), -(31275, 0, "' '"), -(31276, 0, "'t'"), -(31277, 0, "'h'"), -(31278, 0, "'e'"), -(31279, 0, "' '"), -(31231, 49, "' '"), -(31232, 0, "'p'"), -(31233, 0, "'a'"), -(31234, 0, "'c'"), -(31235, 0, "'k'"), -(31236, 0, "'a'"), -(31236, 1, "''"), -(31236, 0, "'s'"), -(31237, 0, "' '"), -(31238, 0, "'t'"), -(31239, 0, "'h'"), -(31239, 1, "''"), -(31238, 1, "''"), -(31238, 0, "'i'"), -(31239, 0, "'n'"), -(31240, 0, "'f'"), -(31241, 0, "'o'"), -(31242, 0, "'r'"), -(31243, 0, "'m'"), -(31244, 0, "'a'"), -(31245, 0, "'t'"), -(31246, 0, "'i'"), -(31247, 0, "'o'"), -(31248, 0, "'n'"), -(31249, 0, "' '"), -(31250, 0, "'a'"), -(31251, 0, "'b'"), -(31252, 0, "'o'"), -(31253, 0, "'u'"), -(31254, 0, "'t'"), -(31255, 0, "' '"), -(31256, 0, "'d'"), -(31257, 0, "'e'"), -(31258, 0, "'l'"), -(31259, 0, "'e'"), -(31260, 0, "'t'"), -(31261, 0, "'e'"), -(31262, 0, "'d'"), -(31263, 0, "' '"), -(31264, 0, "'e'"), -(31265, 0, "'l'"), -(31266, 0, "'e'"), -(31267, 0, "'e'"), -(31268, 0, "'m'"), -(31269, 0, "'n'"), -(31270, 0, "'t'"), -(31271, 0, "'s'"), -(31272, 0, "' '"), -(31264, 9, "'e'"), -(31265, 0, "'l'"), -(31266, 0, "'e'"), -(31267, 0, "'m'"), -(31268, 0, "'e'"), -(31269, 0, "'n'"), -(31270, 0, "'t'"), -(31271, 0, "'s'"), -(31232, 40, "'a'"), -(31233, 0, "'n'"), -(31234, 0, "'d'"), -(31235, 0, "' '"), -(31236, 0, "'a'"), -(31237, 0, "'u'"), -(31238, 0, "'t'"), -(31239, 0, "'o'"), -(31240, 0, "'m'"), -(31241, 0, "'e'"), -(31242, 0, "'r'"), -(31243, 0, "'g'"), -(31244, 0, "'e'"), -(31245, 0, "' '"), -(31246, 0, "'t'"), -(31247, 0, "'r'"), -(31248, 0, "'e'"), -(31249, 0, "'a'"), -(31250, 0, "'t'"), -(31251, 0, "' '"), -(31252, 0, "'d'"), -(31253, 0, "'e'"), -(31254, 0, "'l'"), -(31255, 0, "'e'"), -(31252, 4, "'i'"), -(31253, 0, "'n'"), -(31254, 0, "'f'"), -(31255, 0, "'o'"), -(31256, 0, "'r'"), -(31257, 0, "'m'"), -(31258, 0, "'a'"), -(31259, 0, "'t'"), -(31260, 0, "'o'"), -(31261, 0, "'i'"), -(31262, 0, "'n'"), -(31263, 0, "' '"), -(31264, 0, "'a'"), -(31265, 0, "'b'"), -(31252, 14, "'i'"), -(31253, 0, "'n'"), -(31254, 0, "'f'"), -(31255, 0, "'o'"), -(31256, 0, "'r'"), -(31257, 0, "'m'"), -(31258, 0, "'a'"), -(31259, 0, "'t'"), -(31260, 0, "'i'"), -(31261, 0, "'o'"), -(31262, 0, "'n'"), -(31263, 0, "' '"), -(31264, 0, "'a'"), -(31265, 0, "'b'"), -(31266, 0, "'o'"), -(31267, 0, "'u'"), -(31268, 0, "'t'"), -(31269, 0, "' '"), -(31270, 0, "'d'"), -(31271, 0, "'e'"), -(31272, 0, "'l'"), -(31273, 0, "'e'"), -(31274, 0, "'t'"), -(31275, 0, "'e'"), -(31276, 0, "'d'"), -(31277, 0, "' '"), -(31278, 0, "'i'"), -(31279, 0, "'t'"), -(31280, 0, "'e'"), -(31281, 0, "'m'"), -(31282, 0, "'s'"), -(31283, 0, "' '"), -(31284, 0, "'l'"), -(31284, 1, "''"), -(31284, 0, "'s'"), -(31285, 0, "'l'"), -(31286, 0, "'i'"), -(31287, 0, "'g'"), -(31288, 0, "'h'"), -(31289, 0, "'t'"), -(31290, 0, "'l'"), -(31291, 0, "'y'"), -(31292, 0, "' '"), -(31293, 0, "'d'"), -(31294, 0, "'i'"), -(31295, 0, "'f'"), -(31296, 0, "'f'"), -(31297, 0, "'e'"), -(31298, 0, "'r'"), -(31299, 0, "'e'"), -(31300, 0, "'n'"), -(31301, 0, "'t'"), -(31302, 0, "'l'"), -(31303, 0, "'t'"), -(31304, 0, "'.'"), -(31304, 1, "''"), -(31303, 1, "''"), -(31303, 0, "'y'"), -(31304, 0, "'.'"), -(31305, 0, "' '"), -(31305, 1, "''"), -(31305, 0, "' '"), -(31306, 0, "'('"), -(31307, 0, "'Y'"), -(31308, 0, "'s'"), -(31308, 1, "''"), -(31308, 0, "'h'"), -(31309, 0, "'s'"), -(31309, 1, "''"), -(31308, 1, "''"), -(31308, 0, "'j'"), -(31309, 0, "'s'"), -(31310, 0, "' '"), -(31311, 0, "'p'"), -(31312, 0, "'a'"), -(31313, 0, "'c'"), -(31314, 0, "'k'"), -(31315, 0, "'s'"), -(31311, 5, "'R'"), -(31312, 0, "'L'"), -(31313, 0, "'E'"), -(31314, 0, "'-'"), -(31315, 0, "'e'"), -(31315, 1, "''"), -(31314, 1, "''"), -(31313, 1, "''"), -(31312, 1, "''"), -(31311, 1, "''"), -(31311, 0, "'r'"), -(31312, 0, "'u'"), -(31313, 0, "'n'"), -(31314, 0, "'-'"), -(31315, 0, "'e'"), -(31316, 0, "'l'"), -(31316, 1, "''"), -(31315, 1, "''"), -(31315, 0, "'l'"), -(31316, 0, "'e'"), -(31317, 0, "'n'"), -(31318, 0, "'g'"), -(31319, 0, "'t'"), -(31320, 0, "'h'"), -(31321, 0, "'-'"), -(31322, 0, "'e'"), -(31323, 0, "'n'"), -(31324, 0, "'c'"), -(31325, 0, "'o'"), -(31326, 0, "'d'"), -(31327, 0, "'e'"), -(31328, 0, "'s'"), -(31329, 0, "' '"), -(31330, 0, "'t'"), -(31331, 0, "'h'"), -(31332, 0, "'e'"), -(31333, 0, "'m'"), -(31334, 0, "' '"), -(31335, 0, "'a'"), -(31336, 0, "'n'"), -(31337, 0, "'d'"), -(31338, 0, "' '"), -(31339, 0, "'p'"), -(31340, 0, "'a'"), -(31341, 0, "'c'"), -(31342, 0, "'k'"), -(31343, 0, "'a'"), -(31343, 1, "''"), -(31343, 0, "'s'"), -(31344, 0, "' '"), -(31345, 0, "'t'"), -(31346, 0, "'h'"), -(31347, 0, "'a'"), -(31348, 0, "'t'"), -(31349, 0, "' '"), -(31350, 0, "'i'"), -(31351, 0, "'n'"), -(31352, 0, "'f'"), -(31353, 0, "'o'"), -(31354, 0, "'r'"), -(31355, 0, "'m'"), -(31356, 0, "'a'"), -(31357, 0, "'t'"), -(31358, 0, "'i'"), -(31359, 0, "'o'"), -(31360, 0, "'n'"), -(31361, 0, "' '"), -(31362, 0, "'i'"), -(31363, 0, "'n'"), -(31364, 0, "'t'"), -(31365, 0, "'o'"), -(31366, 0, "' '"), -(31367, 0, "'t'"), -(31368, 0, "'h'"), -(31369, 0, "'e'"), -(31370, 0, "' '"), -(31371, 0, "'v'"), -(31372, 0, "'e'"), -(31373, 0, "'r'"), -(31374, 0, "'s'"), -(31375, 0, "'i'"), -(31376, 0, "'o'"), -(31377, 0, "'n'"), -(31378, 0, "' '"), -(31379, 0, "'s'"), -(31380, 0, "'t'"), -(31381, 0, "'r'"), -(31382, 0, "'u'"), -(31383, 0, "'c'"), -(31384, 0, "'t'"), -(31385, 0, "'u'"), -(31386, 0, "'r'"), -(31387, 0, "'e'"), -(31388, 0, "'.'"), -(31389, 0, "' '"), -(31389, 1, "''"), -(31388, 1, "''"), -(31388, 0, "'.'"), -(31389, 0, "' '"), -(31390, 0, "'A'"), -(31391, 0, "'u'"), -(31392, 0, "'t'"), -(31393, 0, "'o'"), -(31394, 0, "'m'"), -(31395, 0, "'e'"), -(31396, 0, "'r'"), -(31397, 0, "'g'"), -(31398, 0, "'e'"), -(31399, 0, "' '"), -(31400, 0, "'p'"), -(31401, 0, "'u'"), -(31402, 0, "'t'"), -(31403, 0, "' '"), -(31404, 0, "'a'"), -(31404, 1, "''"), -(31403, 1, "''"), -(31403, 0, "'s'"), -(31404, 0, "' '"), -(31405, 0, "'t'"), -(31406, 0, "'h'"), -(31407, 0, "'a'"), -(31408, 0, "'t'"), -(31409, 0, "' '"), -(31410, 0, "'i'"), -(31411, 0, "'n'"), -(31412, 0, "'t'"), -(31413, 0, "'o'"), -(31414, 0, "' '"), -(31415, 0, "'t'"), -(31416, 0, "'h'"), -(31417, 0, "'e'"), -(31418, 0, "' '"), -(31419, 0, "'o'"), -(31420, 0, "'p'"), -(31421, 0, "'e'"), -(31422, 0, "'r'"), -(31423, 0, "'a'"), -(31424, 0, "'t'"), -(31425, 0, "'i'"), -(31426, 0, "'o'"), -(31427, 0, "'n'"), -(31428, 0, "' '"), -(31429, 0, "'l'"), -(31430, 0, "'o'"), -(31431, 0, "'g'"), -(31432, 0, "')'"), -(31405, 5, "'d'"), -(31406, 0, "'e'"), -(31407, 0, "'l'"), -(31408, 0, "'e'"), -(31409, 0, "'t'"), -(31410, 0, "'e'"), -(31411, 0, "'s'"), -(31412, 0, "' '"), -(31435, 0, "'.'"), -(31437, 0, "' '"), -(31438, 0, "'T'"), -(31439, 0, "'h'"), -(31440, 0, "'i'"), -(31441, 0, "'s'"), -(31442, 0, "' '"), -(31443, 0, "'p'"), -(31444, 0, "'r'"), -(31445, 0, "'o'"), -(31446, 0, "'b'"), -(31447, 0, "'a'"), -(31448, 0, "'b'"), -(31449, 0, "'l'"), -(31450, 0, "'y'"), -(31451, 0, "' '"), -(31452, 0, "'h'"), -(31453, 0, "'a'"), -(31454, 0, "'s'"), -(31455, 0, "' '"), -(31456, 0, "'s'"), -(31457, 0, "'o'"), -(31458, 0, "'m'"), -(31459, 0, "'e'"), -(31460, 0, "' '"), -(31461, 0, "'r'"), -(31462, 0, "'e'"), -(31463, 0, "'a'"), -(31464, 0, "'l'"), -(31465, 0, "'-'"), -(31466, 0, "'w'"), -(31467, 0, "'o'"), -(31468, 0, "'r'"), -(31469, 0, "'l'"), -(31470, 0, "'d'"), -(31471, 0, "' '"), -(31461, 11, "'i'"), -(31462, 0, "'m'"), -(31463, 0, "'p'"), -(31464, 0, "'l'"), -(31465, 0, "'i'"), -(31466, 0, "'c'"), -(31467, 0, "'a'"), -(31468, 0, "'t'"), -(31469, 0, "'i'"), -(31470, 0, "'o'"), -(31471, 0, "'n'"), -(31472, 0, "'s'"), -(31473, 0, "' '"), -(31474, 0, "'i'"), -(31475, 0, "'n'"), -(31476, 0, "' '"), -(31477, 0, "'t'"), -(31478, 0, "'e'"), -(31479, 0, "'r'"), -(31480, 0, "'m'"), -(31481, 0, "'s'"), -(31482, 0, "' '"), -(31483, 0, "'p'"), -(31484, 0, "'f'"), -(31485, 0, "' '"), -(31485, 1, "''"), -(31484, 1, "''"), -(31483, 1, "''"), -(31483, 0, "'o'"), -(31484, 0, "'f'"), -(31485, 0, "' '"), -(31486, 0, "'i'"), -(31487, 0, "'m'"), -(31488, 0, "'p'"), -(31489, 0, "'l'"), -(31490, 0, "'e'"), -(31491, 0, "'m'"), -(31492, 0, "'e'"), -(31493, 0, "'n'"), -(31494, 0, "'t'"), -(31495, 0, "'a'"), -(31496, 0, "'t'"), -(31497, 0, "'i'"), -(31498, 0, "'o'"), -(31499, 0, "'n'"), -(31500, 0, "','"), -(31501, 0, "' '"), -(31502, 0, "'b'"), -(31503, 0, "'u'"), -(31504, 0, "'t'"), -(31505, 0, "' '"), -(31506, 0, "'w'"), -(31507, 0, "'h'"), -(31508, 0, "'a'"), -(31509, 0, "'t'"), -(31510, 0, "'e'"), -(31511, 0, "'v'"), -(31512, 0, "'e'"), -(31513, 0, "'r'"), -(31505, 9, "''"), -(31505, 0, "' '"), -(31506, 0, "'I'"), -(31507, 0, "'''"), -(31507, 1, "''"), -(30437, 4, "'m'"), -(30438, 0, "'u'"), -(30439, 0, "'u'"), -(30440, 0, "'c'"), -(30440, 1, "''"), -(30439, 1, "''"), -(30439, 0, "'c'"), -(30440, 0, "'h'"), -(30441, 0, "' '"), -(30442, 0, "'t'"), -(30443, 0, "'i'"), -(30444, 0, "'m'"), -(30445, 0, "'e'"), -(30560, 0, "'n- How much time the document takes to save and load from disk'"), -(30431, 62, "''"), -(30465, 16, "'o'"), -(30466, 0, "'n'"), -(30467, 0, "' '"), -(30468, 0, "'d'"), -(30469, 0, "'i'"), -(30470, 0, "'s'"), -(30471, 0, "'k'"), -(30472, 0, "' '"), -(30473, 0, "'o'"), -(30474, 0, "'r'"), -(30544, 10, "''"), -(31489, 7, "','"), -(31490, 0, "' '"), -(31491, 0, "'b'"), -(31492, 0, "'e'"), -(31493, 0, "'c'"), -(31494, 0, "'a'"), -(31495, 0, "'u'"), -(31496, 0, "'s'"), -(31497, 0, "'e'"), -(31498, 0, "' '"), -(31499, 0, "'f'"), -(31500, 0, "'o'"), -(31501, 0, "'r'"), -(31502, 0, "' '"), -(31503, 0, "'a'"), -(31504, 0, "'u'"), -(31505, 0, "'t'"), -(31506, 0, "'o'"), -(31507, 0, "'m'"), -(31508, 0, "'e'"), -(31509, 0, "'r'"), -(31510, 0, "'g'"), -(31511, 0, "'e'"), -(31512, 0, "' '"), -(31513, 0, "'y'"), -(31514, 0, "'o'"), -(31515, 0, "'u'"), -(31516, 0, "' '"), -(31517, 0, "'n'"), -(31518, 0, "'e'"), -(31519, 0, "'e'"), -(31520, 0, "'d'"), -(31521, 0, "' '"), -(31522, 0, "'t'"), -(31523, 0, "'o'"), -(31524, 0, "' '"), -(31525, 0, "'s'"), -(31526, 0, "'t'"), -(31527, 0, "'o'"), -(31528, 0, "'r'"), -(31529, 0, "'e'"), -(31530, 0, "' '"), -(31531, 0, "'*'"), -(31532, 0, "'w'"), -(31533, 0, "'h'"), -(31534, 0, "'e'"), -(31535, 0, "'n'"), -(31536, 0, "'*'"), -(31537, 0, "' '"), -(31538, 0, "'e'"), -(31539, 0, "'a'"), -(31540, 0, "'c'"), -(31541, 0, "'h'"), -(31542, 0, "' '"), -(31543, 0, "'d'"), -(31544, 0, "'e'"), -(31545, 0, "'l'"), -(31546, 0, "'e'"), -(31547, 0, "'t'"), -(31548, 0, "'e'"), -(31549, 0, "' '"), -(31550, 0, "'h'"), -(31551, 0, "'a'"), -(31552, 0, "'p'"), -(31553, 0, "'p'"), -(31554, 0, "'e'"), -(31555, 0, "'n'"), -(31556, 0, "'e'"), -(31557, 0, "'d'"), -(31558, 0, "'.'"), -(31559, 0, "' '"), -(31560, 0, "'N'"), -(31561, 0, "'o'"), -(31562, 0, "'t'"), -(31563, 0, "' '"), -(31564, 0, "'j'"), -(31565, 0, "'u'"), -(31566, 0, "'s'"), -(31567, 0, "'t'"), -(31568, 0, "' '"), -(31569, 0, "'i'"), -(31569, 1, "''"), -(31569, 0, "'*'"), -(31570, 0, "'i'"), -(31571, 0, "'f'"), -(31572, 0, "'*'"), -(31573, 0, "' '"), -(31574, 0, "'t'"), -(31575, 0, "'h'"), -(31576, 0, "'e'"), -(31577, 0, "' '"), -(31578, 0, "'i'"), -(31579, 0, "'t'"), -(31580, 0, "'e'"), -(31581, 0, "'m'"), -(31582, 0, "' '"), -(31583, 0, "'h'"), -(31584, 0, "'a'"), -(31585, 0, "'s'"), -(31586, 0, "' '"), -(31587, 0, "'b'"), -(31588, 0, "'e'"), -(31589, 0, "'e'"), -(31590, 0, "'n'"), -(31591, 0, "' '"), -(31592, 0, "'d'"), -(31593, 0, "'e'"), -(31594, 0, "'l'"), -(31595, 0, "'e'"), -(31596, 0, "'t'"), -(31597, 0, "'e'"), -(31598, 0, "'d'"), -(31599, 0, "'.'"), -(31599, 0, "' '"), -(31600, 0, "'('"), -(31600, 1, "''"), -(31599, 1, "''"), -(31600, 0, "'n'"), -(31601, 0, "'n'"), -(31602, 0, "'T'"), -(31603, 0, "'h'"), -(31604, 0, "'e'"), -(31605, 0, "'r'"), -(31606, 0, "'e'"), -(31607, 0, "'''"), -(31602, 6, "''"), -(31601, 1, "''"), -(31600, 1, "''"), -(30544, 0, "'n'"), -(30545, 0, "'-'"), -(30546, 0, "' '"), -(30547, 0, "'T'"), -(30547, 1, "''"), -(30547, 0, "'T'"), -(30548, 0, "'h'"), -(30549, 0, "'e'"), -(30550, 0, "' '"), -(30551, 0, "'t'"), -(30552, 0, "'i'"), -(30553, 0, "'m'"), -(30554, 0, "'e'"), -(30555, 0, "' '"), -(30556, 0, "'t'"), -(30557, 0, "'a'"), -(30558, 0, "'k'"), -(30559, 0, "'e'"), -(30560, 0, "'n'"), -(30561, 0, "' '"), -(30547, 15, "'T'"), -(30548, 0, "'h'"), -(30549, 0, "'e'"), -(30550, 0, "' '"), -(30551, 0, "'t'"), -(30552, 0, "'i'"), -(30553, 0, "'m'"), -(30554, 0, "'e'"), -(30555, 0, "' '"), -(30556, 0, "'t'"), -(30557, 0, "'a'"), -(30558, 0, "'k'"), -(30559, 0, "'e'"), -(30560, 0, "'n'"), -(30561, 0, "' '"), -(30562, 0, "'t'"), -(30563, 0, "'o'"), -(30564, 0, "' '"), -(30565, 0, "'u'"), -(30566, 0, "'p'"), -(30567, 0, "'d'"), -(30568, 0, "'a'"), -(30569, 0, "'t'"), -(30570, 0, "'e'"), -(30571, 0, "' '"), -(30572, 0, "'a'"), -(30573, 0, "' '"), -(30574, 0, "'d'"), -(30575, 0, "'o'"), -(30576, 0, "'c'"), -(30577, 0, "'u'"), -(30578, 0, "'e'"), -(30579, 0, "'m'"), -(30580, 0, "'n'"), -(30580, 1, "''"), -(30579, 1, "''"), -(30578, 1, "''"), -(30578, 0, "'m'"), -(30579, 0, "'e'"), -(30580, 0, "'n'"), -(30581, 0, "'t'"), -(30582, 0, "' '"), -(30583, 0, "'a'"), -(30584, 0, "'t'"), -(30585, 0, "' '"), -(30586, 0, "'r'"), -(30587, 0, "'e'"), -(30588, 0, "'s'"), -(30589, 0, "'t'"), -(30590, 0, "' '"), -(30591, 0, "'('"), -(30592, 0, "'a'"), -(30593, 0, "'s'"), -(30594, 0, "'s'"), -(30595, 0, "'u'"), -(30596, 0, "'m'"), -(30597, 0, "'i'"), -(30598, 0, "'n'"), -(30599, 0, "'g'"), -(30600, 0, "' '"), -(30601, 0, "'a'"), -(30602, 0, "' '"), -(30603, 0, "'d'"), -(30604, 0, "'o'"), -(30605, 0, "'c'"), -(30606, 0, "'u'"), -(30607, 0, "'m'"), -(30608, 0, "'e'"), -(30609, 0, "'n'"), -(30610, 0, "'t'"), -(30611, 0, "' '"), -(30612, 0, "'i'"), -(30613, 0, "'s'"), -(30614, 0, "' '"), -(30615, 0, "'i'"), -(30616, 0, "'n'"), -(30617, 0, "'f'"), -(30618, 0, "'r'"), -(30619, 0, "'e'"), -(30620, 0, "'q'"), -(30621, 0, "'u'"), -(30622, 0, "'e'"), -(30623, 0, "'n'"), -(30624, 0, "'t'"), -(30625, 0, "'l'"), -(30626, 0, "'y'"), -(30627, 0, "' '"), -(30628, 0, "'e'"), -(30629, 0, "'d'"), -(30630, 0, "'i'"), -(30631, 0, "'t'"), -(30632, 0, "'i'"), -(30633, 0, "'n'"), -(30634, 0, "'g'"), -(30634, 1, "''"), -(30633, 1, "''"), -(30632, 1, "''"), -(30632, 0, "'e'"), -(30633, 0, "'d'"), -(30634, 0, "' '"), -(30635, 0, "'a'"), -(30636, 0, "'n'"), -(30637, 0, "'d'"), -(30638, 0, "' '"), -(30639, 0, "'l'"), -(30640, 0, "'i'"), -(30641, 0, "'v'"), -(30642, 0, "'i'"), -(30643, 0, "'n'"), -(30644, 0, "'g'"), -(30645, 0, "' '"), -(30590, 56, "''"), -(30590, 0, "' '"), -(30591, 0, "'('"), -(30590, 2, "''"), -(30590, 0, "' '"), -(30591, 0, "'('"), -(30592, 0, "'m'"), -(30593, 0, "'o'"), -(30594, 0, "'r'"), -(30595, 0, "'e'"), -(30596, 0, "' '"), -(30597, 0, "'b'"), -(30598, 0, "'e'"), -(30599, 0, "'l'"), -(30600, 0, "'o'"), -(30601, 0, "'w'"), -(30602, 0, "')'"), -(31660, 0, "'n'"), -(31660, 0, "'n'"), -(31661, 0, "'T'"), -(31662, 0, "'h'"), -(31663, 0, "'e'"), -(31664, 0, "' '"), -(31665, 0, "'q'"), -(31666, 0, "'u'"), -(31667, 0, "'e'"), -(31668, 0, "'s'"), -(31669, 0, "'t'"), -(31670, 0, "'i'"), -(31671, 0, "'o'"), -(31672, 0, "'n'"), -(31673, 0, "' '"), -(31674, 0, "'n'"), -(31675, 0, "'o'"), -(31676, 0, "'b'"), -(31677, 0, "'o'"), -(31678, 0, "'d'"), -(31679, 0, "'y'"), -(31680, 0, "' '"), -(31681, 0, "'i'"), -(31682, 0, "'n'"), -(31683, 0, "' '"), -(31684, 0, "'t'"), -(31685, 0, "'h'"), -(31686, 0, "'e'"), -(31687, 0, "' '"), -(31688, 0, "'c'"), -(31689, 0, "'o'"), -(31690, 0, "'m'"), -(31691, 0, "'m'"), -(31692, 0, "'u'"), -(31693, 0, "'n'"), -(31694, 0, "'i'"), -(31695, 0, "'t'"), -(31696, 0, "'y'"), -(31697, 0, "' '"), -(31698, 0, "'s'"), -(31699, 0, "'e'"), -(31700, 0, "'e'"), -(31701, 0, "'m'"), -(31702, 0, "'s'"), -(31703, 0, "' '"), -(31704, 0, "'t'"), -(31705, 0, "'o'"), -(31706, 0, "' '"), -(31707, 0, "'b'"), -(31708, 0, "'e'"), -(31709, 0, "' '"), -(31710, 0, "'t'"), -(31711, 0, "'h'"), -(31712, 0, "'i'"), -(31713, 0, "'n'"), -(31714, 0, "'k'"), -(31715, 0, "'i'"), -(31716, 0, "'n'"), -(31717, 0, "'g'"), -(31718, 0, "' '"), -(31719, 0, "'a'"), -(31720, 0, "'b'"), -(31721, 0, "'o'"), -(31722, 0, "'u'"), -(31723, 0, "'t'"), -(31724, 0, "' '"), -(31725, 0, "'i'"), -(31726, 0, "'s'"), -(31727, 0, "' '"), -(31728, 0, "'u'"), -(31729, 0, "'p'"), -(31730, 0, "'d'"), -(31731, 0, "'a'"), -(31732, 0, "'i'"), -(31733, 0, "'n'"), -(31734, 0, "'t'"), -(31735, 0, "'g'"), -(31735, 1, "''"), -(31734, 1, "''"), -(31733, 1, "''"), -(31732, 1, "''"), -(31732, 0, "'t'"), -(31733, 0, "'i'"), -(31734, 0, "'n'"), -(31735, 0, "'g'"), -(31736, 0, "' '"), -(31737, 0, "'a'"), -(31738, 0, "' '"), -(31739, 0, "'d'"), -(31740, 0, "'o'"), -(31741, 0, "'c'"), -(31742, 0, "'u'"), -(31743, 0, "'m'"), -(31744, 0, "'e'"), -(31745, 0, "'n'"), -(31746, 0, "'t'"), -(31747, 0, "' '"), -(31748, 0, "'a'"), -(31749, 0, "'t'"), -(31750, 0, "' '"), -(31751, 0, "'r'"), -(31752, 0, "'e'"), -(31753, 0, "'s'"), -(31754, 0, "'t'"), -(31755, 0, "'.'"), -(31756, 0, "' '"), -(31757, 0, "'I'"), -(31758, 0, "'f'"), -(31759, 0, "' '"), -(31760, 0, "'I'"), -(31761, 0, "' '"), -(31762, 0, "'h'"), -(31763, 0, "'a'"), -(31764, 0, "'v'"), -(31765, 0, "'e'"), -(31766, 0, "' '"), -(31767, 0, "'a'"), -(31768, 0, "' '"), -(31769, 0, "'C'"), -(31770, 0, "'R'"), -(31771, 0, "'D'"), -(31772, 0, "'T'"), -(31773, 0, "' '"), -(31769, 0, "'l'"), -(31770, 0, "'i'"), -(31771, 0, "'s'"), -(31772, 0, "'t'"), -(31773, 0, "' '"), -(31779, 0, "'s'"), -(31780, 0, "'t'"), -(31781, 0, "'o'"), -(31782, 0, "'r'"), -(31783, 0, "'e'"), -(31784, 0, "'d'"), -(31785, 0, "' '"), -(31786, 0, "'i'"), -(31787, 0, "'n'"), -(31788, 0, "' '"), -(31789, 0, "'P'"), -(31789, 1, "''"), -(31789, 0, "'p'"), -(31790, 0, "'o'"), -(31791, 0, "'s'"), -(31792, 0, "'t'"), -(31793, 0, "'g'"), -(31794, 0, "'r'"), -(31795, 0, "'e'"), -(31796, 0, "'s'"), -(31797, 0, "','"), -(31798, 0, "' '"), -(31799, 0, "'a'"), -(31800, 0, "'n'"), -(31801, 0, "'d'"), -(31802, 0, "' '"), -(31803, 0, "'i'"), -(31804, 0, "'t'"), -(31805, 0, "'s'"), -(31806, 0, "' '"), -(31807, 0, "'v'"), -(31808, 0, "'e'"), -(31809, 0, "'r'"), -(31810, 0, "'y'"), -(31811, 0, "' '"), -(31812, 0, "'i'"), -(31813, 0, "'n'"), -(31814, 0, "'f'"), -(31815, 0, "'r'"), -(31816, 0, "'e'"), -(31817, 0, "'q'"), -(31818, 0, "'u'"), -(31819, 0, "'e'"), -(31820, 0, "'n'"), -(31821, 0, "'t'"), -(31822, 0, "'l'"), -(31823, 0, "'y'"), -(31824, 0, "' '"), -(31825, 0, "'w'"), -(31826, 0, "'r'"), -(31807, 5, "''"), -(31807, 12, "'w'"), -(31808, 0, "'r'"), -(31808, 1, "''"), -(31807, 1, "''"), -(31806, 1, "''"), -(31809, 0, "'i'"), -(31810, 0, "'t'"), -(31811, 0, "'t'"), -(31812, 0, "'e'"), -(31813, 0, "'n'"), -(31814, 0, "' '"), -(31815, 0, "'t'"), -(31816, 0, "'o'"), -(31817, 0, "' '"), -(31818, 0, "'i'"), -(31819, 0, "'n'"), -(31820, 0, "'f'"), -(31821, 0, "'r'"), -(31822, 0, "'e'"), -(31823, 0, "'q'"), -(31824, 0, "'u'"), -(31825, 0, "'e'"), -(31826, 0, "'n'"), -(31827, 0, "'t'"), -(31828, 0, "'l'"), -(31829, 0, "'y'"), -(31830, 0, "','"), -(31831, 0, "' '"), -(31832, 0, "'a'"), -(31832, 1, "''"), -(31832, 0, "'y'"), -(31833, 0, "'j'"), -(31834, 0, "'s'"), -(31835, 0, "' '"), -(31836, 0, "'a'"), -(31837, 0, "'n'"), -(31838, 0, "'d'"), -(31839, 0, "' '"), -(31840, 0, "'a'"), -(31841, 0, "'u'"), -(31842, 0, "'t'"), -(31843, 0, "'o'"), -(31844, 0, "'m'"), -(31845, 0, "'e'"), -(31846, 0, "'r'"), -(31847, 0, "'g'"), -(31848, 0, "'e'"), -(31849, 0, "' '"), -(31850, 0, "'s'"), -(31851, 0, "'e'"), -(31852, 0, "'e'"), -(31853, 0, "'m'"), -(31854, 0, "' '"), -(31855, 0, "'t'"), -(31856, 0, "'o'"), -(31857, 0, "' '"), -(31858, 0, "'a'"), -(31859, 0, "'s'"), -(31860, 0, "'s'"), -(31861, 0, "'u'"), -(31862, 0, "'m'"), -(31863, 0, "'e'"), -(31864, 0, "' '"), -(31865, 0, "'t'"), -(31866, 0, "'h'"), -(31867, 0, "'e'"), -(31868, 0, "' '"), -(31869, 0, "'r'"), -(31870, 0, "'i'"), -(31850, 21, "'a'"), -(31851, 0, "'r'"), -(31852, 0, "'e'"), -(31853, 0, "' '"), -(31854, 0, "'w'"), -(31855, 0, "'r'"), -(31856, 0, "'i'"), -(31857, 0, "'t'"), -(31858, 0, "'t'"), -(31859, 0, "'e'"), -(31860, 0, "'n'"), -(31861, 0, "' '"), -(31862, 0, "'t'"), -(31863, 0, "'o'"), -(31864, 0, "' '"), -(31862, 3, "'a'"), -(31863, 0, "'s'"), -(31864, 0, "'s'"), -(31865, 0, "'u'"), -(31866, 0, "'m'"), -(31867, 0, "'i'"), -(31868, 0, "'n'"), -(31869, 0, "'g'"), -(31870, 0, "' '"), -(31871, 0, "'y'"), -(31872, 0, "'o'"), -(31873, 0, "'u'"), -(31874, 0, "' '"), -(31875, 0, "'w'"), -(31876, 0, "'a'"), -(31877, 0, "'n'"), -(31878, 0, "' '"), -(31879, 0, "'t'"), -(31879, 1, "''"), -(31878, 1, "''"), -(31878, 0, "' '"), -(31879, 0, "'t'"), -(31879, 1, "''"), -(31878, 1, "''"), -(31878, 0, "'t'"), -(31879, 0, "' '"), -(31880, 0, "'t'"), -(31881, 0, "'o'"), -(31882, 0, "':'"), -(31883, 0, "'n'"), -(31884, 0, "'n'"), -(31885, 0, "'1'"), -(31886, 0, "'.'"), -(31887, 0, "' '"), -(31888, 0, "'L'"), -(31889, 0, "'o'"), -(31890, 0, "'a'"), -(31891, 0, "'d'"), -(31892, 0, "' '"), -(31893, 0, "'t'"), -(31894, 0, "'h'"), -(31895, 0, "'e'"), -(31896, 0, "' '"), -(31897, 0, "'d'"), -(31898, 0, "'o'"), -(31899, 0, "'c'"), -(31900, 0, "'u'"), -(31901, 0, "'e'"), -(31902, 0, "'m'"), -(31903, 0, "'n'"), -(31903, 1, "''"), -(31902, 1, "''"), -(31901, 1, "''"), -(31901, 0, "'m'"), -(31902, 0, "'e'"), -(31903, 0, "'n'"), -(31904, 0, "'t'"), -(31905, 0, "' '"), -(31906, 0, "'i'"), -(31907, 0, "'n'"), -(31908, 0, "'t'"), -(31909, 0, "'o'"), -(31910, 0, "' '"), -(31911, 0, "'R'"), -(31912, 0, "'A'"), -(31913, 0, "'M'"), -(31914, 0, "'n'"), -(31915, 0, "'2'"), -(31916, 0, "'.'"), -(31917, 0, "' '"), -(31918, 0, "'M'"), -(31919, 0, "'a'"), -(31920, 0, "'k'"), -(31921, 0, "'e'"), -(31922, 0, "' '"), -(31923, 0, "'y'"), -(31924, 0, "'o'"), -(31925, 0, "'u'"), -(31926, 0, "'r'"), -(31927, 0, "' '"), -(31928, 0, "'c'"), -(31929, 0, "'h'"), -(31930, 0, "'a'"), -(31931, 0, "'n'"), -(31932, 0, "'g'"), -(31933, 0, "'e'"), -(31934, 0, "'n'"), -(31935, 0, "'3'"), -(31936, 0, "'.'"), -(31937, 0, "' '"), -(31938, 0, "'S'"), -(31939, 0, "'a'"), -(31940, 0, "'v'"), -(31941, 0, "'e'"), -(31942, 0, "' '"), -(31943, 0, "'t'"), -(31944, 0, "'h'"), -(31945, 0, "'e'"), -(31946, 0, "'w'"), -(31947, 0, "' '"), -(31947, 1, "''"), -(31946, 1, "''"), -(31946, 0, "' '"), -(31935, 12, "'3. Save the'"), -(31897, 0, "'w'"), -(31898, 0, "'h'"), -(31899, 0, "'o'"), -(31900, 0, "'l'"), -(31901, 0, "'e'"), -(31902, 0, "' '"), -(31952, 0, "' '"), -(31953, 0, "'w'"), -(31954, 0, "'h'"), -(31955, 0, "'o'"), -(31956, 0, "'l'"), -(31957, 0, "'e'"), -(31958, 0, "' '"), -(31959, 0, "'d'"), -(31960, 0, "'o'"), -(31961, 0, "'c'"), -(31962, 0, "'u'"), -(31963, 0, "'m'"), -(31964, 0, "'e'"), -(31965, 0, "'n'"), -(31966, 0, "'t'"), -(31967, 0, "' '"), -(31968, 0, "'b'"), -(31969, 0, "'a'"), -(31970, 0, "'c'"), -(31971, 0, "'k'"), -(31972, 0, "' '"), -(31973, 0, "'t'"), -(31974, 0, "'o'"), -(31975, 0, "' '"), -(31976, 0, "'d'"), -(31977, 0, "'i'"), -(31978, 0, "'s'"), -(31979, 0, "'k'"), -(31980, 0, "' '"), -(31981, 0, "'a'"), -(31982, 0, "'g'"), -(31983, 0, "'a'"), -(31984, 0, "'i'"), -(31985, 0, "'n'"), -(31986, 0, "'n'"), -(31987, 0, "'n'"), -(31988, 0, "'T'"), -(31989, 0, "'h'"), -(31990, 0, "'i'"), -(31991, 0, "'s'"), -(31988, 4, "'W'"), -(31989, 0, "'e'"), -(31990, 0, "' '"), -(31991, 0, "'d'"), -(31992, 0, "'o'"), -(31993, 0, "' '"), -(31994, 0, "'t'"), -(31995, 0, "'h'"), -(31996, 0, "'i'"), -(31997, 0, "'s'"), -(31998, 0, "' '"), -(31999, 0, "'f'"), -(32000, 0, "'o'"), -(32001, 0, "'r'"), -(32002, 0, "' '"), -(31988, 15, "'T'"), -(31989, 0, "'h'"), -(31990, 0, "'i'"), -(31991, 0, "'s'"), -(31992, 0, "' '"), -(31993, 0, "'i'"), -(31994, 0, "'s'"), -(31995, 0, "' '"), -(31996, 0, "'a'"), -(31997, 0, "'c'"), -(31998, 0, "'t'"), -(31999, 0, "'u'"), -(32000, 0, "'a'"), -(32001, 0, "'l'"), -(32002, 0, "'l'"), -(32003, 0, "'y'"), -(32004, 0, "' '"), -(32005, 0, "'r'"), -(32006, 0, "'e'"), -(32007, 0, "'a'"), -(32008, 0, "'l'"), -(32009, 0, "'l'"), -(32010, 0, "'y'"), -(32011, 0, "' '"), -(32012, 0, "'i'"), -(32013, 0, "'n'"), -(32014, 0, "'e'"), -(32015, 0, "'f'"), -(32016, 0, "'f'"), -(32017, 0, "'i'"), -(32018, 0, "'c'"), -(32019, 0, "'i'"), -(32020, 0, "'e'"), -(32021, 0, "'n'"), -(32022, 0, "'t'"), -(31660, 0, "'n'"), -(31661, 0, "'-'"), -(31662, 0, "'-'"), -(31663, 0, "'-'"), -(31664, 0, "'n'"), -(28265, 5, "'Y'"), -(28266, 0, "'o'"), -(28267, 0, "'u'"), -(28268, 0, "'r'"), -(28325, 3, "'c'"), -(28326, 0, "'o'"), -(28327, 0, "'u'"), -(28328, 0, "'p'"), -(28329, 0, "'l'"), -(28330, 0, "'e'"), -(28331, 0, "' '"), -(28332, 0, "'o'"), -(28333, 0, "'f'"), -(32006, 15, "'e'"), -(32007, 0, "'x'"), -(32008, 0, "'t'"), -(32009, 0, "'r'"), -(32010, 0, "'e'"), -(32011, 0, "'m'"), -(32012, 0, "'e'"), -(32013, 0, "'l'"), -(32014, 0, "'y'"), -(32027, 0, "','"), -(32028, 0, "' '"), -(32029, 0, "'n'"), -(32029, 1, "''"), -(32029, 0, "'a'"), -(32030, 0, "'n'"), -(32031, 0, "'d'"), -(32032, 0, "' '"), -(32033, 0, "'i'"), -(32034, 0, "'t'"), -(32035, 0, "' '"), -(32036, 0, "'m'"), -(32037, 0, "'a'"), -(32038, 0, "'t'"), -(32039, 0, "'t'"), -(32040, 0, "'e'"), -(32041, 0, "'r'"), -(32042, 0, "' '"), -(32042, 1, "''"), -(32042, 0, "'s'"), -(32043, 0, "' '"), -(32044, 0, "'f'"), -(32045, 0, "'o'"), -(32046, 0, "'r'"), -(32047, 0, "' '"), -(32048, 0, "'s'"), -(32049, 0, "'o'"), -(32050, 0, "'m'"), -(32051, 0, "'e'"), -(32052, 0, "' '"), -(32047, 6, "' '"), -(32048, 0, "'r'"), -(32049, 0, "'e'"), -(32050, 0, "'a'"), -(32051, 0, "'l'"), -(32052, 0, "'l'"), -(32053, 0, "' '"), -(32054, 0, "'a'"), -(32055, 0, "'p'"), -(32056, 0, "'p'"), -(32057, 0, "'l'"), -(32058, 0, "'i'"), -(32052, 1, "''"), -(32058, 0, "'c'"), -(32059, 0, "'a'"), -(32060, 0, "'t'"), -(32061, 0, "'i'"), -(32062, 0, "'o'"), -(32063, 0, "'n'"), -(32064, 0, "'s'"), -(32065, 0, "' '"), -(32066, 0, "'('"), -(32066, 1, "''"), -(32065, 1, "''"), -(32065, 0, "' '"), -(32066, 0, "'i'"), -(32067, 0, "'f'"), -(32068, 0, "' '"), -(32069, 0, "'w'"), -(32070, 0, "'e'"), -(32071, 0, "' '"), -(32066, 6, "''"), -(32065, 1, "''"), -(32036, 0, "'w'"), -(32037, 0, "'i'"), -(32038, 0, "'l'"), -(32039, 0, "'l'"), -(32040, 0, "' '"), -(32047, 1, "''"), -(32069, 0, "' '"), -(32070, 0, "'i'"), -(32071, 0, "'f'"), -(32072, 0, "' '"), -(32073, 0, "'w'"), -(32074, 0, "'e'"), -(32075, 0, "' '"), -(32076, 0, "'w'"), -(32077, 0, "'a'"), -(32078, 0, "'n'"), -(32079, 0, "'t'"), -(32080, 0, "' '"), -(32081, 0, "'C'"), -(32082, 0, "'R'"), -(32083, 0, "'D'"), -(32084, 0, "'T'"), -(32085, 0, "'s'"), -(32086, 0, "' '"), -(32087, 0, "'t'"), -(32088, 0, "'o'"), -(32089, 0, "' '"), -(32090, 0, "'b'"), -(32091, 0, "'e'"), -(32092, 0, "' '"), -(32093, 0, "'a'"), -(32094, 0, "'n'"), -(32095, 0, "'y'"), -(32096, 0, "'t'"), -(32097, 0, "'h'"), -(32098, 0, "'i'"), -(32099, 0, "'n'"), -(32100, 0, "'g'"), -(32093, 8, "'u'"), -(32093, 1, "''"), -(32093, 0, "'u'"), -(32093, 1, "''"), -(32093, 0, "'m'"), -(32094, 0, "'o'"), -(32094, 1, "''"), -(32093, 1, "''"), -(32093, 0, "'u'"), -(32094, 0, "'s'"), -(32095, 0, "'e'"), -(32096, 0, "'f'"), -(32097, 0, "'u'"), -(32098, 0, "'l'"), -(32099, 0, "' '"), -(32100, 0, "'o'"), -(32101, 0, "'u'"), -(32102, 0, "'t'"), -(32103, 0, "'s'"), -(32104, 0, "'i'"), -(32105, 0, "'d'"), -(32106, 0, "'e'"), -(32107, 0, "' '"), -(32108, 0, "'t'"), -(32109, 0, "'h'"), -(32110, 0, "'e'"), -(32111, 0, "' '"), -(32112, 0, "'c'"), -(32113, 0, "'o'"), -(32114, 0, "'n'"), -(32115, 0, "'t'"), -(32116, 0, "'e'"), -(32117, 0, "'x'"), -(32118, 0, "'t'"), -(32119, 0, "' '"), -(32120, 0, "'o'"), -(32121, 0, "'f'"), -(32122, 0, "' '"), -(32123, 0, "'t'"), -(32124, 0, "'e'"), -(32125, 0, "'x'"), -(32126, 0, "'t'"), -(32127, 0, "' '"), -(32128, 0, "'e'"), -(32129, 0, "'d'"), -(32130, 0, "'i'"), -(32131, 0, "'t'"), -(32132, 0, "'i'"), -(32133, 0, "'n'"), -(32134, 0, "'g'"), -(32135, 0, "'.'"), -(32073, 0, "'('"), -(32074, 0, "'l'"), -(32075, 0, "'i'"), -(32076, 0, "'k'"), -(32077, 0, "'e'"), -(32078, 0, "' '"), -(32079, 0, "'m'"), -(32080, 0, "'e'"), -(32081, 0, "')'"), -(32082, 0, "' '"), -(32083, 0, "'y'"), -(32084, 0, "'o'"), -(32085, 0, "'u'"), -(32086, 2, "''"), -(32035, 5, "''"), -(32042, 0, "'s'"), -(32082, 0, "'''"), -(32083, 0, "'r'"), -(32084, 0, "'e'"), -(32085, 0, "' '"), -(32086, 0, "'h'"), -(32087, 0, "'o'"), -(32088, 0, "'p'"), -(32089, 0, "'i'"), -(32090, 0, "'n'"), -(32091, 0, "'g'"), -(32092, 0, "' '"), -(32093, 0, "'w'"), -(32094, 0, "'e'"), -(32095, 0, "' '"), -(32096, 0, "'a'"), -(32097, 0, "'d'"), -(32098, 0, "'d'"), -(32099, 0, "' '"), -(32100, 0, "'c'"), -(32101, 0, "'o'"), -(32102, 0, "'l'"), -(32103, 0, "'l'"), -(32104, 0, "'a'"), -(32105, 0, "'b'"), -(32106, 0, "'o'"), -(32107, 0, "'r'"), -(32108, 0, "'a'"), -(32109, 0, "'t'"), -(32110, 0, "'i'"), -(32111, 0, "'v'"), -(32112, 0, "'e'"), -(32113, 0, "' '"), -(32114, 0, "'e'"), -(32115, 0, "'d'"), -(32116, 0, "'i'"), -(32117, 0, "'t'"), -(32118, 0, "'i'"), -(32119, 0, "'n'"), -(32120, 0, "'g'"), -(32121, 0, "' '"), -(32122, 0, "'t'"), -(32123, 0, "'o'"), -(32124, 0, "' '"), -(32125, 0, "'m'"), -(32126, 0, "'o'"), -(32127, 0, "'r'"), -(32128, 0, "'e'"), -(32129, 0, "' '"), -(32130, 0, "'a'"), -(32131, 0, "'p'"), -(32132, 0, "'p'"), -(32133, 0, "'l'"), -(32134, 0, "'i'"), -(32135, 0, "'c'"), -(32136, 0, "'a'"), -(32137, 0, "'t'"), -(32138, 0, "'o'"), -(32139, 0, "'i'"), -(32140, 0, "'n'"), -(32141, 0, "'s'"), -(32142, 0, "' '"), -(32143, 0, "'t'"), -(32144, 0, "'h'"), -(32145, 0, "'a'"), -(32130, 16, "'a'"), -(32130, 1, "''"), -(32065, 0, "'.'"), -(32066, 0, "' '"), -(32067, 0, "'E'"), -(32068, 0, "'s'"), -(32069, 0, "'p'"), -(32070, 0, "'e'"), -(32066, 5, "''"), -(32065, 1, "''"), -(32065, 0, "'.'"), -(32066, 0, "' '"), -(32067, 0, "'E'"), -(32068, 0, "'s'"), -(32069, 0, "'p'"), -(32070, 0, "'e'"), -(32071, 0, "'c'"), -(32072, 0, "'i'"), -(32073, 0, "'a'"), -(32074, 0, "'l'"), -(32075, 0, "'l'"), -(32076, 0, "'y'"), -(32077, 0, "' '"), -(32078, 0, "'i'"), -(32079, 0, "'f'"), -(32080, 0, "' '"), -(32081, 0, "'w'"), -(32067, 10, "''"), -(32048, 19, "'a'"), -(32049, 0, "'l'"), -(32050, 0, "'l'"), -(32051, 0, "' '"), -(32052, 0, "'t'"), -(32053, 0, "'h'"), -(32054, 0, "'e'"), -(32055, 0, "' '"), -(32048, 8, "'t'"), -(32049, 0, "'h'"), -(32050, 0, "'e'"), -(32051, 0, "' '"), -(32052, 0, "'9'"), -(32053, 0, "'9'"), -(32054, 0, "'%'"), -(32055, 0, "' '"), -(32056, 0, "'o'"), -(32057, 0, "'f'"), -(32058, 0, "' '"), -(32059, 0, "'a'"), -(32060, 0, "'p'"), -(32061, 0, "'p'"), -(32062, 0, "'l'"), -(32063, 0, "'i'"), -(32064, 0, "'c'"), -(32065, 0, "'a'"), -(32066, 0, "'t'"), -(32067, 0, "'i'"), -(32068, 0, "'o'"), -(32069, 0, "'n'"), -(32070, 0, "'s'"), -(32071, 0, "' '"), -(32072, 0, "'a'"), -(32072, 1, "''"), -(32072, 0, "'o'"), -(32073, 0, "'u'"), -(32074, 0, "'t'"), -(32075, 0, "' '"), -(32076, 0, "'t'"), -(32077, 0, "'h'"), -(32078, 0, "'e'"), -(32079, 0, "'r'"), -(32080, 0, "'e'"), -(32081, 0, "' '"), -(32082, 0, "'w'"), -(32083, 0, "'h'"), -(32084, 0, "'i'"), -(32085, 0, "'c'"), -(32086, 0, "'h'"), -(32087, 0, "' '"), -(32088, 0, "'a'"), -(32089, 0, "'r'"), -(32090, 0, "'e'"), -(32091, 0, "'n'"), -(32092, 0, "'''"), -(32093, 0, "'t'"), -(32094, 0, "' '"), -(32095, 0, "'c'"), -(32096, 0, "'o'"), -(32097, 0, "'l'"), -(32098, 0, "'l'"), -(32099, 0, "'a'"), -(32100, 0, "'b'"), -(32101, 0, "'o'"), -(32102, 0, "'r'"), -(32103, 0, "'a'"), -(32104, 0, "'t'"), -(32105, 0, "'i'"), -(32106, 0, "'v'"), -(32107, 0, "'e'"), -(32108, 0, "' '"), -(32109, 0, "'t'"), -(32110, 0, "'e'"), -(32111, 0, "'x'"), -(32112, 0, "'t'"), -(32113, 0, "' '"), -(32114, 0, "'e'"), -(32115, 0, "'d'"), -(32116, 0, "'i'"), -(32117, 0, "'t'"), -(32118, 0, "'i'"), -(32118, 1, "''"), -(32117, 1, "''"), -(32117, 0, "'o'"), -(32117, 1, "''"), -(32117, 0, "'t'"), -(32118, 0, "'o'"), -(32119, 0, "'r'"), -(32120, 0, "'s'"), -(32121, 0, "'.'"), -(32087, 0, "' '"), -(32088, 0, "'m'"), -(32089, 0, "'i'"), -(32090, 0, "'g'"), -(32091, 0, "'h'"), -(32092, 0, "'t'"), -(32093, 0, "' '"), -(32094, 0, "'w'"), -(32095, 0, "'a'"), -(32096, 0, "'n'"), -(32097, 0, "'t'"), -(32098, 0, "' '"), -(32099, 0, "'c'"), -(32100, 0, "'o'"), -(32101, 0, "'n'"), -(32102, 0, "'c'"), -(32103, 0, "'u'"), -(32104, 0, "'r'"), -(32105, 0, "'r'"), -(32106, 0, "'e'"), -(32107, 0, "'n'"), -(32108, 0, "'t'"), -(32099, 0, "'t'"), -(32100, 0, "'o'"), -(32101, 0, "' '"), -(32102, 0, "'s'"), -(32103, 0, "'u'"), -(32104, 0, "'p'"), -(32105, 0, "'p'"), -(32106, 0, "'o'"), -(32107, 0, "'r'"), -(32108, 0, "'t'"), -(32109, 0, "' '"), -(32120, 0, "' '"), -(32121, 0, "'e'"), -(32122, 0, "'d'"), -(32123, 0, "'i'"), -(32124, 0, "'t'"), -(32125, 0, "'i'"), -(32126, 0, "'n'"), -(32127, 0, "'g'"), -(32128, 0, "','"), -(32129, 0, "' '"), -(32130, 0, "'b'"), -(32131, 0, "'u'"), -(32132, 0, "'t'"), -(32168, 131, "''"), -(32168, 0, "'n'"), -(32169, 0, "'n'"), -(32170, 0, "'A'"), -(32171, 0, "'s'"), -(32172, 0, "' '"), -(32173, 0, "'f'"), -(32174, 0, "'a'"), -(32175, 0, "'r'"), -(32176, 0, "' '"), -(32177, 0, "'a'"), -(32178, 0, "'s'"), -(32179, 0, "' '"), -(32180, 0, "'I'"), -(32181, 0, "' '"), -(32182, 0, "'k'"), -(32183, 0, "'n'"), -(32184, 0, "'o'"), -(32185, 0, "'w'"), -(32186, 0, "','"), -(32187, 0, "' '"), -(32188, 0, "'n'"), -(32189, 0, "'o'"), -(32190, 0, "'b'"), -(32191, 0, "'o'"), -(32192, 0, "'d'"), -(32193, 0, "'y'"), -(32194, 0, "' '"), -(32195, 0, "'i'"), -(32196, 0, "'s'"), -(32197, 0, "' '"), -(32198, 0, "'t'"), -(32199, 0, "'h'"), -(32200, 0, "'i'"), -(32201, 0, "'n'"), -(32202, 0, "'k'"), -(32203, 0, "'i'"), -(32204, 0, "'n'"), -(32205, 0, "'g'"), -(32206, 0, "' '"), -(32207, 0, "'a'"), -(32208, 0, "'b'"), -(32209, 0, "'o'"), -(32210, 0, "'u'"), -(32211, 0, "'t'"), -(32212, 0, "' '"), -(32213, 0, "'t'"), -(32214, 0, "'h'"), -(32215, 0, "'i'"), -(32216, 0, "'s'"), -(32217, 0, "' '"), -(32218, 0, "'p'"), -(32219, 0, "'r'"), -(32220, 0, "'o'"), -(32221, 0, "'b'"), -(32222, 0, "'l'"), -(32223, 0, "'e'"), -(32224, 0, "'m'"), -(32225, 0, "' '"), -(32226, 0, "'a'"), -(32227, 0, "'t'"), -(32228, 0, "' '"), -(32229, 0, "'t'"), -(32230, 0, "'h'"), -(32231, 0, "'e'"), -(32232, 0, "' '"), -(32233, 0, "'m'"), -(32234, 0, "'o'"), -(32235, 0, "'m'"), -(32236, 0, "'e'"), -(32237, 0, "'n'"), -(32238, 0, "'t'"), -(32239, 0, "'.'"), -(32240, 0, "'n'"), -(32241, 0, "'n'"), -(32242, 0, "'I'"), -(32243, 0, "'''"), -(32244, 0, "'m'"), -(32245, 0, "' '"), -(32242, 4, "'I'm'"), -(32241, 0, "'n'"), -(32242, 0, "'n'"), -(32243, 0, "'-'"), -(32244, 0, "'-'"), -(32245, 0, "'-'"), -(32241, 1, "''"), -(32245, 0, "'n'"), -(32250, 0, "' '"), -(32251, 0, "'a'"), -(32252, 0, "'l'"), -(32253, 0, "'s'"), -(32254, 0, "'o'"), -(32255, 0, "' '"), -(32256, 0, "'n'"), -(32257, 0, "'o'"), -(32258, 0, "'t'"), -(32259, 0, "' '"), -(32260, 0, "'l'"), -(32261, 0, "'o'"), -(32262, 0, "'o'"), -(32263, 0, "'k'"), -(32264, 0, "'i'"), -(32265, 0, "'n'"), -(32266, 0, "'g'"), -(32267, 0, "' '"), -(32268, 0, "'i'"), -(32269, 0, "'n'"), -(32270, 0, "'t'"), -(32271, 0, "'o'"), -(32272, 0, "' '"), -(32273, 0, "'p'"), -(32274, 0, "'r'"), -(32275, 0, "'u'"), -(32276, 0, "'n'"), -(32277, 0, "'i'"), -(32278, 0, "'n'"), -(32279, 0, "'g'"), -(32280, 0, "'.'"), -(32281, 0, "' '"), -(32282, 0, "'C'"), -(32283, 0, "'R'"), -(32284, 0, "'D'"), -(32285, 0, "'T'"), -(32286, 0, "'s'"), -(32287, 0, "' '"), -(32288, 0, "'l'"), -(32289, 0, "'i'"), -(32290, 0, "'k'"), -(32291, 0, "'e'"), -(32292, 0, "' '"), -(32293, 0, "'t'"), -(32294, 0, "'h'"), -(32295, 0, "'i'"), -(32296, 0, "'s'"), -(32297, 0, "' '"), -(32298, 0, "'g'"), -(32299, 0, "'r'"), -(32300, 0, "'o'"), -(32301, 0, "'w'"), -(32302, 0, "' '"), -(32303, 0, "'u'"), -(32303, 1, "'o'"), -(32304, 0, "'v'"), -(32305, 0, "'e'"), -(32306, 0, "'r'"), -(32307, 0, "' '"), -(32308, 0, "'t'"), -(32309, 0, "'i'"), -(32310, 0, "'m'"), -(32311, 0, "'e'"), -(32312, 0, "' '"), -(32313, 0, "'('"), -(32314, 0, "'s'"), -(32315, 0, "'i'"), -(32316, 0, "'n'"), -(32317, 0, "'c'"), -(32318, 0, "'e'"), -(32319, 0, "' '"), -(32320, 0, "'w'"), -(32321, 0, "'e'"), -(32322, 0, "' '"), -(32323, 0, "'k'"), -(32324, 0, "'e'"), -(32325, 0, "'e'"), -(32326, 0, "'p'"), -(32327, 0, "' '"), -(32328, 0, "'t'"), -(32329, 0, "'o'"), -(32330, 0, "'m'"), -(32331, 0, "'s'"), -(32331, 1, "''"), -(32331, 0, "'b'"), -(32332, 0, "'s'"), -(32333, 0, "'t'"), -(32334, 0, "'o'"), -(32335, 0, "'n'"), -(32336, 0, "'e'"), -(32337, 0, "'s'"), -(32338, 0, "' '"), -(32339, 0, "'f'"), -(32340, 0, "'r'"), -(32341, 0, "'o'"), -(32342, 0, "'m'"), -(32343, 0, "' '"), -(32344, 0, "'a'"), -(32345, 0, "'l'"), -(32346, 0, "'l'"), -(32347, 0, "' '"), -(32348, 0, "'d'"), -(32349, 0, "'e'"), -(32350, 0, "'l'"), -(32351, 0, "'e'"), -(32352, 0, "'t'"), -(32353, 0, "'e'"), -(32354, 0, "'d'"), -(32355, 0, "' '"), -(32356, 0, "'i'"), -(32357, 0, "'t'"), -(32358, 0, "'e'"), -(32359, 0, "'m'"), -(32360, 0, "'s'"), -(32361, 0, "')'"), -(32362, 0, "'.'"), -(32363, 0, "' '"), -(32364, 0, "'T'"), -(32365, 0, "'h'"), -(32366, 0, "'i'"), -(32367, 0, "'s'"), -(32368, 0, "' '"), -(32369, 0, "'i'"), -(32364, 6, "'T'"), -(32365, 0, "'h'"), -(32366, 0, "'e'"), -(32367, 0, "'r'"), -(32368, 0, "'e'"), -(32369, 0, "' '"), -(32370, 0, "'a'"), -(32371, 0, "'r'"), -(32372, 0, "'e'"), -(32373, 0, "' '"), -(32374, 0, "'s'"), -(32375, 0, "'o'"), -(32376, 0, "'m'"), -(32377, 0, "'e'"), -(32378, 0, "' '"), -(32364, 15, "'T'"), -(32364, 1, "''"), -(32364, 0, "'W'"), -(32365, 0, "'e'"), -(32366, 0, "' '"), -(32367, 0, "'d'"), -(32368, 0, "'o'"), -(32369, 0, "'n'"), -(32370, 0, "'''"), -(32371, 0, "'t'"), -(32372, 0, "' '"), -(32373, 0, "'a'"), -(32374, 0, "'c'"), -(32375, 0, "'t'"), -(32376, 0, "'u'"), -(32377, 0, "'a'"), -(32378, 0, "'l'"), -(32379, 0, "'l'"), -(32380, 0, "'y'"), -(32381, 0, "' '"), -(32382, 0, "'n'"), -(32383, 0, "'e'"), -(32384, 0, "'e'"), -(32385, 0, "'d'"), -(32364, 22, "'Y'"), -(32365, 0, "'o'"), -(32366, 0, "'u'"), -(32367, 0, "' '"), -(32368, 0, "'d'"), -(32369, 0, "'o'"), -(32370, 0, "'n'"), -(32371, 0, "'''"), -(32372, 0, "'t'"), -(32373, 0, "' '"), -(32364, 10, "'T'"), -(32365, 0, "'h'"), -(32366, 0, "'e'"), -(32367, 0, "'r'"), -(32368, 0, "'e'"), -(32369, 0, "' '"), -(32370, 0, "'a'"), -(32371, 0, "'r'"), -(32372, 0, "'e'"), -(32373, 0, "' '"), -(32374, 0, "'s'"), -(32375, 0, "'o'"), -(32376, 0, "'m'"), -(32377, 0, "'e'"), -(32378, 0, "' '"), -(32379, 0, "'a'"), -(32380, 0, "'l'"), -(32381, 0, "'g'"), -(32382, 0, "'o'"), -(32383, 0, "'r'"), -(32384, 0, "'i'"), -(32385, 0, "'t'"), -(32386, 0, "'h'"), -(32387, 0, "'m'"), -(32388, 0, "'s'"), -(32389, 0, "' '"), -(32390, 0, "'f'"), -(32391, 0, "'r'"), -(32391, 1, "''"), -(32391, 0, "'o'"), -(32392, 0, "'r'"), -(32393, 0, "' '"), -(32394, 0, "'f'"), -(32395, 0, "'i'"), -(32396, 0, "'x'"), -(32397, 0, "'i'"), -(32398, 0, "'n'"), -(32399, 0, "'g'"), -(32400, 0, "' '"), -(32401, 0, "'t'"), -(32402, 0, "'h'"), -(32403, 0, "'i'"), -(32404, 0, "'s'"), -(32405, 0, "' '"), -(32405, 1, "''"), -(32405, 0, "','"), -(32406, 0, "' '"), -(32407, 0, "'a'"), -(32408, 0, "'n'"), -(32409, 0, "'d'"), -(32410, 0, "' '"), -(32411, 0, "'t'"), -(32412, 0, "'r'"), -(32413, 0, "'i'"), -(32414, 0, "'m'"), -(32415, 0, "'m'"), -(32416, 0, "'i'"), -(32417, 0, "'n'"), -(32418, 0, "'g'"), -(32419, 0, "' '"), -(32420, 0, "'d'"), -(32421, 0, "'o'"), -(32422, 0, "'w'"), -(32423, 0, "'n'"), -(32424, 0, "' '"), -(32425, 0, "'t'"), -(32426, 0, "'h'"), -(32427, 0, "'e'"), -(32428, 0, "' '"), -(32429, 0, "'d'"), -(32430, 0, "'o'"), -(32431, 0, "'c'"), -(32432, 0, "'u'"), -(32433, 0, "'m'"), -(32434, 0, "'e'"), -(32435, 0, "'n'"), -(32436, 0, "'t'"), -(32437, 0, "' '"), -(32438, 0, "'s'"), -(32439, 0, "'i'"), -(32440, 0, "'z'"), -(32441, 0, "'e'"), -(32442, 0, "' '"), -(32443, 0, "'f'"), -(32444, 0, "'r'"), -(32445, 0, "'o'"), -(32446, 0, "'m'"), -(32447, 0, "' '"), -(32448, 0, "'t'"), -(32449, 0, "'i'"), -(32450, 0, "'m'"), -(32451, 0, "'e'"), -(32452, 0, "' '"), -(32453, 0, "'t'"), -(32454, 0, "'o'"), -(32455, 0, "' '"), -(32456, 0, "'t'"), -(32457, 0, "'i'"), -(32458, 0, "'m'"), -(32459, 0, "'e'"), -(32460, 0, "'.'"), -(32461, 0, "' '"), -(32462, 0, "'B'"), -(32463, 0, "'u'"), -(32464, 0, "'t'"), -(32465, 0, "' '"), -(32466, 0, "'a'"), -(32364, 103, "'T'"), -(32365, 0, "'h'"), -(32366, 0, "'i'"), -(32367, 0, "'s'"), -(32368, 0, "' '"), -(32369, 0, "'c'"), -(32370, 0, "'a'"), -(32371, 0, "'n'"), -(32372, 0, "' '"), -(32373, 0, "'b'"), -(32374, 0, "'e'"), -(32375, 0, "' '"), -(32376, 0, "'f'"), -(32377, 0, "'i'"), -(32378, 0, "'x'"), -(32379, 0, "'e'"), -(32380, 0, "'d'"), -(32381, 0, "','"), -(32382, 0, "' '"), -(32383, 0, "'b'"), -(32384, 0, "'u'"), -(32385, 0, "'t'"), -(32386, 0, "' '"), -(32387, 0, "'f'"), -(32388, 0, "'i'"), -(32389, 0, "'x'"), -(32390, 0, "'i'"), -(32391, 0, "'n'"), -(32392, 0, "'g'"), -(32393, 0, "' '"), -(32394, 0, "'t'"), -(32395, 0, "'h'"), -(32396, 0, "'i'"), -(32397, 0, "'s'"), -(32398, 0, "' '"), -(32399, 0, "'i'"), -(32400, 0, "'s'"), -(32401, 0, "' '"), -(32402, 0, "'o'"), -(32403, 0, "'r'"), -(32404, 0, "'t'"), -(32405, 0, "'h'"), -(32406, 0, "'o'"), -(32407, 0, "'g'"), -(32408, 0, "'o'"), -(32409, 0, "'n'"), -(32410, 0, "'a'"), -(32411, 0, "'l'"), -(32412, 0, "' '"), -(32413, 0, "'t'"), -(32414, 0, "'o'"), -(32415, 0, "' '"), -(32416, 0, "'o'"), -(32416, 1, "''"), -(32412, 4, "''"), -(32412, 0, "'.'"), -(32387, 6, "''"), -(32386, 1, "''"), -(32386, 0, "' '"), -(32387, 0, "'i'"), -(32388, 0, "'t'"), -(32389, 0, "'s'"), -(32390, 0, "' '"), -(32387, 4, "'t'"), -(32388, 0, "'h'"), -(32389, 0, "'e'"), -(32390, 0, "'s'"), -(32391, 0, "'e'"), -(32392, 0, "' '"), -(32393, 0, "'f'"), -(32394, 0, "'i'"), -(32395, 0, "'x'"), -(32396, 0, "'e'"), -(32397, 0, "'s'"), -(32381, 0, "' '"), -(32382, 0, "'('"), -(32383, 0, "'e'"), -(32384, 0, "'g'"), -(32385, 0, "' '"), -(32386, 0, "'Y'"), -(32387, 0, "'j'"), -(32388, 0, "'s'"), -(32389, 0, "'''"), -(32390, 0, "'s'"), -(32391, 0, "' '"), -(32392, 0, "'G'"), -(32393, 0, "'C'"), -(32394, 0, "' '"), -(32395, 0, "'a'"), -(32396, 0, "'l'"), -(32397, 0, "'g'"), -(32398, 0, "'o'"), -(32399, 0, "'r'"), -(32400, 0, "'i'"), -(32401, 0, "'t'"), -(32402, 0, "'h'"), -(32403, 0, "'m'"), -(32404, 0, "' '"), -(32405, 0, "'o'"), -(32406, 0, "'r'"), -(32407, 0, "' '"), -(32407, 1, "''"), -(32406, 1, "''"), -(32405, 1, "''"), -(32404, 1, "''"), -(32404, 0, "','"), -(32405, 0, "' '"), -(32406, 0, "'o'"), -(32407, 0, "'r'"), -(32408, 0, "' '"), -(32409, 0, "'A'"), -(32410, 0, "'n'"), -(32411, 0, "'t'"), -(32412, 0, "'i'"), -(32413, 0, "'m'"), -(32414, 0, "'a'"), -(32415, 0, "'t'"), -(32416, 0, "'t'"), -(32417, 0, "'e'"), -(32418, 0, "'r'"), -(32419, 0, "')'"), -(32420, 1, "''"), -(32420, 0, "'.'"), -(32422, 1, "''"), -(32422, 0, "'B'"), -(32409, 0, "'T'"), -(32410, 0, "'o'"), -(32410, 1, "''"), -(32409, 1, "''"), -(32438, 4, "'a'"), -(32439, 0, "'r'"), -(32440, 0, "'e'"), -(32441, 3, "''"), -(32452, 0, "' '"), -(32453, 0, "'t'"), -(32454, 0, "'o'"), -(32455, 0, "' '"), -(32456, 0, "'w'"), -(32457, 0, "'h'"), -(32458, 0, "'a'"), -(32459, 0, "'t'"), -(32460, 0, "' '"), -(32461, 0, "'I'"), -(32462, 0, "'''"), -(32463, 0, "'m'"), -(32464, 0, "' '"), -(32465, 0, "'d'"), -(32466, 0, "'o'"), -(32467, 0, "'i'"), -(32468, 0, "'n'"), -(32469, 0, "'g'"), -(32470, 0, "' '"), -(32471, 0, "'a'"), -(32472, 0, "'b'"), -(32473, 0, "'o'"), -(32474, 0, "'v'"), -(32475, 0, "'e'"), -(32432, 5, "'a'"), -(32432, 1, "''"), -(32432, 0, "'t'"), -(32433, 0, "'h'"), -(32434, 0, "'i'"), -(32435, 0, "'n'"), -(32436, 0, "'g'"), -(32437, 0, "'s'"), -(32438, 0, "' '"), -(32439, 0, "'s'"), -(32440, 0, "'h'"), -(32441, 0, "'o'"), -(32442, 0, "'u'"), -(32443, 0, "'l'"), -(32444, 0, "'d'"), -(32445, 0, "' '"), -(32446, 0, "'w'"), -(32447, 0, "'o'"), -(32448, 0, "'r'"), -(32449, 0, "'k'"), -(32450, 0, "' '"), -(32451, 0, "'w'"), -(32452, 0, "'i'"), -(32453, 0, "'t'"), -(32454, 0, "'h'"), -(32455, 0, "' '"), -(32456, 0, "'a'"), -(32457, 0, "'n'"), -(32458, 0, "'y'"), -(32459, 0, "' '"), -(32460, 0, "'o'"), -(32461, 0, "'f'"), -(32462, 0, "' '"), -(32463, 0, "'t'"), -(32464, 0, "'h'"), -(32465, 0, "'e'"), -(32466, 0, "' '"), -(32467, 0, "'a'"), -(32468, 0, "'p'"), -(32469, 0, "'p'"), -(32470, 0, "'r'"), -(32471, 0, "'o'"), -(32472, 0, "'a'"), -(32473, 0, "'c'"), -(32474, 0, "'h'"), -(32475, 0, "'e'"), -(32476, 0, "'s'"), -(32477, 0, "' '"), -(32478, 0, "'I'"), -(32479, 0, "'''"), -(32480, 0, "'v'"), -(32481, 0, "'e'"), -(32482, 0, "' '"), -(32483, 0, "'l'"), -(32484, 0, "'i'"), -(32485, 0, "'s'"), -(32486, 0, "'t'"), -(32487, 0, "'e'"), -(32488, 0, "'d'"), -(32489, 34, "' '"), -(32498, 0, "'n'"), -(32499, 0, "'#'"), -(32500, 0, "'#'"), -(32501, 0, "'#'"), -(32502, 0, "' '"), -(32503, 0, "'A'"), -(32504, 0, "'p'"), -(32505, 0, "'p'"), -(32506, 0, "'e'"), -(32507, 0, "'n'"), -(32508, 0, "'d'"), -(32509, 0, "'i'"), -(32510, 0, "'g'"), -(32510, 1, "''"), -(32510, 0, "'x'"), -(32511, 0, "' '"), -(32512, 0, "'C'"), -(32513, 0, "':'"), -(32514, 0, "' '"), -(32515, 0, "'H'"), -(32516, 0, "'o'"), -(32517, 0, "'l'"), -(32518, 0, "'y'"), -(32519, 0, "' '"), -(32520, 0, "'c'"), -(32521, 0, "'o'"), -(32522, 0, "'w'"), -(32523, 0, "','"), -(32524, 0, "' '"), -(32525, 0, "'a'"), -(32526, 0, "'u'"), -(32527, 0, "'t'"), -(32528, 0, "'o'"), -(32529, 0, "'m'"), -(32530, 0, "'e'"), -(32531, 0, "'r'"), -(32532, 0, "'g'"), -(32533, 0, "'e'"), -(32534, 0, "' '"), -(32535, 0, "'i'"), -(32536, 0, "'s'"), -(32537, 0, "' '"), -(32538, 0, "'r'"), -(32539, 0, "'e'"), -(32540, 0, "'a'"), -(32541, 0, "'l'"), -(32542, 0, "'l'"), -(32543, 0, "'y'"), -(32544, 0, "' '"), -(32545, 0, "'s'"), -(32546, 0, "'l'"), -(32547, 0, "'o'"), -(32548, 0, "'w'"), -(32549, 0, "'!'"), -(32551, 4, "''"), -(32551, 53, "'n'"), -(32552, 0, "'I'"), -(32553, 0, "' '"), -(32554, 0, "'k'"), -(32555, 0, "'n'"), -(32556, 0, "'o'"), -(32557, 0, "'w'"), -(32558, 0, "'!'"), -(32559, 0, "'!'"), -(32560, 0, "' '"), -(32561, 0, "'T'"), -(32562, 0, "'a'"), -(32563, 0, "'k'"), -(32564, 0, "'e'"), -(32565, 0, "' '"), -(32566, 0, "'a'"), -(32567, 0, "' '"), -(32568, 0, "'l'"), -(32569, 0, "'o'"), -(32570, 0, "'o'"), -(32571, 0, "'o'"), -(32572, 0, "'k'"), -(32573, 0, "' '"), -(32573, 1, "''"), -(32572, 1, "''"), -(32571, 1, "''"), -(32571, 0, "'k'"), -(32572, 0, "' '"), -(32573, 0, "'a'"), -(32574, 0, "'t'"), -(32575, 0, "' '"), -(32561, 15, "'I'"), -(32562, 0, "'y'"), -(32563, 0, "'d'"), -(32564, 0, "' '"), -(32564, 1, "''"), -(32563, 1, "''"), -(32562, 1, "''"), -(32562, 0, "'t'"), -(32563, 0, "'s'"), -(32564, 0, "' '"), -(32565, 0, "'r'"), -(32566, 0, "'e'"), -(32567, 0, "'a'"), -(32568, 0, "'l'"), -(32569, 0, "'l'"), -(32570, 0, "'y'"), -(32571, 0, "' '"), -(32572, 0, "'j'"), -(32573, 0, "'u'"), -(32574, 0, "'s'"), -(32575, 0, "'t'"), -(32565, 11, "'n'"), -(32566, 0, "'o'"), -(32567, 0, "'t'"), -(32568, 0, "' '"), -(32569, 0, "'e'"), -(32570, 0, "'v'"), -(32571, 0, "'e'"), -(32572, 0, "'n'"), -(32573, 0, "' '"), -(32574, 0, "'t'"), -(32575, 0, "'r'"), -(32576, 0, "'y'"), -(32577, 0, "'i'"), -(32578, 0, "'n'"), -(32579, 0, "'g'"), -(32580, 0, "' '"), -(32581, 0, "'t'"), -(32582, 0, "'o'"), -(32583, 0, "' '"), -(32584, 0, "'b'"), -(32585, 0, "'e'"), -(32586, 0, "' '"), -(32587, 0, "'f'"), -(32588, 0, "'a'"), -(32589, 0, "'s'"), -(32590, 0, "'t'"), -(32591, 0, "'.'"), -(32592, 0, "' '"), -(32593, 0, "'L'"), -(32594, 0, "'o'"), -(32595, 0, "'o'"), -(32596, 0, "'k'"), -(32597, 0, "' '"), -(32598, 0, "'a'"), -(32599, 0, "'t'"), -(32600, 0, "' '"), -(32601, 0, "'t'"), -(32602, 0, "'h'"), -(32603, 0, "'i'"), -(32604, 0, "'s'"), -(32605, 0, "' '"), -(32606, 0, "'c'"), -(32607, 0, "'o'"), -(32608, 0, "'d'"), -(32609, 0, "'e'"), -(32610, 0, "':'"), -(32611, 0, "'n'"), -(32564, 0, "' '"), -(32565, 0, "'e'"), -(32565, 1, "''"), -(32565, 0, "'r'"), -(32566, 0, "'e'"), -(32567, 0, "'a'"), -(32568, 0, "'l'"), -(32569, 0, "'l'"), -(32570, 0, "'y'"), -(33943, 746, "''"), -(32532, 0, "'''"), -(32532, 1, "''"), -(32534, 0, "'''"), -(32535, 0, "'s'"), -(32536, 0, "' '"), -(32537, 0, "'j'"), -(32538, 0, "'a'"), -(32539, 0, "'v'"), -(32540, 0, "'a'"), -(32541, 0, "'s'"), -(32542, 0, "'c'"), -(32543, 0, "'r'"), -(32544, 0, "'i'"), -(32545, 0, "'p'"), -(32546, 0, "'t'"), -(32547, 0, "' '"), -(32548, 0, "'c'"), -(32548, 1, "''"), -(32547, 1, "''"), -(33955, 0, "'n'"), -(33956, 0, "'T'"), -(33956, 1, "''"), -(33956, 0, "'B'"), -(33957, 0, "'u'"), -(33958, 0, "'t'"), -(33959, 0, "' '"), -(33960, 0, "'t'"), -(33961, 0, "'h'"), -(33962, 0, "'i'"), -(33963, 0, "'s'"), -(33964, 0, "' '"), -(33965, 0, "'c'"), -(33966, 0, "'o'"), -(33967, 0, "'d'"), -(33968, 0, "'e'"), -(33969, 0, "' '"), -(33970, 0, "'i'"), -(33971, 0, "'s'"), -(33972, 0, "' '"), -(33973, 0, "'a'"), -(33974, 0, "'l'"), -(33975, 0, "'l'"), -(33976, 0, "' '"), -(33977, 0, "'g'"), -(33978, 0, "'o'"), -(33979, 0, "'i'"), -(33980, 0, "'n'"), -(33981, 0, "'g'"), -(33982, 0, "' '"), -(33983, 0, "'t'"), -(33984, 0, "'o'"), -(33985, 0, "'b'"), -(33986, 0, "'e'"), -(33987, 0, "' '"), -(33988, 0, "'r'"), -(33989, 0, "'e'"), -(33989, 1, "''"), -(33988, 1, "''"), -(33987, 1, "''"), -(33986, 1, "''"), -(33985, 1, "''"), -(33985, 0, "' '"), -(33986, 0, "'b'"), -(33987, 0, "'e'"), -(33988, 0, "' '"), -(33989, 0, "'r'"), -(33990, 0, "'e'"), -(33991, 0, "'p'"), -(33992, 0, "'l'"), -(33993, 0, "'a'"), -(33994, 0, "'c'"), -(33995, 0, "'e'"), -(33996, 0, "'d'"), -(33997, 0, "' '"), -(33998, 0, "'b'"), -(33999, 0, "'y'"), -(34000, 0, "' '"), -(34001, 0, "'['"), -(34002, 0, "'a'"), -(34003, 0, "'u'"), -(34004, 0, "'t'"), -(34005, 0, "'o'"), -(34006, 0, "'m'"), -(34007, 0, "'e'"), -(34008, 0, "'r'"), -(34009, 0, "'g'"), -(34010, 0, "'e'"), -(34011, 0, "'-'"), -(34012, 0, "'r'"), -(34013, 0, "'s'"), -(34014, 0, "']'"), -(34015, 0, "'('"), -(34016, 0, "'https://github.com/automerge/automerge-rs'"), -(34057, 0, "')'"), -(34058, 0, "','"), -(34059, 0, "' '"), -(34060, 0, "'w'"), -(34061, 0, "'h'"), -(34062, 0, "'e'"), -(34063, 0, "'n'"), -(34064, 0, "'e'"), -(34064, 1, "''"), -(34063, 1, "''"), -(34063, 0, "'v'"), -(34064, 0, "'e'"), -(34065, 0, "'r'"), -(34065, 1, "''"), -(34064, 1, "''"), -(34063, 1, "''"), -(34062, 1, "''"), -(34062, 0, "'e'"), -(34063, 0, "'n'"), -(34064, 0, "'e'"), -(34065, 0, "'v'"), -(34066, 0, "'e'"), -(34067, 0, "'r'"), -(34068, 0, "' '"), -(34069, 0, "'t'"), -(34070, 0, "'h'"), -(34071, 0, "'a'"), -(34072, 0, "'t'"), -(34073, 0, "' '"), -(34074, 0, "'f'"), -(34075, 0, "'i'"), -(34076, 0, "'n'"), -(34077, 0, "'a'"), -(34078, 0, "'l'"), -(34079, 0, "'l'"), -(34080, 0, "'y'"), -(34081, 0, "' '"), -(34082, 0, "'l'"), -(34083, 0, "'a'"), -(34084, 0, "'n'"), -(34085, 0, "'d'"), -(34086, 0, "'s'"), -(34087, 0, "'.'"), -(34088, 0, "' '"), -(34089, 0, "'('"), -(34090, 0, "'M'"), -(34091, 0, "'a'"), -(34092, 0, "'y'"), -(34093, 0, "'b'"), -(34094, 0, "'e'"), -(34095, 0, "' '"), -(34096, 0, "'t'"), -(34097, 0, "'h'"), -(34098, 0, "'i'"), -(34099, 0, "'s'"), -(34100, 0, "' '"), -(34101, 0, "'w'"), -(34102, 0, "'e'"), -(34103, 0, "'e'"), -(34104, 0, "'k'"), -(34090, 15, "''"), -(34089, 1, "''"), -(34089, 0, "'I'"), -(34090, 0, "'t'"), -(34091, 0, "'s'"), -(34092, 0, "' '"), -(34093, 0, "'b'"), -(34094, 0, "'e'"), -(34095, 0, "'e'"), -(34096, 0, "'n'"), -(34097, 0, "' '"), -(34098, 0, "'''"), -(34099, 0, "'r'"), -(34100, 0, "'e'"), -(34101, 0, "'a'"), -(34102, 0, "'l'"), -(34103, 0, "' '"), -(34104, 0, "'s'"), -(34105, 0, "'o'"), -(34106, 0, "'n'"), -(34106, 1, "''"), -(34106, 0, "'o'"), -(34107, 0, "'n'"), -(34108, 0, "' '"), -(34109, 0, "'n'"), -(34110, 0, "'o'"), -(34111, 0, "'w'"), -(34112, 0, "'''"), -(34113, 0, "' '"), -(34114, 0, "'f'"), -(34115, 0, "'o'"), -(34116, 0, "'r'"), -(34117, 0, "' '"), -(34118, 0, "'m'"), -(34119, 0, "'o'"), -(34120, 0, "'n'"), -(34121, 0, "'t'"), -(34122, 0, "'h'"), -(34123, 0, "'s'"), -(34124, 0, "'.'"), -(34125, 0, "' '"), -(34126, 0, "'M'"), -(34127, 0, "'a'"), -(34128, 0, "'y'"), -(34129, 0, "'b'"), -(34130, 0, "'e'"), -(34131, 0, "' '"), -(34132, 0, "'i'"), -(34133, 0, "'t'"), -(34134, 0, "'s'"), -(34135, 0, "' '"), -(34136, 0, "'l'"), -(34137, 0, "'a'"), -(34138, 0, "'n'"), -(34139, 0, "'d'"), -(34140, 0, "'e'"), -(34141, 0, "'d'"), -(33997, 0, "' '"), -(33998, 0, "'i'"), -(33998, 1, "''"), -(33997, 1, "''"), -(33959, 0, "' '"), -(33960, 0, "'i'"), -(33961, 0, "'n'"), -(33962, 0, "' '"), -(33963, 0, "'p'"), -(33964, 0, "'r'"), -(33965, 0, "'a'"), -(33966, 0, "'c'"), -(33967, 0, "'t'"), -(33968, 0, "'i'"), -(33969, 0, "'c'"), -(33970, 0, "'e'"), -(34012, 0, "' '"), -(34013, 0, "'c'"), -(34014, 0, "'a'"), -(34015, 0, "'l'"), -(34016, 0, "'l'"), -(34017, 0, "'s'"), -(34018, 0, "' '"), -(34013, 6, "'W'"), -(34014, 0, "'A'"), -(34015, 0, "'S'"), -(34016, 0, "'M'"), -(34017, 0, "' '"), -(34018, 0, "'c'"), -(34019, 0, "'a'"), -(34020, 0, "'l'"), -(34021, 0, "'l'"), -(34022, 0, "'s'"), -(34023, 0, "' '"), -(34024, 0, "'t'"), -(34025, 0, "'h'"), -(34026, 0, "'r'"), -(34027, 0, "'o'"), -(34028, 0, "'u'"), -(34029, 0, "'g'"), -(34030, 0, "'h'"), -(34031, 0, "' '"), -(34032, 0, "'t'"), -(34033, 0, "'o'"), -(34176, 0, "' '"), -(34177, 0, "'b'"), -(34178, 0, "'y'"), -(34179, 0, "' '"), -(34180, 0, "'t'"), -(34181, 0, "'h'"), -(34182, 0, "'e'"), -(34183, 0, "' '"), -(34184, 0, "'t'"), -(34185, 0, "'i'"), -(34186, 0, "'m'"), -(34187, 0, "'e'"), -(34188, 0, "' '"), -(34189, 0, "'y'"), -(34190, 0, "'o'"), -(34191, 0, "'u'"), -(34192, 0, "'''"), -(34193, 0, "'r'"), -(34194, 0, "'e'"), -(34195, 0, "' '"), -(34196, 0, "'r'"), -(34197, 0, "'e'"), -(34198, 0, "'a'"), -(34199, 0, "'d'"), -(34200, 0, "'i'"), -(34201, 0, "'n'"), -(34202, 0, "'g'"), -(34203, 0, "' '"), -(34204, 0, "'t'"), -(34205, 0, "'h'"), -(34206, 0, "'i'"), -(34207, 0, "'s'"), -(34208, 0, "'!'"), -(34209, 0, "' '"), -(34210, 0, "'H'"), -(34211, 0, "'o'"), -(34212, 0, "'w'"), -(34213, 0, "' '"), -(34214, 0, "'f'"), -(34215, 0, "'a'"), -(34216, 0, "'s'"), -(34217, 0, "'t'"), -(34218, 0, "' '"), -(34219, 0, "'i'"), -(34220, 0, "'s'"), -(34221, 0, "' '"), -(34222, 0, "'a'"), -(34223, 0, "'u'"), -(34214, 10, "'d'"), -(34215, 0, "'o'"), -(34216, 0, "'e'"), -(34217, 0, "'s'"), -(34218, 0, "' '"), -(34219, 0, "'a'"), -(34220, 0, "'u'"), -(34221, 0, "'t'"), -(34222, 0, "'o'"), -(34223, 0, "'m'"), -(34224, 0, "'e'"), -(34225, 0, "'r'"), -(34226, 0, "'g'"), -(34227, 0, "'e'"), -(34228, 0, "'-'"), -(34229, 0, "'r'"), -(34230, 0, "'s'"), -(34231, 0, "' '"), -(34232, 0, "'c'"), -(34233, 0, "'o'"), -(34234, 0, "'m'"), -(34235, 0, "'p'"), -(34236, 0, "'a'"), -(34237, 0, "'r'"), -(34238, 0, "'e'"), -(34239, 0, "'?'"), -(34240, 0, "' '"), -(34241, 0, "'G'"), -(34242, 0, "'o'"), -(34243, 0, "'o'"), -(34244, 0, "'d'"), -(34245, 0, "' '"), -(34246, 0, "'u'"), -(34247, 0, "'e'"), -(34247, 1, "''"), -(34246, 1, "''"), -(34246, 0, "'q'"), -(34247, 0, "'u'"), -(34248, 0, "'e'"), -(34249, 0, "'s'"), -(34250, 0, "'t'"), -(34251, 0, "'i'"), -(34252, 0, "'o'"), -(34253, 0, "'n'"), -(34254, 0, "' '"), -(34255, 0, "'-'"), -(34256, 0, "' '"), -(34257, 0, "'I'"), -(34258, 0, "'''"), -(34259, 0, "'d'"), -(34260, 0, "' '"), -(34261, 0, "'l'"), -(34262, 0, "'o'"), -(34257, 6, "'m'"), -(34258, 0, "'a'"), -(34259, 0, "'y'"), -(34260, 0, "'b'"), -(34261, 0, "'e'"), -(34262, 0, "' '"), -(34257, 6, "'I'"), -(34258, 0, "'''"), -(34259, 0, "'d'"), -(34260, 0, "' '"), -(34261, 0, "'l'"), -(34262, 0, "'o'"), -(34263, 0, "'v'"), -(34264, 0, "'e'"), -(34265, 0, "' '"), -(34266, 0, "'t'"), -(34267, 0, "'o'"), -(34268, 0, "' '"), -(34269, 0, "'k'"), -(34270, 0, "'n'"), -(34271, 0, "'o'"), -(34272, 0, "'w'"), -(34273, 0, "' '"), -(34274, 0, "'t'"), -(34275, 0, "'o'"), -(34276, 0, "'o'"), -(34277, 0, "'.'"), -(34278, 0, "' '"), -(34279, 0, "'R'"), -(34280, 0, "'u'"), -(34281, 0, "'n'"), -(34279, 3, "''"), -(34278, 1, "''"), -(34277, 1, "''"), -(34277, 0, "'!'"), -(0, 0, "'n'"), -(1, 0, "'n'"), -(2, 0, "'n'"), -(1, 0, "'!'"), -(2, 0, "' '"), -(2, 1, "''"), -(1, 1, "''"), -(1, 0, "'#'"), -(2, 0, "' '"), -(3, 0, "'A'"), -(4, 0, "'u'"), -(5, 0, "'t'"), -(6, 0, "'o'"), -(7, 0, "'m'"), -(3, 5, "'M'"), -(4, 0, "'a'"), -(5, 0, "'k'"), -(6, 0, "'i'"), -(7, 0, "'n'"), -(8, 0, "'g'"), -(9, 0, "' '"), -(10, 0, "'C'"), -(11, 0, "'R'"), -(12, 0, "'D'"), -(13, 0, "'T'"), -(14, 0, "'s'"), -(15, 0, "' '"), -(16, 0, "'g'"), -(17, 0, "'o'"), -(18, 0, "' '"), -(19, 0, "'B'"), -(20, 0, "'R'"), -(21, 0, "'R'"), -(22, 0, "'R'"), -(23, 0, "' '"), -(23, 1, "''"), -(22, 1, "''"), -(21, 1, "''"), -(20, 1, "''"), -(19, 1, "''"), -(3, 7, "''"), -(12, 0, "'B'"), -(13, 0, "'R'"), -(14, 0, "'R'"), -(15, 0, "'R'"), -(16, 0, "':'"), -(17, 0, "' '"), -(18, 0, "'I'"), -(19, 0, "'m'"), -(20, 0, "'p'"), -(21, 0, "'r'"), -(22, 0, "'o'"), -(23, 0, "'v'"), -(24, 0, "'i'"), -(25, 0, "'n'"), -(26, 0, "'g'"), -(27, 0, "' '"), -(28, 0, "'p'"), -(29, 0, "'e'"), -(30, 0, "'r'"), -(31, 0, "'f'"), -(32, 0, "'o'"), -(33, 0, "'r'"), -(34, 0, "'m'"), -(35, 0, "'a'"), -(36, 0, "'n'"), -(37, 0, "'c'"), -(38, 0, "'e'"), -(39, 0, "' '"), -(40, 0, "'b'"), -(41, 0, "'y'"), -(42, 0, "'t'"), -(43, 0, "' '"), -(43, 1, "''"), -(42, 1, "''"), -(42, 0, "' '"), -(43, 0, "'4'"), -(44, 0, "'0'"), -(45, 0, "'0'"), -(46, 0, "'0'"), -(47, 0, "'x'"), -(3211, 5, "'I'"), -(3212, 0, "'t'"), -(3213, 0, "'s'"), -(3416, 0, "'I'"), -(3417, 0, "' '"), -(3418, 0, "'t'"), -(3419, 0, "'o'"), -(3420, 0, "'o'"), -(3421, 0, "'k'"), -(3422, 0, "' '"), -(3416, 7, "''"), -(3422, 1, "''"), -(3422, 0, "'i'"), -(3423, 0, "'n'"), -(3424, 0, "'g'"), -(7952, 1, "''"), -(7952, 0, "'I'"), -(7952, 0, "'['"), -(7965, 0, "']'"), -(7966, 0, "'('"), -(7967, 0, "'https://immutable-js.github.io/'"), -(7998, 0, "')'"), -(7962, 1, "''"), -(8476, 0, "'j'"), -(8477, 0, "'u'"), -(8478, 0, "'s'"), -(8479, 0, "'t'"), -(8480, 0, "' '"), -(9062, 21, "'w'"), -(9063, 0, "'h'"), -(9064, 0, "'e'"), -(9065, 0, "'n'"), -(9066, 0, "' '"), -(9067, 0, "'y'"), -(9068, 0, "'o'"), -(9069, 0, "'u'"), -(9070, 0, "' '"), -(9071, 0, "'c'"), -(9072, 0, "'a'"), -(9073, 0, "'n'"), -(9081, 0, "' '"), -(9082, 0, "'i'"), -(9083, 0, "'t'"), -(9070, 0, "'''"), -(9070, 1, "''"), -(9062, 9, "''"), -(9062, 1, "''"), -(9062, 1, "''"), -(9062, 1, "''"), -(9062, 0, "'b'"), -(9063, 0, "'e'"), -(9064, 0, "'f'"), -(9065, 0, "'o'"), -(9066, 0, "'r'"), -(9067, 0, "'e'"), -(9074, 1, "''"), -(9074, 0, "'i'"), -(9075, 0, "'n'"), -(9076, 0, "'g'"), -(9062, 7, "'a'"), -(9063, 0, "'n'"), -(9064, 0, "'d'"), -(9065, 0, "' '"), -(9066, 0, "'t'"), -(9067, 0, "'h'"), -(9068, 0, "'e'"), -(9069, 0, "'n'"), -(9070, 0, "' '"), -(9078, 1, "''"), -(9077, 1, "''"), -(9076, 1, "''"), -(9076, 0, "'i'"), -(9077, 0, "'n'"), -(9078, 0, "'g'"), -(9062, 17, "'b'"), -(9063, 0, "'e'"), -(9064, 0, "'f'"), -(9065, 0, "'o'"), -(9066, 0, "'r'"), -(9067, 0, "'e'"), -(9068, 0, "' '"), -(9069, 0, "'r'"), -(9070, 0, "'e'"), -(9071, 0, "'w'"), -(9072, 0, "'r'"), -(9073, 0, "'i'"), -(9074, 0, "'t'"), -(9075, 0, "'i'"), -(9076, 0, "'n'"), -(9077, 0, "'g'"), -(9062, 16, "'w'"), -(9063, 0, "'h'"), -(9064, 0, "'e'"), -(9065, 0, "'n'"), -(9066, 0, "' '"), -(9067, 0, "'y'"), -(9068, 0, "'u'"), -(9069, 0, "'o'"), -(9070, 0, "'''"), -(9071, 0, "'r'"), -(9072, 0, "'e'"), -(9073, 0, "' '"), -(9074, 0, "'a'"), -(9067, 8, "'y'"), -(9068, 0, "'o'"), -(9069, 0, "'u'"), -(9070, 0, "'''"), -(9071, 0, "'r'"), -(9072, 0, "'e'"), -(9073, 0, "' '"), -(9074, 0, "'a'"), -(9075, 0, "'b'"), -(9076, 0, "'o'"), -(9077, 0, "'u'"), -(9078, 0, "'t'"), -(9079, 0, "' '"), -(9080, 0, "'t'"), -(9081, 0, "'o'"), -(9082, 0, "' '"), -(9083, 0, "'t'"), -(9084, 0, "'h'"), -(9085, 0, "'r'"), -(9086, 0, "'o'"), -(9087, 0, "'w'"), -(9088, 0, "' '"), -(9089, 0, "'i'"), -(9090, 0, "'t'"), -(9091, 0, "' '"), -(9092, 0, "'a'"), -(9093, 0, "'w'"), -(9094, 0, "'a'"), -(9095, 0, "'y'"), -(9096, 0, "' '"), -(9097, 0, "'i'"), -(9098, 0, "'n'"), -(9099, 0, "' '"), -(9100, 0, "'a'"), -(9101, 0, "' '"), -(9102, 0, "'r'"), -(9103, 0, "'e'"), -(9104, 0, "'w'"), -(9105, 0, "'r'"), -(9106, 0, "'i'"), -(9107, 0, "'t'"), -(9108, 0, "'e'"), -(9109, 3, "''"), -(9279, 0, "' '"), -(9280, 0, "'a'"), -(9281, 0, "'s'"), -(9282, 0, "' '"), -(9283, 0, "'f'"), -(9284, 0, "'a'"), -(9284, 1, "''"), -(9283, 1, "''"), -(9282, 1, "''"), -(9281, 1, "''"), -(9280, 1, "''"), -(9279, 1, "''"), -(9301, 0, "' '"), -(9302, 0, "'i'"), -(9303, 0, "'s'"), -(9304, 0, "' '"), -(9305, 0, "'a'"), -(9306, 0, "'n'"), -(9307, 0, "'o'"), -(9308, 0, "'t'"), -(9309, 0, "'h'"), -(9310, 0, "'e'"), -(9311, 0, "'r'"), -(9312, 0, "' '"), -(9313, 0, "'('"), -(9314, 0, "'c'"), -(9315, 0, "'o'"), -(9316, 0, "'m'"), -(9317, 0, "'p'"), -(9318, 0, "'e'"), -(9319, 0, "'t'"), -(9320, 0, "'i'"), -(9321, 0, "'n'"), -(9322, 0, "'g'"), -(9323, 0, "')'"), -(9324, 0, "' '"), -(9325, 0, "'C'"), -(9326, 0, "'R'"), -(9327, 0, "'D'"), -(9328, 0, "'T'"), -(9329, 0, "' '"), -(9330, 0, "'a'"), -(9331, 0, "'l'"), -(9332, 0, "'g'"), -(9333, 0, "'o'"), -(9334, 0, "'r'"), -(9335, 0, "'i'"), -(9336, 0, "'t'"), -(9337, 0, "'h'"), -(9338, 0, "'m'"), -(9339, 0, "' '"), -(9340, 0, "'n'"), -(9341, 0, "' '"), -(9341, 1, "''"), -(9340, 1, "''"), -(9340, 0, "'o'"), -(9341, 0, "'n'"), -(9342, 0, "' '"), -(9343, 0, "'g'"), -(9344, 0, "'i'"), -(9345, 0, "'t'"), -(9346, 0, "'h'"), -(9347, 0, "'u'"), -(9348, 0, "'b'"), -(9330, 10, "'i'"), -(9331, 0, "'m'"), -(9332, 0, "'p'"), -(9333, 0, "'l'"), -(9334, 0, "'e'"), -(9335, 0, "'m'"), -(9336, 0, "'e'"), -(9337, 0, "'n'"), -(9338, 0, "'t'"), -(9339, 0, "'a'"), -(9340, 0, "'t'"), -(9341, 0, "'i'"), -(9342, 0, "'o'"), -(9343, 0, "'n'"), -(9344, 0, "' '"), -(9354, 0, "' '"), -(9355, 0, "'m'"), -(9356, 0, "'a'"), -(9357, 0, "'d'"), -(9358, 0, "'e'"), -(9359, 0, "' '"), -(9360, 0, "'b'"), -(9361, 0, "'y'"), -(9362, 0, "' '"), -(9363, 0, "'J'"), -(9363, 1, "''"), -(9363, 0, "'H'"), -(9363, 1, "''"), -(9363, 0, "'K'"), -(9364, 0, "'e'"), -(9365, 0, "'v'"), -(9366, 0, "'i'"), -(9367, 0, "'n'"), -(9368, 0, "' '"), -(9369, 0, "'J'"), -(9370, 0, "'a'"), -(9371, 0, "'h'"), -(9372, 0, "'n'"), -(9373, 0, "'s'"), -(9374, 0, "'.'"), -(9375, 0, "' '"), -(9376, 0, "'K'"), -(9377, 0, "'e'"), -(9377, 1, "''"), -(9376, 1, "''"), -(9376, 0, "'A'"), -(9376, 1, "''"), -(9376, 0, "'A'"), -(9377, 0, "'n'"), -(9378, 0, "'d'"), -(9379, 0, "' '"), -(9380, 0, "'i'"), -(9381, 0, "'t'"), -(9382, 0, "'s'"), -(9383, 0, "' '"), -(9384, 0, "'r'"), -(9385, 0, "'e'"), -(9386, 0, "'a'"), -(9387, 0, "'l'"), -(9388, 0, "'l'"), -(9389, 0, "'y'"), -(9390, 0, "' '"), -(9391, 0, "'f'"), -(9392, 0, "'a'"), -(9393, 0, "'s'"), -(9394, 0, "'t'"), -(9395, 0, "','"), -(9396, 0, "' '"), -(9397, 0, "'w'"), -(9398, 0, "'e'"), -(9399, 0, "'l'"), -(9400, 0, "'l'"), -(9401, 0, "' '"), -(9402, 0, "'d'"), -(9403, 0, "'o'"), -(9404, 0, "'u'"), -(9404, 1, "''"), -(9404, 0, "'c'"), -(9405, 0, "'u'"), -(9406, 0, "'m'"), -(9407, 0, "'e'"), -(9408, 0, "'n'"), -(9409, 0, "'t'"), -(9410, 0, "'e'"), -(9411, 0, "'d'"), -(9412, 0, "' '"), -(9413, 0, "'a'"), -(9414, 0, "'n'"), -(9415, 0, "'d'"), -(9416, 0, "' '"), -(9417, 0, "'w'"), -(9418, 0, "'e'"), -(9419, 0, "'l'"), -(9420, 0, "'l'"), -(9421, 0, "' '"), -(9422, 0, "'m'"), -(9423, 0, "'a'"), -(9424, 0, "'d'"), -(9425, 0, "'e'"), -(9426, 0, "'.'"), -(9427, 0, "' '"), -(9428, 0, "'Y'"), -(9429, 0, "'j'"), -(9430, 0, "'s'"), -(9517, 6, "'r'"), -(9518, 0, "'e'"), -(9519, 0, "'a'"), -(9520, 0, "'l'"), -(9521, 0, "'l'"), -(9522, 0, "'y'"), -(9517, 6, "''"), -(9517, 0, "'really'"), -(9517, 6, "'pretty'"), -(9427, 1, "''"), -(9427, 0, "'n'"), -(9428, 0, "'n'"), -(10218, 58, "''"), -(10217, 1, "''"), -(10414, 136, "''"), -(10413, 1, "''"), -(10424, 3, "''"), -(10415, 9, "'B'"), -(10416, 0, "'u'"), -(10417, 0, "'t'"), -(10418, 0, "' '"), -(10419, 0, "'w'"), -(10420, 0, "'i'"), -(10421, 0, "'t'"), -(10422, 0, "'h'"), -(10423, 0, "' '"), -(10424, 0, "'t'"), -(10425, 0, "'h'"), -(10426, 0, "'i'"), -(10427, 0, "'s'"), -(10445, 1, "''"), -(10445, 0, "' '"), -(10446, 0, "'l'"), -(10446, 1, "''"), -(10445, 1, "''"), -(10445, 0, "'s'"), -(10446, 0, "' '"), -(10447, 0, "'m'"), -(10448, 0, "'o'"), -(10449, 0, "'r'"), -(10450, 0, "'e'"), -(10451, 0, "' '"), -(10452, 0, "'c'"), -(10453, 0, "'o'"), -(10454, 0, "'m'"), -(10455, 0, "'p'"), -(10456, 0, "'l'"), -(10457, 0, "'i'"), -(10458, 0, "'c'"), -(10459, 0, "'a'"), -(10460, 0, "'t'"), -(10461, 0, "'e'"), -(10462, 0, "'d'"), -(10620, 0, "' '"), -(10621, 0, "'('"), -(10622, 0, "'?'"), -(10623, 0, "')'"), -(10637, 0, "' '"), -(10638, 0, "'t'"), -(10639, 0, "'h'"), -(10640, 0, "'e'"), -(10641, 0, "'r'"), -(10642, 0, "'e'"), -(10643, 0, "','"), -(10644, 0, "' '"), -(10645, 0, "'s'"), -(10646, 0, "'p'"), -(10647, 0, "'l'"), -(10648, 0, "'i'"), -(10649, 0, "'c'"), -(10650, 0, "'i'"), -(10651, 0, "'n'"), -(10652, 0, "'g'"), -(10653, 0, "' '"), -(10654, 0, "'i'"), -(10655, 0, "'n'"), -(10656, 0, "'t'"), -(10657, 0, "'o'"), -(10658, 0, "' '"), -(10659, 0, "'t'"), -(10660, 0, "'h'"), -(10661, 0, "'e'"), -(10662, 0, "' '"), -(10663, 0, "'a'"), -(10664, 0, "'r'"), -(10665, 0, "'r'"), -(10666, 0, "'a'"), -(10667, 0, "'y'"), -(10668, 1, "''"), -(10740, 8, "''"), -(10751, 0, "' '"), -(10752, 0, "'-'"), -(10753, 0, "' '"), -(10754, 0, "'h'"), -(10755, 0, "'o'"), -(10756, 0, "'w'"), -(10757, 0, "' '"), -(10758, 0, "'d'"), -(10759, 0, "'o'"), -(10760, 0, "' '"), -(10761, 0, "'y'"), -(10762, 0, "'o'"), -(10763, 0, "'u'"), -(10764, 0, "' '"), -(10765, 0, "'f'"), -(10766, 0, "'i'"), -(10767, 0, "'g'"), -(10768, 0, "'u'"), -(10769, 0, "'r'"), -(10770, 0, "'e'"), -(10771, 0, "' '"), -(10772, 0, "'o'"), -(10773, 0, "'u'"), -(10774, 0, "'t'"), -(10775, 0, "' '"), -(10776, 0, "'w'"), -(10777, 0, "'h'"), -(10778, 0, "'e'"), -(10779, 0, "'r'"), -(10780, 0, "'e'"), -(10781, 0, "' '"), -(10782, 0, "'t'"), -(10783, 0, "'h'"), -(10784, 0, "'e'"), -(10785, 0, "' '"), -(10786, 0, "'n'"), -(10787, 0, "'e'"), -(10788, 0, "'w'"), -(10789, 0, "' '"), -(10790, 0, "'i'"), -(10791, 0, "'t'"), -(10792, 0, "'e'"), -(10793, 0, "'m'"), -(10794, 0, "' '"), -(10795, 0, "'s'"), -(10796, 0, "'h'"), -(10797, 0, "'o'"), -(10798, 0, "'u'"), -(10799, 0, "'l'"), -(10800, 0, "'d'"), -(10801, 0, "' '"), -(10802, 0, "'g'"), -(10803, 0, "'o'"), -(10804, 0, "'?'"), -(10805, 51, "''"), -(10805, 0, "' '"), -(10806, 0, "'B'"), -(10807, 0, "'u'"), -(10808, 0, "'t'"), -(10809, 0, "' '"), -(10810, 0, "'i'"), -(10811, 0, "'t'"), -(10812, 0, "' '"), -(10812, 1, "''"), -(10812, 0, "'s'"), -(10813, 0, "' '"), -(10814, 0, "'o'"), -(10815, 0, "'n'"), -(10816, 0, "'l'"), -(10817, 0, "'y'"), -(10818, 0, "' '"), -(10819, 0, "'c'"), -(10820, 0, "'o'"), -(10821, 0, "'m'"), -(10822, 0, "'p'"), -(10823, 0, "'l'"), -(10824, 0, "'i'"), -(10825, 0, "'c'"), -(10826, 0, "'a'"), -(10827, 0, "'t'"), -(10828, 0, "'e'"), -(10829, 0, "'d'"), -(10830, 0, "' '"), -(10831, 0, "'l'"), -(10832, 0, "'i'"), -(10833, 0, "'k'"), -(10834, 0, "'e'"), -(10835, 0, "' '"), -(10836, 0, "'*'"), -(10837, 0, "'m'"), -(10838, 0, "'a'"), -(10839, 0, "'t'"), -(10840, 0, "'h'"), -(10841, 0, "'*'"), -(10842, 0, "'.'"), -(10843, 0, "' '"), -(10844, 0, "'T'"), -(10845, 0, "'h'"), -(10846, 0, "'e'"), -(10847, 0, "' '"), -(10848, 0, "'l'"), -(10849, 0, "'o'"), -(10850, 0, "'g'"), -(10851, 0, "'i'"), -(10852, 0, "'c'"), -(10853, 0, "' '"), -(10854, 0, "'f'"), -(10855, 0, "'o'"), -(10856, 0, "'r'"), -(10857, 0, "' '"), -(10858, 0, "'o'"), -(10859, 0, "'r'"), -(10860, 0, "'d'"), -(10861, 0, "'e'"), -(10862, 0, "'r'"), -(10863, 0, "'i'"), -(10864, 0, "'n'"), -(10865, 0, "'g'"), -(10866, 0, "' '"), -(10867, 0, "'e'"), -(10868, 0, "'n'"), -(10869, 0, "'d'"), -(10870, 0, "'s'"), -(10871, 0, "' '"), -(10872, 0, "'u'"), -(10873, 0, "'p'"), -(10874, 0, "' '"), -(10875, 0, "'b'"), -(10876, 0, "'e'"), -(10877, 0, "'i'"), -(10878, 0, "'n'"), -(10879, 0, "'g'"), -(10880, 0, "' '"), -(10881, 0, "'2'"), -(10882, 0, "'l'"), -(10882, 1, "''"), -(10882, 0, "' '"), -(10881, 2, "'j'"), -(10882, 0, "'u'"), -(10883, 0, "'s'"), -(10884, 0, "'t'"), -(10885, 0, "' '"), -(10886, 0, "'a'"), -(10887, 0, "' '"), -(10888, 0, "'f'"), -(10889, 0, "'e'"), -(10890, 0, "'w'"), -(10891, 0, "' '"), -(10892, 0, "'i'"), -(10893, 0, "'f'"), -(10894, 0, "' '"), -(10895, 0, "'s'"), -(10896, 0, "'t'"), -(10897, 0, "'a'"), -(10898, 0, "'t'"), -(10899, 0, "'e'"), -(10900, 0, "'m'"), -(10901, 0, "'e'"), -(10902, 0, "'n'"), -(10903, 0, "'t'"), -(10904, 0, "'s'"), -(10905, 0, "'.'"), -(10842, 64, "' '"), -(10843, 0, "'-'"), -(10844, 0, "' '"), -(10845, 0, "'t'"), -(10846, 0, "'h'"), -(10847, 0, "'e'"), -(10848, 0, "' '"), -(10845, 4, "'o'"), -(10846, 0, "'n'"), -(10847, 0, "'c'"), -(10848, 0, "'e'"), -(10849, 0, "' '"), -(10850, 0, "'y'"), -(10851, 0, "'o'"), -(10852, 0, "'u'"), -(10853, 0, "' '"), -(10854, 0, "'f'"), -(10854, 1, "''"), -(10843, 0, "'i'"), -(10844, 0, "'s'"), -(10845, 0, "' '"), -(10846, 0, "'c'"), -(10847, 0, "'o'"), -(10848, 0, "'m'"), -(10849, 0, "'p'"), -(10850, 0, "'l'"), -(10851, 0, "'i'"), -(10852, 0, "'c'"), -(10853, 0, "'a'"), -(10854, 0, "'t'"), -(10855, 0, "'e'"), -(10856, 0, "'.'"), -(10856, 1, "''"), -(10856, 0, "'d'"), -(10857, 0, "'.'"), -(10858, 11, "''"), -(10859, 8, "'I'"), -(10860, 0, "'t'"), -(10861, 0, "'s'"), -(10862, 0, "' '"), -(10863, 0, "'h'"), -(10864, 0, "'a'"), -(10865, 0, "'r'"), -(10866, 0, "'d'"), -(10867, 0, "' '"), -(10868, 0, "'t'"), -(10869, 0, "'o'"), -(10870, 0, "' '"), -(10871, 0, "'u'"), -(10872, 0, "'n'"), -(10873, 0, "'d'"), -(10874, 0, "'e'"), -(10875, 0, "'r'"), -(10876, 0, "'s'"), -(10877, 0, "'t'"), -(10878, 0, "'a'"), -(10879, 0, "'n'"), -(10880, 0, "'d'"), -(10881, 0, "','"), -(10882, 0, "' '"), -(10883, 0, "'b'"), -(10884, 0, "'u'"), -(10885, 0, "'t'"), -(10886, 0, "' '"), -(10887, 0, "'w'"), -(10888, 0, "'h'"), -(10889, 0, "'e'"), -(10890, 0, "'n'"), -(10891, 0, "' '"), -(10892, 0, "'y'"), -(10893, 0, "'o'"), -(10894, 0, "'u'"), -(10895, 0, "' '"), -(10896, 0, "'d'"), -(10897, 0, "'o'"), -(10898, 0, "','"), -(10899, 0, "' '"), -(10900, 0, "'y'"), -(10901, 0, "'o'"), -(10902, 0, "'u'"), -(10903, 0, "' '"), -(11042, 0, "' '"), -(11043, 0, "'i'"), -(11044, 0, "'f'"), -(11045, 0, "' '"), -(11046, 0, "'y'"), -(11047, 0, "'o'"), -(11048, 0, "'u'"), -(11049, 0, "'''"), -(11050, 0, "'r'"), -(11051, 0, "'e'"), -(11052, 0, "' '"), -(11053, 0, "'i'"), -(11054, 0, "'n'"), -(11055, 0, "'t'"), -(11056, 0, "'e'"), -(11057, 0, "'r'"), -(11058, 0, "'e'"), -(11059, 0, "'s'"), -(11060, 0, "'t'"), -(11061, 0, "'e'"), -(11062, 0, "'d'"), -(11408, 2, "'I'"), -(11409, 0, "' '"), -(11410, 0, "'m'"), -(11411, 0, "'a'"), -(11412, 0, "'d'"), -(11413, 0, "'e'"), -(11414, 0, "' '"), -(11415, 0, "'a'"), -(11414, 2, "''"), -(11414, 0, "' a'"), -(11486, 0, "' '"), -(11487, 0, "'w'"), -(11488, 0, "'h'"), -(11489, 0, "'i'"), -(11490, 0, "'v'"), -(11491, 0, "'h'"), -(11491, 1, "''"), -(11490, 1, "''"), -(11490, 0, "'c'"), -(11491, 0, "'h'"), -(11529, 0, "' '"), -(11530, 0, "'s'"), -(11531, 0, "'i'"), -(11532, 0, "'d'"), -(11533, 0, "'e'"), -(11534, 0, "'-'"), -(11535, 0, "'b'"), -(11536, 0, "'y'"), -(11537, 0, "'-'"), -(11538, 0, "'s'"), -(11539, 0, "'i'"), -(11540, 0, "'d'"), -(11541, 0, "'e'"), -(11542, 0, "'d'"), -(11542, 1, "''"), -(11544, 66, "''"), -(11544, 0, "'F'"), -(11545, 0, "'o'"), -(11546, 0, "'r'"), -(11547, 0, "' '"), -(11547, 1, "''"), -(11546, 1, "''"), -(11545, 1, "''"), -(11544, 1, "''"), -(11544, 0, "'Y'"), -(11545, 0, "'o'"), -(11546, 0, "'u'"), -(11547, 0, "' '"), -(11548, 0, "'c'"), -(11549, 0, "'a'"), -(11550, 0, "'n'"), -(11551, 0, "' '"), -(11552, 0, "'('"), -(11553, 0, "'m'"), -(11554, 0, "'o'"), -(11555, 0, "'s'"), -(11556, 0, "'t'"), -(11557, 0, "'l'"), -(11558, 0, "'y'"), -(11559, 0, "')'"), -(11560, 0, "' '"), -(11561, 0, "'s'"), -(11562, 0, "'w'"), -(11563, 0, "'a'"), -(11564, 0, "'p'"), -(11565, 0, "' '"), -(11566, 0, "'i'"), -(11567, 0, "'m'"), -(11568, 0, "'l'"), -(11569, 0, "'e'"), -(11569, 1, "''"), -(11568, 1, "''"), -(11568, 0, "'p'"), -(11569, 0, "'l'"), -(11570, 0, "'e'"), -(11571, 0, "'m'"), -(11572, 0, "'e'"), -(11573, 0, "'n'"), -(11574, 0, "'t'"), -(11575, 0, "'a'"), -(11576, 0, "'t'"), -(11577, 0, "'i'"), -(11578, 0, "'o'"), -(11579, 0, "'n'"), -(11580, 0, "'s'"), -(11581, 0, "' '"), -(11582, 0, "'y'"), -(11582, 1, "''"), -(11582, 0, "'b'"), -(11583, 0, "'y'"), -(11584, 0, "' '"), -(11585, 0, "'j'"), -(11586, 0, "'u'"), -(11587, 0, "'s'"), -(11588, 0, "'t'"), -(11589, 0, "' '"), -(11590, 0, "'c'"), -(11591, 0, "'h'"), -(11592, 0, "'a'"), -(11593, 0, "'n'"), -(11594, 0, "'g'"), -(11595, 0, "'i'"), -(11596, 0, "'n'"), -(11597, 0, "'g'"), -(11598, 0, "' '"), -(11599, 0, "'y'"), -(11600, 0, "'o'"), -(11601, 0, "'u'"), -(11602, 0, "'r'"), -(11603, 0, "' '"), -(11604, 0, "'i'"), -(11605, 0, "'n'"), -(11606, 0, "'t'"), -(11607, 0, "'e'"), -(11607, 1, "''"), -(11606, 1, "''"), -(11605, 1, "''"), -(11604, 1, "''"), -(11604, 0, "'i'"), -(11605, 0, "'n'"), -(11606, 0, "'s'"), -(11607, 0, "'e'"), -(11608, 0, "'r'"), -(11609, 0, "'t'"), -(11610, 0, "'i'"), -(11611, 0, "'o'"), -(11612, 0, "'n'"), -(11613, 0, "' '"), -(11614, 0, "'f'"), -(11615, 0, "'u'"), -(11616, 0, "'n'"), -(11617, 0, "'c'"), -(11618, 0, "'t'"), -(11619, 0, "'i'"), -(11620, 0, "'o'"), -(11621, 0, "'n'"), -(11622, 0, "'.'"), -(11604, 9, "''"), -(11590, 14, "'s'"), -(11591, 0, "'a'"), -(11592, 0, "'p'"), -(11593, 0, "'p'"), -(11593, 1, "''"), -(11592, 1, "''"), -(11591, 1, "''"), -(11591, 0, "'w'"), -(11592, 0, "'a'"), -(11593, 0, "'p'"), -(11594, 0, "'p'"), -(11595, 0, "'i'"), -(11596, 0, "'n'"), -(11597, 0, "'g'"), -(11598, 0, "' '"), -(11599, 0, "'o'"), -(11600, 0, "'u'"), -(11601, 0, "'t'"), -(11602, 0, "' '"), -(11603, 0, "'y'"), -(11604, 0, "'o'"), -(11605, 0, "'u'"), -(11606, 0, "'r'"), -(11607, 0, "' '"), -(11608, 0, "'i'"), -(11609, 0, "'n'"), -(11610, 0, "'s'"), -(11611, 0, "'e'"), -(11612, 0, "'r'"), -(11613, 0, "'t'"), -(11614, 0, "'i'"), -(11615, 0, "'o'"), -(11616, 0, "'n'"), -(11644, 5, "' '"), -(11645, 0, "'d'"), -(11646, 0, "'o'"), -(11647, 0, "'e'"), -(11648, 0, "'s'"), -(11654, 1, "''"), -(11810, 17, "'I'"), -(11821, 0, "','"), -(11822, 0, "' '"), -(11823, 0, "'i'"), -(11824, 0, "'t'"), -(11825, 0, "'s'"), -(11826, 0, "' '"), -(11827, 0, "'r'"), -(11828, 0, "'e'"), -(11829, 0, "'a'"), -(11830, 0, "'l'"), -(11831, 0, "'l'"), -(11832, 0, "'y'"), -(11833, 0, "' '"), -(11834, 0, "'f'"), -(11835, 0, "'a'"), -(11836, 0, "'s'"), -(11837, 0, "'t'"), -(11810, 0, "'S'"), -(11811, 0, "'o'"), -(11812, 0, "' '"), -(11813, 1, "''"), -(11813, 0, "'i'"), -(11824, 1, "' '"), -(11824, 1, "''"), -(11989, 0, "' '"), -(11990, 0, "'('"), -(11991, 0, "'T'"), -(11992, 0, "'M'"), -(11993, 0, "')'"), -(12097, 46, "''"), -(11194, 10, "'b'"), -(11195, 0, "'e'"), -(11196, 0, "'t'"), -(11197, 0, "'t'"), -(11198, 0, "'e'"), -(11199, 0, "'r'"), -(11200, 0, "' '"), -(11220, 0, "' '"), -(11177, 0, "'This approach is better for lots of reasons :n'"), -(11177, 46, "''"), -(11220, 1, "''"), -(11200, 1, "''"), -(11194, 6, "'beautiful '"), -(12097, 0, "' We implement a list CRDT with a list. Genius!'"), -(12097, 46, "''"), -(11194, 10, "'better'"), -(11200, 0, "' '"), -(11220, 0, "' '"), -(11177, 0, "'This approach is better for lots of reasons :n'"), -(11177, 46, "''"), -(11221, 0, "' We implement a list CRDT with a list. Genius!'"), -(11221, 46, "''"), -(11220, 1, "''"), -(11176, 0, "'n'"), -(11177, 0, "' We implement a list CRDT with a list. Genius!'"), -(11178, 1, "''"), -(11177, 1, "''"), -(11177, 0, "'W'"), -(11177, 0, "'I'"), -(11178, 0, "'n'"), -(11179, 0, "' '"), -(11180, 0, "'s'"), -(11181, 0, "'h'"), -(11182, 0, "'o'"), -(11183, 0, "'r'"), -(11184, 0, "'t'"), -(11177, 8, "''"), -(11222, 0, "'n'"), -(10831, 4, "''"), -(10814, 5, "''"), -(10826, 0, "'l'"), -(10827, 0, "'i'"), -(10828, 0, "'k'"), -(10829, 0, "'e'"), -(10895, 70, "''"), -(10895, 0, "'y'"), -(10896, 0, "'o'"), -(10897, 0, "'u'"), -(10898, 0, "' '"), -(10899, 0, "'c'"), -(10900, 0, "'a'"), -(10901, 0, "'n'"), -(10902, 0, "' '"), -(10903, 0, "'d'"), -(10904, 0, "'o'"), -(10905, 0, "' '"), -(10906, 0, "'t'"), -(10907, 0, "'h'"), -(10908, 0, "'e'"), -(10909, 0, "' '"), -(10910, 0, "'w'"), -(10911, 0, "'h'"), -(10912, 0, "'o'"), -(10913, 0, "'e'"), -(10914, 0, "'l'"), -(10915, 0, "' '"), -(10915, 1, "''"), -(10914, 1, "''"), -(10913, 1, "''"), -(10913, 0, "'l'"), -(10914, 0, "'e'"), -(10915, 0, "' '"), -(10916, 0, "'t'"), -(10917, 0, "'h'"), -(10918, 0, "'i'"), -(10919, 0, "'n'"), -(10920, 0, "'g'"), -(10921, 0, "' '"), -(10922, 0, "'i'"), -(10923, 0, "'n'"), -(10924, 0, "' '"), -(10925, 0, "'a'"), -(10926, 0, "'b'"), -(10927, 0, "'o'"), -(10928, 0, "'u'"), -(10929, 0, "'t'"), -(10930, 0, "' '"), -(11003, 21, "''"), -(11117, 45, "''"), -(10728, 0, "' '"), -(10729, 0, "'We implement a list CRDT with a list. Genius!'"), -(10731, 0, "'''"), -(10732, 0, "'r'"), -(10733, 0, "'e'"), -(10744, 0, "'i'"), -(10745, 0, "'n'"), -(10746, 0, "'g'"), -(11169, 1, "''"), -(11168, 1, "''"), -(12085, 1, "''"), -(12085, 0, "' '"), -(12086, 0, "'-'"), -(12087, 0, "' '"), -(12088, 0, "'w'"), -(12088, 1, "''"), -(12087, 1, "''"), -(12086, 1, "''"), -(12085, 1, "''"), -(12085, 0, "'.'"), -(12086, 0, "' '"), -(12087, 0, "'M'"), -(12088, 0, "'o'"), -(12089, 0, "'v'"), -(12090, 0, "'i'"), -(12091, 0, "'n'"), -(12092, 0, "'g'"), -(12093, 0, "' '"), -(12094, 0, "'t'"), -(12095, 0, "'h'"), -(12096, 0, "'e'"), -(12097, 0, "' '"), -(12098, 0, "'f'"), -(12099, 0, "'r'"), -(12100, 0, "'o'"), -(12101, 0, "'n'"), -(12102, 0, "'t'"), -(12103, 0, "'e'"), -(12104, 0, "'i'"), -(12105, 0, "'r'"), -(12085, 1, "''"), -(12085, 0, "','"), -(12086, 0, "' '"), -(12087, 0, "'w'"), -(12088, 0, "'h'"), -(12089, 0, "'i'"), -(12090, 0, "'c'"), -(12091, 0, "'h'"), -(12092, 0, "' '"), -(12093, 0, "'i'"), -(12094, 0, "'s'"), -(12095, 0, "' '"), -(12096, 0, "'t'"), -(12097, 0, "'h'"), -(12098, 0, "'e'"), -(12099, 0, "' '"), -(12100, 20, "''"), -(12100, 0, "'k'"), -(12101, 0, "'i'"), -(12102, 0, "'n'"), -(12103, 0, "'d'"), -(12104, 0, "' '"), -(12105, 0, "'o'"), -(12106, 0, "'f'"), -(12107, 0, "' '"), -(12108, 0, "'i'"), -(12109, 0, "'d'"), -(12110, 0, "'e'"), -(12111, 0, "'a'"), -(12112, 0, "' '"), -(12113, 0, "'t'"), -(12114, 0, "'h'"), -(12115, 0, "'a'"), -(12116, 0, "'t'"), -(12117, 0, "' '"), -(12118, 0, "'m'"), -(12119, 0, "'a'"), -(12120, 0, "'k'"), -(12121, 0, "'e'"), -(12122, 0, "'s'"), -(12123, 0, "' '"), -(12124, 0, "'y'"), -(12125, 0, "'o'"), -(12126, 0, "'u'"), -(12085, 42, "' '"), -(12085, 1, "''"), -(12085, 0, "'.'"), -(12086, 0, "' '"), -(12087, 0, "'T'"), -(12088, 0, "'h'"), -(12089, 0, "'e'"), -(12090, 0, "'s'"), -(12091, 0, "'e'"), -(12092, 0, "' '"), -(12093, 0, "'i'"), -(12094, 0, "'d'"), -(12095, 0, "'a'"), -(12096, 0, "'e'"), -(12096, 1, "''"), -(12095, 1, "''"), -(12087, 8, "'I'"), -(12088, 0, "'d'"), -(12089, 0, "'e'"), -(12090, 0, "'a'"), -(12091, 0, "'s'"), -(12092, 0, "' '"), -(12093, 0, "'w'"), -(12094, 0, "'h'"), -(12095, 0, "'i'"), -(12096, 0, "'c'"), -(12097, 0, "'h'"), -(12098, 0, "' '"), -(12099, 0, "'d'"), -(12100, 0, "'o'"), -(12101, 0, "' '"), -(12102, 0, "'t'"), -(12103, 0, "'h'"), -(12104, 0, "'i'"), -(12105, 0, "'s'"), -(12106, 0, "' '"), -(12107, 0, "'a'"), -(12108, 0, "'r'"), -(12109, 0, "'e'"), -(12110, 0, "' '"), -(12111, 0, "'g'"), -(12112, 0, "'o'"), -(12113, 0, "'l'"), -(12114, 0, "'d'"), -(12115, 0, "'e'"), -(12116, 0, "'n'"), -(12117, 0, "'.'"), -(12111, 0, "'t'"), -(12112, 0, "'r'"), -(12113, 0, "'u'"), -(12114, 0, "'l'"), -(12115, 0, "'y'"), -(12116, 0, "' '"), -(12110, 0, "' '"), -(12111, 0, "'r'"), -(12112, 0, "'a'"), -(12113, 0, "'r'"), -(12114, 0, "'e'"), -(12115, 0, "' '"), -(12116, 0, "'a'"), -(12117, 0, "'n'"), -(12118, 0, "'d'"), -(12119, 6, "''"), -(12119, 0, "' truly'"), -(12134, 0, "'n'"), -(12135, 0, "'n'"), -(12135, 0, "'I'"), -(12136, 0, "'''"), -(12136, 1, "''"), -(12136, 0, "' '"), -(12135, 2, "'I'"), -(11396, 220, "''"), -(11395, 1, "''"), -(11395, 0, "','"), -(11396, 0, "' '"), -(11397, 0, "'i'"), -(11398, 0, "'f'"), -(11399, 0, "' '"), -(11400, 0, "'y'"), -(11401, 0, "'o'"), -(11402, 0, "'u'"), -(11403, 0, "' '"), -(11404, 0, "'w'"), -(11405, 0, "'a'"), -(11406, 0, "'n'"), -(11407, 0, "'t'"), -(11408, 0, "' '"), -(11409, 0, "'t'"), -(11410, 0, "'o'"), -(11411, 0, "'.'"), -(11932, 0, "' '"), -(11933, 0, "'m'"), -(11934, 0, "'a'"), -(11935, 0, "'d'"), -(11936, 0, "'e'"), -(11932, 5, "''"), -(11408, 4, "''"), -(11403, 5, "''"), -(11399, 4, "''"), -(11396, 3, "''"), -(11395, 1, "''"), -(11395, 0, "','"), -(11396, 0, "' if'"), -(11399, 0, "' you'"), -(11403, 0, "' want'"), -(11408, 0, "' to.'"), -(11932, 0, "' made'"), -(11000, 0, "'n'"), -(11001, 0, "'n'"), -(11002, 0, "'n'"), -(11002, 1, "''"), -(11001, 1, "''"), -(11000, 1, "''"), -(10781, 0, "'n'"), -(10781, 0, "'n'"), -(10782, 0, "'I'"), -(10783, 0, "'n'"), -(10784, 0, "' '"), -(10785, 0, "'a'"), -(10786, 0, "'n'"), -(10787, 0, "' '"), -(10788, 0, "'e'"), -(10789, 0, "'f'"), -(10790, 0, "'f'"), -(10782, 9, "'I'"), -(10783, 0, "' '"), -(10784, 0, "'i'"), -(10785, 0, "'m'"), -(10786, 0, "'p'"), -(10787, 0, "'l'"), -(10788, 0, "'e'"), -(10789, 0, "'m'"), -(10790, 0, "'e'"), -(10791, 0, "'n'"), -(10792, 0, "'t'"), -(10793, 0, "'e'"), -(10794, 0, "'d'"), -(10795, 0, "' '"), -(10796, 0, "'b'"), -(10797, 0, "'o'"), -(10798, 0, "'t'"), -(10799, 0, "'h'"), -(10800, 0, "' '"), -(10801, 0, "'Y'"), -(10802, 0, "'j'"), -(10803, 0, "'s'"), -(10804, 0, "' '"), -(10805, 0, "'a'"), -(10806, 0, "'n'"), -(10807, 0, "'d'"), -(10808, 0, "' '"), -(10809, 0, "'A'"), -(10810, 0, "'u'"), -(10811, 0, "'t'"), -(10812, 0, "'o'"), -(10813, 0, "'m'"), -(10814, 0, "'e'"), -(10815, 0, "'r'"), -(10816, 0, "'g'"), -(10817, 0, "'e'"), -(10818, 0, "' '"), -(10819, 0, "'m'"), -(10820, 0, "'y'"), -(10821, 0, "'s'"), -(10822, 0, "'e'"), -(10823, 0, "'l'"), -(10824, 0, "'f'"), -(10825, 0, "' '"), -(10826, 0, "'u'"), -(10827, 0, "'s'"), -(10828, 0, "'i'"), -(10829, 0, "'n'"), -(10830, 0, "'g'"), -(10831, 0, "' '"), -(10832, 0, "'t'"), -(10833, 0, "'h'"), -(10834, 0, "'i'"), -(10835, 0, "'s'"), -(10836, 0, "' '"), -(10837, 0, "'a'"), -(10838, 0, "'p'"), -(10839, 0, "'p'"), -(10840, 0, "'r'"), -(10841, 0, "'o'"), -(10842, 0, "'a'"), -(10843, 0, "'c'"), -(10844, 0, "'h'"), -(10845, 0, "' '"), -(10846, 0, "'i'"), -(10847, 0, "'n'"), -(10848, 0, "' '"), -(10849, 0, "'a'"), -(10850, 0, "' '"), -(10851, 0, "'t'"), -(10852, 0, "'o'"), -(10853, 0, "'y'"), -(10854, 0, "' '"), -(10855, 0, "'C'"), -(10856, 0, "'R'"), -(10857, 0, "'D'"), -(10858, 0, "'T'"), -(10859, 0, "' '"), -(10855, 5, "'c'"), -(10856, 0, "'o'"), -(10857, 0, "'d'"), -(10858, 0, "'e'"), -(10859, 0, "'b'"), -(10860, 0, "'a'"), -(10861, 0, "'s'"), -(10862, 0, "'e'"), -(10863, 0, "','"), -(10864, 0, "' '"), -(10865, 0, "'s'"), -(10866, 0, "'o'"), -(10867, 0, "' '"), -(10868, 0, "'I'"), -(10869, 0, "' '"), -(10870, 0, "'c'"), -(10871, 0, "'o'"), -(10872, 0, "'u'"), -(10873, 0, "'l'"), -(10874, 0, "'d'"), -(10875, 0, "' '"), -(10876, 0, "'u'"), -(10877, 0, "'n'"), -(10878, 0, "'d'"), -(10879, 0, "'e'"), -(10880, 0, "'r'"), -(10881, 0, "'s'"), -(10882, 0, "'t'"), -(10883, 0, "'a'"), -(10884, 0, "'n'"), -(10885, 0, "'d'"), -(10865, 21, "' '"), -(10865, 1, "''"), -(10865, 0, "'t'"), -(10866, 0, "'o'"), -(10867, 0, "' '"), -(10868, 0, "'p'"), -(10869, 0, "'r'"), -(10870, 0, "'o'"), -(10871, 0, "'v'"), -(10872, 0, "'e'"), -(10873, 0, "' '"), -(10874, 0, "'I'"), -(10875, 0, "' '"), -(10876, 0, "'c'"), -(10877, 0, "'o'"), -(10878, 0, "'u'"), -(10879, 0, "'l'"), -(10880, 0, "'d'"), -(10845, 36, "''"), -(10845, 0, "'.'"), -(10846, 0, "' '"), -(10847, 0, "'T'"), -(10848, 0, "'h'"), -(10849, 0, "'e'"), -(10850, 0, "' '"), -(10851, 0, "'c'"), -(10852, 0, "'o'"), -(10853, 0, "'d'"), -(10854, 0, "'e'"), -(10851, 0, "'['"), -(10856, 0, "' '"), -(10857, 0, "'i'"), -(10858, 0, "'s'"), -(10859, 0, "' '"), -(10860, 0, "'h'"), -(10861, 0, "'e'"), -(10862, 0, "'r'"), -(10863, 0, "'e'"), -(10864, 0, "']'"), -(10865, 0, "'('"), -(10866, 0, "'https://github.com/josephg/reference-crdts'"), -(10908, 0, "')'"), -(10860, 0, "'a'"), -(10861, 0, "'l'"), -(10862, 0, "'l'"), -(10863, 0, "' '"), -(10913, 0, "' '"), -(10914, 0, "'i'"), -(10915, 0, "'f'"), -(10916, 0, "' '"), -(10917, 0, "'y'"), -(10918, 0, "'o'"), -(10919, 0, "'u'"), -(10920, 0, "' '"), -(10921, 0, "'w'"), -(10922, 0, "'a'"), -(10923, 0, "'n'"), -(10924, 0, "'t'"), -(10925, 0, "' '"), -(10926, 0, "'t'"), -(10927, 0, "'o'"), -(10928, 0, "' '"), -(10870, 42, "'https://github.com/josephg/reference-crdts/blob/main/crdts.ts'"), -(10948, 0, "'f'"), -(10949, 0, "'i'"), -(10950, 0, "'g'"), -(10951, 0, "'u'"), -(10952, 0, "'r'"), -(10953, 0, "'e'"), -(10954, 0, "' '"), -(10955, 0, "'t'"), -(10956, 0, "'h'"), -(10957, 0, "'i'"), -(10958, 0, "'s'"), -(10959, 0, "' '"), -(10960, 0, "'o'"), -(10961, 0, "'u'"), -(10962, 0, "'t'"), -(10963, 0, "' '"), -(10964, 0, "'i'"), -(10965, 0, "'n'"), -(10966, 0, "' '"), -(10967, 0, "'m'"), -(10948, 20, "'u'"), -(10949, 0, "'n'"), -(10950, 0, "'d'"), -(10951, 0, "'e'"), -(10952, 0, "'r'"), -(10953, 0, "'s'"), -(10954, 0, "'t'"), -(10955, 0, "'a'"), -(10956, 0, "'n'"), -(10957, 0, "' '"), -(10957, 1, "''"), -(10957, 0, "'d'"), -(10958, 0, "' '"), -(10959, 0, "'t'"), -(10960, 0, "'h'"), -(10961, 0, "'i'"), -(10962, 0, "'s'"), -(10963, 0, "' '"), -(10964, 0, "'i'"), -(10965, 0, "'n'"), -(10966, 0, "' '"), -(10967, 0, "'m'"), -(10968, 0, "'o'"), -(10969, 0, "'r'"), -(10970, 0, "'e'"), -(10971, 0, "' '"), -(10972, 0, "'d'"), -(10973, 0, "'e'"), -(10974, 0, "'t'"), -(10975, 0, "'a'"), -(10976, 0, "'i'"), -(10977, 0, "'l'"), -(10978, 0, "'.'"), -(11199, 1, "''"), -(11199, 0, "'n'"), -(11200, 0, "'n'"), -(11201, 0, "'n'"), -(10979, 1, "''"), -(10782, 0, "'n'"), -(10980, 219, "''"), -(10783, 0, "'It sounds complicated - how do you figure out where the new item should go? But its complicated like *math* is complicated. Its hard to understand, but when you do, you can do the whole thing in about 20 lines of code.n'"), -(11199, 1, "''"), -(11002, 0, "'n'"), -(10781, 1, "''"), -(11199, 1, "''"), -(11199, 1, "''"), -(11199, 0, "' '"), -(11366, 0, "' '"), -(11367, 0, "'B'"), -(11368, 0, "'o'"), -(11369, 0, "'t'"), -(11370, 0, "'h'"), -(11371, 0, "' '"), -(11371, 1, "''"), -(11370, 1, "''"), -(11369, 1, "''"), -(11368, 1, "''"), -(11367, 1, "''"), -(11366, 1, "''"), -(11366, 0, "' '"), -(11367, 0, "'C'"), -(11367, 1, "''"), -(11367, 0, "'A'"), -(11368, 0, "'u'"), -(11369, 0, "'t'"), -(11370, 0, "'o'"), -(11371, 0, "'m'"), -(11372, 0, "'e'"), -(11373, 0, "'r'"), -(11367, 7, "'I'"), -(11368, 0, "'m'"), -(11369, 0, "'p'"), -(11370, 0, "'l'"), -(11371, 0, "'e'"), -(11372, 0, "'m'"), -(11373, 0, "'e'"), -(11374, 0, "'n'"), -(11375, 0, "'t'"), -(11376, 0, "'e'"), -(11377, 0, "'d'"), -(11378, 0, "' '"), -(11379, 0, "'l'"), -(11380, 0, "'i'"), -(11381, 0, "'k'"), -(11382, 0, "'e'"), -(11383, 0, "' '"), -(11384, 0, "'t'"), -(11385, 0, "'h'"), -(11386, 0, "'i'"), -(11387, 0, "'s'"), -(11388, 0, "','"), -(11389, 0, "' '"), -(11390, 0, "'a'"), -(11391, 0, "'l'"), -(11392, 0, "'l'"), -(11393, 0, "' '"), -(11394, 0, "'t'"), -(11395, 0, "'h'"), -(11396, 0, "'e'"), -(11397, 0, "' '"), -(11398, 0, "'e'"), -(11398, 1, "''"), -(11390, 8, "'t'"), -(11391, 0, "'h'"), -(11392, 0, "'e'"), -(11393, 0, "' '"), -(11394, 0, "'d'"), -(11395, 0, "'i'"), -(11396, 0, "'f'"), -(11397, 0, "'f'"), -(11398, 0, "'e'"), -(11399, 0, "'r'"), -(11400, 0, "'e'"), -(11401, 0, "'n'"), -(11402, 0, "'c'"), -(11403, 0, "'e'"), -(11404, 0, "' '"), -(11390, 15, "'t'"), -(11391, 0, "'h'"), -(11392, 0, "'e'"), -(11393, 0, "' '"), -(11394, 0, "'C'"), -(11395, 0, "'R'"), -(11396, 0, "'D'"), -(11397, 0, "'T'"), -(11398, 0, "' '"), -(11399, 0, "'s'"), -(11400, 0, "'e'"), -(11401, 0, "'m'"), -(11402, 0, "'a'"), -(11403, 0, "'n'"), -(11404, 0, "'t'"), -(11405, 0, "'i'"), -(11406, 0, "'c'"), -(11407, 0, "'s'"), -(11408, 0, "' '"), -(11390, 0, "'a'"), -(11391, 0, "'u'"), -(11392, 0, "'o'"), -(11393, 0, "'t'"), -(11393, 1, "''"), -(11392, 1, "''"), -(11392, 0, "'t'"), -(11393, 0, "'o'"), -(11394, 0, "'m'"), -(11395, 0, "'e'"), -(11396, 0, "'r'"), -(11397, 0, "'g'"), -(11398, 0, "'e'"), -(11399, 0, "' '"), -(11400, 0, "'a'"), -(11401, 0, "'n'"), -(11402, 0, "'d'"), -(11403, 0, "' '"), -(11404, 0, "'y'"), -(11405, 0, "'j'"), -(11406, 0, "'s'"), -(11407, 0, "'''"), -(11408, 0, "'s'"), -(11409, 0, "' '"), -(11410, 4, "''"), -(11425, 0, "'a'"), -(11426, 0, "'r'"), -(11427, 0, "'e'"), -(11428, 0, "' '"), -(11429, 0, "'i'"), -(11430, 0, "'d'"), -(11431, 0, "'e'"), -(11432, 0, "'n'"), -(11433, 0, "'t'"), -(11434, 0, "'i'"), -(11435, 0, "'c'"), -(11436, 0, "'a'"), -(11437, 0, "'l'"), -(11410, 28, "'p'"), -(11411, 0, "'e'"), -(11412, 0, "'r'"), -(11413, 0, "'f'"), -(11414, 0, "'o'"), -(11415, 0, "'r'"), -(11416, 0, "'m'"), -(11417, 0, "'a'"), -(11418, 0, "'n'"), -(11419, 0, "'c'"), -(11420, 0, "'e'"), -(11389, 0, "' '"), -(11390, 0, "'t'"), -(11391, 0, "'h'"), -(11392, 0, "'e'"), -(11393, 0, "' '"), -(11394, 0, "'p'"), -(11395, 0, "'e'"), -(11396, 0, "'r'"), -(11397, 0, "'f'"), -(11398, 0, "'o'"), -(11399, 0, "'r'"), -(11400, 0, "'m'"), -(11401, 0, "'a'"), -(11402, 0, "'n'"), -(11403, 0, "'c'"), -(11404, 0, "'e'"), -(11405, 0, "' '"), -(11406, 0, "'d'"), -(11407, 0, "'i'"), -(11408, 0, "'f'"), -(11409, 0, "'f'"), -(11410, 0, "'e'"), -(11411, 0, "'r'"), -(11412, 0, "'e'"), -(11413, 0, "'n'"), -(11414, 0, "'c'"), -(11415, 0, "'e'"), -(11416, 0, "'s'"), -(11417, 0, "' '"), -(11394, 24, "''"), -(11393, 1, "''"), -(11366, 59, "''"), -(12130, 6, "' Implemented like this, the automerge and yjs's performance'"), -(12130, 59, "'I made'"), -(12130, 6, "''"), -(12129, 1, "''"), -(12129, 0, "'n'"), -(12690, 5, "''"), -(12724, 1, "''"), -(12724, 0, "' '"), -(12725, 0, "'t'"), -(12726, 0, "'o'"), -(12727, 0, "'o'"), -(12728, 0, "'.'"), -(12130, 0, "'B'"), -(12130, 1, "''"), -(12130, 0, "'I'"), -(12131, 0, "'n'"), -(12132, 0, "' '"), -(12133, 0, "'t'"), -(12134, 0, "'h'"), -(12135, 0, "'i'"), -(12136, 0, "'s'"), -(12137, 0, "' '"), -(12138, 0, "'c'"), -(12139, 0, "'o'"), -(12140, 0, "'d'"), -(12141, 0, "'e'"), -(12142, 0, "'b'"), -(12143, 0, "'a'"), -(12144, 0, "'s'"), -(12145, 0, "'e'"), -(12146, 0, "' '"), -(12147, 0, "'I'"), -(12148, 0, "' '"), -(12149, 0, "'h'"), -(12150, 0, "'a'"), -(12151, 0, "'v'"), -(12152, 0, "'e'"), -(12153, 0, "' '"), -(12154, 0, "'a'"), -(12155, 0, "'n'"), -(12156, 0, "' '"), -(12157, 0, "'i'"), -(12158, 0, "'m'"), -(12159, 0, "'p'"), -(12160, 0, "'l'"), -(12161, 0, "'e'"), -(12162, 0, "'m'"), -(12163, 0, "'e'"), -(12164, 0, "'n'"), -(12165, 0, "'t'"), -(12166, 0, "'a'"), -(12167, 0, "'t'"), -(12168, 0, "'i'"), -(12169, 0, "'o'"), -(12170, 0, "'n'"), -(12171, 0, "' '"), -(12172, 0, "'o'"), -(12173, 0, "'f'"), -(12174, 0, "' '"), -(12175, 0, "'y'"), -(12176, 0, "'s'"), -(12176, 1, "''"), -(12175, 1, "''"), -(12175, 0, "'b'"), -(12176, 0, "'o'"), -(12177, 0, "'t'"), -(12178, 0, "'h'"), -(12179, 0, "' '"), -(12180, 0, "'R'"), -(12181, 0, "'G'"), -(12182, 0, "'A'"), -(12183, 0, "' '"), -(12184, 0, "'('"), -(12185, 0, "'a'"), -(12186, 0, "'u'"), -(12186, 1, "''"), -(12185, 1, "''"), -(12184, 1, "''"), -(12175, 0, "'t'"), -(12176, 0, "'h'"), -(12177, 0, "'e'"), -(12178, 0, "' '"), -(12179, 0, "'s'"), -(12180, 0, "'m'"), -(12181, 0, "'a'"), -(12181, 1, "''"), -(12180, 1, "''"), -(12180, 0, "'e'"), -(12181, 0, "'m'"), -(12182, 0, "'a'"), -(12183, 0, "'n'"), -(12184, 0, "'t'"), -(12185, 0, "'i'"), -(12186, 0, "'c'"), -(12187, 0, "'s'"), -(12188, 0, "' '"), -(12189, 0, "'o'"), -(12190, 0, "'f'"), -(12191, 0, "' '"), -(12201, 0, "'('"), -(12202, 0, "'a'"), -(12203, 0, "'u'"), -(12204, 0, "'t'"), -(12205, 0, "'o'"), -(12206, 0, "'m'"), -(12207, 0, "'e'"), -(12208, 0, "'r'"), -(12209, 0, "'g'"), -(12210, 0, "'e'"), -(12211, 0, "')'"), -(12212, 0, "' '"), -(12213, 0, "'a'"), -(12214, 0, "'n'"), -(12215, 0, "'d'"), -(12216, 0, "' '"), -(12217, 0, "'y'"), -(12218, 0, "'j'"), -(12219, 0, "'s'"), -(12220, 0, "' '"), -(12221, 0, "'('"), -(12221, 1, "''"), -(12220, 1, "''"), -(12219, 1, "''"), -(12218, 1, "''"), -(12217, 1, "''"), -(12217, 0, "'Y'"), -(12218, 0, "'A'"), -(12219, 0, "'T'"), -(12220, 0, "'A'"), -(12221, 0, "' '"), -(12222, 0, "'('"), -(12223, 0, "'j'"), -(12224, 0, "'s'"), -(12224, 1, "''"), -(12223, 1, "''"), -(12223, 0, "'y'"), -(12224, 0, "'j'"), -(12225, 0, "'s'"), -(12226, 0, "')'"), -(12227, 0, "'.'"), -(12228, 0, "' '"), -(12229, 0, "'B'"), -(12230, 0, "'u'"), -(12231, 0, "'t'"), -(12232, 0, "' '"), -(12229, 4, "'T'"), -(12230, 0, "'h'"), -(12231, 0, "'e'"), -(12232, 0, "'y'"), -(12233, 0, "' '"), -(12234, 0, "'h'"), -(12235, 0, "'a'"), -(12236, 0, "'v'"), -(12237, 0, "'e'"), -(12238, 0, "' '"), -(12239, 0, "'i'"), -(12240, 0, "'d'"), -(12241, 0, "'e'"), -(12242, 0, "'n'"), -(12243, 0, "'t'"), -(12244, 0, "'i'"), -(12245, 0, "'c'"), -(12246, 0, "'a'"), -(12247, 0, "'l'"), -(12248, 0, "' '"), -(12249, 0, "'p'"), -(12250, 0, "'e'"), -(12251, 0, "'r'"), -(12252, 0, "'f'"), -(12253, 0, "'o'"), -(12254, 0, "'r'"), -(12255, 0, "'m'"), -(12256, 0, "'a'"), -(12257, 0, "'n'"), -(12258, 0, "'c'"), -(12259, 0, "'e'"), -(12260, 0, "'.'"), -(12229, 0, "'B'"), -(12230, 0, "'u'"), -(12231, 0, "'t'"), -(12232, 0, "' '"), -(12233, 19, "''"), -(12233, 0, "'t'"), -(12234, 0, "'h'"), -(12235, 0, "'e'"), -(12248, 0, "' '"), -(12249, 0, "'i'"), -(12250, 0, "'s'"), -(12251, 0, "' '"), -(12252, 0, "'i'"), -(12253, 0, "'d'"), -(12254, 0, "'e'"), -(12255, 0, "'n'"), -(12256, 0, "'t'"), -(12257, 0, "'i'"), -(12258, 0, "'c'"), -(12259, 0, "'a'"), -(12260, 0, "'l'"), -(12261, 0, "' '"), -(12262, 0, "'a'"), -(12263, 0, "'n'"), -(12264, 0, "'y'"), -(12265, 0, "'w'"), -(12266, 0, "'a'"), -(12267, 0, "'y'"), -(12261, 7, "''"), -(12249, 0, "'i'"), -(12250, 0, "'n'"), -(12251, 0, "' '"), -(12252, 0, "'t'"), -(12253, 0, "'h'"), -(12254, 0, "'i'"), -(12255, 0, "'s'"), -(12256, 0, "' '"), -(12257, 0, "'t'"), -(12258, 0, "'e'"), -(12259, 0, "'s'"), -(12260, 0, "'t'"), -(12261, 0, "' '"), -(12277, 0, "'H'"), -(12278, 0, "'o'"), -(12279, 0, "'w'"), -(12280, 0, "' '"), -(12281, 0, "'f'"), -(12282, 0, "'a'"), -(12283, 0, "'s'"), -(12284, 0, "'t'"), -(12285, 0, "'?'"), -(12286, 0, "' '"), -(12277, 10, "''"), -(12990, 19, "''"), -(12990, 0, "'T'"), -(12991, 0, "'h'"), -(12992, 0, "'e'"), -(12993, 0, "'r'"), -(12994, 0, "'e'"), -(12995, 0, "' '"), -(12996, 0, "'a'"), -(12997, 0, "'r'"), -(12998, 0, "'e'"), -(12999, 0, "' '"), -(13000, 0, "'t'"), -(13001, 0, "'w'"), -(13002, 0, "'o'"), -(13040, 9, "'c'"), -(13041, 0, "'o'"), -(13042, 0, "'d'"), -(13043, 0, "'e'"), -(13122, 0, "'n'"), -(13123, 0, "'n'"), -(13124, 0, "'I'"), -(13125, 0, "'t'"), -(13126, 0, "'s'"), -(13127, 0, "' '"), -(13128, 0, "'t'"), -(13128, 1, "''"), -(13127, 1, "''"), -(13126, 1, "''"), -(13125, 1, "''"), -(13124, 1, "''"), -(13123, 1, "''"), -(13122, 1, "''"), -(13044, 0, "' '"), -(13045, 0, "'w'"), -(13046, 0, "'e'"), -(13047, 0, "' '"), -(13048, 0, "'n'"), -(13049, 0, "'e'"), -(13050, 0, "'e'"), -(13051, 0, "'d'"), -(13052, 0, "' '"), -(13053, 0, "'t'"), -(13054, 0, "'o'"), -(13055, 0, "' '"), -(13056, 0, "'f'"), -(13057, 0, "'i'"), -(13058, 0, "'x'"), -(13139, 0, "'L'"), -(13139, 1, "''"), -(13139, 0, "'L'"), -(13140, 0, "'e'"), -(13141, 0, "'t'"), -(13142, 0, "'s'"), -(13143, 0, "' '"), -(13144, 0, "'s'"), -(13145, 0, "'a'"), -(13146, 0, "'y'"), -(13147, 0, "' '"), -(13148, 1, "''"), -(13148, 0, "'w'"), -(13194, 33, "''"), -(13194, 0, "'S'"), -(13193, 45, "''"), -(13489, 0, "'n'"), -(13490, 0, "' Some of those items might have been deleted:'"), -(13490, 1, "''"), -(13490, 0, "'n'"), -(13491, 0, "'N'"), -(13492, 0, "'o'"), -(13493, 0, "'t'"), -(13494, 0, "'e'"), -(13495, 0, "' '"), -(13496, 0, "'t'"), -(13497, 0, "'h'"), -(13498, 0, "'a'"), -(13499, 0, "'t'"), -(13500, 0, "' '"), -(13501, 1, "''"), -(13501, 0, "'s'"), -(13544, 1, "''"), -(13544, 0, "','"), -(13545, 0, "' '"), -(13546, 0, "'s'"), -(13547, 0, "'o'"), -(13548, 0, "' '"), -(13549, 0, "'I'"), -(13550, 0, "'''"), -(13551, 0, "'v'"), -(13552, 0, "'e'"), -(13553, 0, "' '"), -(13554, 0, "'a'"), -(13555, 0, "'d'"), -(13556, 0, "'d'"), -(13557, 0, "'e'"), -(13558, 0, "'d'"), -(13559, 0, "' '"), -(13560, 0, "'a'"), -(13561, 0, "'n'"), -(13562, 0, "' '"), -(13563, 0, "'`'"), -(13564, 0, "'i'"), -(13565, 0, "'s'"), -(13566, 0, "'D'"), -(13567, 0, "'e'"), -(13568, 0, "'l'"), -(13569, 0, "'e'"), -(13570, 0, "'t'"), -(13571, 0, "'e'"), -(13572, 0, "'d'"), -(13573, 0, "'`'"), -(13574, 0, "' '"), -(13575, 0, "'f'"), -(13576, 0, "'l'"), -(13577, 0, "'a'"), -(13578, 0, "'g'"), -(13579, 0, "' '"), -(13580, 0, "'t'"), -(13581, 0, "'o'"), -(13582, 0, "' '"), -(13583, 0, "'m'"), -(13584, 0, "'a'"), -(13585, 0, "'r'"), -(13586, 0, "'k'"), -(13587, 0, "' '"), -(13588, 0, "'t'"), -(13589, 0, "'h'"), -(13590, 0, "'e'"), -(13591, 0, "'m'"), -(13592, 0, "' '"), -(13593, 0, "'s'"), -(13593, 1, "''"), -(13593, 0, "'a'"), -(13594, 0, "'s'"), -(13595, 0, "' '"), -(13596, 0, "'s'"), -(13597, 0, "'u'"), -(13598, 0, "'c'"), -(13599, 0, "'h'"), -(13600, 0, "'.'"), -(13579, 22, "'.'"), -(13579, 0, "' '"), -(13580, 0, "'t'"), -(13581, 0, "'o'"), -(13582, 0, "' '"), -(13583, 0, "'m'"), -(13584, 0, "'a'"), -(13585, 0, "'r'"), -(13586, 0, "'k'"), -(13587, 0, "' '"), -(13588, 0, "'w'"), -(13589, 0, "'h'"), -(13590, 0, "'i'"), -(13591, 0, "'c'"), -(13592, 0, "'h'"), -(13593, 0, "' '"), -(13594, 0, "'o'"), -(13595, 0, "'n'"), -(13596, 0, "'e'"), -(13597, 0, "'s'"), -(13599, 0, "' '"), -(13600, 0, "'W'"), -(13601, 0, "'e'"), -(13602, 0, "' '"), -(13603, 0, "'c'"), -(13604, 0, "'a'"), -(13605, 0, "'n'"), -(13606, 0, "'''"), -(13607, 0, "'t'"), -(13608, 0, "' '"), -(13609, 0, "'j'"), -(13610, 0, "'u'"), -(13611, 0, "'s'"), -(13612, 0, "'t'"), -(13613, 0, "' '"), -(13614, 0, "'r'"), -(13615, 0, "'e'"), -(13616, 0, "'m'"), -(13617, 0, "'o'"), -(13618, 0, "'v'"), -(13619, 0, "'e'"), -(13620, 0, "' '"), -(13621, 0, "'t'"), -(13622, 0, "'h'"), -(13623, 0, "'e'"), -(13624, 0, "'m'"), -(13625, 0, "' '"), -(13626, 0, "'f'"), -(13627, 0, "'r'"), -(13628, 0, "'o'"), -(13629, 0, "'m'"), -(13630, 0, "' '"), -(13631, 0, "'t'"), -(13632, 0, "'h'"), -(13633, 0, "'e'"), -(13634, 0, "' '"), -(13635, 0, "'a'"), -(13636, 0, "'r'"), -(13637, 0, "'r'"), -(13638, 0, "'a'"), -(13639, 0, "'y'"), -(13640, 0, "' '"), -(13641, 0, "'b'"), -(13642, 0, "'e'"), -(13643, 0, "'c'"), -(13644, 0, "'a'"), -(13645, 0, "'u'"), -(13646, 0, "'s'"), -(13647, 0, "'e'"), -(13648, 0, "' '"), -(13649, 0, "'o'"), -(13650, 0, "'t'"), -(13651, 0, "'h'"), -(13652, 0, "'e'"), -(13653, 0, "'r'"), -(13654, 0, "' '"), -(13655, 0, "'p'"), -(13656, 0, "'e'"), -(13657, 0, "'e'"), -(13658, 0, "'r'"), -(13659, 0, "'s'"), -(13660, 0, "' '"), -(13661, 0, "'m'"), -(13662, 0, "'i'"), -(13663, 0, "'g'"), -(13664, 0, "'h'"), -(13665, 0, "'t'"), -(13666, 0, "' '"), -(13667, 0, "'i'"), -(13668, 0, "'n'"), -(13669, 0, "'s'"), -(13670, 0, "'e'"), -(13671, 0, "'r'"), -(13672, 0, "'t'"), -(13673, 0, "' '"), -(13674, 0, "'a'"), -(13655, 20, "'i'"), -(13656, 0, "'n'"), -(13657, 0, "'s'"), -(13658, 0, "'e'"), -(13659, 0, "'r'"), -(13660, 0, "'t'"), -(13661, 0, "'s'"), -(13662, 0, "' '"), -(13663, 0, "'m'"), -(13664, 0, "'i'"), -(13665, 0, "'g'"), -(13666, 0, "'h'"), -(13667, 0, "'t'"), -(13668, 0, "' '"), -(13669, 0, "'d'"), -(13670, 0, "'e'"), -(13671, 0, "'p'"), -(13672, 0, "'e'"), -(13673, 0, "'n'"), -(13674, 0, "'d'"), -(13675, 0, "' '"), -(13676, 0, "'o'"), -(13677, 0, "'n'"), -(13678, 0, "' '"), -(13679, 0, "'t'"), -(13680, 0, "'h'"), -(13681, 0, "'e'"), -(13682, 0, "'m'"), -(13683, 0, "'.'"), -(13684, 0, "' '"), -(13685, 0, "'('"), -(13686, 0, "'O'"), -(13687, 0, "'o'"), -(13688, 0, "'p'"), -(13689, 0, "'s'"), -(13690, 0, "')'"), -(13690, 0, "'!'"), -(13686, 0, "'D'"), -(13687, 0, "'a'"), -(13688, 0, "'n'"), -(13689, 0, "'g'"), -(13690, 4, "''"), -(13692, 0, "'.'"), -(13693, 0, "' '"), -(13693, 1, "''"), -(13692, 1, "''"), -(13686, 4, "'D'"), -(13687, 0, "'r'"), -(13688, 0, "'a'"), -(13689, 0, "'t'"), -(13691, 0, "' '"), -(13692, 0, "'B'"), -(13693, 0, "'u'"), -(13694, 0, "'t'"), -(13695, 0, "' '"), -(13696, 0, "'l'"), -(13697, 0, "'e'"), -(13698, 0, "'t'"), -(13699, 0, "'s'"), -(13700, 0, "' '"), -(13701, 0, "'n'"), -(13702, 0, "'o'"), -(13703, 0, "'t'"), -(13704, 0, "' '"), -(13705, 0, "'w'"), -(13706, 0, "'o'"), -(13707, 0, "'r'"), -(13708, 0, "'r'"), -(13709, 0, "'y'"), -(13710, 0, "' '"), -(13711, 0, "'a'"), -(13712, 0, "'b'"), -(13713, 0, "'o'"), -(13714, 0, "'u'"), -(13715, 0, "'t'"), -(13716, 0, "' '"), -(13717, 0, "'t'"), -(13718, 0, "'h'"), -(13719, 0, "'a'"), -(13720, 0, "'t'"), -(13721, 0, "' '"), -(13722, 0, "'f'"), -(13723, 0, "'o'"), -(13724, 0, "'r'"), -(13725, 0, "' '"), -(13726, 0, "'n'"), -(13727, 0, "'o'"), -(13728, 0, "'w'"), -(13729, 0, "'.'"), -(13695, 6, "' '"), -(13696, 0, "'I'"), -(13697, 0, "'''"), -(13698, 0, "'m'"), -(13699, 0, "' '"), -(13721, 7, "'i'"), -(13722, 0, "'n'"), -(13723, 0, "' '"), -(13724, 0, "'t'"), -(13725, 0, "'h'"), -(13726, 0, "'i'"), -(13727, 0, "'s'"), -(13728, 0, "' '"), -(13729, 0, "'p'"), -(13730, 0, "'o'"), -(13731, 0, "'s'"), -(13732, 0, "'t'"), -(13491, 11, "'S'"), -(13873, 0, "' '"), -(13874, 0, "'i'"), -(13875, 0, "'n'"), -(13876, 0, "' '"), -(13877, 0, "'m'"), -(13878, 0, "'y'"), -(13879, 0, "' '"), -(13880, 0, "'a'"), -(13881, 0, "'r'"), -(13882, 0, "'r'"), -(13883, 0, "'a'"), -(13884, 0, "'y'"), -(13753, 1, "''"), -(13753, 0, "'5'"), -(13771, 0, "'.'"), -(13772, 0, "' '"), -(13773, 0, "'M'"), -(13773, 1, "''"), -(13772, 1, "''"), -(13771, 1, "''"), -(13771, 0, "','"), -(13772, 0, "' '"), -(13773, 0, "'r'"), -(13774, 0, "'e'"), -(13775, 0, "'p'"), -(13776, 0, "'r'"), -(13777, 0, "'e'"), -(13778, 0, "'s'"), -(13779, 0, "'e'"), -(13780, 0, "'n'"), -(13781, 0, "'t'"), -(13782, 0, "'i'"), -(13783, 0, "'n'"), -(13784, 0, "'g'"), -(13785, 0, "' '"), -(13786, 0, "'1'"), -(13787, 0, "'0'"), -(13788, 0, "'0'"), -(13789, 0, "' '"), -(13790, 0, "'0'"), -(13791, 0, "'0'"), -(13792, 0, "' '"), -(13792, 1, "''"), -(13792, 0, "'0'"), -(13793, 0, "' '"), -(13794, 0, "'i'"), -(13795, 0, "'t'"), -(13796, 0, "'e'"), -(13797, 0, "'m'"), -(13798, 0, "'s'"), -(13799, 0, "' '"), -(13800, 0, "'w'"), -(13801, 0, "'h'"), -(13802, 0, "'i'"), -(13803, 0, "'c'"), -(13804, 0, "'h'"), -(13805, 0, "' '"), -(13806, 0, "'h'"), -(13807, 0, "'a'"), -(13808, 0, "'v'"), -(13809, 0, "'e'"), -(13810, 0, "'n'"), -(13811, 0, "'''"), -(13812, 0, "'t'"), -(13813, 0, "' '"), -(13814, 0, "'b'"), -(13815, 0, "'e'"), -(13816, 0, "'e'"), -(13817, 0, "'n'"), -(13818, 0, "' '"), -(13819, 0, "'d'"), -(13820, 0, "'e'"), -(13821, 0, "'l'"), -(13822, 0, "'e'"), -(13823, 0, "'t'"), -(13824, 0, "'e'"), -(13825, 0, "'d'"), -(13826, 0, "'.'"), -(13827, 5, "''"), -(13759, 0, "' '"), -(13760, 0, "'a'"), -(13761, 0, "'r'"), -(13762, 0, "'r'"), -(13763, 0, "'a'"), -(13764, 0, "'y'"), -(13800, 5, "'c'"), -(13801, 0, "'h'"), -(13802, 0, "'a'"), -(13803, 0, "'r'"), -(13804, 0, "'a'"), -(13805, 0, "'c'"), -(13806, 0, "'t'"), -(13807, 0, "'e'"), -(13808, 0, "'r'"), -(13809, 0, "'s'"), -(13839, 1, "'I'"), -(13840, 0, "'f'"), -(13841, 0, "' '"), -(13842, 0, "'t'"), -(13898, 0, "'d'"), -(13899, 0, "'o'"), -(13900, 0, "'c'"), -(13901, 0, "'u'"), -(13902, 0, "'m'"), -(13903, 0, "'e'"), -(13904, 0, "'n'"), -(13905, 0, "'t'"), -(13906, 0, "' '"), -(13898, 0, "'*'"), -(13916, 0, "'*'"), -(13925, 1, "''"), -(13925, 0, "','"), -(13927, 1, "''"), -(13927, 0, "'w'"), -(13932, 9, "''"), -(13945, 1, "''"), -(13944, 1, "''"), -(13944, 0, "'o'"), -(13945, 0, "'u'"), -(13946, 0, "'r'"), -(13947, 0, "' '"), -(13948, 0, "'d'"), -(13949, 0, "'o'"), -(13950, 0, "'c'"), -(13951, 0, "'u'"), -(13952, 0, "'m'"), -(13953, 0, "'e'"), -(13954, 0, "'n'"), -(13955, 0, "'t'"), -(13948, 8, "''"), -(13947, 1, "''"), -(13955, 0, "'T'"), -(13956, 0, "'o'"), -(13957, 0, "' '"), -(13958, 0, "'f'"), -(13959, 0, "'i'"), -(13960, 0, "'n'"), -(13961, 0, "'d'"), -(13962, 0, "' '"), -(13963, 0, "'o'"), -(13964, 0, "'u'"), -(13965, 0, "'t'"), -(13966, 0, "','"), -(13967, 0, "' '"), -(13968, 1, "''"), -(13968, 0, "'w'"), -(13972, 1, "''"), -(13971, 1, "''"), -(13970, 1, "''"), -(14043, 24, "' '"), -(14044, 0, "'t'"), -(14045, 0, "'h'"), -(14046, 0, "'e'"), -(14047, 0, "' '"), -(14048, 0, "'r'"), -(14049, 0, "'i'"), -(14050, 0, "'g'"), -(14051, 0, "'h'"), -(14052, 0, "'t'"), -(14053, 0, "' '"), -(14054, 0, "'a'"), -(14055, 0, "'r'"), -(14056, 0, "'r'"), -(14057, 0, "'a'"), -(14058, 0, "'y'"), -(14059, 0, "' '"), -(14060, 0, "'l'"), -(14061, 0, "'o'"), -(14062, 0, "'c'"), -(14063, 0, "'a'"), -(14064, 0, "'t'"), -(14065, 0, "'i'"), -(14066, 0, "'o'"), -(14067, 0, "'n'"), -(14069, 91, "''"), -(14071, 0, "'S'"), -(14072, 0, "'o'"), -(14073, 0, "' '"), -(14074, 1, "''"), -(14074, 0, "'i'"), -(14147, 5, "''"), -(14146, 1, "''"), -(14160, 0, "'o'"), -(14161, 0, "'r'"), -(14162, 0, "' '"), -(14163, 0, "'s'"), -(14164, 0, "'o'"), -(14165, 0, "'m'"), -(14166, 0, "'e'"), -(14167, 0, "'t'"), -(14168, 0, "'h'"), -(14169, 0, "'i'"), -(14170, 0, "'n'"), -(14171, 0, "'g'"), -(14172, 0, "' '"), -(14262, 0, "','"), -(14263, 0, "' '"), -(14264, 0, "'w'"), -(14265, 0, "'h'"), -(14266, 0, "'i'"), -(14267, 0, "'c'"), -(14268, 0, "'h'"), -(14269, 0, "' '"), -(14270, 0, "'i'"), -(14271, 0, "'s'"), -(14272, 0, "' '"), -(14273, 0, "'d'"), -(14274, 0, "'o'"), -(14275, 0, "'u'"), -(14276, 0, "'b'"), -(14277, 0, "'l'"), -(14278, 0, "'e'"), -(14279, 0, "' '"), -(14280, 0, "'y'"), -(14281, 0, "'i'"), -(14282, 0, "'k'"), -(14283, 0, "'e'"), -(14284, 0, "'s'"), -(14347, 14, "''"), -(14375, 1, "''"), -(14375, 0, "'5'"), -(14983, 19, "''"), -(14983, 1, "''"), -(14983, 0, "'I'"), -(15691, 23, "''"), -(15690, 1, "''"), -(15690, 4, "''"), -(15694, 0, "' '"), -(15695, 0, "'e'"), -(15696, 0, "'x'"), -(15697, 0, "'t'"), -(15698, 0, "'r'"), -(15699, 0, "'a'"), -(15700, 0, "' '"), -(15701, 0, "'o'"), -(15702, 0, "'p'"), -(15703, 0, "'t'"), -(15704, 0, "'i'"), -(15705, 0, "'m'"), -(15706, 0, "'i'"), -(15707, 0, "'z'"), -(15708, 0, "'a'"), -(15709, 0, "'t'"), -(15710, 0, "'o'"), -(15711, 0, "'i'"), -(15712, 0, "'n'"), -(15713, 11, "''"), -(15712, 1, "''"), -(15711, 1, "''"), -(15710, 1, "''"), -(15710, 0, "'i'"), -(15711, 0, "'o'"), -(15712, 0, "'n'"), -(15713, 0, "' '"), -(15714, 0, "'h'"), -(15715, 0, "'e'"), -(15716, 0, "'r'"), -(15717, 0, "'e'"), -(15685, 5, "' '"), -(15686, 0, "'d'"), -(15687, 0, "'o'"), -(15688, 0, "'e'"), -(15689, 0, "'s'"), -(15720, 0, "'B'"), -(15721, 0, "'e'"), -(15722, 0, "'c'"), -(15723, 0, "'a'"), -(15724, 0, "'u'"), -(15725, 0, "'s'"), -(15726, 0, "'e'"), -(15727, 0, "' '"), -(15728, 1, "''"), -(15728, 0, "'h'"), -(15761, 1, "''"), -(15761, 0, "','"), -(15763, 1, "''"), -(15763, 0, "'i'"), -(15763, 4, "'w'"), -(15764, 0, "'h'"), -(15765, 0, "'e'"), -(15766, 0, "'n'"), -(15767, 0, "' '"), -(15768, 0, "'w'"), -(15769, 0, "'e'"), -(15783, 0, "' '"), -(15784, 0, "'i'"), -(15785, 0, "'n'"), -(15786, 0, "' '"), -(15787, 0, "'a'"), -(15788, 0, "' '"), -(15789, 0, "'d'"), -(15790, 0, "'o'"), -(15791, 0, "'c'"), -(15792, 0, "'u'"), -(15793, 0, "'m'"), -(15794, 0, "'e'"), -(15795, 0, "'n'"), -(15796, 0, "'t'"), -(16409, 0, "'n'"), -(16410, 0, "'n'"), -(16411, 0, "'S'"), -(16412, 0, "'e'"), -(16413, 0, "'m'"), -(16414, 0, "'a'"), -(16415, 0, "'n'"), -(16416, 0, "'t'"), -(16417, 0, "'i'"), -(16418, 0, "'c'"), -(16419, 0, "'a'"), -(16420, 0, "'l'"), -(16421, 0, "'l'"), -(16422, 0, "'y'"), -(16423, 0, "' '"), -(16424, 0, "'t'"), -(16425, 0, "'h'"), -(16426, 0, "'i'"), -(16427, 0, "'s'"), -(16428, 0, "' '"), -(16429, 0, "'i'"), -(16430, 0, "'s'"), -(16431, 0, "' '"), -(16432, 0, "'t'"), -(16433, 0, "'h'"), -(16434, 0, "'e'"), -(16435, 0, "' '"), -(16436, 0, "'s'"), -(16436, 1, "''"), -(16435, 1, "''"), -(16434, 1, "''"), -(16433, 1, "''"), -(16432, 1, "''"), -(16432, 0, "'e'"), -(16433, 0, "'q'"), -(16434, 0, "'u'"), -(16435, 0, "'i'"), -(16436, 0, "'v'"), -(16437, 0, "'a'"), -(16438, 0, "'l'"), -(16439, 0, "'e'"), -(16440, 0, "'n'"), -(16441, 0, "'t'"), -(16442, 0, "' '"), -(16443, 0, "'t'"), -(16444, 0, "'o'"), -(16445, 0, "' '"), -(16446, 0, "'t'"), -(16447, 0, "'h'"), -(16448, 0, "'e'"), -(16449, 0, "' '"), -(16450, 0, "'e'"), -(16451, 0, "'x'"), -(16452, 0, "'p'"), -(16453, 0, "'a'"), -(16454, 0, "'n'"), -(16455, 0, "'d'"), -(16456, 0, "'e'"), -(16457, 0, "'d'"), -(16458, 0, "' '"), -(16459, 0, "'v'"), -(16460, 0, "'e'"), -(16461, 0, "'r'"), -(16462, 0, "'s'"), -(16463, 0, "'i'"), -(16464, 0, "'o'"), -(16465, 0, "'n'"), -(16466, 0, "' '"), -(16467, 0, "'a'"), -(16468, 0, "'b'"), -(16469, 0, "'o'"), -(16470, 0, "'v'"), -(16471, 0, "'e'"), -(16472, 0, "' '"), -(16473, 0, "'-'"), -(16474, 0, "' '"), -(16475, 0, "'b'"), -(16476, 0, "'u'"), -(16477, 0, "'t'"), -(16478, 0, "' '"), -(16479, 0, "'t'"), -(16480, 0, "'h'"), -(16481, 0, "'e'"), -(16482, 0, "' '"), -(16483, 0, "'p'"), -(16483, 1, "''"), -(16483, 0, "'i'"), -(16484, 0, "'d'"), -(16485, 0, "','"), -(16486, 0, "' '"), -(16487, 0, "'s'"), -(16488, 0, "'e'"), -(16489, 0, "'q'"), -(16490, 0, "' '"), -(16491, 0, "'a'"), -(16492, 0, "'n'"), -(16493, 0, "'d'"), -(16494, 0, "' '"), -(16495, 0, "'p'"), -(16496, 0, "'a'"), -(16497, 0, "'r'"), -(16498, 0, "'e'"), -(16499, 0, "'n'"), -(16500, 0, "'t'"), -(16501, 0, "'s'"), -(16502, 0, "' '"), -(16503, 0, "'o'"), -(16504, 0, "'f'"), -(16505, 0, "' '"), -(16506, 0, "'t'"), -(16507, 0, "'h'"), -(16508, 0, "'e'"), -(16509, 0, "' '"), -(16510, 0, "'i'"), -(16511, 0, "'n'"), -(16512, 0, "'t'"), -(16513, 0, "'e'"), -(16514, 0, "'r'"), -(16515, 0, "'n'"), -(16516, 0, "'a'"), -(16517, 0, "'l'"), -(16518, 0, "' '"), -(16519, 0, "'e'"), -(16520, 0, "'l'"), -(16521, 0, "'e'"), -(16522, 0, "'m'"), -(16523, 0, "'e'"), -(16524, 0, "'n'"), -(16525, 0, "'t'"), -(16526, 0, "'s'"), -(16527, 0, "' '"), -(16528, 0, "'i'"), -(16529, 0, "'s'"), -(16530, 0, "' '"), -(16531, 0, "'i'"), -(16532, 0, "'m'"), -(16533, 0, "'p'"), -(16534, 0, "'l'"), -(16535, 0, "'i'"), -(16536, 0, "'c'"), -(16537, 0, "'i'"), -(16538, 0, "'f'"), -(16538, 1, "''"), -(16538, 0, "'c'"), -(16538, 1, "''"), -(16538, 0, "'t'"), -(16539, 0, "'.'"), -(16539, 0, "' '"), -(16540, 0, "'w'"), -(16541, 0, "'h'"), -(16542, 0, "'e'"), -(16543, 0, "'n'"), -(16544, 0, "' '"), -(16544, 1, "''"), -(16543, 1, "''"), -(16542, 1, "''"), -(16541, 1, "''"), -(16540, 1, "''"), -(16539, 1, "''"), -(16540, 1, "''"), -(16540, 1, "''"), -(16540, 7, "' '"), -(16541, 0, "'S'"), -(16542, 0, "'o'"), -(16557, 0, "' '"), -(16558, 0, "'w'"), -(16559, 0, "'e'"), -(16609, 0, "' '"), -(16610, 0, "'o'"), -(16611, 0, "'r'"), -(16612, 0, "' '"), -(16613, 0, "'s'"), -(16614, 0, "'o'"), -(16615, 0, "'m'"), -(16616, 0, "'e'"), -(16617, 0, "'t'"), -(16618, 0, "'h'"), -(16619, 0, "'i'"), -(16620, 0, "'n'"), -(16621, 0, "'g'"), -(16622, 0, "' '"), -(16623, 0, "'l'"), -(16624, 0, "'i'"), -(16625, 0, "'k'"), -(16626, 0, "'e'"), -(16627, 0, "' '"), -(16628, 0, "'t'"), -(16629, 0, "'h'"), -(16630, 0, "'a'"), -(16631, 0, "'t'"), -(16709, 1, "''"), -(16709, 0, "'n'"), -(16710, 0, "'n'"), -(16710, 1, "''"), -(16709, 1, "''"), -(16709, 0, "' '"), -(16710, 5, "'Y'"), -(16711, 0, "'j'"), -(16712, 0, "'s'"), -(16733, 0, "'s'"), -(16809, 3, "'t'"), -(16810, 0, "'h'"), -(16811, 0, "'e'"), -(16812, 0, "'s'"), -(16813, 0, "'e'"), -(16820, 0, "' '"), -(16821, 0, "'-'"), -(16822, 0, "' '"), -(16823, 0, "'s'"), -(16824, 0, "'i'"), -(16825, 0, "'n'"), -(16826, 0, "'c'"), -(16827, 0, "'e'"), -(16828, 0, "' '"), -(16829, 0, "'t'"), -(16830, 0, "'h'"), -(16831, 0, "'e'"), -(16832, 0, "' '"), -(16833, 0, "'i'"), -(16834, 0, "'d'"), -(16835, 0, "' '"), -(16836, 0, "'a'"), -(16837, 0, "'n'"), -(16838, 0, "'d'"), -(16839, 0, "' '"), -(16840, 0, "'s'"), -(16841, 0, "'e'"), -(16842, 0, "'q'"), -(16843, 0, "'u'"), -(16844, 0, "'e'"), -(16845, 0, "'n'"), -(16846, 0, "'c'"), -(16847, 0, "'e'"), -(16848, 0, "' '"), -(16849, 0, "'n'"), -(16850, 0, "'u'"), -(16851, 0, "'m'"), -(16852, 0, "'b'"), -(16853, 0, "'e'"), -(16854, 0, "'s'"), -(16855, 0, "'r'"), -(16856, 0, "' '"), -(16857, 0, "'w'"), -(16858, 0, "'o'"), -(16859, 0, "'n'"), -(16860, 0, "'''"), -(16849, 12, "'n'"), -(16850, 0, "'u'"), -(16851, 0, "'m'"), -(16852, 0, "'b'"), -(16853, 0, "'e'"), -(16854, 0, "'r'"), -(16855, 0, "'s'"), -(16856, 0, "' '"), -(16856, 1, "''"), -(16856, 0, "' '"), -(16857, 0, "'w'"), -(16858, 0, "'o'"), -(16859, 0, "'n'"), -(16860, 0, "'''"), -(16861, 0, "'t'"), -(16862, 0, "'l'"), -(16863, 0, "'i'"), -(16863, 1, "''"), -(16862, 1, "''"), -(16862, 0, "' '"), -(16863, 0, "'l'"), -(16864, 0, "'i'"), -(16865, 0, "'n'"), -(16866, 0, "'e'"), -(16867, 0, "' '"), -(16868, 0, "'u'"), -(16869, 0, "'p'"), -(16871, 1, "''"), -(16871, 0, "'n'"), -(16872, 0, "'n'"), -(16873, 14, "'I'"), -(16874, 0, "'n'"), -(16875, 0, "' '"), -(16876, 0, "'o'"), -(16877, 0, "'u'"), -(16878, 0, "'r'"), -(17652, 10, "'I'"), -(17653, 0, "' '"), -(17653, 1, "''"), -(17652, 1, "''"), -(17652, 0, "'K'"), -(17653, 0, "'e'"), -(17654, 0, "'v'"), -(17655, 0, "'i'"), -(17656, 0, "'n'"), -(17657, 0, "' '"), -(17658, 0, "'s'"), -(17659, 0, "'a'"), -(17660, 0, "'y'"), -(17661, 0, "'s'"), -(17701, 5, "''"), -(17700, 1, "''"), -(17721, 0, "' '"), -(17722, 0, "'f'"), -(17723, 0, "'i'"), -(17724, 0, "'n'"), -(17725, 0, "'d'"), -(17726, 0, "' '"), -(17727, 0, "'t'"), -(17728, 0, "'h'"), -(17729, 0, "'e'"), -(17730, 0, "' '"), -(17731, 0, "'f'"), -(17732, 0, "'a'"), -(17733, 0, "'s'"), -(17722, 12, "''"), -(17722, 0, "'m'"), -(17723, 0, "'a'"), -(17724, 0, "'k'"), -(17725, 0, "'e'"), -(17726, 0, "' '"), -(17727, 0, "'t'"), -(17728, 0, "'h'"), -(17729, 0, "'i'"), -(17730, 0, "'s'"), -(17731, 0, "' '"), -(17732, 0, "'c'"), -(17733, 0, "'o'"), -(17734, 0, "'d'"), -(17735, 0, "'e'"), -(17736, 0, "' '"), -(17737, 0, "'r'"), -(17738, 0, "'u'"), -(17739, 0, "'n'"), -(17740, 0, "' '"), -(17741, 0, "'s'"), -(17742, 0, "'o'"), -(17743, 0, "' '"), -(17744, 0, "'f'"), -(17745, 0, "'a'"), -(17746, 0, "'s'"), -(17747, 0, "'t'"), -(17748, 21, "''"), -(17748, 1, "''"), -(17748, 0, "'.'"), -(17721, 0, "' '"), -(17722, 0, "'f'"), -(17723, 0, "'i'"), -(17724, 0, "'g'"), -(17725, 0, "'u'"), -(17726, 0, "'r'"), -(17727, 0, "'e'"), -(17728, 0, "' '"), -(17729, 0, "'o'"), -(17730, 0, "'u'"), -(17731, 0, "'t'"), -(17732, 0, "' '"), -(17722, 11, "''"), -(17721, 1, "''"), -(18480, 33, "''"), -(18479, 1, "''"), -(18485, 0, "' '"), -(18486, 0, "'k'"), -(18487, 0, "'n'"), -(18488, 0, "'o'"), -(18489, 0, "'w'"), -(18490, 0, "'s'"), -(18491, 0, "' '"), -(18492, 0, "'t'"), -(18493, 0, "'h'"), -(18494, 0, "'i'"), -(18495, 0, "'s'"), -(18496, 0, "' '"), -(18497, 0, "'n'"), -(18498, 0, "'o'"), -(18499, 0, "'w'"), -(18500, 0, "' '"), -(18501, 0, "'t'"), -(18502, 0, "'o'"), -(18503, 0, "'o'"), -(18504, 0, "','"), -(18505, 0, "' '"), -(18506, 0, "'a'"), -(18507, 0, "'n'"), -(18508, 0, "'d'"), -(18509, 0, "' '"), -(18510, 0, "'h'"), -(18511, 0, "'e'"), -(18512, 0, "'''"), -(18513, 0, "'s'"), -(18514, 3, "''"), -(18526, 6, "''"), -(18526, 4, "''"), -(18523, 3, "'m'"), -(18524, 0, "'y'"), -(18525, 0, "' '"), -(18526, 0, "'a'"), -(18527, 0, "'p'"), -(18528, 0, "'p'"), -(18529, 0, "'r'"), -(18530, 0, "'o'"), -(18531, 0, "'a'"), -(18532, 0, "'c'"), -(18533, 0, "'h'"), -(18534, 0, "' '"), -(18535, 0, "'i'"), -(18536, 0, "'n'"), -(18537, 0, "' '"), -(18538, 0, "'t'"), -(18539, 0, "'u'"), -(18540, 0, "'r'"), -(18541, 0, "'n'"), -(18542, 0, "'.'"), -(18543, 1, "' '"), -(18544, 0, "'H'"), -(18545, 0, "'e'"), -(18546, 0, "'''"), -(18547, 0, "'s'"), -(18548, 0, "' '"), -(18549, 0, "'n'"), -(18550, 0, "'o'"), -(18551, 0, "'w'"), -(18552, 4, "''"), -(18600, 28, "' '"), -(18601, 0, "'w'"), -(18602, 0, "'h'"), -(18603, 0, "'i'"), -(18604, 0, "'c'"), -(18605, 0, "'h'"), -(18606, 0, "' '"), -(18601, 6, "'t'"), -(18602, 0, "'o'"), -(18603, 0, "' '"), -(18604, 0, "'s'"), -(18605, 0, "'e'"), -(18606, 0, "'e'"), -(18607, 0, "' '"), -(18608, 0, "'i'"), -(18609, 0, "'f'"), -(18610, 0, "' '"), -(18611, 0, "'h'"), -(18612, 0, "'e'"), -(18613, 0, "' '"), -(18614, 0, "'c'"), -(18615, 0, "'a'"), -(18616, 0, "'n'"), -(18617, 0, "' '"), -(18618, 0, "'b'"), -(18619, 0, "'e'"), -(18620, 0, "'a'"), -(18621, 0, "'t'"), -(18622, 0, "' '"), -(18623, 0, "'m'"), -(18624, 0, "'e'"), -(18625, 0, "' '"), -(18626, 0, "'i'"), -(18627, 0, "'n'"), -(18628, 0, "' '"), -(18629, 0, "'p'"), -(18630, 0, "'e'"), -(18631, 0, "'r'"), -(18632, 0, "'f'"), -(18633, 0, "'o'"), -(18634, 0, "'r'"), -(18635, 0, "'a'"), -(18635, 1, "''"), -(18634, 1, "''"), -(18634, 0, "'r'"), -(18635, 0, "'m'"), -(18636, 0, "'a'"), -(18637, 0, "'n'"), -(18638, 0, "'c'"), -(18639, 0, "'e'"), -(18640, 0, "'.'"), -(18515, 37, "''"), -(18514, 1, "''"), -(18806, 0, "' '"), -(18807, 0, "'w'"), -(18808, 0, "'i'"), -(18809, 0, "'t'"), -(18810, 0, "'h'"), -(18811, 0, "' '"), -(18812, 0, "'a'"), -(18813, 0, "'l'"), -(18814, 0, "'l'"), -(18815, 0, "' '"), -(18816, 0, "'t'"), -(18817, 0, "'h'"), -(18818, 0, "'e'"), -(18819, 0, "' '"), -(18820, 0, "'p'"), -(18821, 0, "'a'"), -(18822, 0, "'r'"), -(18823, 0, "'t'"), -(18824, 0, "'s'"), -(18825, 0, "' '"), -(18826, 0, "'s'"), -(18827, 0, "'e'"), -(18828, 0, "'p'"), -(18829, 0, "'a'"), -(18830, 0, "'r'"), -(18831, 0, "'a'"), -(18832, 0, "'t'"), -(18833, 0, "'e'"), -(18834, 0, "' '"), -(18834, 1, "''"), -(18834, 0, "' '"), -(18834, 1, "''"), -(18834, 0, "'d'"), -(18835, 0, "' '"), -(18836, 0, "'b'"), -(18837, 0, "'y'"), -(18838, 0, "' '"), -(18839, 0, "'p'"), -(18840, 0, "'o'"), -(18841, 0, "'i'"), -(18842, 0, "'n'"), -(18843, 0, "'t'"), -(18844, 0, "'e'"), -(18845, 0, "'r'"), -(18846, 0, "'s'"), -(26293, 0, "'S'"), -(26294, 0, "'o'"), -(26295, 0, "' '"), -(26631, 0, "' '"), -(26632, 0, "'m'"), -(26633, 0, "'u'"), -(26634, 0, "'c'"), -(26635, 0, "'h'"), -(26783, 15, "'T'"), -(26784, 0, "'h'"), -(26785, 0, "'a'"), -(26786, 0, "'t'"), -(26787, 0, "' '"), -(26788, 0, "'w'"), -(26789, 0, "'a'"), -(26790, 0, "'s'"), -(26791, 0, "' '"), -(26792, 0, "'a'"), -(26793, 0, "' '"), -(26794, 0, "'m'"), -(26795, 0, "'i'"), -(26796, 0, "'s'"), -(26797, 0, "'t'"), -(26798, 0, "'a'"), -(26799, 0, "'k'"), -(26800, 0, "'e'"), -(26847, 12, "''"), -(26846, 1, "''"), -(27342, 0, "' '"), -(27343, 0, "'w'"), -(27344, 0, "'e'"), -(27345, 0, "' '"), -(27346, 0, "'c'"), -(27347, 0, "'a'"), -(27348, 0, "'n'"), -(27349, 0, "' '"), -(27350, 0, "'g'"), -(27351, 0, "'i'"), -(27352, 0, "'v'"), -(27353, 0, "'e'"), -(27354, 4, "' '"), -(27355, 0, "'t'"), -(27356, 0, "'o'"), -(27403, 0, "' '"), -(27404, 0, "'S'"), -(27405, 0, "'o'"), -(27406, 0, "'m'"), -(27407, 0, "'e'"), -(27408, 0, "' '"), -(27409, 0, "'p'"), -(27410, 0, "'e'"), -(27411, 0, "'o'"), -(27412, 0, "'p'"), -(27413, 0, "'l'"), -(27414, 0, "'e'"), -(27415, 0, "' '"), -(27416, 0, "'a'"), -(27417, 0, "'r'"), -(27418, 0, "'e'"), -(27419, 0, "' '"), -(27420, 0, "'g'"), -(27421, 0, "'r'"), -(27422, 0, "'e'"), -(27423, 0, "'a'"), -(27424, 0, "'t'"), -(27425, 0, "' '"), -(27426, 0, "'p'"), -(27427, 0, "'a'"), -(27428, 0, "'r'"), -(27429, 0, "'e'"), -(27430, 0, "'n'"), -(27431, 0, "'t'"), -(27432, 0, "'s'"), -(27433, 0, "'.'"), -(27434, 0, "' '"), -(27435, 0, "'I'"), -(27404, 0, "'('"), -(27404, 1, "''"), -(27436, 0, "' '"), -(27437, 0, "'l'"), -(27438, 0, "'o'"), -(27439, 0, "'k'"), -(27439, 1, "''"), -(27438, 1, "''"), -(27438, 0, "'i'"), -(27439, 0, "'k'"), -(27440, 0, "'e'"), -(27441, 0, "' '"), -(27442, 0, "'p'"), -(27443, 0, "'e'"), -(27444, 0, "'r'"), -(27445, 0, "'f'"), -(27446, 0, "'o'"), -(27447, 0, "'r'"), -(27448, 0, "'m'"), -(27449, 0, "'a'"), -(27450, 0, "'n'"), -(27451, 0, "'c'"), -(27452, 0, "'e'"), -(27453, 0, "'.'"), -(27442, 0, "'o'"), -(27443, 0, "'b'"), -(27443, 1, "''"), -(27442, 1, "''"), -(27442, 0, "'t'"), -(27443, 0, "'h'"), -(27444, 0, "'i'"), -(27445, 0, "'n'"), -(27446, 0, "'k'"), -(27447, 0, "'i'"), -(27448, 0, "'n'"), -(27449, 0, "'g'"), -(27450, 0, "' '"), -(27451, 0, "'a'"), -(27452, 0, "'b'"), -(27453, 0, "'o'"), -(27454, 0, "'u'"), -(27455, 0, "'t'"), -(27456, 0, "' '"), -(27457, 11, "'s'"), -(27458, 0, "'o'"), -(27459, 0, "'f'"), -(27460, 0, "'t'"), -(27461, 0, "'w'"), -(27462, 0, "'a'"), -(27463, 0, "'r'"), -(27464, 0, "'e'"), -(27465, 0, "' '"), -(27466, 0, "'p'"), -(27467, 0, "'e'"), -(27468, 0, "'r'"), -(27469, 0, "'f'"), -(27470, 0, "'o'"), -(27471, 0, "'r'"), -(27472, 0, "'m'"), -(27473, 0, "'a'"), -(27474, 0, "'n'"), -(27475, 0, "'c'"), -(27476, 0, "'e'"), -(27477, 0, "' '"), -(27478, 0, "'t'"), -(27479, 0, "'u'"), -(27480, 0, "'n'"), -(27481, 0, "'i'"), -(27482, 0, "'n'"), -(27483, 0, "'g'"), -(27441, 16, "' '"), -(27442, 21, "''"), -(27448, 0, "' '"), -(27449, 0, "'s'"), -(27450, 0, "'o'"), -(27451, 0, "'f'"), -(27452, 0, "'t'"), -(27453, 0, "'w'"), -(27454, 0, "'a'"), -(27455, 0, "'r'"), -(27456, 0, "'e'"), -(27442, 7, "'m'"), -(27443, 0, "'a'"), -(27444, 0, "'k'"), -(27445, 0, "'i'"), -(27446, 0, "'n'"), -(27447, 0, "'g'"), -(27448, 0, "' '"), -(27457, 0, "' '"), -(27458, 0, "'o'"), -(27458, 1, "''"), -(27458, 0, "'o'"), -(27458, 1, "''"), -(27458, 0, "'g'"), -(27459, 0, "'o'"), -(27460, 0, "' '"), -(27461, 0, "'r'"), -(27462, 0, "'e'"), -(27463, 0, "'a'"), -(27464, 0, "'l'"), -(27465, 0, "'l'"), -(27466, 0, "'y'"), -(27467, 0, "' '"), -(27468, 0, "'f'"), -(27469, 0, "'a'"), -(27470, 0, "'s'"), -(27471, 0, "'t'"), -(27435, 0, "'M'"), -(27436, 0, "'e'"), -(27437, 0, "'?'"), -(27438, 0, "' '"), -(27440, 5, "' '"), -(27441, 0, "'c'"), -(27442, 0, "'a'"), -(27443, 0, "'n'"), -(27450, 1, "''"), -(27449, 1, "''"), -(27448, 1, "''"), -(27448, 0, "'e'"), -(27435, 4, "'T'"), -(27436, 0, "'h'"), -(27437, 0, "'a'"), -(27438, 0, "'t'"), -(27439, 0, "'s'"), -(27440, 0, "' '"), -(27441, 0, "'g'"), -(27442, 0, "'r'"), -(27443, 0, "'e'"), -(27444, 0, "'a'"), -(27445, 0, "'t'"), -(27446, 0, "','"), -(27447, 0, "' '"), -(27448, 0, "'b'"), -(27449, 0, "'u'"), -(27450, 0, "'t'"), -(27451, 0, "' '"), -(27659, 4, "'m'"), -(27660, 0, "'a'"), -(27661, 0, "'k'"), -(27662, 0, "'i'"), -(27663, 0, "'n'"), -(27664, 0, "'g'"), -(27665, 0, "' '"), -(27665, 1, "''"), -(27664, 1, "''"), -(27663, 1, "''"), -(27662, 1, "''"), -(27662, 0, "'e'"), -(27663, 0, "' '"), -(27664, 0, "'t'"), -(27665, 0, "'h'"), -(27666, 0, "'i'"), -(27667, 0, "'s'"), -(27675, 1, "''"), -(27674, 1, "''"), -(27673, 1, "''"), -(27673, 0, "' '"), -(27674, 0, "'f'"), -(27675, 0, "'a'"), -(27676, 0, "'s'"), -(27677, 0, "'t'"), -(27693, 24, "''"), -(27693, 0, "'I'"), -(27694, 0, "'n'"), -(27695, 0, "'s'"), -(27696, 0, "'t'"), -(27697, 0, "'e'"), -(27698, 0, "'a'"), -(27699, 0, "'d'"), -(27700, 0, "' '"), -(27701, 0, "'o'"), -(27702, 0, "'f'"), -(27703, 0, "' '"), -(27704, 0, "'e'"), -(27705, 0, "'n'"), -(27706, 0, "'t'"), -(27707, 0, "'e'"), -(27708, 0, "'r'"), -(27709, 0, "'i'"), -(27710, 0, "'n'"), -(27711, 0, "'g'"), -(27704, 8, "'d'"), -(27705, 0, "'o'"), -(27706, 0, "'i'"), -(27707, 0, "'n'"), -(27708, 0, "'g'"), -(27709, 0, "' '"), -(27710, 0, "'t'"), -(27711, 0, "'h'"), -(27712, 0, "'a'"), -(27713, 0, "'t'"), -(27714, 0, "' '"), -(27715, 0, "'w'"), -(27716, 0, "'o'"), -(27717, 0, "'r'"), -(27718, 0, "'k'"), -(27721, 0, "' '"), -(27721, 1, "''"), -(27720, 1, "''"), -(27719, 1, "''"), -(27719, 0, "','"), -(27720, 0, "' '"), -(27721, 0, "'I'"), -(27722, 0, "' '"), -(27723, 0, "'w'"), -(27724, 0, "'a'"), -(27725, 0, "'s'"), -(27726, 0, "' '"), -(27727, 0, "'s'"), -(27728, 0, "'b'"), -(27729, 0, "'u'"), -(27729, 1, "''"), -(27728, 1, "''"), -(27728, 0, "'b'"), -(27728, 1, "''"), -(27727, 1, "''"), -(27727, 0, "'b'"), -(27728, 0, "'u'"), -(27729, 0, "'s'"), -(27730, 0, "'y'"), -(27731, 0, "' '"), -(27732, 0, "'a'"), -(27733, 0, "'n'"), -(27734, 0, "'d'"), -(27840, 0, "' '"), -(27841, 0, "'a'"), -(27842, 0, "'n'"), -(27843, 0, "'d'"), -(27844, 0, "' '"), -(27845, 0, "'b'"), -(27846, 0, "'r'"), -(27847, 0, "'i'"), -(27848, 0, "'n'"), -(27849, 0, "'g'"), -(27850, 0, "' '"), -(27851, 0, "'i'"), -(27852, 0, "'t'"), -(27853, 0, "' '"), -(27854, 0, "'b'"), -(27855, 0, "'a'"), -(27856, 0, "'c'"), -(27857, 0, "'k'"), -(27884, 0, "' '"), -(27885, 0, "'P'"), -(27886, 0, "'r'"), -(27887, 0, "'a'"), -(27888, 0, "'c'"), -(27889, 0, "'t'"), -(27890, 0, "'i'"), -(27891, 0, "'c'"), -(27892, 0, "'a'"), -(27893, 0, "'l'"), -(27894, 0, "' '"), -(27896, 1, "''"), -(27895, 1, "''"), -(27895, 0, "'d'"), -(27940, 1, "''"), -(27940, 0, "'n'"), -(27941, 0, "'n'"), -(27941, 1, "''"), -(27940, 1, "''"), -(27940, 0, "' '"), -(27452, 10, "'c'"), -(27453, 0, "'h'"), -(27454, 0, "'e'"), -(27455, 0, "'c'"), -(27456, 0, "'k'"), -(27457, 0, "' '"), -(27458, 0, "'o'"), -(27459, 0, "'u'"), -(27460, 0, "'t'"), -(27461, 0, "' '"), -(27462, 0, "'h'"), -(27463, 0, "'o'"), -(27464, 0, "'s'"), -(27464, 1, "''"), -(27464, 0, "'w'"), -(27465, 0, "' '"), -(27466, 0, "'f'"), -(27467, 0, "'a'"), -(27468, 0, "'s'"), -(27469, 0, "'t'"), -(27470, 0, "' '"), -(27471, 0, "'I'"), -(27472, 0, "' '"), -(27473, 0, "'c'"), -(27474, 0, "'a'"), -(27475, 0, "'n'"), -(27476, 0, "' '"), -(27477, 0, "'m'"), -(27478, 0, "'e'"), -(27479, 0, "'k'"), -(27479, 1, "''"), -(27478, 1, "''"), -(27478, 0, "'a'"), -(27479, 0, "'k'"), -(27480, 0, "'e'"), -(27493, 13, "''"), -(27493, 0, "'!'"), -(27482, 8, "'C'"), -(27483, 0, "'R'"), -(27484, 0, "'D'"), -(27485, 0, "'T'"), -(27486, 0, "'s'"), -(27404, 0, "'('"), -(27492, 0, "')'"), -(27509, 7, "''"), -(27609, 40, "''"), -(28413, 0, "' '"), -(28414, 0, "'Y'"), -(28415, 0, "'j'"), -(28416, 0, "'s'"), -(28417, 0, "' '"), -(28418, 0, "'a'"), -(28419, 0, "'l'"), -(28420, 0, "'r'"), -(28421, 0, "'e'"), -(28422, 0, "'a'"), -(28423, 0, "'d'"), -(28424, 0, "'y'"), -(28425, 0, "' '"), -(28426, 0, "'r'"), -(28427, 0, "'u'"), -(28428, 0, "'n'"), -(28429, 0, "'s'"), -(28430, 0, "' '"), -(28431, 0, "'f'"), -(28432, 0, "'a'"), -(28433, 0, "'s'"), -(28434, 0, "'t'"), -(28435, 0, "' '"), -(28436, 0, "'a'"), -(28437, 0, "'n'"), -(28438, 0, "'d'"), -(28439, 0, "' '"), -(28440, 0, "'e'"), -(28441, 0, "'v'"), -(28442, 0, "'e'"), -(28443, 0, "'n'"), -(28444, 0, "'t'"), -(28445, 0, "'u'"), -(28446, 0, "'a'"), -(28440, 7, "'s'"), -(28441, 0, "'o'"), -(28442, 0, "'o'"), -(28443, 0, "'n'"), -(28444, 0, "' '"), -(28445, 0, "'i'"), -(28446, 0, "'t'"), -(28447, 0, "' '"), -(28448, 0, "'w'"), -(28449, 0, "'i'"), -(28450, 0, "'l'"), -(28451, 0, "'l'"), -(28452, 0, "' '"), -(28448, 5, "'s'"), -(28449, 0, "'h'"), -(28450, 0, "'o'"), -(28451, 0, "'u'"), -(28452, 0, "'l'"), -(28453, 0, "'d'"), -(28454, 0, "' '"), -(28455, 0, "'b'"), -(28456, 0, "'e'"), -(28457, 0, "'c'"), -(28458, 0, "'o'"), -(28459, 0, "'m'"), -(28460, 0, "'e'"), -(28461, 0, "' '"), -(28462, 0, "'e'"), -(28463, 0, "'v'"), -(28464, 0, "'e'"), -(28465, 0, "'n'"), -(28466, 0, "' '"), -(28467, 0, "'f'"), -(28468, 0, "'a'"), -(28469, 0, "'s'"), -(28470, 0, "'t'"), -(28471, 0, "'e'"), -(28472, 0, "'r'"), -(28473, 0, "'.'"), -(28492, 0, "'*'"), -(28499, 0, "'*'"), -(28793, 0, "' '"), -(28794, 0, "'K'"), -(28795, 0, "'e'"), -(28796, 0, "'v'"), -(28797, 0, "'i'"), -(28798, 0, "'n'"), -(28799, 0, "' '"), -(28800, 0, "'h'"), -(28801, 0, "'a'"), -(28802, 0, "'s'"), -(28803, 0, "' '"), -(28804, 0, "'g'"), -(28805, 0, "'o'"), -(28806, 0, "'t'"), -(28807, 0, "' '"), -(28808, 0, "'t'"), -(28809, 0, "'h'"), -(28810, 0, "'i'"), -(28811, 0, "'s'"), -(28812, 0, "'.'"), -(28993, 1, "''"), -(28993, 0, "','"), -(28994, 0, "' '"), -(28995, 0, "'w'"), -(28996, 0, "'h'"), -(28997, 0, "'i'"), -(28998, 0, "'c'"), -(28999, 0, "'h'"), -(29000, 0, "' '"), -(29001, 0, "'d'"), -(29002, 0, "'o'"), -(29003, 0, "'e'"), -(29004, 0, "'s'"), -(29005, 0, "' '"), -(29006, 0, "'t'"), -(29007, 0, "'h'"), -(29008, 0, "'i'"), -(29009, 0, "'s'"), -(29010, 0, "' '"), -(29011, 0, "'s'"), -(29012, 0, "'t'"), -(29013, 0, "'u'"), -(29014, 0, "'f'"), -(29015, 0, "'f'"), -(29016, 0, "' '"), -(29017, 0, "'o'"), -(29018, 0, "'n'"), -(29019, 0, "' '"), -(29020, 0, "'t'"), -(29021, 0, "'o'"), -(29022, 0, "'p'"), -(29023, 0, "' '"), -(29024, 0, "'p'"), -(29024, 1, "''"), -(29024, 0, "'o'"), -(29025, 0, "'f'"), -(29026, 0, "' '"), -(29027, 0, "'O'"), -(29028, 0, "'T'"), -(29029, 0, "'.'"), -(29312, 0, "'Y'"), -(29313, 0, "'e'"), -(29314, 0, "'s'"), -(29315, 0, "','"), -(29316, 0, "' '"), -(29317, 0, "'I'"), -(29318, 0, "' '"), -(29319, 0, "'k'"), -(29320, 0, "'n'"), -(29321, 0, "'o'"), -(29322, 0, "'w'"), -(29323, 0, "'.'"), -(29324, 0, "' '"), -(29325, 5, "'I'"), -(29326, 0, "'''"), -(29327, 0, "'v'"), -(29328, 0, "'e'"), -(29329, 0, "' '"), -(29330, 0, "'m'"), -(29331, 0, "'a'"), -(29332, 0, "'d'"), -(29333, 0, "'e'"), -(29334, 0, "' '"), -(29335, 0, "'a'"), -(29336, 0, "' '"), -(29337, 0, "'f'"), -(29338, 0, "'e'"), -(29339, 0, "'w'"), -(29340, 0, "' '"), -(29341, 0, "'g'"), -(29342, 0, "'l'"), -(29342, 1, "''"), -(29341, 1, "''"), -(29341, 17, "''"), -(29356, 6, "''"), -(29356, 5, "' '"), -(29357, 0, "'w'"), -(29358, 0, "'h'"), -(29359, 0, "'i'"), -(29360, 0, "'c'"), -(29361, 0, "'h'"), -(33169, 0, "' '"), -(33170, 0, "'T'"), -(33171, 0, "'h'"), -(33172, 0, "'e'"), -(33173, 0, "'r'"), -(33174, 0, "' '"), -(33174, 1, "''"), -(33174, 0, "'e'"), -(33175, 0, "' '"), -(33176, 0, "'a'"), -(33177, 0, "'r'"), -(33178, 0, "'e'"), -(33179, 0, "' '"), -(33180, 0, "'e'"), -(33180, 1, "''"), -(33180, 0, "'b'"), -(33181, 0, "'e'"), -(33182, 0, "'t'"), -(33183, 0, "'t'"), -(33184, 0, "'e'"), -(33185, 0, "'r'"), -(33186, 0, "' '"), -(33187, 0, "'a'"), -(33188, 0, "'p'"), -(33189, 0, "'r'"), -(33190, 0, "'p'"), -(33191, 0, "'o'"), -(33192, 0, "'a'"), -(33192, 1, "''"), -(33191, 1, "''"), -(33190, 1, "''"), -(33189, 1, "''"), -(33189, 0, "'p'"), -(33190, 0, "'r'"), -(33191, 0, "'o'"), -(33192, 0, "'a'"), -(33193, 0, "'c'"), -(33194, 0, "'h'"), -(33195, 0, "'e'"), -(33196, 0, "'s'"), -(33197, 0, "' '"), -(33198, 0, "'t'"), -(33199, 0, "'o'"), -(33200, 0, "' '"), -(33201, 0, "'d'"), -(33202, 0, "'o'"), -(33203, 0, "'i'"), -(33204, 0, "'n'"), -(33205, 0, "'g'"), -(33206, 0, "' '"), -(33207, 0, "'t'"), -(33208, 0, "'h'"), -(33209, 0, "'i'"), -(33210, 0, "'s'"), -(33211, 0, "' '"), -(33212, 0, "'s'"), -(33213, 0, "'o'"), -(33214, 0, "'r'"), -(33215, 0, "'t'"), -(33216, 0, "' '"), -(33217, 0, "'o'"), -(33218, 0, "'f'"), -(33219, 0, "' '"), -(33220, 0, "'t'"), -(33221, 0, "'h'"), -(33222, 0, "'i'"), -(33223, 0, "'n'"), -(33224, 0, "'g'"), -(33225, 0, "' '"), -(33226, 0, "'o'"), -(33227, 0, "'n'"), -(33228, 0, "' '"), -(33229, 0, "'t'"), -(33230, 0, "'o'"), -(33231, 0, "'p'"), -(33232, 0, "' '"), -(33233, 0, "'o'"), -(33234, 0, "'f'"), -(33235, 0, "' '"), -(33236, 0, "'a'"), -(33237, 0, "' '"), -(33238, 0, "'d'"), -(33239, 0, "'a'"), -(33240, 0, "'t'"), -(33241, 0, "'a'"), -(33242, 0, "'b'"), -(33243, 0, "'a'"), -(33244, 0, "'s'"), -(33245, 0, "'e'"), -(33246, 0, "','"), -(33247, 0, "' '"), -(33248, 0, "'b'"), -(33249, 0, "'u'"), -(33250, 0, "'t'"), -(33251, 1, "''"), -(33251, 1, "''"), -(33251, 0, "' '"), -(33252, 1, "''"), -(33252, 0, "'a'"), -(33311, 0, "'a'"), -(33312, 0, "'l'"), -(33313, 0, "'l'"), -(33314, 0, "' '"), -(33315, 0, "'a'"), -(33316, 0, "'t'"), -(33317, 0, "' '"), -(32999, 36, "''"), -(32999, 0, "'T'"), -(33000, 0, "'h'"), -(33001, 0, "'i'"), -(33002, 0, "'s'"), -(33003, 0, "' '"), -(33004, 0, "'i'"), -(33005, 0, "'s'"), -(33006, 0, "' '"), -(33007, 0, "'s'"), -(33007, 1, "''"), -(33007, 0, "'t'"), -(33008, 0, "'h'"), -(33009, 0, "'e'"), -(33010, 0, "' '"), -(33011, 0, "'w'"), -(33012, 0, "'o'"), -(33013, 0, "'r'"), -(33014, 0, "'k'"), -(33015, 0, "'f'"), -(33016, 0, "'l'"), -(33017, 0, "'o'"), -(33018, 0, "'w'"), -(33019, 0, "' '"), -(33020, 0, "'t'"), -(33021, 0, "'h'"), -(33022, 0, "'a'"), -(33023, 0, "'t'"), -(33024, 0, "' '"), -(33025, 17, "''"), -(33025, 0, "'y'"), -(33025, 1, "''"), -(33011, 0, "'c'"), -(33012, 0, "'u'"), -(33013, 0, "'r'"), -(33014, 0, "'e'"), -(33014, 1, "''"), -(33014, 0, "'r'"), -(33015, 0, "'e'"), -(33016, 0, "'n'"), -(33017, 0, "'t'"), -(33018, 0, "'l'"), -(33018, 1, "''"), -(33017, 1, "''"), -(33017, 0, "'t'"), -(33018, 0, "' '"), -(33018, 1, "''"), -(33018, 0, "'l'"), -(33019, 0, "'y'"), -(33020, 0, "' '"), -(33021, 0, "'r'"), -(33022, 0, "'e'"), -(33023, 0, "'c'"), -(33024, 0, "'o'"), -(33025, 0, "'m'"), -(33026, 0, "'m'"), -(33027, 0, "'e'"), -(33028, 0, "'n'"), -(33029, 0, "'d'"), -(33030, 0, "'e'"), -(33031, 0, "'d'"), -(33032, 0, "' '"), -(33042, 4, "'f'"), -(33043, 0, "'o'"), -(33044, 0, "'r'"), -(33045, 1, "''"), -(33046, 0, "'t'"), -(33047, 0, "'h'"), -(33048, 0, "'e'"), -(33049, 0, "' '"), -(33086, 6, "''"), -(33090, 11, "''"), -(33091, 10, "'c'"), -(33092, 0, "'o'"), -(33093, 0, "'l'"), -(33094, 0, "'l'"), -(33095, 0, "'a'"), -(33096, 0, "'b'"), -(33097, 0, "'o'"), -(33098, 0, "'r'"), -(33099, 0, "'a'"), -(33100, 0, "'t'"), -(33101, 0, "'i'"), -(33102, 0, "'v'"), -(33103, 0, "'e'"), -(33124, 14, "''"), -(33051, 1, "''"), -(33051, 0, "'5'"), -(33167, 48, "''"), -(33166, 1, "''"), -(33166, 0, "' '"), -(33167, 0, "'-'"), -(33168, 1, "''"), -(33235, 15, "''"), -(33235, 0, "'.'"), -(33236, 0, "' '"), -(33237, 0, "'H'"), -(33238, 0, "'e'"), -(33239, 0, "'l'"), -(33240, 0, "'p'"), -(33241, 0, "'!'"), -(33241, 1, "''"), -(33241, 0, "' '"), -(33242, 0, "'p'"), -(33243, 0, "'l'"), -(33244, 0, "'e'"), -(33245, 0, "'a'"), -(33246, 0, "'s'"), -(33247, 0, "'e'"), -(33248, 0, "'!'"), -(33237, 0, "'W'"), -(33238, 0, "'e'"), -(33239, 0, "' '"), -(33240, 0, "'c'"), -(33241, 0, "'o'"), -(33242, 0, "'u'"), -(33243, 0, "'l'"), -(33244, 0, "'d'"), -(33245, 0, "' '"), -(33246, 0, "'u'"), -(33247, 0, "'s'"), -(33248, 0, "'e'"), -(33249, 0, "' '"), -(33250, 0, "'y'"), -(33251, 0, "'u'"), -(33252, 0, "'r'"), -(33252, 1, "''"), -(33251, 1, "''"), -(33251, 0, "'o'"), -(33252, 0, "'u'"), -(33253, 0, "'r'"), -(33254, 0, "' '"), -(33255, 1, "''"), -(33255, 0, "'h'"), -(33259, 7, "''"), -(25654, 0, "' '"), -(25655, 0, "'T'"), -(25656, 0, "'h'"), -(25657, 0, "'i'"), -(25658, 0, "'s'"), -(25659, 0, "' '"), -(25660, 0, "'i'"), -(25661, 0, "'s'"), -(25662, 0, "' '"), -(25663, 0, "'f'"), -(25664, 0, "'a'"), -(25665, 0, "'s'"), -(25666, 0, "'t'"), -(25667, 0, "' '"), -(25668, 0, "'e'"), -(25669, 0, "'n'"), -(25670, 0, "'o'"), -(25671, 0, "'u'"), -(25672, 0, "'g'"), -(25673, 0, "'h'"), -(25674, 0, "' '"), -(25675, 0, "'t'"), -(25676, 0, "'o'"), -(25677, 0, "' '"), -(25678, 0, "'s'"), -(25679, 0, "'a'"), -(25680, 0, "'t'"), -(25681, 0, "'u'"), -(25682, 0, "'r'"), -(25683, 0, "'a'"), -(25684, 0, "'t'"), -(25685, 0, "'e'"), -(25686, 0, "' '"), -(25687, 0, "'1'"), -(25688, 0, "'0'"), -(25689, 0, "'0'"), -(25690, 0, "'m'"), -(25691, 0, "'b'"), -(25691, 1, "''"), -(25690, 1, "''"), -(25690, 0, "' '"), -(25687, 4, "'m'"), -(25688, 0, "'e'"), -(25688, 1, "''"), -(25687, 1, "''"), -(25687, 0, "'1'"), -(25688, 0, "'0'"), -(25689, 0, "'0'"), -(25690, 0, "' '"), -(25691, 0, "'m'"), -(25692, 0, "'e'"), -(25693, 0, "'g'"), -(25694, 0, "'a'"), -(25695, 0, "'b'"), -(25696, 0, "'i'"), -(25697, 0, "'t'"), -(25698, 0, "' '"), -(25699, 0, "'e'"), -(25700, 0, "'t'"), -(25701, 0, "'h'"), -(25702, 0, "'e'"), -(25703, 0, "'r'"), -(25704, 0, "'n'"), -(25705, 0, "'e'"), -(25706, 0, "'t'"), -(25707, 0, "'.'"), -(25678, 0, "'b'"), -(25679, 0, "'e'"), -(25680, 0, "' '"), -(25675, 35, "'t'"), -(25676, 0, "'h'"), -(25677, 0, "'a'"), -(25678, 0, "'t'"), -(25679, 0, "' '"), -(25680, 0, "'m'"), -(25681, 0, "'y'"), -(25682, 0, "' '"), -(25683, 0, "'h'"), -(25683, 1, "''"), -(25682, 1, "''"), -(25681, 1, "''"), -(25680, 1, "''"), -(25668, 12, "''"), -(25667, 1, "''"), -(25667, 0, "'e'"), -(25668, 0, "'r'"), -(25669, 0, "' '"), -(25670, 0, "'t'"), -(25671, 0, "'h'"), -(25672, 0, "'a'"), -(25673, 0, "'n'"), -(25674, 0, "' '"), -(25675, 0, "'t'"), -(25676, 0, "'h'"), -(25677, 0, "'e'"), -(25678, 0, "' '"), -(25679, 0, "'f'"), -(25680, 0, "'i'"), -(25681, 0, "'b'"), -(25682, 0, "'e'"), -(25683, 0, "'r'"), -(25684, 0, "' '"), -(25685, 0, "'e'"), -(25686, 0, "'t'"), -(25687, 0, "'h'"), -(25688, 0, "'e'"), -(25689, 0, "'r'"), -(25690, 0, "'n'"), -(25691, 0, "'e'"), -(25692, 0, "'t'"), -(25693, 0, "' '"), -(25694, 0, "'c'"), -(25695, 0, "'o'"), -(25696, 0, "'m'"), -(25697, 0, "'i'"), -(25698, 0, "'n'"), -(25699, 0, "' '"), -(25699, 1, "''"), -(25699, 0, "'g'"), -(25700, 0, "' '"), -(25701, 0, "'i'"), -(25702, 0, "'n'"), -(25703, 0, "'t'"), -(25704, 0, "'o'"), -(25705, 0, "' '"), -(25706, 0, "'m'"), -(25707, 0, "'y'"), -(25708, 0, "' '"), -(25709, 0, "'a'"), -(25710, 0, "'p'"), -(25711, 0, "'a'"), -(25712, 0, "'r'"), -(25713, 0, "'t'"), -(25714, 0, "'m'"), -(25715, 0, "'e'"), -(25716, 0, "'n'"), -(25717, 0, "'t'"), -(25719, 1, "''"), -(25719, 0, "'n'"), -(25720, 0, "'n'"), -(25783, 0, "'A'"), -(25784, 0, "'n'"), -(25785, 0, "'d'"), -(25786, 0, "' '"), -(25787, 1, "''"), -(25787, 0, "'o'"), -(25789, 0, "'!'"), -(25789, 0, "' '"), -(25790, 0, "'l'"), -(25791, 0, "'o'"), -(25792, 0, "'o'"), -(25793, 0, "'k'"), -(25794, 6, "''"), -(25835, 0, "'I'"), -(25836, 0, "'t'"), -(25837, 0, "' '"), -(25838, 0, "'l'"), -(25838, 1, "''"), -(25837, 1, "''"), -(25836, 1, "''"), -(25835, 1, "''"), -(26003, 0, "'*'"), -(26008, 0, "'*'"), -(33468, 5, "'a'"), -(33469, 0, "'d'"), -(33470, 0, "'d'"), -(33471, 0, "'r'"), -(33472, 0, "'e'"), -(33473, 0, "'s'"), -(33474, 0, "'s'"), -(33475, 0, "'e'"), -(33476, 0, "'d'"), -(33517, 0, "' '"), -(33518, 0, "'O'"), -(33519, 0, "'r'"), -(33520, 0, "' '"), -(33521, 0, "'i'"), -(33522, 0, "'g'"), -(33523, 0, "'n'"), -(33524, 0, "'o'"), -(33525, 0, "'r'"), -(33526, 0, "'e'"), -(33527, 0, "'d'"), -(33528, 0, "' '"), -(33529, 0, "'('"), -(33530, 0, "'e'"), -(33531, 0, "'g'"), -(33532, 0, "' '"), -(33533, 0, "'g'"), -(33533, 1, "''"), -(33533, 0, "'G'"), -(33534, 0, "'i'"), -(33535, 0, "'t'"), -(33536, 0, "')'"), -(33536, 0, "' '"), -(33537, 0, "'g'"), -(33538, 0, "'r'"), -(33539, 0, "'o'"), -(33540, 0, "'w'"), -(33541, 0, "'s'"), -(33542, 0, "' '"), -(33543, 0, "'f'"), -(33544, 0, "'o'"), -(33545, 0, "'r'"), -(33546, 0, "'e'"), -(33547, 0, "'v'"), -(33548, 0, "'e'"), -(33549, 0, "'r'"), -(33550, 0, "' '"), -(33551, 0, "'a'"), -(33552, 0, "'n'"), -(33553, 0, "'d'"), -(33554, 0, "' '"), -(33555, 0, "'n'"), -(33556, 0, "'o'"), -(33557, 0, "'b'"), -(33558, 0, "'o'"), -(33559, 0, "'d'"), -(33560, 0, "'y'"), -(33561, 0, "' '"), -(33562, 0, "'c'"), -(33563, 0, "'a'"), -(33564, 0, "'r'"), -(33565, 0, "'e'"), -(33566, 0, "'s'"), -(33568, 0, "'.'"), -(33569, 0, "'n'"), -(33570, 0, "'n'"), -(33571, 4, "'B'"), -(33572, 0, "'u'"), -(33573, 0, "'t'"), -(33574, 0, "' '"), -(33575, 0, "'t'"), -(33576, 0, "'h'"), -(33577, 0, "'a'"), -(33578, 0, "'t'"), -(33579, 0, "'s'"), -(33580, 0, "' '"), -(33581, 0, "'o'"), -(33582, 0, "'r'"), -(33583, 0, "'t'"), -(33584, 0, "'h'"), -(33585, 0, "'o'"), -(33586, 0, "'g'"), -(33587, 0, "'o'"), -(33588, 0, "'n'"), -(33589, 0, "'a'"), -(33590, 0, "'l'"), -(33591, 0, "' '"), -(33591, 1, "''"), -(33591, 0, "' '"), -(33592, 0, "'t'"), -(33593, 0, "'o'"), -(33594, 0, "' '"), -(33595, 0, "'e'"), -(33596, 0, "'v'"), -(33597, 0, "'e'"), -(33598, 0, "'r'"), -(33599, 0, "'y'"), -(33600, 0, "'t'"), -(33601, 0, "'h'"), -(33602, 0, "'i'"), -(33603, 0, "'n'"), -(33604, 0, "'g'"), -(33605, 52, "''"), -(33521, 0, "'y'"), -(33522, 0, "'o'"), -(33523, 0, "'u'"), -(33524, 0, "' '"), -(33525, 0, "'c'"), -(33526, 0, "'o'"), -(33527, 0, "'u'"), -(33528, 0, "'l'"), -(33529, 0, "'d'"), -(33530, 0, "' '"), -(33531, 0, "'j'"), -(33532, 0, "'u'"), -(33533, 0, "'s'"), -(33534, 0, "'t'"), -(33535, 0, "' '"), -(33536, 0, "'i'"), -(33537, 0, "'g'"), -(33538, 0, "'n'"), -(33539, 0, "'o'"), -(33540, 0, "'r'"), -(33541, 0, "'e'"), -(33542, 0, "' '"), -(33543, 0, "'i'"), -(33544, 0, "'t'"), -(33545, 0, "' '"), -(33546, 0, "'l'"), -(33547, 0, "'i'"), -(33548, 0, "'k'"), -(33549, 0, "'e'"), -(33550, 0, "' '"), -(33551, 0, "'g'"), -(33552, 0, "'i'"), -(33553, 0, "'t'"), -(33554, 0, "' '"), -(33555, 0, "'d'"), -(33556, 0, "'o'"), -(33557, 0, "'e'"), -(33558, 0, "'s'"), -(33559, 47, "''"), -(33560, 0, "' '"), -(33561, 0, "'N'"), -(33562, 0, "'o'"), -(33563, 0, "'b'"), -(33564, 0, "'o'"), -(33565, 0, "'d'"), -(33566, 0, "'y'"), -(33567, 0, "' '"), -(33568, 0, "'s'"), -(33569, 0, "'e'"), -(33570, 0, "'e'"), -(33571, 0, "'m'"), -(33572, 0, "'s'"), -(33573, 0, "' '"), -(33574, 0, "'t'"), -(33575, 0, "'o'"), -(33576, 0, "' '"), -(33577, 0, "'m'"), -(33578, 0, "'i'"), -(33579, 0, "'n'"), -(33580, 0, "'d'"), -(33581, 0, "' '"), -(33582, 0, "'t'"), -(33583, 0, "'o'"), -(33584, 0, "'o'"), -(33585, 0, "' '"), -(33586, 0, "'m'"), -(33587, 0, "'u'"), -(33588, 0, "'c'"), -(33589, 0, "'h'"), -(33590, 0, "'.'"), -(33560, 31, "''"), -(33536, 0, "'m'"), -(33537, 0, "'o'"), -(33538, 0, "'s'"), -(33539, 0, "'t'"), -(33540, 0, "'l'"), -(33541, 0, "'y'"), -(33542, 0, "' '"), -(33566, 0, "' '"), -(33567, 0, "'-'"), -(33568, 0, "' '"), -(33569, 0, "'n'"), -(33570, 0, "'o'"), -(33571, 0, "'b'"), -(33572, 0, "'o'"), -(33573, 0, "'d'"), -(33574, 0, "'y'"), -(33575, 0, "' '"), -(33576, 0, "'s'"), -(33577, 0, "'e'"), -(33578, 0, "'e'"), -(33579, 0, "'m'"), -(33580, 0, "'s'"), -(33581, 0, "' '"), -(33582, 0, "'t'"), -(33583, 0, "'o'"), -(33584, 0, "' '"), -(33585, 0, "'c'"), -(33586, 0, "'a'"), -(33587, 0, "'r'"), -(33588, 0, "'e'"), -(33589, 0, "' '"), -(33590, 0, "'t'"), -(33591, 0, "'h'"), -(33592, 0, "'a'"), -(33593, 0, "'t'"), -(33594, 0, "' '"), -(33595, 0, "'t'"), -(33596, 0, "'h'"), -(33597, 0, "'e'"), -(33598, 0, "'i'"), -(33599, 0, "'r'"), -(33600, 0, "' '"), -(33601, 0, "'g'"), -(33602, 0, "'i'"), -(33603, 0, "'t'"), -(33604, 0, "' '"), -(33605, 0, "'r'"), -(33606, 0, "'e'"), -(33607, 0, "'p'"), -(33608, 0, "'o'"), -(33609, 0, "'s'"), -(33610, 0, "' '"), -(33611, 0, "'g'"), -(33612, 0, "'r'"), -(33613, 0, "'o'"), -(33614, 0, "'w'"), -(33615, 0, "' '"), -(33616, 0, "'w'"), -(33617, 0, "'i'"), -(33618, 0, "'t'"), -(33619, 0, "'h'"), -(33620, 0, "'o'"), -(33621, 0, "'u'"), -(33622, 0, "'t'"), -(33623, 0, "' '"), -(33624, 0, "'b'"), -(33625, 0, "'o'"), -(33626, 0, "'u'"), -(33627, 0, "'n'"), -(33628, 0, "'d'"), -(33629, 0, "','"), -(33630, 0, "' '"), -(33631, 0, "'f'"), -(33632, 0, "'o'"), -(33633, 0, "'r'"), -(33634, 0, "'e'"), -(33635, 0, "'v'"), -(33636, 0, "'e'"), -(33637, 0, "'r'"), -(33811, 0, "'G'"), -(33812, 0, "'o'"), -(33813, 0, "'s'"), -(33814, 0, "'h'"), -(33815, 0, "','"), -(33816, 0, "' '"), -(33817, 1, "''"), -(33817, 0, "'l'"), -(0, 1, "''"), -(27, 0, "'l'"), -(28, 0, "'i'"), -(29, 0, "'s'"), -(30, 0, "'t'"), -(31, 0, "' '"), -(17, 15, "''"), -(17, 15, "'M'"), -(18, 0, "'a'"), -(19, 0, "'k'"), -(20, 0, "'i'"), -(21, 0, "'n'"), -(22, 0, "'g'"), -(23, 0, "' '"), -(24, 0, "'c'"), -(25, 0, "'o'"), -(26, 0, "'l'"), -(27, 0, "'l'"), -(28, 0, "'a'"), -(29, 0, "'b'"), -(30, 0, "'o'"), -(31, 0, "'r'"), -(32, 0, "'a'"), -(33, 0, "'t'"), -(34, 0, "'i'"), -(35, 0, "'v'"), -(36, 0, "'e'"), -(37, 0, "' '"), -(38, 0, "'e'"), -(39, 0, "'d'"), -(40, 0, "'i'"), -(41, 0, "'t'"), -(42, 0, "'i'"), -(43, 0, "'n'"), -(44, 0, "'g'"), -(45, 0, "' '"), -(51, 0, "' '"), -(52, 0, "'f'"), -(53, 0, "'a'"), -(54, 0, "'s'"), -(55, 0, "'t'"), -(56, 0, "'e'"), -(57, 0, "'r'"), -(1856, 9, "''"), -(1855, 1, "''"), -(1854, 1, "''"), -(1853, 1, "''"), -(1853, 0, "'O'"), -(1854, 0, "'T'"), -(1853, 2, "''"), -(1853, 0, "'o'"), -(1854, 0, "'p'"), -(1855, 0, "'e'"), -(1856, 0, "'r'"), -(1857, 0, "'a'"), -(1858, 0, "'t'"), -(1859, 0, "'i'"), -(1860, 0, "'o'"), -(1861, 0, "'n'"), -(1862, 0, "'a'"), -(1863, 0, "'l'"), -(1864, 0, "' '"), -(1865, 0, "'t'"), -(1866, 0, "'r'"), -(1867, 0, "'a'"), -(1868, 0, "'n'"), -(1869, 0, "'s'"), -(1870, 0, "'f'"), -(1871, 0, "'o'"), -(1872, 0, "'r'"), -(1873, 0, "'m'"), -(1852, 0, "' '"), -(1853, 0, "'s'"), -(1854, 0, "'o'"), -(1855, 0, "'m'"), -(1856, 0, "'p'"), -(1857, 0, "'e'"), -(1857, 1, "''"), -(1856, 1, "''"), -(1856, 0, "'e'"), -(1857, 0, "' '"), -(1858, 0, "'p'"), -(1859, 0, "'a'"), -(1860, 0, "'r'"), -(1861, 0, "'t'"), -(1862, 0, "'i'"), -(1863, 0, "'c'"), -(1864, 0, "'u'"), -(1865, 0, "'l'"), -(1866, 0, "'a'"), -(1867, 0, "'r'"), -(1891, 0, "'a'"), -(1892, 0, "'l'"), -(1893, 0, "'g'"), -(1894, 0, "'o'"), -(1895, 0, "'r'"), -(1896, 0, "'i'"), -(1897, 0, "'t'"), -(1898, 0, "'h'"), -(1899, 0, "'m'"), -(1900, 0, "' '"), -(2299, 0, "' '"), -(2300, 0, "'B'"), -(2301, 0, "'u'"), -(2302, 0, "'t'"), -(2303, 0, "' '"), -(2304, 0, "'w'"), -(2305, 0, "'e'"), -(2306, 0, "'r'"), -(2307, 0, "'e'"), -(2308, 0, "' '"), -(2309, 0, "'t'"), -(2310, 0, "'h'"), -(2311, 0, "'e'"), -(2312, 0, "' '"), -(2313, 0, "'a'"), -(2314, 0, "'c'"), -(2315, 0, "'a'"), -(2316, 0, "'d'"), -(2317, 0, "'e'"), -(2318, 0, "'m'"), -(2319, 0, "'i'"), -(2320, 0, "'c'"), -(2321, 0, "'s'"), -(2322, 0, "' '"), -(2323, 0, "'u'"), -(2324, 0, "'s'"), -(2325, 0, "'i'"), -(2326, 0, "'n'"), -(2327, 0, "'g'"), -(2328, 0, "' '"), -(2329, 0, "'t'"), -(2330, 0, "'h'"), -(2331, 0, "'e'"), -(2332, 0, "' '"), -(2333, 0, "'s'"), -(2334, 0, "'l'"), -(2335, 0, "'o'"), -(2336, 0, "'w'"), -(2337, 0, "' '"), -(2338, 0, "'v'"), -(2339, 0, "'e'"), -(2340, 0, "'r'"), -(2341, 0, "'s'"), -(2342, 0, "'i'"), -(2343, 0, "'o'"), -(2344, 0, "'n'"), -(2345, 0, "' '"), -(2346, 0, "'o'"), -(2347, 0, "'r'"), -(2348, 0, "' '"), -(2349, 0, "'t'"), -(2350, 0, "'h'"), -(2351, 0, "' '"), -(2351, 1, "''"), -(2351, 0, "'e'"), -(2352, 0, "' '"), -(2353, 0, "'f'"), -(2354, 0, "'a'"), -(2355, 0, "'s'"), -(2356, 0, "'t'"), -(2357, 0, "' '"), -(2358, 0, "'e'"), -(2358, 1, "''"), -(2358, 0, "'v'"), -(2359, 0, "'e'"), -(2360, 0, "'r'"), -(2361, 0, "'s'"), -(2362, 0, "'i'"), -(2363, 0, "'o'"), -(2364, 0, "'n'"), -(2299, 1, "''"), -(2299, 0, "'n'"), -(2300, 0, "'n'"), -(2366, 0, "'?'"), -(2367, 0, "' '"), -(2368, 0, "'W'"), -(2369, 0, "'e'"), -(2370, 0, "'r'"), -(2371, 0, "'e'"), -(2372, 0, "' '"), -(2373, 0, "'t'"), -(2374, 0, "'h'"), -(2375, 0, "'e'"), -(2376, 0, "'y'"), -(2377, 0, "' '"), -(2368, 10, "'d'"), -(2369, 0, "'i'"), -(2370, 0, "'d'"), -(2371, 0, "' '"), -(2368, 4, "'i'"), -(2369, 0, "'d'"), -(2369, 1, "''"), -(2368, 1, "''"), -(2368, 0, "'D'"), -(2369, 0, "'i'"), -(2370, 0, "'d'"), -(2371, 0, "' '"), -(2372, 0, "'t'"), -(2373, 0, "'h'"), -(2374, 0, "'e'"), -(2375, 0, "'y'"), -(2376, 0, "' '"), -(2377, 0, "'h'"), -(2378, 0, "'a'"), -(2379, 0, "'v'"), -(2380, 0, "'e'"), -(2381, 0, "' '"), -(2382, 0, "'f'"), -(2383, 0, "'a'"), -(2384, 0, "'s'"), -(2385, 0, "'t'"), -(2386, 0, "' '"), -(2387, 0, "'v'"), -(2388, 0, "'e'"), -(2389, 0, "'r'"), -(2390, 0, "'s'"), -(2391, 0, "'i'"), -(2392, 0, "'o'"), -(2393, 0, "'n'"), -(2394, 0, "'s'"), -(2395, 0, "' '"), -(2396, 0, "'o'"), -(2397, 0, "'f'"), -(2398, 0, "' '"), -(2399, 0, "'s'"), -(2400, 0, "'o'"), -(2401, 0, "'m'"), -(2402, 0, "'e'"), -(2403, 0, "' '"), -(2404, 0, "'a'"), -(2405, 0, "'l'"), -(2406, 0, "'g'"), -(2407, 0, "'o'"), -(2408, 0, "'r'"), -(2409, 0, "'i'"), -(2410, 0, "'t'"), -(2411, 0, "'h'"), -(2412, 0, "'m'"), -(2413, 0, "'s'"), -(2414, 0, "' '"), -(2415, 0, "'a'"), -(2416, 0, "'n'"), -(2417, 0, "'d'"), -(2418, 0, "' '"), -(2419, 0, "'s'"), -(2420, 0, "'l'"), -(2421, 0, "'o'"), -(2422, 0, "'w'"), -(2423, 0, "' '"), -(2424, 0, "'v'"), -(2425, 0, "'e'"), -(2426, 0, "'r'"), -(2427, 0, "'s'"), -(2428, 0, "'i'"), -(2429, 0, "'o'"), -(2430, 0, "'n'"), -(2431, 0, "'s'"), -(2432, 0, "' '"), -(2433, 0, "'o'"), -(2434, 0, "'f'"), -(2435, 0, "' '"), -(2436, 0, "'t'"), -(2437, 0, "'h'"), -(2438, 0, "'e'"), -(2439, 0, "'r'"), -(2439, 1, "''"), -(2438, 1, "''"), -(2437, 1, "''"), -(2436, 1, "''"), -(2436, 0, "'o'"), -(2437, 0, "'t'"), -(2438, 0, "'h'"), -(2439, 0, "'e'"), -(2440, 0, "'r'"), -(2441, 0, "'s'"), -(2442, 0, "','"), -(2443, 0, "' '"), -(2444, 0, "'w'"), -(2445, 0, "'h'"), -(2446, 0, "'i'"), -(2447, 0, "'c'"), -(2448, 0, "'h'"), -(2449, 0, "' '"), -(2450, 0, "'m'"), -(2451, 0, "'i'"), -(2452, 0, "'g'"), -(2453, 0, "'h'"), -(2454, 0, "'t'"), -(2455, 0, "' '"), -(2456, 0, "'m'"), -(2457, 0, "'e'"), -(2458, 0, "'s'"), -(2459, 0, "'s'"), -(2460, 0, "' '"), -(2461, 0, "'u'"), -(2462, 0, "'p'"), -(2463, 0, "' '"), -(2464, 0, "'t'"), -(2465, 0, "'h'"), -(2466, 0, "'e'"), -(2467, 0, "'i'"), -(2468, 0, "'r'"), -(2469, 0, "' '"), -(2470, 0, "'r'"), -(2471, 0, "'e'"), -(2472, 0, "'s'"), -(2473, 0, "'u'"), -(2474, 0, "'l'"), -(2475, 0, "'t'"), -(2476, 0, "'s'"), -(2477, 0, "'?'"), -(2478, 0, "' '"), -(2479, 0, "'I'"), -(2480, 0, "'t'"), -(2481, 0, "'s'"), -(2482, 0, "' '"), -(2483, 0, "'i'"), -(2484, 0, "'m'"), -(2485, 0, "'p'"), -(2486, 0, "'i'"), -(2487, 0, "'s'"), -(2488, 0, "'s'"), -(2488, 1, "''"), -(2487, 1, "''"), -(2486, 1, "''"), -(2486, 0, "'o'"), -(2487, 0, "'s'"), -(2488, 0, "'s'"), -(2489, 0, "'i'"), -(2490, 0, "'b'"), -(2491, 0, "'l'"), -(2492, 0, "'e'"), -(2479, 3, "'R'"), -(2480, 0, "'e'"), -(2481, 0, "'a'"), -(2482, 0, "'d'"), -(2483, 0, "'i'"), -(2484, 0, "'n'"), -(2485, 0, "'g'"), -(2486, 0, "' '"), -(2487, 0, "'t'"), -(2488, 0, "'h'"), -(2489, 0, "'e'"), -(2490, 0, "' '"), -(2479, 12, "''"), -(2479, 0, "'I'"), -(2480, 0, "'t'"), -(2481, 0, "'s'"), -(2493, 0, "' '"), -(2494, 0, "'t'"), -(2495, 0, "'o'"), -(2496, 0, "' '"), -(2497, 0, "'t'"), -(2498, 0, "'e'"), -(2499, 0, "'l'"), -(2500, 0, "'l'"), -(2501, 0, "'1'"), -(2501, 1, "''"), -(2501, 0, "'!'"), -(2479, 3, "'F'"), -(2480, 0, "'r'"), -(2481, 0, "'o'"), -(2482, 0, "'m'"), -(2483, 0, "' '"), -(2484, 0, "'t'"), -(2485, 0, "'h'"), -(2486, 0, "'e'"), -(2487, 0, "' '"), -(2488, 0, "'p'"), -(2489, 0, "'a'"), -(2490, 0, "'p'"), -(2491, 0, "'e'"), -(2492, 0, "'r'"), -(2493, 0, "','"), -(2494, 0, "' '"), -(2495, 0, "'i'"), -(2496, 0, "'t'"), -(2497, 0, "'s'"), -(2917, 1, "''"), -(2917, 0, "'.'"), -(23861, 0, "'T'"), -(23861, 1, "''"), -(23861, 0, "'S'"), -(23862, 0, "'e'"), -(23863, 0, "'e'"), -(23864, 0, "','"), -(23865, 0, "' '"), -(23866, 0, "'i'"), -(23867, 1, "''"), -(23867, 0, "'i'"), -(23867, 1, "''"), -(23877, 0, "' '"), -(23878, 0, "'a'"), -(23879, 0, "'c'"), -(23880, 0, "'t'"), -(23881, 0, "'u'"), -(23882, 0, "'a'"), -(23883, 0, "'l'"), -(23884, 0, "'l'"), -(23885, 0, "'y'"), -(24156, 0, "' '"), -(24157, 0, "'/'"), -(24158, 0, "'/'"), -(24159, 0, "' '"), -(24160, 0, "'n'"), -(24161, 0, "'e'"), -(24162, 0, "'g'"), -(24163, 0, "'a'"), -(24164, 0, "'t'"), -(24165, 0, "'i'"), -(24166, 0, "'v'"), -(24167, 0, "'e'"), -(24168, 0, "' '"), -(24169, 0, "'='"), -(24170, 0, "' '"), -(24171, 0, "'d'"), -(24172, 0, "'e'"), -(24173, 0, "'l'"), -(24174, 0, "'e'"), -(24175, 0, "'t'"), -(24176, 0, "'e'"), -(24177, 0, "'d'"), -(24178, 0, "'.'"), -(24178, 1, "''"), -(24178, 0, "' '"), -(24179, 0, "'c'"), -(24180, 0, "'o'"), -(24181, 0, "'n'"), -(24182, 0, "'t'"), -(24183, 0, "'e'"), -(24184, 0, "'n'"), -(24185, 0, "'t'"), -(24110, 6, "'l'"), -(24060, 6, "'l'"), -(24106, 0, "'e'"), -(24061, 0, "'e'"), -(24108, 0, "'n'"), -(24062, 0, "'n'"), -(24163, 0, "'l'"), -(24164, 0, "'e'"), -(24165, 0, "'n'"), -(24166, 0, "' '"), -(24322, 0, "'F'"), -(24323, 0, "'o'"), -(24324, 0, "'r'"), -(24324, 1, "''"), -(24323, 1, "''"), -(24322, 1, "''"), -(24402, 0, "' '"), -(24403, 0, "'f'"), -(24404, 0, "'o'"), -(24405, 0, "'r'"), -(24406, 0, "' '"), -(24407, 0, "'t'"), -(24408, 0, "'h'"), -(24409, 0, "'i'"), -(24410, 0, "'s'"), -(24469, 0, "'j'"), -(24470, 0, "'u'"), -(24471, 0, "'s'"), -(24472, 0, "'t'"), -(24473, 0, "' '"), -(24502, 1, "''"), -(24502, 0, "'n'"), -(24503, 0, "'n'"), -(24516, 4, "' '"), -(24516, 1, "''"), -(24515, 1, "''"), -(24515, 0, "'u'"), -(24516, 0, "'n'"), -(24517, 0, "'i'"), -(24518, 0, "'v'"), -(24519, 0, "'e'"), -(24520, 0, "'r'"), -(24521, 0, "'s'"), -(24522, 0, "'a'"), -(24523, 0, "'l'"), -(24524, 0, "'l'"), -(24525, 0, "'y'"), -(24526, 0, "' '"), -(24527, 0, "'a'"), -(24663, 25, "'S'"), -(24664, 0, "'o'"), -(24665, 0, "' '"), -(24666, 0, "'u'"), -(24667, 0, "'s'"), -(24668, 0, "'i'"), -(24669, 0, "'n'"), -(24670, 0, "'g'"), -(24671, 0, "' '"), -(24672, 0, "'r'"), -(24673, 0, "'o'"), -(24674, 0, "'p'"), -(24675, 0, "'e'"), -(24676, 0, "'y'"), -(24666, 6, "'w'"), -(24667, 0, "'i'"), -(24668, 0, "'t'"), -(24669, 0, "'h'"), -(24670, 0, "' '"), -(24676, 0, "','"), -(24677, 0, "' '"), -(24678, 0, "'w'"), -(24679, 0, "'e'"), -(24680, 0, "' '"), -(24681, 0, "'u'"), -(24682, 0, "'s'"), -(24683, 0, "'e'"), -(24684, 0, "' '"), -(24685, 0, "'l'"), -(24686, 0, "'e'"), -(24687, 0, "'s'"), -(24688, 0, "'s'"), -(24689, 0, "' '"), -(24690, 0, "'R'"), -(24691, 0, "'A'"), -(24692, 0, "'M'"), -(24693, 0, "'.'"), -(24712, 10, "''"), -(24714, 0, "' '"), -(24715, 0, "'n'"), -(24716, 0, "'o'"), -(24717, 0, "'w'"), -(24788, 0, "'m'"), -(24789, 0, "'o'"), -(24790, 0, "'r'"), -(24791, 0, "'e'"), -(24792, 0, "' '"), -(24792, 1, "''"), -(24791, 1, "''"), -(24790, 1, "''"), -(24789, 1, "''"), -(24788, 1, "''"), -(24788, 0, "'2'"), -(24789, 0, "'+'"), -(24790, 0, "'x'"), -(24790, 1, "''"), -(24789, 1, "''"), -(24788, 1, "''"), -(24788, 0, "'m'"), -(24789, 0, "'o'"), -(24790, 0, "'r'"), -(24791, 0, "'e'"), -(24792, 0, "' '"), -(24793, 0, "'t'"), -(24794, 0, "'h'"), -(24795, 0, "'a'"), -(24796, 0, "'n'"), -(24797, 0, "' '"), -(24798, 0, "'t'"), -(24799, 0, "'w'"), -(24800, 0, "'i'"), -(24801, 0, "'c'"), -(24802, 0, "'e'"), -(24803, 0, "' '"), -(24804, 0, "'a'"), -(24805, 0, "'s'"), -(24806, 0, "' '"), -(24813, 0, "','"), -(24813, 1, "''"), -(24812, 1, "''"), -(24811, 1, "''"), -(24811, 0, "','"), -(24812, 0, "' '"), -(24813, 0, "'a'"), -(24814, 0, "'n'"), -(24815, 0, "'d'"), -(24816, 0, "' '"), -(24817, 0, "'i'"), -(24818, 0, "'t'"), -(24819, 0, "' '"), -(24820, 0, "'m'"), -(24821, 0, "'a'"), -(24822, 0, "'k'"), -(24823, 0, "'e'"), -(24824, 0, "'s'"), -(24825, 0, "' '"), -(24826, 0, "'t'"), -(24827, 0, "'h'"), -(24828, 0, "'e'"), -(24829, 0, "' '"), -(24830, 0, "'w'"), -(24831, 0, "'a'"), -(24832, 0, "'s'"), -(24833, 0, "'m'"), -(24834, 0, "' '"), -(24835, 0, "'b'"), -(24836, 0, "'u'"), -(24837, 0, "'n'"), -(24838, 0, "'d'"), -(24839, 0, "'l'"), -(24840, 0, "'e'"), -(24841, 50, "' '"), -(24842, 0, "'t'"), -(24843, 0, "'w'"), -(24844, 0, "'i'"), -(24845, 0, "'c'"), -(24846, 0, "'e'"), -(24847, 0, "' '"), -(24848, 0, "'a'"), -(24849, 0, "'s'"), -(24850, 0, "' '"), -(24851, 0, "'b'"), -(24852, 0, "'i'"), -(24853, 0, "'g'"), -(24854, 0, "' '"), -(24855, 0, "'('"), -(24856, 1, "''"), -(24862, 1, "''"), -(24861, 1, "''"), -(24861, 0, "'-'"), -(24862, 0, "'>'"), -(24869, 0, "')'"), -(24873, 0, "'S'"), -(24874, 0, "'o'"), -(24875, 0, "' '"), -(25936, 0, "' '"), -(25937, 0, "'T'"), -(25938, 0, "'h'"), -(25939, 0, "'i'"), -(25940, 0, "'s'"), -(25941, 0, "' '"), -(25942, 0, "'i'"), -(25943, 0, "'s'"), -(25944, 0, "' '"), -(25945, 0, "'k'"), -(25946, 0, "'i'"), -(25947, 0, "'n'"), -(25948, 0, "'d'"), -(25949, 0, "' '"), -(25950, 0, "'o'"), -(25951, 0, "'f'"), -(25952, 0, "' '"), -(25953, 0, "'u'"), -(25954, 0, "'s'"), -(25955, 0, "'e'"), -(25956, 0, "'l'"), -(25957, 0, "'e'"), -(25958, 0, "'s'"), -(25959, 0, "'s'"), -(25960, 0, "'s'"), -(25960, 1, "''"), -(25960, 0, "','"), -(25961, 0, "' '"), -(25962, 0, "'b'"), -(25963, 0, "'u'"), -(25964, 0, "'t'"), -(25965, 0, "' '"), -(25966, 0, "'i'"), -(25967, 0, "'t'"), -(25968, 0, "'s'"), -(25969, 0, "' '"), -(25970, 0, "'n'"), -(25971, 0, "'o'"), -(25972, 0, "'w'"), -(26060, 14, "''"), -(26056, 4, "'m'"), -(26057, 0, "'y'"), -(26058, 0, "' '"), -(26059, 0, "'i'"), -(26060, 0, "'n'"), -(26061, 0, "'t'"), -(26062, 0, "'e'"), -(26063, 0, "'r'"), -(26064, 0, "'n'"), -(26065, 0, "'e'"), -(26066, 0, "'t'"), -(26067, 0, "' '"), -(26068, 0, "'c'"), -(26069, 0, "'o'"), -(26070, 0, "'n'"), -(26071, 0, "'n'"), -(26072, 0, "'e'"), -(26073, 0, "'c'"), -(26074, 0, "'t'"), -(26075, 0, "'i'"), -(26076, 0, "'o'"), -(26077, 0, "'n'"), -(26078, 25, "''"), -(26036, 7, "'I'"), -(26037, 0, "' '"), -(26038, 0, "'c'"), -(26039, 0, "'a'"), -(26040, 0, "'n'"), -(26041, 0, "' '"), -(26042, 0, "'p'"), -(26043, 0, "'r'"), -(26044, 0, "'o'"), -(26045, 0, "'c'"), -(26046, 0, "'e'"), -(26047, 0, "'s'"), -(26048, 0, "'s'"), -(26049, 0, "' '"), -(26050, 0, "'e'"), -(26051, 0, "'d'"), -(26052, 0, "'i'"), -(26053, 0, "'t'"), -(26054, 0, "'s'"), -(26049, 6, "''"), -(26041, 8, "''"), -(26037, 4, "''"), -(26036, 1, "'This is'"), -(26036, 7, "'I'"), -(26037, 0, "'t'"), -(26038, 0, "'s'"), -(26036, 39, "'T'"), -(26037, 0, "'h'"), -(26038, 0, "'i'"), -(26039, 0, "'s'"), -(26040, 0, "' '"), -(26041, 0, "'c'"), -(26042, 0, "'o'"), -(26043, 0, "'u'"), -(26044, 0, "'l'"), -(26045, 0, "'d'"), -(26046, 0, "' '"), -(26047, 0, "'s'"), -(26048, 0, "'a'"), -(26049, 0, "'t'"), -(26050, 0, "'u'"), -(26051, 0, "'r'"), -(26052, 0, "'a'"), -(26053, 0, "'t'"), -(26054, 0, "'e'"), -(26055, 0, "' '"), -(26036, 20, "'I'"), -(26037, 0, "' '"), -(26038, 0, "'c'"), -(26039, 0, "'o'"), -(26040, 0, "'u'"), -(26041, 0, "'l'"), -(26042, 0, "'d'"), -(26043, 0, "' '"), -(26044, 0, "'s'"), -(26045, 0, "'a'"), -(26046, 0, "'t'"), -(26047, 0, "'u'"), -(26048, 0, "'r'"), -(26049, 0, "'a'"), -(26050, 0, "'t'"), -(26051, 0, "'e'"), -(26052, 0, "' '"), -(26053, 0, "'m'"), -(26054, 0, "'y'"), -(26055, 0, "' '"), -(26056, 0, "'i'"), -(26057, 0, "'n'"), -(26058, 0, "'t'"), -(26059, 0, "'e'"), -(26060, 0, "'r'"), -(26061, 0, "'n'"), -(26062, 0, "'e'"), -(26063, 0, "'t'"), -(26064, 0, "' '"), -(26065, 0, "'c'"), -(26066, 0, "'o'"), -(26067, 0, "'n'"), -(26068, 0, "'n'"), -(26069, 0, "'e'"), -(26070, 0, "'c'"), -(26071, 0, "'t'"), -(26072, 0, "'i'"), -(26073, 0, "'o'"), -(26074, 0, "'n'"), -(26075, 0, "' '"), -(26076, 0, "'a'"), -(26077, 0, "'n'"), -(26078, 0, "'d'"), -(26079, 0, "' '"), -(26080, 0, "'h'"), -(26081, 0, "'a'"), -(26082, 0, "'v'"), -(26083, 0, "'e'"), -(26084, 0, "' '"), -(26085, 0, "'C'"), -(26086, 0, "'P'"), -(26087, 0, "'U'"), -(26088, 0, "' '"), -(26089, 0, "'t'"), -(26090, 0, "'o'"), -(26091, 0, "' '"), -(26092, 0, "'s'"), -(26093, 0, "'p'"), -(26094, 0, "'a'"), -(26095, 0, "'r'"), -(26096, 0, "'e'"), -(26097, 0, "'.'"), -(26076, 0, "'w'"), -(26077, 0, "'i'"), -(26078, 0, "'t'"), -(26079, 0, "'h'"), -(26080, 0, "' '"), -(26081, 0, "'t'"), -(26082, 0, "'h'"), -(26083, 0, "'i'"), -(26084, 0, "'s'"), -(26085, 0, "' '"), -(26260, 36, "''"), -(26260, 0, "' '"), -(26261, 0, "'b'"), -(26262, 0, "'y'"), -(26263, 0, "' '"), -(26264, 0, "'i'"), -(26265, 0, "'n'"), -(26266, 0, "'t'"), -(26267, 0, "'e'"), -(26268, 0, "'r'"), -(26269, 0, "'l'"), -(26270, 0, "'e'"), -(26271, 0, "'a'"), -(26272, 0, "'v'"), -(26273, 0, "'i'"), -(26274, 0, "'n'"), -(26275, 0, "'g'"), -(26276, 0, "' '"), -(26277, 0, "'b'"), -(26277, 1, "''"), -(26277, 0, "'t'"), -(26278, 0, "'h'"), -(26279, 0, "'e'"), -(26280, 0, "' '"), -(26281, 0, "'b'"), -(26282, 0, "'-'"), -(26283, 0, "'t'"), -(26284, 0, "'r'"), -(26285, 0, "'e'"), -(26286, 0, "'e'"), -(26287, 0, "'u'"), -(26288, 0, "' '"), -(26288, 1, "''"), -(26287, 1, "''"), -(26287, 0, "' '"), -(26288, 0, "'u'"), -(26289, 0, "'p'"), -(26290, 0, "'d'"), -(26291, 0, "'a'"), -(26292, 0, "'t'"), -(26293, 0, "'e'"), -(26294, 0, "'s'"), -(26330, 57, "''"), -(26330, 0, "'w'"), -(26331, 0, "'h'"), -(26332, 0, "'i'"), -(26333, 0, "'c'"), -(26333, 1, "''"), -(26332, 1, "''"), -(26331, 1, "''"), -(26330, 1, "''"), -(26330, 0, "' '"), -(26331, 0, "'w'"), -(26332, 0, "'h'"), -(26333, 0, "'i'"), -(26334, 0, "'c'"), -(26335, 0, "'h'"), -(26336, 0, "' '"), -(26337, 0, "'s'"), -(26338, 0, "'h'"), -(26339, 0, "'o'"), -(26340, 0, "'u'"), -(26341, 0, "'l'"), -(26342, 0, "'d'"), -(26343, 0, "' '"), -(26344, 0, "'w'"), -(26345, 0, "'o'"), -(26346, 0, "'r'"), -(26347, 0, "'k'"), -(26351, 0, "' '"), -(26352, 0, "'j'"), -(26353, 0, "'u'"), -(26354, 0, "'s'"), -(26355, 0, "'t'"), -(26331, 0, "'i'"), -(26332, 0, "'n'"), -(26333, 0, "' '"), -(26334, 0, "'m'"), -(26335, 0, "'y'"), -(26336, 0, "' '"), -(26337, 0, "'f'"), -(26338, 0, "'u'"), -(26339, 0, "'t'"), -(26340, 0, "'u'"), -(26341, 0, "'r'"), -(26342, 0, "'e'"), -(26343, 0, "' '"), -(26349, 20, "''"), -(26349, 0, "'b'"), -(26350, 0, "'r'"), -(26351, 0, "'i'"), -(26352, 0, "'n'"), -(26353, 0, "'g'"), -(26354, 0, "'s'"), -(26355, 0, "' '"), -(26355, 1, "''"), -(26354, 1, "''"), -(26353, 1, "''"), -(26352, 1, "''"), -(26351, 1, "''"), -(26350, 1, "''"), -(26349, 1, "''"), -(26349, 0, "' '"), -(26350, 0, "'b'"), -(26351, 0, "'r'"), -(26352, 0, "'i'"), -(26353, 0, "'n'"), -(26354, 0, "'g'"), -(26355, 0, "'s'"), -(26356, 0, "' '"), -(26357, 0, "'t'"), -(26358, 0, "'h'"), -(26359, 0, "'a'"), -(26360, 0, "'t'"), -(26361, 0, "' '"), -(26362, 0, "'5'"), -(26363, 0, "'4'"), -(26363, 1, "''"), -(26362, 1, "''"), -(26362, 0, "'6'"), -(26363, 0, "'5'"), -(26364, 0, "'m'"), -(26365, 0, "'s'"), -(26366, 0, "' '"), -(26367, 0, "'d'"), -(26368, 0, "'o'"), -(26369, 0, "'w'"), -(26370, 0, "'n'"), -(26371, 0, "' '"), -(26372, 0, "'t'"), -(26373, 0, "'o'"), -(27443, 0, "' '"), -(27444, 0, "'t'"), -(27445, 0, "'o'"), -(27446, 0, "' '"), -(27447, 0, "'i'"), -(27448, 0, "'n'"), -(27449, 0, "'v'"), -(27450, 0, "'e'"), -(27451, 0, "'n'"), -(27452, 0, "'t'"), -(27453, 35, "''"), -(28101, 13, "''"), -(28206, 0, "'('"), -(28207, 0, "'s'"), -(28208, 0, "'u'"), -(28209, 0, "'p'"), -(28210, 0, "'e'"), -(28211, 0, "'r'"), -(28212, 0, "' '"), -(28213, 0, "'f'"), -(28214, 0, "'a'"), -(28215, 0, "'s'"), -(28216, 0, "'t'"), -(28217, 0, "' '"), -(28218, 0, "'C'"), -(28219, 0, "'R'"), -(28220, 0, "'D'"), -(28221, 0, "'T'"), -(28222, 0, "'s'"), -(28223, 0, "')'"), -(28224, 0, "' '"), -(28252, 9, "''"), -(28251, 1, "''"), -(28251, 0, "' '"), -(28252, 0, "'h'"), -(28253, 0, "'a'"), -(28254, 0, "'v'"), -(28255, 0, "'e'"), -(28256, 0, "' '"), -(28264, 0, "' '"), -(28264, 1, "''"), -(28264, 0, "' '"), -(28265, 0, "'S'"), -(28265, 1, "''"), -(28264, 1, "''"), -(28341, 0, "' '"), -(28342, 0, "'n'"), -(28343, 0, "'e'"), -(28344, 0, "'x'"), -(28345, 0, "'t'"), -(28493, 4, "''"), -(28496, 34, "''"), -(29223, 5, "''"), -(29233, 21, "''"), -(29233, 0, "' '"), -(29234, 0, "'i'"), -(29235, 0, "'n'"), -(29236, 0, "'s'"), -(29237, 0, "'t'"), -(29238, 0, "'e'"), -(29239, 0, "'a'"), -(29240, 0, "'d'"), -(29241, 0, "' '"), -(29242, 0, "'o'"), -(29243, 0, "'f'"), -(29244, 0, "' '"), -(29245, 0, "'d'"), -(29246, 0, "'o'"), -(29247, 0, "'c'"), -(29248, 0, "'u'"), -(29249, 0, "'m'"), -(29250, 0, "'e'"), -(29251, 0, "'n'"), -(29252, 0, "'t'"), -(29253, 0, "' '"), -(29254, 0, "'s'"), -(29255, 0, "'e'"), -(29256, 0, "'m'"), -(29257, 0, "'a'"), -(29258, 0, "'n'"), -(29259, 0, "'t'"), -(29260, 0, "'i'"), -(29261, 0, "'c'"), -(29262, 0, "'s'"), -(29393, 25, "''"), -(29392, 1, "''"), -(29392, 0, "' '"), -(29393, 0, "'u'"), -(29394, 0, "'s'"), -(29395, 0, "'s'"), -(29395, 1, "''"), -(29395, 0, "'e'"), -(29396, 0, "'s'"), -(31062, 12, "''"), -(31062, 0, "'A'"), -(31063, 0, "'n'"), -(31064, 0, "'d'"), -(31065, 0, "' '"), -(31065, 1, "''"), -(31064, 1, "''"), -(31063, 1, "''"), -(31062, 1, "''"), -(31061, 1, "''"), -(31060, 1, "''"), -(31060, 0, "','"), -(31061, 0, "' '"), -(31062, 0, "'a'"), -(31063, 0, "'n'"), -(31064, 0, "'d'"), -(31065, 0, "' '"), -(31066, 0, "'h'"), -(31066, 1, "''"), -(31139, 9, "'s'"), -(31140, 0, "'o'"), -(31141, 0, "'m'"), -(31142, 0, "'e'"), -(31143, 0, "'t'"), -(31144, 0, "'h'"), -(31145, 0, "'i'"), -(31146, 0, "'n'"), -(31147, 0, "'g'"), -(31131, 0, "'I'"), -(31132, 0, "'t'"), -(31133, 0, "' '"), -(31134, 0, "'w'"), -(31135, 0, "'o'"), -(31136, 0, "'u'"), -(31137, 0, "'l'"), -(31138, 0, "'d'"), -(31139, 0, "' '"), -(31140, 0, "'a'"), -(31141, 0, "'d'"), -(31142, 0, "'d'"), -(31143, 0, "' '"), -(31144, 0, "'c'"), -(31145, 0, "'o'"), -(31146, 0, "'m'"), -(31147, 0, "'p'"), -(31148, 0, "'l'"), -(31149, 0, "'e'"), -(31150, 0, "'x'"), -(31151, 0, "'i'"), -(31152, 0, "'t'"), -(31153, 0, "'y'"), -(31154, 0, "','"), -(31155, 0, "' '"), -(31156, 0, "'b'"), -(31157, 0, "'u'"), -(31158, 0, "'t'"), -(31131, 28, "''"), -(33990, 1, "''"), -(33989, 1, "''"), -(34100, 7, "'L'"), -(0, 0, "'n'"), -(1, 0, "'n'"), -(0, 0, "'>'"), -(1, 0, "' '"), -(2, 0, "'R'"), -(2, 1, "''"), -(2, 0, "'D'"), -(3, 0, "'R'"), -(4, 0, "'A'"), -(5, 0, "'F'"), -(6, 0, "'T'"), -(7, 0, "':'"), -(8, 0, "' '"), -(9, 0, "'N'"), -(10, 0, "'e'"), -(11, 0, "'e'"), -(12, 0, "'d'"), -(13, 0, "'s'"), -(14, 0, "' '"), -(15, 0, "'d'"), -(16, 0, "'i'"), -(17, 0, "'a'"), -(18, 0, "'g'"), -(19, 0, "'r'"), -(20, 0, "'a'"), -(21, 0, "'m'"), -(22, 0, "'s'"), -(23, 0, "' '"), -(24, 0, "'b'"), -(25, 0, "'e'"), -(26, 0, "'f'"), -(27, 0, "'o'"), -(28, 0, "'r'"), -(29, 0, "'e'"), -(30, 0, "' '"), -(31, 0, "'p'"), -(32, 0, "'u'"), -(33, 0, "'b'"), -(34, 0, "'l'"), -(35, 0, "'i'"), -(36, 0, "'s'"), -(37, 0, "'h'"), -(38, 0, "'i'"), -(39, 0, "'n'"), -(40, 0, "'g'"), -(41, 0, "'.'"), -(23, 0, "','"), -(24, 0, "' '"), -(25, 0, "'m'"), -(26, 0, "'a'"), -(27, 0, "'y'"), -(28, 0, "'b'"), -(29, 0, "'e'"), -(30, 0, "' '"), -(31, 0, "'s'"), -(32, 0, "'o'"), -(33, 0, "'m'"), -(34, 0, "'e'"), -(35, 0, "' '"), -(36, 0, "'t'"), -(37, 0, "'i'"), -(38, 0, "'d'"), -(39, 0, "'y'"), -(40, 0, "' '"), -(41, 0, "'u'"), -(42, 0, "'p'"), -(62, 0, "' '"), -(63, 0, "'D'"), -(64, 0, "'o'"), -(65, 0, "'n'"), -(66, 0, "'''"), -(67, 0, "'t'"), -(68, 0, "' '"), -(69, 0, "'s'"), -(70, 0, "'h'"), -(71, 0, "'a'"), -(72, 0, "'r'"), -(73, 0, "'e'"), -(74, 0, "' '"), -(75, 0, "'t'"), -(76, 0, "'h'"), -(77, 0, "'e'"), -(78, 0, "' '"), -(79, 0, "'l'"), -(80, 0, "'i'"), -(81, 0, "'n'"), -(82, 0, "'k'"), -(83, 0, "' '"), -(84, 0, "'t'"), -(85, 0, "'o'"), -(86, 0, "'o'"), -(87, 0, "' '"), -(88, 0, "'w'"), -(89, 0, "'i'"), -(90, 0, "'d'"), -(91, 0, "'e'"), -(92, 0, "'l'"), -(93, 0, "'y'"), -(94, 0, "'p'"), -(94, 1, "''"), -(94, 0, "' '"), -(95, 0, "'p'"), -(96, 0, "'l'"), -(97, 0, "'e'"), -(98, 0, "'a'"), -(99, 0, "'s'"), -(100, 0, "'e'"), -(101, 0, "'!'"), -(102, 0, "' '"), -(103, 0, "'T'"), -(104, 0, "'h'"), -(105, 0, "'i'"), -(106, 0, "'s'"), -(107, 0, "' '"), -(108, 0, "'i'"), -(109, 0, "'s'"), -(110, 0, "'n'"), -(111, 0, "'''"), -(112, 0, "'t'"), -(113, 0, "' '"), -(114, 0, "'r'"), -(115, 0, "'e'"), -(116, 0, "'a'"), -(117, 0, "'d'"), -(118, 0, "'y'"), -(119, 0, "' '"), -(120, 0, "'f'"), -(121, 0, "'o'"), -(122, 0, "'r'"), -(123, 0, "' '"), -(124, 0, "'N'"), -(124, 1, "''"), -(124, 0, "'H'"), -(125, 0, "'N'"), -(126, 0, "'.'"), -(34114, 0, "'n'"), -(34115, 0, "'n'"), -(34116, 0, "'#'"), -(34117, 0, "'#'"), -(34118, 0, "'#'"), -(34119, 0, "' '"), -(34120, 0, "'o'"), -(34121, 0, "'n'"), -(34121, 1, "''"), -(34120, 1, "''"), -(34120, 0, "'A'"), -(34121, 0, "'l'"), -(34122, 0, "'l'"), -(34123, 0, "' '"), -(34124, 0, "'o'"), -(34125, 0, "'f'"), -(34126, 0, "' '"), -(34127, 0, "'t'"), -(34128, 0, "'h'"), -(34129, 0, "'e'"), -(34130, 0, "'e'"), -(34131, 0, "' '"), -(34131, 1, "''"), -(34130, 1, "''"), -(34130, 0, "'s'"), -(34131, 0, "'e'"), -(34132, 0, "' '"), -(34133, 0, "'b'"), -(34134, 0, "'e'"), -(34135, 0, "'n'"), -(34136, 0, "'c'"), -(34137, 0, "'h'"), -(34138, 0, "'m'"), -(34139, 0, "'a'"), -(34140, 0, "'r'"), -(34141, 0, "'k'"), -(34142, 0, "'s'"), -(34143, 0, "' '"), -(34144, 0, "'s'"), -(34145, 0, "'h'"), -(34146, 0, "'o'"), -(34147, 0, "'w'"), -(34148, 0, "' '"), -(34149, 0, "'t'"), -(34150, 0, "'h'"), -(34151, 0, "'e'"), -(34152, 0, "' '"), -(34153, 0, "'e'"), -(34153, 1, "''"), -(34153, 0, "'r'"), -(34154, 0, "'e'"), -(34155, 0, "'s'"), -(34156, 0, "'u'"), -(34157, 0, "'l'"), -(34158, 0, "'t'"), -(34159, 0, "' '"), -(34160, 0, "'f'"), -(34161, 0, "'r'"), -(34162, 0, "'o'"), -(34163, 0, "'m'"), -(34164, 0, "' '"), -(34165, 0, "'m'"), -(34166, 0, "'u'"), -(34167, 0, "'l'"), -(34168, 0, "'t'"), -(34169, 0, "'i'"), -(34170, 0, "'p'"), -(34170, 1, "''"), -(34169, 1, "''"), -(34169, 0, "'i'"), -(34170, 0, "'p'"), -(34171, 0, "'l'"), -(34172, 0, "'e'"), -(34173, 0, "' '"), -(34174, 0, "'c'"), -(34175, 0, "'h'"), -(34176, 0, "'a'"), -(34177, 0, "'n'"), -(34178, 0, "'g'"), -(34179, 0, "'e'"), -(34180, 0, "'s'"), -(34181, 0, "'n'"), -(34182, 0, "'n'"), -(34119, 0, "' '"), -(34120, 0, "'T'"), -(34121, 0, "'h'"), -(34122, 0, "'i'"), -(34123, 0, "'s'"), -(34124, 0, "' '"), -(34125, 0, "'d'"), -(34126, 0, "'o'"), -(34127, 0, "'e'"), -(34128, 0, "'s'"), -(34129, 0, "'n'"), -(34130, 0, "'''"), -(34131, 0, "'t'"), -(34132, 0, "' '"), -(34120, 13, "''"), -(34119, 1, "''"), -(34120, 61, "'Y'"), -(34121, 0, "'o'"), -(34122, 0, "'u'"), -(34123, 0, "' '"), -(34124, 0, "'h'"), -(34125, 0, "'a'"), -(34126, 0, "'v'"), -(34127, 0, "'e'"), -(34128, 0, "' '"), -(34129, 0, "'t'"), -(34130, 0, "'o'"), -(34131, 0, "'o'"), -(34132, 0, "' '"), -(34133, 0, "'m'"), -(34134, 0, "'a'"), -(34135, 0, "'n'"), -(34136, 0, "'y'"), -(34137, 0, "' '"), -(34138, 0, "'v'"), -(34139, 0, "'a'"), -(34140, 0, "'r'"), -(34141, 0, "'i'"), -(34142, 0, "'a'"), -(34143, 0, "'b'"), -(34144, 0, "'l'"), -(34145, 0, "'e'"), -(34146, 0, "'s'"), -(34147, 0, "' '"), -(34148, 0, "'c'"), -(34149, 0, "'h'"), -(34150, 0, "'a'"), -(34151, 0, "'n'"), -(34152, 0, "'g'"), -(34153, 0, "'i'"), -(34154, 0, "'n'"), -(34155, 0, "'g'"), -(34115, 0, "'n'"), -(34159, 0, "'Y'"), -(34160, 0, "'e'"), -(34161, 0, "'a'"), -(34162, 0, "'h'"), -(34163, 0, "','"), -(34164, 0, "' '"), -(34165, 0, "'w'"), -(34166, 0, "'e'"), -(34167, 0, "'l'"), -(34168, 0, "'l'"), -(34169, 0, "' '"), -(34170, 0, "'s'"), -(34171, 0, "'p'"), -(34172, 0, "'o'"), -(34173, 0, "'t'"), -(34174, 0, "'t'"), -(34175, 0, "'e'"), -(34176, 0, "'d'"), -(34177, 0, "'.'"), -(34178, 0, "' '"), -(34179, 0, "'E'"), -(34180, 0, "'a'"), -(34181, 0, "'c'"), -(34182, 0, "'h'"), -(34183, 0, "' '"), -(34184, 0, "'o'"), -(34185, 0, "'f'"), -(34186, 0, "' '"), -(34187, 0, "'t'"), -(34188, 0, "'h'"), -(34189, 0, "'e'"), -(34190, 0, "'s'"), -(34191, 0, "'e'"), -(34192, 0, "' '"), -(34193, 0, "'t'"), -(34194, 0, "'e'"), -(34195, 0, "'s'"), -(34196, 0, "'t'"), -(34197, 0, "'s'"), -(34198, 0, "' '"), -(34199, 0, "'c'"), -(34200, 0, "'h'"), -(34201, 0, "'a'"), -(34202, 0, "'n'"), -(34203, 0, "'g'"), -(34204, 0, "'e'"), -(34205, 0, "'s'"), -(34206, 0, "' '"), -(34207, 0, "'m'"), -(34208, 0, "'u'"), -(34209, 0, "'l'"), -(34210, 0, "'t'"), -(34211, 0, "'i'"), -(34212, 0, "'p'"), -(34213, 0, "'l'"), -(34214, 0, "'e'"), -(34215, 0, "' '"), -(34216, 0, "'v'"), -(34217, 0, "'e'"), -(34217, 1, "''"), -(34217, 0, "'a'"), -(34218, 0, "'r'"), -(34219, 0, "'i'"), -(34220, 0, "'a'"), -(34221, 0, "'b'"), -(34222, 0, "'l'"), -(34223, 0, "'e'"), -(34224, 0, "'s'"), -(34225, 0, "'.'"), -(34226, 0, "' '"), -(34227, 0, "'M'"), -(34228, 0, "'a'"), -(34229, 0, "'y'"), -(34230, 0, "'b'"), -(34231, 0, "'e'"), -(34232, 0, "' '"), -(34233, 0, "'m'"), -(34234, 0, "'y'"), -(34235, 0, "' '"), -(34236, 0, "'d'"), -(34236, 1, "''"), -(34236, 0, "'r'"), -(34237, 0, "'e'"), -(34238, 0, "'f'"), -(34239, 0, "'e'"), -(34240, 0, "'r'"), -(34241, 0, "'e'"), -(34242, 0, "'n'"), -(34243, 0, "'c'"), -(34244, 0, "'e'"), -(34245, 0, "' '"), -(34246, 0, "'i'"), -(34247, 0, "'m'"), -(34248, 0, "'p'"), -(34249, 0, "'l'"), -(34250, 0, "'e'"), -(34251, 0, "'m'"), -(34252, 0, "'e'"), -(34253, 0, "'n'"), -(34254, 0, "'t'"), -(34255, 0, "'a'"), -(34256, 0, "'t'"), -(34257, 0, "'i'"), -(34258, 0, "'o'"), -(34259, 0, "'n'"), -(34260, 0, "' '"), -(34261, 0, "'i'"), -(34262, 0, "'s'"), -(34263, 0, "' '"), -(34264, 0, "'f'"), -(34265, 0, "'a'"), -(34266, 0, "'s'"), -(34267, 0, "'t'"), -(34268, 0, "'e'"), -(34269, 0, "'r'"), -(34270, 0, "' '"), -(34271, 0, "'t'"), -(34272, 0, "'h'"), -(34273, 0, "'a'"), -(34274, 0, "'n'"), -(34275, 0, "' '"), -(34276, 0, "'a'"), -(34277, 0, "'u'"), -(34278, 0, "'t'"), -(34279, 0, "'o'"), -(34280, 0, "'m'"), -(34281, 0, "'e'"), -(34282, 0, "'r'"), -(34283, 0, "'g'"), -(34284, 0, "'e'"), -(34285, 0, "' '"), -(34286, 0, "'s'"), -(34287, 0, "'i'"), -(34288, 0, "'m'"), -(34289, 0, "'p'"), -(34290, 0, "'l'"), -(34291, 0, "'y'"), -(34292, 0, "' '"), -(34159, 134, "'Yeah, well spotted. Each of these tests changes multiple variables. Maybe my reference implementation is faster than automerge simply'"), -(33271, 0, "' '"), -(33272, 0, "'w'"), -(33273, 0, "'h'"), -(33274, 0, "'o'"), -(33275, 0, "'l'"), -(33276, 0, "'e'"), -(33277, 0, "' '"), -(33278, 0, "'d'"), -(33279, 0, "'a'"), -(33280, 0, "'t'"), -(33281, 0, "'a'"), -(33282, 0, "' '"), -(33282, 1, "''"), -(33282, 0, "'b'"), -(33283, 0, "'a'"), -(33284, 0, "'s'"), -(33285, 0, "'e'"), -(33286, 0, "' '"), -(33287, 0, "'f'"), -(33288, 0, "'u'"), -(33289, 0, "'l'"), -(33290, 0, "'l'"), -(33291, 0, "' '"), -(33292, 0, "'o'"), -(33293, 0, "'f'"), -(33294, 5, "''"), -(33299, 0, "'s'"), -(33300, 7, "''"), -(33314, 0, "'I'"), -(33315, 0, "' '"), -(33316, 0, "'w'"), -(33317, 0, "'a'"), -(33318, 0, "'n'"), -(33319, 0, "'t'"), -(33320, 0, "' '"), -(33321, 0, "'t'"), -(33322, 0, "'o'"), -(33323, 0, "' '"), -(33324, 0, "'b'"), -(33325, 0, "'e'"), -(33326, 0, "' '"), -(33327, 0, "'a'"), -(33328, 0, "'b'"), -(33329, 0, "'l'"), -(33330, 0, "'e'"), -(33331, 0, "' '"), -(33332, 0, "'t'"), -(33333, 0, "'o'"), -(33334, 0, "' '"), -(33335, 0, "'u'"), -(33336, 0, "'p'"), -(33337, 0, "'d'"), -(33338, 0, "'a'"), -(33339, 0, "'t'"), -(33340, 0, "'e'"), -(33341, 0, "' '"), -(33342, 0, "'a'"), -(33343, 0, "' '"), -(33344, 0, "'s'"), -(33345, 0, "'i'"), -(33346, 0, "'n'"), -(33347, 0, "'g'"), -(33348, 0, "'l'"), -(33349, 0, "'e'"), -(33350, 0, "' '"), -(33351, 0, "'i'"), -(33352, 0, "'t'"), -(33353, 0, "'m'"), -(33354, 0, "'e'"), -(33354, 1, "''"), -(33353, 1, "''"), -(33353, 0, "'e'"), -(33354, 0, "'m'"), -(33355, 0, "' '"), -(33356, 0, "'q'"), -(33357, 0, "'u'"), -(33358, 0, "'i'"), -(33359, 0, "'c'"), -(33360, 0, "'k'"), -(33361, 0, "'l'"), -(33362, 0, "'y'"), -(33363, 0, "'.'"), -(33364, 84, "' '"), -(33365, 0, "'W'"), -(33366, 0, "'i'"), -(33367, 0, "'t'"), -(33368, 0, "'h'"), -(33369, 0, "' '"), -(33370, 0, "'y'"), -(33371, 0, "'j'"), -(33372, 0, "'s'"), -(33373, 0, "' '"), -(33374, 0, "'a'"), -(33375, 0, "'n'"), -(33376, 0, "'d'"), -(33377, 0, "' '"), -(33378, 0, "'a'"), -(33379, 0, "'u'"), -(33380, 0, "'t'"), -(33381, 0, "'o'"), -(33382, 0, "'m'"), -(33383, 0, "'e'"), -(33384, 0, "'r'"), -(33385, 0, "'g'"), -(33386, 0, "'e'"), -(33387, 0, "' '"), -(33388, 0, "'t'"), -(33389, 0, "'o'"), -(33390, 0, "'d'"), -(33391, 0, "'a'"), -(33392, 0, "'y'"), -(33393, 0, "' '"), -(33394, 0, "'y'"), -(33395, 0, "'o'"), -(33396, 0, "'u'"), -(33397, 0, "' '"), -(33398, 0, "'n'"), -(33399, 0, "'e'"), -(33400, 0, "'e'"), -(33401, 0, "'d'"), -(33402, 0, "' '"), -(33403, 0, "'t'"), -(33404, 0, "'o'"), -(33405, 0, "':'"), -(33510, 0, "'n'"), -(33511, 0, "'T'"), -(33512, 0, "'h'"), -(33513, 0, "'i'"), -(33514, 0, "'s'"), -(33515, 0, "' '"), -(33516, 0, "'i'"), -(33517, 0, "'s'"), -(33518, 0, "' '"), -(33519, 0, "'g'"), -(33520, 0, "'o'"), -(33521, 0, "'i'"), -(33522, 0, "'n'"), -(33523, 0, "'g'"), -(33524, 0, "' '"), -(33525, 0, "'t'"), -(33526, 0, "'o'"), -(33527, 0, "' '"), -(33528, 0, "'b'"), -(33529, 0, "'e'"), -(33530, 0, "' '"), -(33531, 0, "'a'"), -(33532, 0, "'w'"), -(33533, 0, "'u'"), -(33534, 0, "'f'"), -(33534, 1, "''"), -(33533, 1, "''"), -(33533, 0, "'f'"), -(33534, 0, "'u'"), -(33535, 0, "'l'"), -(33536, 0, "'l'"), -(33537, 0, "'y'"), -(33538, 0, "' '"), -(33539, 0, "'s'"), -(33540, 0, "'l'"), -(33541, 0, "'o'"), -(33542, 0, "'w'"), -(33543, 0, "','"), -(33544, 0, "' '"), -(33544, 1, "''"), -(33543, 1, "''"), -(33364, 0, "'n'"), -(33365, 0, "'n'"), -(33366, 1, "''"), -(33259, 0, "' '"), -(33260, 0, "'M'"), -(33261, 0, "'o'"), -(33262, 0, "'s'"), -(33263, 0, "'t'"), -(33264, 0, "' '"), -(33265, 0, "'a'"), -(33266, 0, "'p'"), -(33267, 0, "'p'"), -(33268, 0, "'l'"), -(33269, 0, "'i'"), -(33270, 0, "'c'"), -(33271, 0, "'a'"), -(33272, 0, "'t'"), -(33273, 0, "'i'"), -(33274, 0, "'o'"), -(33275, 0, "'n'"), -(33276, 0, "'s'"), -(33277, 0, "' '"), -(33278, 0, "'a'"), -(33279, 0, "'r'"), -(33280, 0, "'e'"), -(33281, 0, "'n'"), -(33282, 0, "' '"), -(33282, 1, "''"), -(33282, 0, "'''"), -(33283, 0, "'t'"), -(33284, 0, "' '"), -(33285, 0, "'c'"), -(33286, 0, "'o'"), -(33287, 0, "'l'"), -(33288, 0, "'l'"), -(33289, 0, "'a'"), -(33290, 0, "'b'"), -(33291, 0, "'o'"), -(33292, 0, "'r'"), -(33293, 0, "'a'"), -(33294, 0, "'t'"), -(33295, 0, "'i'"), -(33296, 0, "'v'"), -(33297, 0, "'e'"), -(33298, 0, "' '"), -(33299, 0, "'t'"), -(33300, 0, "'e'"), -(33301, 0, "'x'"), -(33302, 0, "'t'"), -(33303, 0, "' '"), -(33304, 0, "'e'"), -(33305, 0, "'d'"), -(33306, 0, "'t'"), -(33307, 0, "'i'"), -(33307, 1, "''"), -(33306, 1, "''"), -(33306, 0, "'i'"), -(33307, 0, "'t'"), -(33308, 0, "'o'"), -(33309, 0, "'r'"), -(33310, 0, "'s'"), -(33311, 0, "'.'"), -(33416, 1, "''"), -(33312, 0, "' '"), -(33312, 1, "''"), -(33312, 0, "' '"), -(33313, 0, "'M'"), -(33314, 0, "'o'"), -(33315, 0, "'s'"), -(33316, 0, "'t'"), -(33317, 0, "' '"), -(33318, 0, "'a'"), -(33319, 0, "'a'"), -(33320, 0, "'p'"), -(33321, 0, "'p'"), -(33322, 0, "'s'"), -(33318, 5, "'a'"), -(33319, 0, "'p'"), -(33320, 0, "'p'"), -(33321, 0, "'s'"), -(33322, 0, "' '"), -(33323, 0, "'h'"), -(33324, 0, "'a'"), -(33325, 0, "'v'"), -(33326, 0, "'e'"), -(33327, 0, "' '"), -(33328, 0, "'l'"), -(33329, 0, "'o'"), -(33330, 0, "'t'"), -(33331, 0, "'s'"), -(33332, 0, "' '"), -(33333, 0, "'o'"), -(33334, 0, "'f'"), -(33335, 0, "' '"), -(33336, 0, "'s'"), -(33337, 0, "'m'"), -(33338, 0, "'a'"), -(33339, 0, "'l'"), -(33340, 0, "'l'"), -(33341, 0, "' '"), -(33342, 0, "'o'"), -(33343, 0, "'b'"), -(33344, 0, "'j'"), -(33345, 0, "'e'"), -(33346, 0, "'c'"), -(33347, 0, "'t'"), -(33348, 0, "'s'"), -(33349, 0, "' '"), -(33350, 0, "'w'"), -(33351, 0, "'h'"), -(33352, 0, "'i'"), -(33353, 0, "'c'"), -(33354, 0, "'h'"), -(33355, 0, "' '"), -(33356, 0, "'a'"), -(33357, 0, "'r'"), -(33358, 0, "'e'"), -(33359, 0, "' '"), -(33360, 0, "'e'"), -(33361, 0, "'a'"), -(33362, 0, "'c'"), -(33363, 0, "'h'"), -(33364, 0, "' '"), -(33360, 5, "'r'"), -(33361, 0, "'a'"), -(33362, 0, "'r'"), -(33363, 0, "'e'"), -(33364, 0, "'l'"), -(33365, 0, "'y'"), -(33366, 0, "' '"), -(33367, 0, "'w'"), -(33368, 0, "'r'"), -(33369, 0, "'i'"), -(33370, 0, "'t'"), -(33371, 0, "'t'"), -(33372, 0, "'e'"), -(33373, 0, "'n'"), -(33374, 0, "' '"), -(33375, 0, "'t'"), -(33376, 0, "'o'"), -(33377, 0, "'.'"), -(33313, 65, "''"), -(33312, 1, "''"), -(33311, 0, "','"), -(33312, 0, "' '"), -(33313, 0, "'w'"), -(33314, 0, "'h'"), -(33315, 0, "'e'"), -(33316, 0, "'r'"), -(33317, 0, "'e'"), -(33318, 0, "' '"), -(33319, 0, "'t'"), -(33320, 0, "'h'"), -(33321, 0, "'e'"), -(33322, 0, "'r'"), -(33323, 0, "'e'"), -(33324, 0, "'''"), -(33325, 0, "'s'"), -(33326, 0, "' '"), -(33327, 0, "'o'"), -(33328, 0, "'n'"), -(33329, 0, "'e'"), -(33330, 0, "' '"), -(33331, 0, "'d'"), -(33332, 0, "'o'"), -(33333, 0, "'c'"), -(33334, 0, "'u'"), -(33335, 0, "'m'"), -(33336, 0, "'e'"), -(33337, 0, "'n'"), -(33338, 0, "'t'"), -(33339, 0, "' '"), -(33340, 0, "'l'"), -(33340, 1, "''"), -(33340, 0, "'y'"), -(33341, 0, "'o'"), -(33342, 0, "'u'"), -(33343, 0, "' '"), -(33344, 0, "'c'"), -(33345, 0, "'a'"), -(33346, 0, "'n'"), -(33347, 0, "' '"), -(33348, 0, "'l'"), -(33349, 0, "'o'"), -(33350, 0, "'a'"), -(33351, 0, "'d'"), -(33352, 0, "' '"), -(33353, 0, "'o'"), -(33354, 0, "'n'"), -(33355, 0, "'c'"), -(33356, 0, "'e'"), -(33357, 0, "','"), -(33358, 0, "' '"), -(33359, 0, "'k'"), -(33360, 0, "'e'"), -(33361, 0, "'e'"), -(33362, 0, "'p'"), -(33363, 0, "' '"), -(33364, 0, "'o'"), -(33365, 0, "'p'"), -(33366, 0, "'e'"), -(33367, 0, "'n'"), -(33368, 0, "' '"), -(33369, 0, "'a'"), -(33370, 0, "'n'"), -(33371, 0, "'d'"), -(33372, 0, "' '"), -(33373, 0, "'t'"), -(33374, 0, "'h'"), -(33375, 0, "'e'"), -(33376, 0, "'n'"), -(33377, 0, "' '"), -(33378, 0, "'e'"), -(33378, 1, "''"), -(33378, 0, "'s'"), -(33379, 0, "'a'"), -(33380, 0, "'v'"), -(33381, 0, "'e'"), -(33311, 71, "''"), -(33311, 0, "'.'"), -(33312, 0, "' '"), -(33313, 0, "'I'"), -(33314, 0, "'n'"), -(33315, 0, "'t'"), -(33316, 0, "'e'"), -(33317, 0, "'a'"), -(33317, 1, "''"), -(33316, 1, "''"), -(33315, 1, "''"), -(33315, 0, "'s'"), -(33316, 0, "'t'"), -(33317, 0, "'e'"), -(33318, 0, "'a'"), -(33319, 0, "'d'"), -(33320, 0, "' '"), -(33321, 0, "'t'"), -(33322, 0, "'h'"), -(33323, 0, "'e'"), -(33324, 0, "'y'"), -(33325, 0, "' '"), -(33326, 0, "'h'"), -(33327, 0, "'a'"), -(33328, 0, "'v'"), -(33329, 0, "'e'"), -(33330, 0, "' '"), -(33331, 0, "'a'"), -(33332, 0, "'d'"), -(33332, 1, "''"), -(33331, 1, "''"), -(33331, 0, "'d'"), -(33332, 0, "'a'"), -(33333, 0, "'t'"), -(33334, 0, "'a'"), -(33335, 0, "'b'"), -(33336, 0, "'a'"), -(33337, 0, "'s'"), -(33338, 0, "'e'"), -(33339, 0, "'s'"), -(33340, 0, "' '"), -(33341, 0, "'f'"), -(33342, 0, "'u'"), -(33343, 0, "'l'"), -(33344, 0, "'l'"), -(33321, 0, "'m'"), -(33322, 0, "'o'"), -(33323, 0, "'s'"), -(33324, 0, "'t'"), -(33325, 0, "' '"), -(33326, 0, "'a'"), -(33327, 0, "'p'"), -(33328, 0, "'p'"), -(33329, 0, "'s'"), -(33330, 0, "' '"), -(33331, 5, "''"), -(33350, 0, "' '"), -(33351, 0, "'o'"), -(33352, 0, "'f'"), -(33353, 0, "' '"), -(33354, 0, "'t'"), -(33355, 0, "'i'"), -(33356, 0, "'n'"), -(33357, 0, "'y'"), -(33358, 0, "' '"), -(33359, 0, "'o'"), -(33360, 0, "'b'"), -(33361, 0, "'j'"), -(33362, 0, "'e'"), -(33363, 0, "'c'"), -(33364, 0, "'t'"), -(33365, 0, "'s'"), -(33366, 0, "','"), -(33367, 0, "' '"), -(33368, 0, "'e'"), -(33369, 0, "'a'"), -(33370, 0, "'c'"), -(33371, 0, "'h'"), -(33372, 0, "' '"), -(33373, 0, "'o'"), -(33374, 0, "'f'"), -(33375, 0, "' '"), -(33376, 0, "'w'"), -(33377, 0, "'h'"), -(33378, 0, "'i'"), -(33379, 0, "'c'"), -(33380, 0, "'h'"), -(33381, 0, "' '"), -(33382, 0, "'i'"), -(33383, 0, "'s'"), -(33384, 0, "' '"), -(33385, 0, "'a'"), -(33386, 0, "'l'"), -(33387, 0, "'m'"), -(33388, 0, "'o'"), -(33389, 0, "'s'"), -(33390, 0, "'t'"), -(33391, 0, "' '"), -(33392, 0, "'n'"), -(33393, 0, "'e'"), -(33394, 0, "'v'"), -(33395, 0, "'e'"), -(33396, 0, "'r'"), -(33385, 12, "'v'"), -(33386, 0, "'e'"), -(33387, 0, "'r'"), -(33388, 0, "'y'"), -(33389, 0, "' '"), -(33390, 0, "'r'"), -(33391, 0, "'a'"), -(33392, 0, "'r'"), -(33393, 0, "'e'"), -(33394, 0, "'l'"), -(33395, 0, "'y'"), -(33396, 0, "' '"), -(33397, 0, "'w'"), -(33398, 0, "'r'"), -(33399, 0, "'i'"), -(33400, 0, "'t'"), -(33401, 0, "'t'"), -(33402, 0, "'e'"), -(33403, 0, "'n'"), -(33404, 0, "' '"), -(33405, 0, "'t'"), -(33406, 0, "'o'"), -(33408, 1, "''"), -(33408, 0, "'n'"), -(33409, 0, "'n'"), -(33410, 104, "''"), -(33409, 1, "''"), -(33408, 1, "''"), -(33408, 0, "'j'"), -(33408, 1, "''"), -(33408, 0, "'n'"), -(33409, 1, "''"), -(33408, 1, "''"), -(33408, 0, "' '"), -(33587, 0, "'.'"), -(33588, 140, "''"), -(33616, 0, "' '"), -(33617, 0, "'t'"), -(33618, 0, "'h'"), -(33619, 0, "'a'"), -(33620, 0, "'n'"), -(33621, 0, "' '"), -(33622, 0, "'t'"), -(33623, 0, "'h'"), -(33624, 0, "'i'"), -(33625, 0, "'s'"), -(33681, 8, "''"), -(33661, 14, "'w'"), -(33662, 0, "'o'"), -(33663, 0, "'r'"), -(33664, 0, "'k'"), -(33665, 0, "'i'"), -(33666, 0, "'n'"), -(33667, 0, "'g'"), -(33668, 0, "' '"), -(33669, 0, "'o'"), -(33670, 0, "'n'"), -(33671, 0, "' '"), -(33671, 1, "''"), -(33735, 5, "' '"), -(33736, 0, "'a'"), -(33737, 0, "'t'"), -(33746, 0, "' '"), -(33747, 0, "'h'"), -(33748, 0, "'e'"), -(33749, 0, "'r'"), -(33750, 0, "'e'"), -(31861, 0, "' '"), -(31862, 0, "'m'"), -(31863, 0, "'u'"), -(31864, 0, "'c'"), -(31865, 0, "'h'"), -(33172, 0, "' '"), -(33173, 0, "'o'"), -(33174, 0, "'t'"), -(33175, 0, "'h'"), -(33176, 0, "'e'"), -(33177, 0, "'r'"), -(33178, 9, "' '"), -(33179, 0, "'p'"), -(33180, 0, "'e'"), -(33181, 0, "'r'"), -(33182, 0, "'o'"), -(33183, 0, "'f'"), -(33183, 1, "''"), -(33182, 1, "''"), -(33182, 0, "'f'"), -(33183, 0, "'o'"), -(33184, 0, "'r'"), -(33185, 0, "'m'"), -(33186, 0, "'a'"), -(33187, 0, "'n'"), -(33188, 0, "'c'"), -(33189, 0, "'e'"), -(33190, 0, "' '"), -(33191, 0, "'m'"), -(33192, 0, "'e'"), -(33193, 0, "'a'"), -(33194, 0, "'s'"), -(33195, 0, "'u'"), -(33196, 0, "'r'"), -(33197, 0, "'e'"), -(33252, 0, "' '"), -(33253, 0, "'h'"), -(33254, 0, "'o'"), -(33255, 0, "'w'"), -(33255, 1, "''"), -(33254, 1, "''"), -(33253, 1, "''"), -(33252, 1, "''"), -(33335, 22, "'U'"), -(33336, 0, "'s'"), -(33337, 0, "'u'"), -(33338, 0, "'a'"), -(33339, 0, "'l'"), -(33340, 0, "'l'"), -(33341, 0, "'y'"), -(33342, 0, "' '"), -(33343, 0, "'w'"), -(33344, 0, "'e'"), -(33343, 2, "'a'"), -(33344, 0, "'p'"), -(33345, 0, "'p'"), -(33346, 0, "'l'"), -(33347, 0, "'i'"), -(33348, 0, "'c'"), -(33349, 0, "'a'"), -(33350, 0, "'t'"), -(33351, 0, "'i'"), -(33352, 0, "'o'"), -(33353, 0, "'n'"), -(33354, 0, "'s'"), -(33355, 0, "' '"), -(33356, 0, "'h'"), -(33357, 0, "'a'"), -(33358, 0, "'v'"), -(33359, 0, "'e'"), -(33391, 1, "''"), -(33391, 0, "'.'"), -(33392, 0, "' '"), -(33393, 0, "'E'"), -(33394, 0, "'a'"), -(33395, 0, "'c'"), -(33396, 0, "'h'"), -(33397, 0, "' '"), -(33398, 6, "''"), -(33400, 0, "' '"), -(33401, 0, "'t'"), -(33402, 0, "'h'"), -(33403, 0, "'o'"), -(33404, 0, "'s'"), -(33405, 0, "'e'"), -(33406, 0, "' '"), -(33407, 0, "'o'"), -(33408, 0, "'b'"), -(33409, 0, "'j'"), -(33410, 0, "'e'"), -(33411, 0, "'c'"), -(33412, 0, "'t'"), -(33413, 0, "'s'"), -(33414, 6, "''"), -(33441, 1, "''"), -(33441, 0, "'n'"), -(33442, 0, "'n'"), -(33443, 0, "'I'"), -(33444, 0, "'f'"), -(33445, 0, "' '"), -(33446, 0, "'y'"), -(33447, 0, "'o'"), -(33448, 0, "'u'"), -(33449, 0, "' '"), -(33450, 0, "'w'"), -(33451, 0, "'a'"), -(33452, 0, "'n'"), -(33453, 0, "'t'"), -(33454, 0, "' '"), -(33455, 0, "'t'"), -(33456, 0, "'o'"), -(33457, 0, "' '"), -(33458, 0, "'u'"), -(33459, 0, "'p'"), -(33460, 0, "'d'"), -(33461, 0, "'a'"), -(33462, 0, "'t'"), -(33463, 0, "'e'"), -(33464, 0, "' '"), -(33465, 0, "'a'"), -(33466, 0, "' '"), -(33467, 0, "'s'"), -(33468, 0, "'i'"), -(33469, 0, "'n'"), -(33470, 0, "'g'"), -(33471, 0, "'l'"), -(33472, 0, "'e'"), -(33473, 0, "' '"), -(33474, 0, "'o'"), -(33475, 0, "'b'"), -(33476, 0, "'j'"), -(33477, 0, "'e'"), -(33478, 0, "'c'"), -(33479, 0, "'t'"), -(33480, 0, "' '"), -(33481, 0, "'i'"), -(33482, 0, "'n'"), -(33483, 0, "' '"), -(33484, 0, "'d'"), -(33485, 0, "'a'"), -(33486, 0, "' '"), -(33486, 1, "''"), -(33485, 1, "''"), -(33485, 0, "' '"), -(33485, 1, "''"), -(33484, 1, "''"), -(33484, 0, "'a'"), -(33485, 0, "' '"), -(33486, 0, "'d'"), -(33487, 0, "'a'"), -(33488, 0, "'t'"), -(33489, 0, "'a'"), -(33490, 0, "' '"), -(33490, 1, "''"), -(33490, 0, "'b'"), -(33491, 0, "'a'"), -(33492, 0, "'s'"), -(33493, 0, "'e'"), -(33494, 0, "' '"), -(33495, 4, "''"), -(33494, 1, "''"), -(33499, 3, "'o'"), -(33500, 0, "'r'"), -(33517, 0, "','"), -(33517, 1, "''"), -(34348, 48, "'W'"), -(34349, 0, "'h'"), -(34348, 2, "'Holy cow, automerge's javascript is really slow!'"), -(427, 0, "' '"), -(428, 0, "'('"), -(428, 1, "''"), -(427, 1, "''"), -(427, 0, "' '"), -(428, 0, "'('"), -(429, 0, "'w'"), -(430, 0, "'o'"), -(431, 0, "'w'"), -(431, 1, "''"), -(430, 1, "''"), -(429, 1, "''"), -(429, 0, "'w'"), -(430, 0, "'o'"), -(431, 0, "'w'"), -(432, 0, "','"), -(433, 0, "' '"), -(433, 1, "''"), -(432, 1, "''"), -(431, 1, "''"), -(430, 1, "''"), -(429, 1, "''"), -(429, 0, "'W'"), -(430, 0, "'o'"), -(431, 0, "'w'"), -(432, 0, "','"), -(433, 0, "' '"), -(434, 0, "'y'"), -(435, 0, "'e'"), -(436, 0, "'s'"), -(437, 0, "'s'"), -(438, 0, "'!'"), -(439, 0, "')'"), -(248, 1, "''"), -(248, 0, "'n'"), -(249, 0, "'n'"), -(928, 53, "''"), -(928, 0, "' '"), -(929, 0, "'-'"), -(930, 0, "' '"), -(931, 0, "'s'"), -(932, 0, "'o'"), -(933, 0, "'m'"), -(934, 0, "'e'"), -(935, 0, "'t'"), -(936, 0, "'h'"), -(937, 0, "'i'"), -(938, 0, "'n'"), -(939, 0, "'g'"), -(940, 0, "' '"), -(941, 0, "'w'"), -(942, 0, "'a'"), -(943, 0, "'s'"), -(944, 0, "' '"), -(945, 0, "'f'"), -(946, 0, "'i'"), -(947, 0, "'s'"), -(948, 0, "'h'"), -(949, 0, "'y'"), -(950, 0, "' '"), -(951, 0, "'h'"), -(952, 0, "'e'"), -(953, 0, "'r'"), -(954, 0, "'e'"), -(929, 0, "'a'"), -(930, 0, "'t'"), -(931, 0, "' '"), -(932, 0, "'t'"), -(933, 0, "'h'"), -(934, 0, "'e'"), -(935, 0, "' '"), -(936, 0, "'p'"), -(937, 0, "'a'"), -(938, 0, "'p'"), -(939, 0, "'e'"), -(940, 0, "'r'"), -(941, 0, "' '"), -(942, 0, "'t'"), -(943, 0, "'o'"), -(944, 0, "' '"), -(945, 0, "'s'"), -(946, 0, "'e'"), -(947, 0, "'e'"), -(948, 0, "' '"), -(949, 0, "'w'"), -(950, 0, "'h'"), -(951, 0, "'a'"), -(952, 0, "'t'"), -(953, 0, "' '"), -(954, 0, "'w'"), -(955, 0, "'a'"), -(956, 0, "'s'"), -(957, 0, "' '"), -(958, 0, "'g'"), -(959, 0, "'o'"), -(960, 0, "'i'"), -(961, 0, "'n'"), -(962, 0, "'g'"), -(963, 0, "' '"), -(964, 0, "'o'"), -(965, 0, "'n'"), -(966, 0, "' '"), -(969, 0, "'b'"), -(970, 0, "'e'"), -(971, 0, "'c'"), -(972, 0, "'a'"), -(973, 0, "'u'"), -(974, 0, "'s'"), -(975, 0, "'e'"), -(976, 0, "' '"), -(1003, 0, "'I'"), -(1004, 0, "'t'"), -(1005, 0, "' '"), -(1006, 0, "'t'"), -(1007, 0, "'u'"), -(1008, 0, "'r'"), -(1009, 0, "'n'"), -(1010, 0, "'s'"), -(1011, 0, "' '"), -(1012, 0, "'o'"), -(1013, 0, "'u'"), -(1014, 0, "'t'"), -(1015, 0, "' '"), -(1016, 1, "''"), -(1016, 0, "'w'"), -(1003, 14, "'I'"), -(1004, 0, "'n'"), -(1005, 0, "' '"), -(1006, 0, "'t'"), -(1007, 0, "'h'"), -(1008, 0, "'e'"), -(1009, 0, "'i'"), -(1010, 0, "'r'"), -(1011, 0, "' '"), -(1012, 0, "'p'"), -(1013, 0, "'a'"), -(1014, 0, "'p'"), -(1015, 0, "'e'"), -(1016, 0, "'r'"), -(1017, 0, "' '"), -(1018, 0, "'w'"), -(1366, 6, "''"), -(1366, 5, "' '"), -(1367, 0, "'i'"), -(1368, 0, "'m'"), -(1369, 0, "'p'"), -(1370, 0, "'l'"), -(1371, 0, "'e'"), -(1372, 0, "'m'"), -(1373, 0, "'e'"), -(1374, 0, "'n'"), -(1375, 0, "'t'"), -(1376, 0, "'a'"), -(1377, 0, "'t'"), -(1378, 0, "'i'"), -(1379, 0, "'o'"), -(1380, 0, "'n'"), -(1362, 4, "'t'"), -(1363, 0, "'h'"), -(1364, 0, "'i'"), -(1365, 0, "'s'"), -(1366, 0, "' '"), -(1367, 0, "'p'"), -(1368, 0, "'a'"), -(1369, 0, "'r'"), -(1370, 0, "'t'"), -(1371, 0, "'i'"), -(1372, 0, "'c'"), -(1373, 0, "'u'"), -(1374, 0, "'l'"), -(1375, 0, "'a'"), -(1376, 0, "'r'"), -(1362, 4, "'t'"), -(1363, 0, "'h'"), -(1364, 0, "'e'"), -(1365, 0, "'i'"), -(1366, 0, "'r'"), -(1395, 0, "' '"), -(1396, 0, "'W'"), -(1397, 0, "'r'"), -(1398, 0, "'i'"), -(1399, 0, "'t'"), -(1400, 0, "'t'"), -(1401, 0, "'e'"), -(1402, 0, "'n'"), -(1403, 0, "' '"), -(1404, 0, "'i'"), -(1405, 0, "'n'"), -(1406, 0, "' '"), -(1407, 0, "'a'"), -(1408, 0, "' '"), -(1404, 5, "'u'"), -(1405, 0, "'p'"), -(1406, 0, "' '"), -(1407, 0, "'a'"), -(1408, 0, "'s'"), -(1409, 0, "' '"), -(1410, 0, "'S'"), -(1411, 0, "'c'"), -(1412, 0, "'i'"), -(1413, 0, "'e'"), -(1414, 0, "'n'"), -(1415, 0, "'c'"), -(1416, 0, "'e'"), -(1417, 0, "' '"), -(1418, 0, "'P'"), -(1419, 0, "'a'"), -(1420, 0, "'p'"), -(1421, 0, "'e'"), -(1422, 0, "'r'"), -(1410, 0, "'u'"), -(1411, 0, "'b'"), -(1411, 1, "''"), -(1410, 1, "''"), -(1410, 0, "'P'"), -(1411, 0, "'U'"), -(1412, 0, "'b'"), -(1413, 0, "'l'"), -(1414, 0, "'i'"), -(1414, 1, "''"), -(1413, 1, "''"), -(1412, 1, "''"), -(1411, 1, "''"), -(1411, 0, "'u'"), -(1412, 0, "'b'"), -(1413, 0, "'l'"), -(1414, 0, "'i'"), -(1415, 0, "'s'"), -(1416, 0, "'h'"), -(1417, 0, "'e'"), -(1418, 0, "'d'"), -(1419, 0, "' '"), -(1433, 0, "' '"), -(1434, 0, "'i'"), -(1435, 0, "'t'"), -(1436, 0, "' '"), -(1437, 0, "'m'"), -(1438, 0, "'a'"), -(1439, 0, "'k'"), -(1440, 0, "'e'"), -(1441, 0, "'s'"), -(1442, 0, "' '"), -(1443, 0, "'p'"), -(1444, 0, "'e'"), -(1445, 0, "'o'"), -(1446, 0, "'p'"), -(1447, 0, "'l'"), -(1448, 0, "'e'"), -(1449, 0, "' '"), -(1450, 0, "'t'"), -(1451, 0, "'h'"), -(1452, 0, "'i'"), -(1453, 0, "'n'"), -(1454, 0, "'k'"), -(1455, 0, "' '"), -(1456, 0, "'t'"), -(1457, 0, "'h'"), -(1458, 0, "'i'"), -(1459, 0, "'s'"), -(798, 10, "'h'"), -(799, 0, "'a'"), -(800, 0, "'n'"), -(801, 0, "'g'"), -(802, 0, "' '"), -(803, 0, "'o'"), -(804, 0, "'n'"), -(805, 0, "' '"), -(806, 0, "'-'"), -(807, 1, "''"), -(798, 0, "'-'"), -(799, 0, "' '"), -(881, 6, "'W'"), -(937, 24, "''"), -(936, 1, "''"), -(1366, 65, "''"), -(1366, 0, "'n'"), -(903, 463, "'I took a closer look at the paper - because something was fishy here. In their paper when a user pasted a big chunk of text (say, 1000 characters), instead of creating 1 operation with 1000 characters, their code split the insert into 1000 operations. And each of those inserts needed to be processed separately. Duh - of course it'll be slow if you do that! This isn't a problem with the algorithm. This is just a problem with *their particular implementation*.'"), -(1478, 0, "' '"), -(1479, 0, "'Written up as Published Science Paper it makes people think thisn'"), -(1479, 0, "'?'"), -(1480, 0, "'B'"), -(1481, 0, "'e'"), -(1481, 1, "''"), -(1480, 1, "''"), -(1479, 1, "''"), -(1479, 0, "'B'"), -(1480, 0, "'e'"), -(1481, 0, "'c'"), -(1482, 0, "'a'"), -(1483, 0, "'u'"), -(1484, 0, "'s'"), -(1485, 0, "'e'"), -(1486, 0, "','"), -(1487, 0, "' '"), -(1488, 1, "''"), -(1488, 0, "'w'"), -(1552, 0, "' '"), -(1553, 0, "'i'"), -(1554, 0, "'s'"), -(1555, 0, "' '"), -(1556, 0, "'a'"), -(1557, 0, "' '"), -(1558, 0, "'F'"), -(1559, 0, "'a'"), -(1560, 0, "'c'"), -(1561, 0, "'t'"), -(1562, 0, "' '"), -(1563, 0, "'r'"), -(1564, 0, "'a'"), -(1565, 0, "'t'"), -(1566, 0, "'h'"), -(1567, 0, "'e'"), -(1568, 0, "'r'"), -(1569, 0, "' '"), -(1570, 0, "'t'"), -(1571, 0, "'h'"), -(1572, 0, "'a'"), -(1573, 0, "'n'"), -(1574, 0, "' '"), -(1575, 0, "'a'"), -(1576, 0, "' '"), -(1563, 14, "'O'"), -(1564, 0, "'f'"), -(1565, 0, "' '"), -(1566, 0, "'T'"), -(1567, 0, "'h'"), -(1568, 0, "'e'"), -(1569, 0, "' '"), -(1570, 0, "'U'"), -(1571, 0, "'n'"), -(1572, 0, "'i'"), -(1573, 0, "'v'"), -(1574, 0, "'e'"), -(1575, 0, "'r'"), -(1576, 0, "'s'"), -(1577, 0, "'e'"), -(1578, 0, "' '"), -(1579, 0, "'r'"), -(1580, 0, "'a'"), -(1581, 0, "'t'"), -(1582, 0, "'h'"), -(1583, 0, "'e'"), -(1584, 0, "'r'"), -(1585, 0, "' '"), -(1586, 0, "'t'"), -(1587, 0, "'h'"), -(1588, 0, "'a'"), -(1589, 0, "'n'"), -(1590, 0, "' '"), -(1591, 0, "'a'"), -(1592, 0, "' '"), -(1592, 1, "''"), -(1592, 0, "'n'"), -(1593, 0, "' '"), -(1594, 0, "'i'"), -(1595, 0, "'m'"), -(1596, 0, "'p'"), -(1597, 0, "'l'"), -(1598, 0, "'e'"), -(1599, 0, "'m'"), -(1600, 0, "'e'"), -(1601, 0, "'t'"), -(1602, 0, "'n'"), -(1603, 0, "'a'"), -(1604, 0, "'t'"), -(1605, 0, "'i'"), -(1606, 0, "'o'"), -(1607, 0, "'n'"), -(1608, 0, "' '"), -(1609, 0, "'d'"), -(1610, 0, "'e'"), -(1594, 17, "'i'"), -(1595, 0, "'m'"), -(1596, 0, "'p'"), -(1597, 0, "'l'"), -(1598, 0, "'e'"), -(1599, 0, "'m'"), -(1600, 0, "'e'"), -(1601, 0, "'n'"), -(1602, 0, "'t'"), -(1603, 0, "'a'"), -(1604, 0, "'t'"), -(1605, 0, "'i'"), -(1606, 0, "'o'"), -(1607, 0, "'n'"), -(1608, 0, "' '"), -(1609, 0, "'d'"), -(1610, 0, "'e'"), -(1611, 0, "'t'"), -(1612, 0, "'a'"), -(1613, 0, "'i'"), -(1614, 0, "'l'"), -(1615, 0, "' '"), -(1616, 0, "'o'"), -(1617, 0, "'f'"), -(1618, 0, "' '"), -(1619, 0, "'s'"), -(1620, 0, "'o'"), -(1621, 0, "'m'"), -(1622, 0, "'e'"), -(1623, 0, "' '"), -(1367, 257, "'I wouldn't mind so much if I didn't have so many people flipping me a link to the paper and asking me about it. Because, written up as Published Science Paper it makes people think this is a Fact Of The Universe rather than an implementation detail of some'"), -(1623, 1, "''"), -(1623, 0, "'n'"), -(1616, 7, "'i'"), -(1617, 0, "'n'"), -(1618, 0, "' '"), -(1619, 0, "'s'"), -(1620, 0, "'o'"), -(1621, 0, "'m'"), -(1622, 0, "'e'"), -(1623, 0, "' '"), -(1616, 8, "'o'"), -(1617, 0, "'f'"), -(1618, 0, "' '"), -(1619, 0, "'s'"), -(1620, 0, "'o'"), -(1621, 0, "'m'"), -(1622, 0, "'e'"), -(1623, 0, "' '"), -(1624, 0, "'c'"), -(1625, 0, "'o'"), -(1626, 0, "'d'"), -(1627, 0, "'e'"), -(1628, 0, "' '"), -(1629, 0, "'w'"), -(1630, 0, "'r'"), -(1631, 0, "'i'"), -(1632, 0, "'t'"), -(1633, 0, "'e'"), -(1633, 1, "''"), -(1633, 0, "'t'"), -(1634, 0, "'e'"), -(1635, 0, "'n'"), -(1636, 0, "' '"), -(1637, 0, "'b'"), -(1638, 0, "'y'"), -(1639, 0, "' '"), -(1640, 0, "'a'"), -(1641, 0, "' '"), -(1641, 1, "''"), -(1641, 0, "'n'"), -(1642, 0, "' '"), -(1643, 0, "'o'"), -(1644, 0, "'v'"), -(1645, 0, "'e'"), -(1646, 0, "'r'"), -(1647, 0, "'w'"), -(1648, 0, "'o'"), -(1649, 0, "'r'"), -(1650, 0, "'k'"), -(1651, 0, "'e'"), -(1652, 0, "'d'"), -(1653, 0, "' '"), -(1654, 0, "'r'"), -(1655, 0, "'e'"), -(1656, 0, "'s'"), -(1657, 0, "'e'"), -(1658, 0, "'a'"), -(1659, 0, "'r'"), -(1660, 0, "'c'"), -(1661, 0, "'h'"), -(1662, 0, "'e'"), -(1663, 0, "'r'"), -(1664, 0, "'.'"), -(1666, 0, "'n'"), -(1423, 11, "'s'"), -(1424, 0, "'e'"), -(1425, 0, "'n'"), -(1426, 0, "'d'"), -(1427, 0, "'i'"), -(1428, 0, "'n'"), -(1429, 0, "'g'"), -(1423, 7, "''"), -(1423, 3, "''"), -(1427, 0, "'i'"), -(1428, 0, "'n'"), -(1429, 0, "'g'"), -(1430, 3, "''"), -(1444, 0, "' '"), -(1445, 0, "'('"), -(1446, 0, "'p'"), -(1447, 0, "'o'"), -(1448, 0, "'i'"), -(1449, 0, "'n'"), -(1450, 0, "'t'"), -(1451, 0, "'e'"), -(1452, 0, "'d'"), -(1453, 0, "'l'"), -(1454, 0, "'y'"), -(1455, 0, "')'"), -(1467, 5, "'w'"), -(1468, 0, "'h'"), -(1469, 0, "'a'"), -(1470, 0, "'t'"), -(1471, 0, "' '"), -(1472, 0, "'I'"), -(1473, 0, "' '"), -(1474, 0, "'t'"), -(1475, 0, "'h'"), -(1476, 0, "'i'"), -(1477, 0, "'n'"), -(1478, 0, "'k'"), -(1479, 0, "' '"), -(1480, 0, "'a'"), -(1481, 0, "'b'"), -(1482, 0, "'o'"), -(1483, 0, "'u'"), -(1484, 0, "'t'"), -(1490, 10, "'W'"), -(1669, 0, "'S'"), -(1670, 0, "'o'"), -(1671, 0, "','"), -(1672, 0, "' '"), -(1674, 1, "''"), -(1673, 1, "''"), -(1673, 0, "'n'"), -(1676, 0, "' '"), -(1677, 14, "'t'"), -(1678, 0, "'h'"), -(1679, 0, "'e'"), -(1680, 0, "' '"), -(1681, 0, "'s'"), -(1682, 0, "'c'"), -(1683, 0, "'i'"), -(1677, 7, "'T'"), -(1678, 0, "'h'"), -(1679, 0, "'e'"), -(1680, 0, "' '"), -(1681, 0, "'s'"), -(1682, 0, "'c'"), -(1683, 0, "'i'"), -(1684, 0, "'e'"), -(1685, 0, "'n'"), -(1686, 0, "'c'"), -(1687, 0, "'e'"), -(1688, 0, "' '"), -(1689, 0, "'i'"), -(1690, 0, "'s'"), -(1691, 0, "'n'"), -(1692, 0, "'''"), -(1693, 0, "'t'"), -(1694, 0, "' '"), -(1695, 0, "'r'"), -(1696, 0, "'e'"), -(1697, 0, "'a'"), -(1698, 0, "'l'"), -(1699, 0, "'!'"), -(1700, 0, "' '"), -(1701, 0, "'I'"), -(1702, 0, "'''"), -(1703, 0, "'m'"), -(1703, 1, "''"), -(1702, 1, "''"), -(1701, 1, "''"), -(1700, 1, "''"), -(1695, 5, "'r'"), -(1696, 0, "'i'"), -(1697, 0, "'g'"), -(1698, 0, "'h'"), -(1699, 0, "'t'"), -(1700, 0, "'!'"), -(1701, 0, "' '"), -(1702, 0, "'P'"), -(1703, 0, "'l'"), -(1704, 0, "'e'"), -(1705, 0, "'a'"), -(1706, 0, "'s'"), -(1707, 0, "'e'"), -(1708, 0, "' '"), -(1709, 0, "'b'"), -(1710, 0, "'e'"), -(1711, 0, "'l'"), -(1712, 0, "'i'"), -(1713, 0, "'e'"), -(1714, 0, "'v'"), -(1715, 0, "'e'"), -(1716, 0, "' '"), -(1717, 0, "'m'"), -(1718, 0, "'e'"), -(1719, 0, "'!'"), -(1669, 5, "'N'"), -(1671, 0, "'o'"), -(1672, 0, "'o'"), -(1693, 5, "'r'"), -(1694, 0, "'e'"), -(1695, 0, "'a'"), -(1696, 0, "'l'"), -(2349, 13, "''"), -(2362, 0, "'n'"), -(2363, 0, "'n'"), -(2364, 0, "'A'"), -(2365, 0, "'n'"), -(2366, 0, "'d'"), -(2367, 0, "' '"), -(2368, 0, "'d'"), -(2369, 0, "'i'"), -(2370, 0, "'f'"), -(2371, 0, "'f'"), -(2372, 0, "'e'"), -(2373, 0, "'r'"), -(2374, 0, "'e'"), -(2375, 0, "'n'"), -(2375, 1, "''"), -(2375, 0, "'e'"), -(2376, 0, "'n'"), -(2377, 0, "'t'"), -(2377, 1, "''"), -(2376, 1, "''"), -(2375, 1, "''"), -(2364, 11, "''"), -(2363, 1, "''"), -(2362, 1, "''"), -(2738, 0, "' '"), -(2739, 0, "'o'"), -(2740, 0, "'f'"), -(2741, 0, "' '"), -(2742, 0, "'t'"), -(2743, 0, "'h'"), -(2744, 0, "'i'"), -(2745, 0, "'s'"), -(2746, 0, "' '"), -(2747, 0, "'c'"), -(2748, 0, "'o'"), -(2749, 0, "'d'"), -(2750, 0, "'e'"), -(2938, 1, "''"), -(2950, 1, "''"), -(2950, 48, "''"), -(3018, 0, "'['"), -(3050, 0, "']'"), -(3051, 0, "'('"), -(3052, 0, "'(https://josephg.com/blog/crdts-are-the-future/)'"), -(3100, 0, "')'"), -(3101, 0, "'.'"), -(3102, 0, "' '"), -(3103, 0, "'A'"), -(3104, 0, "'n'"), -(3105, 0, "'d'"), -(3106, 0, "' '"), -(3107, 0, "'m'"), -(3108, 0, "'a'"), -(3109, 0, "'y'"), -(3110, 0, "'b'"), -(3111, 0, "'e'"), -(3112, 0, "' '"), -(3113, 0, "'o'"), -(3114, 0, "'t'"), -(3115, 0, "'h'"), -(3116, 0, "'e'"), -(3117, 0, "'r'"), -(3118, 0, "' '"), -(3119, 0, "'k'"), -(3120, 0, "'i'"), -(3121, 0, "'n'"), -(3122, 0, "'d'"), -(3123, 0, "'s'"), -(3124, 0, "' '"), -(3125, 0, "'o'"), -(3126, 0, "'f'"), -(3127, 0, "' '"), -(3128, 0, "'f'"), -(3128, 1, "''"), -(3128, 0, "'s'"), -(3129, 0, "'o'"), -(3130, 0, "'f'"), -(3113, 18, "'a'"), -(3114, 0, "'l'"), -(3115, 0, "'l'"), -(3116, 0, "' '"), -(3117, 0, "'o'"), -(3118, 0, "'u'"), -(3119, 0, "'r'"), -(3120, 0, "' '"), -(3121, 0, "'s'"), -(3122, 0, "'o'"), -(3123, 0, "'f'"), -(3124, 0, "'t'"), -(3125, 0, "'w'"), -(3126, 0, "'a'"), -(3127, 0, "'r'"), -(3128, 0, "'e'"), -(3129, 0, "' '"), -(3130, 0, "'-'"), -(3131, 0, "' '"), -(3132, 0, "'b'"), -(3133, 0, "'u'"), -(3134, 0, "'t'"), -(3135, 0, "' '"), -(3136, 0, "'I'"), -(3137, 0, "'''"), -(3138, 0, "'m'"), -(3139, 0, "' '"), -(3140, 0, "'n'"), -(3141, 0, "'o'"), -(3142, 0, "'t'"), -(3143, 0, "' '"), -(3144, 0, "'r'"), -(3145, 0, "'e'"), -(3146, 0, "'a'"), -(3147, 0, "'d'"), -(3148, 0, "'y'"), -(3149, 0, "' '"), -(3150, 0, "'t'"), -(3151, 0, "'o'"), -(3152, 0, "' '"), -(3153, 0, "'t'"), -(3154, 0, "'a'"), -(3155, 0, "'l'"), -(3156, 0, "'k'"), -(3157, 0, "' '"), -(3158, 0, "'a'"), -(3159, 0, "'b'"), -(3160, 0, "'o'"), -(3161, 0, "'u'"), -(3162, 0, "'t'"), -(3163, 0, "' '"), -(3164, 0, "'t'"), -(3165, 0, "'h'"), -(3166, 0, "'a'"), -(3167, 0, "'t'"), -(3168, 0, "' '"), -(3169, 0, "'y'"), -(3170, 0, "'e'"), -(3171, 0, "'t'"), -(3185, 0, "'t'"), -(3186, 0, "'o'"), -(3187, 0, "'d'"), -(3188, 0, "'a'"), -(3189, 0, "'y'"), -(3190, 0, "' '"), -(3185, 6, "''"), -(3185, 0, "'y'"), -(3186, 0, "'o'"), -(3187, 0, "'u'"), -(3188, 0, "' '"), -(3189, 0, "'r'"), -(3190, 0, "'e'"), -(3191, 0, "'a'"), -(3192, 0, "'d'"), -(3193, 0, "' '"), -(3194, 0, "'a'"), -(3195, 0, "'b'"), -(3196, 0, "'o'"), -(3197, 0, "'u'"), -(3198, 0, "'t'"), -(3199, 0, "' '"), -(3200, 0, "'i'"), -(3201, 0, "'n'"), -(3202, 0, "' '"), -(3203, 0, "'a'"), -(3204, 0, "'c'"), -(3205, 0, "'a'"), -(3206, 0, "'d'"), -(3207, 0, "'e'"), -(3208, 0, "'m'"), -(3209, 0, "'i'"), -(3210, 0, "'c'"), -(3211, 0, "' '"), -(3212, 0, "'p'"), -(3213, 0, "'a'"), -(3214, 0, "'p'"), -(3215, 0, "'e'"), -(3216, 0, "'r'"), -(3217, 0, "'s'"), -(3218, 0, "' '"), -(3799, 0, "' '"), -(3799, 1, "''"), -(3799, 0, "' '"), -(3800, 0, "'M'"), -(3801, 0, "'a'"), -(3802, 0, "'r'"), -(3803, 0, "'t'"), -(3804, 0, "'i'"), -(3805, 0, "'n'"), -(3806, 0, "' '"), -(3807, 0, "'K'"), -(3808, 0, "'l'"), -(3809, 0, "'e'"), -(3810, 0, "'p'"), -(3811, 0, "'p'"), -(3812, 0, "'m'"), -(3813, 0, "'a'"), -(3814, 0, "'n'"), -(3815, 0, "'n'"), -(4142, 0, "' '"), -(4143, 0, "'c'"), -(4144, 0, "'u'"), -(4145, 0, "'r'"), -(4146, 0, "'r'"), -(4147, 0, "'e'"), -(4148, 0, "'n'"), -(4149, 0, "'t'"), -(4150, 0, "'l'"), -(4151, 0, "'y'"), -(4201, 0, "'w'"), -(4202, 0, "'a'"), -(4203, 0, "'r'"), -(4204, 0, "'d'"), -(4245, 4, "'w'"), -(4246, 0, "'e'"), -(4247, 0, "' '"), -(4248, 0, "'n'"), -(4249, 0, "'e'"), -(4250, 0, "'e'"), -(4251, 0, "'d'"), -(4252, 0, "' '"), -(4253, 0, "'t'"), -(4254, 0, "'o'"), -(4255, 0, "' '"), -(4255, 1, "''"), -(3799, 17, "''"), -(5034, 0, "'y'"), -(5035, 0, "'o'"), -(5036, 0, "'u'"), -(5037, 0, "' '"), -(5045, 9, "'i'"), -(5046, 0, "'n'"), -(5047, 0, "'t'"), -(5048, 0, "'o'"), -(5049, 0, "' '"), -(5050, 0, "'t'"), -(5051, 0, "'h'"), -(5052, 0, "' '"), -(5053, 0, "'e'"), -(5054, 0, "'d'"), -(5054, 1, "''"), -(5053, 1, "''"), -(5053, 0, "'e'"), -(5053, 1, "''"), -(5052, 1, "''"), -(5052, 0, "'e'"), -(5053, 0, "' '"), -(5054, 0, "'d'"), -(5055, 0, "'o'"), -(5056, 0, "'c'"), -(5057, 0, "'u'"), -(5058, 0, "'m'"), -(5059, 0, "'e'"), -(5060, 0, "'n'"), -(5061, 0, "'t'"), -(5896, 0, "','"), -(5897, 0, "' '"), -(5898, 0, "'a'"), -(5899, 0, "'n'"), -(5900, 0, "'d'"), -(5901, 0, "' '"), -(5902, 0, "'t'"), -(5903, 0, "'h'"), -(5904, 0, "'e'"), -(5905, 0, "' '"), -(5906, 0, "'u'"), -(5907, 0, "'s'"), -(5908, 0, "'e'"), -(5909, 0, "'r'"), -(5910, 0, "' '"), -(5911, 0, "'*'"), -(5912, 0, "'c'"), -(5913, 0, "'l'"), -(5914, 0, "'e'"), -(5915, 0, "'a'"), -(5916, 0, "'r'"), -(5917, 0, "'l'"), -(5918, 0, "'y'"), -(5919, 0, "'*'"), -(5920, 0, "' '"), -(5921, 0, "'i'"), -(5922, 0, "'n'"), -(5923, 0, "'s'"), -(5924, 0, "'e'"), -(5925, 0, "'r'"), -(5926, 0, "'t'"), -(5927, 0, "'e'"), -(5928, 0, "'d'"), -(5929, 0, "' '"), -(5930, 0, "'b'"), -(5931, 0, "'e'"), -(5932, 0, "'f'"), -(5933, 0, "'o'"), -(5934, 0, "'r'"), -(5935, 0, "'e'"), -(5898, 38, "'e'"), -(5899, 0, "'v'"), -(5900, 0, "'e'"), -(5901, 0, "'n'"), -(5902, 0, "' '"), -(5903, 0, "'t'"), -(5904, 0, "'h'"), -(5905, 0, "'o'"), -(5906, 0, "'u'"), -(5907, 0, "'g'"), -(5908, 0, "'h'"), -(5909, 0, "' '"), -(5910, 0, "'t'"), -(5911, 0, "'h'"), -(5912, 0, "'e'"), -(5913, 0, "' '"), -(5914, 0, "'u'"), -(5915, 0, "'s'"), -(5916, 0, "'e'"), -(5917, 0, "'r'"), -(5918, 0, "' '"), -(5919, 0, "'i'"), -(5920, 0, "'n'"), -(5921, 0, "'s'"), -(5922, 0, "'e'"), -(5923, 0, "'r'"), -(5924, 0, "'t'"), -(5925, 0, "'e'"), -(5926, 0, "'d'"), -(5927, 0, "' '"), -(5928, 0, "'b'"), -(5929, 0, "'e'"), -(5930, 0, "'f'"), -(5931, 0, "'o'"), -(5932, 0, "'r'"), -(5933, 0, "'e'"), -(5934, 0, "' '"), -(5935, 0, "'t'"), -(5936, 0, "'h'"), -(5937, 0, "'e'"), -(5938, 0, "' '"), -(5939, 0, "'''"), -(5940, 0, "'b'"), -(5941, 0, "'''"), -(5942, 0, "'*'"), -(5939, 0, "'*'"), -(5940, 1, "''"), -(5941, 1, "''"), -(5890, 1, "''"), -(5890, 0, "'*'"), -(5895, 1, "''"), -(5895, 0, "'*'"), -(5943, 1, "''"), -(5943, 0, "'n'"), -(5944, 0, "'n'"), -(6506, 0, "'n'"), -(6506, 0, "'n'"), -(6507, 0, "'F'"), -(6508, 0, "'o'"), -(6509, 0, "'r'"), -(6510, 0, "' '"), -(6511, 0, "'r'"), -(6512, 0, "'e'"), -(6513, 0, "'f'"), -(6514, 0, "'e'"), -(6515, 0, "'r'"), -(6516, 0, "'e'"), -(6517, 0, "'n'"), -(6518, 0, "'c'"), -(6519, 0, "'e'"), -(6520, 0, "','"), -(6521, 0, "' '"), -(6522, 0, "'Y'"), -(6523, 0, "'j'"), -(6524, 0, "'s'"), -(6525, 0, "' '"), -(6507, 15, "''"), -(6507, 0, "'('"), -(6508, 0, "'A'"), -(6509, 0, "'s'"), -(6510, 0, "'i'"), -(6511, 0, "'d'"), -(6512, 0, "'e'"), -(6513, 0, "':'"), -(6514, 0, "' '"), -(6519, 0, "'s'"), -(6520, 0, "'o'"), -(6521, 0, "'l'"), -(6522, 0, "'v'"), -(6523, 0, "'e'"), -(6524, 0, "'s'"), -(6525, 0, "' '"), -(6526, 0, "'t'"), -(6527, 0, "'h'"), -(6528, 0, "'i'"), -(6529, 0, "'s'"), -(6530, 0, "' '"), -(6531, 0, "'w'"), -(6532, 0, "'i'"), -(6533, 0, "'t'"), -(6534, 0, "'h'"), -(6535, 0, "' '"), -(6536, 0, "'a'"), -(6537, 0, "' '"), -(6538, 0, "'*'"), -(6539, 0, "'d'"), -(6540, 0, "'i'"), -(6541, 0, "'f'"), -(6542, 0, "'f'"), -(6543, 0, "'e'"), -(6544, 0, "'r'"), -(6545, 0, "'e'"), -(6546, 0, "'n'"), -(6547, 0, "'t'"), -(6548, 0, "'*'"), -(6549, 0, "' '"), -(6550, 0, "'h'"), -(6551, 0, "'a'"), -(6552, 0, "'c'"), -(6553, 0, "'k'"), -(6554, 0, "';'"), -(6555, 0, "' '"), -(6556, 0, "'b'"), -(6557, 0, "'u'"), -(6558, 0, "'t'"), -(6559, 0, "' '"), -(6560, 0, "'t'"), -(6561, 0, "'h'"), -(6562, 0, "'e'"), -(6563, 0, "' '"), -(6564, 0, "'d'"), -(6565, 0, "'i'"), -(6566, 0, "'f'"), -(6567, 0, "'f'"), -(6568, 0, "'e'"), -(6569, 0, "'r'"), -(6570, 0, "'e'"), -(6571, 0, "'n'"), -(6572, 0, "'c'"), -(6573, 0, "'e'"), -(6574, 0, "' '"), -(6575, 0, "'i'"), -(6576, 0, "'s'"), -(6577, 0, "'n'"), -(6578, 0, "'''"), -(6579, 0, "'t'"), -(6580, 0, "' '"), -(6581, 0, "'r'"), -(6582, 0, "'e'"), -(6583, 0, "'a'"), -(6584, 0, "'l'"), -(6585, 0, "'l'"), -(6586, 0, "'y'"), -(6587, 0, "' '"), -(6588, 0, "'i'"), -(6589, 0, "'m'"), -(6590, 0, "'p'"), -(6591, 0, "'o'"), -(6592, 0, "'r'"), -(6593, 0, "'t'"), -(6594, 0, "'n'"), -(6595, 0, "'a'"), -(6596, 0, "'t'"), -(6596, 1, "''"), -(6595, 1, "''"), -(6594, 1, "''"), -(6594, 0, "'a'"), -(6595, 0, "'n'"), -(6596, 0, "'t'"), -(6597, 0, "')'"), -(6597, 0, "'.'"), -(6581, 6, "'a'"), -(6582, 0, "'c'"), -(6583, 0, "'t'"), -(6584, 0, "'u'"), -(6585, 0, "'a'"), -(6586, 0, "'l'"), -(6587, 0, "'l'"), -(6588, 0, "'y'"), -(6581, 8, "''"), -(6580, 1, "''"), -(6590, 0, "' '"), -(6591, 0, "'h'"), -(6592, 0, "'e'"), -(6593, 0, "'r'"), -(6594, 0, "'e'"), -(6518, 0, "' '"), -(6519, 0, "'i'"), -(6520, 0, "'s'"), -(6521, 0, "' '"), -(6522, 0, "'i'"), -(6523, 0, "'d'"), -(6524, 0, "'e'"), -(6525, 0, "'n'"), -(6526, 0, "'t'"), -(6527, 0, "'i'"), -(6528, 0, "'c'"), -(6529, 0, "'a'"), -(6530, 0, "'l'"), -(6531, 0, "','"), -(6532, 0, "' '"), -(6533, 0, "'e'"), -(6534, 0, "'x'"), -(6535, 0, "'c'"), -(6536, 0, "'e'"), -(6537, 0, "'p'"), -(6538, 0, "'t'"), -(6539, 0, "' '"), -(6540, 0, "'t'"), -(6541, 0, "'h'"), -(6542, 0, "'a'"), -(6543, 0, "'t'"), -(6544, 0, "' '"), -(6545, 0, "'i'"), -(6546, 0, "'t'"), -(6559, 0, "' '"), -(6560, 0, "'p'"), -(6561, 0, "'r'"), -(6562, 0, "'o'"), -(6563, 0, "'b'"), -(6564, 0, "'l'"), -(6565, 0, "'e'"), -(6566, 0, "'m'"), -(6591, 1, "''"), -(6591, 0, "'.'"), -(6592, 6, "' '"), -(6593, 0, "'T'"), -(6587, 4, "'t'"), -(6588, 0, "'w'"), -(6589, 0, "'e'"), -(6590, 0, "'a'"), -(6591, 0, "'k'"), -(6515, 0, "'I'"), -(6516, 0, "'f'"), -(6517, 0, "' '"), -(6518, 0, "'y'"), -(6519, 0, "'o'"), -(6520, 0, "'u'"), -(6521, 0, "'''"), -(6522, 0, "'r'"), -(6523, 0, "'e'"), -(6524, 0, "' '"), -(6525, 0, "'c'"), -(6526, 0, "'u'"), -(6527, 0, "'r'"), -(6528, 0, "'i'"), -(6529, 0, "'o'"), -(6530, 0, "'u'"), -(6531, 0, "'s'"), -(6532, 0, "','"), -(6533, 0, "' '"), -(6550, 1, "''"), -(6550, 0, "','"), -(6515, 19, "''"), -(6587, 5, "'h'"), -(6588, 0, "'a'"), -(6589, 0, "'c'"), -(6590, 0, "'k'"), -(6587, 4, "'t'"), -(6588, 0, "'r'"), -(6589, 0, "'i'"), -(6590, 0, "'c'"), -(6591, 0, "'k'"), -(5974, 13, "'n'"), -(5975, 0, "'e'"), -(5976, 0, "'a'"), -(5977, 0, "'t'"), -(5978, 0, "' '"), -(5979, 0, "'h'"), -(5980, 0, "'a'"), -(5981, 0, "'c'"), -(5982, 0, "'k'"), -(6583, 5, "'h'"), -(6584, 0, "'a'"), -(6585, 0, "'c'"), -(6586, 0, "'k'"), -(7457, 0, "' '"), -(7458, 0, "'w'"), -(7459, 0, "'h'"), -(7459, 1, "''"), -(7459, 0, "'h'"), -(7460, 0, "'i'"), -(7461, 0, "'l'"), -(7462, 0, "'e'"), -(7463, 0, "' '"), -(7464, 0, "'w'"), -(7465, 0, "'r'"), -(7466, 0, "'i'"), -(7467, 0, "'t'"), -(7468, 0, "'i'"), -(7469, 0, "'n'"), -(7470, 0, "'g'"), -(7471, 0, "' '"), -(7472, 0, "'a'"), -(7473, 0, "' '"), -(7474, 0, "'p'"), -(7457, 18, "''"), -(7712, 0, "','"), -(7713, 0, "' '"), -(7714, 0, "'s'"), -(7715, 0, "'o'"), -(7716, 0, "' '"), -(7717, 0, "'I'"), -(7718, 0, "'''"), -(7719, 0, "'m'"), -(7720, 0, "' '"), -(7721, 0, "'n'"), -(7722, 0, "'o'"), -(7723, 0, "' '"), -(7724, 0, "'t'"), -(7724, 1, "''"), -(7723, 1, "''"), -(7723, 0, "'t'"), -(7724, 0, "' '"), -(7725, 0, "'t'"), -(7726, 0, "'o'"), -(7727, 0, "'o'"), -(7728, 0, "' '"), -(7729, 0, "'w'"), -(7730, 0, "'o'"), -(7731, 0, "'r'"), -(7732, 0, "'r'"), -(7733, 0, "'i'"), -(7734, 0, "'e'"), -(7735, 0, "'d'"), -(7769, 5, "' '"), -(7770, 0, "'t'"), -(7771, 0, "'a'"), -(7772, 0, "'k'"), -(7773, 0, "'e'"), -(7774, 0, "'n'"), -(7775, 0, "' '"), -(7776, 0, "'t'"), -(7777, 0, "'o'"), -(7778, 0, "' '"), -(7778, 1, "''"), -(7786, 1, "''"), -(7785, 1, "''"), -(7784, 1, "''"), -(8504, 0, "' '"), -(8505, 0, "'n'"), -(8506, 0, "'o'"), -(8507, 0, "'t'"), -(8508, 6, "' '"), -(8508, 1, "''"), -(8438, 0, "' '"), -(8439, 0, "'e'"), -(8440, 0, "'d'"), -(8441, 0, "'i'"), -(8442, 0, "'t'"), -(8443, 0, "'i'"), -(8444, 0, "'n'"), -(8445, 0, "'g'"), -(8446, 0, "' '"), -(8447, 0, "'t'"), -(8448, 0, "'r'"), -(8449, 0, "'a'"), -(8450, 0, "'c'"), -(8451, 0, "'e'"), -(8455, 0, "' '"), -(8456, 0, "'a'"), -(8457, 0, "' '"), -(8458, 0, "'j'"), -(8459, 0, "'a'"), -(8460, 0, "'v'"), -(8461, 0, "'a'"), -(8462, 0, "'s'"), -(8463, 0, "'c'"), -(8464, 0, "'r'"), -(8465, 0, "'i'"), -(8466, 0, "'p'"), -(8467, 0, "'t'"), -(8468, 0, "' '"), -(8469, 0, "'s'"), -(8470, 0, "'t'"), -(8471, 0, "'r'"), -(8472, 0, "'i'"), -(8473, 0, "'n'"), -(8474, 0, "'g'"), -(8475, 11, "''"), -(8484, 33, "''"), -(8486, 0, "'w'"), -(8487, 0, "'e'"), -(8488, 0, "' '"), -(8489, 0, "'c'"), -(8490, 0, "'a'"), -(8491, 0, "'n'"), -(8492, 0, "'''"), -(8493, 0, "'t'"), -(8494, 0, "' '"), -(8495, 0, "'m'"), -(8496, 0, "'e'"), -(8497, 0, "'r'"), -(8498, 0, "'g'"), -(8499, 0, "'e'"), -(8500, 0, "' '"), -(8501, 0, "'c'"), -(8502, 0, "'o'"), -(8503, 0, "'n'"), -(8504, 0, "'c'"), -(8505, 0, "'u'"), -(8506, 0, "'d'"), -(8506, 1, "''"), -(8506, 0, "'r'"), -(8507, 0, "'r'"), -(8508, 0, "'e'"), -(8509, 0, "'n'"), -(8510, 0, "'t'"), -(8511, 0, "' '"), -(8512, 0, "'e'"), -(8513, 0, "'d'"), -(8514, 0, "'i'"), -(8515, 0, "'t'"), -(8516, 0, "'s'"), -(8517, 0, "' '"), -(8518, 0, "'b'"), -(8519, 0, "'u'"), -(8520, 0, "'t'"), -(8521, 43, "' '"), -(8522, 0, "'i'"), -(8523, 0, "'t'"), -(8524, 0, "'s'"), -(8525, 0, "' '"), -(8525, 1, "''"), -(8521, 4, "'it might not concurrent edits but its slow:'"), -(8517, 4, "''"), -(8511, 6, "''"), -(8506, 5, "''"), -(8506, 0, "'d'"), -(8500, 7, "''"), -(8494, 6, "''"), -(8488, 6, "''"), -(8486, 2, "''"), -(8484, 0, "', using a javascript string, well'"), -(8475, 0, "' javascript'"), -(8468, 7, "''"), -(8457, 11, "''"), -(8455, 2, "''"), -(8446, 6, "''"), -(8438, 8, "''"), -(8508, 0, "' '"), -(8508, 1, "' allow'"), -(8504, 4, "''"), -(7784, 0, "'ing'"), -(7784, 3, "''"), -(8504, 0, "' not'"), -(8504, 4, "''"), -(8504, 0, "' not'"), -(8508, 6, "' '"), -(8508, 1, "''"), -(8438, 0, "' editing'"), -(8446, 0, "' trace'"), -(8455, 0, "' a'"), -(8457, 0, "' javascript'"), -(8468, 0, "' string'"), -(8475, 11, "''"), -(8484, 33, "''"), -(8486, 0, "'we'"), -(8488, 0, "' can't'"), -(8494, 0, "' merge'"), -(8500, 0, "' concud'"), -(8506, 1, "''"), -(8506, 0, "'rrent'"), -(8511, 0, "' edits'"), -(8517, 0, "' but'"), -(8521, 43, "' its'"), -(8525, 0, "' '"), -(8517, 9, "'.'"), -(8518, 0, "' '"), -(8519, 0, "'B'"), -(8520, 0, "'u'"), -(8521, 0, "'t'"), -(8522, 0, "' '"), -(8523, 0, "'i'"), -(8524, 0, "'t'"), -(8525, 0, "'s'"), -(8526, 0, "' '"), -(8527, 0, "'a'"), -(8528, 0, "' '"), -(8529, 0, "'l'"), -(8530, 0, "'t'"), -(8530, 1, "''"), -(8530, 0, "'o'"), -(8531, 0, "'t'"), -(8532, 0, "' '"), -(8533, 0, "'f'"), -(8534, 0, "'a'"), -(8535, 0, "'s'"), -(8536, 0, "'t'"), -(8537, 0, "'e'"), -(8538, 0, "'r'"), -(8539, 0, "':'"), -(8853, 25, "''"), -(8853, 0, "'A'"), -(8854, 0, "' '"), -(8855, 0, "'t'"), -(8856, 0, "'r'"), -(8857, 0, "'e'"), -(8858, 0, "'e'"), -(8859, 0, "' '"), -(8860, 0, "'i'"), -(8861, 0, "'s'"), -(8862, 0, "' '"), -(8862, 1, "''"), -(8855, 9, "'T'"), -(8853, 3, "'T'"), -(8854, 0, "'h'"), -(8855, 0, "'e'"), -(8856, 0, "' '"), -(8857, 0, "'d'"), -(8871, 1, "''"), -(8871, 0, "' '"), -(8871, 1, "''"), -(8857, 0, "'t'"), -(8858, 0, "'r'"), -(8859, 0, "'e'"), -(8860, 0, "'e'"), -(8861, 0, "' '"), -(8862, 0, "'b'"), -(8863, 0, "'a'"), -(8864, 0, "'s'"), -(8865, 0, "'e'"), -(8866, 0, "'d'"), -(8867, 0, "' '"), -(8882, 0, "' '"), -(8883, 0, "'i'"), -(8884, 0, "'s'"), -(8885, 0, "'n'"), -(8886, 0, "'''"), -(8887, 0, "'t'"), -(8888, 0, "' '"), -(8889, 0, "'v'"), -(8890, 0, "'e'"), -(8891, 0, "'r'"), -(8892, 0, "'y'"), -(8893, 0, "' '"), -(8894, 0, "'f'"), -(8895, 0, "'a'"), -(8896, 0, "'s'"), -(8897, 0, "'t'"), -(9409, 0, "' '"), -(9409, 1, "''"), -(9420, 19, "' '"), -(9421, 0, "'d'"), -(9422, 0, "'o'"), -(9423, 0, "'e'"), -(9424, 0, "'s'"), -(9425, 0, "' '"), -(9426, 0, "'t'"), -(9427, 0, "'h'"), -(9428, 0, "'a'"), -(9429, 0, "'t'"), -(8882, 16, "' '"), -(8883, 0, "'a'"), -(8884, 0, "'u'"), -(8885, 0, "'t'"), -(8886, 0, "'o'"), -(8887, 0, "'m'"), -(8888, 0, "'e'"), -(8889, 0, "'r'"), -(8890, 0, "'g'"), -(8891, 0, "'e'"), -(8892, 0, "' '"), -(8893, 0, "'u'"), -(8894, 0, "'s'"), -(8895, 0, "'e'"), -(8896, 0, "'s'"), -(8897, 0, "' '"), -(8898, 0, "'g'"), -(8899, 0, "'e'"), -(8900, 0, "'t'"), -(8901, 0, "'s'"), -(8902, 0, "' '"), -(8903, 0, "'b'"), -(8904, 0, "'i'"), -(8905, 0, "'g'"), -(8906, 0, "' '"), -(8907, 0, "'a'"), -(8908, 0, "'n'"), -(8909, 0, "'d'"), -(8910, 0, "' '"), -(8911, 0, "'s'"), -(8912, 0, "'l'"), -(8913, 0, "'o'"), -(8914, 0, "'w'"), -(8906, 9, "''"), -(8906, 5, "''"), -(8903, 3, "'h'"), -(8904, 0, "'u'"), -(8905, 0, "'g'"), -(8906, 0, "'e'"), -(9900, 16, "'t'"), -(9901, 0, "'h'"), -(9902, 0, "'e'"), -(9918, 0, "' '"), -(9919, 0, "'h'"), -(9920, 0, "'a'"), -(9921, 0, "'s'"), -(9922, 0, "' '"), -(9923, 0, "'t'"), -(9924, 0, "'h'"), -(9925, 0, "'e'"), -(9926, 0, "' '"), -(9927, 0, "'r'"), -(9928, 0, "'i'"), -(9929, 0, "'g'"), -(9930, 0, "'h'"), -(9931, 0, "'t'"), -(9932, 0, "' '"), -(9933, 0, "'a'"), -(9934, 0, "'p'"), -(9935, 0, "'p'"), -(9936, 0, "'r'"), -(9937, 0, "'o'"), -(9938, 0, "'a'"), -(9939, 0, "'c'"), -(9940, 0, "'h'"), -(10016, 0, "'.'"), -(10017, 0, "' '"), -(10018, 0, "'F'"), -(10019, 0, "'i'"), -(10020, 0, "'x'"), -(10021, 0, "' '"), -(10022, 0, "'t'"), -(10023, 0, "'h'"), -(10024, 0, "'e'"), -(10025, 0, "' '"), -(10026, 0, "'c'"), -(10027, 0, "'o'"), -(10028, 0, "'r'"), -(10029, 0, "'e'"), -(10030, 0, "' '"), -(10031, 0, "'a'"), -(10032, 0, "'l'"), -(10033, 0, "'g'"), -(10034, 0, "'o'"), -(10035, 0, "'r'"), -(10036, 0, "'i'"), -(10037, 0, "'h'"), -(10038, 0, "'t'"), -(10039, 0, "'m'"), -(10040, 0, "' '"), -(10041, 0, "'a'"), -(10042, 0, "'n'"), -(10043, 0, "'d'"), -(10031, 13, "'a'"), -(10032, 0, "'n'"), -(10032, 1, "''"), -(10032, 0, "'l'"), -(10033, 0, "'g'"), -(10034, 0, "'o'"), -(10035, 0, "'r'"), -(10036, 0, "'i'"), -(10037, 0, "'t'"), -(10038, 0, "'h'"), -(10039, 0, "'m'"), -(10040, 0, "' '"), -(10041, 0, "'a'"), -(10042, 0, "'n'"), -(10043, 0, "'d'"), -(10044, 0, "' '"), -(10045, 0, "'d'"), -(10046, 0, "'a'"), -(10047, 0, "'t'"), -(10048, 0, "'a'"), -(10049, 0, "' '"), -(10049, 1, "''"), -(10049, 0, "'s'"), -(10050, 0, "'t'"), -(10051, 0, "'r'"), -(10052, 0, "'u'"), -(10053, 0, "'c'"), -(10054, 0, "'t'"), -(10055, 0, "'u'"), -(10056, 0, "'r'"), -(10057, 0, "'e'"), -(10058, 0, "'s'"), -(10049, 0, "' '"), -(10060, 0, "'.'"), -(10061, 0, "' '"), -(10062, 0, "'T'"), -(10063, 0, "'h'"), -(10064, 0, "'e'"), -(10065, 0, "'n'"), -(10066, 0, "' '"), -(10062, 5, "'b'"), -(10062, 1, "''"), -(10061, 1, "''"), -(10060, 1, "''"), -(10060, 0, "' '"), -(10061, 0, "'b'"), -(10062, 0, "'e'"), -(10063, 0, "'f'"), -(10064, 0, "'o'"), -(10065, 0, "'r'"), -(10066, 0, "'e'"), -(10067, 0, "' '"), -(10068, 0, "'m'"), -(10069, 0, "'o'"), -(10070, 0, "'v'"), -(10071, 0, "'i'"), -(10072, 0, "'n'"), -(10073, 0, "'g'"), -(10074, 0, "' '"), -(10075, 0, "'t'"), -(10076, 0, "'o'"), -(10077, 0, "' '"), -(10078, 0, "'o'"), -(10079, 0, "'p'"), -(10080, 0, "'t'"), -(10081, 0, "'i'"), -(10082, 0, "'m'"), -(10083, 0, "'i'"), -(10084, 0, "'z'"), -(10085, 0, "'i'"), -(10086, 0, "'n'"), -(10087, 0, "'g'"), -(10088, 0, "' '"), -(10089, 0, "'i'"), -(10090, 0, "'n'"), -(10091, 0, "'d'"), -(10092, 0, "'i'"), -(10093, 0, "'v'"), -(10094, 0, "'i'"), -(10095, 0, "'d'"), -(10096, 0, "'u'"), -(10097, 0, "'a'"), -(10098, 0, "'l'"), -(10099, 0, "' '"), -(10100, 0, "'m'"), -(10101, 0, "'e'"), -(10102, 0, "'t'"), -(10103, 0, "'h'"), -(10104, 0, "'o'"), -(10105, 0, "'d'"), -(10106, 0, "'s'"), -(10137, 4, "'a'"), -(10138, 0, "' '"), -(10139, 0, "'f'"), -(10140, 0, "'u'"), -(10141, 0, "'n'"), -(10142, 0, "'c'"), -(10143, 0, "'t'"), -(10144, 0, "'i'"), -(10145, 0, "'o'"), -(10146, 0, "'n'"), -(10153, 6, "'i'"), -(10154, 0, "'t'"), -(10155, 0, "' '"), -(10156, 0, "'w'"), -(10157, 0, "'o'"), -(10158, 0, "'n'"), -(10159, 0, "'''"), -(10160, 0, "'t'"), -(10161, 0, "' '"), -(10162, 0, "'s'"), -(10163, 0, "'u'"), -(10164, 0, "'r'"), -(10165, 0, "'v'"), -(10166, 0, "'i'"), -(10167, 0, "'v'"), -(10168, 0, "'e'"), -(10161, 8, "''"), -(10155, 6, "''"), -(10153, 2, "'you're'"), -(10195, 0, "' '"), -(10196, 0, "'a'"), -(10197, 0, "'n'"), -(10198, 0, "'y'"), -(10199, 0, "'w'"), -(10200, 0, "'a'"), -(10201, 0, "'y'"), -(10205, 0, "'B'"), -(10206, 0, "'u'"), -(10207, 0, "'t'"), -(10208, 0, "' '"), -(10209, 0, "'b'"), -(10210, 0, "'y'"), -(10211, 0, "' '"), -(10212, 0, "'f'"), -(10213, 0, "'a'"), -(10214, 0, "'r'"), -(10215, 0, "','"), -(10216, 0, "' '"), -(10292, 7, "'r'"), -(10293, 0, "'e'"), -(10294, 0, "'p'"), -(10295, 0, "'l'"), -(10296, 0, "'a'"), -(10297, 0, "'c'"), -(10298, 0, "'i'"), -(10298, 1, "''"), -(10298, 0, "'e'"), -(10299, 0, "' '"), -(10300, 0, "'i'"), -(10301, 0, "'t'"), -(10302, 0, "' '"), -(10303, 0, "'w'"), -(10304, 0, "'i'"), -(10305, 0, "'t'"), -(10306, 0, "'h'"), -(10307, 0, "' '"), -(10308, 0, "'s'"), -(10309, 0, "'o'"), -(10310, 0, "'m'"), -(10311, 0, "'e'"), -(10312, 0, "'t'"), -(10313, 0, "'h'"), -(10314, 0, "'i'"), -(10315, 0, "'n'"), -(10316, 0, "'g'"), -(10317, 0, "' '"), -(10318, 0, "'f'"), -(10319, 0, "'a'"), -(10320, 0, "'s'"), -(10321, 0, "'t'"), -(10322, 0, "'e'"), -(10323, 0, "'r'"), -(10324, 0, "'.'"), -(12009, 4, "'i'"), -(12010, 0, "'n'"), -(12011, 0, "' '"), -(12012, 0, "'t'"), -(12013, 0, "'h'"), -(12014, 0, "'e'"), -(12015, 0, "' '"), -(12016, 0, "'s'"), -(12017, 0, "'a'"), -(12018, 0, "'m'"), -(12019, 0, "'e'"), -(12020, 0, "' '"), -(12021, 0, "'w'"), -(12022, 0, "'a'"), -(12023, 0, "'y'"), -(12076, 4, "'o'"), -(12077, 0, "'n'"), -(12078, 0, "'c'"), -(12079, 0, "'e'"), -(12085, 2, "'u'"), -(12086, 0, "'n'"), -(12087, 0, "'d'"), -(12088, 0, "'e'"), -(12089, 0, "'r'"), -(12090, 0, "'s'"), -(12091, 0, "'t'"), -(12092, 0, "'a'"), -(12093, 0, "'n'"), -(12094, 0, "'d'"), -(12095, 0, "' '"), -(12096, 0, "'i'"), -(12097, 0, "'t'"), -(12108, 2, "'i'"), -(12109, 0, "'m'"), -(12110, 0, "'p'"), -(12111, 0, "'l'"), -(12112, 0, "'e'"), -(12113, 0, "'m'"), -(12114, 0, "'e'"), -(12115, 0, "'n'"), -(12116, 0, "'t'"), -(12319, 0, "'''"), -(12320, 0, "'r'"), -(12321, 0, "'e'"), -(12322, 0, "' '"), -(12323, 0, "'c'"), -(12324, 0, "'u'"), -(12325, 0, "'r'"), -(12326, 0, "'i'"), -(12327, 0, "'o'"), -(12328, 0, "'u'"), -(12329, 0, "'s'"), -(12330, 0, "' '"), -(12331, 0, "'a'"), -(12332, 0, "'n'"), -(12333, 0, "'d'"), -(12339, 22, "''"), -(12351, 0, "'s'"), -(12351, 1, "''"), -(12225, 0, "','"), -(12226, 0, "' '"), -(12227, 0, "'b'"), -(12228, 0, "'o'"), -(12229, 0, "'t'"), -(12230, 0, "'h'"), -(12231, 0, "' '"), -(12232, 0, "'i'"), -(12233, 0, "'n'"), -(12234, 0, "' '"), -(12235, 0, "'t'"), -(12236, 0, "'h'"), -(12237, 0, "'e'"), -(12238, 0, "' '"), -(12239, 0, "'s'"), -(12240, 0, "'a'"), -(12241, 0, "'m'"), -(12242, 0, "'e'"), -(12225, 18, "''"), -(13286, 4, "'m'"), -(13287, 0, "'y'"), -(13288, 0, "' '"), -(13289, 0, "'r'"), -(13290, 0, "'e'"), -(13291, 0, "'f'"), -(13292, 0, "'e'"), -(13293, 0, "'r'"), -(13294, 0, "'e'"), -(13295, 0, "'n'"), -(13296, 0, "'c'"), -(13297, 0, "'e'"), -(13298, 0, "'-'"), -(13299, 0, "'c'"), -(13300, 0, "'r'"), -(13301, 0, "'d'"), -(13302, 0, "'t'"), -(13303, 0, "'s'"), -(13342, 16, "''"), -(13341, 1, "''"), -(13427, 0, "'I'"), -(13428, 0, "'t'"), -(13429, 0, "'s'"), -(13430, 0, "' '"), -(13431, 0, "'n'"), -(13432, 0, "'o'"), -(13433, 0, "'t'"), -(13434, 0, "' '"), -(13435, 0, "'e'"), -(13436, 0, "'x'"), -(13437, 0, "'a'"), -(13438, 0, "'c'"), -(13439, 0, "'t'"), -(13440, 0, "'l'"), -(13441, 0, "'y'"), -(13442, 0, "' '"), -(13443, 0, "'l'"), -(13444, 0, "'i'"), -(13445, 0, "'k'"), -(13446, 0, "'e'"), -(13447, 0, "'-'"), -(13448, 0, "'f'"), -(13449, 0, "'o'"), -(13450, 0, "'r'"), -(13451, 0, "'-'"), -(13452, 0, "'l'"), -(13453, 0, "'i'"), -(13454, 0, "'k'"), -(13455, 0, "'e'"), -(13456, 0, "' '"), -(13457, 0, "'-'"), -(13458, 0, "' '"), -(13459, 0, "'I'"), -(13460, 0, "'''"), -(13461, 0, "'m'"), -(13462, 0, "'n'"), -(13462, 1, "''"), -(13462, 0, "' '"), -(13463, 0, "'n'"), -(13464, 0, "'o'"), -(13465, 0, "'t'"), -(13466, 0, "' '"), -(13467, 0, "'i'"), -(13468, 0, "'m'"), -(13469, 0, "'p'"), -(13470, 0, "'l'"), -(13471, 0, "'e'"), -(13472, 0, "'e'"), -(13473, 0, "'n'"), -(13474, 0, "'t'"), -(13475, 0, "'i'"), -(13476, 0, "'n'"), -(13477, 0, "'g'"), -(13478, 0, "' '"), -(13459, 20, "'m'"), -(13460, 0, "'y'"), -(13461, 0, "' '"), -(13462, 0, "'o'"), -(13462, 1, "''"), -(13462, 0, "'i'"), -(13463, 0, "'m'"), -(13464, 0, "'p'"), -(13465, 0, "'l'"), -(13466, 0, "'e'"), -(13467, 0, "'m'"), -(13468, 0, "'e'"), -(13469, 0, "'n'"), -(13470, 0, "'t'"), -(13471, 0, "'i'"), -(13471, 1, "''"), -(13471, 0, "'a'"), -(13472, 0, "'t'"), -(13473, 0, "'i'"), -(13474, 0, "'o'"), -(13475, 0, "'n'"), -(13476, 0, "' '"), -(13477, 0, "'a'"), -(13478, 0, "'l'"), -(13479, 0, "'s'"), -(13480, 0, "'o'"), -(13481, 0, "' '"), -(13482, 0, "'d'"), -(13483, 0, "'o'"), -(13484, 0, "'e'"), -(13477, 8, "'d'"), -(13478, 0, "'o'"), -(13479, 0, "'e'"), -(13480, 0, "'s'"), -(13481, 0, "'n'"), -(13482, 0, "'''"), -(13483, 0, "'t'"), -(13484, 0, "' '"), -(13485, 0, "'u'"), -(13486, 0, "'s'"), -(13487, 0, "'e'"), -(13488, 0, "' '"), -(13489, 0, "'i'"), -(13490, 0, "'m'"), -(13491, 0, "'m'"), -(13492, 0, "'u'"), -(13493, 0, "'t'"), -(13494, 0, "'a'"), -(13495, 0, "'b'"), -(13496, 0, "'l'"), -(13497, 0, "'e'"), -(13498, 0, "'j'"), -(13499, 0, "'s'"), -(13500, 0, "'.'"), -(13501, 0, "' '"), -(13502, 0, "'B'"), -(13503, 0, "'u'"), -(13504, 0, "'t'"), -(13505, 4, "' '"), -(13506, 0, "'m'"), -(13507, 0, "'y'"), -(13508, 0, "' '"), -(13509, 0, "'c'"), -(13510, 0, "'o'"), -(13511, 0, "'d'"), -(13512, 0, "'e'"), -(13513, 0, "','"), -(13514, 0, "' '"), -(13515, 0, "'u'"), -(13516, 0, "'s'"), -(13517, 0, "'i'"), -(13518, 0, "'n'"), -(13519, 0, "'g'"), -(13520, 0, "' '"), -(13521, 0, "'t'"), -(13521, 1, "''"), -(13520, 1, "''"), -(13520, 0, "' '"), -(13521, 0, "'t'"), -(13522, 0, "'h'"), -(13523, 0, "'i'"), -(13524, 0, "'s'"), -(13534, 0, "','"), -(13536, 3, "'e'"), -(13537, 0, "'n'"), -(13538, 0, "'d'"), -(13539, 0, "'s'"), -(13540, 0, "' '"), -(13541, 0, "'u'"), -(13542, 0, "'p'"), -(13543, 0, "' '"), -(13560, 1, "''"), -(13560, 0, "'.'"), -(13561, 0, "' '"), -(13562, 0, "'I'"), -(13563, 0, "'t'"), -(13564, 0, "'s'"), -(13565, 0, "' '"), -(13566, 0, "'a'"), -(13567, 0, "'l'"), -(13568, 0, "'s'"), -(13569, 0, "'o'"), -(13570, 9, "''"), -(13911, 215, "''"), -(13459, 0, "'f'"), -(13460, 0, "'o'"), -(13461, 0, "'r'"), -(13462, 0, "' '"), -(13463, 0, "'e'"), -(13464, 0, "'x'"), -(13465, 0, "'a'"), -(13466, 0, "'m'"), -(13467, 0, "'p'"), -(13468, 0, "'l'"), -(13469, 0, "'e'"), -(13470, 0, "','"), -(13471, 0, "' '"), -(13573, 0, "' '"), -(13574, 0, "'t'"), -(13575, 0, "'h'"), -(13576, 0, "'a'"), -(13577, 0, "'n'"), -(13578, 0, "' '"), -(13579, 0, "'a'"), -(13580, 0, "'u'"), -(13581, 0, "'t'"), -(13582, 0, "'o'"), -(13583, 0, "'m'"), -(13584, 0, "'e'"), -(13585, 0, "'r'"), -(13586, 0, "'g'"), -(13587, 0, "'e'"), -(14107, 0, "'b'"), -(14108, 0, "'a'"), -(14109, 0, "'s'"), -(14110, 0, "'e'"), -(14760, 0, "' '"), -(14761, 0, "'g'"), -(14762, 0, "'o'"), -(14763, 0, "'i'"), -(14764, 0, "'n'"), -(14765, 0, "'g'"), -(14766, 0, "' '"), -(14767, 0, "'t'"), -(14768, 0, "'o'"), -(14782, 17, "''"), -(14782, 0, "'('"), -(14783, 0, "'*'"), -(14783, 1, "''"), -(14782, 1, "''"), -(14782, 0, "'('"), -(14782, 1, "''"), -(14782, 0, "'*'"), -(14783, 0, "'j'"), -(14784, 0, "'e'"), -(14785, 0, "'r'"), -(14786, 0, "'e'"), -(14786, 1, "''"), -(14785, 1, "''"), -(14784, 1, "''"), -(14783, 1, "''"), -(14783, 0, "'h'"), -(14784, 0, "'e'"), -(14785, 0, "'r'"), -(14786, 0, "'e'"), -(14787, 0, "'*'"), -(14753, 37, "'t'"), -(14754, 0, "'h'"), -(14755, 0, "'a'"), -(14756, 0, "'t'"), -(14757, 0, "'s'"), -(14758, 0, "' '"), -(14759, 0, "'a'"), -(14760, 0, "' '"), -(14761, 0, "'p'"), -(14762, 0, "'r'"), -(14763, 0, "'o'"), -(14764, 0, "'b'"), -(14765, 0, "'l'"), -(14766, 0, "'e'"), -(14767, 0, "'m'"), -(14768, 0, "' '"), -(14769, 0, "'f'"), -(14770, 0, "'o'"), -(14771, 0, "'r'"), -(14772, 0, "' '"), -(14773, 0, "'a'"), -(14774, 0, "'n'"), -(14775, 0, "'o'"), -(14776, 0, "'t'"), -(14777, 0, "'h'"), -(14778, 0, "'e'"), -(14779, 0, "'r'"), -(14780, 0, "' '"), -(14781, 0, "'d'"), -(14782, 0, "'a'"), -(14783, 0, "'y'"), -(14784, 0, "'.'"), -(14785, 0, "')'"), -(15209, 1, "''"), -(15208, 1, "''"), -(15208, 0, "'7'"), -(15209, 0, "'5'"), -(15826, 0, "'W'"), -(15827, 0, "'a'"), -(15828, 0, "'i'"), -(15829, 0, "'t'"), -(15830, 0, "','"), -(15831, 0, "' '"), -(15832, 0, "'n'"), -(15833, 0, "'o'"), -(15834, 0, "' '"), -(15835, 0, "'-'"), -(15836, 0, "' '"), -(15837, 6, "''"), -(15878, 22, "' '"), -(15879, 0, "'s'"), -(15880, 0, "'t'"), -(15881, 0, "'i'"), -(15882, 0, "'c'"), -(15883, 0, "'k'"), -(15884, 0, "' '"), -(15885, 0, "'a'"), -(15886, 0, "'r'"), -(15887, 0, "'o'"), -(15888, 0, "'u'"), -(15889, 0, "'n'"), -(15890, 0, "'d'"), -(16011, 0, "'T'"), -(16012, 0, "'h'"), -(16013, 0, "'e'"), -(16014, 0, "' '"), -(16015, 0, "'a'"), -(16015, 1, "''"), -(16015, 0, "'s'"), -(16016, 0, "'y'"), -(16017, 0, "'s'"), -(16018, 0, "'t'"), -(16019, 0, "'e'"), -(16020, 0, "'m'"), -(16021, 0, "' '"), -(16022, 0, "'s'"), -(16023, 0, "'t'"), -(16024, 0, "'a'"), -(16025, 0, "'r'"), -(16026, 0, "'t'"), -(16027, 0, "'s'"), -(16028, 0, "' '"), -(16029, 0, "'o'"), -(16030, 0, "'f'"), -(16031, 0, "'f'"), -(16032, 0, "' '"), -(16033, 0, "'f'"), -(16034, 0, "'a'"), -(16035, 0, "'s'"), -(16036, 0, "'t'"), -(16037, 0, "','"), -(16038, 0, "' '"), -(16039, 0, "'b'"), -(16040, 0, "'u'"), -(16041, 0, "'t'"), -(16042, 0, "' '"), -(16043, 0, "'i'"), -(16044, 0, "'t'"), -(16045, 0, "' '"), -(16046, 0, "'g'"), -(16047, 0, "'e'"), -(16048, 0, "'t'"), -(16049, 0, "'s'"), -(16050, 0, "' '"), -(16051, 0, "'s'"), -(16052, 0, "'l'"), -(16053, 0, "'o'"), -(16054, 0, "'w'"), -(16055, 0, "'e'"), -(16056, 0, "'r'"), -(16057, 0, "' '"), -(16058, 0, "'w'"), -(16059, 0, "'i'"), -(16060, 0, "'t'"), -(16061, 0, "'h'"), -(16062, 0, "' '"), -(16063, 0, "'e'"), -(16064, 0, "'v'"), -(16065, 0, "'e'"), -(16066, 0, "'r'"), -(16067, 0, "'y'"), -(16068, 0, "' '"), -(16069, 0, "'k'"), -(16070, 0, "'e'"), -(16071, 0, "'y'"), -(16072, 0, "'s'"), -(16073, 0, "'t'"), -(16074, 0, "'r'"), -(16075, 0, "'o'"), -(16076, 0, "'k'"), -(16077, 0, "'e'"), -(16078, 27, "''"), -(16011, 4, "'T'"), -(16012, 0, "'h'"), -(16013, 0, "'i'"), -(16014, 0, "'s'"), -(16015, 0, "' '"), -(16126, 0, "'n'"), -(16127, 0, "'n'"), -(16127, 1, "''"), -(16127, 0, "'>'"), -(16128, 0, "' '"), -(16129, 0, "'I'"), -(16130, 0, "'n'"), -(16131, 0, "'s'"), -(16132, 0, "'e'"), -(16133, 0, "'r'"), -(16134, 0, "'t'"), -(16135, 0, "' '"), -(16136, 0, "'d'"), -(16137, 0, "'i'"), -(16138, 0, "'a'"), -(16139, 0, "'g'"), -(16140, 0, "'r'"), -(16141, 0, "'a'"), -(16142, 0, "'m'"), -(16136, 0, "'n'"), -(16137, 0, "'^'"), -(16138, 0, "'2'"), -(16139, 0, "' '"), -(16147, 0, "'?'"), -(16129, 7, "'C'"), -(16130, 0, "'a'"), -(16131, 0, "'n'"), -(16132, 0, "' '"), -(16133, 0, "'h'"), -(16134, 0, "'a'"), -(16135, 0, "'s'"), -(16136, 0, "','"), -(16137, 0, "' '"), -(16737, 0, "'.'"), -(16738, 0, "' '"), -(16739, 0, "'T'"), -(16740, 0, "'h'"), -(16741, 0, "'i'"), -(16742, 0, "'s'"), -(16743, 0, "' '"), -(16744, 0, "'i'"), -(16745, 0, "'s'"), -(16746, 0, "' '"), -(16747, 0, "'f'"), -(16748, 0, "'a'"), -(16749, 0, "'s'"), -(16750, 0, "'t'"), -(16751, 0, "'e'"), -(16752, 0, "'r'"), -(16753, 2, "''"), -(16788, 0, "' '"), -(16788, 1, "''"), -(16781, 0, "'y'"), -(16782, 0, "'o'"), -(16783, 0, "'u'"), -(16784, 0, "' '"), -(16785, 0, "'t'"), -(16786, 0, "'o'"), -(16787, 0, "' '"), -(16794, 1, "''"), -(16794, 14, "''"), -(16197, 0, "' '"), -(16198, 0, "'A'"), -(16199, 0, "'n'"), -(16200, 0, "'d'"), -(16201, 0, "' '"), -(16202, 0, "'b'"), -(16203, 0, "'y'"), -(16204, 0, "' '"), -(16205, 0, "'w'"), -(16206, 0, "'e'"), -(16207, 0, "','"), -(16208, 0, "' '"), -(16209, 0, "'I'"), -(16210, 0, "' '"), -(16211, 0, "'m'"), -(16212, 0, "'e'"), -(16213, 0, "'a'"), -(16214, 0, "'n'"), -(16215, 0, "' '"), -(16216, 0, "'y'"), -(16217, 0, "'j'"), -(16218, 0, "'s'"), -(16219, 0, "' '"), -(16220, 0, "'h'"), -(16221, 0, "'a'"), -(16222, 0, "'s'"), -(16223, 0, "' '"), -(16224, 0, "'f'"), -(16225, 0, "'i'"), -(16226, 0, "'x'"), -(16227, 0, "'e'"), -(16228, 0, "'d'"), -(16229, 0, "' '"), -(16230, 0, "'t'"), -(16231, 0, "'h'"), -(16232, 0, "'e'"), -(16233, 0, "'s'"), -(16234, 0, "'e'"), -(16235, 0, "' '"), -(16236, 0, "'p'"), -(16237, 0, "'r'"), -(16238, 0, "'o'"), -(16239, 0, "'b'"), -(16240, 0, "'l'"), -(16241, 0, "'e'"), -(16242, 0, "'m'"), -(16243, 0, "'s'"), -(16244, 0, "'.'"), -(16245, 0, "' '"), -(16246, 0, "'S'"), -(16247, 0, "'o'"), -(16248, 0, "' '"), -(16249, 0, "'l'"), -(16249, 1, "''"), -(16249, 0, "'w'"), -(16250, 0, "'h'"), -(16251, 0, "'a'"), -(16252, 0, "'t'"), -(16253, 0, "' '"), -(16254, 0, "'d'"), -(16255, 0, "'i'"), -(16256, 0, "'d'"), -(16257, 0, "' '"), -(16258, 0, "'i'"), -(16259, 0, "'t'"), -(16260, 0, "' '"), -(16261, 0, "'d'"), -(16262, 0, "'o'"), -(16263, 0, "'?'"), -(16246, 17, "'H'"), -(16247, 0, "'o'"), -(16248, 0, "'w'"), -(16249, 0, "' '"), -(16250, 0, "'d'"), -(16251, 0, "'i'"), -(16252, 0, "'d'"), -(16253, 0, "' '"), -(16254, 0, "'i'"), -(16255, 0, "'t'"), -(16256, 0, "' '"), -(16257, 0, "'m'"), -(16258, 0, "'a'"), -(16259, 0, "'k'"), -(16257, 3, "'d'"), -(16258, 0, "'o'"), -(16259, 0, "' '"), -(16260, 0, "'t'"), -(16261, 0, "'h'"), -(16262, 0, "'a'"), -(16263, 0, "'t'"), -(16355, 0, "'Y'"), -(16356, 0, "'j'"), -(16357, 0, "'s'"), -(16358, 0, "' '"), -(16359, 7, "''"), -(16364, 0, "'s'"), -(16437, 0, "'e'"), -(16438, 0, "'v'"), -(16439, 0, "'e'"), -(16440, 0, "'r'"), -(16437, 4, "''"), -(16454, 9, "'t'"), -(16455, 0, "'h'"), -(16456, 0, "'e'"), -(16457, 0, "' '"), -(16458, 0, "'d'"), -(16459, 0, "'o'"), -(16460, 0, "'c'"), -(16461, 0, "'u'"), -(16462, 0, "'m'"), -(16463, 0, "'e'"), -(16464, 0, "'n'"), -(16465, 0, "'t'"), -(16477, 0, "' '"), -(16478, 0, "'t'"), -(16479, 0, "'r'"), -(16480, 0, "'y'"), -(16481, 0, "' '"), -(16482, 0, "'t'"), -(16483, 0, "'o'"), -(16478, 6, "''"), -(16477, 1, "''"), -(16485, 0, "'s'"), -(16486, 0, "'o'"), -(16487, 0, "'m'"), -(16488, 0, "'e'"), -(16489, 0, "'t'"), -(16490, 0, "'h'"), -(16491, 0, "'i'"), -(16492, 0, "'n'"), -(16493, 0, "'g'"), -(16494, 0, "' '"), -(16495, 0, "'l'"), -(16496, 0, "'a'"), -(16497, 0, "'t'"), -(16498, 0, "'e'"), -(16499, 0, "'r'"), -(16500, 5, "''"), -(16505, 13, "''"), -(16504, 1, "''"), -(16503, 1, "''"), -(16502, 1, "''"), -(16502, 0, "'t'"), -(16503, 0, "'h'"), -(16504, 0, "'e'"), -(16505, 0, "'y'"), -(16506, 0, "' '"), -(16507, 0, "'p'"), -(16508, 0, "'r'"), -(16509, 0, "'o'"), -(16510, 0, "'b'"), -(16511, 0, "'a'"), -(16512, 0, "'b'"), -(16513, 0, "'l'"), -(16514, 0, "'y'"), -(16506, 0, "'''"), -(16507, 0, "'l'"), -(16508, 0, "'l'"), -(16558, 0, "'.'"), -(16559, 0, "' '"), -(16560, 0, "'S'"), -(16561, 0, "'o'"), -(16562, 0, "' '"), -(16563, 0, "'t'"), -(16564, 0, "'h'"), -(16565, 0, "'e'"), -(16566, 0, "' '"), -(16567, 0, "'s'"), -(16568, 0, "'y'"), -(16569, 0, "'s'"), -(16570, 0, "'t'"), -(16571, 0, "'e'"), -(16572, 0, "'m'"), -(16573, 4, "''"), -(16583, 0, "'s'"), -(16574, 0, "'u'"), -(16575, 0, "'s'"), -(16576, 0, "'u'"), -(16577, 0, "'a'"), -(16578, 0, "'l'"), -(16579, 0, "'l'"), -(16580, 0, "'y'"), -(16581, 0, "' '"), -(16593, 6, "''"), -(16619, 5, "'t'"), -(16620, 0, "'h'"), -(16621, 0, "'e'"), -(16622, 0, "' '"), -(16623, 0, "'c'"), -(16624, 0, "'a'"), -(16625, 0, "'c'"), -(16626, 0, "'h'"), -(16627, 0, "'e'"), -(16628, 0, "'d'"), -(16629, 0, "' '"), -(16630, 0, "'l'"), -(16631, 0, "'o'"), -(16632, 0, "'c'"), -(16633, 0, "'a'"), -(16634, 0, "'t'"), -(16635, 0, "'i'"), -(16636, 0, "'o'"), -(16637, 0, "'n'"), -(16639, 1, "''"), -(16639, 0, "'n'"), -(16640, 0, "'n'"), -(16640, 1, "''"), -(16639, 1, "''"), -(16639, 0, "' '"), -(16670, 0, "' '"), -(16671, 0, "'('"), -(16672, 0, "'a'"), -(16673, 0, "'n'"), -(16674, 0, "'d'"), -(16675, 0, "' '"), -(16676, 0, "'i'"), -(16677, 0, "'t'"), -(16678, 0, "' '"), -(16679, 0, "'p'"), -(16680, 0, "'r'"), -(16681, 0, "'o'"), -(16682, 0, "'b'"), -(16683, 0, "'a'"), -(16684, 0, "'b'"), -(16685, 0, "'l'"), -(16686, 0, "'y'"), -(16687, 0, "' '"), -(16688, 0, "'o'"), -(16689, 0, "'w'"), -(16690, 0, "'u'"), -(16690, 1, "''"), -(16689, 1, "''"), -(16689, 0, "'w'"), -(16690, 0, "'o'"), -(16690, 1, "''"), -(16689, 1, "''"), -(16689, 0, "'w'"), -(16690, 0, "'o'"), -(16690, 1, "''"), -(16689, 1, "''"), -(16688, 1, "''"), -(16688, 0, "'w'"), -(16689, 0, "'o'"), -(16690, 0, "'u'"), -(16691, 0, "'l'"), -(16692, 0, "'d'"), -(16693, 0, "'n'"), -(16694, 0, "'''"), -(16695, 0, "'t'"), -(16696, 0, "' '"), -(16697, 0, "'w'"), -(16698, 0, "'o'"), -(16699, 0, "'r'"), -(16700, 0, "'k'"), -(16701, 0, "' '"), -(16702, 0, "'a'"), -(16703, 0, "'s'"), -(16704, 0, "' '"), -(16705, 0, "'w'"), -(16706, 0, "'e'"), -(16707, 0, "'l'"), -(16708, 0, "'l'"), -(16709, 0, "' '"), -(16710, 0, "'f'"), -(16711, 0, "'o'"), -(16712, 0, "'r'"), -(16713, 0, "' '"), -(16714, 0, "'n'"), -(16715, 0, "'o'"), -(16716, 0, "'n'"), -(16717, 0, "'-'"), -(16718, 0, "'t'"), -(16719, 0, "'e'"), -(16720, 0, "'x'"), -(16721, 0, "'t'"), -(16722, 0, "'-'"), -(16723, 0, "'e'"), -(16724, 0, "'d'"), -(16725, 0, "'i'"), -(16726, 0, "'t'"), -(16727, 0, "'i'"), -(16728, 0, "'n'"), -(16729, 0, "'g'"), -(16730, 0, "' '"), -(16731, 0, "'a'"), -(16732, 0, "'p'"), -(16733, 0, "'p'"), -(16734, 0, "'l'"), -(16735, 0, "'i'"), -(16736, 0, "'c'"), -(16737, 0, "'a'"), -(16738, 0, "'t'"), -(16739, 0, "'i'"), -(16740, 0, "'o'"), -(16741, 0, "'n'"), -(16742, 0, "'s'"), -(16743, 0, "')'"), -(16745, 1, "''"), -(16744, 1, "''"), -(16744, 0, "'.'"), -(16745, 0, "' '"), -(16746, 0, "'B'"), -(16747, 1, "''"), -(17740, 0, "' '"), -(17741, 0, "'''"), -(17741, 1, "''"), -(17740, 1, "''"), -(17739, 1, "''"), -(17738, 1, "''"), -(17738, 0, "'''"), -(17739, 0, "'r'"), -(17740, 0, "'u'"), -(17741, 0, "'n'"), -(17742, 0, "'''"), -(17743, 0, "' '"), -(17744, 0, "'i'"), -(17745, 0, "'s'"), -(17742, 1, "''"), -(17738, 1, "''"), -(17720, 42, "'T'"), -(17721, 0, "'h'"), -(17722, 0, "'i'"), -(17723, 0, "'s'"), -(17724, 0, "' '"), -(17725, 0, "'i'"), -(17726, 0, "'s'"), -(17727, 0, "' '"), -(17728, 0, "' '"), -(17729, 0, "'j'"), -(17729, 1, "''"), -(17728, 1, "''"), -(17728, 0, "'j'"), -(17729, 0, "'u'"), -(17730, 0, "'s'"), -(17731, 0, "'t'"), -(17732, 0, "' '"), -(17733, 0, "'a'"), -(17734, 0, "' '"), -(17735, 0, "'c'"), -(17736, 0, "'o'"), -(17737, 0, "'m'"), -(17738, 0, "'p'"), -(17739, 0, "'r'"), -(17740, 0, "'e'"), -(17741, 0, "'s'"), -(17742, 0, "'s'"), -(17743, 0, "'e'"), -(17744, 0, "'d'"), -(17745, 0, "' '"), -(17746, 0, "'v'"), -(17747, 0, "'e'"), -(17748, 0, "'r'"), -(17749, 0, "'s'"), -(17750, 0, "'i'"), -(17751, 0, "'o'"), -(17752, 0, "'n'"), -(17753, 0, "' '"), -(17754, 0, "'o'"), -(17755, 0, "'f'"), -(17756, 0, "' '"), -(17757, 0, "'w'"), -(17758, 0, "'h'"), -(17759, 0, "'a'"), -(17760, 0, "'t'"), -(17761, 0, "' '"), -(17762, 0, "'w'"), -(17763, 0, "'e'"), -(17764, 0, "' '"), -(17765, 0, "'w'"), -(17766, 0, "'r'"), -(17767, 0, "'o'"), -(17768, 0, "'t'"), -(17769, 0, "'e'"), -(17770, 17, "''"), -(17776, 0, "'.'"), -(17778, 7, "'T'"), -(17805, 0, "'a'"), -(17806, 0, "'l'"), -(17807, 0, "'l'"), -(17808, 0, "' '"), -(17842, 0, "' '"), -(17842, 1, "''"), -(17842, 0, "'.'"), -(17843, 0, "' '"), -(17844, 0, "'('"), -(17844, 1, "''"), -(17843, 1, "''"), -(17843, 0, "' '"), -(17844, 0, "'('"), -(17845, 0, "'W'"), -(17846, 0, "'e'"), -(17847, 0, "' '"), -(17848, 0, "'a'"), -(17849, 0, "'s'"), -(17850, 0, "'s'"), -(17851, 0, "'u'"), -(17852, 0, "'m'"), -(17853, 0, "'e'"), -(17854, 0, "' '"), -(17855, 0, "'e'"), -(17856, 0, "'a'"), -(17857, 0, "'c'"), -(17858, 0, "'h'"), -(17859, 0, "' '"), -(17860, 0, "'p'"), -(17861, 0, "'a'"), -(17862, 0, "'r'"), -(17863, 0, "'e'"), -(17864, 0, "'n'"), -(17865, 0, "'t'"), -(17866, 0, "' '"), -(17867, 0, "'i'"), -(17868, 0, "'s'"), -(17869, 0, "' '"), -(17870, 0, "'t'"), -(17871, 0, "'h'"), -(17872, 0, "'e'"), -(17855, 18, "'t'"), -(17856, 0, "'h'"), -(17857, 0, "'e'"), -(17858, 0, "' '"), -(17859, 0, "'i'"), -(17860, 0, "'d'"), -(17861, 0, "'s'"), -(17862, 0, "' '"), -(17863, 0, "'g'"), -(17864, 0, "'o'"), -(17865, 0, "'t'"), -(17866, 0, "' '"), -(17867, 0, "'u'"), -(17868, 0, "'p'"), -(17868, 1, "''"), -(17867, 1, "''"), -(17866, 1, "''"), -(17865, 1, "''"), -(17865, 0, "' '"), -(17866, 0, "'u'"), -(17867, 0, "'p'"), -(17868, 0, "' '"), -(17869, 0, "'b'"), -(17870, 0, "'y'"), -(17871, 0, "' '"), -(17872, 0, "'1'"), -(17873, 0, "' '"), -(17874, 0, "'e'"), -(17875, 0, "'a'"), -(17876, 0, "'c'"), -(17877, 0, "'h'"), -(17878, 0, "' '"), -(17879, 0, "'t'"), -(17880, 0, "'i'"), -(17881, 0, "'m'"), -(17882, 0, "'e'"), -(17883, 0, "','"), -(17884, 0, "' '"), -(17885, 0, "'a'"), -(17886, 0, "'n'"), -(17887, 0, "'d'"), -(17888, 0, "' '"), -(17889, 0, "'e'"), -(17890, 0, "'a'"), -(17891, 0, "'c'"), -(17892, 0, "'h'"), -(17893, 0, "' '"), -(17894, 0, "'i'"), -(17895, 0, "'t'"), -(17896, 0, "'e'"), -(17897, 0, "'m'"), -(17898, 0, "' '"), -(17899, 0, "'h'"), -(17900, 0, "'a'"), -(17901, 0, "'s'"), -(17902, 0, "' '"), -(17903, 0, "'t'"), -(17904, 0, "'h'"), -(17905, 0, "'e'"), -(17906, 0, "'p'"), -(17907, 0, "'r'"), -(17908, 0, "'e'"), -(17908, 1, "''"), -(17907, 1, "''"), -(17906, 1, "''"), -(17906, 0, "' '"), -(17907, 0, "'p'"), -(17908, 0, "'r'"), -(17909, 0, "'e'"), -(17910, 0, "'v'"), -(17911, 0, "'i'"), -(17912, 0, "'o'"), -(17913, 0, "'u'"), -(17914, 0, "'s'"), -(17915, 0, "' '"), -(17916, 0, "'i'"), -(17917, 0, "'t'"), -(17918, 0, "'e'"), -(17919, 0, "'m'"), -(17920, 0, "' '"), -(17921, 0, "'a'"), -(17922, 0, "'s'"), -(17923, 0, "' '"), -(17924, 0, "'a'"), -(17898, 27, "''"), -(17898, 0, "'''"), -(17899, 0, "'s'"), -(17900, 0, "' '"), -(17901, 0, "'p'"), -(17902, 0, "'a'"), -(17903, 0, "'r'"), -(17904, 0, "'e'"), -(17905, 0, "'n'"), -(17906, 0, "'t'"), -(17907, 0, "' '"), -(17908, 0, "'i'"), -(17909, 0, "'s'"), -(17910, 0, "' '"), -(17911, 0, "'t'"), -(17912, 0, "'h'"), -(17913, 0, "'e'"), -(17914, 0, "' '"), -(17915, 0, "'p'"), -(17916, 0, "'r'"), -(17917, 0, "'e'"), -(17918, 0, "'v'"), -(17919, 0, "'i'"), -(17920, 0, "'o'"), -(17921, 0, "'u'"), -(17922, 0, "'s'"), -(17923, 0, "' '"), -(17924, 0, "'i'"), -(17925, 0, "'t'"), -(17926, 0, "'e'"), -(17927, 0, "'m'"), -(17928, 0, "')'"), -(18109, 15, "'n'"), -(18110, 0, "'e'"), -(18111, 0, "'e'"), -(18112, 0, "'d'"), -(18113, 0, "'s'"), -(18201, 1, "''"), -(18200, 1, "''"), -(18200, 0, "','"), -(18201, 49, "' '"), -(18157, 0, "'l'"), -(18158, 0, "'a'"), -(18159, 0, "'t'"), -(18160, 0, "'e'"), -(18161, 0, "'r'"), -(18162, 0, "' '"), -(18208, 0, "'s'"), -(18209, 0, "'o'"), -(18210, 0, "' '"), -(18211, 0, "'t'"), -(18212, 0, "'h'"), -(18213, 0, "'e'"), -(18214, 0, "' '"), -(18215, 0, "'l'"), -(18216, 0, "'o'"), -(18217, 0, "'g'"), -(18218, 0, "'i'"), -(18219, 0, "'c'"), -(18220, 0, "' '"), -(18221, 0, "'i'"), -(18222, 0, "'s'"), -(18223, 0, "' '"), -(18224, 0, "'a'"), -(18225, 0, "' '"), -(18226, 0, "'b'"), -(18227, 0, "'i'"), -(18228, 0, "'t'"), -(18229, 0, "' '"), -(18230, 0, "'c'"), -(18231, 0, "'o'"), -(18232, 0, "'m'"), -(18233, 0, "'p'"), -(18234, 0, "'l'"), -(18235, 0, "'e'"), -(18236, 0, "'x'"), -(18237, 0, "'.'"), -(18240, 0, "'B'"), -(18241, 0, "'u'"), -(18242, 0, "'t'"), -(18243, 0, "' '"), -(18244, 1, "''"), -(18244, 0, "'i'"), -(18260, 0, "'i'"), -(18261, 0, "'n'"), -(18262, 0, "'g'"), -(18247, 4, "'t'"), -(18248, 0, "'h'"), -(18249, 0, "'i'"), -(18250, 0, "'s'"), -(18251, 0, "' '"), -(18269, 0, "' '"), -(18270, 0, "'s'"), -(18271, 0, "'e'"), -(18272, 0, "'t'"), -(18324, 4, "'a'"), -(18325, 0, "'r'"), -(18326, 0, "'r'"), -(18327, 0, "'a'"), -(18328, 0, "'y'"), -(18356, 1, "''"), -(18355, 1, "''"), -(18354, 1, "''"), -(18353, 1, "''"), -(18352, 1, "''"), -(18351, 1, "''"), -(18998, 0, "','"), -(18999, 0, "' '"), -(19000, 0, "'b'"), -(19001, 0, "'u'"), -(19002, 0, "'t'"), -(19003, 3, "' '"), -(19004, 0, "'i'"), -(19958, 4, "'r'"), -(19959, 0, "'e'"), -(19960, 0, "'c'"), -(19961, 0, "'l'"), -(19962, 0, "'a'"), -(19963, 0, "'i'"), -(19964, 0, "'m'"), -(19965, 6, "' '"), -(19966, 0, "'t'"), -(19967, 0, "'h'"), -(19968, 0, "'e'"), -(19958, 11, "'c'"), -(19959, 0, "'l'"), -(19960, 0, "'a'"), -(19961, 0, "'i'"), -(19962, 0, "'m'"), -(19963, 0, "' '"), -(19964, 0, "'t'"), -(19965, 0, "'h'"), -(19966, 0, "'e'"), -(19967, 0, "' '"), -(19967, 1, "''"), -(19979, 0, "' '"), -(19980, 0, "'c'"), -(19981, 0, "'r'"), -(19982, 0, "'o'"), -(19983, 0, "'w'"), -(19984, 0, "'n'"), -(19985, 0, "' '"), -(19986, 0, "'b'"), -(19987, 0, "'a'"), -(19988, 0, "'c'"), -(19989, 0, "'k'"), -(21597, 12, "'s'"), -(21598, 0, "'o'"), -(21599, 0, "' '"), -(21600, 0, "'r'"), -(21601, 0, "'a'"), -(21602, 0, "'r'"), -(21603, 0, "'e'"), -(21604, 0, "'l'"), -(21605, 0, "'y'"), -(21647, 0, "'*'"), -(21686, 0, "'*'"), -(21789, 0, "'.'"), -(21790, 0, "' '"), -(21791, 0, "'n'"), -(21791, 1, "''"), -(21790, 1, "''"), -(21790, 0, "' '"), -(21791, 0, "'A'"), -(21792, 0, "'n'"), -(21793, 0, "'d'"), -(21794, 0, "' '"), -(21795, 0, "'t'"), -(21796, 0, "'h'"), -(21797, 0, "'i'"), -(21798, 0, "'s'"), -(21799, 0, "' '"), -(21800, 0, "'c'"), -(21801, 0, "'o'"), -(21802, 0, "'d'"), -(21803, 0, "'e'"), -(21804, 0, "' '"), -(21805, 0, "'w'"), -(21806, 0, "'i'"), -(21807, 0, "'l'"), -(21808, 0, "'l'"), -(21809, 0, "' '"), -(21810, 0, "'b'"), -(21811, 0, "'e'"), -(21812, 0, "' '"), -(21813, 0, "'u'"), -(21814, 0, "'s'"), -(21815, 0, "'e'"), -(21816, 0, "'d'"), -(21805, 12, "'s'"), -(21806, 0, "'h'"), -(21807, 0, "'o'"), -(21808, 0, "'u'"), -(21809, 0, "'l'"), -(21810, 0, "'d'"), -(21811, 0, "' '"), -(21812, 0, "'b'"), -(21813, 0, "'e'"), -(21814, 0, "' '"), -(21815, 0, "'f'"), -(21816, 0, "'a'"), -(21817, 0, "'s'"), -(21818, 0, "'t'"), -(21819, 0, "' '"), -(21820, 0, "'f'"), -(21821, 0, "'o'"), -(21822, 0, "'r'"), -(21823, 0, "' '"), -(21824, 0, "'i'"), -(21825, 0, "'n'"), -(21826, 0, "'t'"), -(21827, 0, "'e'"), -(21828, 0, "'r'"), -(21829, 0, "'a'"), -(21824, 6, "'s'"), -(21825, 0, "'t'"), -(21826, 0, "'u'"), -(21827, 0, "'f'"), -(21828, 0, "' '"), -(21828, 1, "''"), -(21824, 4, "'n'"), -(21825, 0, "'o'"), -(21826, 0, "'n'"), -(21827, 0, "'-'"), -(21828, 0, "'t'"), -(21829, 0, "'e'"), -(21830, 0, "'x'"), -(21831, 0, "'t'"), -(21832, 0, "' '"), -(21833, 0, "'e'"), -(21833, 1, "''"), -(21832, 1, "''"), -(21832, 0, "'-'"), -(21833, 0, "'e'"), -(21834, 0, "'d'"), -(21835, 0, "'i'"), -(21836, 0, "'t'"), -(21837, 0, "'i'"), -(21838, 0, "'n'"), -(21839, 0, "'g'"), -(21840, 0, "' '"), -(21841, 0, "'t'"), -(21842, 0, "'a'"), -(21843, 0, "'s'"), -(21844, 0, "'k'"), -(21845, 0, "'s'"), -(21846, 0, "'.'"), -(21847, 5, "'I'"), -(21848, 2, "''"), -(21869, 0, "' '"), -(21870, 0, "'h'"), -(21871, 0, "'a'"), -(21872, 0, "'v'"), -(21873, 0, "'e'"), -(21874, 0, "' '"), -(21875, 0, "'t'"), -(21876, 0, "'o'"), -(21880, 0, "' '"), -(21881, 0, "'o'"), -(21882, 0, "'n'"), -(21883, 0, "'e'"), -(21884, 0, "' '"), -(21885, 0, "'o'"), -(21886, 0, "'f'"), -(21899, 5, "''"), -(21899, 0, "'d'"), -(21900, 0, "'o'"), -(21901, 0, "'c'"), -(21902, 0, "'u'"), -(21903, 0, "'m'"), -(21904, 0, "'e'"), -(21905, 0, "'n'"), -(21906, 0, "'t'"), -(21907, 0, "' '"), -(22150, 4, "'y'"), -(22151, 0, "'o'"), -(22152, 0, "'u'"), -(22153, 0, "'r'"), -(22208, 0, "','"), -(22209, 0, "' '"), -(22210, 0, "'j'"), -(22211, 0, "'u'"), -(22212, 0, "'s'"), -(22213, 0, "'t'"), -(22214, 0, "' '"), -(22215, 0, "'f'"), -(22216, 0, "'r'"), -(22217, 0, "'o'"), -(22218, 0, "'m'"), -(22219, 0, "' '"), -(22208, 12, "''"), -(22297, 0, "' '"), -(22298, 0, "'i'"), -(22299, 0, "'n'"), -(22300, 0, "' '"), -(22301, 0, "'t'"), -(22302, 0, "'h'"), -(22303, 0, "'e'"), -(22304, 0, "' '"), -(22305, 0, "'l'"), -(22306, 0, "'a'"), -(22307, 0, "'s'"), -(22308, 0, "'t'"), -(22309, 0, "' '"), -(22310, 0, "'f'"), -(22311, 0, "'e'"), -(22312, 0, "'w'"), -(22313, 0, "' '"), -(22314, 0, "'y'"), -(22315, 0, "'e'"), -(22316, 0, "'a'"), -(22317, 0, "'r'"), -(22318, 0, "'s'"), -(22324, 16, "''"), -(22365, 0, "','"), -(22366, 0, "' '"), -(22367, 0, "'e'"), -(22368, 0, "'v'"), -(22369, 0, "'e'"), -(22370, 0, "'n'"), -(22371, 0, "' '"), -(22372, 0, "'w'"), -(22373, 0, "'e'"), -(22373, 1, "''"), -(22373, 0, "'h'"), -(22374, 0, "'e'"), -(22375, 0, "'n'"), -(22376, 0, "' '"), -(22377, 0, "'m'"), -(22378, 0, "'a'"), -(22379, 0, "'k'"), -(22380, 0, "'i'"), -(22381, 0, "'n'"), -(22382, 0, "'g'"), -(22383, 0, "' '"), -(22384, 0, "'w'"), -(22385, 0, "'e'"), -(22386, 0, "'b'"), -(22387, 0, "'p'"), -(22388, 0, "'a'"), -(22389, 0, "'g'"), -(22390, 0, "'e'"), -(22391, 0, "'s'"), -(22356, 9, "''"), -(22356, 1, "''"), -(22356, 0, "'.'"), -(22358, 1, "''"), -(22358, 0, "'E'"), -(22383, 1, "''"), -(22383, 0, "','"), -(22385, 1, "''"), -(22385, 0, "'w'"), -(22404, 1, "''"), -(22404, 0, "'!'"), -(23036, 0, "' '"), -(23037, 0, "'t'"), -(23038, 0, "'h'"), -(23039, 0, "'a'"), -(23040, 0, "'t'"), -(23041, 0, "' '"), -(23042, 0, "'m'"), -(23043, 0, "'e'"), -(23044, 0, "'a'"), -(23045, 0, "'n'"), -(23046, 0, "'s'"), -(23047, 0, "' '"), -(23048, 0, "'w'"), -(23049, 0, "'e'"), -(23050, 0, "'c'"), -(23050, 1, "''"), -(23050, 0, "' '"), -(23051, 0, "'c'"), -(23052, 0, "'a'"), -(23053, 0, "'n'"), -(23054, 0, "' '"), -(23055, 0, "'f'"), -(23056, 0, "'i'"), -(23057, 0, "'n'"), -(23058, 0, "'d'"), -(23059, 0, "' '"), -(23060, 0, "'a'"), -(23061, 0, "'n'"), -(23062, 0, "'y'"), -(23063, 0, "' '"), -(23064, 0, "'t'"), -(23065, 0, "'i'"), -(23065, 1, "''"), -(23064, 1, "''"), -(23064, 0, "'i'"), -(23065, 0, "'t'"), -(23066, 0, "'e'"), -(23067, 0, "'m'"), -(23068, 0, "' '"), -(23069, 0, "'i'"), -(23070, 0, "'n'"), -(23071, 19, "''"), -(23071, 0, "' '"), -(23072, 0, "'a'"), -(23073, 0, "'b'"), -(23074, 0, "'o'"), -(23075, 0, "'u'"), -(23076, 0, "'t'"), -(23085, 0, "' '"), -(23086, 0, "'f'"), -(23087, 0, "'r'"), -(23088, 0, "'o'"), -(23089, 0, "'m'"), -(23090, 0, "' '"), -(23091, 0, "'m'"), -(23092, 0, "'a'"), -(23093, 0, "'i'"), -(23094, 0, "'n'"), -(23095, 0, "' '"), -(23096, 0, "'m'"), -(23097, 0, "'e'"), -(23098, 0, "'m'"), -(23099, 0, "'o'"), -(23100, 0, "'r'"), -(23101, 0, "'y'"), -(23102, 17, "''"), -(23115, 3, "''"), -(23158, 0, "'.'"), -(23160, 16, "'A'"), -(23161, 0, "'g'"), -(23162, 0, "'a'"), -(23163, 0, "'i'"), -(23164, 0, "'n'"), -(23165, 0, "','"), -(23214, 0, "'s'"), -(23215, 0, "'h'"), -(23216, 0, "'u'"), -(23217, 0, "'f'"), -(23218, 0, "'f'"), -(23219, 0, "'l'"), -(23220, 0, "'i'"), -(23221, 0, "'n'"), -(23222, 0, "'g'"), -(23223, 0, "' '"), -(23224, 0, "'e'"), -(23225, 0, "'v'"), -(23226, 0, "'e'"), -(23227, 0, "'r'"), -(23228, 0, "'y'"), -(23229, 0, "'t'"), -(23230, 0, "'h'"), -(23231, 0, "'i'"), -(23232, 0, "'n'"), -(23233, 0, "'g'"), -(23234, 0, "' '"), -(23235, 0, "'i'"), -(23236, 0, "'n'"), -(23237, 0, "' '"), -(23238, 0, "'a'"), -(23239, 0, "' '"), -(23240, 5, "''"), -(23554, 1, "''"), -(23553, 1, "''"), -(23552, 1, "''"), -(23551, 1, "''"), -(23551, 0, "' '"), -(23552, 0, "'i'"), -(23553, 0, "'t'"), -(23554, 0, "' '"), -(23555, 0, "'u'"), -(23556, 0, "'e'"), -(23557, 0, "'t'"), -(23557, 1, "''"), -(23556, 1, "''"), -(23555, 1, "''"), -(23555, 0, "'y'"), -(23556, 0, "'e'"), -(23557, 0, "'t'"), -(23558, 0, "'.'"), -(23651, 0, "'E'"), -(23652, 0, "'a'"), -(23653, 0, "'c'"), -(23654, 0, "'h'"), -(23655, 0, "' '"), -(23656, 0, "'l'"), -(23657, 0, "'e'"), -(23658, 0, "'a'"), -(23659, 0, "'f'"), -(23660, 0, "' '"), -(23661, 0, "'n'"), -(23662, 0, "'o'"), -(23663, 0, "'e'"), -(23663, 1, "''"), -(23663, 0, "'d'"), -(23664, 0, "'e'"), -(23665, 0, "' '"), -(23666, 0, "'i'"), -(23667, 0, "'n'"), -(23668, 0, "' '"), -(23669, 0, "'m'"), -(23670, 0, "'y'"), -(23671, 0, "' '"), -(23672, 0, "'b'"), -(23673, 0, "'-'"), -(23674, 0, "'t'"), -(23675, 0, "'r'"), -(23676, 0, "'e'"), -(23677, 0, "'e'"), -(23678, 0, "' '"), -(23679, 4, "''"), -(23685, 1, "''"), -(23684, 1, "''"), -(23683, 1, "''"), -(23683, 0, "'e'"), -(23684, 0, "'s'"), -(23685, 26, "''"), -(23696, 18, "''"), -(23696, 0, "','"), -(23697, 0, "' '"), -(23698, 0, "'a'"), -(23699, 0, "'l'"), -(23700, 0, "'l'"), -(23701, 0, "' '"), -(23696, 6, "''"), -(23686, 0, "'a'"), -(23687, 0, "' '"), -(23688, 0, "'b'"), -(23689, 0, "'l'"), -(23690, 0, "'o'"), -(23691, 0, "'c'"), -(23692, 0, "'k'"), -(23693, 0, "' '"), -(23694, 0, "'o'"), -(23695, 0, "'f'"), -(23696, 0, "' '"), -(23707, 0, "','"), -(23708, 0, "' '"), -(23709, 0, "'a'"), -(23710, 0, "'l'"), -(23711, 0, "'l'"), -(23712, 0, "' '"), -(23713, 0, "'p'"), -(23714, 0, "'a'"), -(23715, 0, "'c'"), -(23716, 0, "'k'"), -(23717, 0, "'e'"), -(23718, 0, "'d'"), -(23719, 0, "' '"), -(23720, 0, "'t'"), -(23721, 0, "'o'"), -(23722, 0, "'g'"), -(23723, 0, "'e'"), -(23724, 0, "'t'"), -(23725, 0, "'h'"), -(23726, 0, "'e'"), -(23727, 0, "'r'"), -(23728, 0, "' '"), -(23729, 0, "'i'"), -(23730, 0, "'n'"), -(23731, 0, "' '"), -(23732, 0, "'m'"), -(23733, 0, "'e'"), -(23734, 0, "'m'"), -(23735, 0, "'o'"), -(23736, 0, "'r'"), -(23737, 0, "'y'"), -(23898, 9, "'c'"), -(23899, 0, "'l'"), -(23900, 0, "'o'"), -(23901, 0, "'c'"), -(23902, 0, "'k'"), -(23903, 0, "' '"), -(23904, 0, "'c'"), -(23905, 0, "'y'"), -(23906, 0, "'c'"), -(23907, 0, "'l'"), -(23908, 0, "'e'"), -(23909, 1, "''"), -(23909, 0, "'.'"), -(23910, 0, "' '"), -(23911, 0, "'N'"), -(23912, 0, "'o'"), -(23913, 0, "'t'"), -(23914, 14, "''"), -(27669, 13, "''"), -(27886, 3, "'b'"), -(27887, 0, "'u'"), -(27888, 0, "'t'"), -(27889, 0, "' '"), -(27890, 0, "'w'"), -(27891, 0, "'e'"), -(27892, 0, "'''"), -(27893, 0, "'r'"), -(27894, 0, "'e'"), -(27869, 5, "'o'"), -(27870, 0, "'u'"), -(27871, 0, "'r'"), -(27881, 1, "''"), -(27881, 0, "'i'"), -(27882, 0, "'e'"), -(27883, 0, "'s'"), -(27889, 6, "''"), -(27869, 4, "'w'"), -(27870, 0, "'h'"), -(27871, 0, "'a'"), -(27872, 0, "'t'"), -(27873, 0, "' '"), -(27874, 0, "'w'"), -(27875, 0, "'e'"), -(27876, 11, "' '"), -(27877, 0, "'o'"), -(27878, 0, "'b'"), -(27879, 0, "'s'"), -(27880, 0, "'e'"), -(27881, 0, "'s'"), -(27882, 0, "'s'"), -(27883, 0, "' '"), -(27884, 0, "'o'"), -(27885, 0, "'v'"), -(27886, 0, "'e'"), -(27887, 0, "'r'"), -(27927, 0, "' '"), -(27928, 0, "'I'"), -(27929, 0, "' '"), -(27930, 0, "'c'"), -(27931, 0, "'a'"), -(27932, 0, "'n'"), -(27933, 0, "' '"), -(27934, 0, "'c'"), -(27935, 0, "'o'"), -(27936, 0, "'d'"), -(27937, 0, "'e'"), -(27938, 0, "' '"), -(27939, 0, "'p'"), -(27939, 1, "''"), -(27939, 0, "'w'"), -(27940, 0, "'e'"), -(27941, 0, "'l'"), -(27942, 0, "'l'"), -(27943, 0, "' '"), -(27944, 0, "'e'"), -(27945, 0, "'n'"), -(27946, 0, "'o'"), -(27947, 0, "'u'"), -(27948, 0, "'g'"), -(27949, 0, "'h'"), -(27950, 0, "' '"), -(27950, 1, "''"), -(27950, 0, "','"), -(27951, 0, "' '"), -(27952, 0, "'b'"), -(27953, 0, "'u'"), -(27954, 0, "'t'"), -(27955, 0, "' '"), -(27956, 0, "'d'"), -(27957, 0, "'o'"), -(27958, 0, "'''"), -(27959, 0, "'t'"), -(27959, 1, "''"), -(27958, 1, "''"), -(27958, 0, "'n'"), -(27959, 0, "'''"), -(27960, 0, "'t'"), -(27956, 5, "'I'"), -(27957, 0, "' '"), -(27958, 0, "'s'"), -(27959, 0, "'t'"), -(27960, 0, "'i'"), -(27961, 0, "'l'"), -(27962, 0, "'l'"), -(27963, 0, "' '"), -(27964, 0, "'g'"), -(27965, 0, "'e'"), -(27966, 0, "'t'"), -(27967, 0, "' '"), -(27968, 0, "'z'"), -(27969, 0, "'u'"), -(27970, 0, "'c'"), -(27971, 0, "'c'"), -(27972, 0, "'i'"), -(27973, 0, "'n'"), -(27974, 0, "'i'"), -(27975, 0, "' '"), -(27976, 0, "'a'"), -(27977, 0, "'n'"), -(27978, 0, "'d'"), -(27979, 0, "' '"), -(27980, 0, "'c'"), -(27981, 0, "'u'"), -(27982, 0, "'c'"), -(27983, 0, "'u'"), -(27984, 0, "'b'"), -(27985, 0, "'m'"), -(27986, 0, "'e'"), -(27987, 0, "'r'"), -(27988, 0, "' '"), -(27988, 1, "''"), -(27987, 1, "''"), -(27986, 1, "''"), -(27985, 1, "''"), -(27984, 1, "''"), -(27984, 0, "'m'"), -(27985, 0, "'b'"), -(27986, 0, "'e'"), -(27987, 0, "'r'"), -(27988, 0, "' '"), -(27989, 0, "'m'"), -(27990, 0, "'i'"), -(27991, 0, "'x'"), -(27992, 0, "'e'"), -(27993, 0, "'d'"), -(27994, 0, "' '"), -(27995, 0, "'u'"), -(27996, 0, "'p'"), -(27971, 1, "''"), -(27971, 0, "'h'"), -(27971, 1, "''"), -(27971, 0, "'c'"), -(27857, 0, "'.'"), -(27859, 1, "'W'"), -(27860, 0, "'e'"), -(27861, 0, "'''"), -(27862, 0, "'r'"), -(27863, 0, "'e'"), -(27864, 0, "' '"), -(27865, 0, "'a'"), -(27866, 0, "'l'"), -(27867, 0, "'l'"), -(27882, 0, "'e'"), -(27883, 0, "'v'"), -(27884, 0, "'e'"), -(27885, 0, "'r'"), -(27865, 4, "''"), -(28006, 0, "'.'"), -(28333, 9, "''"), -(28329, 4, "'t'"), -(28330, 0, "'h'"), -(28331, 0, "'e'"), -(28332, 0, "' '"), -(28333, 0, "'a'"), -(28334, 0, "'l'"), -(28335, 0, "'g'"), -(28336, 0, "'o'"), -(28337, 0, "'r'"), -(28338, 0, "'i'"), -(28339, 0, "'t'"), -(28340, 0, "'h'"), -(28341, 0, "'m'"), -(28342, 0, "'s'"), -(28343, 0, "' '"), -(28344, 0, "'w'"), -(28345, 0, "'e'"), -(28346, 0, "'r'"), -(28347, 0, "'e'"), -(28348, 0, "' '"), -(28349, 0, "'t'"), -(28350, 0, "'o'"), -(28351, 0, "'o'"), -(28352, 0, "' '"), -(28364, 22, "' '"), -(28365, 0, "'f'"), -(28366, 0, "'o'"), -(28367, 0, "'r'"), -(28368, 0, "' '"), -(28369, 0, "'p'"), -(28370, 0, "'r'"), -(28371, 0, "'a'"), -(28372, 0, "'c'"), -(28373, 0, "'t'"), -(28374, 0, "'i'"), -(28375, 0, "'c'"), -(28376, 0, "'a'"), -(28377, 0, "'l'"), -(28378, 0, "' '"), -(28365, 14, "''"), -(28353, 0, "'s'"), -(28354, 0, "'l'"), -(28355, 0, "'o'"), -(28356, 0, "'w'"), -(28357, 0, "' '"), -(28358, 0, "'a'"), -(28359, 0, "'n'"), -(28360, 0, "'d'"), -(28361, 0, "' '"), -(28374, 0, "'t'"), -(28375, 0, "'o'"), -(28376, 0, "' '"), -(28377, 0, "'b'"), -(28378, 0, "'e'"), -(28379, 0, "' '"), -(28380, 0, "'p'"), -(28381, 0, "'r'"), -(28382, 0, "'a'"), -(28383, 0, "'c'"), -(28384, 0, "'t'"), -(28385, 0, "'i'"), -(28386, 0, "'c'"), -(28387, 0, "'a'"), -(28388, 0, "'l'"), -(28390, 74, "''"), -(28380, 9, "'u'"), -(28381, 0, "'s'"), -(28382, 0, "'e'"), -(28383, 0, "'f'"), -(28384, 0, "'u'"), -(28385, 0, "'l'"), -(28486, 8, "'d'"), -(28487, 0, "'i'"), -(28488, 0, "'m'"), -(28488, 1, "''"), -(28488, 0, "'s'"), -(28489, 0, "'m'"), -(28490, 0, "'i'"), -(28491, 0, "'s'"), -(28492, 0, "'s'"), -(28493, 0, "'e'"), -(28494, 0, "'d'"), -(28495, 0, "' '"), -(28545, 0, "' '"), -(28546, 0, "'w'"), -(28547, 0, "'r'"), -(28548, 0, "'i'"), -(28549, 0, "'t'"), -(28550, 0, "'i'"), -(28551, 0, "'n'"), -(28552, 0, "'g'"), -(28553, 0, "' '"), -(28554, 0, "'('"), -(28555, 0, "'a'"), -(28556, 0, "'n'"), -(28557, 0, "'d'"), -(28557, 1, "''"), -(28556, 1, "''"), -(28555, 1, "''"), -(28554, 1, "''"), -(28553, 1, "''"), -(28546, 0, "'r'"), -(28547, 0, "'e'"), -(28548, 0, "'a'"), -(28549, 0, "'d'"), -(28550, 0, "'i'"), -(28551, 0, "'n'"), -(28552, 0, "'g'"), -(28553, 0, "' '"), -(28554, 0, "'a'"), -(28555, 0, "'n'"), -(28556, 0, "'d'"), -(28557, 0, "' '"), -(28543, 2, "'w'"), -(28544, 0, "'h'"), -(28545, 0, "'e'"), -(28546, 0, "'n'"), -(28547, 0, "' '"), -(28548, 0, "'i'"), -(28549, 0, "'t'"), -(28550, 0, "' '"), -(28551, 0, "'c'"), -(28552, 0, "'o'"), -(28553, 0, "'m'"), -(28554, 0, "'e'"), -(28555, 0, "'s'"), -(28556, 0, "' '"), -(28557, 0, "'t'"), -(28558, 0, "'o'"), -(28559, 20, "''"), -(28737, 6, "'m'"), -(28738, 0, "'a'"), -(28739, 0, "'k'"), -(28740, 0, "'e'"), -(28767, 0, "' '"), -(28768, 0, "'w'"), -(28769, 0, "'o'"), -(28770, 0, "'r'"), -(28771, 0, "'k'"), -(29148, 11, "'I'"), -(29149, 0, "' '"), -(29150, 0, "'d'"), -(29151, 0, "'o'"), -(29152, 0, "' '"), -(29153, 0, "'w'"), -(29154, 0, "'e'"), -(29155, 0, "'l'"), -(29156, 0, "'l'"), -(29157, 0, "' '"), -(29158, 0, "'e'"), -(29159, 0, "'n'"), -(29160, 0, "'o'"), -(29161, 0, "'u'"), -(29162, 0, "'g'"), -(29163, 0, "'h'"), -(29164, 0, "' '"), -(29165, 0, "'w'"), -(29166, 0, "'i'"), -(29167, 0, "'t'"), -(29168, 0, "'h'"), -(29169, 0, "' '"), -(29170, 0, "'m'"), -(29171, 0, "'y'"), -(29172, 0, "' '"), -(29173, 0, "'n'"), -(29174, 0, "'e'"), -(29148, 27, "'B'"), -(29149, 0, "'u'"), -(29150, 0, "'t'"), -(29151, 0, "' '"), -(29152, 0, "'m'"), -(29153, 0, "'e'"), -(29154, 0, "'?'"), -(29155, 0, "' '"), -(29156, 0, "'I'"), -(29157, 0, "' '"), -(29158, 0, "'d'"), -(29159, 0, "'o'"), -(29160, 0, "'n'"), -(29161, 0, "'''"), -(29162, 0, "'t'"), -(29163, 0, "' '"), -(29164, 0, "'m'"), -(29165, 0, "'i'"), -(29166, 0, "'k'"), -(29166, 1, "''"), -(29166, 0, "'n'"), -(29167, 0, "'d'"), -(29168, 0, "' '"), -(29169, 0, "'k'"), -(29170, 0, "'i'"), -(29171, 0, "'d'"), -(29172, 0, "'s'"), -(29148, 8, "''"), -(29149, 0, "'''"), -(29150, 0, "'m'"), -(29151, 0, "' '"), -(29152, 0, "'o'"), -(29153, 0, "'k'"), -(29154, 0, "' '"), -(29155, 0, "'a'"), -(29156, 0, "'t'"), -(29157, 11, "''"), -(29148, 0, "'M'"), -(29148, 1, "''"), -(29148, 0, "'M'"), -(29149, 0, "'e'"), -(29150, 0, "'?'"), -(29151, 0, "' '"), -(29155, 3, "' '"), -(29156, 0, "'f'"), -(29157, 0, "'i'"), -(29158, 0, "'n'"), -(29159, 0, "'e'"), -(29160, 8, "' '"), -(29161, 0, "'w'"), -(29162, 0, "'i'"), -(29163, 0, "'t'"), -(29164, 0, "'h'"), -(29165, 0, "' '"), -(29166, 0, "'k'"), -(29167, 0, "'i'"), -(29168, 0, "'d'"), -(29169, 0, "'s'"), -(29175, 0, "' '"), -(29176, 0, "'-'"), -(29176, 1, "''"), -(29175, 1, "''"), -(29206, 6, "'p'"), -(29206, 1, "''"), -(29206, 0, "'s'"), -(29207, 0, "'o'"), -(29208, 0, "'f'"), -(29209, 0, "'t'"), -(29210, 0, "'w'"), -(29211, 0, "'a'"), -(29212, 0, "'r'"), -(29213, 0, "'e'"), -(29214, 0, "' '"), -(29512, 19, "''"), -(29523, 3, "''"), -(29527, 0, "' '"), -(29528, 0, "'s'"), -(29529, 0, "'u'"), -(29530, 0, "'p'"), -(29531, 0, "'e'"), -(29532, 0, "'r'"), -(29533, 0, "' '"), -(29534, 0, "'f'"), -(29535, 0, "'a'"), -(29536, 0, "'s'"), -(29537, 0, "'t'"), -(29538, 0, "' '"), -(29539, 0, "'C'"), -(29540, 0, "'R'"), -(29541, 0, "'D'"), -(29542, 0, "'T'"), -(29543, 0, "'s'"), -(29544, 0, "' '"), -(29545, 0, "'f'"), -(29546, 0, "'o'"), -(29547, 0, "'r'"), -(29548, 0, "' '"), -(29549, 0, "'t'"), -(29550, 0, "'h'"), -(29551, 0, "'e'"), -(29552, 0, "' '"), -(29553, 0, "'w'"), -(29554, 0, "'o'"), -(29555, 0, "'r'"), -(29556, 0, "'l'"), -(29557, 0, "'d'"), -(29488, 8, "'o'"), -(29488, 1, "''"), -(29488, 0, "'g'"), -(29489, 0, "'o'"), -(29490, 0, "' '"), -(29491, 0, "'l'"), -(29492, 0, "'o'"), -(29493, 0, "'o'"), -(29494, 0, "'k'"), -(29495, 0, "'i'"), -(29496, 0, "'n'"), -(29497, 0, "'g'"), -(29498, 0, "' '"), -(29499, 0, "'f'"), -(29500, 0, "'o'"), -(29501, 0, "'r'"), -(29502, 0, "' '"), -(29503, 0, "'t'"), -(29504, 0, "'h'"), -(29505, 0, "'e'"), -(29522, 0, "'.'"), -(29523, 0, "' '"), -(29524, 0, "'I'"), -(29525, 0, "'n'"), -(29526, 0, "' '"), -(29527, 0, "'t'"), -(29528, 0, "'h'"), -(29524, 5, "''"), -(29523, 1, "''"), -(29523, 0, "' '"), -(29524, 0, "'I'"), -(29525, 0, "'n'"), -(29526, 0, "' '"), -(29527, 0, "'t'"), -(29528, 0, "'h'"), -(29529, 0, "'i'"), -(29530, 0, "'s'"), -(29531, 0, "' '"), -(29532, 0, "'c'"), -(29533, 0, "'a'"), -(29534, 0, "'s'"), -(29535, 0, "'e'"), -(29536, 0, "','"), -(29531, 6, "''"), -(29526, 5, "''"), -(29523, 3, "''"), -(29523, 0, "' In th'"), -(29526, 3, "''"), -(29523, 3, "''"), -(29522, 1, "''"), -(29502, 4, "''"), -(29502, 0, "' the'"), -(29522, 0, "'.'"), -(29516, 0, "'o'"), -(29517, 0, "'f'"), -(29518, 0, "' '"), -(29519, 0, "'f'"), -(29520, 0, "'a'"), -(29521, 0, "'s'"), -(29522, 0, "'t'"), -(29523, 0, "' '"), -(29524, 0, "'C'"), -(29525, 0, "'R'"), -(29526, 0, "'D'"), -(29527, 0, "'T'"), -(29528, 0, "'s'"), -(29529, 0, "' '"), -(29529, 54, "''"), -(29499, 0, "'i'"), -(29500, 0, "'n'"), -(29501, 0, "'s'"), -(29502, 0, "'i'"), -(29503, 0, "'d'"), -(29504, 0, "'e'"), -(29505, 0, "' '"), -(28308, 4, "'a'"), -(28309, 0, "'h'"), -(28309, 1, "''"), -(28309, 0, "'s'"), -(28310, 0, "'h'"), -(28379, 6, "'p'"), -(28380, 0, "'r'"), -(28381, 0, "'a'"), -(28382, 0, "'c'"), -(28383, 0, "'t'"), -(28384, 0, "'i'"), -(28385, 0, "'c'"), -(28386, 0, "'a'"), -(28387, 0, "'l'"), -(28388, 0, "'l'"), -(28389, 0, "'y'"), -(28390, 0, "' '"), -(28391, 0, "'u'"), -(28392, 0, "'s'"), -(28393, 0, "'e'"), -(28394, 0, "'f'"), -(28395, 0, "'u'"), -(28396, 0, "'l'"), -(28492, 3, "''"), -(15839, 0, "'''"), -(1143, 0, "'i'"), -(1144, 0, "'n'"), -(1145, 0, "'d'"), -(1146, 0, "'i'"), -(1147, 0, "'v'"), -(1148, 0, "'d'"), -(1149, 0, "'i'"), -(1150, 0, "'u'"), -(1151, 0, "'a'"), -(1152, 0, "'l'"), -(1153, 0, "' '"), -(1143, 11, "'i'"), -(1144, 0, "'n'"), -(1145, 0, "'d'"), -(1146, 0, "'i'"), -(1147, 0, "'v'"), -(1148, 0, "'i'"), -(1149, 0, "'d'"), -(1150, 0, "'u'"), -(1151, 0, "'a'"), -(1152, 0, "'l'"), -(1153, 0, "' '"), -(1183, 8, "' '"), -(1184, 0, "'o'"), -(1185, 0, "'p'"), -(1186, 0, "'e'"), -(1187, 0, "'r'"), -(1188, 0, "'a'"), -(1189, 0, "'t'"), -(1190, 0, "'i'"), -(1191, 0, "'o'"), -(1192, 0, "'n'"), -(1193, 0, "'s'"), -(1230, 3, "'D'"), -(1231, 0, "'o'"), -(1232, 0, "'''"), -(1233, 0, "'h'"), -(1565, 0, "'t'"), -(1566, 0, "'h'"), -(1567, 0, "'a'"), -(1568, 0, "'t'"), -(1569, 0, "' '"), -(1570, 0, "'t'"), -(1571, 0, "'h'"), -(1572, 0, "'e'"), -(1573, 0, "'s'"), -(1574, 0, "'e'"), -(1575, 0, "' '"), -(1576, 0, "'s'"), -(1577, 0, "'p'"), -(1578, 0, "'e'"), -(1579, 0, "'e'"), -(1580, 0, "'d'"), -(1576, 5, "'b'"), -(1577, 0, "'e'"), -(1578, 0, "'n'"), -(1579, 0, "'c'"), -(1580, 0, "'h'"), -(1581, 0, "'m'"), -(1582, 0, "'a'"), -(1583, 0, "'r'"), -(1584, 0, "'k'"), -(1585, 0, "' '"), -(1586, 0, "'s'"), -(1576, 11, "'p'"), -(1577, 0, "'u'"), -(1578, 0, "'b'"), -(1579, 0, "'l'"), -(1580, 0, "'i'"), -(1581, 0, "'s'"), -(1582, 0, "'h'"), -(1583, 0, "'e'"), -(1584, 0, "'d'"), -(1585, 0, "' '"), -(1586, 0, "'s'"), -(1587, 0, "'p'"), -(1586, 2, "'a'"), -(1587, 0, "'l'"), -(1588, 0, "'g'"), -(1589, 0, "'o'"), -(1590, 0, "'r'"), -(1591, 0, "'i'"), -(1592, 0, "'t'"), -(1593, 0, "'h'"), -(1594, 0, "'m'"), -(1595, 0, "' '"), -(1596, 0, "'s'"), -(1597, 0, "'p'"), -(1598, 0, "'e'"), -(1599, 0, "'e'"), -(1600, 0, "'d'"), -(1601, 0, "'s'"), -(1602, 0, "' '"), -(1603, 0, "'a'"), -(1604, 0, "'r'"), -(1605, 0, "'e'"), -(1606, 0, "' '"), -(1607, 7, "''"), -(1606, 1, "''"), -(1718, 0, "'''"), -(1767, 0, "'''"), -(1747, 0, "' '"), -(1748, 0, "'e'"), -(1749, 0, "'v'"), -(1750, 0, "'e'"), -(1751, 0, "'r'"), -(1752, 0, "'y'"), -(1753, 0, "'b'"), -(1754, 0, "'o'"), -(1755, 0, "'d'"), -(1756, 0, "'y'"), -(1778, 0, "'-'"), -(1778, 1, "''"), -(1778, 0, "' '"), -(1779, 0, "'-'"), -(1780, 0, "' '"), -(1781, 0, "'b'"), -(1782, 0, "'u'"), -(1783, 0, "'t'"), -(1784, 0, "' '"), -(1785, 0, "'I'"), -(1786, 0, "' '"), -(1787, 0, "'d'"), -(1788, 0, "'i'"), -(1789, 0, "'d'"), -(1790, 0, "'n'"), -(1791, 0, "'''"), -(1792, 0, "'t'"), -(1793, 0, "' '"), -(1794, 0, "'h'"), -(1795, 0, "'a'"), -(1796, 0, "'v'"), -(1797, 0, "'e'"), -(1798, 0, "' '"), -(1799, 0, "'a'"), -(1800, 0, "' '"), -(1786, 15, "' '"), -(1787, 0, "'w'"), -(1788, 0, "'a'"), -(1789, 0, "'s'"), -(1790, 0, "' '"), -(1791, 0, "'n'"), -(1792, 0, "'o'"), -(1793, 0, "'b'"), -(1794, 0, "'o'"), -(1795, 0, "'d'"), -(1796, 0, "'y'"), -(1797, 0, "','"), -(1798, 0, "' '"), -(1798, 1, "''"), -(1797, 1, "''"), -(1797, 0, "';'"), -(1798, 0, "' '"), -(1798, 1, "''"), -(1797, 1, "''"), -(1797, 0, "'.'"), -(1798, 0, "' '"), -(1799, 0, "'I'"), -(1800, 0, "' '"), -(1801, 0, "'d'"), -(1802, 0, "'i'"), -(1803, 0, "'d'"), -(1804, 0, "'n'"), -(1805, 0, "'''"), -(1806, 0, "'t'"), -(1807, 0, "' '"), -(1808, 0, "'h'"), -(1809, 0, "'a'"), -(1810, 0, "'v'"), -(1811, 0, "'e'"), -(1812, 0, "' '"), -(1813, 0, "'a'"), -(1814, 0, "' '"), -(1815, 0, "'s'"), -(1816, 0, "'c'"), -(1817, 0, "'i'"), -(1818, 0, "'e'"), -(1819, 0, "'n'"), -(1820, 0, "'t'"), -(1821, 0, "'i'"), -(1822, 0, "'f'"), -(1823, 0, "'i'"), -(1824, 0, "'c'"), -(1825, 0, "' '"), -(1815, 11, "'p'"), -(1816, 0, "'u'"), -(1817, 0, "'b'"), -(1818, 0, "'l'"), -(1819, 0, "'i'"), -(1820, 0, "'s'"), -(1821, 0, "'h'"), -(1822, 0, "'e'"), -(1823, 0, "'d'"), -(1824, 0, "' '"), -(1825, 0, "'p'"), -(1826, 0, "'a'"), -(1827, 0, "'p'"), -(1828, 0, "'e'"), -(1829, 0, "'r'"), -(1830, 0, "' '"), -(1831, 0, "'j'"), -(1832, 0, "'u'"), -(1833, 0, "'s'"), -(1834, 0, "'t'"), -(1835, 0, "'i'"), -(1836, 0, "'f'"), -(1837, 0, "'y'"), -(1838, 0, "'i'"), -(1839, 0, "'n'"), -(1840, 0, "'g'"), -(1841, 0, "' '"), -(1842, 0, "'m'"), -(1843, 0, "'y'"), -(1844, 0, "' '"), -(1845, 0, "'c'"), -(1846, 0, "'l'"), -(1847, 0, "'a'"), -(1848, 0, "'i'"), -(1849, 0, "'m'"), -(1850, 0, "'s'"), -(1851, 0, "'.'"), -(1852, 0, "' '"), -(1853, 0, "'J'"), -(1854, 0, "'u'"), -(1855, 0, "'s'"), -(1856, 0, "'t'"), -(1857, 0, "' '"), -(1858, 0, "'w'"), -(1859, 0, "'o'"), -(1860, 0, "'r'"), -(1861, 0, "'k'"), -(1862, 0, "'i'"), -(1863, 0, "'n'"), -(1864, 0, "'g'"), -(1865, 0, "' '"), -(1866, 0, "'c'"), -(1867, 0, "'o'"), -(1868, 0, "'d'"), -(1869, 0, "'e'"), -(1870, 0, "'.'"), -(1853, 0, "'('"), -(1872, 0, "'.'"), -(1873, 0, "'.'"), -(1874, 0, "')'"), -(1852, 23, "''"), -(1585, 10, "''"), -(1591, 1, "''"), -(1591, 0, "' '"), -(1592, 0, "'c'"), -(1593, 0, "'m'"), -(1594, 0, "'p'"), -(1594, 1, "''"), -(1593, 1, "''"), -(1593, 0, "'o'"), -(1594, 0, "'m'"), -(1595, 0, "'p'"), -(1596, 0, "'a'"), -(1597, 0, "'r'"), -(1598, 0, "'i'"), -(1599, 0, "'s'"), -(1600, 0, "'o'"), -(1601, 0, "'n'"), -(1602, 0, "'s'"), -(1667, 0, "','"), -(1667, 1, "''"), -(1706, 0, "'u'"), -(1707, 0, "'n'"), -(1708, 0, "'i'"), -(1709, 0, "'v'"), -(1710, 0, "'e'"), -(1711, 0, "'r'"), -(1712, 0, "'s'"), -(1713, 0, "'i'"), -(1714, 0, "'t'"), -(1715, 0, "'y'"), -(1716, 0, "' '"), -(1716, 1, "''"), -(1706, 10, "''"), -(3379, 5, "'a'"), -(3380, 0, "' '"), -(3381, 0, "'d'"), -(3382, 0, "'e'"), -(3383, 0, "'c'"), -(3384, 0, "'a'"), -(3385, 0, "'d'"), -(3386, 0, "'e'"), -(3389, 0, "'''"), -(3390, 0, "'v'"), -(3391, 0, "'e'"), -(3392, 7, "' '"), -(3393, 0, "'b'"), -(3394, 0, "'e'"), -(3395, 0, "'e'"), -(3396, 0, "'n'"), -(3404, 1, "''"), -(3403, 1, "''"), -(3403, 0, "'i'"), -(3404, 0, "'n'"), -(3405, 0, "'g'"), -(3449, 15, "'C'"), -(3450, 0, "'R'"), -(3451, 0, "'D'"), -(3452, 0, "'T'"), -(3453, 0, "'s'"), -(3454, 0, "'.'"), -(3455, 0, "' '"), -(3456, 0, "'T'"), -(3457, 0, "'h'"), -(3458, 0, "'a'"), -(3459, 0, "'t'"), -(3460, 0, "' '"), -(3461, 0, "'t'"), -(3462, 0, "'h'"), -(3463, 0, "'e'"), -(3464, 0, "'y'"), -(3465, 0, "' '"), -(3466, 0, "'w'"), -(3467, 0, "'e'"), -(3468, 0, "'r'"), -(3469, 0, "'e'"), -(3470, 0, "' '"), -(3471, 0, "'d'"), -(3472, 0, "'o'"), -(3473, 0, "'o'"), -(3474, 0, "'m'"), -(3475, 0, "'e'"), -(3476, 0, "'d'"), -(3477, 0, "' '"), -(3478, 0, "'t'"), -(3479, 0, "'o'"), -(3480, 0, "' '"), -(3481, 0, "'a'"), -(3482, 0, "'l'"), -(3483, 0, "'w'"), -(3484, 0, "'a'"), -(3485, 0, "'y'"), -(3486, 0, "'s'"), -(3487, 0, "' '"), -(3488, 0, "'b'"), -(3489, 0, "'e'"), -(3490, 0, "' '"), -(3491, 0, "'s'"), -(3492, 0, "'l'"), -(3493, 0, "'o'"), -(3494, 0, "'w'"), -(3495, 0, "' '"), -(3496, 0, "'a'"), -(3497, 0, "'n'"), -(3498, 0, "'d'"), -(3499, 0, "' '"), -(3500, 0, "'u'"), -(3501, 0, "'n'"), -(3502, 0, "'w'"), -(3503, 0, "'o'"), -(3504, 0, "'r'"), -(3504, 1, "''"), -(3504, 0, "'r'"), -(3505, 0, "'k'"), -(3506, 0, "'a'"), -(3507, 0, "'b'"), -(3508, 0, "'l'"), -(3509, 0, "'e'"), -(3515, 0, "' '"), -(3516, 0, "'-'"), -(3517, 0, "' '"), -(3518, 0, "'a'"), -(3519, 0, "'n'"), -(3520, 0, "'d'"), -(3537, 0, "' '"), -(3538, 0, "'t'"), -(3539, 0, "'o'"), -(3540, 0, "' '"), -(3541, 0, "'a'"), -(3542, 0, "'d'"), -(3543, 0, "'m'"), -(3544, 0, "'i'"), -(3545, 0, "'t'"), -(3048, 18, "'M'"), -(3049, 0, "'a'"), -(3050, 0, "'k'"), -(3051, 0, "'i'"), -(3052, 0, "'n'"), -(3053, 0, "'g'"), -(3054, 0, "' '"), -(3055, 0, "'C'"), -(3056, 0, "'R'"), -(3057, 0, "'D'"), -(3058, 0, "'T'"), -(3059, 0, "'s'"), -(3048, 12, "'M'"), -(3049, 0, "'a'"), -(3050, 0, "'k'"), -(3050, 1, "''"), -(3049, 1, "''"), -(3048, 1, "''"), -(3048, 0, "'I'"), -(3049, 0, "'m'"), -(3050, 0, "'p'"), -(3051, 0, "'l'"), -(3052, 0, "'e'"), -(3046, 7, "''"), -(3045, 1, "''"), -(3044, 1, "''"), -(1438, 7, "'s'"), -(1439, 0, "'e'"), -(1440, 0, "'n'"), -(1441, 0, "'d'"), -(1442, 0, "'i'"), -(1443, 0, "'n'"), -(1444, 0, "'g'"), -(1445, 0, "' '"), -(1446, 0, "'m'"), -(1447, 0, "'e'"), -(1448, 0, "' '"), -(1449, 0, "'l'"), -(1450, 0, "'i'"), -(1451, 0, "'n'"), -(1452, 0, "'k'"), -(1453, 0, "'s'"), -(1454, 0, "' '"), -(1455, 0, "'t'"), -(1456, 0, "'o'"), -(1531, 0, "'a'"), -(1532, 0, "' '"), -(1556, 0, "','"), -(1557, 9, "''"), -(1673, 3, "' '"), -(1674, 0, "'i'"), -(1675, 0, "'n'"), -(1859, 0, "' '"), -(1860, 0, "'I'"), -(1861, 0, "' '"), -(1862, 0, "'h'"), -(1863, 0, "'a'"), -(1864, 0, "'d'"), -(1865, 0, "' '"), -(1866, 0, "'s'"), -(1867, 0, "'o'"), -(1868, 0, "'m'"), -(1869, 0, "'e'"), -(1870, 0, "' '"), -(1866, 5, "'w'"), -(1867, 0, "'o'"), -(1868, 0, "'r'"), -(1869, 0, "'k'"), -(1870, 0, "'i'"), -(1871, 0, "'n'"), -(1872, 0, "'g'"), -(1873, 0, "' '"), -(1874, 0, "'c'"), -(1875, 0, "'o'"), -(1876, 0, "'d'"), -(1877, 0, "'e'"), -(1878, 0, "' '"), -(1879, 0, "'b'"), -(1880, 0, "'u'"), -(1881, 0, "'t'"), -(1882, 0, "' '"), -(1883, 0, "'-'"), -(1884, 0, "' '"), -(1884, 1, "''"), -(1883, 1, "''"), -(1882, 1, "''"), -(1882, 0, "' '"), -(1883, 0, "'n'"), -(1884, 0, "'o'"), -(1885, 0, "'b'"), -(1886, 0, "'o'"), -(1883, 4, "'I'"), -(1883, 1, "''"), -(1883, 0, "'i'"), -(1884, 0, "'t'"), -(1885, 0, "' '"), -(1886, 0, "'f'"), -(1887, 0, "'e'"), -(1888, 0, "'l'"), -(1889, 0, "'t'"), -(1890, 0, "' '"), -(1891, 0, "'l'"), -(1892, 0, "'i'"), -(1893, 0, "'k'"), -(1894, 0, "'e'"), -(1895, 0, "' '"), -(1896, 0, "'n'"), -(1897, 0, "'o'"), -(1898, 0, "'b'"), -(1899, 0, "'o'"), -(1900, 0, "'d'"), -(1901, 0, "'y'"), -(1902, 0, "' '"), -(1903, 0, "'c'"), -(1904, 0, "'a'"), -(1905, 0, "'r'"), -(1906, 0, "'e'"), -(1907, 0, "'d'"), -(1908, 0, "' '"), -(1909, 0, "'a'"), -(1910, 0, "'b'"), -(1911, 0, "'o'"), -(1912, 0, "'u'"), -(1913, 0, "'t'"), -(1914, 0, "' '"), -(1915, 0, "'h'"), -(1916, 0, "'t'"), -(1917, 0, "'a'"), -(1918, 0, "'t'"), -(1919, 0, "'.'"), -(1915, 5, "'t'"), -(1916, 0, "'h'"), -(1917, 0, "'a'"), -(1918, 0, "'t'"), -(1919, 0, "'.'"), -(1903, 0, "'r'"), -(1904, 0, "'e'"), -(1905, 0, "'a'"), -(1906, 0, "'l'"), -(1907, 0, "'l'"), -(1908, 0, "'y'"), -(1909, 0, "' '"), -(1896, 6, "'n'"), -(1897, 0, "'o'"), -(1898, 0, "'n'"), -(1899, 0, "'e'"), -(1900, 0, "' '"), -(1901, 0, "'o'"), -(1902, 0, "'f'"), -(1903, 0, "' '"), -(1904, 0, "'t'"), -(1905, 0, "'h'"), -(1906, 0, "'e'"), -(1907, 0, "' '"), -(1908, 0, "'s'"), -(1909, 0, "'m'"), -(1910, 0, "'a'"), -(1911, 0, "'r'"), -(1912, 0, "'t'"), -(1913, 0, "' '"), -(1914, 0, "'s'"), -(1915, 0, "'c'"), -(1916, 0, "'i'"), -(1917, 0, "'e'"), -(1918, 0, "'n'"), -(1919, 0, "'c'"), -(1920, 0, "'e'"), -(1921, 0, "' '"), -(1922, 0, "'p'"), -(1923, 0, "'e'"), -(1924, 0, "'o'"), -(1925, 0, "'p'"), -(1926, 0, "'l'"), -(1927, 0, "'e'"), -(1914, 7, "'c'"), -(1915, 0, "'o'"), -(1916, 0, "'m'"), -(1917, 0, "'p'"), -(1918, 0, "'u'"), -(1919, 0, "'t'"), -(1920, 0, "'e'"), -(1921, 0, "'r'"), -(1922, 0, "' '"), -(1923, 0, "'s'"), -(1924, 0, "'i'"), -(1925, 0, "'c'"), -(1926, 0, "'n'"), -(1927, 0, "'e'"), -(1928, 0, "'c'"), -(1928, 1, "''"), -(1927, 1, "''"), -(1926, 1, "''"), -(1925, 1, "''"), -(1924, 1, "''"), -(1924, 0, "'c'"), -(1925, 0, "'i'"), -(1926, 0, "'e'"), -(1927, 0, "'n'"), -(1928, 0, "'c'"), -(1929, 0, "'e'"), -(1937, 7, "''"), -(1791, 13, "''"), -(1791, 1, "''"), -(1941, 0, "' '"), -(1942, 0, "'I'"), -(1943, 0, "' '"), -(1944, 0, "'w'"), -(1945, 0, "'a'"), -(1946, 0, "'s'"), -(1947, 0, "' '"), -(1948, 0, "'n'"), -(1949, 0, "'o'"), -(1950, 0, "'b'"), -(1951, 0, "'o'"), -(1952, 0, "'d'"), -(1953, 0, "'y'"), -(1954, 0, "'.'"), -(1955, 0, "' '"), -(1955, 1, "''"), -(1955, 0, "'n'"), -(1956, 0, "'n'"), -(1957, 0, "'A'"), -(1958, 0, "'n'"), -(1959, 0, "'d'"), -(1960, 0, "' '"), -(1961, 0, "'I'"), -(1962, 0, "' '"), -(1960, 3, "','"), -(1961, 0, "' '"), -(1962, 0, "'a'"), -(1963, 0, "'t'"), -(1964, 0, "' '"), -(1965, 0, "'s'"), -(1966, 0, "'o'"), -(1967, 0, "'m'"), -(1968, 0, "'e'"), -(1969, 0, "' '"), -(1970, 0, "'p'"), -(1971, 0, "'o'"), -(1972, 0, "'i'"), -(1973, 0, "'n'"), -(1974, 0, "'t'"), -(1975, 0, "' '"), -(1976, 0, "'a'"), -(1977, 0, "'r'"), -(1978, 0, "'o'"), -(1979, 0, "'u'"), -(1980, 0, "'n'"), -(1981, 0, "'d'"), -(1982, 0, "' '"), -(1983, 0, "'t'"), -(1984, 0, "'h'"), -(1985, 0, "'e'"), -(1986, 0, "'n'"), -(1987, 0, "','"), -(1988, 0, "' '"), -(1989, 0, "'I'"), -(1990, 0, "' '"), -(1991, 0, "'d'"), -(1992, 0, "'i'"), -(1993, 0, "'s'"), -(1994, 0, "'m'"), -(1995, 0, "'i'"), -(1996, 0, "'s'"), -(1997, 0, "'s'"), -(1998, 0, "'e'"), -(1999, 0, "'d'"), -(2000, 0, "' '"), -(2001, 0, "'C'"), -(2002, 0, "'R'"), -(2003, 0, "'D'"), -(2004, 0, "'T'"), -(2005, 0, "'s'"), -(2006, 0, "' '"), -(2007, 0, "'a'"), -(2008, 0, "'l'"), -(2009, 0, "'t'"), -(2010, 0, "'o'"), -(2011, 0, "'g'"), -(2012, 0, "'e'"), -(2013, 0, "'t'"), -(2014, 0, "'h'"), -(2015, 0, "'e'"), -(2016, 0, "'r'"), -(2017, 0, "'.'"), -(2018, 0, "' '"), -(2019, 0, "'I'"), -(2020, 0, "'f'"), -(2021, 0, "' '"), -(2022, 0, "'t'"), -(2023, 0, "'h'"), -(2024, 0, "'e'"), -(2025, 0, "' '"), -(2026, 0, "'r'"), -(2027, 0, "'e'"), -(2028, 0, "'s'"), -(2029, 0, "'e'"), -(2030, 0, "'a'"), -(2031, 0, "'r'"), -(2032, 0, "'c'"), -(2033, 0, "'h'"), -(2034, 0, "'e'"), -(2035, 0, "'r'"), -(2036, 0, "'s'"), -(2037, 0, "' '"), -(2038, 0, "'i'"), -(2039, 0, "'n'"), -(2040, 0, "'v'"), -(2041, 0, "'o'"), -(2042, 0, "'l'"), -(2043, 0, "'v'"), -(2044, 0, "'e'"), -(2045, 0, "'d'"), -(2046, 0, "' '"), -(2038, 9, "'w'"), -(2039, 0, "'h'"), -(2040, 0, "'o'"), -(2041, 0, "' '"), -(2042, 0, "'i'"), -(2043, 0, "'n'"), -(2044, 0, "'v'"), -(2045, 0, "'e'"), -(2046, 0, "'n'"), -(2047, 0, "'t'"), -(2048, 0, "'e'"), -(2049, 0, "'d'"), -(2050, 0, "' '"), -(2051, 0, "'t'"), -(2052, 0, "'h'"), -(2053, 0, "'e'"), -(2054, 0, "'m'"), -(2055, 0, "' '"), -(2056, 0, "'c'"), -(2057, 0, "'o'"), -(2058, 0, "'u'"), -(2059, 0, "'l'"), -(2060, 0, "'d'"), -(2061, 0, "'n'"), -(2062, 0, "'''"), -(2063, 0, "'t'"), -(2064, 0, "' '"), -(2065, 0, "'m'"), -(2066, 0, "'a'"), -(2067, 0, "'k'"), -(2068, 0, "'e'"), -(2069, 0, "' '"), -(2070, 0, "'t'"), -(2071, 0, "'h'"), -(2072, 0, "'e'"), -(2073, 0, "'m'"), -(2074, 0, "' '"), -(2075, 0, "'f'"), -(2076, 0, "'a'"), -(2077, 0, "'s'"), -(2078, 0, "'t'"), -(2079, 0, "','"), -(2080, 0, "' '"), -(2081, 0, "'w'"), -(2082, 0, "'h'"), -(2083, 0, "'o'"), -(2084, 0, "' '"), -(2085, 0, "'w'"), -(2086, 0, "'a'"), -(2087, 0, "'s'"), -(2088, 0, "' '"), -(2089, 0, "'I'"), -(2090, 0, "'?'"), -(2093, 0, "'B'"), -(2094, 0, "'u'"), -(2095, 0, "'t'"), -(2096, 0, "' '"), -(2097, 1, "''"), -(2097, 0, "'w'"), -(1962, 20, "'s'"), -(1963, 0, "'o'"), -(1964, 0, "'m'"), -(1965, 0, "'e'"), -(1966, 0, "'w'"), -(1967, 0, "'h'"), -(1968, 0, "'e'"), -(1969, 0, "'r'"), -(1970, 0, "'e'"), -(1971, 0, "' '"), -(1972, 0, "'a'"), -(1973, 0, "'r'"), -(1974, 0, "'o'"), -(1975, 0, "'u'"), -(1976, 0, "'n'"), -(1977, 0, "'d'"), -(1978, 0, "' '"), -(1979, 0, "'t'"), -(1980, 0, "'h'"), -(1981, 0, "'a'"), -(1982, 0, "'t'"), -(1983, 0, "' '"), -(1984, 0, "'t'"), -(1985, 0, "'i'"), -(1986, 0, "'m'"), -(1987, 0, "'e'"), -(1988, 5, "''"), -(1988, 1, "''"), -(2092, 0, "'n'"), -(2092, 0, "'n'"), -(2093, 0, "'-'"), -(2094, 0, "'-'"), -(2095, 0, "'-'"), -(2098, 5, "'W'"), -(1956, 135, "''"), -(1955, 1, "''"), -(2477, 3, "'s'"), -(2478, 0, "'h'"), -(2479, 0, "'o'"), -(2480, 0, "'w'"), -(2481, 0, "' '"), -(2482, 0, "'t'"), -(2483, 0, "'h'"), -(2484, 0, "'a'"), -(2485, 0, "'t'"), -(2502, 22, "' '"), -(2502, 1, "''"), -(2534, 12, "'a'"), -(2535, 0, "'c'"), -(2536, 0, "'t'"), -(2537, 0, "'u'"), -(2538, 0, "'a'"), -(2539, 0, "'l'"), -(2540, 0, "'l'"), -(2541, 0, "'y'"), -(2542, 0, "' '"), -(2543, 0, "'s'"), -(2544, 0, "'h'"), -(2545, 0, "'o'"), -(2546, 0, "'w'"), -(2547, 0, "'i'"), -(2548, 0, "'n'"), -(2549, 0, "'g'"), -(2550, 6, "''"), -(2551, 36, "''"), -(2543, 8, "'p'"), -(2544, 0, "'r'"), -(2545, 0, "'o'"), -(2546, 0, "'v'"), -(2547, 0, "'i'"), -(2548, 0, "'n'"), -(2549, 0, "'g'"), -(2550, 0, "'?'"), -(2551, 0, "' '"), -(2552, 0, "'I'"), -(2553, 0, "'t'"), -(2554, 0, "' '"), -(2555, 0, "'s'"), -(2556, 0, "'e'"), -(2557, 0, "'e'"), -(2558, 0, "'m'"), -(2559, 0, "'s'"), -(2560, 0, "' '"), -(2561, 0, "'l'"), -(2562, 0, "'i'"), -(2563, 0, "'k'"), -(2564, 0, "'e'"), -(2565, 0, "' '"), -(2566, 0, "'t'"), -(2567, 0, "'e'"), -(2568, 0, "'s'"), -(2569, 0, "'t'"), -(2570, 0, "'s'"), -(2571, 0, "' '"), -(2572, 0, "'-'"), -(2573, 0, "' '"), -(2574, 0, "'y'"), -(2575, 0, "'o'"), -(2576, 0, "'u'"), -(2577, 0, "' '"), -(2578, 0, "'c'"), -(2579, 0, "'a'"), -(2580, 0, "'n'"), -(2581, 0, "' '"), -(2582, 0, "'p'"), -(2583, 0, "'r'"), -(2584, 0, "'o'"), -(2585, 0, "'v'"), -(2586, 0, "'e'"), -(2587, 0, "' '"), -(2588, 0, "'t'"), -(2589, 0, "'h'"), -(2590, 0, "'e'"), -(2591, 0, "' '"), -(2592, 0, "'a'"), -(2593, 0, "'b'"), -(2594, 0, "'s'"), -(2595, 0, "'e'"), -(2596, 0, "'n'"), -(2597, 0, "'c'"), -(2598, 0, "'e'"), -(2599, 0, "' '"), -(2600, 0, "'o'"), -(2601, 0, "'f'"), -(2602, 0, "' '"), -(2603, 0, "'b'"), -(2604, 0, "'u'"), -(2605, 0, "'g'"), -(2606, 0, "'s'"), -(2607, 0, "','"), -(2608, 0, "' '"), -(2609, 0, "'b'"), -(2610, 0, "'u'"), -(2611, 0, "'t'"), -(2612, 0, "' '"), -(2613, 0, "'t'"), -(2614, 0, "'h'"), -(2614, 1, "''"), -(2613, 1, "''"), -(2592, 7, "'e'"), -(2593, 0, "'x'"), -(2594, 0, "'i'"), -(2595, 0, "'s'"), -(2596, 0, "'t'"), -(2597, 0, "'e'"), -(2598, 0, "'n'"), -(2599, 0, "'c'"), -(2600, 0, "'e'"), -(2601, 0, "' '"), -(2601, 1, "''"), -(2615, 0, "'n'"), -(2616, 0, "'o'"), -(2617, 0, "'t'"), -(2618, 0, "' '"), -(2619, 0, "'t'"), -(2620, 0, "'h'"), -(2621, 0, "'e'"), -(2622, 0, "'i'"), -(2623, 0, "'r'"), -(2624, 0, "' '"), -(2625, 0, "'a'"), -(2626, 0, "'b'"), -(2627, 0, "'s'"), -(2628, 0, "'e'"), -(2629, 0, "'n'"), -(2630, 0, "'c'"), -(2631, 0, "'e'"), -(2632, 0, "'.'"), -(2633, 0, "' '"), -(2634, 0, "'P'"), -(2634, 1, "''"), -(2634, 0, "'B'"), -(2635, 0, "'e'"), -(2636, 0, "'n'"), -(2637, 0, "'c'"), -(2638, 0, "'h'"), -(2639, 0, "'m'"), -(2640, 0, "'a'"), -(2641, 0, "'r'"), -(2642, 0, "'k'"), -(2643, 0, "'s'"), -(2644, 0, "' '"), -(2645, 0, "'f'"), -(2646, 0, "'e'"), -(2647, 0, "'e'"), -(2648, 0, "'l'"), -(2649, 0, "' '"), -(2650, 0, "'l'"), -(2651, 0, "'i'"), -(2652, 0, "'k'"), -(2653, 0, "'e'"), -(2654, 0, "' '"), -(2655, 0, "'t'"), -(2656, 0, "'h'"), -(2657, 0, "'a'"), -(2658, 0, "'t'"), -(2659, 0, "' '"), -(2660, 0, "'t'"), -(2661, 0, "'o'"), -(2662, 0, "'o'"), -(2663, 0, "' '"), -(2664, 0, "'-'"), -(2665, 0, "' '"), -(2666, 0, "'y'"), -(2667, 0, "'o'"), -(2668, 0, "'u'"), -(2669, 0, "' '"), -(2670, 0, "'c'"), -(2671, 0, "'a'"), -(2672, 0, "'n'"), -(2673, 0, "' '"), -(2674, 0, "'p'"), -(2675, 0, "'r'"), -(2676, 0, "'o'"), -(2677, 0, "'v'"), -(2678, 0, "'e'"), -(2679, 0, "' '"), -(2680, 0, "'t'"), -(2681, 0, "'h'"), -(2682, 0, "'e'"), -(2683, 0, "' '"), -(2680, 4, "'f'"), -(2681, 0, "'a'"), -(2682, 0, "'s'"), -(2683, 0, "'t'"), -(2684, 0, "' '"), -(2685, 0, "'c'"), -(2686, 0, "'o'"), -(2687, 0, "'d'"), -(2688, 0, "'e'"), -(2689, 0, "' '"), -(2690, 0, "'i'"), -(2691, 0, "'s'"), -(2692, 0, "' '"), -(2693, 0, "'p'"), -(2694, 0, "'o'"), -(2695, 0, "'s'"), -(2696, 0, "'s'"), -(2697, 0, "'i'"), -(2698, 0, "'b'"), -(2699, 0, "'l'"), -(2700, 0, "'e'"), -(2701, 0, "','"), -(2702, 0, "' '"), -(2703, 0, "'b'"), -(2704, 0, "'u'"), -(2705, 0, "'t'"), -(2706, 0, "' '"), -(2680, 9, "'s'"), -(2681, 0, "'p'"), -(2682, 0, "'e'"), -(2683, 0, "'e'"), -(2684, 0, "'d'"), -(2685, 0, "' '"), -(2686, 0, "'u'"), -(2687, 0, "'p'"), -(2688, 0, "'s'"), -(2689, 3, "''"), -(2689, 0, "' '"), -(2690, 0, "'a'"), -(2691, 0, "'r'"), -(2692, 0, "'e'"), -(2708, 0, "'y'"), -(2709, 0, "'o'"), -(2710, 0, "'u'"), -(2711, 0, "' '"), -(2712, 0, "'c'"), -(2713, 0, "'a'"), -(2714, 0, "'n'"), -(2715, 0, "'''"), -(2716, 0, "'t'"), -(2717, 0, "' '"), -(2718, 0, "'p'"), -(2719, 0, "'r'"), -(2720, 0, "'o'"), -(2721, 0, "'v'"), -(2722, 0, "'e'"), -(2723, 0, "' '"), -(2724, 0, "'s'"), -(2725, 0, "'o'"), -(2726, 0, "'m'"), -(2727, 0, "'e'"), -(2728, 0, "'t'"), -(2729, 0, "'h'"), -(2730, 0, "'i'"), -(2731, 0, "'n'"), -(2732, 0, "'g'"), -(2733, 0, "' '"), -(2734, 0, "'i'"), -(2735, 0, "'s'"), -(2736, 0, "' '"), -(2737, 0, "'s'"), -(2738, 0, "'l'"), -(2739, 0, "'o'"), -(2740, 0, "'w'"), -(2741, 0, "'.'"), -(2737, 0, "'i'"), -(2738, 0, "'n'"), -(2739, 0, "'h'"), -(2740, 0, "'e'"), -(2741, 0, "'r'"), -(2742, 0, "'e'"), -(2743, 0, "'n'"), -(2744, 0, "'t'"), -(2745, 0, "'l'"), -(2746, 0, "'y'"), -(2747, 0, "' '"), -(3064, 5, "'W'"), -(2551, 202, "''"), -(3088, 0, "'n'"), -(3089, 0, "'n'"), -(3090, 0, "' It seems like tests - you can prove the existence of bugs, but not their absence. Benchmarks feel like that too - you can prove speed ups are possible, but you can't prove something is inherently slow.'"), -(3090, 1, "''"), -(3090, 13, "'M'"), -(3091, 0, "'a'"), -(3092, 0, "'y'"), -(3093, 0, "'b'"), -(3094, 0, "'e'"), -(3095, 0, "' '"), -(3096, 0, "'b'"), -(3097, 0, "'e'"), -(3098, 0, "'n'"), -(3099, 0, "'c'"), -(3100, 0, "'h'"), -(3101, 0, "'m'"), -(3102, 0, "'a'"), -(3103, 0, "'r'"), -(3104, 0, "'k'"), -(3105, 0, "'s'"), -(3090, 16, "'T'"), -(3091, 0, "'h'"), -(3092, 0, "'e'"), -(3093, 0, "'r'"), -(3094, 0, "'e'"), -(3095, 0, "'''"), -(3096, 0, "'s'"), -(3097, 0, "' '"), -(3098, 0, "'a'"), -(3099, 0, "' '"), -(3100, 0, "'r'"), -(3101, 0, "'u'"), -(3102, 0, "'l'"), -(3103, 0, "'e'"), -(3104, 0, "' '"), -(3105, 0, "'w'"), -(3106, 0, "'i'"), -(3107, 0, "'t'"), -(3108, 0, "'h'"), -(3100, 9, "'s'"), -(3101, 0, "'a'"), -(3102, 0, "'y'"), -(3103, 0, "'i'"), -(3104, 0, "'n'"), -(3105, 0, "'g'"), -(3106, 0, "' '"), -(3107, 0, "'a'"), -(3108, 0, "'b'"), -(3109, 0, "'o'"), -(3110, 0, "'u'"), -(3111, 0, "'t'"), -(3117, 1, "''"), -(3117, 0, "'i'"), -(3118, 0, "'n'"), -(3119, 0, "'g'"), -(3120, 0, "':'"), -(3122, 2, "''"), -(3122, 0, "'''"), -(3123, 1, "''"), -(3123, 0, "'Y'"), -(3160, 7, "''"), -(3159, 1, "''"), -(3158, 1, "''"), -(3158, 0, "'.'"), -(3159, 0, "' '"), -(3160, 0, "'Y'"), -(3161, 0, "'o'"), -(3162, 0, "'u'"), -(3163, 0, "' '"), -(3164, 0, "'c'"), -(3165, 0, "'a'"), -(3166, 0, "'n'"), -(3167, 0, "'''"), -(3168, 0, "'t'"), -(3169, 0, "' '"), -(3123, 0, "'T'"), -(3124, 0, "'e'"), -(3125, 0, "'s'"), -(3126, 0, "'t'"), -(3127, 0, "'s'"), -(3128, 0, "' '"), -(3129, 0, "'c'"), -(3130, 0, "'a'"), -(3131, 0, "'n'"), -(3132, 0, "' '"), -(3133, 8, "''"), -(3162, 4, "'T'"), -(3163, 0, "'h'"), -(3164, 0, "'e'"), -(3165, 0, "'y'"), -(3166, 0, "' '"), -(3167, 0, "'c'"), -(3168, 0, "'a'"), -(3168, 1, "''"), -(3167, 1, "''"), -(3173, 0, "'p'"), -(3174, 0, "'r'"), -(3175, 0, "'o'"), -(3176, 0, "'v'"), -(3177, 0, "'e'"), -(3192, 0, "'''"), -(3220, 4, "''"), -(3281, 29, "'a'"), -(3282, 0, "'n'"), -(3283, 0, "' '"), -(3284, 0, "'a'"), -(3285, 0, "'l'"), -(3286, 0, "'g'"), -(3287, 0, "'o'"), -(3288, 0, "'r'"), -(3289, 0, "'i'"), -(3290, 0, "'t'"), -(3291, 0, "'h'"), -(3292, 0, "'m'"), -(3293, 0, "' '"), -(3294, 0, "'w'"), -(3295, 0, "'i'"), -(3296, 0, "'l'"), -(3297, 0, "'l'"), -(3298, 0, "' '"), -(3299, 0, "'a'"), -(3300, 0, "'l'"), -(3301, 0, "'w'"), -(3302, 0, "'a'"), -(3303, 0, "'y'"), -(3304, 0, "'s'"), -(3305, 0, "' '"), -(3306, 0, "'b'"), -(3307, 0, "'e'"), -(3308, 0, "' '"), -(3309, 0, "'s'"), -(3310, 0, "'l'"), -(3311, 0, "'o'"), -(3312, 0, "'w'"), -(3313, 0, "'.'"), -(3294, 12, "'h'"), -(3295, 0, "'a'"), -(3296, 0, "'s'"), -(3297, 0, "' '"), -(3298, 0, "'t'"), -(3299, 0, "'o'"), -(3300, 0, "' '"), -(2477, 4, "'s'"), -(2478, 0, "'a'"), -(2479, 0, "'y'"), -(2486, 15, "'a'"), -(2487, 0, "'n'"), -(2477, 3, "''"), -(2476, 1, "''"), -(2475, 1, "''"), -(2474, 1, "''"), -(2474, 0, "'o'"), -(2475, 0, "'u'"), -(2476, 0, "'r'"), -(2477, 0, "' '"), -(2478, 0, "'i'"), -(2479, 0, "'m'"), -(2480, 0, "'p'"), -(2481, 0, "'l'"), -(2482, 0, "'e'"), -(2483, 0, "'m'"), -(2484, 0, "'e'"), -(2485, 0, "'n'"), -(2486, 0, "'t'"), -(2487, 0, "'a'"), -(2488, 0, "'t'"), -(2489, 0, "'i'"), -(2490, 0, "'o'"), -(2491, 0, "'n'"), -(2492, 0, "' '"), -(2493, 0, "'r'"), -(2494, 0, "'u'"), -(2495, 0, "'n'"), -(2496, 0, "' '"), -(2497, 0, "'s'"), -(2497, 1, "''"), -(2496, 1, "''"), -(2496, 0, "'s'"), -(2497, 21, "''"), -(2502, 0, "'l'"), -(2503, 0, "'y'"), -(2537, 10, "''"), -(2538, 0, "'''"), -(2539, 0, "'v'"), -(2540, 0, "'e'"), -(2556, 0, "'o'"), -(2557, 0, "'l'"), -(2558, 0, "'d'"), -(2559, 0, "' '"), -(2650, 3, "'i'"), -(2651, 0, "'s'"), -(2683, 11, "''"), -(2682, 1, "''"), -(2705, 0, "'r'"), -(2706, 0, "'u'"), -(2707, 0, "'n'"), -(2708, 0, "'s'"), -(2709, 0, "' '"), -(2834, 0, "'n'"), -(2834, 0, "'n'"), -(2835, 0, "'I'"), -(2836, 0, "'f'"), -(2837, 0, "' '"), -(2838, 0, "'y'"), -(2839, 0, "'o'"), -(2840, 0, "'u'"), -(2841, 0, "' '"), -(2842, 0, "'m'"), -(2843, 0, "'a'"), -(2835, 9, "'B'"), -(2836, 0, "'u'"), -(2837, 0, "'t'"), -(2838, 0, "' '"), -(2839, 0, "'i'"), -(2840, 0, "'f'"), -(2841, 0, "' '"), -(2842, 0, "'y'"), -(2843, 0, "'o'"), -(2844, 0, "'u'"), -(2845, 0, "' '"), -(2846, 0, "'m'"), -(2847, 0, "'a'"), -(2848, 0, "'d'"), -(2849, 0, "'e'"), -(2850, 0, "' '"), -(2851, 0, "'a'"), -(2852, 0, "' '"), -(2853, 0, "'c'"), -(2854, 0, "'h'"), -(2855, 0, "'a'"), -(2856, 0, "'r'"), -(2857, 0, "'t'"), -(2858, 0, "' '"), -(2859, 0, "'o'"), -(2860, 0, "'f'"), -(2861, 0, "' '"), -(2862, 0, "'t'"), -(2863, 0, "'h'"), -(2864, 0, "'a'"), -(2865, 0, "'t'"), -(2866, 0, "' '"), -(2867, 0, "'''"), -(2868, 0, "'O'"), -(2869, 0, "'t'"), -(2870, 0, "'-'"), -(2871, 0, "'t'"), -(2872, 0, "'e'"), -(2873, 0, "'x'"), -(2874, 0, "'t'"), -(2875, 0, "' '"), -(2876, 0, "'i'"), -(2877, 0, "'s'"), -(2878, 0, "' '"), -(2879, 0, "'f'"), -(2880, 0, "'a'"), -(2881, 0, "'s'"), -(2882, 0, "'t'"), -(2883, 0, "','"), -(2884, 0, "' '"), -(2885, 0, "'a'"), -(2886, 0, "'n'"), -(2887, 0, "'d'"), -(2888, 0, "' '"), -(2889, 0, "'o'"), -(2890, 0, "'t'"), -(2891, 0, "'-'"), -(2892, 0, "'t'"), -(2893, 0, "'e'"), -(2894, 0, "'x'"), -(2895, 0, "'t'"), -(2896, 0, "' '"), -(2897, 0, "'i'"), -(2898, 0, "'s'"), -(2899, 0, "' '"), -(2900, 0, "'s'"), -(2901, 0, "'l'"), -(2902, 0, "'o'"), -(2903, 0, "'w'"), -(2904, 0, "'''"), -(2835, 31, "'I'"), -(2836, 0, "'t'"), -(2837, 0, "' '"), -(2838, 0, "'w'"), -(2839, 0, "'o'"), -(2840, 0, "'u'"), -(2841, 0, "'l'"), -(2842, 0, "'d'"), -(2843, 0, "' '"), -(2844, 0, "'b'"), -(2845, 0, "'e'"), -(2846, 0, "' '"), -(2847, 0, "'s'"), -(2848, 0, "'i'"), -(2849, 0, "'l'"), -(2850, 0, "'l'"), -(2851, 0, "'y'"), -(2852, 0, "' '"), -(2853, 0, "'m'"), -(2854, 0, "'a'"), -(2855, 0, "'k'"), -(2856, 0, "'i'"), -(2857, 0, "'n'"), -(2858, 0, "'g'"), -(2859, 0, "' '"), -(2860, 0, "'a'"), -(2861, 0, "' '"), -(2862, 0, "'c'"), -(2863, 0, "'h'"), -(2864, 0, "'a'"), -(2865, 0, "'r'"), -(2866, 0, "'t'"), -(2867, 0, "' '"), -(2868, 0, "'s'"), -(2869, 0, "'h'"), -(2870, 0, "'o'"), -(2871, 0, "'w'"), -(2872, 0, "'i'"), -(2873, 0, "'n'"), -(2874, 0, "'g'"), -(2875, 0, "' '"), -(2876, 0, "'h'"), -(2877, 0, "'o'"), -(2878, 0, "'w'"), -(2881, 3, "''"), -(2885, 0, "'-'"), -(2886, 0, "'t'"), -(2886, 1, "''"), -(2886, 0, "'o'"), -(2887, 0, "'t'"), -(2880, 1, "''"), -(2890, 0, "' '"), -(2891, 0, "'b'"), -(2892, 0, "'o'"), -(2893, 0, "'t'"), -(2894, 0, "'h'"), -(2900, 16, "''"), -(2900, 0, "' '"), -(2901, 0, "'a'"), -(2902, 0, "'n'"), -(2903, 0, "'d'"), -(2909, 1, "''"), -(2909, 0, "'.'"), -(2910, 0, "' '"), -(2911, 0, "'T'"), -(2912, 0, "'h'"), -(2913, 0, "'e'"), -(2914, 0, "' '"), -(2915, 0, "'d'"), -(2916, 0, "'i'"), -(2917, 0, "'f'"), -(2918, 0, "'f'"), -(2919, 0, "'e'"), -(2920, 0, "'r'"), -(2921, 0, "'e'"), -(2922, 0, "'n'"), -(2923, 0, "'c'"), -(2924, 0, "'e'"), -(2925, 0, "' '"), -(2926, 0, "'i'"), -(2927, 0, "'s'"), -(2928, 0, "' '"), -(2929, 0, "'i'"), -(2930, 0, "'n'"), -(2931, 0, "' '"), -(2932, 0, "'t'"), -(2933, 0, "'h'"), -(2934, 0, "'e'"), -(2935, 0, "' '"), -(2936, 0, "'i'"), -(2937, 0, "'m'"), -(2938, 0, "'p'"), -(2939, 0, "'l'"), -(2940, 0, "'e'"), -(2941, 0, "'m'"), -(2942, 0, "'e'"), -(2943, 0, "'n'"), -(2944, 0, "'t'"), -(2945, 0, "'a'"), -(2946, 0, "'t'"), -(2947, 0, "'i'"), -(2948, 0, "'o'"), -(2949, 0, "'n'"), -(2950, 0, "'.'"), -(2951, 0, "' '"), -(2952, 0, "'A'"), -(2953, 0, "'n'"), -(2954, 0, "'d'"), -(2955, 0, "' '"), -(2956, 0, "'t'"), -(2957, 0, "'h'"), -(2958, 0, "'a'"), -(2959, 0, "'t'"), -(2960, 0, "'s'"), -(2961, 0, "' '"), -(2962, 0, "'t'"), -(2963, 0, "'r'"), -(2964, 0, "'u'"), -(2965, 0, "'e'"), -(2966, 0, "' '"), -(2967, 0, "'h'"), -(2968, 0, "'e'"), -(2969, 0, "'r'"), -(2970, 0, "'e'"), -(2971, 0, "' '"), -(2972, 0, "'t'"), -(2973, 0, "'o'"), -(2974, 0, "'o'"), -(2975, 0, "' '"), -(2976, 0, "'-'"), -(2977, 0, "' '"), -(2835, 143, "'It would be silly making a chart showing how text-ot is both fast and slow. The difference is in the implementation. And thats true here too -'"), -(1382, 48, "'T'"), -(1383, 0, "'h'"), -(1384, 0, "'e'"), -(1385, 0, "' '"), -(1386, 0, "'a'"), -(1387, 0, "'n'"), -(1388, 0, "'n'"), -(1389, 0, "'o'"), -(1390, 0, "'y'"), -(1391, 0, "'i'"), -(1392, 0, "'n'"), -(1393, 0, "'g'"), -(1394, 0, "' '"), -(1395, 0, "'p'"), -(1396, 0, "'a'"), -(1397, 0, "'r'"), -(1398, 0, "'t'"), -(1399, 0, "' '"), -(1400, 0, "'w'"), -(1401, 0, "'a'"), -(1402, 0, "'s'"), -(1403, 0, "' '"), -(1404, 0, "'w'"), -(1405, 0, "'h'"), -(1406, 0, "'e'"), -(1407, 0, "'n'"), -(1415, 8, "' '"), -(1416, 0, "'s'"), -(1417, 0, "'e'"), -(1418, 0, "'n'"), -(1419, 0, "'t'"), -(1420, 0, "' '"), -(1421, 0, "'a'"), -(1422, 0, "'r'"), -(1423, 0, "'o'"), -(1424, 0, "'u'"), -(1425, 0, "'n'"), -(1426, 0, "'d'"), -(1427, 3, "''"), -(1463, 6, "'a'"), -(1464, 0, "'s'"), -(1465, 0, "'k'"), -(1466, 0, "'e'"), -(1467, 0, "'d'"), -(1536, 18, "''"), -(1570, 3, "'s'"), -(1571, 0, "'e'"), -(1572, 0, "'e'"), -(1573, 0, "'m'"), -(1574, 0, "' '"), -(1575, 0, "'l'"), -(1576, 0, "'i'"), -(1577, 0, "'k'"), -(1578, 0, "'e'"), -(1582, 1, "''"), -(1582, 0, "'f'"), -(1587, 1, "''"), -(1587, 0, "'o'"), -(1590, 1, "''"), -(1590, 0, "'t'"), -(1594, 1, "''"), -(1594, 0, "'u'"), -(1640, 2, "'o'"), -(1641, 0, "'f'"), -(1614, 0, "' '"), -(1615, 0, "'w'"), -(1616, 0, "'h'"), -(1617, 0, "'a'"), -(1618, 0, "'t'"), -(1619, 0, "' '"), -(1620, 0, "'t'"), -(1621, 0, "'h'"), -(1622, 0, "'e'"), -(1623, 0, "'y'"), -(1624, 0, "' '"), -(1625, 0, "'w'"), -(1626, 0, "'e'"), -(1627, 0, "'r'"), -(1628, 0, "'e'"), -(1628, 1, "''"), -(1627, 1, "''"), -(1626, 1, "''"), -(1625, 1, "''"), -(1625, 0, "'r'"), -(1626, 0, "'e'"), -(1627, 0, "'a'"), -(1628, 0, "'l'"), -(1629, 0, "'l'"), -(1630, 0, "'y'"), -(1631, 0, "' '"), -(1632, 0, "'w'"), -(1633, 0, "'o'"), -(1634, 0, "'r'"), -(1634, 1, "''"), -(1633, 1, "''"), -(1633, 0, "'e'"), -(1634, 0, "'r'"), -(1635, 0, "'e'"), -(1636, 0, "' '"), -(1637, 0, "'-'"), -(1672, 0, "'j'"), -(1673, 0, "'a'"), -(1674, 0, "'v'"), -(1675, 0, "'a'"), -(1676, 0, "' '"), -(1681, 0, "','"), -(2176, 5, "'a'"), -(2177, 0, "'s'"), -(2178, 0, "'p'"), -(2179, 0, "'e'"), -(2180, 0, "'c'"), -(2181, 0, "'t'"), -(2182, 0, "'s'"), -(2467, 66, "'W'"), -(2467, 1, "'When our implementation runs slowly, what are we actually proving?'"), -(2504, 29, "'w'"), -(2505, 0, "'e'"), -(2506, 0, "' '"), -(2506, 1, "''"), -(2505, 1, "''"), -(2504, 1, "''"), -(2504, 0, "'I'"), -(2505, 0, "' '"), -(2506, 0, "'d'"), -(2507, 0, "'o'"), -(2508, 0, "'n'"), -(2509, 0, "'''"), -(2510, 0, "'t'"), -(2511, 0, "' '"), -(2512, 0, "'k'"), -(2513, 0, "'n'"), -(2514, 0, "'o'"), -(2515, 0, "'w'"), -(2516, 0, "' '"), -(2517, 0, "'i'"), -(2518, 0, "'f'"), -(2519, 0, "' '"), -(2520, 0, "'t'"), -(2520, 1, "''"), -(2520, 0, "'w'"), -(2521, 0, "'h'"), -(2522, 0, "'e'"), -(2523, 0, "'r'"), -(2523, 1, "''"), -(2522, 1, "''"), -(2521, 1, "''"), -(2521, 0, "'e'"), -(2522, 0, "'''"), -(2523, 0, "'r'"), -(2524, 0, "'e'"), -(2525, 0, "' '"), -(2526, 0, "'p'"), -(2527, 0, "'r'"), -(2528, 0, "'o'"), -(2529, 0, "'v'"), -(2530, 0, "'i'"), -(2531, 0, "'n'"), -(2532, 0, "'g'"), -(2533, 0, "' '"), -(2534, 0, "'a'"), -(2535, 0, "'n'"), -(2536, 0, "'y'"), -(2537, 0, "'t'"), -(2538, 0, "'h'"), -(2539, 0, "'i'"), -(2540, 0, "'n'"), -(2541, 0, "'g'"), -(2542, 0, "' '"), -(2543, 0, "'a'"), -(2544, 0, "'b'"), -(2545, 0, "'o'"), -(2546, 0, "'u'"), -(2547, 0, "'t'"), -(2548, 0, "' '"), -(2549, 0, "'t'"), -(2550, 0, "'h'"), -(2551, 0, "'e'"), -(2552, 0, "' '"), -(2553, 0, "'s'"), -(2554, 0, "'e'"), -(2555, 0, "'m'"), -(2556, 0, "'a'"), -(2557, 0, "'n'"), -(2558, 0, "'t'"), -(2559, 0, "'i'"), -(2560, 0, "'c'"), -(2561, 0, "'s'"), -(2562, 0, "'.'"), -(2553, 0, "'r'"), -(2554, 0, "'e'"), -(2555, 0, "'s'"), -(2555, 1, "''"), -(2554, 1, "''"), -(2553, 1, "''"), -(2562, 0, "' '"), -(2563, 0, "'i'"), -(2564, 0, "'n'"), -(2565, 0, "'v'"), -(2566, 0, "'o'"), -(2567, 0, "'l'"), -(2568, 0, "'v'"), -(2569, 0, "'e'"), -(2570, 0, "'d'"), -(2504, 68, "'w'"), -(2505, 0, "'h'"), -(2506, 0, "'a'"), -(2507, 0, "'t'"), -(2508, 0, "' '"), -(2509, 0, "'d'"), -(2510, 0, "'o'"), -(2511, 0, "'e'"), -(2512, 0, "'s'"), -(2513, 0, "' '"), -(2514, 0, "'t'"), -(2515, 0, "'h'"), -(2516, 0, "'a'"), -(2517, 0, "'t'"), -(2518, 0, "' '"), -(2519, 0, "'m'"), -(2520, 0, "'e'"), -(2521, 0, "'a'"), -(2522, 0, "'n'"), -(2523, 0, "'?'"), -(2504, 19, "'i'"), -(2505, 0, "'s'"), -(2506, 0, "' '"), -(2507, 0, "'t'"), -(2508, 0, "'h'"), -(2509, 0, "'a'"), -(2510, 0, "'t'"), -(2511, 0, "' '"), -(2512, 0, "'m'"), -(2513, 0, "'e'"), -(2514, 0, "'a'"), -(2515, 0, "'n'"), -(2516, 0, "'i'"), -(2517, 0, "'n'"), -(2518, 0, "'g'"), -(2519, 0, "'f'"), -(2520, 0, "'u'"), -(2521, 0, "'l'"), -(2504, 18, "'d'"), -(2505, 0, "'o'"), -(2506, 0, "'e'"), -(2507, 0, "'s'"), -(2508, 0, "' '"), -(2509, 0, "'t'"), -(2510, 0, "'h'"), -(2511, 0, "'a'"), -(2512, 0, "'t'"), -(2513, 0, "' '"), -(2514, 0, "'t'"), -(2515, 0, "'e'"), -(2516, 0, "'a'"), -(2517, 0, "'c'"), -(2518, 0, "'h'"), -(2519, 0, "' '"), -(2520, 0, "'u'"), -(2521, 0, "'s'"), -(2522, 0, "' '"), -(2523, 0, "'a'"), -(2524, 0, "'n'"), -(2525, 0, "'y'"), -(2526, 0, "'t'"), -(2527, 0, "'h'"), -(2528, 0, "'i'"), -(2529, 0, "'n'"), -(2530, 0, "'g'"), -(2504, 27, "'w'"), -(2505, 0, "'h'"), -(2506, 0, "'a'"), -(2507, 0, "'t'"), -(2508, 0, "' '"), -(2509, 0, "'s'"), -(2510, 0, "'h'"), -(2511, 0, "'o'"), -(2512, 0, "'u'"), -(2513, 0, "'l'"), -(2514, 0, "'d'"), -(2515, 0, "' '"), -(2502, 14, "''"), -(2467, 0, "'W'"), -(2468, 0, "'h'"), -(2469, 0, "'a'"), -(2470, 0, "'t'"), -(2471, 0, "' '"), -(2472, 0, "'s'"), -(2472, 1, "''"), -(2472, 0, "'c'"), -(2473, 0, "'a'"), -(2474, 0, "'n'"), -(2475, 0, "' '"), -(2476, 0, "'w'"), -(2477, 0, "'e'"), -(2478, 0, "' '"), -(2479, 0, "'l'"), -(2480, 0, "'e'"), -(2481, 0, "'a'"), -(2482, 0, "'r'"), -(2483, 0, "'n'"), -(2484, 0, "' '"), -(2485, 0, "'f'"), -(2486, 0, "'r'"), -(2487, 0, "'o'"), -(2488, 0, "'m'"), -(2489, 0, "' '"), -(2490, 23, "'a'"), -(2491, 0, "' '"), -(2492, 0, "'s'"), -(2493, 0, "'l'"), -(2494, 0, "'o'"), -(2495, 0, "'w'"), -(2496, 12, "' '"), -(2497, 0, "'i'"), -(2498, 0, "'m'"), -(2499, 0, "'p'"), -(2500, 0, "'l'"), -(2501, 0, "'e'"), -(2502, 0, "'m'"), -(2503, 0, "'e'"), -(2504, 0, "'n'"), -(2505, 0, "'t'"), -(2506, 0, "'a'"), -(2507, 0, "'t'"), -(2508, 0, "'i'"), -(2509, 0, "'o'"), -(2510, 0, "'n'"), -(2512, 0, "' '"), -(2513, 0, "'M'"), -(2514, 0, "'a'"), -(2515, 0, "'y'"), -(2516, 0, "'b'"), -(2517, 0, "'e'"), -(2518, 0, "' '"), -(2519, 0, "'i'"), -(2520, 0, "'t'"), -(2521, 0, "'s'"), -(2522, 0, "' '"), -(2523, 0, "'l'"), -(2524, 0, "'i'"), -(2525, 0, "'k'"), -(2526, 0, "'e'"), -(2527, 0, "' '"), -(2528, 0, "'t'"), -(2529, 0, "'e'"), -(2530, 0, "'s'"), -(2531, 0, "'t'"), -(2532, 0, "'s'"), -(2533, 0, "' '"), -(2534, 0, "'-'"), -(2535, 0, "' '"), -(2536, 0, "'a'"), -(2537, 0, "' '"), -(2538, 0, "'p'"), -(2539, 0, "'a'"), -(2540, 0, "'s'"), -(2541, 0, "'s'"), -(2542, 0, "'i'"), -(2543, 0, "'n'"), -(2544, 0, "'g'"), -(2545, 0, "' '"), -(2546, 0, "'t'"), -(2547, 0, "'e'"), -(2548, 0, "'s'"), -(2549, 0, "'t'"), -(2550, 0, "' '"), -(2551, 0, "'s'"), -(2552, 0, "'u'"), -(2553, 0, "'i'"), -(2554, 0, "'t'"), -(2555, 0, "'e'"), -(2556, 0, "' '"), -(2557, 0, "'d'"), -(2558, 0, "'o'"), -(2559, 0, "'e'"), -(2560, 0, "'s'"), -(2561, 0, "'n'"), -(2562, 0, "'''"), -(2563, 0, "'t'"), -(2564, 0, "' '"), -(2565, 0, "'p'"), -(2566, 0, "'r'"), -(2567, 0, "'o'"), -(2568, 0, "'v'"), -(2569, 0, "'e'"), -(2570, 0, "' '"), -(2571, 0, "'t'"), -(2572, 0, "'h'"), -(2573, 0, "'e'"), -(2574, 0, "' '"), -(2575, 0, "'a'"), -(2576, 0, "'b'"), -(2577, 0, "'s'"), -(2578, 0, "'e'"), -(2579, 0, "'n'"), -(2580, 0, "'c'"), -(2581, 0, "'e'"), -(2582, 0, "' '"), -(2583, 0, "'o'"), -(2584, 0, "'f'"), -(2585, 0, "' '"), -(2586, 0, "'b'"), -(2587, 0, "'u'"), -(2588, 0, "'g'"), -(2589, 0, "'s'"), -(2590, 0, "'.'"), -(2591, 0, "' '"), -(2592, 0, "'I'"), -(2593, 0, "'t'"), -(2594, 0, "' '"), -(2595, 0, "'j'"), -(2596, 0, "'u'"), -(2597, 0, "'s'"), -(2598, 0, "'t'"), -(2599, 0, "' '"), -(2600, 0, "'p'"), -(2601, 0, "'r'"), -(2602, 0, "'o'"), -(2603, 0, "'v'"), -(2604, 0, "'e'"), -(2605, 0, "'s'"), -(2606, 0, "' '"), -(2607, 0, "'y'"), -(2608, 0, "'o'"), -(2609, 0, "'u'"), -(2610, 0, "' '"), -(2611, 0, "'a'"), -(2612, 0, "'r'"), -(2613, 0, "'e'"), -(2614, 0, "'n'"), -(2615, 0, "'''"), -(2616, 0, "'t'"), -(2617, 0, "' '"), -(2618, 0, "'l'"), -(2618, 1, "''"), -(2592, 26, "''"), -(2591, 1, "''"), -(2557, 5, "'c'"), -(2558, 0, "'a'"), -(2559, 0, "'n'"), -(2560, 0, "'t'"), -(2560, 1, "''"), -(2589, 0, "' '"), -(2590, 0, "'A'"), -(2591, 0, "'n'"), -(2592, 0, "'d'"), -(2593, 0, "' '"), -(2594, 0, "'a'"), -(2595, 0, "' '"), -(2596, 0, "'s'"), -(2597, 0, "'l'"), -(2598, 0, "'o'"), -(2599, 0, "'w'"), -(2600, 0, "' '"), -(2601, 0, "'i'"), -(2602, 0, "'m'"), -(2603, 0, "'p'"), -(2604, 0, "'l'"), -(2605, 0, "'e'"), -(2606, 0, "'m'"), -(2607, 0, "'e'"), -(2608, 0, "'n'"), -(2609, 0, "'t'"), -(2610, 0, "'a'"), -(2611, 0, "'t'"), -(2612, 0, "'i'"), -(2613, 0, "'o'"), -(2614, 0, "'n'"), -(2615, 0, "' '"), -(2616, 0, "'p'"), -(2616, 1, "''"), -(2616, 0, "'s'"), -(2617, 0, "'a'"), -(2617, 1, "''"), -(2617, 0, "'u'"), -(2618, 0, "'g'"), -(2619, 0, "'g'"), -(2620, 0, "'e'"), -(2621, 0, "'s'"), -(2622, 0, "'t'"), -(2623, 0, "'s'"), -(2624, 0, "' '"), -(2625, 0, "'t'"), -(2626, 0, "'h'"), -(2627, 0, "'e'"), -(2628, 0, "' '"), -(2629, 0, "'s'"), -(2630, 0, "'e'"), -(2631, 0, "'m'"), -(2632, 0, "'a'"), -(2633, 0, "'n'"), -(2634, 0, "'t'"), -(2635, 0, "'i'"), -(2636, 0, "'c'"), -(2637, 0, "'s'"), -(2629, 9, "'s'"), -(2630, 0, "'y'"), -(2631, 0, "'s'"), -(2632, 0, "'t'"), -(2633, 0, "'e'"), -(2634, 0, "'m'"), -(2635, 0, "' '"), -(2636, 0, "'i'"), -(2637, 0, "'s'"), -(2638, 0, "' '"), -(2639, 0, "'s'"), -(2640, 0, "'l'"), -(2641, 0, "'o'"), -(2642, 0, "'w'"), -(2643, 0, "' '"), -(2644, 0, "'-'"), -(2645, 0, "' '"), -(2646, 0, "'u'"), -(2647, 0, "'t'"), -(2648, 0, "' '"), -(2648, 1, "''"), -(2647, 1, "''"), -(2646, 1, "''"), -(2646, 0, "'b'"), -(2647, 0, "'u'"), -(2648, 0, "'t'"), -(2649, 0, "' '"), -(2650, 0, "'i'"), -(2651, 0, "'t'"), -(2652, 0, "' '"), -(2653, 0, "'o'"), -(2654, 0, "'n'"), -(2655, 0, "'l'"), -(2656, 0, "'y'"), -(2657, 0, "' '"), -(2658, 0, "'p'"), -(2659, 0, "'r'"), -(2660, 0, "'o'"), -(2661, 0, "'v'"), -(2662, 0, "'e'"), -(2663, 0, "'s'"), -(2616, 48, "''"), -(2615, 1, "''"), -(2557, 0, "'s'"), -(2558, 0, "'u'"), -(2559, 0, "'g'"), -(2560, 0, "'g'"), -(2561, 0, "'e'"), -(2562, 0, "'s'"), -(2563, 0, "'t'"), -(2564, 0, "'s'"), -(2565, 0, "','"), -(2566, 0, "' '"), -(2567, 0, "'b'"), -(2568, 0, "'u'"), -(2569, 0, "'t'"), -(2570, 0, "' '"), -(2629, 0, "' '"), -(2630, 0, "'s'"), -(2631, 0, "'u'"), -(2632, 0, "'g'"), -(2633, 0, "'g'"), -(2634, 0, "'e'"), -(2635, 0, "'s'"), -(2636, 0, "'t'"), -(2637, 0, "'s'"), -(2638, 0, "','"), -(2639, 0, "' '"), -(2640, 0, "'b'"), -(2641, 0, "'u'"), -(2642, 0, "'t'"), -(2643, 0, "' '"), -(2644, 0, "'c'"), -(2645, 0, "'a'"), -(2646, 0, "'n'"), -(2647, 0, "'''"), -(2648, 0, "'t'"), -(2649, 0, "' '"), -(2650, 0, "'p'"), -(2651, 0, "'r'"), -(2652, 0, "'o'"), -(2653, 0, "'v'"), -(2654, 0, "'e'"), -(2655, 0, "' '"), -(2656, 0, "'t'"), -(2657, 0, "'h'"), -(2658, 0, "'e'"), -(2659, 0, "' '"), -(2660, 0, "'s'"), -(2661, 0, "'y'"), -(2662, 0, "'s'"), -(2663, 0, "'t'"), -(2664, 0, "'e'"), -(2665, 0, "'m'"), -(2666, 0, "' '"), -(2667, 0, "'w'"), -(2668, 0, "'i'"), -(2669, 0, "'l'"), -(2670, 0, "'l'"), -(2671, 0, "' '"), -(2672, 0, "'a'"), -(2673, 0, "'l'"), -(2674, 0, "'w'"), -(2675, 0, "'a'"), -(2676, 0, "'y'"), -(2677, 0, "'s'"), -(2678, 0, "' '"), -(2679, 0, "'b'"), -(2680, 0, "'e'"), -(2681, 0, "' '"), -(2682, 0, "'s'"), -(2683, 0, "'l'"), -(2684, 0, "'o'"), -(2685, 0, "'w'"), -(2686, 0, "'.'"), -(2575, 1, "''"), -(2574, 1, "''"), -(2574, 0, "' '"), -(2575, 0, "'n'"), -(2576, 0, "'e'"), -(2577, 0, "'v'"), -(2578, 0, "'e'"), -(2579, 0, "'r'"), -(2652, 1, "''"), -(2652, 0, "' '"), -(2652, 1, "''"), -(2651, 1, "''"), -(2651, 0, "' '"), -(2652, 0, "'n'"), -(2653, 0, "'e'"), -(2654, 0, "'v'"), -(2655, 0, "'e'"), -(2656, 0, "'r'"), -(2995, 143, "''"), -(2994, 1, "''"), -(3071, 0, "'M'"), -(3072, 0, "'a'"), -(3073, 0, "'y'"), -(3074, 0, "'b'"), -(3075, 0, "'e'"), -(3076, 0, "' '"), -(3077, 0, "'i'"), -(3078, 0, "'t'"), -(3079, 0, "'s'"), -(3080, 0, "' '"), -(3081, 0, "'w'"), -(3082, 0, "'o'"), -(3083, 0, "'r'"), -(3084, 0, "'s'"), -(3085, 0, "'e'"), -(3086, 0, "' '"), -(3087, 0, "'-'"), -(3088, 0, "' '"), -(3089, 0, "'m'"), -(3090, 0, "'a'"), -(3091, 0, "'y'"), -(3092, 0, "'b'"), -(3093, 0, "'e'"), -(3094, 0, "' '"), -(3095, 4, "''"), -(3099, 0, "' '"), -(3100, 0, "'h'"), -(3101, 0, "'a'"), -(3102, 0, "'d'"), -(3103, 5, "''"), -(3178, 0, "'h'"), -(3179, 0, "'a'"), -(3180, 0, "'v'"), -(3181, 0, "'e'"), -(3182, 0, "' '"), -(3187, 0, "'e'"), -(3188, 0, "'d'"), -(3248, 221, "''"), -(1952, 0, "'n'"), -(1952, 0, "'n'"), -(1953, 0, "'a'"), -(1953, 1, "''"), -(1953, 0, "'S'"), -(1954, 0, "'o'"), -(1955, 0, "'m'"), -(1956, 0, "'e'"), -(1957, 0, "' '"), -(1958, 0, "'t'"), -(1959, 0, "'i'"), -(1960, 0, "'m'"), -(1961, 0, "'e'"), -(1962, 0, "' '"), -(1963, 0, "'a'"), -(1964, 0, "'r'"), -(1965, 0, "'o'"), -(1966, 0, "'u'"), -(1967, 0, "'n'"), -(1968, 0, "'d'"), -(1969, 0, "' '"), -(1970, 0, "'t'"), -(1971, 0, "'h'"), -(1972, 0, "'e'"), -(1973, 0, "'n'"), -(1974, 0, "' '"), -(1975, 0, "'I'"), -(1976, 0, "' '"), -(1953, 24, "''"), -(1952, 1, "''"), -(1951, 1, "''"), -(3555, 0, "' '"), -(3556, 0, "'a'"), -(3557, 0, "'n'"), -(3557, 1, "''"), -(3556, 1, "''"), -(3555, 1, "''"), -(3735, 8, "''"), -(3959, 0, "'A'"), -(3960, 0, "'n'"), -(3961, 0, "'d'"), -(3962, 0, "' '"), -(3963, 1, "''"), -(3963, 0, "'w'"), -(4644, 9, "''"), -(4656, 8, "''"), -(4656, 0, "'?'"), -(5559, 0, "' '"), -(5607, 0, "' '"), -(5609, 0, "' '"), -(5919, 0, "' '"), -(5873, 0, "' '"), -(5827, 0, "' '"), -(5925, 0, "' '"), -(6250, 21, "'w'"), -(6251, 0, "'e'"), -(6252, 0, "' '"), -(6253, 0, "'c'"), -(6254, 0, "'a'"), -(6255, 0, "'n'"), -(6256, 0, "'''"), -(6257, 0, "'t'"), -(6258, 0, "' '"), -(6259, 0, "'s'"), -(6260, 0, "'o'"), -(6261, 0, "'r'"), -(6262, 0, "'t'"), -(6263, 0, "' '"), -(6264, 0, "'t'"), -(6265, 0, "'h'"), -(6266, 0, "'e'"), -(6267, 0, "'m'"), -(6268, 0, "' '"), -(6269, 0, "'b'"), -(6270, 0, "'a'"), -(6271, 0, "'e'"), -(6271, 1, "''"), -(6271, 0, "'s'"), -(6272, 0, "'e'"), -(6273, 0, "'d'"), -(6274, 0, "' '"), -(6275, 0, "'o'"), -(6276, 0, "'n'"), -(6277, 0, "' '"), -(6278, 0, "'t'"), -(6279, 0, "'h'"), -(6280, 0, "'e'"), -(6281, 0, "'i'"), -(6282, 0, "'r'"), -(6283, 0, "' '"), -(6284, 0, "'I'"), -(6285, 0, "'D'"), -(6286, 0, "'.'"), -(6286, 1, "''"), -(6286, 0, "','"), -(6287, 0, "' '"), -(6288, 0, "'b'"), -(6289, 0, "'e'"), -(6290, 0, "'c'"), -(6291, 0, "'a'"), -(6292, 0, "'u'"), -(6293, 0, "'s'"), -(6294, 0, "'e'"), -(6295, 0, "' '"), -(6296, 0, "'t'"), -(6297, 0, "'h'"), -(6298, 0, "'e'"), -(6299, 0, "' '"), -(6300, 0, "'X'"), -(6301, 0, "' '"), -(6302, 0, "'*'"), -(6303, 0, "'h'"), -(6304, 0, "'a'"), -(6305, 0, "'s'"), -(6306, 0, "' '"), -(6307, 0, "'t'"), -(6308, 0, "'o'"), -(6309, 0, "'*'"), -(6310, 0, "' '"), -(6311, 0, "'g'"), -(6312, 0, "'o'"), -(6313, 0, "' '"), -(6314, 0, "'b'"), -(6315, 0, "'e'"), -(6316, 0, "'f'"), -(6317, 0, "'o'"), -(6318, 0, "'r'"), -(6319, 0, "'e'"), -(6320, 0, "' '"), -(6321, 0, "'t'"), -(6322, 0, "'h'"), -(6323, 0, "'e'"), -(6324, 0, "' '"), -(6325, 0, "'b'"), -(6249, 77, "' '"), -(6250, 0, "'t'"), -(6251, 0, "'h'"), -(6252, 0, "'e'"), -(6253, 0, "'n'"), -(6254, 0, "' '"), -(6255, 0, "'t'"), -(6256, 0, "'h'"), -(6257, 0, "'e'"), -(6258, 0, "' '"), -(6259, 0, "'d'"), -(6260, 0, "'o'"), -(6261, 0, "'c'"), -(6262, 0, "'u'"), -(6263, 0, "'m'"), -(6264, 0, "'e'"), -(6265, 0, "'n'"), -(6266, 0, "'t'"), -(6267, 0, "' '"), -(6268, 0, "'m'"), -(6269, 0, "'i'"), -(6270, 0, "'g'"), -(6271, 0, "'h'"), -(6272, 0, "'t'"), -(6273, 0, "' '"), -(6274, 0, "'e'"), -(6275, 0, "'n'"), -(6276, 0, "'d'"), -(6277, 0, "' '"), -(6278, 0, "'u'"), -(6279, 0, "'p'"), -(6280, 0, "' '"), -(6281, 0, "'a'"), -(6282, 0, "'s'"), -(6802, 1, "''"), -(6801, 1, "''"), -(6801, 0, "'I'"), -(6802, 0, "'t'"), -(6803, 0, "'s'"), -(6804, 0, "' '"), -(6805, 0, "'t'"), -(6806, 0, "'h'"), -(6807, 0, "'e'"), -(6808, 0, "' '"), -(6809, 0, "'a'"), -(6810, 0, "'l'"), -(6811, 0, "'g'"), -(6812, 0, "'o'"), -(6813, 0, "'r'"), -(6814, 0, "'i'"), -(6815, 0, "'t'"), -(6816, 0, "'h'"), -(6817, 0, "'m'"), -(6818, 0, "'i'"), -(6819, 0, "'c'"), -(6820, 0, "' '"), -(6821, 0, "'v'"), -(6822, 0, "'e'"), -(6823, 0, "'r'"), -(6824, 0, "'s'"), -(6825, 0, "'i'"), -(6826, 0, "'o'"), -(6827, 0, "'n'"), -(6828, 0, "' '"), -(6829, 0, "'o'"), -(6830, 0, "'f'"), -(6831, 0, "' '"), -(6918, 6, "''"), -(6744, 0, "' '"), -(6688, 0, "' '"), -(6632, 0, "' '"), -(6750, 0, "' '"), -(7006, 1, "''"), -(6996, 1, "''"), -(6952, 0, "' '"), -(6953, 0, "'t'"), -(6954, 0, "'o'"), -(6955, 0, "' '"), -(6956, 0, "'R'"), -(6957, 0, "'G'"), -(6958, 0, "'A'"), -(6956, 3, "'a'"), -(6956, 1, "''"), -(6956, 0, "'a'"), -(6956, 1, "'RGA'"), -(6939, 0, "' '"), -(6940, 0, "'i'"), -(6941, 0, "'s'"), -(6942, 0, "' '"), -(6943, 0, "'i'"), -(6944, 0, "'m'"), -(6944, 1, "''"), -(6943, 1, "''"), -(6942, 1, "''"), -(6941, 1, "''"), -(6940, 1, "''"), -(6940, 0, "'i'"), -(6941, 0, "'m'"), -(6942, 0, "'p'"), -(6943, 0, "'l'"), -(6944, 0, "'e'"), -(6945, 0, "'m'"), -(6946, 0, "'e'"), -(6947, 0, "'n'"), -(6948, 0, "'t'"), -(6949, 0, "'s'"), -(6950, 0, "' '"), -(6951, 0, "'a'"), -(6952, 0, "' '"), -(6953, 0, "'l'"), -(6954, 0, "'i'"), -(6955, 0, "'b'"), -(6956, 0, "'r'"), -(6957, 0, "'a'"), -(6958, 0, "'r'"), -(6953, 6, "''"), -(6952, 1, "''"), -(6952, 0, "' '"), -(6953, 0, "'C'"), -(6954, 0, "'R'"), -(6955, 0, "'D'"), -(6956, 0, "'T'"), -(6957, 0, "' '"), -(6958, 0, "'c'"), -(6959, 0, "'a'"), -(6960, 0, "'l'"), -(6961, 0, "'l'"), -(6962, 0, "'e'"), -(6963, 0, "'d'"), -(6964, 0, "' '"), -(6965, 0, "'Y'"), -(6966, 0, "'A'"), -(6967, 0, "'T'"), -(6968, 0, "'A'"), -(6969, 0, "' '"), -(6970, 0, "'w'"), -(6971, 0, "'h'"), -(6972, 0, "'i'"), -(6973, 0, "'c'"), -(6974, 0, "'h'"), -(7038, 0, "' '"), -(7039, 0, "'s'"), -(7040, 0, "'l'"), -(7041, 0, "'i'"), -(7042, 0, "'g'"), -(7043, 0, "'h'"), -(7044, 0, "'t'"), -(7045, 0, "'l'"), -(7046, 0, "'y'"), -(6939, 0, "' '"), -(6940, 0, "'-'"), -(6941, 0, "' '"), -(6942, 0, "'w'"), -(6943, 0, "'h'"), -(6944, 0, "'i'"), -(6945, 0, "'c'"), -(6946, 0, "'h'"), -(6947, 0, "' '"), -(6948, 0, "'w'"), -(6949, 0, "'e'"), -(6950, 0, "'''"), -(6951, 0, "'l'"), -(6952, 0, "'l'"), -(6953, 0, "' '"), -(6954, 0, "'s'"), -(6955, 0, "'e'"), -(6956, 0, "'e'"), -(6957, 0, "' '"), -(6958, 0, "'m'"), -(6959, 0, "'o'"), -(6960, 0, "'r'"), -(6961, 0, "'e'"), -(6962, 0, "' '"), -(6963, 0, "'o'"), -(6964, 0, "'f'"), -(6965, 0, "' '"), -(6966, 0, "'l'"), -(6967, 0, "'a'"), -(6968, 0, "'t'"), -(6969, 0, "'e'"), -(6970, 0, "'r'"), -(6971, 0, "' '"), -(6972, 0, "'-'"), -(7003, 0, "'.'"), -(7004, 0, "' '"), -(7005, 0, "'Y'"), -(7006, 0, "'A'"), -(7007, 0, "'T'"), -(7008, 0, "'A'"), -(7009, 0, "' '"), -(7010, 0, "'i'"), -(7011, 0, "'s'"), -(7012, 9, "''"), -(7568, 0, "'t'"), -(7569, 0, "'h'"), -(7570, 0, "'a'"), -(7571, 0, "'t'"), -(7572, 0, "'s'"), -(7573, 0, "' '"), -(7574, 0, "'w'"), -(7575, 0, "'h'"), -(7576, 0, "'a'"), -(7577, 0, "'t'"), -(7578, 0, "' '"), -(7579, 0, "'a'"), -(7580, 0, "'u'"), -(7581, 0, "'t'"), -(7582, 0, "'o'"), -(7583, 0, "'m'"), -(7584, 0, "'e'"), -(7585, 0, "'r'"), -(7586, 0, "'g'"), -(7587, 0, "'e'"), -(7588, 0, "' '"), -(7589, 0, "'d'"), -(7590, 0, "'o'"), -(7591, 0, "'e'"), -(7592, 0, "'s'"), -(7593, 2, "''"), -(7593, 0, "'so'"), -(7588, 5, "''"), -(7578, 10, "''"), -(7573, 5, "''"), -(7568, 5, "''"), -(7801, 1, "''"), -(363, 1, "''"), -(362, 1, "''"), -(362, 0, "','"), -(363, 0, "' '"), -(364, 0, "'u'"), -(365, 0, "'s'"), -(366, 0, "'i'"), -(367, 0, "'n'"), -(368, 0, "'g'"), -(369, 0, "' '"), -(370, 0, "'v'"), -(371, 0, "'a'"), -(372, 0, "'r'"), -(373, 0, "'i'"), -(374, 0, "'o'"), -(375, 0, "'u'"), -(376, 0, "'s'"), -(377, 0, "' '"), -(387, 1, "''"), -(405, 1, "''"), -(405, 1, "''"), -(405, 0, "'.'"), -(407, 1, "''"), -(407, 0, "'A'"), -(979, 4, "''"), -(978, 1, "''"), -(969, 4, "''"), -(974, 0, "' '"), -(975, 0, "'w'"), -(976, 0, "'a'"), -(977, 0, "'s'"), -(978, 0, "' '"), -(979, 0, "'g'"), -(980, 0, "'o'"), -(981, 0, "'i'"), -(982, 0, "'n'"), -(983, 0, "'g'"), -(984, 0, "' '"), -(985, 0, "'o'"), -(986, 0, "'n'"), -(986, 1, "''"), -(986, 0, "'n'"), -(1420, 4, "'t'"), -(1421, 0, "'h'"), -(1422, 0, "'a'"), -(1423, 0, "'t'"), -(1424, 0, "' '"), -(1425, 0, "'s'"), -(1426, 0, "'e'"), -(1427, 0, "'v'"), -(1428, 0, "'e'"), -(1429, 0, "'r'"), -(1430, 0, "'a'"), -(1431, 0, "'l'"), -(1444, 7, "' '"), -(1445, 0, "'m'"), -(1446, 0, "'e'"), -(1594, 0, "'e'"), -(1595, 0, "'d'"), -(1624, 0, "'.'"), -(1625, 0, "' '"), -(1626, 0, "'A'"), -(1627, 0, "'n'"), -(1628, 0, "'d'"), -(1629, 0, "' '"), -(1630, 0, "'n'"), -(1631, 0, "'o'"), -(1632, 0, "'t'"), -(1633, 12, "''"), -(1737, 0, "','"), -(1738, 0, "' '"), -(1739, 0, "'r'"), -(1740, 0, "'u'"), -(1741, 0, "'s'"), -(1742, 0, "'h'"), -(1743, 0, "'i'"), -(1744, 0, "'n'"), -(1745, 0, "'g'"), -(1739, 7, "'w'"), -(1740, 0, "'h'"), -(1741, 0, "'o'"), -(1742, 0, "'''"), -(1742, 1, "''"), -(1742, 0, "' '"), -(1743, 0, "'h'"), -(1744, 0, "'a'"), -(1745, 0, "'s'"), -(1746, 0, "' '"), -(1747, 0, "'a'"), -(1748, 0, "' '"), -(1749, 0, "'b'"), -(1750, 0, "'u'"), -(1751, 0, "'n'"), -(1752, 0, "'c'"), -(1753, 0, "'h'"), -(1754, 0, "' '"), -(1755, 0, "'o'"), -(1756, 0, "'f'"), -(1757, 0, "' '"), -(1758, 0, "'i'"), -(1759, 0, "'m'"), -(1755, 5, "'m'"), -(1756, 0, "'o'"), -(1757, 0, "'r'"), -(1758, 0, "'e'"), -(1759, 0, "' '"), -(1760, 0, "'i'"), -(1761, 0, "'m'"), -(1762, 0, "'p'"), -(1763, 0, "'l'"), -(1764, 0, "'e'"), -(1765, 0, "'m'"), -(1766, 0, "'e'"), -(1767, 0, "'n'"), -(1768, 0, "'t'"), -(1769, 0, "'a'"), -(1770, 0, "'t'"), -(1771, 0, "'i'"), -(1772, 0, "'o'"), -(1773, 0, "'n'"), -(1774, 0, "'s'"), -(1775, 0, "' '"), -(1776, 0, "'t'"), -(1777, 0, "'o'"), -(1778, 0, "' '"), -(1779, 0, "'c'"), -(1780, 0, "'o'"), -(1781, 0, "'d'"), -(1782, 0, "'e'"), -(1783, 0, "' '"), -(1784, 0, "'u'"), -(1785, 0, "'p'"), -(1814, 4, "'r'"), -(1815, 0, "'i'"), -(1816, 0, "'g'"), -(1817, 0, "'h'"), -(1818, 0, "'t'"), -(1851, 1, "''"), -(1850, 1, "''"), -(1850, 0, "'.'"), -(1852, 1, "''"), -(1852, 0, "'B'"), -(2006, 0, "'W'"), -(2007, 0, "'h'"), -(2008, 0, "'o'"), -(2009, 0, "' '"), -(2010, 0, "'w'"), -(2011, 0, "'a'"), -(2012, 0, "'s'"), -(2013, 0, "' '"), -(2014, 0, "'I'"), -(2015, 0, "'?'"), -(2016, 0, "' '"), -(2031, 0, "'n'"), -(2031, 0, "'n'"), -(1799, 0, "' '"), -(1800, 0, "'p'"), -(1801, 0, "'e'"), -(1802, 0, "'e'"), -(1803, 0, "'r'"), -(1804, 0, "' '"), -(1805, 0, "'r'"), -(1806, 0, "'e'"), -(1807, 0, "'v'"), -(1808, 0, "'i'"), -(1809, 0, "'e'"), -(1810, 0, "'w'"), -(1811, 0, "'e'"), -(1812, 0, "'d'"), -(2046, 1, "''"), -(2045, 1, "''"), -(2673, 0, "' '"), -(2674, 0, "'q'"), -(2675, 0, "'u'"), -(2676, 0, "'i'"), -(2677, 0, "'t'"), -(2678, 0, "'e'"), -(2763, 0, "'t'"), -(2764, 0, "'h'"), -(2765, 0, "'a'"), -(2766, 0, "'t'"), -(2767, 0, "' '"), -(2768, 0, "'t'"), -(2769, 0, "'h'"), -(2770, 0, "'i'"), -(2771, 0, "'s'"), -(2772, 0, "' '"), -(2773, 3, "''"), -(2772, 1, "''"), -(2802, 0, "'B'"), -(2803, 0, "'u'"), -(2804, 0, "'t'"), -(2805, 0, "' '"), -(2810, 0, "' '"), -(2811, 0, "'t'"), -(2812, 0, "'r'"), -(2813, 0, "'i'"), -(2814, 0, "'e'"), -(2810, 5, "''"), -(2882, 0, "'T'"), -(2883, 0, "'h'"), -(2884, 0, "'e'"), -(2885, 0, "' '"), -(2882, 4, "'I'"), -(2883, 0, "' '"), -(2884, 0, "'o'"), -(2884, 1, "''"), -(2884, 0, "'t'"), -(2885, 0, "'o'"), -(2886, 0, "'o'"), -(2887, 0, "'k'"), -(2888, 0, "' '"), -(2889, 0, "'t'"), -(2890, 0, "'h'"), -(2891, 0, "'e'"), -(2892, 0, "' '"), -(2893, 0, "'s'"), -(2894, 0, "'a'"), -(2895, 0, "'m'"), -(2896, 0, "'e'"), -(2897, 0, "' '"), -(2898, 0, "'s'"), -(2899, 0, "'e'"), -(2900, 0, "'m'"), -(2901, 0, "'a'"), -(2902, 0, "'n'"), -(2903, 0, "'t'"), -(2904, 0, "'i'"), -(2905, 0, "'s'"), -(2905, 1, "''"), -(2905, 0, "'c'"), -(2906, 0, "'s'"), -(2907, 0, "','"), -(2908, 0, "' '"), -(2909, 0, "'a'"), -(2910, 0, "'n'"), -(2911, 0, "'d'"), -(2912, 0, "' '"), -(2913, 0, "'t'"), -(2914, 0, "'h'"), -(2915, 0, "'e'"), -(2916, 0, "' '"), -(2917, 0, "'s'"), -(2917, 1, "''"), -(2917, 1, "''"), -(2917, 0, "'s'"), -(2931, 0, "'.'"), -(2933, 3, "'B'"), -(3008, 4, "'r'"), -(3009, 0, "'a'"), -(3010, 0, "'n'"), -(3221, 1, "''"), -(3221, 0, "' '"), -(3222, 0, "'w'"), -(3223, 0, "'a'"), -(3224, 0, "'s'"), -(3316, 0, "' '"), -(3317, 0, "'w'"), -(3318, 0, "'o'"), -(3319, 0, "'i'"), -(3320, 0, "'u'"), -(3320, 1, "''"), -(3319, 1, "''"), -(3318, 1, "''"), -(3318, 0, "'o'"), -(3319, 0, "'u'"), -(3320, 0, "'l'"), -(3321, 0, "'d'"), -(3322, 0, "' '"), -(3323, 0, "'h'"), -(3324, 0, "'a'"), -(3325, 0, "'v'"), -(3326, 0, "'e'"), -(3327, 0, "' '"), -(3328, 0, "'t'"), -(3329, 0, "'o'"), -(3330, 0, "'t'"), -(3331, 0, "'a'"), -(3332, 0, "'l'"), -(3333, 0, "'l'"), -(3334, 0, "'y'"), -(3335, 11, "''"), -(3359, 1, "''"), -(3359, 0, "'.'"), -(3361, 17, "'I'"), -(3383, 0, "' '"), -(3384, 0, "'f'"), -(3385, 0, "'r'"), -(3386, 0, "'o'"), -(3387, 0, "'m'"), -(3388, 0, "' '"), -(3389, 0, "'j'"), -(3390, 0, "'u'"), -(3391, 0, "'s'"), -(3392, 0, "'t'"), -(3393, 0, "' '"), -(3394, 0, "'r'"), -(3395, 0, "'e'"), -(3396, 0, "'a'"), -(3397, 0, "'d'"), -(3398, 0, "'i'"), -(3399, 0, "'n'"), -(3400, 0, "'g'"), -(3401, 0, "' '"), -(3402, 0, "'t'"), -(3403, 0, "'h'"), -(3404, 0, "'a'"), -(3405, 0, "' '"), -(3406, 0, "'p'"), -(3406, 1, "''"), -(3405, 1, "''"), -(3404, 1, "''"), -(3404, 0, "'e'"), -(3405, 0, "' '"), -(3406, 0, "'p'"), -(3407, 0, "'a'"), -(3408, 0, "'p'"), -(3409, 0, "'e'"), -(3410, 0, "'r'"), -(3414, 3, "'#'"), -(3415, 0, "' '"), -(3416, 0, "'M'"), -(3417, 0, "'a'"), -(3418, 0, "'k'"), -(3419, 0, "'i'"), -(3420, 0, "'n'"), -(3421, 0, "'g'"), -(3422, 0, "' '"), -(3423, 0, "'C'"), -(3424, 0, "'R'"), -(3425, 0, "'D'"), -(3426, 0, "'T'"), -(3427, 0, "'s'"), -(3428, 0, "' '"), -(3429, 0, "'f'"), -(3430, 0, "'a'"), -(3431, 0, "'s'"), -(3432, 0, "'t'"), -(3615, 0, "' '"), -(3616, 0, "'t'"), -(3617, 0, "'h'"), -(3618, 0, "'e'"), -(3619, 0, "' '"), -(3620, 0, "'f'"), -(3621, 0, "'u'"), -(3622, 0, "'t'"), -(3623, 0, "'u'"), -(3624, 0, "'r'"), -(3625, 0, "'e'"), -(3626, 0, "' '"), -(3627, 0, "'o'"), -(3628, 0, "'f'"), -(3633, 4, "''"), -(3764, 5, "' '"), -(3765, 0, "'I'"), -(3766, 0, "' '"), -(3767, 0, "'a'"), -(3768, 0, "'s'"), -(3769, 0, "'s'"), -(3770, 0, "'u'"), -(3771, 0, "'m'"), -(3772, 0, "'e'"), -(3773, 0, "'d'"), -(3774, 19, "''"), -(3767, 0, "'d'"), -(3768, 0, "'i'"), -(3769, 0, "'s'"), -(3770, 0, "'m'"), -(3771, 0, "'i'"), -(3772, 0, "'s'"), -(3773, 0, "'s'"), -(3774, 0, "'e'"), -(3775, 0, "'d'"), -(3776, 0, "' '"), -(3777, 0, "'t'"), -(3778, 0, "'h'"), -(3779, 0, "'e'"), -(3780, 0, "'m'"), -(3781, 0, "','"), -(3782, 0, "' '"), -(3766, 0, "' '"), -(3767, 0, "'s'"), -(3768, 0, "'t'"), -(3769, 0, "'o'"), -(3770, 0, "'p'"), -(3771, 0, "' '"), -(3771, 1, "''"), -(3771, 0, "'p'"), -(3772, 0, "'e'"), -(3773, 0, "'d'"), -(3774, 0, "' '"), -(3775, 0, "'r'"), -(3776, 0, "'e'"), -(3777, 0, "'a'"), -(3778, 0, "'d'"), -(3779, 0, "'i'"), -(3780, 0, "'n'"), -(3781, 0, "'g'"), -(3782, 0, "' '"), -(3783, 0, "'p'"), -(3784, 0, "'a'"), -(3785, 0, "'p'"), -(3786, 0, "'e'"), -(3787, 0, "'r'"), -(3788, 0, "'s'"), -(3789, 0, "' '"), -(3790, 0, "'a'"), -(3791, 0, "'n'"), -(3792, 0, "'d'"), -(3783, 0, "'a'"), -(3784, 0, "'c'"), -(3785, 0, "'a'"), -(3786, 0, "'d'"), -(3787, 0, "'e'"), -(3788, 0, "'m'"), -(3789, 0, "'i'"), -(3790, 0, "'c'"), -(3791, 0, "' '"), -(3859, 10, "''"), -(3858, 1, "''"), -(3858, 0, "'.'"), -(3859, 0, "' '"), -(3860, 0, "'A'"), -(3861, 0, "' '"), -(3862, 0, "'G'"), -(3863, 0, "'U'"), -(3864, 0, "'I'"), -(3865, 0, "'D'"), -(3866, 0, "' '"), -(3867, 0, "'a'"), -(3867, 1, "''"), -(3867, 0, "'f'"), -(3868, 0, "'o'"), -(3869, 0, "'r'"), -(3870, 0, "' '"), -(3871, 0, "'e'"), -(3872, 0, "'v'"), -(3873, 0, "'e'"), -(3874, 0, "'r'"), -(3875, 0, "'y'"), -(3876, 0, "' '"), -(3877, 0, "'c'"), -(3878, 0, "'h'"), -(3879, 0, "'a'"), -(3880, 0, "'r'"), -(3881, 0, "'a'"), -(3882, 0, "'c'"), -(3883, 0, "'t'"), -(3884, 0, "'e'"), -(3885, 0, "'r'"), -(3886, 0, "'?'"), -(3887, 0, "' '"), -(3888, 0, "'M'"), -(3889, 0, "'a'"), -(3890, 0, "'d'"), -(3891, 0, "'n'"), -(3892, 0, "'e'"), -(3893, 0, "'s'"), -(3894, 0, "'s'"), -(3895, 0, "'!'"), -(3896, 1, "''"), -(3897, 55, "''"), -(3896, 1, "''"), -(4096, 15, "' '"), -(4097, 0, "'h'"), -(4098, 0, "'o'"), -(4099, 0, "'w'"), -(4100, 0, "' '"), -(4101, 0, "'t'"), -(4102, 0, "'o'"), -(4103, 0, "' '"), -(4104, 0, "'m'"), -(4105, 0, "'a'"), -(4106, 0, "'k'"), -(4107, 0, "'e'"), -(4108, 0, "' '"), -(4109, 0, "'t'"), -(4110, 0, "'h'"), -(4111, 0, "'o'"), -(4112, 0, "'s'"), -(4113, 0, "'e'"), -(4114, 10, "''"), -(4101, 0, "'t'"), -(4102, 0, "'h'"), -(4103, 0, "'e'"), -(4104, 0, "' '"), -(4105, 0, "'b'"), -(4106, 0, "'e'"), -(4107, 0, "'s'"), -(4108, 0, "'t'"), -(4109, 0, "' '"), -(4110, 0, "'w'"), -(4111, 0, "'a'"), -(4112, 0, "'y'"), -(4113, 0, "' '"), -(4114, 0, "'t'"), -(4115, 0, "'o'"), -(4116, 0, "' '"), -(4117, 14, "''"), -(4118, 15, "'i'"), -(4119, 0, "'m'"), -(4120, 0, "'p'"), -(4121, 0, "'l'"), -(4122, 0, "'e'"), -(4123, 0, "'m'"), -(4124, 0, "'e'"), -(4125, 0, "'n'"), -(4126, 0, "'t'"), -(4129, 3, "''"), -(6435, 4, "'i'"), -(6436, 0, "'f'"), -(6437, 0, "' '"), -(6438, 0, "'i'"), -(6438, 1, "''"), -(6438, 0, "'w'"), -(6439, 0, "'e'"), -(6440, 0, "' '"), -(6441, 0, "'d'"), -(6442, 0, "'o'"), -(6443, 0, "' '"), -(6444, 0, "'t'"), -(6445, 0, "'h'"), -(6446, 0, "'a'"), -(6447, 0, "'t'"), -(6481, 1, "''"), -(6482, 0, "'X'"), -(6531, 0, "' '"), -(6532, 0, "'T'"), -(6533, 0, "'h'"), -(6534, 0, "'a'"), -(6535, 0, "'t'"), -(6536, 0, "' '"), -(6537, 0, "'w'"), -(6538, 0, "'o'"), -(6539, 0, "'u'"), -(6540, 0, "'l'"), -(6541, 0, "'d'"), -(6542, 0, "' '"), -(6543, 0, "'b'"), -(6544, 0, "'e'"), -(6545, 0, "' '"), -(6546, 0, "'s'"), -(6547, 0, "'u'"), -(6548, 0, "'p'"), -(6549, 0, "'e'"), -(6550, 0, "'r'"), -(6551, 0, "' '"), -(6552, 0, "'w'"), -(6553, 0, "'r'"), -(6554, 0, "'o'"), -(6555, 0, "'n'"), -(6556, 0, "'g'"), -(6557, 0, "'.'"), -(6543, 14, "'r'"), -(6544, 0, "'e'"), -(6545, 0, "'a'"), -(6546, 0, "'l'"), -(6547, 0, "'l'"), -(6548, 0, "'y'"), -(6543, 0, "'b'"), -(6544, 0, "'e'"), -(6545, 0, "' '"), -(6552, 0, "' '"), -(6553, 0, "'c'"), -(6554, 0, "'o'"), -(6555, 0, "'n'"), -(6556, 0, "'f'"), -(6557, 0, "'u'"), -(6558, 0, "'s'"), -(6559, 0, "'i'"), -(6560, 0, "'n'"), -(6561, 0, "'g'"), -(8248, 21, "'a'"), -(8249, 0, "' '"), -(8250, 0, "'r'"), -(8251, 0, "'e'"), -(8252, 0, "'c'"), -(8253, 0, "'o'"), -(8254, 0, "'r'"), -(8255, 0, "'d'"), -(8256, 0, "' '"), -(8257, 0, "'o'"), -(8258, 0, "'f'"), -(8250, 0, "'c'"), -(8251, 0, "'h'"), -(8252, 0, "'a'"), -(8253, 0, "'r'"), -(8254, 0, "'a'"), -(8255, 0, "'c'"), -(8256, 0, "'t'"), -(8257, 0, "'e'"), -(8258, 0, "'r'"), -(8259, 0, "' '"), -(8260, 0, "'b'"), -(8261, 0, "'y'"), -(8262, 0, "' '"), -(8263, 0, "'c'"), -(8264, 0, "'h'"), -(8265, 0, "'a'"), -(8266, 0, "'r'"), -(8267, 0, "'a'"), -(8268, 0, "'c'"), -(8269, 0, "'t'"), -(8270, 0, "'e'"), -(8271, 0, "'r'"), -(8272, 0, "' '"), -(8273, 6, "'r'"), -(8274, 0, "'e'"), -(8275, 0, "'c'"), -(8276, 0, "'o'"), -(8277, 0, "'r'"), -(8278, 0, "'d'"), -(8279, 0, "'i'"), -(8280, 0, "'n'"), -(8281, 0, "'g'"), -(8486, 0, "' '"), -(8487, 0, "'a'"), -(8488, 0, "'b'"), -(8489, 0, "'o'"), -(8490, 0, "'u'"), -(8491, 0, "'t'"), -(8492, 0, "' '"), -(8493, 0, "'t'"), -(8494, 0, "'h'"), -(8495, 0, "'a'"), -(8496, 0, "'t'"), -(8616, 0, "'''"), -(8617, 0, "'s'"), -(11050, 5, "'A'"), -(11051, 0, "'n'"), -(11052, 0, "'d'"), -(11053, 0, "' '"), -(11054, 0, "'w'"), -(11055, 0, "'e'"), -(11056, 0, "' '"), -(11057, 0, "'c'"), -(11058, 0, "'a'"), -(11059, 0, "'n'"), -(11060, 0, "' '"), -(11190, 2, "'i'"), -(11191, 0, "'n'"), -(11429, 0, "','"), -(11430, 0, "' '"), -(11431, 0, "'a'"), -(11432, 0, "'s'"), -(11433, 0, "' '"), -(11434, 0, "'w'"), -(11435, 0, "'e'"), -(11436, 0, "'''"), -(11437, 0, "'l'"), -(11438, 0, "'l'"), -(11439, 0, "' '"), -(11440, 0, "'s'"), -(11441, 0, "'e'"), -(11442, 0, "'e'"), -(11443, 0, "' '"), -(11444, 0, "'s'"), -(11445, 0, "'o'"), -(11446, 0, "'o'"), -(11447, 0, "'n'"), -(12916, 8, "'i'"), -(12917, 0, "'n'"), -(12918, 0, "'s'"), -(12919, 0, "'e'"), -(12920, 0, "'r'"), -(12921, 0, "'t'"), -(12922, 0, "' '"), -(12923, 0, "'f'"), -(12924, 0, "'u'"), -(12925, 0, "'n'"), -(12926, 0, "'c'"), -(12927, 0, "'t'"), -(12928, 0, "'i'"), -(12929, 0, "'o'"), -(12930, 0, "'n'"), -(12931, 0, "' '"), -(12932, 0, "'i'"), -(12933, 0, "'n'"), -(12982, 0, "'''"), -(12983, 0, "'s'"), -(12984, 0, "' '"), -(12984, 1, "''"), -(12984, 0, "' '"), -(12985, 0, "'c'"), -(12986, 0, "'R'"), -(12986, 1, "''"), -(12985, 1, "''"), -(12985, 0, "'C'"), -(12986, 0, "'R'"), -(12987, 0, "'D'"), -(12988, 0, "'T'"), -(12989, 0, "' '"), -(12990, 0, "'('"), -(12991, 0, "'Y'"), -(12992, 0, "'A'"), -(12993, 0, "'T'"), -(12994, 0, "'A'"), -(12995, 0, "')'"), -(10388, 0, "' '"), -(10389, 0, "'I'"), -(10390, 0, "'''"), -(10391, 0, "'v'"), -(10392, 0, "'e'"), -(10393, 0, "' '"), -(10394, 0, "'b'"), -(10395, 0, "'e'"), -(10396, 0, "'e'"), -(10397, 0, "'n'"), -(10398, 0, "' '"), -(10399, 0, "'t'"), -(10400, 0, "'o'"), -(10401, 0, "'l'"), -(10402, 0, "'d'"), -(10403, 0, "' '"), -(10404, 0, "'i'"), -(10405, 0, "'t'"), -(10406, 0, "'s'"), -(10407, 0, "' '"), -(10408, 0, "'a'"), -(10409, 0, "'b'"), -(10410, 0, "'o'"), -(10411, 0, "'u'"), -(10412, 0, "'t'"), -(10413, 0, "' '"), -(10414, 0, "'5'"), -(10415, 0, "'x'"), -(10416, 0, "' '"), -(10417, 0, "'f'"), -(10418, 0, "'a'"), -(10419, 0, "'s'"), -(10420, 0, "'t'"), -(10421, 0, "'e'"), -(10422, 0, "'r'"), -(10423, 0, "','"), -(10424, 0, "' '"), -(10425, 0, "'b'"), -(10426, 0, "'u'"), -(10427, 0, "'t'"), -(10428, 0, "' '"), -(10429, 0, "'I'"), -(10430, 0, "' '"), -(10431, 0, "'h'"), -(10432, 0, "'a'"), -(10433, 0, "'v'"), -(10434, 0, "'e'"), -(10435, 0, "'n'"), -(10436, 0, "'''"), -(10437, 0, "'t'"), -(10438, 0, "' '"), -(10429, 10, "'I'"), -(10430, 0, "' '"), -(10431, 0, "'c'"), -(10432, 0, "'o'"), -(10433, 0, "'u'"), -(10434, 0, "'l'"), -(10435, 0, "'d'"), -(10436, 0, "'n'"), -(10437, 0, "'''"), -(10438, 0, "'t'"), -(10439, 0, "' '"), -(10440, 0, "'g'"), -(10441, 0, "'e'"), -(10442, 0, "'t'"), -(10443, 0, "' '"), -(10444, 0, "'t'"), -(10445, 0, "'h'"), -(10446, 0, "'e'"), -(10447, 0, "' '"), -(10448, 0, "'v'"), -(10449, 0, "'e'"), -(10450, 0, "'r'"), -(10451, 0, "'s'"), -(10452, 0, "'i'"), -(10453, 0, "'o'"), -(10454, 0, "'n'"), -(10455, 0, "' '"), -(10456, 0, "'i'"), -(10457, 0, "'n'"), -(10458, 0, "' '"), -(10459, 0, "'g'"), -(10460, 0, "'i'"), -(10461, 0, "'t'"), -(10462, 0, "' '"), -(10463, 0, "'w'"), -(10464, 0, "'o'"), -(10465, 0, "'r'"), -(10466, 0, "'k'"), -(10467, 0, "'i'"), -(10468, 0, "'n'"), -(10469, 0, "'g'"), -(10470, 0, "'.'"), -(10392, 1, "''"), -(10391, 1, "''"), -(10391, 0, "'m'"), -(10392, 5, "''"), -(1604, 1, "''"), -(1604, 0, "'F'"), -(1609, 2, "'b'"), -(1610, 0, "'o'"), -(1610, 1, "''"), -(1609, 1, "''"), -(1609, 0, "'a'"), -(1610, 0, "'b'"), -(1611, 0, "'o'"), -(1612, 0, "'u'"), -(1613, 0, "'t'"), -(1609, 18, "'A'"), -(1610, 0, "'b'"), -(1611, 0, "'o'"), -(1612, 0, "'u'"), -(1613, 0, "'t'"), -(1614, 0, "' '"), -(1615, 0, "'T'"), -(1616, 0, "'h'"), -(1617, 0, "'e'"), -(1618, 0, "' '"), -(1619, 0, "'U'"), -(1620, 0, "'n'"), -(1621, 0, "'i'"), -(1622, 0, "'v'"), -(1623, 0, "'e'"), -(1624, 0, "'r'"), -(1625, 0, "'s'"), -(1626, 0, "'e'"), -(1661, 3, "''"), -(1682, 0, "'s'"), -(1715, 1, "''"), -(1715, 0, "' '"), -(1716, 0, "'p'"), -(1717, 0, "'r'"), -(1718, 0, "'o'"), -(1719, 0, "'b'"), -(1720, 0, "'a'"), -(1721, 0, "'b'"), -(1722, 0, "'l'"), -(1723, 0, "'y'"), -(1724, 11, "' '"), -(1725, 0, "'o'"), -(1726, 0, "'v'"), -(1727, 0, "'e'"), -(1728, 0, "'r'"), -(1729, 0, "'s'"), -(1730, 0, "'t'"), -(1731, 0, "'r'"), -(1732, 0, "'e'"), -(1733, 0, "'t'"), -(1734, 0, "'c'"), -(1735, 0, "'h'"), -(1736, 0, "'e'"), -(1737, 0, "'d'"), -(1749, 1, "''"), -(1749, 0, "'.'"), -(1750, 0, "' '"), -(1751, 0, "'O'"), -(1752, 0, "'n'"), -(1753, 0, "'e'"), -(1754, 0, "' '"), -(1755, 0, "'o'"), -(1756, 0, "'f'"), -(1757, 0, "' '"), -(1758, 0, "'a'"), -(1759, 0, "' '"), -(1760, 11, "''"), -(1765, 5, "' '"), -(1766, 0, "'o'"), -(1767, 0, "'f'"), -(1785, 2, "'t'"), -(1786, 0, "'h'"), -(1787, 0, "'e'"), -(1788, 0, "'y'"), -(1789, 0, "' '"), -(1790, 0, "'n'"), -(1791, 0, "'e'"), -(1792, 0, "'e'"), -(1793, 0, "'d'"), -(1794, 0, "'e'"), -(1795, 0, "'d'"), -(1796, 0, "' '"), -(1797, 0, "'t'"), -(1798, 0, "'o'"), -(1760, 0, "'w'"), -(1761, 0, "'h'"), -(1762, 0, "'o'"), -(1763, 0, "'l'"), -(1764, 0, "'e'"), -(1765, 0, "' '"), -(2827, 0, "' '"), -(2828, 0, "'W'"), -(2829, 0, "'i'"), -(2830, 0, "'t'"), -(2831, 0, "'h'"), -(2832, 0, "' '"), -(2833, 0, "'t'"), -(2834, 0, "'i'"), -(2835, 0, "'m'"), -(2836, 0, "'e'"), -(2837, 0, "' '"), -(2838, 0, "'t'"), -(2839, 0, "'h'"), -(2840, 0, "'e'"), -(2841, 0, "'r'"), -(2842, 0, "'e'"), -(2843, 0, "'''"), -(2844, 0, "'s'"), -(2845, 0, "' '"), -(2846, 0, "'a'"), -(2847, 0, "'l'"), -(2848, 0, "'w'"), -(2849, 0, "'a'"), -(2850, 0, "'y'"), -(2851, 0, "'s'"), -(2828, 5, "'I'"), -(2829, 0, "'f'"), -(2830, 0, "' '"), -(2831, 0, "'y'"), -(2832, 0, "'o'"), -(2833, 0, "'u'"), -(2834, 0, "' '"), -(2835, 0, "'w'"), -(2836, 0, "'a'"), -(2837, 0, "'i'"), -(2838, 0, "'t'"), -(2839, 0, "' '"), -(2840, 0, "'l'"), -(2841, 0, "'o'"), -(2842, 0, "'n'"), -(2843, 0, "'g'"), -(2844, 0, "' '"), -(2845, 0, "'e'"), -(2846, 0, "'n'"), -(2847, 0, "'o'"), -(2848, 0, "'u'"), -(2849, 0, "'u'"), -(2849, 1, "''"), -(2849, 0, "'g'"), -(2850, 0, "'h'"), -(2851, 0, "' '"), -(2851, 1, "''"), -(2851, 0, "','"), -(2852, 0, "' '"), -(2853, 5, "''"), -(2867, 0, "' '"), -(2868, 0, "'m'"), -(2869, 0, "'o'"), -(2870, 0, "'r'"), -(2871, 0, "'e'"), -(2872, 0, "' '"), -(2873, 0, "'b'"), -(2874, 0, "'u'"), -(2875, 0, "'g'"), -(2876, 0, "'s'"), -(2877, 0, "'.'"), -(2878, 0, "' '"), -(2879, 0, "'A'"), -(2880, 0, "'n'"), -(2881, 0, "'d'"), -(2882, 0, "' '"), -(2883, 0, "'a'"), -(2884, 0, "'l'"), -(2885, 0, "'w'"), -(2886, 0, "'a'"), -(2887, 0, "'y'"), -(2888, 0, "'s'"), -(2889, 0, "' '"), -(2890, 0, "'b'"), -(2891, 0, "'i'"), -(2892, 0, "'g'"), -(2893, 0, "'g'"), -(2894, 0, "'e'"), -(2895, 0, "'r'"), -(2896, 0, "' '"), -(2897, 0, "'s'"), -(2898, 0, "'m'"), -(2899, 0, "'a'"), -(2900, 0, "'r'"), -(2901, 0, "'t'"), -(2902, 0, "'-'"), -(2903, 0, "'a'"), -(2904, 0, "'r'"), -(2905, 0, "'s'"), -(2906, 0, "'e'"), -(2907, 0, "'s'"), -(2908, 0, "' '"), -(2909, 0, "'w'"), -(2910, 0, "'i'"), -(2911, 0, "'t'"), -(2912, 0, "'h'"), -(2913, 0, "' '"), -(2914, 0, "'f'"), -(2915, 0, "'a'"), -(2916, 0, "'s'"), -(2917, 0, "'t'"), -(2918, 0, "'e'"), -(2919, 0, "'r'"), -(2920, 0, "' '"), -(2921, 0, "'i'"), -(2922, 0, "'m'"), -(2909, 14, "'w'"), -(2909, 1, "''"), -(2909, 0, "'t'"), -(2910, 0, "'o'"), -(2911, 0, "' '"), -(2890, 22, "'n'"), -(2891, 0, "'e'"), -(2892, 0, "'w'"), -(2893, 0, "' '"), -(2894, 0, "'w'"), -(2895, 0, "'a'"), -(2896, 0, "'y'"), -(2897, 0, "'s'"), -(2898, 0, "' '"), -(2899, 0, "'t'"), -(2900, 0, "'o'"), -(2901, 0, "' '"), -(2902, 0, "'d'"), -(2903, 0, "'o'"), -(2904, 0, "' '"), -(2890, 15, "'f'"), -(2891, 0, "'a'"), -(2892, 0, "'s'"), -(2893, 0, "'t'"), -(2894, 0, "'e'"), -(2895, 0, "'r'"), -(2896, 0, "' '"), -(2897, 0, "'i'"), -(2898, 0, "'m'"), -(2899, 0, "'p'"), -(2900, 0, "'l'"), -(2901, 0, "'e'"), -(2902, 0, "'m'"), -(2903, 0, "'e'"), -(2904, 0, "'n'"), -(2905, 0, "'t'"), -(2906, 0, "'a'"), -(2907, 0, "'t'"), -(2908, 0, "'i'"), -(2909, 0, "'o'"), -(2910, 0, "'n'"), -(2911, 0, "'s'"), -(2912, 0, "'.'"), -(2915, 4, "''"), -(2991, 15, "'I'"), -(2991, 1, "''"), -(2991, 0, "'E'"), -(2992, 0, "'a'"), -(2993, 0, "'c'"), -(2994, 0, "'h'"), -(2995, 0, "' '"), -(2996, 0, "'i'"), -(2997, 0, "'m'"), -(2998, 0, "'p'"), -(2999, 0, "'l'"), -(3000, 0, "'e'"), -(3001, 0, "'m'"), -(3002, 0, "'e'"), -(3003, 0, "'n'"), -(3004, 0, "'t'"), -(3005, 0, "'a'"), -(3006, 0, "'t'"), -(3007, 0, "'i'"), -(3008, 0, "'o'"), -(3009, 0, "'n'"), -(3010, 0, "' '"), -(3011, 0, "'h'"), -(3012, 0, "'a'"), -(3013, 0, "'s'"), -(3014, 0, "' '"), -(3015, 0, "'t'"), -(3016, 0, "'h'"), -(3017, 0, "'e'"), -(3018, 0, "' '"), -(3019, 0, "'s'"), -(3020, 0, "'a'"), -(3021, 0, "'m'"), -(3022, 0, "'e'"), -(3339, 22, "'M'"), -(3344, 0, "','"), -(3345, 0, "' '"), -(3346, 0, "'w'"), -(3347, 0, "'i'"), -(3348, 0, "'t'"), -(3349, 0, "'h'"), -(3350, 0, "'o'"), -(3351, 0, "'u'"), -(3352, 0, "'t'"), -(3353, 0, "' '"), -(3354, 0, "'n'"), -(3355, 0, "'o'"), -(3356, 0, "'t'"), -(3357, 0, "'i'"), -(3358, 0, "'c'"), -(3359, 0, "'i'"), -(3360, 0, "'n'"), -(3361, 0, "'g'"), -(3362, 0, "','"), -(3433, 50, "''"), -(3487, 0, "'n'"), -(3486, 0, "' '"), -(3487, 0, "'B'"), -(3488, 0, "'e'"), -(3489, 0, "'n'"), -(3490, 0, "'c'"), -(3491, 0, "'h'"), -(3492, 0, "'m'"), -(3493, 0, "'a'"), -(3494, 0, "'r'"), -(3495, 0, "'k'"), -(3496, 0, "'i'"), -(3497, 0, "'n'"), -(3498, 0, "'g'"), -(3499, 0, "' '"), -(3500, 0, "'i'"), -(3501, 0, "'s'"), -(3502, 0, "' '"), -(3503, 0, "'a'"), -(3504, 0, "'n'"), -(3505, 0, "' '"), -(3506, 0, "'a'"), -(3507, 0, "'r'"), -(3508, 0, "'t'"), -(3509, 0, "','"), -(3510, 0, "' '"), -(3511, 0, "'n'"), -(3512, 0, "'o'"), -(3513, 0, "'t'"), -(3514, 0, "' '"), -(3515, 0, "'a'"), -(3516, 0, "' '"), -(3517, 0, "'s'"), -(3518, 0, "'c'"), -(3519, 0, "'i'"), -(3520, 0, "'e'"), -(3521, 0, "'c'"), -(3522, 0, "'n'"), -(3523, 0, "'e'"), -(3523, 1, "''"), -(3522, 1, "''"), -(3521, 1, "''"), -(3487, 34, "''"), -(3486, 1, "''"), -(3630, 1, "''"), -(3676, 1, "''"), -(3890, 1, "''"), -(3890, 0, "'.'"), -(3891, 0, "' '"), -(3892, 0, "'I'"), -(3902, 6, "'C'"), -(3903, 0, "'R'"), -(3904, 0, "'D'"), -(3905, 0, "'T'"), -(3906, 0, "'s'"), -(3907, 0, "' '"), -(3908, 0, "'h'"), -(3909, 0, "'a'"), -(3910, 0, "'d'"), -(3911, 3, "''"), -(3963, 0, "'O'"), -(3964, 0, "'n'"), -(3965, 0, "'l'"), -(3966, 0, "'y'"), -(3967, 0, "' '"), -(3968, 1, "''"), -(3968, 0, "'m'"), -(3975, 0, "' '"), -(3976, 0, "'c'"), -(3977, 0, "'o'"), -(3978, 0, "'m'"), -(3979, 0, "'e'"), -(3980, 0, "'s'"), -(3981, 0, "' '"), -(3982, 0, "'f'"), -(3983, 0, "'r'"), -(3984, 0, "'o'"), -(3985, 0, "'m'"), -(3986, 0, "' '"), -(3987, 0, "'t'"), -(3988, 0, "'h'"), -(3989, 0, "'o'"), -(3990, 0, "'s'"), -(3991, 0, "'e'"), -(3992, 0, "' '"), -(3993, 0, "'t'"), -(3994, 0, "'u'"), -(3995, 0, "'n'"), -(3996, 0, "'n'"), -(3997, 0, "'e'"), -(3998, 0, "'l'"), -(3999, 0, "'s'"), -(3993, 7, "'l'"), -(3994, 0, "'a'"), -(3995, 0, "'n'"), -(3996, 0, "'d'"), -(3997, 0, "'s'"), -(4113, 0, "' '"), -(4114, 0, "'h'"), -(4114, 1, "''"), -(4114, 0, "'w'"), -(4115, 0, "'h'"), -(4116, 0, "'i'"), -(4117, 0, "'c'"), -(4118, 0, "'h'"), -(4119, 0, "' '"), -(4120, 0, "'d'"), -(4121, 0, "'e'"), -(4122, 0, "'s'"), -(4123, 0, "'c'"), -(4124, 0, "'r'"), -(4125, 0, "'i'"), -(4126, 0, "'b'"), -(4127, 0, "'e'"), -(4128, 0, "'d'"), -(4129, 14, "''"), -(4172, 1, "''"), -(4171, 1, "''"), -(4170, 1, "''"), -(4169, 1, "''"), -(4169, 0, "'.'"), -(4170, 0, "' '"), -(4171, 0, "'A'"), -(4172, 0, "'n'"), -(4173, 0, "'d'"), -(4174, 0, "' '"), -(4175, 0, "'I'"), -(4184, 1, "''"), -(4183, 1, "''"), -(4182, 1, "''"), -(4182, 0, "'e'"), -(4183, 0, "'d'"), -(4159, 10, "'s'"), -(4160, 0, "'y'"), -(4161, 0, "'s'"), -(4162, 0, "'t'"), -(4163, 0, "'e'"), -(4164, 0, "'m'"), -(4165, 0, "'s'"), -(3963, 4, "'N'"), -(3964, 0, "'a'"), -(3965, 0, "'u'"), -(3966, 0, "'g'"), -(3967, 0, "'h'"), -(3968, 0, "'t'"), -(3969, 0, "' '"), -(3970, 0, "'b'"), -(3971, 0, "'u'"), -(3972, 0, "'t'"), -(3973, 0, "' '"), -(3973, 1, "''"), -(3999, 5, "'s'"), -(4000, 0, "'t'"), -(4001, 0, "'r'"), -(4002, 0, "'a'"), -(4003, 0, "'n'"), -(4004, 0, "'g'"), -(4005, 0, "'e'"), -(4006, 0, "' '"), -(4007, 0, "'l'"), -(4008, 0, "'a'"), -(4009, 0, "'n'"), -(4010, 0, "'d'"), -(4011, 0, "'s'"), -(10541, 42, "''"), -(10535, 6, "'.'"), -(10536, 0, "' '"), -(10537, 0, "'I'"), -(10538, 0, "' '"), -(10539, 0, "'r'"), -(10540, 0, "'a'"), -(10541, 0, "'n'"), -(10542, 0, "' '"), -(10543, 0, "'a'"), -(10544, 0, "'n'"), -(10545, 0, "' '"), -(10546, 0, "'e'"), -(10547, 0, "'a'"), -(10548, 0, "'r'"), -(10549, 0, "'l'"), -(10550, 0, "'y'"), -(10551, 0, "' '"), -(10552, 0, "'b'"), -(10553, 0, "'e'"), -(10554, 0, "'n'"), -(10555, 0, "'c'"), -(10556, 0, "'h'"), -(10557, 0, "'m'"), -(10558, 0, "'a'"), -(10559, 0, "'r'"), -(10560, 0, "'k'"), -(10561, 0, "' '"), -(10562, 0, "'a'"), -(10563, 0, "'n'"), -(10564, 0, "'d'"), -(10565, 0, "' '"), -(10566, 0, "'i'"), -(10567, 0, "'t'"), -(10568, 0, "' '"), -(10569, 0, "'w'"), -(10570, 0, "'a'"), -(10571, 0, "'s'"), -(10572, 0, "' '"), -(10573, 0, "'b'"), -(10574, 0, "'a'"), -(10575, 0, "'r'"), -(10576, 0, "'e'"), -(10577, 0, "'l'"), -(10578, 0, "'y'"), -(10579, 0, "' '"), -(10580, 0, "'f'"), -(10569, 12, "'g'"), -(10570, 0, "'l'"), -(10571, 0, "'i'"), -(10572, 0, "'g'"), -(10572, 1, "''"), -(10571, 1, "''"), -(10570, 1, "''"), -(10569, 1, "''"), -(10569, 0, "'s'"), -(10570, 0, "'l'"), -(10571, 0, "'i'"), -(10572, 0, "'g'"), -(10573, 0, "'h'"), -(10574, 0, "'t'"), -(10575, 0, "'l'"), -(10576, 0, "'y'"), -(10577, 0, "' '"), -(10578, 0, "'f'"), -(10579, 0, "'a'"), -(10580, 0, "'s'"), -(10581, 0, "'t'"), -(10582, 0, "'e'"), -(10583, 0, "'r'"), -(10569, 0, "'o'"), -(10570, 0, "'n'"), -(10571, 0, "'l'"), -(10572, 0, "'y'"), -(10573, 0, "' '"), -(10535, 1, "''"), -(10535, 0, "','"), -(10536, 0, "' '"), -(10537, 0, "'b'"), -(10538, 0, "'u'"), -(10539, 0, "'t'"), -(10570, 23, "'p'"), -(10571, 0, "'e'"), -(10572, 0, "'r'"), -(10573, 0, "'f'"), -(10574, 0, "'o'"), -(10575, 0, "'r'"), -(10576, 0, "'m'"), -(10577, 0, "'a'"), -(10578, 0, "'n'"), -(10579, 0, "'c'"), -(10580, 0, "'e'"), -(10581, 0, "' '"), -(10582, 0, "'w'"), -(10583, 0, "'a'"), -(10584, 0, "'s'"), -(10585, 0, "' '"), -(10586, 0, "'a'"), -(10587, 0, "'l'"), -(10588, 0, "'m'"), -(10589, 0, "'o'"), -(10590, 0, "'s'"), -(10591, 0, "'t'"), -(10592, 0, "' '"), -(10593, 0, "'h'"), -(10593, 1, "''"), -(10593, 0, "'t'"), -(10594, 0, "'h'"), -(10595, 0, "'e'"), -(10596, 0, "' '"), -(10597, 0, "'s'"), -(10598, 0, "'a'"), -(10599, 0, "'m'"), -(10600, 0, "'e'"), -(10601, 0, "'.'"), -(10602, 0, "' '"), -(10603, 0, "'I'"), -(10604, 0, "'''"), -(10605, 0, "'m'"), -(10606, 0, "' '"), -(10607, 0, "'g'"), -(10608, 0, "'o'"), -(10609, 0, "'i'"), -(10610, 0, "'n'"), -(10611, 0, "'g'"), -(10612, 0, "' '"), -(10613, 0, "'t'"), -(10614, 0, "'o'"), -(10615, 0, "' '"), -(10586, 30, "'r'"), -(10587, 0, "'e'"), -(10588, 0, "'m'"), -(10589, 0, "'a'"), -(10590, 0, "'r'"), -(10591, 0, "'k'"), -(10592, 0, "'a'"), -(10593, 0, "'b'"), -(10594, 0, "'l'"), -(10595, 0, "'y'"), -(10596, 0, "' '"), -(10597, 0, "'c'"), -(10598, 0, "'l'"), -(10599, 0, "'o'"), -(10600, 0, "'s'"), -(10601, 0, "'e'"), -(10602, 0, "' '"), -(10603, 0, "'t'"), -(10604, 0, "'o'"), -(10605, 0, "' '"), -(10606, 0, "'t'"), -(10607, 0, "'h'"), -(10608, 0, "'e'"), -(10609, 0, "' '"), -(10610, 0, "'j'"), -(10611, 0, "'a'"), -(10612, 0, "'v'"), -(10613, 0, "'a'"), -(10614, 0, "'s'"), -(10615, 0, "'c'"), -(10616, 0, "'r'"), -(10617, 0, "'i'"), -(10618, 0, "'p'"), -(10619, 0, "'t'"), -(10620, 0, "' '"), -(10621, 0, "'v'"), -(10622, 0, "'e'"), -(10623, 0, "'r'"), -(10624, 0, "'s'"), -(10625, 0, "'i'"), -(10626, 0, "'o'"), -(10627, 0, "'n'"), -(10628, 0, "' '"), -(10629, 0, "'-'"), -(10630, 0, "' '"), -(10631, 0, "'s'"), -(10632, 0, "'o'"), -(10633, 0, "' '"), -(10606, 0, "'t'"), -(10607, 0, "'h'"), -(10608, 0, "'a'"), -(10609, 0, "'t'"), -(10610, 0, "' '"), -(10611, 0, "'o'"), -(10612, 0, "'f'"), -(10613, 0, "' '"), -(10636, 6, "''"), -(10636, 0, "'.'"), -(10541, 96, "''"), -(10541, 0, "'p'"), -(10542, 0, "'e'"), -(10543, 0, "'r'"), -(10544, 0, "'f'"), -(10545, 0, "'o'"), -(10546, 0, "'r'"), -(10547, 0, "'m'"), -(10548, 0, "'a'"), -(10549, 0, "'n'"), -(10550, 0, "'c'"), -(10551, 0, "'e'"), -(10552, 0, "' '"), -(10553, 0, "'i'"), -(10554, 0, "'n'"), -(10555, 0, "' '"), -(10556, 0, "'t'"), -(10557, 0, "'h'"), -(10558, 0, "'i'"), -(10559, 0, "'s'"), -(10560, 0, "' '"), -(10561, 0, "'t'"), -(10562, 0, "'e'"), -(10563, 0, "'s'"), -(10564, 0, "'t'"), -(10565, 0, "' '"), -(10566, 0, "'w'"), -(10567, 0, "'a'"), -(10568, 0, "'s'"), -(10569, 0, "' '"), -(10570, 0, "'a'"), -(10571, 0, "'l'"), -(10572, 0, "'m'"), -(10573, 0, "'o'"), -(10574, 0, "'s'"), -(10575, 0, "'t'"), -(10576, 0, "' '"), -(10577, 0, "'t'"), -(10578, 0, "'h'"), -(10579, 0, "'e'"), -(10580, 0, "' '"), -(10581, 0, "'s'"), -(10582, 0, "'a'"), -(10583, 0, "'m'"), -(10584, 0, "'e'"), -(10585, 0, "' '"), -(10586, 0, "'a'"), -(10587, 0, "'s'"), -(10588, 0, "' '"), -(10589, 0, "'t'"), -(10590, 0, "'h'"), -(10591, 0, "'e'"), -(10592, 0, "' '"), -(10593, 0, "'J'"), -(10594, 0, "'S'"), -(10595, 0, "' '"), -(10596, 0, "'v'"), -(10597, 0, "'e'"), -(10598, 0, "'r'"), -(10599, 0, "'s'"), -(10600, 0, "'i'"), -(10601, 0, "'o'"), -(10602, 0, "'n'"), -(10603, 0, "'.'"), -(10456, 0, "' '"), -(10457, 0, "'t'"), -(10458, 0, "'o'"), -(10459, 0, "' '"), -(10460, 0, "'r'"), -(10461, 0, "'u'"), -(10462, 0, "'n'"), -(10463, 0, "' '"), -(10464, 0, "'t'"), -(10465, 0, "'h'"), -(10466, 0, "'r'"), -(10467, 0, "'o'"), -(10468, 0, "'u'"), -(10469, 0, "'g'"), -(10470, 0, "'h'"), -(10471, 0, "' '"), -(10472, 0, "'w'"), -(10473, 0, "'a'"), -(10474, 0, "'s'"), -(10475, 0, "'m'"), -(10555, 5, "'.'"), -(10556, 0, "' '"), -(10557, 0, "'I'"), -(10558, 0, "' '"), -(10559, 0, "'r'"), -(10560, 0, "'a'"), -(10561, 0, "'n'"), -(10562, 0, "' '"), -(10563, 0, "'t'"), -(10564, 0, "'h'"), -(10565, 0, "'e'"), -(10566, 0, "' '"), -(10555, 0, "','"), -(10556, 0, "' '"), -(10557, 0, "'b'"), -(10558, 0, "'u'"), -(10559, 0, "'t'"), -(10560, 0, "' '"), -(10561, 0, "'I'"), -(10562, 0, "' '"), -(10563, 0, "'s'"), -(10564, 0, "'e'"), -(10565, 0, "'e'"), -(10566, 0, "' '"), -(10567, 0, "'s'"), -(10568, 0, "'i'"), -(10569, 0, "'m'"), -(10570, 0, "'i'"), -(10571, 0, "'l'"), -(10572, 0, "'a'"), -(10573, 0, "'r'"), -(10574, 0, "' '"), -(10575, 12, "''"), -(10574, 1, "''"), -(10567, 8, "''"), -(10561, 0, "'a'"), -(10562, 0, "'t'"), -(10563, 0, "' '"), -(10564, 0, "'t'"), -(10565, 0, "'h'"), -(10566, 0, "'e'"), -(10567, 0, "' '"), -(10568, 0, "'m'"), -(10569, 0, "'o'"), -(10570, 0, "'m'"), -(10571, 0, "'e'"), -(10572, 0, "'n'"), -(10573, 0, "'t'"), -(10574, 0, "' '"), -(10576, 0, "'''"), -(10577, 0, "'m'"), -(10578, 0, "' '"), -(10578, 1, "''"), -(10582, 0, "'i'"), -(10583, 0, "'n'"), -(10584, 0, "'g'"), -(10561, 88, "''"), -(10561, 0, "'I'"), -(10562, 0, "'''"), -(10563, 0, "'m'"), -(10564, 0, "' '"), -(10565, 0, "'n'"), -(10566, 0, "'o'"), -(10567, 0, "'t'"), -(10568, 0, "' '"), -(10569, 0, "'s'"), -(10570, 0, "'e'"), -(10571, 0, "'e'"), -(10572, 0, "'i'"), -(10573, 0, "'n'"), -(10574, 0, "'g'"), -(10575, 0, "' '"), -(10576, 0, "'m'"), -(10577, 0, "'u'"), -(10578, 0, "'c'"), -(10579, 0, "'h'"), -(10580, 0, "' '"), -(10581, 0, "'i'"), -(10582, 0, "'m'"), -(10583, 0, "'p'"), -(10584, 0, "'r'"), -(10585, 0, "'o'"), -(10586, 0, "'v'"), -(10587, 0, "'e'"), -(10588, 0, "'m'"), -(10589, 0, "'e'"), -(10590, 0, "'n'"), -(10591, 0, "'t'"), -(10592, 0, "' '"), -(10593, 0, "'u'"), -(10594, 0, "'s'"), -(10595, 0, "'i'"), -(10596, 0, "'n'"), -(10597, 0, "'g'"), -(10598, 0, "' '"), -(10599, 0, "'i'"), -(10600, 0, "'t'"), -(10601, 0, "' '"), -(10602, 0, "'y'"), -(10603, 0, "'e'"), -(10604, 0, "'t'"), -(10605, 0, "'.'"), -(10606, 0, "' '"), -(10607, 0, "'I'"), -(10608, 0, "' '"), -(10609, 0, "'s'"), -(10610, 0, "'u'"), -(10611, 0, "'s'"), -(10612, 0, "'p'"), -(10613, 0, "'e'"), -(10614, 0, "'c'"), -(10615, 0, "'t'"), -(10616, 0, "' '"), -(10617, 0, "'t'"), -(10618, 0, "'h'"), -(10619, 0, "'i'"), -(10620, 0, "'n'"), -(10620, 1, "''"), -(10619, 1, "''"), -(10619, 0, "'e'"), -(10620, 0, "'y'"), -(10621, 0, "' '"), -(10622, 0, "'h'"), -(10623, 0, "'a'"), -(10624, 0, "'v'"), -(10625, 0, "'e'"), -(10626, 0, "' '"), -(10627, 0, "'s'"), -(10628, 0, "'o'"), -(10629, 0, "'m'"), -(10630, 0, "'e'"), -(10631, 0, "' '"), -(10632, 0, "'k'"), -(10633, 0, "'i'"), -(10634, 0, "'n'"), -(10635, 0, "'k'"), -(10636, 0, "'s'"), -(10637, 0, "' '"), -(10638, 0, "'t'"), -(10639, 0, "'o'"), -(10640, 0, "' '"), -(10641, 0, "'w'"), -(10642, 0, "'o'"), -(10643, 0, "'r'"), -(10644, 0, "'k'"), -(10645, 0, "' '"), -(10646, 0, "'o'"), -(10647, 0, "'u'"), -(10648, 0, "'t'"), -(10649, 0, "' '"), -(10650, 0, "'b'"), -(10651, 0, "'e'"), -(10652, 0, "'f'"), -(10653, 0, "'o'"), -(10654, 0, "'r'"), -(10655, 0, "'e'"), -(10656, 0, "' '"), -(10657, 0, "'i'"), -(10658, 0, "'t'"), -(10659, 0, "'s'"), -(10660, 0, "' '"), -(10661, 0, "'r'"), -(10662, 0, "'e'"), -(10663, 0, "'d'"), -(10664, 0, "'a'"), -(10665, 0, "'d'"), -(10665, 1, "''"), -(10664, 1, "''"), -(10663, 1, "''"), -(10663, 0, "'a'"), -(10664, 0, "'d'"), -(10665, 0, "'y'"), -(10666, 0, "' '"), -(10667, 0, "'f'"), -(10668, 0, "'o'"), -(10669, 0, "'r'"), -(10670, 0, "' '"), -(10671, 0, "'r'"), -(10672, 0, "'e'"), -(10673, 0, "'l'"), -(10674, 0, "'e'"), -(10675, 0, "'a'"), -(10676, 0, "'s'"), -(10677, 0, "'e'"), -(10678, 0, "'.'"), -(10616, 5, "' '"), -(10617, 0, "'i'"), -(10618, 0, "'t'"), -(10619, 5, "' '"), -(10620, 0, "'h'"), -(10621, 0, "'a'"), -(10622, 0, "'s'"), -(10561, 44, "''"), -(10561, 0, "'I'"), -(10562, 0, "' '"), -(10563, 0, "'c'"), -(10564, 0, "'o'"), -(10565, 0, "'u'"), -(10566, 0, "'l'"), -(10567, 0, "'d'"), -(10568, 0, "'n'"), -(10569, 0, "'''"), -(10570, 0, "'t'"), -(10563, 8, "''"), -(10562, 1, "''"), -(10561, 1, "''"), -(10561, 0, "'i'"), -(10562, 0, "'t'"), -(10563, 0, "' '"), -(10564, 0, "'r'"), -(10565, 0, "'a'"), -(10566, 0, "'n'"), -(10567, 0, "' '"), -(10568, 0, "'s'"), -(10569, 0, "'l'"), -(10570, 0, "'o'"), -(10571, 0, "'w'"), -(10572, 0, "'e'"), -(10573, 0, "'r'"), -(10574, 0, "' '"), -(10575, 0, "'t'"), -(10576, 0, "'h'"), -(10577, 0, "'a'"), -(10578, 0, "'n'"), -(10579, 0, "' '"), -(10580, 0, "'t'"), -(10581, 0, "'h'"), -(10582, 0, "'a'"), -(10583, 0, "'t'"), -(10584, 0, "' '"), -(10585, 0, "'i'"), -(10586, 0, "'n'"), -(10587, 0, "' '"), -(10588, 0, "'m'"), -(10589, 0, "'y'"), -(10590, 0, "' '"), -(10591, 0, "'t'"), -(10592, 0, "'e'"), -(10593, 0, "'s'"), -(10594, 0, "'t'"), -(10595, 0, "'s'"), -(10568, 0, "'a'"), -(10569, 0, "' '"), -(10570, 0, "'f'"), -(10571, 0, "'a'"), -(10572, 0, "'i'"), -(10573, 0, "'r'"), -(10574, 0, "' '"), -(10575, 0, "'b'"), -(10576, 0, "'i'"), -(10577, 0, "'t'"), -(10578, 0, "' '"), -(10677, 1, "''"), -(10677, 0, "';'"), -(10678, 0, "' '"), -(10679, 0, "'a'"), -(10680, 0, "'n'"), -(10681, 0, "'d'"), -(10682, 0, "' '"), -(10683, 0, "'I'"), -(10684, 0, "'''"), -(10685, 0, "'l'"), -(10686, 0, "'l'"), -(10687, 0, "' '"), -(10688, 0, "'h'"), -(10689, 0, "'o'"), -(10690, 0, "'l'"), -(10691, 0, "'d'"), -(10692, 0, "' '"), -(10693, 0, "'o'"), -(10694, 0, "'f'"), -(10695, 0, "'f'"), -(10696, 0, "' '"), -(10697, 0, "'o'"), -(10698, 0, "'n'"), -(10699, 0, "' '"), -(10700, 0, "'a'"), -(10701, 0, "'d'"), -(10702, 0, "'d'"), -(10703, 0, "'i'"), -(10704, 0, "'n'"), -(10705, 0, "'g'"), -(10706, 0, "' '"), -(10707, 0, "'b'"), -(10708, 0, "'e'"), -(10709, 0, "'n'"), -(10710, 0, "'c'"), -(10711, 0, "'h'"), -(10712, 0, "'m'"), -(10713, 0, "'a'"), -(10714, 0, "'r'"), -(10715, 0, "'k'"), -(10716, 0, "'s'"), -(10717, 0, "' '"), -(10718, 0, "'a'"), -(10719, 0, "'t'"), -(10719, 1, "''"), -(10718, 1, "''"), -(10718, 0, "'u'"), -(10719, 0, "'n'"), -(10720, 0, "'t'"), -(10721, 0, "'i'"), -(10722, 0, "'l'"), -(10723, 0, "' '"), -(10724, 0, "'t'"), -(10725, 0, "'h'"), -(10726, 0, "'e'"), -(10727, 0, "'n'"), -(10728, 0, "'.'"), -(10561, 29, "'d'"), -(10561, 1, "''"), -(10561, 0, "'i'"), -(10562, 0, "'t'"), -(10563, 0, "' '"), -(10564, 0, "'d'"), -(10565, 0, "'i'"), -(10566, 0, "'d'"), -(10567, 0, "'n'"), -(10568, 0, "'''"), -(10569, 0, "'t'"), -(10570, 0, "' '"), -(10571, 0, "'r'"), -(10572, 0, "'u'"), -(10573, 0, "'n'"), -(10574, 0, "' '"), -(10575, 0, "'t'"), -(10576, 0, "'h'"), -(10577, 0, "'a'"), -(10578, 0, "'t'"), -(10579, 0, "' '"), -(10580, 0, "'f'"), -(10581, 0, "'a'"), -(10582, 0, "'s'"), -(10583, 0, "'t'"), -(10584, 5, "''"), -(10608, 2, "'t'"), -(10609, 0, "'h'"), -(10610, 0, "'e'"), -(10611, 0, "'y'"), -(10613, 4, "'h'"), -(10614, 0, "'a'"), -(10615, 0, "'v'"), -(10616, 0, "'e'"), -(10617, 0, "' '"), -(10669, 1, "''"), -(10669, 0, "','"), -(10689, 3, "''"), -(10695, 0, "' '"), -(10696, 0, "'t'"), -(10697, 0, "'h'"), -(10698, 0, "'e'"), -(10699, 0, "'m'"), -(10700, 0, "' '"), -(10701, 0, "'t'"), -(10702, 0, "'o'"), -(10703, 0, "' '"), -(10704, 0, "'m'"), -(10705, 0, "'y'"), -(10706, 0, "' '"), -(10707, 0, "'l'"), -(10708, 0, "'i'"), -(10709, 0, "'t'"), -(10710, 0, "'t'"), -(10711, 0, "'l'"), -(10712, 0, "'e'"), -(10713, 0, "' '"), -(10714, 0, "'t'"), -(10715, 0, "'a'"), -(10716, 0, "'b'"), -(10717, 0, "'l'"), -(10718, 0, "'e'"), -(10719, 11, "''"), -(10689, 31, "''"), -(10689, 0, "'a'"), -(10690, 0, "'d'"), -(10691, 0, "'d'"), -(10692, 0, "'i'"), -(10693, 0, "'n'"), -(10694, 0, "'g'"), -(10695, 0, "' '"), -(10696, 0, "'b'"), -(10696, 1, "''"), -(10696, 0, "'t'"), -(10697, 0, "'h'"), -(10698, 0, "'e'"), -(10699, 0, "'m'"), -(10700, 0, "' '"), -(10701, 0, "'t'"), -(10702, 0, "'o'"), -(10703, 0, "' '"), -(10704, 0, "'m'"), -(10705, 0, "'y'"), -(10706, 0, "' '"), -(10707, 0, "'t'"), -(10708, 0, "'a'"), -(10709, 0, "'b'"), -(10710, 0, "'l'"), -(10711, 0, "'e'"), -(10712, 0, "' '"), -(10707, 5, "'r'"), -(10708, 0, "'e'"), -(10709, 0, "'s'"), -(10710, 0, "'u'"), -(10711, 0, "'l'"), -(10712, 0, "'t'"), -(10713, 0, "'s'"), -(10714, 0, "' '"), -(10715, 0, "'t'"), -(10716, 0, "'a'"), -(10717, 0, "'b'"), -(10718, 0, "'l'"), -(10719, 0, "'e'"), -(10539, 0, "' '"), -(10540, 0, "'s'"), -(10541, 0, "'u'"), -(10542, 0, "'p'"), -(10543, 0, "'p'"), -(10544, 0, "'o'"), -(10545, 0, "'s'"), -(10546, 0, "'e'"), -(10547, 0, "'d'"), -(10548, 0, "' '"), -(10549, 0, "'t'"), -(10550, 0, "'o'"), -(10551, 0, "' '"), -(10552, 0, "'b'"), -(10553, 0, "'e'"), -(10554, 6, "''"), -(10564, 0, "' '"), -(10565, 0, "'o'"), -(10566, 0, "'r'"), -(10567, 0, "' '"), -(10568, 0, "'s'"), -(10569, 0, "'o'"), -(10663, 14, "''"), -(10670, 62, "''"), -(10671, 0, "'n'"), -(10672, 0, "'n'"), -(10673, 0, "'-'"), -(10674, 0, "'-'"), -(10675, 0, "'-'"), -(9733, 0, "' '"), -(9734, 0, "'A'"), -(9735, 0, "'u'"), -(9736, 0, "'t'"), -(9737, 0, "'o'"), -(9738, 0, "'m'"), -(9739, 0, "'e'"), -(9740, 0, "'r'"), -(9741, 0, "'g'"), -(9742, 0, "'e'"), -(9743, 0, "' '"), -(9744, 0, "'s'"), -(9745, 0, "'t'"), -(9746, 0, "'o'"), -(9747, 0, "'r'"), -(9748, 0, "'e'"), -(9749, 0, "'s'"), -(9750, 0, "' '"), -(9751, 0, "'s'"), -(9752, 0, "'t'"), -(9752, 1, "''"), -(9751, 1, "''"), -(9751, 0, "'t'"), -(9752, 0, "'o'"), -(9753, 0, "'o'"), -(9754, 0, "' '"), -(9755, 0, "'m'"), -(9756, 0, "'a'"), -(9757, 0, "'n'"), -(9758, 0, "'y'"), -(9759, 0, "' '"), -(9760, 0, "'o'"), -(9761, 0, "'b'"), -(9762, 0, "'j'"), -(9763, 0, "'e'"), -(9764, 0, "'c'"), -(9765, 0, "'t'"), -(9766, 0, "'s'"), -(9767, 0, "' '"), -(9767, 1, "''"), -(9744, 0, "'c'"), -(9745, 0, "'r'"), -(9746, 0, "'e'"), -(9747, 0, "'a'"), -(9748, 0, "'t'"), -(9749, 0, "'e'"), -(9750, 0, "'s'"), -(9751, 0, "' '"), -(9752, 0, "'a'"), -(9753, 0, "'n'"), -(9754, 0, "'d'"), -(9755, 0, "' '"), -(9779, 0, "'''"), -(9743, 0, "'''"), -(9744, 36, "'s'"), -(9745, 0, "' '"), -(9746, 0, "'d'"), -(9747, 0, "'a'"), -(9748, 0, "'t'"), -(9749, 0, "'a'"), -(9750, 0, "' '"), -(9751, 0, "'s'"), -(9752, 0, "'t'"), -(9753, 0, "'r'"), -(9754, 0, "'u'"), -(9755, 0, "'c'"), -(9756, 0, "'t'"), -(9757, 0, "'u'"), -(9758, 0, "'r'"), -(9759, 0, "'e'"), -(9760, 0, "' '"), -(9761, 0, "'i'"), -(9762, 0, "'s'"), -(9763, 0, "' '"), -(9764, 0, "'s'"), -(9765, 0, "'l'"), -(9766, 0, "'o'"), -(9767, 0, "'w'"), -(9768, 1, "''"), -(9768, 0, "'.'"), -(9746, 0, "'c'"), -(9747, 0, "'o'"), -(9748, 0, "'r'"), -(9749, 0, "'e'"), -(9750, 0, "' '"), -(9769, 60, "''"), -(9768, 1, "''"), -(9768, 0, "'n'"), -(9769, 0, "'''"), -(9770, 0, "'t'"), -(9771, 0, "' '"), -(9771, 1, "''"), -(9770, 1, "''"), -(9769, 1, "''"), -(9768, 1, "''"), -(9768, 0, "' '"), -(9769, 0, "'t'"), -(9770, 0, "'o'"), -(9771, 0, "'o'"), -(9772, 0, "' '"), -(9773, 0, "'l'"), -(9773, 1, "''"), -(9773, 0, "'s'"), -(9774, 0, "'l'"), -(9775, 0, "'o'"), -(9776, 0, "'w'"), -(9777, 0, "'.'"), -(9768, 4, "''"), -(9751, 0, "'t'"), -(9752, 0, "'r'"), -(9753, 0, "'e'"), -(9754, 0, "'e'"), -(9755, 0, "' '"), -(9756, 0, "'b'"), -(9757, 0, "'a'"), -(9758, 0, "'s'"), -(9759, 0, "'e'"), -(9760, 0, "'d'"), -(9761, 0, "' '"), -(9780, 0, "'h'"), -(9781, 0, "'u'"), -(9782, 0, "'g'"), -(9780, 3, "''"), -(9777, 3, "'g'"), -(9778, 0, "'e'"), -(9779, 0, "'t'"), -(9780, 0, "'s'"), -(9781, 0, "' '"), -(9782, 0, "'b'"), -(9783, 0, "'i'"), -(9784, 0, "'g'"), -(9785, 0, "' '"), -(9786, 0, "'a'"), -(9787, 0, "'n'"), -(9788, 0, "'d'"), -(9789, 0, "' '"), -(9794, 0, "' '"), -(9795, 0, "'a'"), -(9796, 0, "'s'"), -(9797, 0, "' '"), -(9798, 0, "'t'"), -(9799, 0, "'h'"), -(9800, 0, "'e'"), -(9801, 0, "' '"), -(9802, 0, "'d'"), -(9803, 0, "'o'"), -(9804, 0, "'c'"), -(9805, 0, "'u'"), -(9806, 0, "'m'"), -(9807, 0, "'e'"), -(9808, 0, "'n'"), -(9809, 0, "'t'"), -(9810, 0, "' '"), -(9811, 0, "'g'"), -(9812, 0, "'r'"), -(9813, 0, "'o'"), -(9814, 0, "'w'"), -(9815, 0, "'s'"), -(10701, 5, "''"), -(10741, 6, "''"), -(10740, 1, "''"), -(10740, 0, "' '"), -(10741, 0, "'t'"), -(10742, 0, "'u'"), -(10743, 0, "'n'"), -(10744, 0, "'i'"), -(10745, 0, "'n'"), -(10746, 0, "'g'"), -(10767, 9, "'t'"), -(10768, 0, "'h'"), -(10769, 0, "'e'"), -(10770, 0, "' '"), -(10771, 0, "'c'"), -(10772, 0, "'o'"), -(10773, 0, "'m'"), -(10774, 0, "'p'"), -(10775, 0, "'u'"), -(10776, 0, "'t'"), -(10777, 0, "'e'"), -(10778, 0, "'r'"), -(10779, 0, "' '"), -(10780, 0, "'r'"), -(10781, 0, "'u'"), -(10782, 0, "'n'"), -(10809, 4, "' '"), -(10810, 0, "'i'"), -(10811, 0, "'t'"), -(10812, 9, "''"), -(10783, 1, "''"), -(10782, 1, "''"), -(10781, 1, "''"), -(10780, 1, "''"), -(10955, 0, "' '"), -(10956, 0, "'s'"), -(10957, 0, "'m'"), -(10958, 0, "'a'"), -(10959, 0, "'l'"), -(10960, 0, "'l'"), -(11017, 25, "'I'"), -(13618, 0, "' '"), -(13619, 0, "'T'"), -(13620, 0, "'h'"), -(13621, 0, "'e'"), -(13622, 0, "' '"), -(13623, 0, "'y'"), -(13624, 0, "'j'"), -(13625, 0, "'s'"), -(13626, 0, "' '"), -(13627, 0, "'v'"), -(13628, 0, "'e'"), -(13629, 0, "'r'"), -(13630, 0, "'s'"), -(13631, 0, "'i'"), -(13632, 0, "'o'"), -(13633, 0, "'n'"), -(13634, 0, "' '"), -(13635, 0, "'i'"), -(13636, 0, "'s'"), -(13637, 0, "' '"), -(13638, 0, "'s'"), -(13639, 0, "'l'"), -(13640, 0, "'i'"), -(13641, 0, "'g'"), -(13642, 0, "'h'"), -(13643, 0, "'t'"), -(13644, 0, "'l'"), -(13645, 0, "'y'"), -(13646, 0, "' '"), -(13647, 0, "'d'"), -(13648, 0, "'i'"), -(13649, 0, "'f'"), -(13650, 0, "'f'"), -(13651, 0, "'e'"), -(13652, 0, "'r'"), -(13653, 0, "'e'"), -(13654, 0, "'n'"), -(13655, 0, "'t'"), -(13638, 18, "'a'"), -(13639, 0, "'l'"), -(13640, 0, "'m'"), -(13641, 0, "'o'"), -(13642, 0, "'s'"), -(13643, 0, "'t'"), -(13644, 0, "' '"), -(13645, 0, "'i'"), -(13646, 0, "'d'"), -(13647, 0, "'e'"), -(13648, 0, "'n'"), -(13649, 0, "'t'"), -(13650, 0, "'i'"), -(13651, 0, "'c'"), -(13652, 0, "'a'"), -(13653, 0, "'l'"), -(13654, 0, "'.'"), -(13638, 16, "''"), -(13638, 0, "'i'"), -(13639, 0, "'n'"), -(13640, 0, "' '"), -(13641, 0, "'t'"), -(13642, 0, "'h'"), -(13643, 0, "'e'"), -(13644, 0, "' '"), -(13645, 0, "'s'"), -(13646, 0, "'a'"), -(13647, 0, "'m'"), -(13648, 0, "'e'"), -(13649, 0, "' '"), -(13650, 0, "'f'"), -(13651, 0, "'i'"), -(13652, 0, "'l'"), -(13653, 0, "'e'"), -(13654, 0, "','"), -(13655, 0, "' '"), -(13656, 0, "'i'"), -(13657, 0, "'f'"), -(13658, 0, "' '"), -(13659, 0, "'y'"), -(13660, 0, "'o'"), -(13661, 0, "'u'"), -(13662, 0, "' '"), -(13663, 0, "'w'"), -(13664, 0, "'a'"), -(13665, 0, "'n'"), -(13666, 0, "'t'"), -(13667, 0, "' '"), -(13668, 0, "'t'"), -(13669, 0, "'o'"), -(13670, 0, "' '"), -(13671, 0, "'a'"), -(13672, 0, "'h'"), -(13672, 1, "''"), -(13671, 1, "''"), -(13671, 0, "'h'"), -(13672, 0, "'a'"), -(13673, 0, "'v'"), -(13674, 0, "'e'"), -(13675, 0, "' '"), -(13676, 0, "'a'"), -(13677, 0, "' '"), -(13678, 0, "'l'"), -(13679, 0, "'o'"), -(13680, 0, "'o'"), -(13681, 0, "'k'"), -(13682, 0, "'.'"), -(13683, 0, "' '"), -(13684, 0, "'T'"), -(13685, 0, "'h'"), -(13686, 0, "'e'"), -(13687, 0, "'y'"), -(13688, 0, "'''"), -(13689, 0, "'r'"), -(13690, 0, "'e'"), -(13691, 0, "' '"), -(13692, 0, "'a'"), -(13693, 0, "'l'"), -(13694, 0, "'m'"), -(13695, 0, "'o'"), -(13696, 0, "'s'"), -(13697, 0, "'t'"), -(13698, 0, "' '"), -(13699, 0, "'i'"), -(13700, 0, "'d'"), -(13701, 0, "'e'"), -(13702, 0, "'n'"), -(13703, 0, "'t'"), -(13704, 0, "'i'"), -(13705, 0, "'c'"), -(13706, 0, "'a'"), -(13699, 8, "'i'"), -(13700, 0, "'m'"), -(13701, 0, "'p'"), -(13702, 0, "'o'"), -(13703, 0, "'s'"), -(13704, 0, "'s'"), -(13705, 0, "'i'"), -(13706, 0, "'l'"), -(13706, 1, "''"), -(13706, 0, "'b'"), -(13707, 0, "'l'"), -(13708, 0, "'e'"), -(13709, 0, "' '"), -(13710, 0, "'t'"), -(13711, 0, "'o'"), -(13712, 0, "' '"), -(13713, 0, "'t'"), -(13714, 0, "'e'"), -(13715, 0, "'l'"), -(13716, 0, "'l'"), -(13717, 0, "' '"), -(13718, 0, "'a'"), -(13719, 0, "'p'"), -(13720, 0, "'a'"), -(13721, 0, "'r'"), -(13722, 0, "'t'"), -(13699, 24, "'i'"), -(13700, 0, "'d'"), -(13701, 0, "'e'"), -(13702, 0, "'n'"), -(13703, 0, "'t'"), -(13704, 0, "'i'"), -(13705, 0, "'c'"), -(13706, 0, "'a'"), -(13707, 0, "'l'"), -(13683, 0, "' '"), -(13684, 0, "'D'"), -(13685, 0, "'e'"), -(13686, 0, "'s'"), -(13687, 0, "'p'"), -(13688, 0, "'i'"), -(13689, 0, "'t'"), -(13690, 0, "'e'"), -(13691, 0, "' '"), -(13692, 0, "'b'"), -(13693, 0, "'e'"), -(13694, 0, "'i'"), -(13695, 0, "'n'"), -(13696, 0, "'g'"), -(13697, 0, "' '"), -(13698, 0, "'v'"), -(13699, 0, "'e'"), -(13700, 0, "'r'"), -(13701, 0, "'y'"), -(13702, 0, "' '"), -(13703, 0, "'d'"), -(13704, 0, "'i'"), -(13705, 0, "'f'"), -(13706, 0, "'f'"), -(13707, 0, "'i'"), -(13707, 1, "''"), -(13707, 0, "'e'"), -(13708, 0, "'r'"), -(13709, 0, "'e'"), -(13710, 0, "'n'"), -(13711, 0, "'t'"), -(13712, 0, "' '"), -(13713, 0, "'p'"), -(13714, 0, "'a'"), -(13715, 0, "'p'"), -(13716, 0, "'e'"), -(13717, 0, "'r'"), -(13718, 0, "'s'"), -(13719, 0, "','"), -(13720, 0, "' '"), -(13721, 0, "'t'"), -(13722, 0, "'h'"), -(13723, 0, "'e'"), -(13724, 0, "' '"), -(13725, 0, "'i'"), -(13726, 0, "'m'"), -(13727, 0, "'p'"), -(13728, 0, "'l'"), -(13729, 0, "'e'"), -(13730, 0, "'m'"), -(13731, 0, "'e'"), -(13732, 0, "'n'"), -(13733, 0, "'t'"), -(13734, 0, "'a'"), -(13735, 0, "'t'"), -(13736, 0, "'i'"), -(13737, 0, "'o'"), -(13738, 0, "'n'"), -(13739, 0, "'s'"), -(13740, 8, "''"), -(13740, 0, "' '"), -(13741, 0, "'a'"), -(13742, 0, "'r'"), -(13743, 0, "'e'"), -(13725, 15, "'s'"), -(13726, 0, "'e'"), -(13727, 0, "'m'"), -(13728, 0, "'a'"), -(13729, 0, "'n'"), -(13730, 0, "'t'"), -(13731, 0, "'i'"), -(13732, 0, "'c'"), -(13733, 0, "'s'"), -(13734, 0, "' '"), -(13735, 0, "'a'"), -(13736, 0, "'r'"), -(13737, 0, "'e'"), -(13737, 1, "''"), -(13736, 1, "''"), -(13735, 1, "''"), -(13734, 1, "''"), -(13635, 0, "'o'"), -(13636, 0, "'f'"), -(13637, 0, "' '"), -(13638, 0, "'t'"), -(13639, 0, "'h'"), -(13640, 0, "'i'"), -(13641, 0, "'s'"), -(13642, 0, "' '"), -(13643, 0, "'f'"), -(13644, 0, "'u'"), -(13645, 0, "'n'"), -(13646, 0, "'c'"), -(13647, 0, "'t'"), -(13648, 0, "'i'"), -(13649, 0, "'o'"), -(13650, 0, "'n'"), -(13651, 0, "' '"), -(13742, 9, "'l'"), -(13743, 0, "'i'"), -(13744, 0, "'g'"), -(13744, 1, "''"), -(13743, 1, "''"), -(13743, 0, "'o'"), -(13744, 0, "'g'"), -(13745, 0, "'i'"), -(13746, 0, "'c'"), -(13747, 0, "' '"), -(13748, 0, "'i'"), -(13749, 0, "'s'"), -(13750, 4, "''"), -(13747, 0, "' '"), -(13748, 0, "'f'"), -(13749, 0, "'o'"), -(13750, 0, "'r'"), -(13751, 0, "' '"), -(13752, 0, "'i'"), -(13753, 0, "'n'"), -(13754, 0, "'s'"), -(13755, 0, "'e'"), -(13756, 0, "'r'"), -(13757, 0, "'t'"), -(13758, 0, "'i'"), -(13759, 0, "'n'"), -(13760, 0, "'g'"), -(14335, 0, "'t'"), -(14336, 0, "'h'"), -(14337, 0, "'e'"), -(14338, 0, "' '"), -(14374, 0, "' '"), -(14375, 0, "'c'"), -(14376, 0, "'o'"), -(14377, 0, "'d'"), -(14378, 0, "'e'"), -(14379, 0, "'b'"), -(14380, 0, "'a'"), -(14381, 0, "'s'"), -(14382, 0, "'e'"), -(14383, 0, "'s'"), -(14375, 9, "'c'"), -(14376, 0, "'o'"), -(14377, 0, "'d'"), -(14378, 0, "'e'"), -(14651, 8, "'T'"), -(14652, 0, "'h'"), -(14653, 0, "'e'"), -(14654, 0, "'i'"), -(14655, 0, "'r'"), -(14656, 0, "' '"), -(14695, 0, "' '"), -(14696, 0, "'('"), -(14697, 0, "'A'"), -(14698, 0, "'n'"), -(14699, 0, "'d'"), -(14700, 0, "' '"), -(14701, 0, "'i'"), -(14702, 0, "'t'"), -(14703, 0, "' '"), -(14704, 0, "'w'"), -(14705, 0, "'i'"), -(14706, 0, "'l'"), -(14707, 0, "'l'"), -(14708, 0, "' '"), -(14709, 0, "'b'"), -(14710, 0, "'e'"), -(14711, 0, "' '"), -(14712, 0, "'u'"), -(14713, 0, "'n'"), -(14714, 0, "'t'"), -(14715, 0, "'i'"), -(14716, 0, "'l'"), -(14717, 0, "' '"), -(14712, 6, "'e'"), -(14713, 0, "'h'"), -(14713, 1, "''"), -(14712, 1, "''"), -(14712, 0, "'w'"), -(14713, 0, "'h'"), -(14714, 0, "'e'"), -(14715, 0, "'n'"), -(14716, 0, "'e'"), -(14717, 0, "'v'"), -(14718, 0, "'e'"), -(14719, 0, "'r'"), -(14720, 0, "' '"), -(14721, 0, "'u'"), -(14722, 0, "'s'"), -(14723, 0, "'e'"), -(14724, 0, "'r'"), -(14725, 0, "'s'"), -(14726, 0, "' '"), -(14727, 0, "'d'"), -(14728, 0, "'o'"), -(14729, 0, "'n'"), -(14730, 0, "'''"), -(14731, 0, "'t'"), -(14695, 37, "''"), -(14697, 0, "'M'"), -(14698, 0, "'o'"), -(14699, 0, "'d'"), -(14700, 0, "'e'"), -(14700, 1, "''"), -(14699, 1, "''"), -(14698, 1, "''"), -(14698, 0, "'y'"), -(14699, 0, "' '"), -(14700, 0, "'c'"), -(14701, 0, "'o'"), -(14702, 0, "'d'"), -(14703, 0, "'e'"), -(14704, 0, "' '"), -(14705, 0, "'i'"), -(14706, 0, "'s'"), -(14707, 0, "' '"), -(14704, 4, "'b'"), -(14705, 0, "'a'"), -(14706, 0, "'s'"), -(14707, 0, "'e'"), -(14708, 0, "' '"), -(14709, 0, "'o'"), -(14710, 0, "'s'"), -(14711, 0, "' '"), -(14712, 0, "'o'"), -(14713, 0, "'b'"), -(14713, 1, "''"), -(14712, 1, "''"), -(14711, 1, "''"), -(14710, 1, "''"), -(14709, 1, "''"), -(14709, 0, "'i'"), -(14710, 0, "'s'"), -(14711, 0, "' '"), -(14712, 0, "'o'"), -(14713, 0, "'b'"), -(14714, 0, "'v'"), -(14715, 0, "'i'"), -(14716, 0, "'o'"), -(14717, 0, "'u'"), -(14718, 0, "'s'"), -(14719, 0, "'y'"), -(14719, 1, "''"), -(14719, 0, "'l'"), -(14720, 0, "'y'"), -(14721, 0, "' '"), -(14722, 31, "''"), -(14722, 0, "'v'"), -(14723, 0, "'e'"), -(14724, 0, "'r'"), -(14725, 0, "'y'"), -(14726, 0, "' '"), -(14727, 0, "'d'"), -(14728, 0, "'i'"), -(14729, 0, "'f'"), -(14730, 0, "'f'"), -(14731, 0, "'e'"), -(14732, 0, "'r'"), -(14733, 0, "'e'"), -(14734, 0, "'n'"), -(14735, 0, "'t'"), -(14736, 0, "' '"), -(14737, 0, "'f'"), -(14738, 0, "'r'"), -(14739, 0, "'o'"), -(14740, 0, "'m'"), -(14741, 0, "' '"), -(14742, 0, "'a'"), -(14743, 0, "'u'"), -(14744, 0, "'t'"), -(14745, 0, "'o'"), -(14746, 0, "'m'"), -(14747, 0, "'e'"), -(14748, 0, "'r'"), -(14749, 0, "'g'"), -(14750, 0, "'e'"), -(14751, 0, "'.'"), -(14753, 1, "''"), -(14753, 0, "'F'"), -(14765, 26, "' '"), -(14766, 0, "'I'"), -(14767, 0, "'''"), -(14768, 0, "'m'"), -(14769, 0, "' '"), -(14770, 0, "'n'"), -(14771, 0, "'o'"), -(14772, 0, "'t'"), -(14773, 0, "' '"), -(14774, 0, "'u'"), -(14775, 0, "'s'"), -(14776, 0, "'i'"), -(14777, 0, "'n'"), -(14778, 0, "'g'"), -(14779, 4, "''"), -(14712, 25, "''"), -(14711, 1, "''"), -(14710, 1, "''"), -(14709, 1, "''"), -(14709, 0, "'h'"), -(14710, 0, "'a'"), -(14711, 0, "'s'"), -(14712, 0, "' '"), -(14713, 0, "'l'"), -(14714, 0, "'o'"), -(14715, 0, "'t'"), -(14716, 0, "'s'"), -(14717, 0, "' '"), -(14718, 0, "'o'"), -(14719, 0, "'f'"), -(14720, 0, "' '"), -(14721, 0, "'d'"), -(14722, 0, "'i'"), -(14723, 0, "'f'"), -(14724, 0, "'f'"), -(14725, 0, "'e'"), -(14726, 0, "'r'"), -(14727, 0, "'e'"), -(14728, 0, "'n'"), -(14729, 0, "'c'"), -(14730, 0, "'e'"), -(14731, 0, "'s'"), -(14732, 0, "' '"), -(14737, 0, "' '"), -(14738, 0, "'t'"), -(14739, 0, "'h'"), -(14740, 0, "'e'"), -(14741, 0, "' '"), -(14742, 0, "'r'"), -(14743, 0, "'e'"), -(14744, 0, "'a'"), -(14745, 0, "'l'"), -(14756, 0, "' '"), -(14757, 0, "'l'"), -(14758, 0, "'i'"), -(14759, 0, "'b'"), -(14760, 0, "'r'"), -(14761, 0, "'a'"), -(14762, 0, "'r'"), -(14763, 0, "'y'"), -(14769, 9, "' '"), -(14770, 0, "'i'"), -(14771, 0, "'n'"), -(14772, 0, "'s'"), -(14773, 0, "'t'"), -(14774, 0, "'a'"), -(14775, 0, "'n'"), -(14776, 0, "'c'"), -(14777, 0, "'e'"), -(14778, 0, "','"), -(14769, 10, "' example,'"), -(14756, 8, "''"), -(14741, 5, "''"), -(14737, 4, "''"), -(14732, 1, "''"), -(14720, 12, "''"), -(14717, 3, "''"), -(14712, 5, "''"), -(14709, 3, "''"), -(14709, 0, "'is obviously very different '"), -(14779, 0, "' use'"), -(14773, 6, "''"), -(14769, 4, "''"), -(14765, 4, "' my implementation doesn't'"), -(14753, 1, "''"), -(14753, 0, "'f'"), -(14741, 11, "''"), -(14736, 5, "''"), -(14726, 10, "''"), -(14722, 4, "''"), -(14722, 0, "'Its not exactly like-for-like -'"), -(14721, 1, "''"), -(14719, 2, "''"), -(14719, 0, "'y'"), -(14711, 9, "''"), -(14709, 2, "''"), -(14709, 0, "'os ob'"), -(14711, 3, "''"), -(14708, 3, "''"), -(14704, 4, "' is '"), -(14707, 1, "''"), -(14704, 3, "''"), -(14699, 5, "''"), -(14698, 1, "''"), -(14698, 0, "'ode'"), -(14697, 4, "''"), -(14697, 88, "''"), -(15120, 0, "'n'"), -(15121, 0, "'B'"), -(15122, 0, "'u'"), -(15123, 0, "'t'"), -(15124, 0, "' '"), -(15125, 0, "'a'"), -(15126, 0, "' '"), -(15127, 0, "'l'"), -(15128, 0, "'o'"), -(15129, 0, "'t'"), -(15130, 0, "' '"), -(15131, 0, "'o'"), -(15132, 0, "'f'"), -(15133, 0, "' '"), -(15134, 0, "'t'"), -(15135, 0, "'h'"), -(15136, 0, "'a'"), -(15137, 0, "'t'"), -(15138, 0, "' '"), -(15139, 0, "'d'"), -(15140, 0, "'i'"), -(15141, 0, "'f'"), -(15142, 0, "'f'"), -(15143, 0, "'e'"), -(15144, 0, "'r'"), -(15145, 0, "'e'"), -(15146, 0, "'n'"), -(15147, 0, "'c'"), -(15148, 0, "'e'"), -(15149, 0, "' '"), -(15150, 0, "'r'"), -(15151, 0, "'e'"), -(15152, 0, "'a'"), -(15153, 0, "'l'"), -(15154, 0, "'l'"), -(15155, 0, "'y'"), -(15156, 0, "' '"), -(15157, 0, "'i'"), -(15158, 0, "'s'"), -(15159, 0, "' '"), -(15160, 0, "'i'"), -(15161, 0, "'m'"), -(15162, 0, "'m'"), -(15163, 0, "'u'"), -(15164, 0, "'t'"), -(15165, 0, "'a'"), -(15166, 0, "'b'"), -(15167, 0, "'l'"), -(15168, 0, "'e'"), -(15169, 0, "'j'"), -(15170, 0, "'s'"), -(15171, 0, "'.'"), -(15172, 0, "'n'"), -(15121, 0, "'('"), -(15121, 1, "''"), -(15121, 0, "'('"), -(15122, 0, "'B'"), -(15123, 0, "'u'"), -(15124, 0, "'t'"), -(15125, 0, "' '"), -(15126, 0, "'b'"), -(15127, 0, "'e'"), -(15128, 0, "'a'"), -(15129, 0, "'r'"), -(15130, 0, "' '"), -(15131, 0, "'i'"), -(15132, 0, "'n'"), -(15133, 0, "' '"), -(15134, 0, "'m'"), -(15135, 0, "'i'"), -(15136, 0, "'n'"), -(15137, 0, "'d'"), -(15138, 0, "' '"), -(15139, 0, "'t'"), -(15140, 0, "'h'"), -(15141, 0, "'e'"), -(15142, 0, "'r'"), -(15143, 0, "'e'"), -(15144, 0, "'''"), -(15145, 0, "'s'"), -(15146, 0, "' '"), -(15147, 0, "'o'"), -(15148, 0, "'n'"), -(15149, 0, "'l'"), -(15150, 0, "'y'"), -(15151, 0, "' '"), -(15152, 0, "'s'"), -(15153, 0, "'o'"), -(15154, 0, "' '"), -(15155, 0, "'m'"), -(15156, 0, "'u'"), -(15157, 0, "'c'"), -(15158, 0, "'h'"), -(15159, 0, "' '"), -(15160, 0, "'w'"), -(15161, 0, "'e'"), -(15162, 0, "' '"), -(15163, 0, "'c'"), -(15164, 0, "'a'"), -(15165, 0, "'n'"), -(15166, 0, "' '"), -(15167, 0, "'c'"), -(15168, 0, "'o'"), -(15169, 0, "'n'"), -(15170, 0, "'c'"), -(15171, 0, "'l'"), -(15172, 0, "'u'"), -(15173, 0, "'d'"), -(15174, 0, "'e'"), -(15175, 0, "' '"), -(15176, 0, "'f'"), -(15177, 0, "'r'"), -(15178, 0, "'o'"), -(15179, 0, "'m'"), -(15180, 0, "' '"), -(15181, 0, "'t'"), -(15182, 0, "'h'"), -(15183, 0, "'i'"), -(15184, 0, "'s'"), -(15185, 0, "'.'"), -(15186, 0, "' '"), -(15186, 1, "''"), -(15185, 1, "''"), -(15185, 0, "' '"), -(15186, 0, "'a'"), -(15187, 0, "'b'"), -(15188, 0, "'o'"), -(15189, 0, "'u'"), -(15190, 0, "'t'"), -(15191, 0, "' '"), -(15192, 0, "'t'"), -(15193, 0, "'h'"), -(15194, 0, "'e'"), -(15195, 0, "' '"), -(15196, 0, "'d'"), -(15197, 0, "'a'"), -(15198, 0, "'t'"), -(15199, 0, "'a'"), -(15121, 79, "''"), -(15121, 0, "'I'"), -(15122, 0, "' '"), -(15123, 0, "'w'"), -(15124, 0, "'i'"), -(15125, 0, "'s'"), -(15126, 0, "'h'"), -(15127, 0, "' '"), -(15128, 0, "'I'"), -(15129, 0, "' '"), -(15130, 0, "'c'"), -(15131, 0, "'o'"), -(15132, 0, "'u'"), -(15133, 0, "'l'"), -(15134, 0, "'d'"), -(15135, 0, "' '"), -(15136, 0, "'t'"), -(15137, 0, "'a'"), -(15138, 0, "'k'"), -(15139, 0, "'e'"), -(15140, 0, "' '"), -(15141, 0, "'f'"), -(15142, 0, "'u'"), -(15143, 0, "'l'"), -(15144, 0, "'l'"), -(15145, 0, "' '"), -(15146, 0, "'c'"), -(15147, 0, "' '"), -(15136, 11, "'g'"), -(15137, 0, "'i'"), -(15138, 0, "'v'"), -(15139, 0, "'e'"), -(15140, 0, "' '"), -(15141, 0, "'K'"), -(15142, 0, "'e'"), -(15143, 0, "'v'"), -(15144, 0, "'i'"), -(15145, 0, "'n'"), -(15146, 0, "'''"), -(15147, 0, "'s'"), -(15148, 0, "' '"), -(15149, 0, "'a'"), -(15150, 0, "'p'"), -(15151, 0, "'p'"), -(15152, 0, "'r'"), -(15153, 0, "'o'"), -(15154, 0, "'a'"), -(15155, 0, "'c'"), -(15156, 0, "'h'"), -(15135, 22, "' '"), -(15136, 0, "'a'"), -(15137, 0, "'t'"), -(15138, 0, "'t'"), -(15139, 0, "'r'"), -(15140, 0, "'i'"), -(15141, 0, "'b'"), -(15142, 0, "'u'"), -(15143, 0, "'t'"), -(15144, 0, "'e'"), -(15145, 0, "' '"), -(15146, 0, "'a'"), -(15147, 0, "'l'"), -(15148, 0, "'l'"), -(15149, 0, "' '"), -(15150, 0, "'o'"), -(15151, 0, "'f'"), -(15152, 0, "' '"), -(15153, 0, "'t'"), -(15154, 0, "'h'"), -(15155, 0, "'a'"), -(15156, 0, "'t'"), -(15157, 0, "' '"), -(15158, 0, "'t'"), -(15159, 0, "'o'"), -(15160, 0, "' '"), -(15161, 0, "'t'"), -(15162, 0, "'h'"), -(15163, 0, "'i'"), -(15164, 0, "'s'"), -(15165, 0, "' '"), -(15166, 0, "'s'"), -(15167, 0, "'w'"), -(15168, 0, "'e'"), -(15169, 0, "'e'"), -(15170, 0, "'t'"), -(15171, 0, "' '"), -(15172, 0, "'d'"), -(15173, 0, "'a'"), -(15174, 0, "'t'"), -(15175, 0, "'a'"), -(15176, 0, "' '"), -(15177, 0, "'s'"), -(15178, 0, "'t'"), -(15179, 0, "'r'"), -(15180, 0, "'u'"), -(15181, 0, "'c'"), -(15182, 0, "'t'"), -(15183, 0, "'u'"), -(15184, 0, "'r'"), -(15185, 0, "'e'"), -(15186, 0, "'.'"), -(15187, 0, "' '"), -(15187, 1, "''"), -(15238, 0, "' '"), -(15239, 0, "'g'"), -(15240, 0, "'u'"), -(15241, 0, "'m'"), -(15242, 0, "'m'"), -(15243, 0, "'i'"), -(15244, 0, "'n'"), -(15245, 0, "'g'"), -(15246, 0, "' '"), -(15247, 0, "'u'"), -(15248, 0, "'p'"), -(15249, 0, "' '"), -(15250, 0, "'t'"), -(15251, 0, "'h'"), -(15252, 0, "' '"), -(15253, 0, "'e'"), -(15254, 0, "'w'"), -(15255, 0, "'o'"), -(15256, 0, "'r'"), -(15257, 0, "'k'"), -(15258, 0, "'e'"), -(15258, 1, "''"), -(15252, 6, "'e'"), -(15253, 0, "' '"), -(15254, 0, "'w'"), -(15255, 0, "'o'"), -(15256, 0, "'r'"), -(15257, 0, "'k'"), -(15258, 0, "'s'"), -(15205, 0, "' '"), -(15206, 0, "'p'"), -(15207, 0, "'e'"), -(15208, 0, "'r'"), -(15209, 0, "'f'"), -(15210, 0, "'o'"), -(15211, 0, "'r'"), -(15212, 0, "'m'"), -(15213, 0, "'a'"), -(15214, 0, "'n'"), -(15215, 0, "'c'"), -(15216, 0, "'e'"), -(15271, 0, "' '"), -(15271, 1, "''"), -(15205, 12, "''"), -(15259, 0, "' '"), -(15260, 0, "'f'"), -(15261, 0, "'o'"), -(15262, 0, "'r'"), -(15263, 0, "' '"), -(15264, 0, "'a'"), -(15265, 0, "'u'"), -(15266, 0, "'t'"), -(15267, 0, "'o'"), -(15268, 0, "'m'"), -(15269, 0, "'e'"), -(15270, 0, "'r'"), -(15271, 0, "'g'"), -(15272, 0, "'e'"), -(14770, 0, "','"), -(14771, 0, "' '"), -(14772, 0, "'a'"), -(14773, 0, "'n'"), -(14774, 0, "'d'"), -(14775, 0, "' '"), -(14776, 0, "'3'"), -(14777, 0, "'0'"), -(14778, 0, "'x'"), -(14779, 0, "' '"), -(14780, 0, "'m'"), -(14781, 0, "'o'"), -(14782, 0, "'r'"), -(14783, 0, "'e'"), -(14784, 15, "''"), -(15156, 0, "' '"), -(15157, 0, "'d'"), -(15158, 0, "'i'"), -(15159, 0, "'f'"), -(15160, 0, "'f'"), -(15161, 0, "'e'"), -(15162, 0, "'e'"), -(15162, 1, "''"), -(15162, 0, "'r'"), -(15163, 0, "'e'"), -(15164, 0, "'n'"), -(15165, 0, "'c'"), -(15166, 0, "'e'"), -(15175, 0, "' '"), -(15176, 0, "'s'"), -(15177, 0, "'u'"), -(15178, 0, "'p'"), -(15179, 0, "'e'"), -(15180, 0, "'r'"), -(15182, 5, "'s'"), -(15183, 0, "'i'"), -(15184, 0, "'m'"), -(15185, 0, "'p'"), -(15186, 0, "'l'"), -(15187, 0, "'e'"), -(15176, 12, "'s'"), -(15177, 0, "'w'"), -(15178, 0, "'e'"), -(15179, 0, "'e'"), -(15180, 0, "'t'"), -(15181, 0, "' '"), -(15182, 0, "'a'"), -(15183, 0, "'n'"), -(15184, 0, "'d'"), -(15185, 0, "' '"), -(15186, 0, "'s'"), -(15187, 0, "'i'"), -(15188, 0, "'m'"), -(15189, 0, "'p'"), -(15190, 0, "'l'"), -(15191, 0, "'e'"), -(15260, 24, "''"), -(15259, 1, "''"), -(15259, 0, "' '"), -(15260, 0, "'m'"), -(15261, 0, "'a'"), -(15262, 0, "'k'"), -(15263, 0, "'i'"), -(15264, 0, "'n'"), -(15265, 0, "'g'"), -(15267, 0, "'e'"), -(15268, 0, "'v'"), -(15269, 0, "'e'"), -(15270, 0, "'r'"), -(15271, 0, "'y'"), -(15272, 0, "'t'"), -(15273, 0, "'h'"), -(15274, 0, "'i'"), -(15275, 0, "'n'"), -(15276, 0, "'g'"), -(15277, 0, "' '"), -(15287, 0, "' '"), -(15288, 0, "'d'"), -(15289, 0, "'o'"), -(15290, 0, "'e'"), -(15291, 0, "'s'"), -(15292, 0, "' '"), -(15293, 0, "'s'"), -(15294, 0, "'l'"), -(15295, 0, "'o'"), -(15296, 0, "'w'"), -(15297, 0, "'e'"), -(15298, 0, "'r'"), -(15298, 1, "''"), -(15297, 1, "''"), -(15287, 10, "''"), -(15267, 11, "''"), -(15276, 0, "' '"), -(15277, 0, "'s'"), -(15278, 0, "'l'"), -(15279, 0, "'o'"), -(15280, 0, "'w'"), -(15267, 0, "'a'"), -(15268, 0, "'l'"), -(15269, 0, "'l'"), -(15270, 0, "' '"), -(15271, 0, "'o'"), -(15272, 0, "'f'"), -(15273, 0, "' '"), -(15283, 0, "'''"), -(15284, 0, "'s'"), -(15285, 0, "' '"), -(15286, 0, "'c'"), -(15287, 0, "'o'"), -(15288, 0, "'d'"), -(15289, 0, "'e'"), -(15295, 0, "'d'"), -(15296, 0, "'o'"), -(15297, 0, "'w'"), -(15297, 1, "''"), -(15296, 1, "''"), -(15295, 1, "''"), -(15295, 0, "' '"), -(15296, 0, "'d'"), -(15297, 0, "'o'"), -(15298, 0, "'w'"), -(15299, 0, "'n'"), -(15299, 1, "''"), -(15298, 1, "''"), -(15297, 1, "''"), -(15296, 1, "''"), -(15295, 1, "''"), -(15145, 0, "'*'"), -(15149, 0, "'*'"), -(15249, 0, "' '"), -(15250, 0, "'j'"), -(15251, 0, "'u'"), -(15252, 0, "'s'"), -(15253, 0, "'t'"), -(15240, 7, "''"), -(15240, 3, "''"), -(15257, 35, "''"), -(15257, 0, "'s'"), -(15258, 0, "'l'"), -(15259, 0, "'o'"), -(15260, 0, "'w'"), -(15257, 0, "'b'"), -(15258, 0, "'e'"), -(15259, 0, "'i'"), -(15260, 0, "'n'"), -(15261, 0, "'g'"), -(15262, 0, "' '"), -(15240, 4, "'i'"), -(15241, 0, "'s'"), -(15242, 0, "' '"), -(15243, 0, "'p'"), -(15244, 0, "'r'"), -(15245, 0, "'o'"), -(15246, 0, "'b'"), -(15247, 0, "'a'"), -(15248, 0, "'b'"), -(15249, 0, "'l'"), -(15250, 0, "'y'"), -(15251, 0, "' '"), -(15252, 0, "'a'"), -(15253, 0, "'t'"), -(15254, 0, "'t'"), -(15255, 0, "'r'"), -(15256, 0, "'i'"), -(15257, 0, "'b'"), -(15258, 0, "'u'"), -(15259, 0, "'t'"), -(15260, 0, "'a'"), -(15261, 0, "'t'"), -(15261, 1, "''"), -(15260, 1, "''"), -(15260, 0, "'a'"), -(15261, 0, "'b'"), -(15262, 0, "'l'"), -(15263, 0, "'e'"), -(15264, 0, "' '"), -(15265, 0, "'t'"), -(15266, 0, "'o'"), -(15279, 11, "' '"), -(15280, 0, "'a'"), -(15281, 0, "'l'"), -(15282, 0, "'o'"), -(15283, 0, "'n'"), -(15284, 0, "'e'"), -(15240, 27, "'c'"), -(15241, 0, "'a'"), -(15242, 0, "'n'"), -(15243, 0, "' '"), -(15244, 0, "'p'"), -(15245, 0, "'r'"), -(15246, 0, "'o'"), -(15247, 0, "'b'"), -(15248, 0, "'a'"), -(15249, 0, "'b'"), -(15250, 0, "'l'"), -(15251, 0, "'y'"), -(15244, 8, "''"), -(15240, 4, "'i'"), -(15241, 0, "'s'"), -(15242, 0, "' '"), -(15243, 0, "'j'"), -(15244, 0, "'u'"), -(15245, 0, "'s'"), -(15246, 0, "'t'"), -(15247, 18, "' '"), -(15248, 0, "'a'"), -(15249, 0, "'u'"), -(15250, 0, "'t'"), -(15251, 0, "'o'"), -(15252, 0, "'m'"), -(15253, 0, "'e'"), -(15254, 0, "'r'"), -(15255, 0, "'g'"), -(15256, 0, "'e'"), -(15257, 0, "'''"), -(15258, 0, "'s'"), -(15259, 0, "' '"), -(15260, 0, "'l'"), -(15261, 0, "'a'"), -(15262, 0, "'c'"), -(15263, 0, "'k'"), -(15264, 0, "' '"), -(15265, 0, "'o'"), -(15266, 0, "'f'"), -(15267, 0, "' '"), -(15260, 8, "' '"), -(15261, 0, "'i'"), -(15262, 0, "'m'"), -(15262, 1, "''"), -(15261, 1, "''"), -(15261, 0, "'i'"), -(15262, 0, "'m'"), -(15263, 0, "'p'"), -(15264, 0, "'l'"), -(15265, 0, "'e'"), -(15266, 0, "'m'"), -(15267, 0, "'e'"), -(15268, 0, "'n'"), -(15269, 0, "'t'"), -(15270, 0, "'a'"), -(15271, 0, "'t'"), -(15272, 0, "'i'"), -(15273, 0, "'o'"), -(15274, 0, "'n'"), -(15275, 0, "'s'"), -(15275, 1, "''"), -(15260, 1, "''"), -(15274, 0, "' '"), -(15275, 0, "'('"), -(15276, 0, "'a'"), -(15277, 0, "'n'"), -(15278, 0, "'d'"), -(15279, 0, "' '"), -(15280, 0, "'i'"), -(15281, 0, "'m'"), -(15282, 0, "'m'"), -(15283, 0, "'u'"), -(15284, 0, "'t'"), -(15285, 0, "'a'"), -(15286, 0, "'b'"), -(15287, 0, "'l'"), -(15288, 0, "'e'"), -(15289, 0, "'j'"), -(15290, 0, "'s'"), -(15291, 0, "')'"), -(15224, 4, "'t'"), -(15225, 0, "'h'"), -(15226, 0, "'e'"), -(15238, 0, "' '"), -(15239, 0, "'h'"), -(15240, 0, "'e'"), -(15241, 0, "'r'"), -(15242, 0, "'e'"), -(15247, 5, "''"), -(15247, 0, "'p'"), -(15248, 0, "'r'"), -(15249, 0, "'o'"), -(15250, 0, "'b'"), -(15251, 0, "'a'"), -(15252, 0, "'b'"), -(15253, 0, "'l'"), -(15254, 0, "'y'"), -(15255, 0, "' '"), -(15256, 0, "'j'"), -(15257, 0, "'u'"), -(15258, 0, "'s'"), -(15259, 0, "'t'"), -(15260, 0, "' '"), -(15261, 0, "'q'"), -(15262, 0, "'u'"), -(15263, 0, "'i'"), -(15264, 0, "'r'"), -(15265, 0, "'k'"), -(15266, 0, "'s'"), -(15267, 0, "' '"), -(15268, 0, "'o'"), -(15269, 0, "'f'"), -(15270, 0, "' '"), -(15297, 0, "'.'"), -(15300, 0, "'O'"), -(15301, 0, "'h'"), -(15302, 0, "','"), -(15303, 0, "' '"), -(15260, 10, "''"), -(15260, 0, "' '"), -(15261, 0, "'d'"), -(15262, 0, "'u'"), -(15263, 0, "'e'"), -(15264, 0, "' '"), -(15265, 0, "'t'"), -(15266, 0, "'o'"), -(15267, 0, "' '"), -(15267, 1, "''"), -(15247, 9, "''"), -(15247, 0, "'p'"), -(15248, 0, "'r'"), -(15249, 0, "'o'"), -(15250, 0, "'b'"), -(15251, 0, "'a'"), -(15252, 0, "'b'"), -(15253, 0, "'l'"), -(15254, 0, "' '"), -(15254, 1, "''"), -(15254, 0, "'y'"), -(15255, 0, "' '"), -(15260, 0, "' '"), -(15261, 0, "'l'"), -(15262, 0, "'i'"), -(15263, 0, "'t'"), -(15264, 0, "'t'"), -(15265, 0, "'l'"), -(15266, 0, "'e'"), -(15267, 0, "' '"), -(15268, 0, "'m'"), -(15269, 0, "'i'"), -(15270, 0, "'c'"), -(15271, 0, "'r'"), -(15272, 0, "'o'"), -(15273, 0, "'o'"), -(15274, 0, "'p'"), -(15275, 0, "'t'"), -(15276, 0, "'i'"), -(15277, 0, "'m'"), -(15278, 0, "'i'"), -(15279, 0, "'z'"), -(15280, 0, "'a'"), -(15281, 0, "'t'"), -(15282, 0, "'i'"), -(15283, 0, "'o'"), -(15284, 0, "'n'"), -(15285, 0, "'s'"), -(15286, 34, "''"), -(15288, 22, "''"), -(15288, 0, "'M'"), -(15289, 0, "'y'"), -(15290, 0, "' '"), -(15291, 0, "'c'"), -(15292, 0, "'o'"), -(15293, 0, "'d'"), -(15294, 0, "'e'"), -(15295, 0, "' '"), -(15296, 0, "'e'"), -(15297, 0, "'x'"), -(15297, 1, "''"), -(15296, 1, "''"), -(15295, 1, "''"), -(15294, 1, "''"), -(15293, 1, "''"), -(15292, 1, "''"), -(15291, 1, "''"), -(15291, 0, "'i'"), -(15292, 0, "'m'"), -(15293, 0, "'p'"), -(15294, 0, "'l'"), -(15295, 0, "'e'"), -(15296, 0, "'m'"), -(15297, 0, "'e'"), -(15298, 0, "'n'"), -(15299, 0, "'t'"), -(15300, 0, "'a'"), -(15301, 0, "'t'"), -(15302, 0, "'i'"), -(15303, 0, "'o'"), -(15304, 0, "'n'"), -(15305, 0, "' '"), -(15306, 0, "'e'"), -(15307, 0, "'x'"), -(15308, 0, "'e'"), -(15309, 0, "'c'"), -(15310, 0, "'u'"), -(15311, 0, "'t'"), -(15312, 0, "'e'"), -(15313, 0, "'s'"), -(15314, 0, "' '"), -(15315, 0, "'l'"), -(15316, 0, "'e'"), -(15317, 0, "'s'"), -(15318, 0, "'s'"), -(15319, 0, "' '"), -(15320, 0, "'c'"), -(15321, 0, "'o'"), -(15322, 0, "'d'"), -(15323, 0, "'e'"), -(15324, 0, "','"), -(15325, 0, "' '"), -(15326, 0, "'a'"), -(15327, 0, "'n'"), -(15328, 0, "'d'"), -(15329, 0, "' '"), -(15288, 42, "''"), -(15287, 1, "''"), -(15256, 30, "'f'"), -(15257, 0, "'r'"), -(15258, 0, "'o'"), -(15259, 0, "'m'"), -(15260, 0, "' '"), -(15261, 0, "'i'"), -(15262, 0, "'m'"), -(15263, 0, "'m'"), -(15264, 0, "'u'"), -(15265, 0, "'t'"), -(15266, 0, "'a'"), -(15267, 0, "'b'"), -(15268, 0, "'l'"), -(15269, 0, "'e'"), -(15270, 0, "'j'"), -(15271, 0, "'s'"), -(15256, 4, "'j'"), -(15257, 0, "'u'"), -(15258, 0, "'s'"), -(15259, 0, "'t'"), -(15272, 0, "' '"), -(15273, 0, "'g'"), -(15274, 0, "'u'"), -(15275, 0, "'m'"), -(15276, 0, "'m'"), -(15277, 0, "'i'"), -(15278, 0, "'n'"), -(15279, 0, "'g'"), -(15280, 0, "' '"), -(15281, 0, "'t'"), -(15282, 0, "'h'"), -(15283, 0, "'i'"), -(15284, 0, "'n'"), -(15285, 0, "'g'"), -(15286, 0, "'s'"), -(15287, 0, "' '"), -(15288, 0, "'u'"), -(15289, 0, "'p'"), -(15316, 0, "'N'"), -(15317, 0, "'o'"), -(15318, 0, "'w'"), -(15319, 0, "' '"), -(15320, 0, "'t'"), -(15321, 0, "'h'"), -(15322, 0, "'a'"), -(15323, 0, "'t'"), -(15324, 0, "' '"), -(15325, 1, "''"), -(15325, 0, "'w'"), -(15337, 3, "'a'"), -(15338, 0, "' '"), -(15339, 0, "'f'"), -(15340, 0, "'a'"), -(15341, 0, "'s'"), -(15342, 0, "'t'"), -(15343, 8, "''"), -(15339, 0, "'c'"), -(15340, 0, "'l'"), -(15341, 0, "'e'"), -(15342, 0, "'a'"), -(15343, 0, "'n'"), -(15344, 0, "' '"), -(15345, 0, "'a'"), -(15346, 0, "'n'"), -(15347, 0, "'d'"), -(15348, 0, "' '"), -(15316, 10, "'W'"), -(15355, 0, "' '"), -(15355, 1, "''"), -(15366, 0, "' '"), -(15367, 0, "'n'"), -(15368, 0, "'o'"), -(15369, 0, "'w'"), -(20491, 0, "' '"), -(20492, 0, "'I'"), -(20493, 0, "'f'"), -(20494, 0, "' '"), -(20495, 0, "'t'"), -(20496, 0, "'h'"), -(20497, 0, "'e'"), -(20498, 0, "'r'"), -(20499, 0, "'e'"), -(20500, 0, "' '"), -(20501, 0, "'w'"), -(20502, 0, "'a'"), -(20503, 0, "'s'"), -(20504, 0, "' '"), -(20505, 0, "'a'"), -(20506, 0, "' '"), -(20507, 0, "'p'"), -(20508, 0, "'r'"), -(20509, 0, "'o'"), -(20510, 0, "'g'"), -(20511, 0, "'r'"), -(20512, 0, "'a'"), -(20513, 0, "'m'"), -(20514, 0, "'m'"), -(20515, 0, "'i'"), -(20516, 0, "'n'"), -(20517, 0, "'g'"), -(20518, 0, "' '"), -(20507, 12, "'p'"), -(20508, 0, "'r'"), -(20509, 0, "'o'"), -(20510, 0, "'g'"), -(20511, 0, "'r'"), -(20512, 0, "'a'"), -(20513, 0, "'m'"), -(20514, 0, "'m'"), -(20515, 0, "'e'"), -(20516, 0, "'r'"), -(20517, 0, "' '"), -(20518, 0, "'v'"), -(20519, 0, "'e'"), -(20520, 0, "'r'"), -(20521, 0, "'s'"), -(20522, 0, "'i'"), -(20523, 0, "'o'"), -(20524, 0, "'n'"), -(20525, 0, "' '"), -(20526, 0, "'o'"), -(20527, 0, "'f'"), -(20528, 0, "' '"), -(20529, 0, "'s'"), -(20530, 0, "'p'"), -(20531, 0, "'e'"), -(20532, 0, "'e'"), -(20533, 0, "'d'"), -(20534, 0, "'r'"), -(20535, 0, "'u'"), -(20536, 0, "'n'"), -(20537, 0, "'n'"), -(20538, 0, "'i'"), -(20539, 0, "'n'"), -(20540, 0, "'g'"), -(20529, 0, "'t'"), -(20530, 0, "'h'"), -(20531, 0, "'e'"), -(20532, 0, "' '"), -(20545, 0, "' '"), -(20546, 0, "'c'"), -(20547, 0, "'o'"), -(20548, 0, "'m'"), -(20549, 0, "'m'"), -(20550, 0, "'u'"), -(20551, 0, "'n'"), -(20552, 0, "'i'"), -(20553, 0, "'t'"), -(20554, 0, "'y'"), -(20555, 0, "','"), -(20556, 0, "' '"), -(20557, 0, "'K'"), -(20558, 0, "'e'"), -(20559, 0, "'v'"), -(20560, 0, "'i'"), -(20561, 0, "'n'"), -(20562, 0, "' '"), -(20563, 0, "'w'"), -(20564, 0, "'o'"), -(20565, 0, "'u'"), -(20566, 0, "'l'"), -(20567, 0, "'d'"), -(20568, 0, "' '"), -(20569, 0, "'b'"), -(20570, 0, "'e'"), -(20571, 0, "' '"), -(20572, 0, "'t'"), -(20573, 0, "'h'"), -(20574, 0, "'e'"), -(20575, 0, "'r'"), -(20576, 0, "'e'"), -(20577, 0, "' '"), -(20578, 0, "'w'"), -(20579, 0, "'i'"), -(20580, 0, "'t'"), -(20581, 0, "'h'"), -(20582, 0, "' '"), -(20583, 0, "'b'"), -(20584, 0, "'e'"), -(20585, 0, "'l'"), -(20586, 0, "'l'"), -(20587, 0, "'s'"), -(20588, 0, "' '"), -(20589, 0, "'o'"), -(20590, 0, "'n'"), -(20591, 0, "'.'"), -(20557, 34, "'t'"), -(20558, 0, "'h'"), -(20559, 0, "'e'"), -(20560, 0, "'y'"), -(20561, 0, "' '"), -(20562, 0, "'w'"), -(20563, 0, "'o'"), -(20564, 0, "'u'"), -(20565, 0, "'l'"), -(20566, 0, "'d'"), -(20567, 0, "' '"), -(20568, 0, "'a'"), -(20569, 0, "'d'"), -(20570, 0, "'o'"), -(20571, 0, "'r'"), -(20572, 0, "'e'"), -(20573, 0, "' '"), -(20574, 0, "'K'"), -(20575, 0, "'E'"), -(20576, 0, "'v'"), -(20576, 1, "''"), -(20575, 1, "''"), -(20575, 0, "'e'"), -(20576, 0, "'v'"), -(20577, 0, "'i'"), -(20578, 0, "'n'"), -(20405, 4, "'h'"), -(20406, 0, "'e'"), -(20407, 0, "' '"), -(20408, 0, "'r'"), -(20409, 0, "'e'"), -(20410, 0, "'w'"), -(20411, 0, "'r'"), -(20412, 0, "'o'"), -(20413, 0, "'t'"), -(20414, 0, "'e'"), -(20428, 20, "''"), -(20408, 0, "'w'"), -(20409, 0, "'r'"), -(20410, 0, "'o'"), -(20411, 0, "'t'"), -(20412, 0, "'e'"), -(20413, 0, "' '"), -(20414, 0, "'a'"), -(20415, 0, "'n'"), -(20416, 0, "'d'"), -(20417, 0, "' '"), -(20474, 4, "''"), -(20474, 0, "' run'"), -(20488, 14, "'I'"), -(20489, 0, "'f'"), -(20490, 0, "' '"), -(20491, 0, "'t'"), -(20492, 0, "'h'"), -(20493, 0, "'e'"), -(20494, 0, "'r'"), -(20495, 0, "'e'"), -(20496, 0, "' '"), -(20497, 0, "'w'"), -(20498, 0, "'a'"), -(20499, 0, "'s'"), -(20500, 0, "' '"), -(20501, 0, "'a'"), -(22875, 0, "'w'"), -(22876, 0, "'o'"), -(22877, 0, "'u'"), -(22878, 0, "'l'"), -(22879, 0, "'d'"), -(22880, 0, "' '"), -(22885, 1, "''"), -(22885, 0, "' '"), -(22886, 0, "'y'"), -(22887, 0, "'o'"), -(22888, 0, "'u'"), -(22875, 0, "'l'"), -(22876, 0, "'i'"), -(22877, 0, "'k'"), -(22878, 0, "'e'"), -(22879, 0, "' '"), -(22880, 0, "'t'"), -(22881, 0, "'h'"), -(22882, 0, "'a'"), -(22883, 0, "'t'"), -(22884, 0, "' '"), -(22904, 22, "''"), -(22987, 16, "'a'"), -(22988, 0, "'s'"), -(22989, 0, "' '"), -(22990, 0, "'m'"), -(22991, 0, "'u'"), -(22992, 0, "'c'"), -(22993, 0, "'h'"), -(22994, 0, "' '"), -(22995, 0, "'a'"), -(22996, 0, "'s'"), -(22997, 0, "' '"), -(22998, 0, "'p'"), -(22999, 0, "'o'"), -(23000, 0, "'s'"), -(23001, 0, "'s'"), -(23002, 0, "'i'"), -(23003, 0, "'b'"), -(23004, 0, "'l'"), -(23005, 0, "'e'"), -(23006, 0, "' '"), -(23007, 0, "'w'"), -(23008, 0, "'i'"), -(23009, 0, "'t'"), -(23010, 0, "'h'"), -(23011, 0, "' '"), -(23012, 0, "'e'"), -(23013, 0, "'a'"), -(23014, 0, "'c'"), -(23015, 0, "'h'"), -(23016, 0, "' '"), -(23017, 0, "'r'"), -(23018, 0, "'a'"), -(23019, 0, "'e'"), -(23019, 1, "''"), -(23018, 1, "''"), -(23018, 0, "'e'"), -(23019, 0, "'a'"), -(23020, 0, "'d'"), -(23021, 0, "' '"), -(23022, 0, "'t'"), -(23023, 0, "'o'"), -(23024, 0, "' '"), -(23025, 0, "'m'"), -(23026, 0, "'a'"), -(23027, 0, "'i'"), -(23028, 0, "'n'"), -(23029, 0, "' '"), -(23030, 0, "'m'"), -(23031, 0, "'a'"), -(23031, 1, "''"), -(23031, 0, "'e'"), -(23032, 0, "'m'"), -(23033, 0, "'o'"), -(23034, 0, "'r'"), -(23035, 0, "'y'"), -(23273, 0, "' '"), -(23274, 0, "'I'"), -(23275, 0, "' '"), -(23276, 0, "'w'"), -(23277, 0, "'a'"), -(23278, 0, "'n'"), -(23279, 0, "'n'"), -(23280, 0, "'t'"), -(23280, 1, "''"), -(23279, 1, "''"), -(23279, 0, "'t'"), -(23291, 6, "'t'"), -(23292, 0, "'o'"), -(23329, 0, "' '"), -(23342, 0, "' '"), -(23343, 0, "'i'"), -(23344, 0, "'t'"), -(23356, 7, "''"), -(23355, 1, "''"), -(23359, 6, "''"), -(23358, 1, "''"), -(23768, 22, "''"), -(23744, 24, "'b'"), -(23745, 0, "'e'"), -(23746, 0, "'e'"), -(23747, 0, "'n'"), -(23748, 0, "' '"), -(23749, 0, "'a'"), -(23750, 0, "'b'"), -(23751, 0, "'l'"), -(23752, 0, "'e'"), -(23753, 0, "' '"), -(23754, 0, "'t'"), -(23755, 0, "'o'"), -(23756, 0, "' '"), -(23757, 0, "'i'"), -(23758, 0, "'m'"), -(23759, 0, "'p'"), -(23760, 0, "'r'"), -(23761, 0, "'o'"), -(23762, 0, "'v'"), -(23763, 0, "'e'"), -(23764, 0, "' '"), -(23765, 0, "'i'"), -(23766, 0, "'t'"), -(23767, 0, "'s'"), -(23768, 0, "' '"), -(23769, 0, "'p'"), -(23770, 0, "'e'"), -(23771, 0, "'r'"), -(23772, 0, "'f'"), -(23773, 0, "'o'"), -(23774, 0, "'r'"), -(23775, 0, "'m'"), -(23776, 0, "'a'"), -(23777, 0, "'n'"), -(23778, 0, "'c'"), -(23779, 0, "'e'"), -(23736, 0, "'s'"), -(23737, 33, "''"), -(23737, 0, "' '"), -(23749, 0, "' '"), -(23750, 0, "'a'"), -(23751, 0, "'h'"), -(23752, 0, "'s'"), -(23752, 1, "''"), -(23751, 1, "''"), -(23750, 1, "''"), -(23750, 0, "'h'"), -(23751, 0, "'a'"), -(23752, 0, "'s'"), -(23753, 0, "'n'"), -(23754, 0, "'''"), -(23755, 0, "'t'"), -(23756, 0, "' '"), -(23757, 0, "'i'"), -(23758, 0, "'m'"), -(23759, 0, "'p'"), -(23760, 0, "'r'"), -(23761, 0, "'o'"), -(23762, 0, "'v'"), -(23763, 0, "'e'"), -(23764, 0, "'d'"), -(23851, 0, "' '"), -(23852, 0, "'W'"), -(23853, 0, "'e'"), -(23854, 0, "' '"), -(23854, 1, "''"), -(23853, 1, "''"), -(23852, 1, "''"), -(23851, 1, "''"), -(23766, 1, "''"), -(23766, 0, "'n'"), -(23767, 0, "'n'"), -(23851, 1, "''"), -(23851, 0, "' '"), -(23852, 0, "'t'"), -(23853, 0, "'h'"), -(23854, 0, "'e'"), -(23855, 0, "'s'"), -(23856, 0, "'e'"), -(23857, 0, "' '"), -(23858, 0, "'d'"), -(23859, 0, "'a'"), -(23860, 0, "'y'"), -(23861, 0, "'s'"), -(23862, 0, "'.'"), -(23863, 0, "' '"), -(23864, 0, "'W'"), -(23865, 0, "'e'"), -(23866, 0, "' '"), -(23867, 0, "'c'"), -(23868, 0, "'a'"), -(23869, 0, "'n'"), -(23870, 0, "' '"), -(23871, 0, "'d'"), -(23871, 1, "''"), -(23871, 0, "'c'"), -(23872, 0, "'o'"), -(23873, 0, "'e'"), -(23874, 0, "' '"), -(23875, 0, "'t'"), -(23875, 1, "''"), -(23874, 1, "''"), -(23873, 1, "''"), -(23873, 0, "'d'"), -(23874, 0, "'e'"), -(23875, 0, "' '"), -(23876, 0, "'t'"), -(23877, 0, "'h'"), -(23878, 0, "'i'"), -(23879, 0, "'s'"), -(23880, 0, "' '"), -(23881, 0, "'i'"), -(23882, 0, "'s'"), -(23883, 0, "' '"), -(23883, 1, "''"), -(23882, 1, "''"), -(23882, 0, "'n'"), -(23883, 0, "' '"), -(23884, 0, "'a'"), -(23885, 0, "'n'"), -(23886, 0, "'y'"), -(23887, 0, "'t'"), -(23888, 0, "'h'"), -(23889, 0, "'i'"), -(23890, 0, "'n'"), -(23891, 0, "'g'"), -(23892, 0, "'.'"), -(23892, 0, "'*'"), -(23884, 0, "'*'"), -(23881, 2, "'u'"), -(23882, 0, "'p'"), -(23883, 0, "' '"), -(23884, 0, "'i'"), -(23885, 0, "'n'"), -(24065, 0, "' '"), -(24066, 0, "'a'"), -(24067, 0, "'l'"), -(24068, 0, "'s'"), -(24069, 0, "'o'"), -(24069, 1, "''"), -(24068, 1, "''"), -(24068, 0, "'m'"), -(24069, 0, "'o'"), -(24070, 0, "'s'"), -(24071, 0, "'t'"), -(24060, 13, "'i'"), -(24061, 0, "'s'"), -(24062, 0, "' '"), -(24063, 0, "'a'"), -(24064, 0, "'l'"), -(24065, 0, "'m'"), -(24066, 0, "'o'"), -(24067, 0, "'s'"), -(24068, 0, "' '"), -(24069, 0, "'t'"), -(24070, 0, "'i'"), -(24070, 1, "''"), -(24069, 1, "''"), -(24068, 1, "''"), -(24068, 0, "'t'"), -(24069, 0, "' '"), -(24070, 0, "'i'"), -(24071, 0, "'d'"), -(24072, 0, "'e'"), -(24073, 0, "'n'"), -(24074, 0, "'t'"), -(24075, 0, "'i'"), -(24076, 0, "'c'"), -(24077, 0, "'a'"), -(24078, 0, "'l'"), -(24079, 0, "' '"), -(24080, 0, "'t'"), -(24081, 0, "'o'"), -(24082, 11, "''"), -(24258, 1, "''"), -(24258, 0, "','"), -(24259, 0, "' '"), -(24260, 0, "'w'"), -(24260, 1, "''"), -(24260, 0, "'s'"), -(24261, 0, "'o'"), -(24262, 0, "' '"), -(24263, 0, "'w'"), -(24264, 0, "'e'"), -(24265, 0, "' '"), -(24266, 0, "'c'"), -(24267, 0, "'a'"), -(24268, 0, "'n'"), -(24269, 0, "' '"), -(24270, 0, "'q'"), -(24271, 0, "'u'"), -(24272, 0, "'i'"), -(24270, 3, "'f'"), -(24271, 0, "'i'"), -(24272, 0, "'n'"), -(24273, 0, "'d'"), -(24274, 0, "' '"), -(24275, 0, "'a'"), -(24276, 0, "'n'"), -(24277, 0, "'y'"), -(24278, 0, "'t'"), -(24279, 0, "'h'"), -(24280, 0, "'i'"), -(24281, 0, "'n'"), -(24282, 0, "'g'"), -(24283, 0, "' '"), -(24258, 26, "''"), -(24258, 0, "'.'"), -(24172, 4, "'E'"), -(24204, 3, "''"), -(24210, 0, "'s'"), -(24629, 0, "' '"), -(24630, 0, "'W'"), -(24631, 0, "'e'"), -(24632, 0, "' '"), -(24633, 0, "'u'"), -(24634, 0, "'p'"), -(24635, 0, "'d'"), -(24636, 0, "'a'"), -(24637, 0, "'t'"), -(24638, 0, "'e'"), -(24639, 0, "' '"), -(24640, 0, "'a'"), -(24641, 0, "' '"), -(24642, 0, "'l'"), -(24643, 0, "'e'"), -(24644, 0, "'a'"), -(24645, 0, "'f'"), -(24646, 0, "','"), -(24647, 0, "' '"), -(24648, 0, "'t'"), -(24649, 0, "'h'"), -(24650, 0, "'e'"), -(24651, 0, "'n'"), -(24652, 0, "' '"), -(24653, 0, "'i'"), -(24654, 0, "'t'"), -(24655, 0, "'s'"), -(24656, 0, "' '"), -(24657, 0, "'p'"), -(24658, 0, "'a'"), -(24659, 0, "'r'"), -(24660, 0, "'e'"), -(24661, 0, "'n'"), -(24662, 0, "'t'"), -(24663, 0, "','"), -(24664, 0, "' '"), -(24665, 0, "'a'"), -(24666, 0, "'n'"), -(24667, 0, "'d'"), -(24668, 0, "' '"), -(24669, 0, "'i'"), -(24670, 0, "'t'"), -(24671, 0, "'s'"), -(24672, 0, "' '"), -(24673, 0, "'p'"), -(24674, 0, "'a'"), -(24675, 0, "'r'"), -(24676, 0, "'e'"), -(24677, 0, "'n'"), -(24678, 0, "'t'"), -(24679, 0, "','"), -(24680, 0, "' '"), -(24681, 0, "'a'"), -(24682, 0, "'l'"), -(24683, 0, "'l'"), -(24684, 0, "' '"), -(24685, 0, "'t'"), -(24686, 0, "'h'"), -(24687, 0, "'e'"), -(24688, 0, "' '"), -(24689, 0, "'w'"), -(24690, 0, "'a'"), -(24691, 0, "'y'"), -(24692, 0, "' '"), -(24693, 0, "'u'"), -(24694, 0, "'p'"), -(24695, 0, "' '"), -(24696, 0, "'t'"), -(24697, 0, "'o'"), -(24698, 0, "' '"), -(24699, 0, "'t'"), -(24700, 0, "'h'"), -(24701, 0, "' '"), -(24702, 0, "'e'"), -(24703, 0, "'r'"), -(24704, 0, "'o'"), -(24705, 0, "'o'"), -(24705, 1, "''"), -(24704, 1, "''"), -(24703, 1, "''"), -(24702, 1, "''"), -(24701, 1, "''"), -(24701, 0, "'e'"), -(24702, 0, "' '"), -(24703, 0, "'r'"), -(24704, 0, "'o'"), -(24705, 0, "'o'"), -(24706, 0, "'t'"), -(24707, 22, "''"), -(24708, 0, "' '"), -(24709, 0, "'A'"), -(24709, 1, "''"), -(24709, 0, "'S'"), -(24710, 0, "'o'"), -(24712, 1, "''"), -(24712, 0, "'a'"), -(24653, 0, "'t'"), -(24654, 0, "'h'"), -(24655, 0, "'e'"), -(24655, 1, "''"), -(24654, 1, "''"), -(24653, 1, "''"), -(24653, 0, "'t'"), -(24654, 0, "'h'"), -(24655, 0, "'e'"), -(24656, 0, "' '"), -(24657, 0, "'c'"), -(24658, 0, "'h'"), -(24659, 0, "'a'"), -(24660, 0, "'r'"), -(24661, 0, "'a'"), -(24662, 0, "'c'"), -(24663, 0, "'t'"), -(24664, 0, "'e'"), -(24665, 0, "'r'"), -(24666, 0, "' '"), -(24667, 0, "'o'"), -(24668, 0, "'u'"), -(24669, 0, "'n'"), -(24669, 1, "''"), -(24668, 1, "''"), -(24667, 1, "''"), -(24667, 0, "'c'"), -(24668, 0, "'o'"), -(24669, 0, "'u'"), -(24670, 0, "'n'"), -(24671, 0, "'t'"), -(24672, 0, "'s'"), -(24673, 0, "' '"), -(24674, 0, "'a'"), -(24675, 0, "'t'"), -(24676, 0, "' '"), -(24742, 0, "' '"), -(24743, 0, "'a'"), -(24744, 0, "'f'"), -(24745, 0, "'t'"), -(24746, 0, "'e'"), -(24747, 0, "'r'"), -(24763, 3, "''"), -(24762, 1, "''"), -(24837, 37, "''"), -(24837, 0, "'W'"), -(24837, 1, "''"), -(24837, 0, "'It doesn't come into play here, but w'"), -(24837, 0, "'W'"), -(24838, 0, "'e'"), -(24839, 0, "' '"), -(24840, 0, "'n'"), -(24841, 0, "'e'"), -(24842, 0, "'v'"), -(24843, 0, "'e'"), -(24844, 0, "'r'"), -(24845, 0, "' '"), -(24846, 0, "'m'"), -(24847, 0, "'e'"), -(24848, 0, "'r'"), -(24849, 0, "'g'"), -(24850, 0, "'e'"), -(24851, 0, "' '"), -(24852, 0, "'e'"), -(24853, 0, "'d'"), -(24854, 0, "'i'"), -(24855, 0, "'t'"), -(24856, 0, "'s'"), -(24857, 0, "' '"), -(24858, 0, "'f'"), -(24859, 0, "'r'"), -(24860, 0, "'o'"), -(24861, 0, "'m'"), -(24862, 0, "' '"), -(24863, 0, "'r'"), -(24864, 0, "'e'"), -(24865, 0, "'m'"), -(24866, 0, "'o'"), -(24867, 0, "'t'"), -(24868, 0, "'e'"), -(24869, 0, "' '"), -(24870, 0, "'p'"), -(24871, 0, "'e'"), -(24872, 0, "'e'"), -(24873, 0, "'r'"), -(24874, 0, "'s'"), -(24875, 0, "' '"), -(24876, 0, "'i'"), -(24877, 0, "'n'"), -(24878, 0, "' '"), -(24879, 0, "'t'"), -(24880, 0, "'h'"), -(24881, 0, "'i'"), -(24882, 0, "'s'"), -(24883, 0, "' '"), -(24884, 0, "'t'"), -(24885, 0, "'e'"), -(24886, 0, "'s'"), -(24887, 0, "'t'"), -(24888, 0, "','"), -(24889, 35, "''"), -(24889, 0, "' '"), -(24890, 0, "'b'"), -(24891, 0, "'u'"), -(24892, 0, "'t'"), -(24893, 0, "' '"), -(24894, 0, "'I'"), -(24895, 0, "' '"), -(24896, 0, "'m'"), -(24897, 0, "'a'"), -(24898, 0, "'d'"), -(24899, 0, "'e'"), -(24900, 0, "' '"), -(24901, 0, "'t'"), -(24902, 0, "'h'"), -(24903, 0, "'a'"), -(24904, 0, "'t'"), -(24905, 0, "' '"), -(24906, 0, "'f'"), -(24907, 0, "'a'"), -(24908, 0, "'s'"), -(24909, 0, "'t'"), -(24910, 0, "' '"), -(24911, 0, "'t'"), -(24912, 0, "'o'"), -(24913, 0, "'o'"), -(24914, 0, "' '"), -(24915, 0, "'a'"), -(24916, 0, "'n'"), -(24917, 0, "'y'"), -(24918, 0, "'w'"), -(24919, 0, "'a'"), -(24920, 0, "'y'"), -(24921, 0, "'.'"), -(24923, 1, "''"), -(24923, 0, "'W'"), -(24989, 0, "'e'"), -(24990, 0, "'g'"), -(24991, 0, "' '"), -(25049, 20, "'s'"), -(25050, 0, "'e'"), -(25051, 0, "'a'"), -(25052, 0, "'r'"), -(25053, 0, "'c'"), -(25054, 0, "'h'"), -(25055, 0, "' '"), -(25056, 0, "'b'"), -(25057, 0, "'y'"), -(25058, 0, "' '"), -(25059, 0, "'I'"), -(25060, 0, "'D'"), -(25061, 0, "'.'"), -(25039, 1, "''"), -(25038, 1, "''"), -(25037, 1, "''"), -(25037, 0, "'l'"), -(25038, 0, "'i'"), -(25039, 0, "'t'"), -(25040, 0, "'t'"), -(25041, 0, "'l'"), -(25042, 0, "'e'"), -(25043, 0, "' '"), -(25060, 0, "'t'"), -(25061, 0, "'h'"), -(25062, 0, "'e'"), -(25063, 0, "' '"), -(25064, 0, "'b'"), -(25065, 0, "'-'"), -(25066, 0, "'t'"), -(25067, 0, "'r'"), -(25068, 0, "'e'"), -(25069, 0, "'e'"), -(25070, 0, "' '"), -(25154, 20, "'I'"), -(25155, 0, "'t'"), -(25156, 0, "' '"), -(25157, 0, "'m'"), -(25158, 0, "'i'"), -(25159, 0, "'g'"), -(25160, 0, "'h'"), -(25161, 0, "'t'"), -(25162, 0, "' '"), -(25163, 0, "'h'"), -(25164, 0, "'e'"), -(25165, 0, "'l'"), -(25166, 0, "'p'"), -(25167, 0, "' '"), -(25168, 0, "'-'"), -(25171, 0, "' '"), -(25172, 0, "'j'"), -(25173, 0, "'u'"), -(25174, 0, "'s'"), -(25175, 0, "'t'"), -(25602, 0, "' '"), -(25603, 0, "'I'"), -(25604, 0, "' '"), -(25605, 0, "'p'"), -(25606, 0, "'i'"), -(25607, 0, "'c'"), -(25608, 0, "'k'"), -(25609, 0, "'e'"), -(25610, 0, "'d'"), -(25611, 0, "' '"), -(25612, 0, "'3'"), -(25613, 0, "'2'"), -(25614, 0, "' '"), -(25615, 0, "'b'"), -(25616, 0, "'y'"), -(25617, 0, "' '"), -(25618, 0, "'t'"), -(25619, 0, "'r'"), -(25620, 0, "'y'"), -(25621, 0, "'i'"), -(25622, 0, "'n'"), -(25623, 0, "'g'"), -(25624, 0, "' '"), -(25625, 0, "'a'"), -(25626, 0, "' '"), -(25627, 0, "'f'"), -(25628, 0, "'e'"), -(25629, 0, "'w'"), -(25630, 0, "' '"), -(25631, 0, "'n'"), -(25632, 0, "'u'"), -(25633, 0, "'m'"), -(25634, 0, "'b'"), -(25635, 0, "'e'"), -(25636, 0, "'r'"), -(25637, 0, "'s'"), -(25631, 0, "'d'"), -(25632, 0, "'i'"), -(25633, 0, "'f'"), -(25634, 0, "'f'"), -(25635, 0, "'e'"), -(25636, 0, "'r'"), -(25637, 0, "'e'"), -(25638, 0, "'n'"), -(25639, 0, "'t'"), -(25640, 0, "' '"), -(25641, 0, "'n'"), -(25642, 0, "'u'"), -(25643, 0, "'m'"), -(25644, 0, "'b'"), -(25645, 0, "'e'"), -(25646, 0, "'r'"), -(25647, 0, "'s'"), -(25648, 0, "' '"), -(25649, 0, "'a'"), -(25650, 0, "'n'"), -(25651, 0, "'d'"), -(25652, 0, "' '"), -(25653, 0, "'b'"), -(25654, 0, "'e'"), -(25655, 0, "'n'"), -(25656, 0, "'c'"), -(25657, 0, "'h'"), -(25658, 0, "'m'"), -(25659, 0, "'a'"), -(25660, 0, "'r'"), -(25661, 0, "'k'"), -(25662, 0, "'i'"), -(25663, 0, "'n'"), -(25664, 0, "'g'"), -(25665, 0, "' '"), -(25665, 1, "''"), -(25665, 0, "'.'"), -(25666, 7, "''"), -(25666, 0, "' '"), -(25667, 0, "'H'"), -(25668, 0, "'i'"), -(25669, 0, "'g'"), -(25670, 0, "'h'"), -(25671, 0, "'e'"), -(25672, 0, "'r'"), -(25667, 6, "''"), -(25667, 0, "'T'"), -(25667, 1, "''"), -(25667, 0, "'3'"), -(25668, 0, "'2'"), -(25669, 0, "' '"), -(25670, 0, "'s'"), -(25671, 0, "'e'"), -(25672, 0, "'e'"), -(25673, 0, "'m'"), -(25674, 0, "'s'"), -(25674, 1, "''"), -(25674, 0, "'e'"), -(25675, 0, "'d'"), -(25676, 0, "' '"), -(25677, 0, "'p'"), -(25678, 0, "'r'"), -(25679, 0, "'e'"), -(25680, 0, "'t'"), -(25681, 0, "'t'"), -(25682, 0, "'y'"), -(25683, 0, "' '"), -(25684, 0, "'g'"), -(25685, 0, "'o'"), -(25686, 0, "'o'"), -(25687, 0, "'d'"), -(25688, 0, "'.'"), -(25618, 35, "''"), -(25630, 0, "' '"), -(25631, 0, "'t'"), -(25632, 0, "'h'"), -(25633, 0, "'e'"), -(25634, 0, "' '"), -(25635, 0, "'s'"), -(25636, 0, "'y'"), -(25637, 0, "'s'"), -(25638, 0, "'t'"), -(25639, 0, "'e'"), -(25640, 0, "'m'"), -(25641, 0, "' '"), -(25642, 0, "'w'"), -(25643, 0, "'i'"), -(25644, 0, "'t'"), -(25645, 0, "'h'"), -(25646, 0, "' '"), -(25647, 0, "'a'"), -(25648, 0, "' '"), -(25649, 0, "'f'"), -(25650, 0, "'e'"), -(25651, 0, "'w'"), -(25652, 0, "' '"), -(25653, 0, "'d'"), -(25654, 0, "'i'"), -(25655, 0, "'f'"), -(25656, 0, "'f'"), -(25657, 0, "'e'"), -(25658, 0, "'r'"), -(25659, 0, "'e'"), -(25660, 0, "'n'"), -(25661, 0, "'t'"), -(25662, 0, "' '"), -(25663, 0, "'s'"), -(25664, 0, "'i'"), -(25665, 0, "'z'"), -(25666, 0, "'e'"), -(25667, 0, "'s'"), -(25679, 0, "' '"), -(25680, 0, "'t'"), -(25681, 0, "'o'"), -(25682, 0, "' '"), -(25683, 0, "'w'"), -(25684, 0, "'o'"), -(25685, 0, "'r'"), -(25686, 0, "'k'"), -(25694, 5, "' '"), -(25695, 0, "'w'"), -(25696, 0, "'e'"), -(25697, 0, "'l'"), -(25698, 0, "'l'"), -(25635, 0, "'w'"), -(25636, 0, "'h'"), -(25637, 0, "'o'"), -(25638, 0, "'l'"), -(25639, 0, "'e'"), -(25640, 0, "' '"), -(26747, 33, "''"), -(27673, 0, "'B'"), -(27674, 0, "'u'"), -(27675, 0, "'t'"), -(27676, 0, "' '"), -(27677, 1, "''"), -(27677, 0, "'w'"), -(27694, 4, "''"), -(27902, 5, "'M'"), -(28002, 6, "'t'"), -(28003, 0, "'h'"), -(28004, 0, "'e'"), -(28005, 0, "' '"), -(28006, 0, "'d'"), -(28007, 0, "'o'"), -(28008, 0, "'c'"), -(28009, 0, "'u'"), -(28010, 0, "'m'"), -(28011, 0, "'e'"), -(28012, 0, "'n'"), -(28013, 0, "'t'"), -(28024, 0, "' '"), -(28025, 0, "'R'"), -(28026, 0, "'o'"), -(28027, 0, "'p'"), -(28028, 0, "'e'"), -(28029, 0, "'y'"), -(28030, 0, "' '"), -(28031, 0, "'o'"), -(28032, 0, "'n'"), -(28033, 0, "' '"), -(28034, 0, "'i'"), -(28035, 0, "'t'"), -(28036, 0, "'s'"), -(28037, 0, "' '"), -(28038, 0, "'o'"), -(28039, 0, "'w'"), -(28040, 0, "'n'"), -(28041, 0, "' '"), -(28042, 0, "'t'"), -(28043, 0, "'a'"), -(28044, 0, "'k'"), -(28045, 0, "'e'"), -(28046, 0, "'s'"), -(28047, 0, "' '"), -(28048, 0, "'2'"), -(28049, 0, "'9'"), -(28050, 0, "'m'"), -(28051, 0, "'s'"), -(28052, 0, "' '"), -(28053, 0, "'t'"), -(28054, 0, "'o'"), -(28055, 0, "' '"), -(28056, 0, "'p'"), -(28057, 0, "'r'"), -(28058, 0, "'o'"), -(28059, 0, "'c'"), -(28060, 0, "'e'"), -(28061, 0, "'s'"), -(28062, 0, "'s'"), -(28063, 0, "' '"), -(28064, 0, "'t'"), -(28065, 0, "'h'"), -(28066, 0, "'i'"), -(28067, 0, "'s'"), -(28068, 0, "' '"), -(28069, 0, "'s'"), -(28070, 0, "'t'"), -(28071, 0, "'r'"), -(28072, 0, "'i'"), -(28073, 0, "'n'"), -(28074, 0, "'g'"), -(28069, 6, "'d'"), -(28070, 0, "'o'"), -(28071, 0, "'c'"), -(28072, 0, "'u'"), -(28069, 4, "'e'"), -(28070, 0, "'d'"), -(28071, 0, "'i'"), -(28072, 0, "'t'"), -(28073, 0, "'i'"), -(28074, 0, "'n'"), -(28075, 0, "'g'"), -(28076, 0, "' '"), -(28077, 0, "'t'"), -(28078, 0, "'r'"), -(28079, 0, "'a'"), -(28080, 0, "'c'"), -(28081, 0, "'e'"), -(28082, 0, "'.'"), -(29220, 0, "' '"), -(29221, 0, "'-'"), -(29222, 4, "' '"), -(29222, 1, "''"), -(29222, 0, "' '"), -(29244, 0, "' '"), -(29245, 0, "'a'"), -(29246, 0, "'r'"), -(29247, 0, "'e'"), -(29248, 0, "' '"), -(29249, 0, "'*'"), -(29250, 0, "'w'"), -(29251, 0, "'e'"), -(29252, 0, "'i'"), -(29253, 0, "'r'"), -(29254, 0, "'d'"), -(29255, 0, "'*'"), -(29325, 11, "''"), -(29332, 0, "' '"), -(29333, 0, "'i'"), -(29334, 0, "'n'"), -(29335, 0, "' '"), -(29336, 0, "'t'"), -(29337, 0, "'h'"), -(29338, 0, "'e'"), -(29339, 0, "' '"), -(29340, 0, "'t'"), -(29341, 0, "'w'"), -(29342, 0, "'o'"), -(29343, 0, "' '"), -(29344, 0, "'b'"), -(29345, 0, "'-'"), -(29346, 0, "'t'"), -(29347, 0, "'r'"), -(29348, 0, "'e'"), -(29349, 0, "'e'"), -(29350, 0, "'s'"), -(29406, 0, "'s'"), -(29407, 0, "'h'"), -(29408, 0, "'o'"), -(29409, 0, "'u'"), -(29410, 0, "'l'"), -(29411, 0, "'d'"), -(29412, 0, "' '"), -(29418, 1, "''"), -(29802, 1, "''"), -(29802, 0, "' '"), -(29803, 0, "'-'"), -(29804, 0, "' '"), -(29805, 0, "'t'"), -(29806, 0, "'o'"), -(29807, 0, "' '"), -(29808, 0, "'t'"), -(29809, 0, "'h'"), -(29810, 0, "'e'"), -(29811, 0, "' '"), -(29802, 10, "'.'"), -(30289, 0, "' '"), -(30290, 0, "'t'"), -(30291, 0, "'u'"), -(30292, 0, "'r'"), -(30293, 0, "'n'"), -(30294, 0, "'e'"), -(30295, 0, "'d'"), -(30296, 0, "' '"), -(30297, 0, "'m'"), -(30298, 0, "'y'"), -(30299, 0, "' '"), -(30300, 0, "'b'"), -(30301, 0, "'a'"), -(30302, 0, "'c'"), -(30303, 0, "'k'"), -(30304, 0, "' '"), -(30305, 0, "'o'"), -(30306, 0, "'n'"), -(30307, 0, "' '"), -(30308, 0, "'a'"), -(30309, 0, "'c'"), -(30310, 0, "'a'"), -(30311, 0, "'d'"), -(30312, 0, "'e'"), -(30313, 0, "'m'"), -(30314, 0, "'i'"), -(30315, 0, "'a'"), -(30316, 0, "' '"), -(30317, 0, "'i'"), -(30317, 1, "''"), -(30317, 0, "'a'"), -(30318, 0, "'n'"), -(30319, 0, "'d'"), -(31178, 0, "' '"), -(31179, 0, "'f'"), -(31180, 0, "'i'"), -(31181, 0, "'g'"), -(31182, 0, "'u'"), -(31183, 0, "'r'"), -(31184, 0, "'e'"), -(31185, 0, "' '"), -(31186, 0, "'o'"), -(31187, 0, "'u'"), -(31188, 0, "'t'"), -(31189, 0, "' '"), -(31190, 0, "'h'"), -(31191, 0, "'o'"), -(31192, 0, "'w'"), -(31193, 0, "' '"), -(31194, 0, "'t'"), -(31195, 0, "'o'"), -(31206, 5, "''"), -(31237, 15, "'t'"), -(31238, 0, "'u'"), -(31239, 0, "'r'"), -(31240, 0, "'n'"), -(31241, 0, "'i'"), -(31242, 0, "'n'"), -(31243, 0, "'g'"), -(31244, 0, "' '"), -(31245, 0, "'t'"), -(31246, 0, "'o'"), -(31247, 0, "'w'"), -(31248, 0, "'a'"), -(31249, 0, "'r'"), -(31250, 0, "'d'"), -(31251, 0, "' '"), -(31252, 0, "'t'"), -(31253, 0, "'h'"), -(31251, 3, "''"), -(31244, 7, "''"), -(31237, 7, "'doing that work'"), -(31237, 15, "'a'"), -(31238, 0, "'n'"), -(31239, 0, "'s'"), -(31240, 0, "'w'"), -(31241, 0, "'e'"), -(31242, 0, "'r'"), -(31243, 0, "'i'"), -(31244, 0, "'n'"), -(31245, 0, "'g'"), -(31246, 0, "' '"), -(31247, 0, "'t'"), -(31248, 0, "'h'"), -(31249, 0, "'a'"), -(31250, 0, "'t'"), -(31251, 0, "' '"), -(31252, 0, "'c'"), -(31253, 0, "'a'"), -(31254, 0, "'l'"), -(31255, 0, "'l'"), -(31340, 2, "'s'"), -(31341, 0, "'t'"), -(31342, 0, "'a'"), -(31343, 0, "'r'"), -(31344, 0, "'t'"), -(31353, 7, "' '"), -(31354, 0, "'t'"), -(31355, 0, "'o'"), -(31356, 0, "' '"), -(31357, 0, "'a'"), -(31357, 1, "''"), -(31357, 0, "'m'"), -(31358, 0, "'a'"), -(31359, 0, "'k'"), -(31360, 0, "'e'"), -(31361, 25, "''"), -(31367, 0, "' '"), -(31368, 0, "'f'"), -(31369, 0, "'a'"), -(31370, 0, "'s'"), -(31371, 0, "'t'"), -(31373, 0, "' '"), -(31374, 0, "'A'"), -(31375, 0, "'n'"), -(31376, 0, "'d'"), -(31377, 0, "' '"), -(31378, 0, "'r'"), -(31379, 0, "'e'"), -(31380, 0, "'t'"), -(31381, 0, "'u'"), -(31382, 0, "'r'"), -(31383, 0, "'n'"), -(31384, 0, "' '"), -(31385, 0, "'w'"), -(31386, 0, "'i'"), -(31387, 0, "'t'"), -(31388, 0, "'h'"), -(31389, 0, "' '"), -(31390, 0, "'t'"), -(31391, 0, "'h'"), -(31392, 0, "'e'"), -(31393, 0, "' '"), -(31394, 0, "'t'"), -(31395, 0, "'r'"), -(31396, 0, "'e'"), -(31397, 0, "'a'"), -(31398, 0, "'t'"), -(31398, 1, "''"), -(31398, 0, "'s'"), -(31399, 0, "'u'"), -(31400, 0, "'r'"), -(31401, 0, "'e'"), -(31402, 0, "' '"), -(31403, 0, "'o'"), -(31404, 0, "'f'"), -(31405, 0, "' '"), -(31406, 0, "'t'"), -(31407, 0, "'h'"), -(31408, 0, "'e'"), -(31409, 0, "'s'"), -(31410, 0, "'e'"), -(31411, 0, "' '"), -(31412, 0, "'a'"), -(31413, 0, "'l'"), -(31414, 0, "'g'"), -(31415, 0, "'i'"), -(31416, 0, "'r'"), -(31417, 0, "'h'"), -(31417, 1, "''"), -(31416, 1, "''"), -(31416, 0, "'o'"), -(31416, 1, "''"), -(31415, 1, "''"), -(31415, 0, "'o'"), -(31416, 0, "'r'"), -(31417, 0, "'i'"), -(31418, 0, "'t'"), -(31419, 0, "'h'"), -(31420, 0, "'m'"), -(31421, 0, "'s'"), -(31422, 0, "'.'"), -(31423, 0, "' '"), -(31424, 0, "'('"), -(31425, 0, "'W'"), -(31426, 0, "'e'"), -(31427, 0, "'l'"), -(31428, 0, "'l'"), -(31429, 0, "','"), -(31430, 0, "' '"), -(31431, 0, "'i'"), -(31432, 0, "'t'"), -(31433, 0, "' '"), -(31434, 0, "'t'"), -(31435, 0, "'o'"), -(31436, 0, "'o'"), -(31437, 0, "'k'"), -(31438, 0, "' '"), -(31439, 0, "'a'"), -(31440, 0, "' '"), -(31441, 0, "'d'"), -(31442, 0, "'e'"), -(31443, 0, "'c'"), -(31444, 0, "'a'"), -(31445, 0, "'d'"), -(31446, 0, "'e'"), -(31447, 0, "' '"), -(31448, 0, "'a'"), -(31449, 0, "'n'"), -(31450, 0, "'d'"), -(31451, 0, "' '"), -(31452, 0, "'*'"), -(31453, 0, "'k'"), -(31453, 1, "''"), -(31453, 0, "'K'"), -(31454, 0, "'e'"), -(31455, 0, "'v'"), -(31456, 0, "'i'"), -(31457, 0, "'n'"), -(31458, 0, "'*'"), -(31459, 0, "')'"), -(31459, 0, "'.'"), -(31447, 0, "','"), -(31448, 0, "' '"), -(31449, 0, "'s'"), -(31450, 0, "'o'"), -(31451, 0, "'m'"), -(31452, 0, "'e'"), -(31453, 0, "' '"), -(31454, 0, "'h'"), -(31455, 0, "'a'"), -(31456, 0, "'r'"), -(31457, 0, "'d'"), -(31458, 0, "' '"), -(31459, 0, "'w'"), -(31460, 0, "'o'"), -(31461, 0, "'r'"), -(31462, 0, "'k'"), -(31476, 0, "' '"), -(31477, 0, "'T'"), -(31478, 0, "'h'"), -(31479, 0, "'a'"), -(31480, 0, "'n'"), -(31481, 0, "'k'"), -(31482, 0, "'s'"), -(31483, 0, "' '"), -(31484, 0, "'d'"), -(31485, 0, "'u'"), -(31486, 0, "'d'"), -(31487, 0, "'e'"), -(31488, 0, "'!'"), -(31477, 12, "''"), -(31468, 0, "'s'"), -(31469, 0, "'o'"), -(31470, 0, "'m'"), -(31471, 0, "'e'"), -(31472, 0, "' '"), -(31473, 0, "'g'"), -(31474, 0, "'r'"), -(31475, 0, "'e'"), -(31476, 0, "'a'"), -(31477, 0, "'t'"), -(31478, 0, "' '"), -(31479, 0, "'i'"), -(31480, 0, "'d'"), -(31481, 0, "'e'"), -(31482, 0, "'a'"), -(31483, 0, "'s'"), -(31484, 0, "' '"), -(31485, 0, "'f'"), -(31486, 0, "'r'"), -(31487, 0, "'o'"), -(31488, 0, "'m'"), -(31489, 1, "''"), -(31489, 0, "' '"), -(31495, 1, "''"), -(31495, 0, "' '"), -(31496, 0, "'a'"), -(31497, 0, "'n'"), -(31498, 0, "'d'"), -(31499, 0, "' '"), -(31500, 0, "'M'"), -(31501, 0, "'a'"), -(31502, 0, "'r'"), -(31503, 0, "'t'"), -(31504, 0, "'i'"), -(31505, 0, "'n'"), -(31496, 0, "'J'"), -(31497, 0, "'a'"), -(31498, 0, "'h'"), -(31499, 0, "'n'"), -(31500, 0, "'s'"), -(31501, 0, "' '"), -(31512, 0, "' '"), -(31513, 0, "'K'"), -(31514, 0, "'l'"), -(31515, 0, "'e'"), -(31516, 0, "'p'"), -(31517, 0, "'p'"), -(31518, 0, "'m'"), -(31519, 0, "'a'"), -(31520, 0, "'n'"), -(31521, 0, "'n'"), -(31523, 1, "''"), -(31423, 1, "''"), -(31423, 0, "'n'"), -(31424, 0, "'n'"), -(31425, 1, "''"), -(31523, 1, "''"), -(31523, 0, "' '"), -(31524, 0, "'I'"), -(31525, 0, "' '"), -(31526, 0, "'c'"), -(31527, 0, "'o'"), -(31528, 0, "'u'"), -(31529, 0, "'l'"), -(31530, 0, "'n'"), -(31530, 1, "''"), -(31530, 0, "'d'"), -(31531, 0, "'n'"), -(31532, 0, "'''"), -(31533, 0, "'t'"), -(31534, 0, "' '"), -(31535, 0, "'h'"), -(31536, 0, "'a'"), -(31537, 0, "'v'"), -(31538, 0, "'e'"), -(31539, 0, "' '"), -(31540, 0, "'d'"), -(31541, 0, "'o'"), -(31542, 0, "'n'"), -(31543, 0, "'e'"), -(31544, 0, "' '"), -(31545, 0, "'i'"), -(31546, 0, "'t'"), -(31547, 0, "' '"), -(31524, 24, "'A'"), -(31525, 0, "'u'"), -(31526, 0, "'t'"), -(31527, 0, "'o'"), -(31528, 0, "'m'"), -(31529, 0, "'e'"), -(31530, 0, "'r'"), -(31531, 0, "'g'"), -(31532, 0, "'e'"), -(31533, 0, "'''"), -(31534, 0, "'s'"), -(31535, 0, "' '"), -(31536, 0, "'r'"), -(31537, 0, "'u'"), -(31538, 0, "'n'"), -(31539, 0, "'-'"), -(31536, 4, "'d'"), -(31537, 0, "'o'"), -(31538, 0, "'c'"), -(31539, 0, "'u'"), -(31540, 0, "'m'"), -(31541, 0, "'e'"), -(31542, 0, "'n'"), -(31543, 0, "'t'"), -(31544, 0, "' '"), -(31545, 0, "'e'"), -(31546, 0, "'n'"), -(31547, 0, "'c'"), -(31548, 0, "'o'"), -(31549, 0, "'d'"), -(31550, 0, "'i'"), -(31551, 0, "'n'"), -(31552, 0, "'g'"), -(31553, 0, "' '"), -(31554, 0, "'s'"), -(31555, 0, "'y'"), -(31556, 0, "'s'"), -(31557, 0, "'t'"), -(31558, 0, "'e'"), -(31559, 0, "'m'"), -(31560, 0, "' '"), -(31561, 0, "'i'"), -(31562, 0, "'s'"), -(31563, 0, "' '"), -(31564, 0, "'f'"), -(31565, 0, "'a'"), -(31566, 0, "'n'"), -(31567, 0, "'t'"), -(31568, 0, "'a'"), -(31569, 0, "'s'"), -(31570, 0, "'t'"), -(31571, 0, "'i'"), -(31572, 0, "'c'"), -(31573, 0, "' '"), -(31574, 0, "'-'"), -(31575, 0, "' '"), -(31576, 0, "'a'"), -(31577, 0, "'n'"), -(31578, 0, "'d'"), -(31579, 0, "' '"), -(31576, 4, "''"), -(31575, 1, "''"), -(31574, 1, "''"), -(31573, 1, "''"), -(31573, 0, "'.'"), -(31524, 12, "''"), -(31524, 0, "'T'"), -(31525, 0, "'h'"), -(31526, 0, "'e'"), -(31527, 0, "' '"), -(31552, 0, "' '"), -(31553, 0, "'M'"), -(31554, 0, "'a'"), -(31555, 0, "'r'"), -(31556, 0, "'t'"), -(31557, 0, "'i'"), -(31558, 0, "'n'"), -(31559, 0, "' '"), -(31560, 0, "'m'"), -(31561, 0, "'a'"), -(31562, 0, "'d'"), -(31563, 0, "'e'"), -(31564, 0, "' '"), -(31565, 0, "'f'"), -(31566, 0, "'o'"), -(31567, 0, "'r'"), -(31568, 0, "' '"), -(31569, 0, "'A'"), -(31570, 0, "'u'"), -(31571, 0, "'t'"), -(31572, 0, "'o'"), -(31573, 0, "'m'"), -(31574, 0, "'e'"), -(31575, 0, "'r'"), -(31576, 0, "'g'"), -(31577, 0, "'e'"), -(31591, 0, "','"), -(31592, 0, "' '"), -(31593, 0, "'a'"), -(31594, 0, "'n'"), -(31595, 0, "'d'"), -(31596, 0, "' '"), -(31597, 0, "'w'"), -(31598, 0, "'a'"), -(31599, 0, "'s'"), -(31600, 0, "' '"), -(31601, 0, "'t'"), -(31602, 0, "'h'"), -(31603, 0, "'e'"), -(31604, 0, "' '"), -(31605, 0, "'i'"), -(31606, 0, "'n'"), -(31607, 0, "'p'"), -(31608, 0, "'s'"), -(31609, 0, "'i'"), -(31609, 1, "''"), -(31608, 1, "''"), -(31607, 1, "''"), -(31607, 0, "'s'"), -(31608, 0, "'p'"), -(31609, 0, "'i'"), -(31610, 0, "'r'"), -(31611, 0, "'a'"), -(31612, 0, "'t'"), -(31613, 0, "'i'"), -(31614, 0, "'o'"), -(31615, 0, "'n'"), -(31616, 0, "' '"), -(31617, 0, "'f'"), -(31618, 0, "'o'"), -(31619, 0, "'r'"), -(31620, 0, "' '"), -(31621, 0, "'Y'"), -(31622, 0, "'j'"), -(31623, 0, "'s'"), -(31624, 0, "'''"), -(31625, 0, "'s'"), -(31626, 0, "' '"), -(31621, 0, "'t'"), -(31622, 0, "'h'"), -(31623, 0, "'e'"), -(31624, 0, "' '"), -(31625, 0, "'e'"), -(31626, 0, "'u'"), -(31627, 0, "'q'"), -(31628, 0, "'u'"), -(31628, 1, "''"), -(31627, 1, "''"), -(31626, 1, "''"), -(31626, 0, "'q'"), -(31627, 0, "'u'"), -(31628, 0, "'i'"), -(31629, 0, "'v'"), -(31630, 0, "'a'"), -(31631, 0, "'l'"), -(31632, 0, "'e'"), -(31633, 0, "'n'"), -(31634, 0, "'t'"), -(31635, 0, "' '"), -(31636, 0, "'i'"), -(31637, 0, "'n'"), -(31638, 0, "' '"), -(31644, 1, "''"), -(31643, 1, "''"), -(31642, 1, "''"), -(31643, 0, "' '"), -(31644, 0, "'A'"), -(31645, 0, "'n'"), -(31646, 0, "'d'"), -(31647, 0, "' '"), -(31644, 4, "'U'"), -(31645, 0, "'s'"), -(31646, 0, "'i'"), -(31647, 0, "'n'"), -(31648, 0, "'g'"), -(31649, 0, "' '"), -(31650, 0, "'i'"), -(31651, 0, "'n'"), -(31652, 0, "'c'"), -(31653, 0, "'r'"), -(31654, 0, "'e'"), -(31655, 0, "'m'"), -(31656, 0, "'e'"), -(31657, 0, "'n'"), -(31658, 0, "'t'"), -(31659, 0, "'i'"), -(31660, 0, "'n'"), -(31661, 0, "'g'"), -(31662, 0, "' '"), -(31663, 0, "'s'"), -(31664, 0, "'e'"), -(31665, 0, "'q'"), -(31666, 0, "'u'"), -(31667, 0, "'e'"), -(31668, 0, "'n'"), -(31669, 0, "'c'"), -(31670, 0, "'e'"), -(31671, 0, "' '"), -(31672, 0, "'n'"), -(31673, 0, "'u'"), -(31674, 0, "'m'"), -(31675, 0, "'b'"), -(31676, 0, "'e'"), -(31677, 0, "'r'"), -(31678, 0, "'s'"), -(31489, 0, "' '"), -(31490, 0, "'a'"), -(31491, 0, "' '"), -(31492, 0, "'b'"), -(31493, 0, "'u'"), -(31494, 0, "'n'"), -(31495, 0, "'c'"), -(31496, 0, "'h'"), -(31497, 0, "' '"), -(31498, 0, "'o'"), -(31499, 0, "'f'"), -(31500, 0, "' '"), -(31501, 0, "'c'"), -(31502, 0, "'l'"), -(31503, 0, "'e'"), -(31504, 0, "'v'"), -(31505, 0, "'e'"), -(31506, 0, "'r'"), -(31507, 0, "' '"), -(31508, 0, "'p'"), -(31509, 0, "'e'"), -(31510, 0, "'o'"), -(31511, 0, "'p'"), -(31512, 0, "'l'"), -(31513, 0, "'e'"), -(31514, 0, "'.'"), -(31515, 34, "''"), -(31551, 0, "' '"), -(31552, 0, "'K'"), -(31553, 0, "'e'"), -(31554, 0, "'l'"), -(31555, 0, "'l'"), -(31555, 1, "''"), -(31554, 1, "''"), -(31553, 1, "''"), -(31553, 0, "'l'"), -(31554, 0, "'e'"), -(31555, 0, "'p'"), -(31556, 0, "'p'"), -(31557, 0, "'m'"), -(31558, 0, "'a'"), -(31559, 0, "'n'"), -(31560, 0, "'n'"), -(31646, 0, "'T'"), -(31647, 0, "'h'"), -(31648, 0, "'e'"), -(31649, 0, "' '"), -(31650, 0, "'s'"), -(31651, 0, "'y'"), -(31652, 0, "'s'"), -(31653, 0, "'t'"), -(31654, 0, "'e'"), -(31655, 0, "'m'"), -(31656, 0, "' '"), -(31657, 0, "'o'"), -(31658, 0, "'f'"), -(31659, 0, "' '"), -(31660, 5, "'u'"), -(31661, 0, "'s'"), -(31662, 0, "'i'"), -(31663, 0, "'n'"), -(31664, 0, "'g'"), -(31695, 0, "' '"), -(31696, 0, "'i'"), -(31697, 0, "'n'"), -(31698, 0, "'s'"), -(31699, 0, "'t'"), -(31700, 0, "'e'"), -(31701, 0, "'a'"), -(31702, 0, "'d'"), -(31703, 0, "' '"), -(31704, 0, "'o'"), -(31705, 0, "'f'"), -(31706, 0, "' '"), -(31707, 0, "'U'"), -(31708, 0, "'U'"), -(31709, 0, "'I'"), -(31710, 0, "'D'"), -(31711, 0, "'s'"), -(31696, 11, "'t'"), -(31697, 0, "'o'"), -(31698, 0, "' '"), -(31699, 0, "'s'"), -(31700, 0, "'a'"), -(31701, 0, "'v'"), -(31702, 0, "'e'"), -(31703, 0, "' '"), -(31704, 0, "'s'"), -(31705, 0, "'t'"), -(31706, 0, "'o'"), -(31707, 0, "'r'"), -(31708, 0, "'i'"), -(31709, 0, "'n'"), -(31710, 0, "'g'"), -(31711, 0, "' '"), -(31704, 0, "'g'"), -(31705, 0, "'e'"), -(31706, 0, "'n'"), -(31707, 0, "'e'"), -(31708, 0, "'r'"), -(31709, 0, "'a'"), -(31710, 0, "'t'"), -(31711, 0, "'i'"), -(31712, 0, "'n'"), -(31713, 0, "'g'"), -(31714, 0, "' '"), -(31715, 0, "'a'"), -(31716, 0, "'n'"), -(31717, 0, "' '"), -(31718, 0, "'d'"), -(31717, 1, "''"), -(31718, 0, "' '"), -(31678, 0, "' '"), -(31679, 0, "'('"), -(31680, 0, "'a'"), -(31681, 0, "'g'"), -(31682, 0, "'e'"), -(31683, 0, "'n'"), -(31684, 0, "'t'"), -(31685, 0, "' '"), -(31686, 0, "'i'"), -(31687, 0, "'d'"), -(31688, 0, "','"), -(31698, 8, "''"), -(31698, 0, "')'"), -(31699, 0, "' '"), -(31700, 0, "'t'"), -(31701, 0, "'u'"), -(31702, 0, "'p'"), -(31703, 0, "'l'"), -(31704, 0, "'e'"), -(31705, 0, "'s'"), -(31709, 0, "' '"), -(31710, 0, "'a'"), -(31711, 0, "'v'"), -(31712, 0, "'o'"), -(31713, 0, "'i'"), -(31714, 0, "'d'"), -(31715, 5, "''"), -(31744, 0, "' '"), -(31745, 0, "'i'"), -(31746, 0, "'s'"), -(31747, 0, "' '"), -(31748, 0, "'g'"), -(31749, 0, "'e'"), -(31750, 0, "'n'"), -(31751, 0, "'i'"), -(31752, 0, "'u'"), -(31753, 0, "'s'"), -(31754, 0, "'.'"), -(31755, 0, "' '"), -(31756, 0, "'A'"), -(31757, 0, "'n'"), -(31758, 0, "'d'"), -(31501, 0, "'o'"), -(31502, 0, "'t'"), -(31503, 0, "'h'"), -(31504, 0, "'e'"), -(31505, 0, "'r'"), -(31506, 0, "' '"), -(31604, 0, "' '"), -(31605, 0, "'i'"), -(31606, 0, "'t'"), -(31765, 3, "'I'"), -(31766, 0, "' '"), -(31767, 0, "'h'"), -(31768, 0, "'a'"), -(31769, 0, "'v'"), -(31770, 0, "'e'"), -(31771, 0, "' '"), -(31772, 0, "'n'"), -(31773, 0, "'o'"), -(31774, 0, "' '"), -(31775, 0, "'i'"), -(31776, 0, "'d'"), -(31777, 0, "'e'"), -(31778, 0, "'a'"), -(31779, 0, "' '"), -(31780, 0, "'w'"), -(31781, 0, "'h'"), -(31782, 0, "'o'"), -(31783, 0, "' '"), -(31784, 0, "'c'"), -(31785, 0, "'a'"), -(31786, 0, "'m'"), -(31787, 0, "'e'"), -(31788, 0, "' '"), -(31789, 0, "'u'"), -(31790, 0, "'p'"), -(31791, 0, "' '"), -(31792, 0, "'w'"), -(31793, 0, "'i'"), -(31794, 0, "'t'"), -(31795, 0, "'h'"), -(31796, 0, "' '"), -(31797, 0, "'t'"), -(31798, 0, "'h'"), -(31799, 0, "'a'"), -(31800, 0, "'t'"), -(31801, 0, "'.'"), -(31802, 0, "' '"), -(31803, 0, "'A'"), -(31804, 0, "'n'"), -(31805, 0, "'d'"), -(31806, 0, "' '"), -(31807, 0, "'K'"), -(31808, 0, "'e'"), -(31809, 0, "'v'"), -(31810, 0, "'i'"), -(31811, 0, "'n'"), -(31812, 0, "'''"), -(31813, 0, "'s'"), -(31814, 0, "' '"), -(31815, 0, "'l'"), -(31816, 0, "'i'"), -(31817, 0, "'s'"), -(31818, 0, "'t'"), -(31819, 0, "' '"), -(31820, 0, "'a'"), -(31821, 0, "'p'"), -(31822, 0, "'p'"), -(31823, 0, "'r'"), -(31824, 0, "'o'"), -(31825, 0, "'a'"), -(31826, 0, "'c'"), -(31827, 0, "'h'"), -(31828, 0, "' '"), -(31829, 0, "'I'"), -(31830, 0, "' '"), -(31831, 0, "'d'"), -(31832, 0, "'e'"), -(31833, 0, "'s'"), -(31834, 0, "'c'"), -(31835, 0, "'r'"), -(31836, 0, "'i'"), -(31837, 0, "'b'"), -(31838, 0, "'e'"), -(31839, 0, "' '"), -(31840, 0, "'h'"), -(31841, 0, "'e'"), -(31842, 0, "'r'"), -(31843, 0, "'e'"), -(31844, 0, "' '"), -(31845, 0, "'i'"), -(31846, 0, "'s'"), -(31847, 0, "' '"), -(31848, 0, "'t'"), -(31849, 0, "'h'"), -(31850, 0, "'e'"), -(31851, 0, "' '"), -(31852, 0, "'s'"), -(31853, 0, "'o'"), -(31854, 0, "'r'"), -(31855, 0, "'t'"), -(31856, 0, "' '"), -(31857, 0, "'o'"), -(31858, 0, "'f'"), -(31859, 0, "' '"), -(31860, 0, "'o'"), -(31861, 0, "'b'"), -(31862, 0, "'v'"), -(31863, 0, "'i'"), -(31864, 0, "'o'"), -(31865, 0, "'u'"), -(31866, 0, "'s'"), -(31867, 0, "' '"), -(31868, 0, "'j'"), -(31868, 1, "''"), -(31860, 0, "'f'"), -(31861, 0, "'a'"), -(31862, 0, "'n'"), -(31863, 0, "'t'"), -(31864, 0, "'a'"), -(31865, 0, "'s'"), -(31866, 0, "'t'"), -(31867, 0, "'i'"), -(31868, 0, "'c'"), -(31869, 0, "','"), -(31870, 0, "' '"), -(31879, 0, "'i'"), -(31880, 0, "'d'"), -(31881, 0, "'e'"), -(31882, 0, "'a'"), -(31883, 0, "' '"), -(31884, 0, "'t'"), -(31885, 0, "'h'"), -(31886, 0, "'a'"), -(31887, 0, "'t'"), -(31888, 0, "' '"), -(31889, 0, "'1'"), -(31890, 0, "'0'"), -(31891, 0, "'0'"), -(31892, 0, "' '"), -(31893, 0, "'s'"), -(31894, 0, "'m'"), -(31895, 0, "'a'"), -(31896, 0, "'r'"), -(31897, 0, "'t'"), -(31898, 0, "' '"), -(31899, 0, "'p'"), -(31893, 7, "'p'"), -(31893, 1, "'smart p'"), -(31900, 0, "'p'"), -(31900, 1, "''"), -(31900, 0, "'e'"), -(31901, 0, "'o'"), -(31902, 0, "'p'"), -(31903, 0, "'l'"), -(31904, 0, "'e'"), -(31905, 0, "' '"), -(31906, 0, "'h'"), -(31907, 0, "'a'"), -(31908, 0, "'v'"), -(31909, 0, "'e'"), -(31910, 0, "' '"), -(31911, 0, "'s'"), -(31912, 0, "'u'"), -(31913, 0, "'r'"), -(31914, 0, "'e'"), -(31915, 0, "'l'"), -(31916, 0, "'y'"), -(31917, 0, "' '"), -(31918, 0, "'w'"), -(31919, 0, "'a'"), -(31920, 0, "'l'"), -(31921, 0, "'k'"), -(31922, 0, "'e'"), -(31923, 0, "'d'"), -(31924, 0, "' '"), -(31925, 0, "'t'"), -(31926, 0, "'i'"), -(31927, 0, "'r'"), -(31928, 0, "'h'"), -(31929, 0, "'g'"), -(31930, 0, "' '"), -(31925, 6, "'r'"), -(31926, 0, "'i'"), -(31927, 0, "'g'"), -(31928, 0, "'h'"), -(31929, 0, "'t'"), -(31930, 0, "' '"), -(31931, 0, "'p'"), -(31932, 0, "'a'"), -(31933, 0, "'s'"), -(31934, 0, "'t'"), -(31935, 0, "' '"), -(31936, 0, "'w'"), -(31937, 0, "'i'"), -(31938, 0, "'t'"), -(31939, 0, "'h'"), -(31940, 0, "'o'"), -(31941, 0, "'u'"), -(31942, 0, "'t'"), -(31943, 0, "' '"), -(31944, 0, "'n'"), -(31945, 0, "'o'"), -(31946, 0, "'t'"), -(31947, 0, "'i'"), -(31948, 0, "'c'"), -(31949, 0, "'i'"), -(31950, 0, "'n'"), -(31951, 0, "'g'"), -(31952, 0, "' '"), -(31953, 0, "'i'"), -(31954, 0, "'t'"), -(31955, 0, "'.'"), -(31501, 5, "''"), -(31500, 1, "''"), -(31507, 7, "' '"), -(31508, 0, "'f'"), -(31509, 0, "'o'"), -(31510, 0, "'l'"), -(31511, 0, "'k'"), -(31512, 0, "'s'"), -(31624, 4, "' '"), -(31625, 0, "'i'"), -(31626, 0, "'t'"), -(31627, 0, "'s'"), -(31592, 1, "''"), -(31592, 4, "''"), -(31592, 0, "'.'"), -(31594, 1, "''"), -(31594, 0, "'I'"), -(31594, 50, "''"), -(31561, 4, "'i'"), -(31562, 0, "'n'"), -(31562, 1, "''"), -(31561, 1, "''"), -(31551, 10, "'i'"), -(31552, 0, "'n'"), -(31553, 0, "'v'"), -(31554, 0, "'e'"), -(31555, 0, "'n'"), -(31556, 0, "'t'"), -(31557, 0, "'e'"), -(31558, 0, "'d'"), -(31559, 0, "' '"), -(31560, 0, "'f'"), -(31561, 0, "'o'"), -(31562, 0, "'r'"), -(31564, 4, "''"), -(31753, 0, "'r'"), -(31754, 0, "'e'"), -(31755, 0, "'p'"), -(31756, 0, "'r'"), -(31757, 0, "'e'"), -(31758, 0, "'s'"), -(31759, 0, "'e'"), -(31760, 0, "'n'"), -(31761, 0, "'t'"), -(31762, 0, "'i'"), -(31762, 1, "''"), -(31762, 0, "'a'"), -(31763, 0, "'t'"), -(31764, 0, "'i'"), -(31765, 0, "'o'"), -(31766, 0, "'n'"), -(31767, 0, "' '"), -(31768, 9, "''"), -(31768, 0, "'approach '"), -(31768, 9, "''"), -(31845, 0, "'m'"), -(31846, 0, "'u'"), -(31847, 0, "'s'"), -(31848, 0, "'t'"), -(31849, 0, "' '"), -(31900, 0, "' '"), -(31901, 0, "'I'"), -(31902, 0, "' '"), -(31903, 0, "'d'"), -(31904, 0, "'o'"), -(31905, 0, "'n'"), -(31906, 0, "'''"), -(31907, 0, "'t'"), -(31908, 0, "' '"), -(31909, 0, "'k'"), -(31910, 0, "'n'"), -(31911, 0, "'o'"), -(31912, 0, "'w'"), -(31901, 12, "''"), -(31901, 0, "'I don't know'"), -(31913, 0, "' '"), -(31914, 0, "'t'"), -(31915, 0, "'h'"), -(31916, 0, "'a'"), -(31917, 0, "'t'"), -(31918, 0, "' '"), -(31919, 0, "'I'"), -(31920, 0, "' '"), -(31921, 0, "'w'"), -(31922, 0, "'o'"), -(31923, 0, "'u'"), -(31924, 0, "'l'"), -(31925, 0, "'d'"), -(31926, 0, "'n'"), -(31927, 0, "'''"), -(31928, 0, "'t'"), -(31929, 0, "' '"), -(31929, 1, "''"), -(31928, 1, "''"), -(31927, 1, "''"), -(31926, 1, "''"), -(31926, 0, "' '"), -(31927, 0, "'h'"), -(31928, 0, "'a'"), -(31929, 0, "'v'"), -(31930, 0, "'e'"), -(31931, 0, "' '"), -(31932, 0, "'t'"), -(31933, 0, "'h'"), -(31934, 0, "'o'"), -(31935, 0, "'u'"), -(31936, 0, "'h'"), -(31937, 0, "'g'"), -(31909, 29, "'t'"), -(31910, 0, "'h'"), -(31911, 0, "'i'"), -(31912, 0, "'n'"), -(31913, 0, "'k'"), -(31914, 0, "' '"), -(31915, 0, "'I'"), -(31916, 0, "' '"), -(31917, 0, "'w'"), -(31918, 0, "'o'"), -(31919, 0, "'u'"), -(31920, 0, "'l'"), -(31903, 18, "'t'"), -(31904, 0, "'h'"), -(31905, 0, "'i'"), -(31906, 0, "'n'"), -(31907, 0, "'k'"), -(31908, 0, "' '"), -(31909, 0, "'I'"), -(31910, 0, "' '"), -(31911, 0, "'w'"), -(31912, 0, "'o'"), -(31913, 0, "'u'"), -(31914, 0, "'l'"), -(31915, 0, "'d'"), -(31916, 0, "'n'"), -(31917, 0, "'''"), -(31918, 0, "'t'"), -(31918, 1, "''"), -(31917, 1, "''"), -(31916, 1, "''"), -(31916, 0, "' '"), -(31917, 0, "'h'"), -(31918, 0, "'a'"), -(31919, 0, "'v'"), -(31920, 0, "'e'"), -(31921, 0, "' '"), -(31922, 0, "'w'"), -(31923, 0, "'a'"), -(31924, 0, "'l'"), -(31925, 0, "'k'"), -(31926, 0, "'e'"), -(31927, 0, "'d'"), -(31928, 0, "' '"), -(31929, 0, "'r'"), -(31930, 0, "'i'"), -(31931, 0, "'g'"), -(31932, 0, "'h'"), -(31933, 0, "'t'"), -(31934, 0, "' '"), -(31935, 0, "'p'"), -(31936, 0, "'a'"), -(31937, 0, "'s'"), -(31938, 0, "'t'"), -(31939, 0, "' '"), -(31940, 0, "'t'"), -(31941, 0, "'h'"), -(31942, 0, "'a'"), -(31943, 0, "'t'"), -(31944, 0, "' '"), -(31902, 43, "' '"), -(31903, 0, "'w'"), -(31904, 0, "'o'"), -(31905, 0, "'u'"), -(31906, 0, "'l'"), -(31907, 0, "'d'"), -(31908, 0, "'n'"), -(31909, 0, "'''"), -(31910, 0, "'t'"), -(31911, 0, "' '"), -(31912, 0, "'h'"), -(31913, 0, "'a'"), -(31914, 0, "'v'"), -(31915, 0, "'e'"), -(31916, 0, "' '"), -(31917, 0, "'t'"), -(31918, 0, "'h'"), -(31919, 0, "'o'"), -(31920, 0, "'u'"), -(31921, 0, "'g'"), -(31922, 0, "'h'"), -(31923, 0, "'t'"), -(31924, 0, "' '"), -(31925, 0, "'o'"), -(31926, 0, "'f'"), -(31927, 0, "' '"), -(31928, 0, "'t'"), -(31929, 0, "'h'"), -(31930, 0, "'a'"), -(31931, 0, "'t'"), -(31932, 0, "' '"), -(31933, 0, "'e'"), -(31934, 0, "'i'"), -(31935, 0, "'t'"), -(31936, 0, "'h'"), -(31937, 0, "'e'"), -(31938, 0, "'r'"), -(31939, 0, "'.'"), -(31519, 8, "'b'"), -(31520, 0, "'i'"), -(31521, 0, "'n'"), -(31522, 0, "'a'"), -(31523, 0, "'r'"), -(31524, 0, "'y'"), -(31575, 9, "'b'"), -(31576, 0, "'r'"), -(31577, 0, "'i'"), -(31578, 0, "'l'"), -(31579, 0, "'l'"), -(31580, 0, "'i'"), -(31581, 0, "'a'"), -(31582, 0, "'n'"), -(31583, 0, "'t'"), -(31647, 0, "'i'"), -(31648, 0, "'n'"), -(31649, 0, "' '"), -(31650, 0, "'o'"), -(31651, 0, "'r'"), -(31652, 0, "'d'"), -(31653, 0, "'e'"), -(31654, 0, "'r'"), -(31655, 0, "' '"), -(31665, 15, "''"), -(31665, 8, "''"), -(31670, 0, "' '"), -(31671, 0, "'e'"), -(31672, 0, "'v'"), -(31673, 0, "'e'"), -(31674, 0, "'r'"), -(31675, 0, "'y'"), -(31676, 0, "'w'"), -(31677, 0, "'h'"), -(31678, 0, "'e'"), -(31679, 0, "'r'"), -(31680, 0, "'e'"), -(31691, 1, "''"), -(31691, 0, "','"), -(31692, 0, "' '"), -(31693, 0, "'a'"), -(31694, 0, "'n'"), -(31695, 0, "'d'"), -(31738, 0, "' '"), -(31739, 0, "'o'"), -(31740, 0, "'f'"), -(31741, 0, "' '"), -(31742, 0, "'c'"), -(31743, 0, "'o'"), -(31744, 0, "'u'"), -(31745, 0, "'r'"), -(31746, 0, "'s'"), -(31747, 0, "'e'"), -(31748, 0, "','"), -(31750, 7, "''"), -(31750, 0, "'T'"), -(31751, 0, "'h'"), -(31752, 0, "'e'"), -(31752, 1, "''"), -(31751, 1, "''"), -(31750, 1, "''"), -(31750, 0, "'t'"), -(31751, 0, "'h'"), -(31752, 0, "'e'"), -(31773, 0, "' '"), -(31774, 0, "'+'"), -(31775, 0, "' '"), -(31776, 0, "'i'"), -(31777, 0, "'n'"), -(31778, 0, "'s'"), -(31779, 0, "'e'"), -(31780, 0, "'r'"), -(31781, 0, "'t'"), -(31782, 0, "'i'"), -(31783, 0, "'o'"), -(31784, 0, "'n'"), -(31785, 0, "' '"), -(31786, 0, "'a'"), -(31787, 0, "'p'"), -(31788, 0, "'p'"), -(31789, 0, "'r'"), -(31790, 0, "'o'"), -(31791, 0, "'a'"), -(31792, 0, "'c'"), -(31793, 0, "'k'"), -(31793, 1, "''"), -(31793, 0, "'h'"), -(31750, 0, "'K'"), -(31751, 0, "'e'"), -(31752, 0, "'v'"), -(31753, 0, "'i'"), -(31754, 0, "'n'"), -(31755, 0, "'''"), -(31756, 0, "'s'"), -(31757, 0, "' '"), -(31758, 3, "''"), -(31757, 1, "''"), -(31886, 7, "''"), -(31920, 3, "''"), -(31922, 39, "'I'"), -(31923, 0, "' '"), -(31924, 0, "'w'"), -(31925, 0, "'o'"), -(31926, 0, "'u'"), -(31927, 0, "'l'"), -(31928, 0, "'d'"), -(31929, 0, "'n'"), -(31929, 1, "''"), -(31929, 0, "' '"), -(31930, 0, "'n'"), -(31930, 1, "''"), -(31930, 0, "'h'"), -(31931, 0, "'a'"), -(31932, 0, "'v'"), -(31933, 0, "'e'"), -(31934, 0, "' '"), -(31929, 6, "'n'"), -(31930, 0, "'''"), -(31931, 0, "'t'"), -(31932, 0, "' '"), -(31933, 0, "'h'"), -(31934, 0, "'a'"), -(31935, 0, "'v'"), -(31936, 0, "'e'"), -(31937, 0, "' '"), -(31938, 0, "'t'"), -(31939, 0, "'h'"), -(31940, 0, "'o'"), -(31941, 0, "'u'"), -(31942, 0, "'g'"), -(31943, 0, "'h'"), -(31944, 0, "'t'"), -(31945, 0, "' '"), -(31946, 0, "'o'"), -(31947, 0, "'f'"), -(31948, 0, "' '"), -(31949, 0, "'t'"), -(31950, 0, "'h'"), -(31951, 0, "'a'"), -(31952, 0, "'t'"), -(31953, 0, "' '"), -(31954, 0, "'e'"), -(31955, 0, "'i'"), -(31956, 0, "'t'"), -(31957, 0, "'h'"), -(31958, 0, "'e'"), -(31959, 0, "'r'"), -(31960, 0, "'.'"), -(31924, 8, "'d'"), -(31925, 0, "'o'"), -(31926, 0, "'n'"), -(31927, 0, "'''"), -(31928, 0, "'t'"), -(31929, 0, "' '"), -(31930, 0, "'t'"), -(31931, 0, "'h'"), -(31932, 0, "'i'"), -(31933, 0, "'n'"), -(31934, 0, "'k'"), -(31935, 0, "' '"), -(31936, 0, "'I'"), -(31937, 0, "' '"), -(31938, 0, "'w'"), -(31939, 0, "'o'"), -(31940, 0, "'u'"), -(31941, 0, "'l'"), -(31942, 0, "'d'"), -(31943, 0, "' '"), -(31943, 1, "''"), -(31817, 12, "''"), -(31827, 1, "''"), -(31827, 0, "'.'"), -(31828, 0, "' '"), -(31829, 0, "'I'"), -(31830, 0, "'t'"), -(31831, 0, "'s'"), -(31832, 0, "' '"), -(31833, 0, "'t'"), -(31834, 0, "'h'"), -(31835, 0, "'e'"), -(31829, 25, "'I'"), -(31830, 0, "' '"), -(31831, 0, "'b'"), -(31832, 0, "'e'"), -(31833, 0, "'t'"), -(31879, 0, "' '"), -(31880, 0, "'t'"), -(31881, 0, "'h'"), -(31882, 0, "'a'"), -(31883, 0, "'t'"), -(31884, 0, "' '"), -(31885, 0, "'i'"), -(31886, 0, "'e'"), -(31887, 0, "'a'"), -(31887, 1, "''"), -(31886, 1, "''"), -(31886, 0, "'d'"), -(31887, 0, "'e'"), -(31888, 0, "'a'"), -(31889, 0, "' '"), -(31890, 0, "'o'"), -(31891, 0, "'v'"), -(31892, 0, "'e'"), -(31893, 0, "'r'"), -(31894, 0, "' '"), -(31895, 0, "'t'"), -(31896, 0, "'h'"), -(31897, 0, "'e'"), -(31898, 0, "' '"), -(31899, 0, "'l'"), -(31900, 0, "'a'"), -(31901, 0, "'s'"), -(31902, 0, "'t'"), -(31903, 0, "' '"), -(31904, 0, "'d'"), -(31905, 0, "'e'"), -(31906, 0, "'c'"), -(31907, 0, "'a'"), -(31908, 0, "'d'"), -(31909, 0, "'e'"), -(31918, 0, "' '"), -(31919, 0, "'a'"), -(31920, 0, "'n'"), -(31921, 0, "'y'"), -(31922, 0, "' '"), -(31923, 0, "'o'"), -(31924, 0, "'f'"), -(31925, 0, "' '"), -(31926, 0, "'t'"), -(31927, 0, "'h'"), -(31928, 0, "'e'"), -(31929, 0, "'m'"), -(31939, 0, "' '"), -(31940, 0, "'i'"), -(31941, 0, "'t'"), -(31982, 11, "'i'"), -(31983, 0, "'t'"), -(31984, 0, "' '"), -(31985, 0, "'e'"), -(31986, 0, "'i'"), -(31987, 0, "'t'"), -(31988, 0, "'h'"), -(31989, 0, "'e'"), -(31990, 0, "'r'"), -(37968, 9, "'W'"), -(37969, 0, "'h'"), -(37970, 0, "'y'"), -(37971, 0, "' '"), -(37972, 0, "'i'"), -(37973, 0, "'s'"), -(37998, 15, "'s'"), -(37999, 0, "'o'"), -(38000, 0, "' '"), -(38001, 0, "'s'"), -(38002, 0, "'l'"), -(38003, 0, "'o'"), -(38004, 0, "'w'"), -(38005, 0, "'?'"), -(38008, 9, "''"), -(38019, 0, "'j'"), -(38020, 0, "'u'"), -(38021, 0, "'s'"), -(38022, 0, "'t'"), -(38023, 0, "' '"), -(38027, 5, "''"), -(37968, 0, "'I'"), -(37969, 0, "' '"), -(37970, 0, "'d'"), -(37971, 0, "'o'"), -(37972, 0, "'n'"), -(37973, 0, "'''"), -(37974, 0, "'t'"), -(37975, 0, "' '"), -(37976, 0, "'g'"), -(37977, 0, "'e'"), -(37978, 0, "'t'"), -(37979, 0, "' '"), -(37980, 0, "'i'"), -(37981, 0, "'t'"), -(37982, 0, "' '"), -(37983, 0, "'-'"), -(37984, 0, "' '"), -(37985, 1, "''"), -(37985, 0, "'w'"), -(39399, 1, "''"), -(39398, 1, "''"), -(39397, 1, "''"), -(39396, 1, "''"), -(39395, 1, "''"), -(39394, 1, "''"), -(39394, 0, "'I'"), -(39395, 0, "'m'"), -(39396, 0, "' '"), -(39396, 1, "''"), -(39395, 1, "''"), -(39395, 0, "'''"), -(39396, 0, "'m'"), -(39397, 0, "' '"), -(39398, 0, "'d'"), -(39399, 0, "'y'"), -(39400, 0, "'i'"), -(39401, 0, "'n'"), -(39402, 0, "'g'"), -(39403, 0, "'.'"), -(39404, 4, "''"), -(39404, 1, "''"), -(39403, 1, "''"), -(39403, 0, "'!'"), -(39394, 0, "'S'"), -(39395, 0, "'t'"), -(39396, 0, "'o'"), -(39397, 0, "'p'"), -(39398, 0, "' '"), -(39399, 0, "'-'"), -(39400, 0, "' '"), -(39442, 4, "''"), -(39545, 66, "''"), -(39555, 1, "''"), -(39555, 0, "' '"), -(39556, 0, "'a'"), -(39557, 0, "'l'"), -(39558, 0, "'r'"), -(39559, 0, "'e'"), -(39560, 0, "'a'"), -(39561, 0, "'d'"), -(39562, 0, "'y'"), -(39563, 0, "' '"), -(39564, 0, "'h'"), -(39565, 0, "'a'"), -(39566, 0, "'s'"), -(39567, 0, "' '"), -(39568, 0, "'b'"), -(39569, 0, "'e'"), -(39570, 0, "'e'"), -(39571, 0, "'n'"), -(39572, 0, "' '"), -(39573, 0, "'r'"), -(39574, 0, "'e'"), -(39575, 0, "'p'"), -(39576, 0, "'l'"), -(39577, 0, "'a'"), -(39578, 0, "'c'"), -(39579, 0, "'e'"), -(39580, 0, "'d'"), -(39581, 0, "' '"), -(39582, 0, "'w'"), -(39583, 0, "'i'"), -(39584, 0, "'t'"), -(39585, 0, "'h'"), -(39586, 0, "' '"), -(39587, 0, "'w'"), -(39587, 1, "''"), -(39587, 0, "'a'"), -(39588, 0, "'u'"), -(39589, 0, "'t'"), -(39590, 0, "'o'"), -(39591, 0, "'m'"), -(39592, 0, "'e'"), -(39593, 0, "'r'"), -(39594, 0, "'g'"), -(39595, 0, "'e'"), -(39596, 0, "'-'"), -(39597, 0, "'r'"), -(39598, 0, "'s'"), -(39599, 8, "' '"), -(39632, 0, "' '"), -(39633, 0, "'S'"), -(39634, 0, "'o'"), -(39635, 0, "' '"), -(39636, 0, "'i'"), -(39637, 0, "'t'"), -(39638, 0, "'d'"), -(39639, 0, "' '"), -(39639, 1, "''"), -(39638, 1, "''"), -(39638, 0, "' '"), -(39639, 0, "'d'"), -(39640, 0, "'o'"), -(39641, 0, "'e'"), -(39642, 0, "'s'"), -(39643, 0, "'n'"), -(39644, 0, "'''"), -(39645, 0, "' '"), -(39645, 1, "''"), -(39645, 0, "'t'"), -(39646, 0, "' '"), -(39647, 0, "'m'"), -(39648, 0, "'a'"), -(39649, 0, "'t'"), -(39650, 0, "'t'"), -(39651, 0, "'e'"), -(39652, 0, "'r'"), -(39653, 70, "''"), -(39653, 0, "'.'"), -(39654, 0, "'n'"), -(39654, 0, "' '"), -(39655, 0, "'T'"), -(39656, 0, "'r'"), -(39657, 0, "'y'"), -(39658, 0, "' '"), -(39659, 0, "'n'"), -(39660, 0, "'o'"), -(39661, 0, "'t'"), -(39662, 0, "' '"), -(39663, 0, "'t'"), -(39664, 0, "'o'"), -(39665, 0, "' '"), -(39666, 0, "'t'"), -(39667, 0, "'h'"), -(39668, 0, "'i'"), -(39669, 0, "'n'"), -(39670, 0, "'k'"), -(39671, 0, "' '"), -(39672, 0, "'a'"), -(39673, 0, "'b'"), -(39674, 0, "'o'"), -(39675, 0, "'u'"), -(39676, 0, "'t'"), -(39677, 0, "' '"), -(39678, 0, "'i'"), -(39679, 0, "'t'"), -(39680, 0, "'.'"), -(39681, 0, "' '"), -(39682, 0, "'*'"), -(39683, 0, "'T'"), -(39684, 0, "'w'"), -(39685, 0, "'i'"), -(39686, 0, "'t'"), -(39687, 0, "'c'"), -(39688, 0, "'h'"), -(39689, 0, "'*'"), -(39683, 1, "''"), -(39683, 0, "'t'"), -(39689, 0, "'.'"), -(39681, 0, "' '"), -(39682, 0, "'D'"), -(39683, 0, "'e'"), -(39684, 0, "'f'"), -(39685, 0, "'i'"), -(39686, 0, "'n'"), -(39687, 0, "'i'"), -(39688, 0, "'t'"), -(39689, 0, "'e'"), -(39690, 0, "'l'"), -(39691, 0, "'y'"), -(39692, 0, "' '"), -(39693, 0, "'d'"), -(39694, 0, "'o'"), -(39695, 0, "'n'"), -(39696, 0, "'''"), -(39697, 0, "'t'"), -(39698, 0, "' '"), -(39699, 0, "'s'"), -(39700, 0, "'u'"), -(39701, 0, "'b'"), -(39702, 0, "'m'"), -(39703, 0, "'i'"), -(39704, 0, "'t'"), -(39705, 0, "' '"), -(39706, 0, "'a'"), -(39707, 0, "'n'"), -(39708, 0, "'y'"), -(39709, 0, "' '"), -(39710, 0, "'P'"), -(39711, 0, "'R'"), -(39712, 0, "'s'"), -(39713, 0, "' '"), -(39714, 0, "'t'"), -(39715, 0, "'o'"), -(39716, 0, "' '"), -(39717, 0, "'f'"), -(39718, 0, "'i'"), -(39682, 37, "''"), -(39681, 1, "''"), -(39681, 0, "' Definitely don't submit any PRs to fi'"), -(39719, 0, "'x'"), -(39720, 0, "' '"), -(39721, 0, "'a'"), -(39722, 0, "'l'"), -(39723, 0, "'l'"), -(39724, 0, "' '"), -(39725, 0, "'t'"), -(39726, 0, "'h'"), -(39727, 0, "'e'"), -(39728, 0, "' '"), -(39729, 0, "'l'"), -(39730, 0, "'o'"), -(39731, 0, "'w'"), -(39732, 0, "' '"), -(39733, 0, "'h'"), -(39734, 0, "'a'"), -(39735, 0, "'n'"), -(39736, 0, "'g'"), -(39737, 0, "'i'"), -(39738, 0, "'n'"), -(39739, 0, "'g'"), -(39740, 0, "' '"), -(39741, 0, "'f'"), -(39742, 0, "'r'"), -(39743, 0, "'u'"), -(39744, 0, "'i'"), -(39745, 0, "'t'"), -(39746, 0, "'.'"), -(37885, 0, "' '"), -(37886, 0, "'M'"), -(37887, 0, "'o'"), -(37888, 0, "'v'"), -(37889, 0, "'i'"), -(37890, 0, "'n'"), -(37891, 0, "'g'"), -(37892, 0, "' '"), -(37893, 0, "'f'"), -(37894, 0, "'r'"), -(37895, 0, "'o'"), -(37896, 0, "'m'"), -(37897, 0, "' '"), -(37898, 0, "'a'"), -(37899, 0, "'u'"), -(37900, 0, "'t'"), -(37901, 0, "'o'"), -(37902, 0, "'m'"), -(37903, 0, "'e'"), -(37904, 0, "'r'"), -(37905, 0, "'g'"), -(37906, 0, "'e'"), -(37907, 0, "' '"), -(37908, 0, "'t'"), -(37909, 0, "'o'"), -(37910, 0, "' '"), -(37911, 0, "'a'"), -(37912, 0, "'u'"), -(37912, 1, "''"), -(37911, 1, "''"), -(37911, 0, "'r'"), -(37912, 0, "'e'"), -(37913, 0, "'f'"), -(37914, 0, "'e'"), -(37915, 0, "'r'"), -(37916, 0, "'e'"), -(37917, 0, "'n'"), -(37918, 0, "'c'"), -(37919, 0, "'e'"), -(37920, 0, "'-'"), -(37921, 0, "'c'"), -(37922, 0, "'r'"), -(37923, 0, "'d'"), -(37924, 0, "'t'"), -(37925, 0, "'s'"), -(37911, 0, "'m'"), -(37912, 0, "'y'"), -(37913, 0, "' '"), -(37929, 66, "''"), -(37929, 0, "' '"), -(37930, 0, "'c'"), -(37931, 0, "'h'"), -(37932, 0, "'a'"), -(37933, 0, "'n'"), -(37934, 0, "'g'"), -(37935, 0, "'e'"), -(37936, 0, "'s'"), -(37937, 0, "':'"), -(37938, 0, "'n'"), -(37939, 0, "'n'"), -(37940, 0, "'-'"), -(37941, 0, "' '"), -(37942, 0, "'C'"), -(37943, 0, "'o'"), -(37944, 0, "'r'"), -(37945, 0, "'e'"), -(37942, 4, "'T'"), -(37943, 0, "'h'"), -(37944, 0, "'e'"), -(37945, 0, "' '"), -(37946, 0, "'c'"), -(37947, 0, "'o'"), -(37948, 0, "'r'"), -(37949, 0, "'e'"), -(37950, 0, "' '"), -(37951, 0, "'d'"), -(37952, 0, "'a'"), -(37953, 0, "'t'"), -(37954, 0, "'a'"), -(37955, 0, "' '"), -(37956, 0, "'s'"), -(37957, 0, "'t'"), -(37958, 0, "'r'"), -(37959, 0, "'u'"), -(37960, 0, "'c'"), -(37961, 0, "'t'"), -(37962, 0, "'u'"), -(37963, 0, "'r'"), -(37964, 0, "'e'"), -(37965, 0, "' '"), -(37966, 0, "'('"), -(37967, 0, "'l'"), -(37968, 0, "'i'"), -(37969, 0, "'s'"), -(37970, 0, "'t'"), -(37971, 0, "' '"), -(37972, 0, "'-'"), -(37973, 0, "'>'"), -(37974, 0, "' '"), -(37974, 1, "''"), -(37973, 1, "''"), -(37972, 1, "''"), -(37971, 1, "''"), -(37967, 4, "'t'"), -(37968, 0, "'r'"), -(37969, 0, "'e'"), -(37970, 0, "'e'"), -(37971, 0, "' '"), -(37972, 0, "'t'"), -(37973, 0, "'o'"), -(37974, 0, "' '"), -(37975, 0, "'l'"), -(37976, 0, "'i'"), -(37977, 0, "'s'"), -(37978, 0, "'t'"), -(37979, 0, "')'"), -(37980, 0, "'n'"), -(37981, 0, "'-'"), -(37982, 0, "' '"), -(37983, 0, "'R'"), -(37984, 0, "'e'"), -(37985, 0, "'m'"), -(37986, 0, "'o'"), -(37987, 0, "'v'"), -(37988, 0, "'e'"), -(37989, 0, "'d'"), -(37990, 0, "' '"), -(37991, 0, "'i'"), -(37992, 0, "'m'"), -(37993, 0, "'m'"), -(37994, 0, "'u'"), -(37995, 0, "'t'"), -(37996, 0, "'a'"), -(37997, 0, "'b'"), -(37998, 0, "'l'"), -(37999, 0, "'e'"), -(38000, 0, "'j'"), -(38001, 0, "'s'"), -(38002, 0, "'n'"), -(38003, 0, "'-'"), -(38004, 0, "' '"), -(38005, 0, "'R'"), -(38006, 0, "'e'"), -(38007, 0, "'m'"), -(38008, 0, "'o'"), -(38009, 0, "'v'"), -(38010, 0, "'e'"), -(38011, 0, "'d'"), -(38012, 0, "' '"), -(38013, 0, "'a'"), -(38014, 0, "'u'"), -(38015, 0, "'t'"), -(38016, 0, "'o'"), -(38017, 0, "'m'"), -(38018, 0, "'e'"), -(38019, 0, "'r'"), -(38020, 0, "'g'"), -(38021, 0, "'e'"), -(38022, 0, "'''"), -(38023, 0, "'s'"), -(38024, 0, "' '"), -(38025, 0, "'f'"), -(38026, 0, "'r'"), -(38027, 0, "'o'"), -(38028, 0, "'n'"), -(38029, 0, "'t'"), -(38030, 0, "'e'"), -(38031, 0, "'n'"), -(38032, 0, "'d'"), -(38033, 0, "' '"), -(38034, 0, "'/'"), -(38035, 0, "' '"), -(38036, 0, "'b'"), -(38037, 0, "'a'"), -(38038, 0, "'c'"), -(38039, 0, "'k'"), -(38040, 0, "'e'"), -(38041, 0, "'n'"), -(38042, 0, "'d'"), -(38043, 0, "' '"), -(38044, 0, "'p'"), -(38045, 0, "'r'"), -(38046, 0, "'o'"), -(38047, 0, "'t'"), -(38048, 0, "'o'"), -(38049, 0, "'c'"), -(38050, 0, "'o'"), -(38051, 0, "'l'"), -(38052, 0, "'n'"), -(38053, 0, "'-'"), -(38054, 0, "' '"), -(38055, 0, "'U'"), -(38056, 0, "'s'"), -(38057, 0, "'e'"), -(38058, 0, "' '"), -(38059, 0, "'d'"), -(38059, 1, "''"), -(38058, 1, "''"), -(38058, 0, "'d'"), -(38059, 0, "' '"), -(38060, 0, "'a'"), -(38061, 0, "' '"), -(38062, 0, "'d'"), -(38063, 0, "'i'"), -(38064, 0, "'f'"), -(38065, 0, "'f'"), -(38066, 0, "'e'"), -(38067, 0, "'r'"), -(38068, 0, "'e'"), -(38069, 0, "'n'"), -(38070, 0, "'t'"), -(38071, 0, "' '"), -(38072, 0, "'j'"), -(38073, 0, "'a'"), -(38074, 0, "'v'"), -(38075, 0, "'a'"), -(38076, 0, "'s'"), -(38077, 0, "'c'"), -(38078, 0, "'r'"), -(38079, 0, "'i'"), -(38080, 0, "'p'"), -(38081, 0, "'t'"), -(38082, 0, "' '"), -(38083, 0, "'s'"), -(38084, 0, "'t'"), -(38085, 0, "'y'"), -(38086, 0, "'l'"), -(38087, 0, "'e'"), -(38088, 0, "'n'"), -(38089, 0, "'n'"), -(38090, 0, "'W'"), -(38091, 0, "'h'"), -(38092, 0, "'i'"), -(38093, 0, "'c'"), -(38094, 0, "'h'"), -(38095, 0, "' '"), -(38090, 6, "'Which'"), -(37930, 0, "'r'"), -(37931, 0, "'e'"), -(37932, 0, "'s'"), -(37933, 0, "'u'"), -(37934, 0, "'l'"), -(37935, 0, "'t'"), -(37936, 0, "'e'"), -(37937, 0, "'d'"), -(37938, 0, "' '"), -(37939, 0, "'i'"), -(37940, 0, "'n'"), -(37941, 0, "' '"), -(37942, 0, "'c'"), -(37943, 0, "'h'"), -(37944, 0, "'a'"), -(37945, 0, "'n'"), -(37946, 0, "'g'"), -(37947, 0, "'e'"), -(37948, 0, "'s'"), -(37949, 0, "' '"), -(37950, 0, "'t'"), -(37951, 0, "'o'"), -(37952, 7, "''"), -(38110, 0, "' '"), -(38111, 0, "'o'"), -(38112, 0, "'f'"), -(38113, 0, "' '"), -(38114, 0, "'t'"), -(38115, 0, "'h'"), -(38116, 0, "'e'"), -(38117, 0, "'s'"), -(38118, 0, "'e'"), -(38119, 0, "' '"), -(38120, 0, "'c'"), -(38121, 0, "'h'"), -(38122, 0, "'a'"), -(38123, 0, "'n'"), -(38124, 0, "'g'"), -(38125, 0, "'e'"), -(38126, 0, "'s'"), -(38127, 0, "' '"), -(38128, 0, "'m'"), -(38129, 0, "'a'"), -(38130, 0, "'d'"), -(38131, 0, "'e'"), -(38132, 0, "' '"), -(38133, 0, "'t'"), -(38134, 0, "'h'"), -(38135, 0, "'e'"), -(38105, 31, "'W'"), -(38105, 1, "''"), -(38105, 0, "'H'"), -(38106, 0, "'o'"), -(38107, 0, "'w'"), -(38108, 0, "' '"), -(38109, 0, "'c'"), -(38110, 0, "'a'"), -(38111, 0, "'n'"), -(38112, 0, "' '"), -(38105, 8, "'T'"), -(38106, 0, "'h'"), -(38107, 0, "'e'"), -(38108, 0, "' '"), -(38109, 0, "'c'"), -(38110, 0, "'h'"), -(38111, 0, "'a'"), -(38112, 0, "'n'"), -(38113, 0, "'g'"), -(38114, 0, "'e'"), -(38115, 0, "' '"), -(38116, 0, "'f'"), -(38117, 0, "'r'"), -(38118, 0, "'o'"), -(38119, 0, "'m'"), -(38120, 0, "' '"), -(38121, 0, "'r'"), -(38122, 0, "'e'"), -(38123, 0, "'f'"), -(38124, 0, "'e'"), -(38125, 0, "'r'"), -(38126, 0, "'e'"), -(38127, 0, "'n'"), -(38128, 0, "'c'"), -(38129, 0, "'e'"), -(38130, 0, "'-'"), -(38131, 0, "'c'"), -(38132, 0, "'r'"), -(38133, 0, "'d'"), -(38134, 0, "'t'"), -(38135, 0, "'s'"), -(38136, 0, "' '"), -(38137, 0, "'t'"), -(38138, 0, "'o'"), -(38139, 0, "' '"), -(38140, 0, "'y'"), -(38141, 0, "'j'"), -(38142, 0, "'s'"), -(38143, 0, "' '"), -(38144, 0, "'i'"), -(38145, 0, "'s'"), -(38145, 1, "''"), -(38144, 1, "''"), -(38143, 1, "''"), -(38143, 0, "','"), -(38144, 0, "' '"), -(38145, 0, "'a'"), -(38146, 0, "'n'"), -(38147, 0, "'d'"), -(38148, 0, "' '"), -(38149, 0, "'y'"), -(38150, 0, "'j'"), -(38151, 0, "'s'"), -(38152, 0, "' '"), -(38153, 0, "'t'"), -(38154, 0, "'o'"), -(38155, 0, "' '"), -(38156, 0, "'m'"), -(38157, 0, "'y'"), -(38158, 0, "' '"), -(38159, 0, "'r'"), -(38160, 0, "'u'"), -(38161, 0, "'s'"), -(38162, 0, "'t'"), -(38163, 0, "' '"), -(38164, 0, "'c'"), -(38165, 0, "'o'"), -(38166, 0, "'d'"), -(38167, 0, "'e'"), -(38168, 0, "' '"), -(38115, 0, "'s'"), -(38150, 0, "'f'"), -(38151, 0, "'r'"), -(38152, 0, "'o'"), -(38153, 0, "'m'"), -(38154, 0, "' '"), -(38175, 0, "'a'"), -(38176, 0, "'r'"), -(38177, 0, "'e'"), -(38178, 0, "' '"), -(38179, 0, "'s'"), -(38180, 0, "'i'"), -(38181, 0, "'m'"), -(38182, 0, "'i'"), -(38183, 0, "'l'"), -(38184, 0, "'a'"), -(38185, 0, "'r'"), -(38186, 0, "'l'"), -(38187, 0, "'y'"), -(38188, 0, "' '"), -(38189, 0, "'b'"), -(38190, 0, "'i'"), -(38191, 0, "'g'"), -(38192, 0, "'.'"), -(38193, 0, "' '"), -(38193, 1, "''"), -(38193, 0, "' '"), -(38194, 0, "'I'"), -(38195, 0, "'t'"), -(38196, 0, "'s'"), -(38197, 0, "' '"), -(38198, 0, "'p'"), -(38199, 0, "'o'"), -(38200, 0, "'s'"), -(38201, 0, "'s'"), -(38202, 0, "'i'"), -(38203, 0, "'b'"), -(38204, 0, "'l'"), -(38205, 0, "'e'"), -(38206, 0, "' '"), -(38207, 0, "'I'"), -(38208, 0, "'''"), -(38209, 0, "'m'"), -(38210, 0, "' '"), -(38211, 0, "'m'"), -(38212, 0, "'i'"), -(38194, 0, "'S'"), -(38195, 0, "'o'"), -(38196, 0, "' '"), -(38197, 1, "''"), -(38197, 0, "'i'"), -(38216, 0, "'s'"), -(38217, 0, "'a'"), -(38218, 0, "'t'"), -(38219, 0, "'t'"), -(38220, 0, "'r'"), -(38221, 0, "'i'"), -(38222, 0, "'b'"), -(38223, 0, "'u'"), -(38224, 0, "'t'"), -(38225, 0, "'i'"), -(38226, 0, "'n'"), -(38227, 0, "'g'"), -(38228, 0, "' '"), -(38229, 0, "'t'"), -(38230, 0, "'h'"), -(38231, 0, "'e'"), -(38232, 0, "' '"), -(38233, 0, "'p'"), -(38234, 0, "'e'"), -(38235, 0, "'r'"), -(38236, 0, "'f'"), -(38237, 0, "'o'"), -(38238, 0, "'r'"), -(38239, 0, "'m'"), -(38240, 0, "'a'"), -(38241, 0, "'n'"), -(38242, 0, "'c'"), -(38243, 0, "'e'"), -(38216, 0, "'s'"), -(38216, 1, "''"), -(38233, 0, "'s'"), -(38234, 0, "'p'"), -(38235, 0, "'e'"), -(38236, 0, "'e'"), -(38237, 0, "'d'"), -(38238, 0, "'u'"), -(38239, 0, "'p'"), -(38240, 0, "'s'"), -(38241, 11, "' '"), -(38242, 0, "'h'"), -(38243, 0, "'e'"), -(38244, 0, "'r'"), -(38245, 0, "'e'"), -(38246, 0, "';'"), -(38247, 0, "' '"), -(38248, 0, "'w'"), -(38249, 0, "'h'"), -(38250, 0, "'e'"), -(38251, 0, "'r'"), -(38252, 0, "'a'"), -(38253, 0, "'s'"), -(38254, 0, "' '"), -(38246, 9, "'.'"), -(38247, 0, "'n'"), -(38248, 0, "'n'"), -(38249, 0, "'I'"), -(38250, 0, "' '"), -(38251, 0, "'s'"), -(38252, 0, "'u'"), -(38253, 0, "'p'"), -(38254, 0, "'p'"), -(38255, 0, "'o'"), -(38256, 0, "'s'"), -(38257, 0, "'e'"), -(38258, 0, "' '"), -(38259, 0, "'t'"), -(38260, 0, "'o'"), -(38261, 0, "' '"), -(38262, 0, "'a'"), -(38263, 0, "'n'"), -(38264, 0, "'s'"), -(38265, 0, "'w'"), -(38266, 0, "'e'"), -(38267, 0, "'r'"), -(38268, 0, "' '"), -(38269, 0, "'t'"), -(38270, 0, "'h'"), -(38271, 0, "'a'"), -(38272, 0, "'t'"), -(38103, 0, "'n'"), -(38104, 0, "'n'"), -(38105, 0, "'T'"), -(38106, 0, "'h'"), -(38106, 1, "''"), -(38105, 1, "''"), -(38105, 0, "'M'"), -(38106, 0, "'y'"), -(38107, 0, "' '"), -(38108, 0, "'c'"), -(38109, 0, "'o'"), -(38110, 0, "'d'"), -(38111, 0, "'e'"), -(38105, 7, "'W'"), -(38106, 0, "'e'"), -(38107, 0, "' '"), -(38108, 0, "'g'"), -(38109, 0, "'o'"), -(38110, 0, "'t'"), -(38111, 0, "' '"), -(38112, 0, "'1'"), -(38113, 0, "'0'"), -(38114, 0, "'x'"), -(38115, 0, "' '"), -(38116, 0, "'p'"), -(38117, 0, "'e'"), -(38118, 0, "'r'"), -(38119, 0, "'f'"), -(38120, 0, "'o'"), -(38121, 0, "'r'"), -(38122, 0, "'m'"), -(38123, 0, "'a'"), -(38124, 0, "'n'"), -(38125, 0, "'c'"), -(38126, 0, "'e'"), -(38127, 0, "' '"), -(38128, 0, "'f'"), -(38129, 0, "'r'"), -(38130, 0, "'o'"), -(38131, 0, "'m'"), -(38132, 0, "' '"), -(38133, 0, "'t'"), -(38134, 0, "'h'"), -(38135, 0, "'i'"), -(38136, 0, "'s'"), -(38137, 0, "' '"), -(38138, 0, "'c'"), -(38139, 0, "'h'"), -(38140, 0, "'a'"), -(38141, 0, "'n'"), -(38142, 0, "'g'"), -(38143, 0, "'e'"), -(38144, 0, "'.'"), -(38145, 0, "' '"), -(38146, 0, "'H'"), -(38147, 0, "'o'"), -(38148, 0, "'w'"), -(38149, 0, "' '"), -(38146, 4, "'B'"), -(38147, 0, "'u'"), -(38148, 0, "'t'"), -(38149, 0, "' '"), -(38150, 0, "'w'"), -(38151, 0, "'h'"), -(38152, 0, "'i'"), -(38153, 0, "'c'"), -(38154, 0, "'h'"), -(38155, 0, "' '"), -(38156, 0, "'c'"), -(38157, 0, "'h'"), -(38156, 2, "'p'"), -(38157, 0, "'a'"), -(38158, 0, "'r'"), -(38159, 0, "'t'"), -(38160, 0, "' '"), -(38161, 0, "'o'"), -(38162, 0, "'f'"), -(38163, 0, "' '"), -(38164, 0, "'t'"), -(38165, 0, "'h'"), -(38166, 0, "'i'"), -(38167, 0, "'s'"), -(38150, 18, "'t'"), -(38151, 0, "'o'"), -(38152, 0, "' '"), -(38153, 0, "'w'"), -(38154, 0, "'h'"), -(38155, 0, "'a'"), -(38156, 0, "'t'"), -(38157, 0, "' '"), -(38158, 0, "'s'"), -(38159, 0, "'h'"), -(38160, 0, "'o'"), -(38161, 0, "'u'"), -(38162, 0, "'l'"), -(38163, 0, "'d'"), -(38164, 0, "' '"), -(38165, 0, "'w'"), -(38166, 0, "'e'"), -(38167, 0, "' '"), -(38168, 0, "'a'"), -(38169, 0, "'t'"), -(38170, 0, "'t'"), -(38171, 0, "'r'"), -(38172, 0, "'i'"), -(38173, 0, "'b'"), -(38174, 0, "'u'"), -(38175, 0, "'t'"), -(38176, 0, "'e'"), -(38177, 0, "' '"), -(38178, 0, "'t'"), -(38179, 0, "'h'"), -(38180, 0, "'e'"), -(38181, 0, "' '"), -(38182, 0, "'s'"), -(38183, 0, "'p'"), -(38184, 0, "'e'"), -(38185, 0, "'e'"), -(38186, 0, "'d'"), -(38187, 0, "'u'"), -(38188, 0, "'p'"), -(38189, 0, "'?'"), -(38067, 0, "'.'"), -(38068, 0, "' '"), -(38069, 0, "'A'"), -(38070, 0, "'n'"), -(38071, 0, "'d'"), -(38072, 0, "' '"), -(38073, 0, "'a'"), -(38074, 0, "'l'"), -(38075, 0, "'l'"), -(38076, 0, "' '"), -(38077, 0, "'t'"), -(38078, 0, "'h'"), -(38079, 0, "'e'"), -(38080, 0, "' '"), -(38081, 0, "'U'"), -(38082, 0, "'i'"), -(38083, 0, "'n'"), -(38084, 0, "'t'"), -(38085, 0, "'8'"), -(38086, 0, "'A'"), -(38087, 0, "'r'"), -(38088, 0, "'r'"), -(38089, 0, "'a'"), -(38090, 0, "'y'"), -(38091, 0, "'s'"), -(38092, 0, "' '"), -(38093, 0, "'t'"), -(38094, 0, "'h'"), -(38095, 0, "'a'"), -(38096, 0, "'t'"), -(38097, 0, "' '"), -(38098, 0, "'a'"), -(38099, 0, "'p'"), -(38100, 0, "'p'"), -(38101, 0, "'e'"), -(38102, 0, "'a'"), -(38103, 0, "'r'"), -(38104, 0, "'e'"), -(38105, 0, "'d'"), -(38098, 8, "'p'"), -(38099, 0, "'o'"), -(38100, 0, "'p'"), -(38101, 0, "' '"), -(38102, 0, "'u'"), -(38103, 0, "'p'"), -(38104, 0, "' '"), -(38105, 0, "'t'"), -(38106, 0, "'h'"), -(38107, 0, "'r'"), -(38108, 0, "'o'"), -(38109, 0, "'u'"), -(38110, 0, "'g'"), -(38111, 0, "'h'"), -(38112, 0, "'o'"), -(38113, 0, "'u'"), -(38114, 0, "'t'"), -(38115, 0, "' '"), -(38116, 0, "'a'"), -(38117, 0, "'u'"), -(38118, 0, "'t'"), -(38119, 0, "'o'"), -(38120, 0, "'m'"), -(38121, 0, "'e'"), -(38122, 0, "'r'"), -(38123, 0, "'g'"), -(38124, 0, "'e'"), -(38125, 0, "'''"), -(38126, 0, "'s'"), -(38127, 0, "' '"), -(38127, 1, "''"), -(38126, 1, "''"), -(38125, 1, "''"), -(38125, 0, "' '"), -(38126, 0, "'f'"), -(38127, 0, "'o'"), -(38128, 0, "'r'"), -(38129, 0, "' '"), -(38130, 0, "'w'"), -(38131, 0, "'h'"), -(38132, 0, "'a'"), -(38133, 0, "'t'"), -(38134, 0, "'e'"), -(38135, 0, "'v'"), -(38136, 0, "'e'"), -(38137, 0, "'r'"), -(38138, 0, "' '"), -(38139, 0, "'r'"), -(38140, 0, "'e'"), -(38141, 0, "'a'"), -(38142, 0, "'s'"), -(38143, 0, "'o'"), -(38144, 0, "'n'"), -(38145, 0, "'.'"), -(38229, 40, "'I'"), -(38230, 0, "' '"), -(38231, 0, "'d'"), -(38232, 0, "'o'"), -(38233, 0, "'n'"), -(38234, 0, "'''"), -(38235, 0, "'t'"), -(38236, 0, "' '"), -(38237, 0, "'*'"), -(38238, 0, "'r'"), -(38239, 0, "'e'"), -(38240, 0, "'a'"), -(38241, 0, "'l'"), -(38242, 0, "'l'"), -(38243, 0, "'y'"), -(38244, 0, "'*'"), -(38245, 0, "' '"), -(38246, 0, "'k'"), -(38247, 0, "'n'"), -(38248, 0, "'o'"), -(38249, 0, "'w'"), -(38250, 0, "' '"), -(38251, 0, "'h'"), -(38252, 0, "'o'"), -(38253, 0, "'w'"), -(38254, 0, "' '"), -(38255, 0, "'t'"), -(38256, 0, "'o'"), -(38257, 0, "' '"), -(38258, 0, "'a'"), -(38259, 0, "'t'"), -(38260, 0, "'t'"), -(38261, 0, "'r'"), -(38262, 0, "'i'"), -(38263, 0, "'b'"), -(38264, 0, "'u'"), -(38265, 0, "'t'"), -(38266, 0, "'e'"), -(38267, 0, "' '"), -(38268, 0, "'t'"), -(38269, 0, "'h'"), -(38270, 0, "'a'"), -(38271, 0, "'t'"), -(38272, 0, "' '"), -(38273, 0, "'s'"), -(38274, 0, "'p'"), -(38275, 0, "'e'"), -(38276, 0, "'e'"), -(38277, 0, "'d'"), -(38278, 0, "'u'"), -(38279, 0, "'p'"), -(38280, 0, "' '"), -(38281, 0, "'a'"), -(38282, 0, "'m'"), -(38283, 0, "'o'"), -(38284, 0, "'n'"), -(38285, 0, "'g'"), -(38286, 0, "'s'"), -(38287, 0, "'t'"), -(38288, 0, "' '"), -(38289, 0, "'a'"), -(38290, 0, "'l'"), -(38291, 0, "'l'"), -(38292, 0, "' '"), -(38293, 0, "'t'"), -(38294, 0, "'h'"), -(38295, 0, "'e'"), -(38296, 0, "' '"), -(38297, 0, "'c'"), -(38298, 0, "'h'"), -(38299, 0, "'a'"), -(38300, 0, "'n'"), -(38301, 0, "'g'"), -(38302, 0, "'e'"), -(38303, 0, "'s'"), -(38304, 0, "'.'"), -(38395, 54, "''"), -(38391, 4, "'m'"), -(38392, 0, "'o'"), -(38393, 0, "'n'"), -(38394, 0, "'o'"), -(38395, 0, "'l'"), -(38396, 0, "'o'"), -(38396, 1, "''"), -(38396, 0, "'i'"), -(38397, 0, "'t'"), -(38398, 0, "'h'"), -(38399, 0, "'i'"), -(38400, 0, "'c'"), -(38401, 0, "'.'"), -(38404, 24, "'A'"), -(38405, 0, "'n'"), -(38406, 0, "'d'"), -(38407, 0, "' '"), -(38408, 0, "'y'"), -(38409, 0, "'e'"), -(38410, 0, "'s'"), -(38411, 0, "','"), -(38412, 0, "' '"), -(38413, 0, "'t'"), -(38414, 0, "'h'"), -(38415, 0, "'i'"), -(38416, 0, "'s'"), -(38417, 0, "' '"), -(38418, 0, "'i'"), -(38419, 0, "'s'"), -(38420, 0, "' '"), -(38421, 0, "'a'"), -(38422, 0, "' '"), -(38423, 0, "'r'"), -(38424, 0, "'e'"), -(38425, 0, "'a'"), -(38426, 0, "'s'"), -(38427, 0, "'o'"), -(38428, 0, "'n'"), -(38429, 0, "'a'"), -(38430, 0, "'b'"), -(38431, 0, "'i'"), -(38432, 0, "'l'"), -(38433, 0, "'e'"), -(38433, 1, "''"), -(38432, 1, "''"), -(38431, 1, "''"), -(38431, 0, "'l'"), -(38432, 0, "'e'"), -(38433, 0, "' '"), -(38434, 0, "'c'"), -(38435, 0, "'r'"), -(38436, 0, "'i'"), -(38437, 0, "'t'"), -(38438, 0, "'i'"), -(38439, 0, "'c'"), -(38440, 0, "'i'"), -(38441, 0, "'s'"), -(38442, 0, "'m'"), -(38443, 0, "' '"), -(38444, 0, "'o'"), -(38445, 0, "'f'"), -(38446, 0, "' '"), -(38447, 0, "'t'"), -(38448, 0, "'h'"), -(38449, 0, "'i'"), -(38450, 0, "'s'"), -(38451, 0, "' '"), -(38452, 0, "'a'"), -(38453, 0, "'p'"), -(38454, 0, "'p'"), -(38455, 0, "'a'"), -(38456, 0, "'r'"), -(38456, 1, "''"), -(38455, 1, "''"), -(38455, 0, "'r'"), -(38456, 0, "'o'"), -(38457, 0, "'a'"), -(38458, 0, "'c'"), -(38459, 0, "'h'"), -(38460, 0, "'.'"), -(38461, 0, "' '"), -(38462, 0, "'I'"), -(38463, 0, "' '"), -(38464, 0, "'c'"), -(38465, 0, "'o'"), -(38466, 0, "'v'"), -(38467, 0, "'e'"), -(38468, 0, "'r'"), -(38469, 0, "'e'"), -(38470, 0, "'d'"), -(38471, 0, "' '"), -(38472, 0, "'t'"), -(38473, 0, "'o'"), -(38474, 0, "'o'"), -(38475, 0, "' '"), -(38476, 0, "'m'"), -(38477, 0, "'u'"), -(38478, 0, "'c'"), -(38479, 0, "'h'"), -(38480, 0, "' '"), -(38481, 0, "'t'"), -(38482, 0, "'e'"), -(38483, 0, "'r'"), -(38484, 0, "'r'"), -(38485, 0, "'i'"), -(38486, 0, "'t'"), -(38487, 0, "'o'"), -(38488, 0, "'r'"), -(38489, 0, "'y'"), -(38490, 0, "' '"), -(38491, 0, "'h'"), -(38492, 0, "'e'"), -(38493, 0, "'r'"), -(38494, 0, "'e'"), -(38495, 0, "'.'"), -(38495, 0, "' '"), -(38496, 0, "'t'"), -(38497, 0, "'o'"), -(38498, 0, "' '"), -(38499, 0, "'b'"), -(38500, 0, "'e'"), -(38501, 0, "' '"), -(38502, 0, "'t'"), -(38503, 0, "'h'"), -(38504, 0, "'o'"), -(38505, 0, "'r'"), -(38506, 0, "'o'"), -(38507, 0, "'u'"), -(38508, 0, "'g'"), -(38509, 0, "'h'"), -(38502, 0, "'a'"), -(38503, 0, "'s'"), -(38504, 0, "' '"), -(38513, 0, "' '"), -(38514, 0, "'a'"), -(38515, 0, "'s'"), -(38516, 0, "' '"), -(38517, 0, "'I'"), -(38518, 0, "'''"), -(38519, 0, "'d'"), -(38520, 0, "' '"), -(38521, 0, "'l'"), -(38522, 0, "'i'"), -(38523, 0, "'k'"), -(38524, 0, "'e'"), -(38525, 0, "'.'"), -(38526, 0, "' '"), -(38527, 0, "'W'"), -(38528, 0, "'e'"), -(38527, 2, "'I'"), -(38528, 0, "' '"), -(38529, 0, "'d'"), -(38530, 0, "'i'"), -(38531, 0, "'d'"), -(38532, 0, "' '"), -(38533, 0, "'b'"), -(38534, 0, "'e'"), -(38535, 0, "'n'"), -(38536, 0, "'c'"), -(38537, 0, "'h'"), -(38538, 0, "'m'"), -(38539, 0, "'a'"), -(38540, 0, "'k'"), -(38541, 0, "'r'"), -(38542, 0, "' '"), -(38542, 1, "''"), -(38541, 1, "''"), -(38540, 1, "''"), -(38540, 0, "'r'"), -(38541, 0, "'k'"), -(38542, 0, "' '"), -(38543, 0, "'4'"), -(38544, 0, "' '"), -(38545, 0, "'d'"), -(38546, 0, "'i'"), -(38547, 0, "'f'"), -(38548, 0, "'f'"), -(38549, 0, "'e'"), -(38550, 0, "'r'"), -(38551, 0, "'e'"), -(38552, 0, "'n'"), -(38553, 0, "'t'"), -(38554, 0, "' '"), -(38555, 0, "'C'"), -(38556, 0, "'R'"), -(38557, 0, "'D'"), -(38558, 0, "'T'"), -(38559, 0, "' '"), -(38560, 0, "'i'"), -(38561, 0, "'m'"), -(38562, 0, "'p'"), -(38563, 0, "'l'"), -(38564, 0, "'e'"), -(38565, 0, "'m'"), -(38566, 0, "'e'"), -(38567, 0, "'n'"), -(38568, 0, "'t'"), -(38569, 0, "'a'"), -(38570, 0, "'t'"), -(38571, 0, "'i'"), -(38572, 0, "'o'"), -(38573, 0, "'n'"), -(38574, 0, "'s'"), -(38575, 0, "' '"), -(38576, 0, "'-'"), -(38577, 0, "' '"), -(38578, 0, "'2'"), -(38579, 0, "' '"), -(38580, 0, "'o'"), -(38581, 0, "'f'"), -(38582, 0, "' '"), -(38583, 0, "'w'"), -(38584, 0, "'h'"), -(38585, 0, "'i'"), -(38586, 0, "'c'"), -(38587, 0, "'h'"), -(38588, 0, "' '"), -(38589, 0, "'I'"), -(38590, 0, "' '"), -(38591, 0, "'w'"), -(38592, 0, "'r'"), -(38593, 0, "'o'"), -(38594, 0, "'t'"), -(38595, 0, "'e'"), -(38596, 0, "' '"), -(38597, 0, "'m'"), -(38598, 0, "'y'"), -(38599, 0, "'s'"), -(38600, 0, "'e'"), -(38601, 0, "'l'"), -(38602, 0, "'f'"), -(38603, 0, "' '"), -(38604, 0, "'f'"), -(38605, 0, "'r'"), -(38606, 0, "'o'"), -(38607, 0, "'m'"), -(38608, 0, "' '"), -(38609, 0, "'s'"), -(38610, 0, "'c'"), -(38611, 0, "'r'"), -(38612, 0, "'a'"), -(38613, 0, "'t'"), -(38614, 0, "'c'"), -(38615, 0, "'h'"), -(38575, 0, "' '"), -(38576, 0, "'h'"), -(38577, 0, "'e'"), -(38578, 0, "'r'"), -(38579, 0, "'e'"), -(38258, 10, "'d'"), -(38259, 0, "'i'"), -(38260, 0, "'s'"), -(38261, 0, "'t'"), -(38262, 0, "'r'"), -(38263, 0, "'i'"), -(38264, 0, "'b'"), -(38265, 0, "'u'"), -(38266, 0, "'t'"), -(38267, 0, "'e'"), -(38268, 0, "' '"), -(38305, 0, "' '"), -(38306, 0, "'t'"), -(38307, 0, "'h'"), -(38308, 0, "'a'"), -(38309, 0, "'t'"), -(38310, 0, "' '"), -(38311, 0, "'h'"), -(38312, 0, "'a'"), -(38313, 0, "'p'"), -(38314, 0, "'p'"), -(38315, 0, "'e'"), -(38316, 0, "'n'"), -(38317, 0, "'e'"), -(38318, 0, "'d'"), -(38417, 0, "' '"), -(38418, 0, "'M'"), -(38419, 0, "'a'"), -(38420, 0, "'y'"), -(38421, 0, "'b'"), -(38422, 0, "'e'"), -(38423, 0, "' '"), -(38424, 0, "'r'"), -(38425, 0, "'u'"), -(38426, 0, "'s'"), -(38427, 0, "'t'"), -(38428, 0, "' '"), -(38429, 0, "'i'"), -(38430, 0, "'s'"), -(38431, 0, "' '"), -(38432, 0, "'j'"), -(38433, 0, "'u'"), -(38434, 0, "'s'"), -(38435, 0, "'t'"), -(38436, 0, "' '"), -(38437, 0, "'t'"), -(38438, 0, "'h'"), -(38439, 0, "'a'"), -(38440, 0, "'t'"), -(38441, 0, "' '"), -(38442, 0, "'m'"), -(38443, 0, "'u'"), -(38444, 0, "'c'"), -(38445, 0, "'h'"), -(38446, 0, "' '"), -(38447, 0, "'f'"), -(38448, 0, "'a'"), -(38449, 0, "'s'"), -(38450, 0, "'t'"), -(38451, 0, "'e'"), -(38452, 0, "'r'"), -(38453, 0, "' '"), -(38454, 0, "'t'"), -(38455, 0, "'h'"), -(38456, 0, "'a'"), -(38457, 0, "'n'"), -(38458, 0, "' '"), -(38459, 0, "'j'"), -(38460, 0, "'a'"), -(38461, 0, "'v'"), -(38462, 0, "'a'"), -(38463, 0, "'s'"), -(38464, 0, "'c'"), -(38465, 0, "'r'"), -(38466, 0, "'i'"), -(38467, 0, "'p'"), -(38468, 0, "'t'"), -(38469, 0, "','"), -(38470, 0, "' '"), -(38471, 0, "'a'"), -(38472, 0, "'n'"), -(38473, 0, "'d'"), -(38474, 0, "' '"), -(38475, 0, "'a'"), -(38476, 0, "'l'"), -(38477, 0, "'l'"), -(38478, 0, "' '"), -(38479, 0, "'m'"), -(38480, 0, "'y'"), -(38481, 0, "' '"), -(38482, 0, "'d'"), -(38483, 0, "'i'"), -(38484, 0, "'s'"), -(38485, 0, "'c'"), -(38486, 0, "'u'"), -(38487, 0, "'s'"), -(38488, 0, "'s'"), -(38489, 0, "'i'"), -(38490, 0, "'o'"), -(38491, 0, "'n'"), -(38469, 0, "' '"), -(38470, 0, "'f'"), -(38471, 0, "'o'"), -(38472, 0, "'r'"), -(38473, 0, "' '"), -(38474, 0, "'t'"), -(38475, 0, "'h'"), -(38476, 0, "'i'"), -(38477, 0, "'s'"), -(38478, 0, "' '"), -(38479, 0, "'s'"), -(38480, 0, "'o'"), -(38481, 0, "'r'"), -(38482, 0, "'t'"), -(38483, 0, "' '"), -(38484, 0, "'o'"), -(38485, 0, "'f'"), -(38486, 0, "' '"), -(38487, 0, "'t'"), -(38488, 0, "'h'"), -(38489, 0, "'i'"), -(38490, 0, "'n'"), -(38491, 0, "'g'"), -(38515, 0, "' '"), -(38516, 0, "'o'"), -(38517, 0, "'f'"), -(38518, 0, "' '"), -(38519, 0, "'p'"), -(38520, 0, "'o'"), -(38521, 0, "'i'"), -(38522, 0, "'n'"), -(38523, 0, "'t'"), -(38524, 0, "'e'"), -(38525, 0, "'r'"), -(38526, 0, "'s'"), -(38527, 0, "' '"), -(38528, 0, "'i'"), -(38529, 0, "'s'"), -(38530, 0, "' '"), -(38531, 0, "'j'"), -(38532, 0, "'u'"), -(38533, 0, "'s'"), -(38534, 0, "'t'"), -(38535, 0, "' '"), -(38536, 0, "'m'"), -(38537, 0, "'a'"), -(38538, 0, "'d'"), -(38539, 0, "'e'"), -(38540, 0, "' '"), -(38541, 0, "'u'"), -(38542, 0, "'p'"), -(38543, 0, "'?'"), -(38543, 1, "''"), -(38543, 0, "'.'"), -(38546, 5, "'Y'"), -(38549, 1, "''"), -(38549, 0, "'.'"), -(38551, 1, "''"), -(38551, 0, "'T'"), -(38760, 0, "' '"), -(38761, 0, "'A'"), -(38762, 0, "'n'"), -(38763, 0, "'d'"), -(38764, 0, "' '"), -(38765, 0, "'t'"), -(38766, 0, "'h'"), -(38767, 0, "'i'"), -(38768, 0, "'s'"), -(38769, 0, "' '"), -(38770, 0, "'p'"), -(38771, 0, "'o'"), -(38772, 0, "'s'"), -(38773, 0, "'t'"), -(38774, 0, "' '"), -(38775, 0, "'i'"), -(38776, 0, "'s'"), -(38777, 0, "' '"), -(38546, 232, "'Yes. This is a reasonable criticism of this approach. I covered too much territory here to be as thorough as I'd like. I did benchmark 4 different CRDT implementations here - 2 of which I wrote myself from scratch. And this post is'"), -(38777, 0, "' '"), -(38778, 0, "'n'"), -(38779, 0, "'e'"), -(38780, 0, "'a'"), -(38781, 0, "'r'"), -(38782, 0, "'l'"), -(38783, 0, "'y'"), -(38784, 0, "' '"), -(38785, 0, "'7'"), -(38786, 0, "'0'"), -(38787, 0, "'0'"), -(38788, 0, "'0'"), -(38789, 0, "' '"), -(38790, 0, "'w'"), -(38791, 0, "'o'"), -(38792, 0, "'r'"), -(38793, 0, "'d'"), -(38794, 0, "'s'"), -(38795, 0, "' '"), -(38796, 0, "'a'"), -(38797, 0, "'l'"), -(38798, 0, "'r'"), -(38799, 0, "'e'"), -(38800, 0, "'a'"), -(38801, 0, "'d'"), -(38802, 0, "'y'"), -(38803, 0, "'.'"), -(38149, 8, "'A'"), -(38149, 1, "''"), -(38149, 0, "'T'"), -(38150, 0, "'j'"), -(38151, 0, "'e'"), -(38151, 1, "''"), -(38150, 1, "''"), -(38150, 0, "'h'"), -(38151, 0, "'e'"), -(38152, 8, "''"), -(38169, 0, "' '"), -(38170, 0, "'i'"), -(38171, 0, "'s'"), -(38172, 0, "' '"), -(38173, 0, "'t'"), -(38174, 0, "'o'"), -(38175, 0, "'t'"), -(38176, 0, "'a'"), -(38177, 0, "'l'"), -(38178, 0, "'l'"), -(38179, 0, "'y'"), -(38180, 0, "' '"), -(38181, 0, "'d'"), -(38182, 0, "'i'"), -(38183, 0, "'f'"), -(38184, 0, "'f'"), -(38185, 0, "'e'"), -(38186, 0, "'r'"), -(38187, 0, "'e'"), -(38188, 0, "'n'"), -(38189, 0, "'t'"), -(38190, 0, "' '"), -(38191, 0, "'('"), -(38191, 1, "''"), -(38190, 1, "''"), -(38190, 0, "'.'"), -(38191, 0, "' '"), -(38192, 0, "'('"), -(38193, 0, "'F'"), -(38194, 0, "'P'"), -(38195, 0, "' '"), -(38196, 0, "'j'"), -(38197, 0, "'a'"), -(38198, 0, "'v'"), -(38199, 0, "'a'"), -(38200, 0, "'s'"), -(38201, 0, "'c'"), -(38202, 0, "'r'"), -(38203, 0, "'i'"), -(38204, 0, "'p'"), -(38205, 0, "'t'"), -(38206, 0, "' '"), -(38207, 0, "'-'"), -(38208, 0, "'>'"), -(38209, 0, "' '"), -(38210, 0, "'i'"), -(38211, 0, "'m'"), -(38212, 0, "'p'"), -(38213, 0, "'e'"), -(38214, 0, "'r'"), -(38215, 0, "'i'"), -(38216, 0, "'t'"), -(38217, 0, "'i'"), -(38218, 0, "'v'"), -(38219, 0, "'e'"), -(38220, 0, "')'"), -(38215, 1, "''"), -(38215, 0, "'a'"), -(38270, 5, "''"), -(38269, 1, "''"), -(38269, 0, "'''"), -(38270, 0, "'m'"), -(38271, 0, "' '"), -(38272, 0, "'o'"), -(38273, 0, "'n'"), -(38274, 0, "'l'"), -(38275, 0, "'y'"), -(38276, 0, "' '"), -(38277, 0, "'g'"), -(38278, 0, "'u'"), -(38279, 0, "'e'"), -(38280, 0, "'s'"), -(38281, 0, "'s'"), -(38282, 0, "'i'"), -(38283, 0, "'n'"), -(38284, 0, "'g'"), -(38285, 9, "''"), -(38285, 5, "''"), -(38293, 10, "'a'"), -(38294, 0, "'s'"), -(38295, 0, "'s'"), -(38296, 0, "'i'"), -(38297, 0, "'g'"), -(38298, 0, "'n'"), -(38299, 0, "' '"), -(38300, 0, "'t'"), -(38300, 1, "''"), -(38299, 1, "''"), -(38351, 0, "' '"), -(38352, 0, "'A'"), -(38353, 0, "'n'"), -(38354, 0, "'d'"), -(38355, 0, "' '"), -(38356, 0, "'f'"), -(38357, 0, "'o'"), -(38358, 0, "'r'"), -(38359, 0, "' '"), -(38360, 0, "'w'"), -(38361, 0, "'h'"), -(38362, 0, "'a'"), -(38363, 0, "'t'"), -(38364, 0, "' '"), -(38365, 0, "'i'"), -(38366, 0, "'t'"), -(38367, 0, "'s'"), -(38368, 0, "' '"), -(38369, 0, "'w'"), -(38370, 0, "'o'"), -(38371, 0, "'r'"), -(38372, 0, "'t'"), -(38373, 0, "'h'"), -(38374, 0, "' '"), -(38375, 0, "'-'"), -(38376, 0, "' '"), -(38377, 0, "'I'"), -(38378, 0, "' '"), -(38379, 0, "'s'"), -(38380, 0, "'s'"), -(38381, 0, "'u'"), -(38381, 1, "''"), -(38380, 1, "''"), -(38380, 0, "'u'"), -(38381, 0, "'s'"), -(38382, 0, "'p'"), -(38383, 0, "'e'"), -(38384, 0, "'c'"), -(38385, 0, "'t'"), -(38386, 0, "' '"), -(38387, 0, "'j'"), -(38388, 0, "'u'"), -(38389, 0, "'s'"), -(38390, 0, "'t'"), -(38391, 0, "' '"), -(38392, 0, "'r'"), -(38393, 0, "'e'"), -(38394, 0, "'m'"), -(38395, 0, "'o'"), -(38396, 0, "'v'"), -(38397, 0, "'i'"), -(38398, 0, "'n'"), -(38399, 0, "'g'"), -(38400, 0, "' '"), -(38401, 0, "'i'"), -(38402, 0, "'m'"), -(38403, 0, "'m'"), -(38404, 0, "'u'"), -(38405, 0, "'t'"), -(38406, 0, "'a'"), -(38407, 0, "'b'"), -(38408, 0, "'l'"), -(38409, 0, "'e'"), -(38410, 0, "'j'"), -(38411, 0, "'s'"), -(38412, 0, "' '"), -(38413, 0, "'a'"), -(38414, 0, "'n'"), -(38415, 0, "'d'"), -(38416, 0, "' '"), -(38417, 0, "'t'"), -(38418, 0, "'i'"), -(38419, 0, "'d'"), -(38420, 0, "'y'"), -(38421, 0, "'i'"), -(38422, 0, "'n'"), -(38423, 0, "'g'"), -(38424, 0, "' '"), -(38425, 0, "'u'"), -(38426, 0, "'p'"), -(38427, 0, "' '"), -(38428, 0, "'a'"), -(38429, 0, "'u'"), -(38430, 0, "'t'"), -(38431, 0, "'o'"), -(38432, 0, "'m'"), -(38433, 0, "'e'"), -(38434, 0, "'r'"), -(38435, 0, "'g'"), -(38436, 0, "'e'"), -(38416, 0, "' '"), -(38417, 0, "'d'"), -(38418, 0, "'o'"), -(38419, 0, "'i'"), -(38420, 0, "'n'"), -(38421, 0, "'g'"), -(38422, 0, "' '"), -(38423, 0, "'s'"), -(38424, 0, "'o'"), -(38425, 0, "'m'"), -(38426, 0, "'e'"), -(38427, 0, "' '"), -(38428, 0, "'o'"), -(38429, 0, "'b'"), -(38430, 0, "'v'"), -(38431, 0, "'i'"), -(38432, 0, "'o'"), -(38433, 0, "'u'"), -(38434, 0, "'s'"), -(38435, 21, "''"), -(38435, 0, "' '"), -(38435, 1, "''"), -(38435, 0, "' tidying up automerge'"), -(38427, 8, "''"), -(38422, 5, "''"), -(38416, 6, "''"), -(38427, 10, "''"), -(38424, 3, "''"), -(38416, 8, "''"), -(38412, 4, "''"), -(38400, 12, "''"), -(38391, 9, "''"), -(38386, 5, "''"), -(38380, 6, "''"), -(38380, 0, "'su'"), -(38378, 4, "''"), -(38376, 2, "''"), -(38374, 2, "''"), -(38368, 6, "''"), -(38364, 4, "''"), -(38359, 5, "''"), -(38355, 4, "''"), -(38351, 4, "''"), -(38455, 0, "'m'"), -(38456, 0, "'y'"), -(38457, 0, "' '"), -(38462, 0, "' '"), -(38463, 0, "'c'"), -(38464, 0, "'o'"), -(38465, 0, "'d'"), -(38466, 0, "'e'"), -(38470, 5, "''"), -(38504, 22, "'b'"), -(38505, 0, "'e'"), -(38506, 0, "'c'"), -(38507, 0, "'a'"), -(38508, 0, "'u'"), -(38509, 0, "'s'"), -(38510, 0, "'e'"), -(38511, 0, "' '"), -(38512, 0, "'r'"), -(38513, 0, "'u'"), -(38514, 0, "'s'"), -(38515, 0, "'t'"), -(38516, 0, "' '"), -(38517, 0, "'i'"), -(38518, 0, "'s'"), -(38519, 0, "' '"), -(38520, 0, "'f'"), -(38521, 0, "'a'"), -(38522, 0, "'s'"), -(38523, 0, "'t'"), -(38512, 12, "'o'"), -(38513, 0, "'f'"), -(38512, 2, "'t'"), -(38513, 0, "'h'"), -(38514, 0, "'e'"), -(38515, 0, "' '"), -(38516, 0, "'r'"), -(38517, 0, "'u'"), -(38518, 0, "'s'"), -(38519, 0, "'t'"), -(38520, 0, "' '"), -(38521, 0, "'o'"), -(38522, 0, "'m'"), -(38523, 0, "'p'"), -(38523, 1, "''"), -(38522, 1, "''"), -(38521, 1, "''"), -(38521, 0, "'c'"), -(38522, 0, "'o'"), -(38523, 0, "'m'"), -(38524, 0, "'p'"), -(38525, 0, "'i'"), -(38526, 0, "'l'"), -(38527, 0, "'e'"), -(38528, 0, "'r'"), -(38512, 0, "'o'"), -(38513, 0, "'f'"), -(38514, 3, "''"), -(38528, 0, "' '"), -(38529, 0, "'s'"), -(38530, 0, "'p'"), -(38531, 0, "'e'"), -(38532, 0, "'c'"), -(38533, 0, "'i'"), -(38534, 0, "'f'"), -(38535, 0, "'i'"), -(38536, 0, "'c'"), -(38537, 0, "'s'"), -(38529, 9, "'s'"), -(38530, 0, "'t'"), -(38531, 0, "'u'"), -(38532, 0, "'f'"), -(38533, 0, "'f'"), -(38573, 12, "'f'"), -(38574, 0, "'a'"), -(38575, 0, "'k'"), -(38576, 0, "'e'"), -(38577, 0, "' '"), -(38578, 0, "'n'"), -(38579, 0, "'e'"), -(38580, 0, "'w'"), -(38581, 0, "'s'"), -(38573, 9, "'i'"), -(38574, 0, "'n'"), -(38575, 0, "'v'"), -(38576, 0, "'e'"), -(38577, 0, "'n'"), -(38578, 0, "'t'"), -(38579, 0, "'e'"), -(38580, 0, "'d'"), -(38834, 7, "''"), -(38833, 1, "''"), -(38834, 0, "' '"), -(38835, 0, "'S'"), -(38836, 0, "'o'"), -(38837, 0, "' '"), -(38838, 0, "'I'"), -(38839, 0, "' '"), -(38840, 0, "'s'"), -(38841, 0, "'u'"), -(38842, 0, "'p'"), -(38843, 0, "'p'"), -(38844, 0, "'o'"), -(38845, 0, "'s'"), -(38846, 0, "'e'"), -(38835, 12, "'I'"), -(38836, 0, "'f'"), -(38837, 0, "' '"), -(38838, 0, "'t'"), -(38839, 0, "'h'"), -(38840, 0, "'i'"), -(38841, 0, "'s'"), -(38842, 0, "' '"), -(38843, 0, "'b'"), -(38844, 0, "'o'"), -(38845, 0, "'t'"), -(38846, 0, "'h'"), -(38847, 0, "'e'"), -(38848, 0, "'r'"), -(38849, 0, "'s'"), -(38850, 0, "' '"), -(38851, 0, "'y'"), -(38852, 0, "'o'"), -(38853, 0, "'u'"), -(38854, 0, "','"), -(38855, 0, "' '"), -(38856, 0, "'p'"), -(38857, 0, "'l'"), -(38858, 0, "'e'"), -(38859, 0, "'a'"), -(38860, 0, "'s'"), -(38861, 0, "'e'"), -(38862, 0, "' '"), -(38863, 0, "'d'"), -(38864, 0, "'o'"), -(38865, 0, "' '"), -(38866, 0, "'t'"), -(38867, 0, "'h'"), -(38868, 0, "'o'"), -(38869, 0, "'s'"), -(38870, 0, "'e'"), -(38871, 0, "' '"), -(38872, 0, "'b'"), -(38873, 0, "'e'"), -(38874, 0, "'n'"), -(38875, 0, "'c'"), -(38876, 0, "'h'"), -(38877, 0, "'m'"), -(38878, 0, "'a'"), -(38879, 0, "'r'"), -(38880, 0, "'k'"), -(38881, 0, "'s'"), -(38882, 0, "'.'"), -(38883, 0, "' '"), -(38884, 0, "'I'"), -(38885, 0, "'''"), -(38886, 0, "'d'"), -(38887, 0, "' '"), -(38888, 0, "'l'"), -(38889, 0, "'o'"), -(38890, 0, "'v'"), -(38891, 0, "'e'"), -(38892, 0, "' '"), -(38893, 0, "'t'"), -(38894, 0, "'o'"), -(38895, 0, "' '"), -(38866, 6, "'m'"), -(38867, 0, "'o'"), -(38868, 0, "'r'"), -(38869, 0, "'e'"), -(38870, 0, "' '"), -(38871, 0, "'d'"), -(38872, 0, "'e'"), -(38873, 0, "'t'"), -(38874, 0, "'a'"), -(38875, 0, "'i'"), -(38876, 0, "'l'"), -(38877, 0, "'e'"), -(38878, 0, "'d'"), -(38879, 0, "' '"), -(38584, 320, "'Yes. This is a reasonable criticism of this approach. I covered too much territory here to be as thorough as I'd like. I did benchmark 4 different CRDT implementations here - 2 of which I wrote myself from scratch. And this post is nearly 7000 words. If this bothers you, please do more detailed benchmarks. I'd love to'"), -(38059, 8, "'m'"), -(38060, 0, "'a'"), -(38061, 0, "'l'"), -(38062, 0, "'a'"), -(38063, 0, "'r'"), -(38064, 0, "'k'"), -(38065, 0, "'y'"), -(38059, 7, "'protocol'"), -(38068, 0, "' '"), -(38069, 0, "'A'"), -(38070, 0, "'n'"), -(38071, 0, "'d'"), -(38072, 4, "''"), -(38077, 3, "'t'"), -(38078, 0, "'h'"), -(38079, 0, "'o'"), -(38080, 0, "'s'"), -(38081, 0, "'e'"), -(38147, 0, "' '"), -(38148, 0, "'a'"), -(38149, 0, "'r'"), -(38150, 0, "'e'"), -(38151, 0, "' '"), -(38152, 0, "'g'"), -(38153, 0, "'o'"), -(38154, 0, "'n'"), -(38155, 0, "'e'"), -(38156, 0, "' '"), -(38157, 0, "'t'"), -(38158, 0, "'o'"), -(38159, 0, "'o'"), -(38160, 0, "','"), -(38161, 0, "' '"), -(38162, 0, "'o'"), -(38163, 0, "'b'"), -(38164, 0, "'v'"), -(38165, 0, "'i'"), -(38166, 0, "'o'"), -(38167, 0, "'u'"), -(38168, 0, "'s'"), -(38169, 0, "'l'"), -(38170, 0, "'y'"), -(38610, 0, "'A'"), -(38611, 0, "'n'"), -(38612, 0, "'d'"), -(38613, 0, "','"), -(38614, 0, "' '"), -(38615, 1, "''"), -(38615, 0, "'y'"), -(38669, 161, "'I'"), -(38670, 0, "' '"), -(38670, 1, "''"), -(38670, 0, "'f'"), -(38671, 0, "' '"), -(38672, 0, "'t'"), -(38673, 0, "'h'"), -(38674, 0, "'i'"), -(38675, 0, "'s'"), -(38676, 0, "' '"), -(38677, 0, "'b'"), -(38678, 0, "'o'"), -(38679, 0, "'t'"), -(38680, 0, "'h'"), -(38681, 0, "'e'"), -(38682, 0, "'r'"), -(38683, 0, "'s'"), -(38684, 0, "','"), -(38685, 0, "' '"), -(38685, 1, "''"), -(38684, 1, "''"), -(38684, 0, "' '"), -(38685, 0, "'y'"), -(38686, 0, "'o'"), -(38687, 0, "'u'"), -(38688, 0, "'''"), -(38688, 1, "''"), -(38688, 0, "','"), -(38689, 0, "' '"), -(38690, 0, "'I'"), -(38691, 0, "'''"), -(38692, 0, "'d'"), -(38693, 0, "' '"), -(38694, 0, "'*'"), -(38695, 0, "'l'"), -(38696, 0, "'o'"), -(38697, 0, "'v'"), -(38698, 0, "'e'"), -(38699, 0, "'*'"), -(38700, 0, "' '"), -(38701, 0, "'t'"), -(38702, 0, "'o'"), -(38703, 0, "' '"), -(38701, 3, "'f'"), -(38702, 0, "'o'"), -(38703, 0, "'r'"), -(38704, 0, "' '"), -(38705, 0, "'s'"), -(38706, 0, "'o'"), -(38707, 0, "'m'"), -(38708, 0, "'e'"), -(38709, 0, "'o'"), -(38710, 0, "'n'"), -(38711, 0, "'e'"), -(38712, 0, "' '"), -(38713, 0, "'t'"), -(38714, 0, "'o'"), -(38715, 0, "' '"), -(38716, 0, "'p'"), -(38717, 0, "'u'"), -(38718, 0, "'l'"), -(38719, 0, "'l'"), -(38720, 0, "' '"), -(38721, 0, "'a'"), -(38722, 0, "'p'"), -(38723, 0, "'a'"), -(38724, 0, "'r'"), -(38725, 0, "'t'"), -(38726, 0, "' '"), -(38727, 0, "'e'"), -(38728, 0, "'a'"), -(38729, 0, "'c'"), -(38730, 0, "'h'"), -(38731, 0, "' '"), -(38732, 0, "'o'"), -(38733, 0, "'f'"), -(38734, 0, "' '"), -(38735, 0, "'t'"), -(38736, 0, "'h'"), -(38737, 0, "'e'"), -(38738, 0, "'s'"), -(38739, 0, "'e'"), -(38740, 0, "' '"), -(38741, 0, "'c'"), -(38742, 0, "'h'"), -(38743, 0, "'a'"), -(38744, 0, "'n'"), -(38745, 0, "'g'"), -(38746, 0, "'e'"), -(38747, 0, "'s'"), -(38748, 0, "' '"), -(38749, 0, "'a'"), -(38750, 0, "'n'"), -(38751, 0, "'d'"), -(38752, 0, "' '"), -(38741, 12, "'p'"), -(38742, 0, "'e'"), -(38743, 0, "'r'"), -(38744, 0, "'f'"), -(38745, 0, "'o'"), -(38746, 0, "'r'"), -(38747, 0, "'m'"), -(38748, 0, "'a'"), -(38749, 0, "'n'"), -(38750, 0, "'c'"), -(38751, 0, "'e'"), -(38752, 0, "' '"), -(38753, 0, "'d'"), -(38754, 0, "'i'"), -(38755, 0, "'f'"), -(38756, 0, "'f'"), -(38757, 0, "'e'"), -(38758, 0, "'r'"), -(38759, 0, "'e'"), -(38760, 0, "'n'"), -(38761, 0, "'c'"), -(38762, 0, "'e'"), -(38763, 0, "'s'"), -(38764, 0, "' '"), -(38765, 0, "'a'"), -(38766, 0, "'n'"), -(38767, 0, "'d'"), -(38768, 0, "' '"), -(38769, 0, "'s'"), -(38770, 0, "'h'"), -(38771, 0, "'o'"), -(38772, 0, "'w'"), -(38773, 0, "' '"), -(38774, 0, "'m'"), -(38775, 0, "'e'"), -(38768, 8, "' '"), -(38769, 0, "'p'"), -(38770, 0, "'u'"), -(38771, 0, "'b'"), -(38772, 0, "'l'"), -(38773, 0, "'i'"), -(38774, 0, "'s'"), -(38775, 0, "'h'"), -(38776, 0, "' '"), -(38777, 0, "'a'"), -(38778, 0, "' '"), -(38779, 0, "'m'"), -(38780, 0, "'o'"), -(38781, 0, "'r'"), -(38782, 0, "'e'"), -(38783, 0, "' '"), -(38784, 0, "'d'"), -(38785, 0, "'e'"), -(38786, 0, "'t'"), -(38787, 0, "'a'"), -(38788, 0, "'i'"), -(38789, 0, "'l'"), -(38790, 0, "'e'"), -(38791, 0, "'d'"), -(38792, 0, "' '"), -(38793, 0, "'g'"), -(38794, 0, "'u'"), -(38795, 0, "'i'"), -(38796, 0, "'d'"), -(38797, 0, "'e'"), -(38798, 0, "'.'"), -(38799, 0, "' '"), -(38800, 0, "'I'"), -(38801, 0, "'''"), -(38802, 0, "'d'"), -(38803, 0, "' '"), -(38804, 0, "'r'"), -(38805, 0, "'e'"), -(38806, 0, "'a'"), -(38807, 0, "'d'"), -(38808, 0, "' '"), -(38809, 0, "'t'"), -(38810, 0, "'h'"), -(38811, 0, "'e'"), -(38812, 0, "' '"), -(38813, 0, "'h'"), -(38814, 0, "'e'"), -(38815, 0, "'c'"), -(38816, 0, "'k'"), -(38817, 0, "' '"), -(38818, 0, "'o'"), -(38819, 0, "'u'"), -(38820, 0, "'t'"), -(38821, 0, "' '"), -(38822, 0, "'o'"), -(38823, 0, "'f'"), -(38824, 0, "' '"), -(38825, 0, "'t'"), -(38826, 0, "'h'"), -(38827, 0, "'a'"), -(38828, 0, "'t'"), -(38829, 0, "'.'"), -(38830, 104, "''"), -(38765, 0, "'b'"), -(38766, 0, "'e'"), -(38767, 0, "'t'"), -(38768, 0, "'w'"), -(38769, 0, "'e'"), -(38770, 0, "'e'"), -(38771, 0, "'n'"), -(38772, 0, "' '"), -(38773, 0, "'i'"), -(38774, 0, "'m'"), -(38775, 0, "'p'"), -(38776, 0, "'l'"), -(38777, 0, "'e'"), -(38778, 0, "'m'"), -(38779, 0, "'e'"), -(38780, 0, "'n'"), -(38781, 0, "'t'"), -(38782, 0, "'a'"), -(38783, 0, "'t'"), -(38784, 0, "'i'"), -(38785, 0, "'o'"), -(38786, 0, "'n'"), -(38787, 0, "'s'"), -(38788, 0, "' '"), -(38789, 0, "'I'"), -(38790, 0, "' '"), -(38791, 0, "'s'"), -(38792, 0, "'h'"), -(38793, 0, "'o'"), -(38794, 0, "'w'"), -(38795, 0, "' '"), -(38796, 0, "'h'"), -(38797, 0, "'e'"), -(38798, 0, "'r'"), -(38799, 0, "'e'"), -(38800, 0, "' '"), -(38866, 0, "'n'"), -(38867, 0, "'n'"), -(38868, 0, "'n'"), -(38869, 0, "'#'"), -(38870, 0, "'#'"), -(38871, 0, "'#'"), -(38872, 0, "' '"), -(38873, 0, "'Y'"), -(38874, 0, "'o'"), -(38875, 0, "'u'"), -(38876, 0, "' '"), -(38877, 0, "'h'"), -(38878, 0, "'a'"), -(38879, 0, "'v'"), -(38880, 0, "'e'"), -(38881, 0, "'n'"), -(38882, 0, "'''"), -(38883, 0, "'t'"), -(38884, 0, "' '"), -(38885, 0, "'p'"), -(38886, 0, "'u'"), -(38887, 0, "'b'"), -(38888, 0, "'l'"), -(38889, 0, "'i'"), -(38890, 0, "'s'"), -(38891, 0, "'h'"), -(38892, 0, "'e'"), -(38893, 0, "'d'"), -(38873, 21, "'W'"), -(38874, 0, "'h'"), -(38875, 0, "'e'"), -(38876, 0, "'r'"), -(38877, 0, "'e'"), -(38878, 0, "' '"), -(38879, 0, "'i'"), -(38880, 0, "'s'"), -(38881, 0, "' '"), -(38882, 0, "'t'"), -(38883, 0, "'h'"), -(38884, 0, "'e'"), -(38885, 0, "' '"), -(38886, 0, "'c'"), -(38887, 0, "'o'"), -(38888, 0, "'d'"), -(38889, 0, "'e'"), -(38890, 0, "' '"), -(38891, 0, "'t'"), -(38892, 0, "'o'"), -(38893, 0, "' '"), -(38894, 0, "'r'"), -(38895, 0, "'e'"), -(38896, 0, "'-'"), -(38897, 0, "'r'"), -(38898, 0, "'u'"), -(38899, 0, "'n'"), -(38900, 0, "' '"), -(38901, 0, "'y'"), -(38902, 0, "'o'"), -(38903, 0, "'u'"), -(38904, 0, "'r'"), -(38905, 0, "' '"), -(38906, 0, "'b'"), -(38907, 0, "'e'"), -(38908, 0, "'n'"), -(38909, 0, "'c'"), -(38910, 0, "'h'"), -(38911, 0, "'m'"), -(38912, 0, "'a'"), -(38913, 0, "'r'"), -(38914, 0, "'k'"), -(38915, 0, "'s'"), -(38916, 0, "'?'"), -(38873, 0, "'I'"), -(38874, 0, "' '"), -(38875, 0, "'d'"), -(38876, 0, "'o'"), -(38877, 0, "'n'"), -(38878, 0, "'''"), -(38879, 0, "'t'"), -(38880, 0, "' '"), -(38881, 0, "'b'"), -(38882, 0, "'e'"), -(38883, 0, "'l'"), -(38884, 0, "'i'"), -(38885, 0, "'e'"), -(38886, 0, "'v'"), -(38887, 0, "'e'"), -(38888, 0, "' '"), -(38889, 0, "'y'"), -(38890, 0, "'o'"), -(38891, 0, "'u'"), -(38892, 0, "'.'"), -(38893, 0, "' '"), -(38873, 21, "''"), -(38917, 0, "' '"), -(38918, 0, "'I'"), -(38919, 0, "' '"), -(38920, 0, "'w'"), -(38921, 0, "'a'"), -(38922, 0, "'n'"), -(38923, 0, "'t'"), -(38924, 0, "' '"), -(38925, 0, "'t'"), -(38926, 0, "'o'"), -(38927, 0, "' '"), -(38928, 0, "'v'"), -(38929, 0, "'e'"), -(38930, 0, "'r'"), -(38931, 0, "'i'"), -(38932, 0, "'f'"), -(38933, 0, "'y'"), -(38934, 0, "' '"), -(38935, 0, "'&'"), -(38935, 1, "''"), -(38935, 0, "'t'"), -(38935, 1, "''"), -(38934, 1, "''"), -(38928, 6, "'p'"), -(38929, 0, "'l'"), -(38930, 0, "'a'"), -(38931, 0, "'y'"), -(38932, 0, "'n'"), -(38933, 0, "'n'"), -(38934, 0, "'T'"), -(38935, 0, "'h'"), -(38936, 0, "'e'"), -(38937, 0, "' '"), -(38938, 0, "'b'"), -(38939, 0, "'e'"), -(38940, 0, "'n'"), -(38941, 0, "'c'"), -(38942, 0, "'h'"), -(38943, 0, "'m'"), -(38944, 0, "'a'"), -(38945, 0, "'r'"), -(38946, 0, "'k'"), -(38947, 0, "' '"), -(38948, 0, "'c'"), -(38949, 0, "'o'"), -(38950, 0, "'d'"), -(38951, 0, "'e'"), -(38952, 0, "' '"), -(38953, 0, "'f'"), -(38954, 0, "'o'"), -(38955, 0, "'r'"), -(38956, 0, "' '"), -(38957, 0, "'y'"), -(38958, 0, "'j'"), -(38959, 0, "'s'"), -(38960, 0, "' '"), -(38961, 0, "'a'"), -(38962, 0, "'n'"), -(38963, 0, "'d'"), -(38964, 0, "' '"), -(38965, 0, "'a'"), -(38966, 0, "'u'"), -(38967, 0, "'t'"), -(38968, 0, "'o'"), -(38969, 0, "'m'"), -(38970, 0, "'e'"), -(38971, 0, "'r'"), -(38972, 0, "'g'"), -(38973, 0, "'e'"), -(38974, 0, "' '"), -(38975, 0, "'I'"), -(38976, 0, "'''"), -(38977, 0, "'m'"), -(38978, 0, "' '"), -(38979, 0, "'r'"), -(38980, 0, "'u'"), -(38981, 0, "'n'"), -(38982, 0, "'n'"), -(38983, 0, "'i'"), -(38984, 0, "'n'"), -(38985, 0, "'g'"), -(38986, 0, "' '"), -(38987, 0, "'i'"), -(38988, 0, "'s'"), -(38989, 0, "' '"), -(38990, 0, "'['"), -(38991, 0, "'h'"), -(38992, 0, "'e'"), -(38993, 0, "'r'"), -(38994, 0, "'e'"), -(38995, 0, "']'"), -(38996, 0, "'('"), -(38997, 0, "'https://gist.github.com/josephg/13efc1444660c07870fcbd0b3e917638'"), -(39061, 0, "')'"), -(39062, 0, "'.'"), -(39063, 0, "' '"), -(39064, 0, "'F'"), -(39065, 0, "'o'"), -(39066, 0, "'r'"), -(39067, 0, "' '"), -(39068, 0, "'m'"), -(39069, 0, "'y'"), -(39070, 0, "' '"), -(39071, 0, "'r'"), -(39072, 0, "'u'"), -(39073, 0, "'s'"), -(39074, 0, "'t'"), -(39075, 0, "' '"), -(39076, 0, "'i'"), -(39077, 0, "'m'"), -(39078, 0, "'p'"), -(39079, 0, "'l'"), -(39080, 0, "'e'"), -(39081, 0, "'m'"), -(39082, 0, "'e'"), -(39083, 0, "'n'"), -(39084, 0, "'t'"), -(39085, 0, "'a'"), -(39086, 0, "'t'"), -(39087, 0, "'i'"), -(39088, 0, "'o'"), -(39089, 0, "'n'"), -(39090, 0, "' '"), -(39091, 0, "'I'"), -(39092, 0, "'''"), -(39093, 0, "'m'"), -(39094, 0, "' '"), -(39095, 0, "'b'"), -(39096, 0, "'e'"), -(39097, 0, "'n'"), -(39098, 0, "'c'"), -(39099, 0, "'h'"), -(39100, 0, "'m'"), -(39101, 0, "'a'"), -(39102, 0, "'r'"), -(39103, 0, "'k'"), -(39104, 0, "'i'"), -(39105, 0, "'n'"), -(39106, 0, "'g'"), -(39107, 0, "' '"), -(39108, 0, "'['"), -(39109, 0, "'t'"), -(39110, 0, "'h'"), -(39111, 0, "'i'"), -(39112, 0, "'s'"), -(39113, 0, "' '"), -(39114, 0, "'c'"), -(39115, 0, "'o'"), -(39116, 0, "'d'"), -(39117, 0, "'e'"), -(39118, 0, "']'"), -(39119, 0, "'('"), -(39120, 0, "'https://github.com/josephg/text-crdt-rust/tree/ba20b6386c0472958f33024ce0b806e75470e1ca'"), -(39207, 0, "')'"), -(39208, 0, "'.'"), -(39209, 0, "' '"), -(39210, 0, "'R'"), -(39211, 0, "'u'"), -(39212, 0, "'n'"), -(39213, 0, "' '"), -(39214, 0, "'i'"), -(39215, 0, "'t'"), -(39216, 0, "' '"), -(39217, 0, "'w'"), -(39218, 0, "'i'"), -(39219, 0, "'t'"), -(39220, 0, "'h'"), -(39221, 0, "' '"), -(39222, 0, "'`'"), -(39223, 0, "'c'"), -(39224, 0, "'a'"), -(39225, 0, "'r'"), -(38991, 4, "'i'"), -(38992, 0, "'n'"), -(38993, 0, "' '"), -(38994, 0, "'t'"), -(38995, 0, "'h'"), -(38996, 0, "'i'"), -(38997, 0, "'s'"), -(38998, 0, "' '"), -(38999, 0, "'g'"), -(39000, 0, "'i'"), -(39001, 0, "'t'"), -(39002, 0, "'h'"), -(39003, 0, "'u'"), -(39004, 0, "'b'"), -(39005, 0, "' '"), -(39006, 0, "'g'"), -(39007, 0, "'i'"), -(39008, 0, "'s'"), -(39009, 0, "'t'"), -(39078, 1, "''"), -(39078, 0, "'n'"), -(39079, 0, "'n'"), -(39242, 0, "'g'"), -(39243, 0, "'o'"), -(39244, 0, "' '"), -(39245, 0, "'c'"), -(39246, 0, "'r'"), -(39247, 0, "'i'"), -(39248, 0, "'t'"), -(39249, 0, "'e'"), -(39250, 0, "'r'"), -(39251, 0, "'i'"), -(39252, 0, "'o'"), -(39253, 0, "'n'"), -(39254, 0, "' '"), -(39255, 0, "'y'"), -(39256, 0, "'j'"), -(39257, 0, "'s'"), -(39258, 0, "'`'"), -(39259, 0, "' '"), -(39260, 0, "'o'"), -(39261, 0, "'r'"), -(39262, 0, "' '"), -(39263, 0, "'`'"), -(39264, 0, "'c'"), -(39265, 0, "'a'"), -(39266, 0, "'r'"), -(39267, 0, "'g'"), -(39268, 0, "'o'"), -(39269, 0, "' '"), -(39270, 0, "'c'"), -(39271, 0, "'r'"), -(39272, 0, "'i'"), -(39273, 0, "'t'"), -(39274, 0, "'e'"), -(39275, 0, "'r'"), -(39276, 0, "'i'"), -(39277, 0, "'o'"), -(39278, 0, "'n'"), -(39279, 0, "' '"), -(39280, 0, "'r'"), -(39281, 0, "'o'"), -(39282, 0, "'p'"), -(39283, 0, "'e'"), -(39284, 0, "'y'"), -(39285, 0, "'`'"), -(39286, 0, "' '"), -(39287, 0, "'f'"), -(39288, 0, "'o'"), -(39289, 0, "'r'"), -(39290, 0, "' '"), -(39291, 0, "'t'"), -(39292, 0, "'h'"), -(39293, 0, "'e'"), -(39294, 0, "' '"), -(39295, 0, "'r'"), -(39296, 0, "'o'"), -(39297, 0, "'p'"), -(39298, 0, "'e'"), -(39299, 0, "'y'"), -(39300, 0, "' '"), -(39301, 0, "'b'"), -(39302, 0, "'a'"), -(39303, 0, "'s'"), -(39304, 0, "'e'"), -(39305, 0, "'l'"), -(39306, 0, "'i'"), -(39307, 0, "'n'"), -(39308, 0, "'e'"), -(39309, 0, "'.'"), -(39310, 0, "' '"), -(39311, 0, "'T'"), -(39312, 0, "'u'"), -(39313, 0, "'r'"), -(39314, 0, "'n'"), -(39315, 0, "' '"), -(39316, 0, "'o'"), -(39317, 0, "'n'"), -(39318, 0, "' '"), -(39319, 0, "'o'"), -(39320, 0, "'a'"), -(39320, 1, "''"), -(39319, 1, "''"), -(39319, 0, "'a'"), -(39320, 0, "'n'"), -(39321, 0, "'d'"), -(39322, 0, "' '"), -(39323, 0, "'o'"), -(39324, 0, "'f'"), -(39325, 0, "'f'"), -(39326, 0, "' '"), -(39327, 0, "'t'"), -(39328, 0, "'h'"), -(39329, 0, "'e'"), -(39330, 0, "' '"), -(39331, 0, "'i'"), -(39332, 0, "'n'"), -(39333, 0, "'l'"), -(39334, 0, "'i'"), -(39335, 0, "'n'"), -(39336, 0, "'e'"), -(39337, 0, "' '"), -(39338, 0, "'r'"), -(39339, 0, "'o'"), -(39340, 0, "'p'"), -(39341, 0, "'e'"), -(39342, 0, "' '"), -(39343, 0, "'u'"), -(39344, 0, "'p'"), -(39345, 0, "'d'"), -(39346, 0, "'a'"), -(39347, 0, "'t'"), -(39348, 0, "'e'"), -(39349, 0, "'s'"), -(39350, 0, "' '"), -(39351, 0, "'i'"), -(39352, 0, "'n'"), -(39353, 0, "' '"), -(39351, 3, "'n'"), -(39352, 0, "'e'"), -(39353, 0, "'a'"), -(39354, 0, "'r'"), -(39355, 0, "' '"), -(39356, 0, "'t'"), -(39357, 0, "'h'"), -(39358, 0, "'e'"), -(39359, 0, "' '"), -(39360, 0, "'o'"), -(39360, 1, "''"), -(39350, 10, "' '"), -(39351, 0, "'m'"), -(39352, 0, "'y'"), -(39353, 0, "' '"), -(39354, 0, "'c'"), -(39355, 0, "'o'"), -(39356, 0, "'m'"), -(39357, 0, "'m'"), -(39358, 0, "'e'"), -(39359, 0, "'n'"), -(39360, 0, "'t'"), -(39361, 0, "'i'"), -(39362, 0, "'n'"), -(39363, 0, "'g'"), -(39364, 0, "' '"), -(39365, 0, "'o'"), -(39366, 0, "'u'"), -(39367, 0, "'t'"), -(39368, 0, "' '"), -(39369, 0, "'l'"), -(39370, 0, "'i'"), -(39371, 0, "'n'"), -(39372, 0, "'e'"), -(39373, 0, "'s'"), -(39374, 0, "' '"), -(39375, 0, "'n'"), -(39376, 0, "'e'"), -(39377, 0, "'a'"), -(39378, 0, "'r'"), -(39379, 0, "' '"), -(39380, 0, "'t'"), -(39381, 0, "'h'"), -(39382, 0, "'e'"), -(39383, 0, "' '"), -(39384, 0, "'t'"), -(39385, 0, "'o'"), -(39386, 0, "'p'"), -(39387, 0, "' '"), -(39388, 0, "'o'"), -(39389, 0, "'f'"), -(39390, 0, "' '"), -(39391, 0, "'s'"), -(39392, 0, "'r'"), -(39393, 0, "'c'"), -(39394, 0, "'/'"), -(39395, 0, "'u'"), -(39396, 0, "'n'"), -(39397, 0, "'i'"), -(39398, 0, "'v'"), -(39399, 0, "'e'"), -(39400, 0, "'r'"), -(39401, 0, "'s'"), -(39402, 0, "'a'"), -(39403, 0, "'l'"), -(39404, 0, "'/'"), -(39405, 0, "'d'"), -(39406, 0, "'o'"), -(39407, 0, "'c'"), -(39408, 0, "'.'"), -(39409, 0, "'r'"), -(39410, 0, "'s'"), -(39411, 0, "'.'"), -(38956, 0, "' '"), -(38957, 0, "'j'"), -(38958, 0, "'a'"), -(38959, 0, "'v'"), -(38960, 0, "'a'"), -(38961, 0, "'s'"), -(38962, 0, "'c'"), -(38963, 0, "'r'"), -(38964, 0, "'i'"), -(38965, 0, "'p'"), -(38966, 0, "'t'"), -(38957, 10, "'m'"), -(38958, 0, "'y'"), -(38959, 0, "' '"), -(38960, 0, "'J'"), -(38961, 0, "'S'"), -(38962, 0, "' '"), -(38963, 0, "'s'"), -(38964, 0, "'t'"), -(38965, 0, "'r'"), -(38966, 0, "'i'"), -(38967, 0, "'n'"), -(38968, 0, "'g'"), -(38969, 0, "' '"), -(38970, 0, "'b'"), -(38971, 0, "'a'"), -(38972, 0, "'s'"), -(38973, 0, "'e'"), -(38974, 0, "'l'"), -(38975, 0, "'i'"), -(38976, 0, "'n'"), -(38977, 0, "'e'"), -(38978, 0, "','"), -(38998, 12, "''"), -(39089, 0, "' '"), -(39090, 0, "'I'"), -(39091, 0, "'t'"), -(39092, 0, "'s'"), -(39093, 0, "' '"), -(39094, 0, "'a'"), -(39095, 0, "' '"), -(39096, 0, "'m'"), -(39097, 0, "'e'"), -(39098, 0, "'s'"), -(39099, 0, "'s'"), -(39100, 0, "'.'"), -(39100, 1, "''"), -(39100, 0, "';'"), -(39101, 0, "' '"), -(39102, 0, "'b'"), -(39103, 0, "'u'"), -(39104, 0, "'t'"), -(39105, 0, "' '"), -(39106, 0, "'m'"), -(39107, 0, "'e'"), -(39108, 0, "'s'"), -(39109, 0, "'s'"), -(39110, 0, "'y'"), -(39111, 0, "' '"), -(39112, 0, "'i'"), -(39113, 0, "'s'"), -(39114, 0, "' '"), -(39115, 0, "'b'"), -(39116, 0, "'e'"), -(39117, 0, "'t'"), -(39118, 0, "'t'"), -(39119, 0, "'e'"), -(39120, 0, "'r'"), -(39121, 0, "' '"), -(39122, 0, "'t'"), -(39123, 0, "'h'"), -(39124, 0, "'a'"), -(39125, 0, "'n'"), -(39126, 0, "' '"), -(39127, 0, "'m'"), -(39128, 0, "'i'"), -(39129, 0, "'s'"), -(39130, 0, "'s'"), -(39131, 0, "'i'"), -(39132, 0, "'n'"), -(39133, 0, "'g'"), -(39134, 0, "'.'"), -(39111, 0, "' '"), -(39112, 0, "'l'"), -(39113, 0, "'i'"), -(39114, 0, "'n'"), -(39115, 0, "'k'"), -(39116, 0, "'s'"), -(39112, 5, "'c'"), -(39113, 0, "'o'"), -(39114, 0, "'d'"), -(39115, 0, "'e'"), -(39139, 0, "' '"), -(39140, 0, "'c'"), -(39141, 0, "'o'"), -(39142, 0, "'d'"), -(39143, 0, "'e'"), -(39326, 0, "' '"), -(39326, 1, "''"), -(39354, 3, "'t'"), -(39355, 0, "'o'"), -(39356, 0, "' '"), -(39357, 0, "'i'"), -(39358, 0, "'s'"), -(39359, 0, "'o'"), -(39360, 0, "'l'"), -(39361, 0, "'a'"), -(39362, 0, "'t'"), -(39363, 0, "'e'"), -(39486, 0, "'n'"), -(39487, 0, "'n'"), -(39488, 0, "'I'"), -(39489, 0, "' '"), -(39490, 0, "'h'"), -(39491, 0, "'a'"), -(39492, 0, "'v'"), -(39493, 0, "'e'"), -(39494, 0, "'n'"), -(39495, 0, "'''"), -(39496, 0, "'t'"), -(39497, 0, "' '"), -(39498, 0, "'u'"), -(39499, 0, "'p'"), -(39500, 0, "'l'"), -(39501, 0, "'o'"), -(39502, 0, "'a'"), -(39503, 0, "'d'"), -(39504, 0, "'e'"), -(39505, 0, "'d'"), -(39506, 0, "' '"), -(39507, 0, "'m'"), -(39508, 0, "'y'"), -(39509, 0, "' '"), -(39510, 0, "'w'"), -(39511, 0, "'a'"), -(39512, 0, "'s'"), -(39513, 0, "'m'"), -(39514, 0, "' '"), -(39515, 0, "'w'"), -(39516, 0, "'r'"), -(39517, 0, "'a'"), -(39518, 0, "'p'"), -(39519, 0, "'p'"), -(39520, 0, "'e'"), -(39521, 0, "'r'"), -(39522, 0, "' '"), -(39523, 0, "'a'"), -(39524, 0, "'n'"), -(39525, 0, "'y'"), -(39526, 0, "'w'"), -(39527, 0, "'h'"), -(39528, 0, "'e'"), -(39529, 0, "'r'"), -(39530, 0, "'e'"), -(39531, 0, "'.'"), -(39510, 0, "'r'"), -(39511, 0, "'u'"), -(39512, 0, "'s'"), -(39513, 0, "'t'"), -(39514, 0, "' '"), -(39514, 0, "' '"), -(39515, 0, "'c'"), -(39516, 0, "'r'"), -(39517, 0, "'d'"), -(39518, 0, "'t'"), -(39486, 0, "' '"), -(39487, 0, "'Y'"), -(39488, 0, "'o'"), -(39489, 0, "'u'"), -(39490, 0, "' '"), -(39491, 0, "'c'"), -(39492, 0, "'a'"), -(39493, 0, "'n'"), -(39494, 0, "' '"), -(39495, 0, "'a'"), -(39496, 0, "'d'"), -(39497, 0, "'d'"), -(39498, 0, "' '"), -(39499, 0, "'`'"), -(39500, 0, "'-'"), -(39501, 0, "'-'"), -(39502, 0, "'f'"), -(39503, 0, "'e'"), -(39504, 0, "'a'"), -(39505, 0, "'t'"), -(39506, 0, "'u'"), -(39507, 0, "'r'"), -(39508, 0, "'e'"), -(39509, 0, "'s'"), -(39510, 0, "' '"), -(39511, 0, "'m'"), -(39512, 0, "'e'"), -(39513, 0, "'m'"), -(39514, 0, "'u'"), -(39515, 0, "'s'"), -(39516, 0, "'a'"), -(39517, 0, "'g'"), -(39518, 0, "'e'"), -(39519, 0, "'`'"), -(39520, 0, "' '"), -(39521, 0, "'t'"), -(39522, 0, "'o'"), -(39523, 0, "' '"), -(39524, 0, "'p'"), -(39525, 0, "'r'"), -(39526, 0, "'i'"), -(39527, 0, "'n'"), -(39528, 0, "'t'"), -(39529, 0, "' '"), -(39530, 0, "'o'"), -(39531, 0, "'u'"), -(39532, 0, "'t'"), -(39533, 0, "' '"), -(39534, 0, "'m'"), -(39535, 0, "'e'"), -(39536, 0, "'m'"), -(39537, 0, "'o'"), -(39538, 0, "'r'"), -(39539, 0, "'y'"), -(39540, 0, "' '"), -(39541, 0, "'a'"), -(39542, 0, "'l'"), -(39543, 0, "'l'"), -(39544, 0, "'o'"), -(39545, 0, "'c'"), -(39546, 0, "'a'"), -(39547, 0, "'t'"), -(39548, 0, "'o'"), -(39549, 0, "'r'"), -(39550, 0, "' '"), -(39551, 0, "'s'"), -(39552, 0, "'t'"), -(39553, 0, "'a'"), -(39554, 0, "'t'"), -(39555, 0, "'i'"), -(39556, 0, "'s'"), -(39557, 0, "'t'"), -(39558, 0, "'i'"), -(39559, 0, "'c'"), -(39560, 0, "'s'"), -(39561, 0, "'.'"), -(39562, 0, "' '"), -(39563, 0, "'('"), -(39564, 0, "'T'"), -(39564, 1, "''"), -(39563, 1, "''"), -(39562, 1, "''"), -(39561, 1, "''"), -(39561, 0, "'.'"), -(39562, 0, "' '"), -(39563, 0, "'('"), -(39564, 0, "'T'"), -(39565, 0, "'h'"), -(39566, 0, "'i'"), -(39567, 0, "'s'"), -(39568, 0, "' '"), -(39569, 0, "'i'"), -(39570, 0, "'s'"), -(39571, 0, "' '"), -(39572, 0, "'h'"), -(39573, 0, "'o'"), -(39574, 0, "'w'"), -(39575, 0, "' '"), -(39576, 0, "'I'"), -(39577, 0, "'''"), -(39578, 0, "'m'"), -(39579, 0, "' '"), -(39580, 0, "'g'"), -(39581, 0, "'e'"), -(39582, 0, "'n'"), -(39583, 0, "'e'"), -(39584, 0, "'r'"), -(39585, 0, "'a'"), -(39586, 0, "'t'"), -(39587, 0, "'i'"), -(39588, 0, "'n'"), -(39589, 0, "'g'"), -(39590, 0, "' '"), -(39580, 11, "'f'"), -(39581, 0, "'i'"), -(39582, 0, "'g'"), -(39583, 0, "'u'"), -(39584, 0, "'r'"), -(39585, 0, "'o'"), -(39586, 0, "'u'"), -(39587, 0, "'t'"), -(39588, 0, "' '"), -(39588, 1, "''"), -(39587, 1, "''"), -(39586, 1, "''"), -(39585, 1, "''"), -(39585, 0, "'i'"), -(39586, 0, "'n'"), -(39587, 0, "'g'"), -(39588, 0, "' '"), -(39589, 0, "'o'"), -(39590, 0, "'u'"), -(39591, 0, "'t'"), -(39592, 0, "' '"), -(39593, 0, "'h'"), -(39594, 0, "'o'"), -(39595, 0, "'w'"), -(39596, 0, "' '"), -(39597, 0, "'m'"), -(39598, 0, "'u'"), -(39599, 0, "'c'"), -(39600, 0, "'h'"), -(39601, 0, "' '"), -(39602, 0, "'r'"), -(39602, 1, "''"), -(39602, 0, "'R'"), -(39603, 0, "'A'"), -(39604, 0, "'M'"), -(39605, 0, "' '"), -(39606, 0, "'I'"), -(39607, 0, "'''"), -(39608, 0, "'m'"), -(39609, 0, "' '"), -(39610, 0, "'u'"), -(39611, 0, "'s'"), -(39612, 0, "'i'"), -(39613, 0, "'n'"), -(39614, 0, "'g'"), -(39615, 0, "')'"), -(39616, 0, "'.'"), -(39563, 1, "''"), -(39614, 1, "''"), -(39561, 1, "''"), -(39561, 0, "' '"), -(39562, 0, "'-'"), -(39563, 0, "' '"), -(39564, 0, "'w'"), -(39565, 0, "'h'"), -(39566, 0, "'i'"), -(39567, 0, "'c'"), -(39568, 0, "'h'"), -(39569, 0, "' '"), -(39570, 0, "'i'"), -(39571, 0, "'s'"), -(39572, 8, "''"), -(39145, 0, "' '"), -(39145, 1, "''"), -(38918, 14, "''"), -(38917, 1, "''"), -(38872, 0, "' '"), -(38873, 0, "'I'"), -(38874, 0, "'S'"), -(38875, 0, "' '"), -(38876, 0, "'t'"), -(38877, 0, "'h'"), -(38878, 0, "'i'"), -(38878, 1, "''"), -(38877, 1, "''"), -(38876, 1, "''"), -(38875, 1, "''"), -(38874, 1, "''"), -(38874, 0, "'s'"), -(38875, 0, "' '"), -(38876, 0, "'t'"), -(38877, 0, "'h'"), -(38878, 0, "'i'"), -(38879, 0, "'s'"), -(38880, 0, "' '"), -(38881, 0, "'r'"), -(38882, 0, "'e'"), -(38883, 0, "'p'"), -(38884, 0, "'r'"), -(38885, 0, "'o'"), -(38886, 0, "'d'"), -(38887, 0, "'u'"), -(38888, 0, "'c'"), -(38889, 0, "'a'"), -(38890, 0, "'b'"), -(38891, 0, "'l'"), -(38892, 0, "'e'"), -(38893, 0, "'?'"), -(38881, 12, "'r'"), -(38882, 0, "'e'"), -(38883, 0, "'p'"), -(38884, 0, "'r'"), -(38885, 0, "'o'"), -(38886, 0, "'d'"), -(38887, 0, "'u'"), -(38888, 0, "'c'"), -(38889, 0, "'a'"), -(38890, 0, "'b'"), -(38891, 0, "'l'"), -(38892, 0, "'e'"), -(38912, 27, "' '"), -(38913, 0, "'t'"), -(38914, 0, "'h'"), -(38915, 0, "'a'"), -(38916, 0, "'t'"), -(38917, 0, "' '"), -(38918, 0, "'e'"), -(38918, 1, "''"), -(38918, 0, "'g'"), -(38919, 0, "'e'"), -(38920, 0, "'n'"), -(38921, 0, "'e'"), -(38922, 0, "'r'"), -(38923, 0, "'a'"), -(38924, 0, "'t'"), -(38925, 0, "'e'"), -(38926, 0, "'d'"), -(38927, 0, "' '"), -(38928, 0, "'t'"), -(38929, 0, "'h'"), -(38930, 0, "'e'"), -(38931, 0, "'s'"), -(38932, 0, "'e'"), -(38933, 0, "' '"), -(38934, 0, "'b'"), -(38935, 0, "'e'"), -(38936, 0, "'n'"), -(38937, 0, "'c'"), -(38938, 0, "'h'"), -(38939, 0, "'m'"), -(38940, 0, "'a'"), -(38941, 0, "'r'"), -(38942, 0, "'k'"), -(38943, 0, "' '"), -(38944, 0, "'r'"), -(38945, 0, "'e'"), -(38946, 0, "'s'"), -(38947, 0, "'u'"), -(38948, 0, "'l'"), -(38949, 0, "'t'"), -(38950, 0, "'s'"), -(38951, 0, "'?'"), -(38895, 57, "'S'"), -(38896, 0, "'h'"), -(38897, 0, "'o'"), -(38898, 0, "'w'"), -(38899, 0, "' '"), -(38900, 0, "'m'"), -(38901, 0, "'e'"), -(38902, 0, "' '"), -(38903, 0, "'t'"), -(38904, 0, "'h'"), -(38905, 0, "'e'"), -(38906, 0, "' '"), -(38907, 0, "'c'"), -(38908, 0, "'o'"), -(38909, 0, "'d'"), -(38910, 0, "'e'"), -(38907, 0, "'b'"), -(38908, 0, "'e'"), -(38909, 0, "'n'"), -(38910, 0, "'c'"), -(38911, 0, "'h'"), -(38912, 0, "'m'"), -(38913, 0, "'a'"), -(38914, 0, "'r'"), -(38915, 0, "'k'"), -(38916, 0, "'i'"), -(38917, 0, "'n'"), -(38918, 0, "'g'"), -(38919, 0, "' '"), -(38924, 0, "' '"), -(38925, 0, "'p'"), -(38926, 0, "'l'"), -(38927, 0, "'e'"), -(38928, 0, "'a'"), -(38929, 0, "'s'"), -(38930, 0, "'e'"), -(38924, 7, "'!'"), -(33461, 7, "'s'"), -(33462, 0, "'l'"), -(33463, 0, "'e'"), -(33464, 0, "'i'"), -(33465, 0, "'g'"), -(33466, 0, "'h'"), -(33467, 0, "'t'"), -(33468, 0, "'s'"), -(31273, 0, "'I'"), -(31274, 0, "' '"), -(31275, 0, "'g'"), -(31276, 0, "'o'"), -(31277, 0, "'t'"), -(31278, 0, "' '"), -(31279, 0, "'f'"), -(31280, 0, "'r'"), -(31281, 0, "'u'"), -(31282, 0, "'s'"), -(31283, 0, "'t'"), -(31284, 0, "'r'"), -(31285, 0, "'a'"), -(31286, 0, "'t'"), -(31287, 0, "'e'"), -(31288, 0, "'d'"), -(31289, 0, "' '"), -(31290, 0, "'w'"), -(31291, 0, "'i'"), -(31292, 0, "'t'"), -(31293, 0, "'h'"), -(31294, 0, "' '"), -(31295, 0, "'a'"), -(31296, 0, "'c'"), -(31297, 0, "'a'"), -(31298, 0, "'d'"), -(31299, 0, "'e'"), -(31300, 0, "'m'"), -(31301, 0, "'i'"), -(31302, 0, "'a'"), -(31303, 0, "' '"), -(31304, 0, "'a'"), -(31304, 1, "''"), -(31304, 0, "'o'"), -(31305, 0, "'n'"), -(31306, 0, "' '"), -(31307, 0, "'t'"), -(31308, 0, "'h'"), -(31309, 0, "'e'"), -(31310, 0, "' '"), -(31311, 0, "'w'"), -(31312, 0, "'h'"), -(31313, 0, "'o'"), -(31314, 0, "'l'"), -(31315, 0, "'e'"), -(31316, 0, "' '"), -(31317, 0, "'a'"), -(31318, 0, "'n'"), -(31319, 0, "'d'"), -(31320, 0, "' '"), -(31353, 1, "''"), -(31353, 0, "'.'"), -(31355, 5, "'I'"), -(31294, 0, "' '"), -(31295, 0, "'c'"), -(31295, 1, "''"), -(31295, 0, "'d'"), -(31296, 0, "'i'"), -(31297, 0, "'s'"), -(31298, 0, "'a'"), -(31299, 0, "'p'"), -(31300, 0, "'p'"), -(31301, 0, "'o'"), -(31302, 0, "'i'"), -(31303, 0, "'n'"), -(31304, 0, "'t'"), -(31305, 0, "'i'"), -(31306, 0, "'n'"), -(31307, 0, "'g'"), -(31308, 0, "' '"), -(31309, 0, "'a'"), -(31310, 0, "'p'"), -(31311, 0, "'p'"), -(31311, 1, "''"), -(31310, 1, "''"), -(31309, 1, "''"), -(31309, 0, "'a'"), -(31310, 0, "'p'"), -(31311, 0, "'p'"), -(31311, 1, "''"), -(31310, 1, "''"), -(31309, 1, "''"), -(31308, 1, "''"), -(31308, 0, "' '"), -(31309, 0, "'p'"), -(31310, 0, "'a'"), -(31311, 0, "'p'"), -(31312, 0, "'e'"), -(31313, 0, "'r'"), -(31314, 0, "'s'"), -(31315, 0, "' '"), -(31316, 0, "'a'"), -(31317, 0, "'n'"), -(31318, 0, "'d'"), -(31341, 0, "','"), -(31424, 2, "'a'"), -(31425, 0, "'t'"), -(31426, 0, "' '"), -(31427, 0, "'h'"), -(31428, 0, "'o'"), -(31429, 0, "'w'"), -(31430, 0, "' '"), -(31431, 0, "'w'"), -(31432, 0, "'e'"), -(31433, 0, "' '"), -(31434, 0, "'c'"), -(31435, 0, "'a'"), -(31436, 0, "'n'"), -(31458, 0, "' '"), -(31459, 0, "'t'"), -(31460, 0, "'o'"), -(31455, 6, "''"), -(31454, 1, "''"), -(31454, 46, "''"), -(31454, 0, "' '"), -(31455, 0, "'A'"), -(31456, 0, "'n'"), -(31457, 0, "'d'"), -(31458, 0, "' '"), -(31459, 0, "'b'"), -(31460, 0, "'r'"), -(31461, 0, "'i'"), -(31462, 0, "'n'"), -(31463, 0, "'g'"), -(31464, 0, "' '"), -(31465, 0, "'u'"), -(31466, 0, "'s'"), -(31467, 0, "' '"), -(31468, 0, "'t'"), -(31469, 0, "'o'"), -(31470, 0, "' '"), -(31471, 0, "'t'"), -(31472, 0, "'h'"), -(31473, 0, "'i'"), -(31474, 0, "'s'"), -(31475, 0, "' '"), -(31476, 0, "'p'"), -(31477, 0, "'o'"), -(31478, 0, "'i'"), -(31479, 0, "'n'"), -(31480, 0, "'t'"), -(31481, 0, "'.'"), -(31455, 27, "''"), -(31454, 1, "''"), -(31454, 0, "' '"), -(31454, 1, "''"), -(31453, 1, "''"), -(31453, 0, "' '"), -(31454, 0, "'a'"), -(31455, 0, "'n'"), -(31456, 0, "'d'"), -(31457, 0, "' '"), -(31458, 0, "'n'"), -(31459, 0, "'o'"), -(31460, 0, "' '"), -(31461, 0, "'t'"), -(31462, 0, "'i'"), -(31463, 0, "'m'"), -(31464, 0, "'e'"), -(31465, 0, "' '"), -(31466, 0, "'a'"), -(31467, 0, "'t'"), -(31468, 0, "' '"), -(31469, 0, "'a'"), -(31470, 0, "'l'"), -(31471, 0, "'l'"), -(31472, 0, "' '"), -(31473, 0, "'t'"), -(31474, 0, "'o'"), -(31475, 0, "' '"), -(31476, 0, "'a'"), -(31477, 0, "'r'"), -(31478, 0, "'r'"), -(31479, 0, "'i'"), -(31480, 0, "'v'"), -(31481, 0, "'e'"), -(31482, 0, "' '"), -(31483, 0, "'a'"), -(31484, 0, "'t'"), -(31485, 0, "' '"), -(31486, 0, "'t'"), -(31487, 0, "'h'"), -(31488, 0, "'e'"), -(31489, 0, "'s'"), -(31490, 0, "'e'"), -(31491, 0, "' '"), -(31492, 0, "'p'"), -(31493, 0, "'e'"), -(31494, 0, "'r'"), -(31495, 0, "'f'"), -(31496, 0, "'o'"), -(31497, 0, "'r'"), -(31498, 0, "'m'"), -(31499, 0, "'a'"), -(31500, 0, "'n'"), -(31501, 0, "'c'"), -(31502, 0, "'e'"), -(31503, 0, "' '"), -(31504, 0, "'n'"), -(31505, 0, "'u'"), -(31506, 0, "'m'"), -(31507, 0, "'b'"), -(31508, 0, "'e'"), -(31509, 0, "'r'"), -(31510, 0, "'s'"), -(31511, 0, "'.'"), -(31688, 0, "' '"), -(31689, 0, "'a'"), -(31690, 0, "'v'"), -(31691, 0, "'o'"), -(31692, 0, "'i'"), -(31693, 0, "'d'"), -(31694, 0, "'i'"), -(31695, 0, "'n'"), -(31696, 0, "'g'"), -(31697, 0, "' '"), -(31698, 0, "'U'"), -(31699, 0, "'U'"), -(31700, 0, "'I'"), -(31701, 0, "'D'"), -(31702, 0, "'s'"), -(31703, 0, "' '"), -(31704, 0, "'b'"), -(31705, 0, "'y'"), -(31753, 36, "' '"), -(31764, 4, "''"), -(31763, 1, "''"), -(31763, 0, "'.'"), -(31801, 0, "','"), -(31802, 0, "' '"), -(31803, 0, "'b'"), -(31804, 0, "'u'"), -(31805, 0, "'t'"), -(31806, 0, "' '"), -(31807, 0, "'i'"), -(31808, 0, "'t'"), -(31809, 0, "'s'"), -(31810, 0, "' '"), -(31811, 0, "'b'"), -(31812, 0, "'r'"), -(31813, 0, "'i'"), -(31814, 0, "'l'"), -(31815, 0, "'l'"), -(31816, 0, "'i'"), -(31817, 0, "'a'"), -(31818, 0, "'n'"), -(31819, 0, "'t'"), -(31807, 13, "'I'"), -(31808, 0, "' '"), -(31809, 0, "'l'"), -(31810, 0, "'o'"), -(31811, 0, "'v'"), -(31812, 0, "'e'"), -(31813, 0, "' '"), -(31814, 0, "'i'"), -(31815, 0, "'t'"), -(31897, 13, "' '"), -(31898, 0, "'m'"), -(31899, 0, "'a'"), -(31900, 0, "'k'"), -(31901, 0, "'e'"), -(31902, 0, "'s'"), -(31903, 0, "' '"), -(31904, 0, "'e'"), -(31905, 0, "'v'"), -(31906, 0, "'e'"), -(31907, 0, "'r'"), -(31908, 0, "'y'"), -(31909, 0, "'t'"), -(31910, 0, "'h'"), -(31911, 0, "'i'"), -(31912, 0, "'n'"), -(31913, 0, "'g'"), -(31914, 0, "' '"), -(31915, 0, "'s'"), -(31916, 0, "'i'"), -(31916, 1, "''"), -(31916, 0, "'o'"), -(31917, 0, "' '"), -(31918, 0, "'m'"), -(31919, 0, "'u'"), -(31920, 0, "'c'"), -(31921, 0, "'h'"), -(31922, 0, "' '"), -(31923, 0, "'s'"), -(31924, 0, "'i'"), -(31925, 0, "'m'"), -(31926, 0, "'p'"), -(31927, 0, "'l'"), -(31928, 0, "'e'"), -(31929, 0, "'r'"), -(32049, 11, "'d'"), -(32050, 0, "'o'"), -(32051, 0, "'u'"), -(32052, 0, "'b'"), -(32053, 0, "'t'"), -(32103, 2, "'f'"), -(32104, 0, "'a'"), -(32105, 0, "'s'"), -(32106, 0, "'t'"), -(32107, 0, "' '"), -(32108, 0, "'C'"), -(32109, 0, "'R'"), -(32110, 0, "'D'"), -(32111, 0, "'T'"), -(32112, 0, "'s'"), -(32102, 6, "' '"), -(32103, 0, "'t'"), -(32104, 0, "'h'"), -(32105, 0, "'e'"), -(32106, 0, "' '"), -(32107, 0, "'f'"), -(32108, 0, "'o'"), -(32109, 0, "'r'"), -(32110, 0, "'m'"), -(32111, 0, "'u'"), -(32112, 0, "'l'"), -(32113, 0, "'a'"), -(32114, 0, "' '"), -(32115, 0, "'f'"), -(32116, 0, "'o'"), -(32117, 0, "'r'"), -(32118, 0, "' '"), -(32119, 0, "'f'"), -(32120, 0, "'a'"), -(32121, 0, "'s'"), -(32122, 0, "'t'"), -(32123, 0, "' '"), -(32129, 0, "','"), -(32130, 0, "' '"), -(32130, 1, "''"), -(32129, 1, "''"), -(32123, 1, "''"), -(32123, 0, "','"), -(32124, 0, "' '"), -(32125, 0, "'l'"), -(32126, 0, "'i'"), -(32127, 0, "'g'"), -(32128, 0, "'h'"), -(32129, 0, "'t'"), -(32130, 0, "'w'"), -(32131, 0, "'a'"), -(32131, 1, "''"), -(32131, 0, "'e'"), -(32132, 0, "'i'"), -(32133, 0, "'g'"), -(32134, 0, "'h'"), -(32135, 0, "'t'"), -(32136, 0, "' '"), -(32141, 1, "''"), -(32141, 0, "' '"), -(32142, 0, "'i'"), -(32143, 0, "'m'"), -(32144, 0, "'p'"), -(32145, 0, "'l'"), -(32146, 0, "'e'"), -(32147, 0, "'m'"), -(32148, 0, "'e'"), -(32149, 0, "'n'"), -(32150, 0, "'t'"), -(32151, 0, "'a'"), -(32152, 0, "'t'"), -(32153, 0, "'i'"), -(32154, 0, "'o'"), -(32155, 0, "'n'"), -(32156, 0, "'s'"), -(32094, 0, "','"), -(32095, 0, "' '"), -(32096, 0, "'a'"), -(32097, 0, "'f'"), -(32098, 0, "'t'"), -(32099, 0, "'e'"), -(32100, 0, "'r'"), -(32101, 0, "' '"), -(32102, 0, "'a'"), -(32103, 0, "' '"), -(32104, 0, "'d'"), -(32105, 0, "'e'"), -(32106, 0, "'c'"), -(32107, 0, "'a'"), -(32108, 0, "'d'"), -(32109, 0, "'e'"), -(32110, 0, "' '"), -(32111, 0, "'o'"), -(32112, 0, "'f'"), -(32113, 0, "' '"), -(32114, 0, "'w'"), -(32115, 0, "'a'"), -(32116, 0, "'i'"), -(32117, 0, "'t'"), -(32118, 0, "'i'"), -(32119, 0, "'n'"), -(32120, 0, "'g'"), -(32121, 0, "','"), -(32190, 1, "''"), -(32190, 0, "'n'"), -(32191, 0, "'n'"), -(32191, 1, "''"), -(32190, 1, "''"), -(32190, 0, "' '"), -(39104, 740, "''"), -(39045, 59, "''"), -(39044, 1, "''"), -(33694, 0, "'n'"), -(33695, 0, "'n'"), -(33696, 0, "'I'"), -(33697, 0, "'f'"), -(33698, 0, "' '"), -(33699, 0, "'y'"), -(33700, 0, "'o'"), -(33701, 0, "'u'"), -(33702, 0, "' '"), -(33703, 0, "'w'"), -(33704, 0, "'a'"), -(33705, 0, "'n'"), -(33706, 0, "'t'"), -(33707, 0, "' '"), -(33708, 0, "'t'"), -(33709, 0, "'o'"), -(33710, 0, "' '"), -(33711, 0, "'p'"), -(33712, 0, "'l'"), -(33713, 0, "'a'"), -(33714, 0, "'y'"), -(33715, 0, "' '"), -(33716, 0, "'w'"), -(33717, 0, "'i'"), -(33718, 0, "'t'"), -(33719, 0, "'h'"), -(33720, 0, "' '"), -(33721, 0, "'a'"), -(33722, 0, "'n'"), -(33723, 0, "'y'"), -(33724, 0, "' '"), -(33725, 0, "'o'"), -(33726, 0, "'f'"), -(33727, 0, "' '"), -(33728, 0, "'t'"), -(33729, 0, "'h'"), -(33730, 0, "'e'"), -(33731, 0, "' '"), -(33732, 0, "'b'"), -(33733, 0, "'e'"), -(33734, 0, "'n'"), -(33735, 0, "'c'"), -(33736, 0, "'h'"), -(33737, 0, "'m'"), -(33738, 0, "'a'"), -(33739, 0, "'r'"), -(33740, 0, "'k'"), -(33741, 0, "'s'"), -(33742, 0, "' '"), -(33743, 0, "'y'"), -(33744, 0, "'o'"), -(33745, 0, "'u'"), -(33746, 0, "'r'"), -(33747, 0, "'s'"), -(33748, 0, "'e'"), -(33749, 0, "'l'"), -(33750, 0, "'f'"), -(33751, 0, "','"), -(33752, 0, "' '"), -(33753, 0, "'t'"), -(33754, 0, "'h'"), -(33755, 0, "'e'"), -(33756, 0, "' '"), -(33753, 4, "'h'"), -(33754, 0, "'e'"), -(33755, 0, "'r'"), -(33756, 0, "'e'"), -(33757, 0, "'''"), -(33758, 0, "'s'"), -(33759, 0, "' '"), -(33751, 9, "''"), -(33751, 0, "':'"), -(33752, 0, "'n'"), -(33753, 0, "'n'"), -(33754, 0, "'nThe benchmark code for my JS string baseline, yjs and automerge is [in this github gist](https://gist.github.com/josephg/13efc1444660c07870fcbd0b3e917638). Its a mess; but messy code is better than missing code.nnFor my rust implementation I'm benchmarking [this code](https://github.com/josephg/text-crdt-rust/tree/ba20b6386c0472958f33024ce0b806e75470e1ca). Run it with `cargo criterion yjs` or `cargo criterion ropey` to isolate the ropey baseline. Turn on and off the inline rope updates my commenting out lines near the top of src/universal/doc.rs. You can add `--features memusage` to print out memory allocator statistics - which is how I'm figuring out how much RAM I'm using.nnI haven't uploaded my rust crdt wasm wrapper anywhere.'"), -(33753, 1, "''"), -(33752, 1, "''"), -(33751, 1, "''"), -(33751, 0, "','"), -(33752, 0, "' '"), -(33753, 0, "'m'"), -(33754, 0, "'o'"), -(33755, 0, "'s'"), -(33756, 0, "'t'"), -(33757, 0, "' '"), -(33758, 0, "'o'"), -(33759, 0, "'f'"), -(33760, 0, "' '"), -(33761, 0, "'t'"), -(33751, 11, "''"), -(33751, 0, "':'"), -(33752, 0, "'n'"), -(33742, 0, "' '"), -(33743, 0, "'I'"), -(33744, 0, "' '"), -(33745, 0, "'r'"), -(33746, 0, "'a'"), -(33747, 0, "'n'"), -(33757, 0, "','"), -(33758, 0, "' '"), -(33759, 0, "'e'"), -(33760, 0, "'v'"), -(33761, 0, "'e'"), -(33762, 0, "'r'"), -(33763, 0, "'y'"), -(33764, 0, "'t'"), -(33765, 0, "'h'"), -(33766, 0, "'i'"), -(33767, 0, "'n'"), -(33768, 0, "'g'"), -(33769, 0, "' '"), -(33770, 0, "'i'"), -(33771, 0, "'s'"), -(33772, 0, "' '"), -(33773, 0, "'a'"), -(33774, 0, "' '"), -(33775, 0, "'b'"), -(33776, 0, "'i'"), -(33777, 0, "'t'"), -(33778, 0, "' '"), -(33779, 0, "'o'"), -(33780, 0, "'f'"), -(33781, 0, "' '"), -(33782, 0, "'a'"), -(33783, 0, "' '"), -(33784, 0, "'h'"), -(33785, 0, "'o'"), -(33786, 0, "'d'"), -(33787, 0, "'g'"), -(33788, 0, "'e'"), -(33789, 0, "' '"), -(33790, 0, "'b'"), -(33790, 1, "''"), -(33790, 0, "'p'"), -(33791, 0, "'o'"), -(33792, 0, "'d'"), -(33793, 0, "'g'"), -(33794, 0, "'e'"), -(33695, 0, "'n'"), -(33696, 0, "'n'"), -(33696, 0, "'#'"), -(33697, 0, "'#'"), -(33698, 0, "'#'"), -(33699, 0, "' '"), -(33700, 0, "'Y'"), -(33701, 0, "'o'"), -(33702, 0, "'u'"), -(33703, 0, "' '"), -(33704, 0, "'h'"), -(33705, 0, "'a'"), -(33706, 0, "'v'"), -(33707, 0, "'e'"), -(33708, 0, "'n'"), -(33709, 0, "'''"), -(33710, 0, "'t'"), -(33711, 0, "' '"), -(33712, 0, "'p'"), -(33713, 0, "'u'"), -(33714, 0, "'b'"), -(33715, 0, "'l'"), -(33716, 0, "'i'"), -(33717, 0, "'s'"), -(33718, 0, "'h'"), -(33719, 0, "'e'"), -(33720, 0, "'d'"), -(33721, 0, "' '"), -(33722, 0, "'t'"), -(33723, 0, "'h'"), -(33724, 0, "'e'"), -(33725, 0, "' '"), -(33726, 0, "'c'"), -(33727, 0, "'o'"), -(33728, 0, "'d'"), -(33729, 0, "'e'"), -(33730, 0, "' '"), -(33731, 0, "'w'"), -(33732, 0, "'h'"), -(33733, 0, "'i'"), -(33734, 0, "'c'"), -(33735, 0, "'h'"), -(33736, 0, "' '"), -(33737, 0, "'g'"), -(33738, 0, "'e'"), -(33739, 0, "'n'"), -(33740, 0, "'e'"), -(33741, 0, "'r'"), -(33742, 0, "'a'"), -(33743, 0, "'t'"), -(33744, 0, "'e'"), -(33745, 0, "'d'"), -(33746, 0, "' '"), -(33747, 0, "'y'"), -(33748, 0, "'o'"), -(33749, 0, "'u'"), -(33750, 0, "'r'"), -(33751, 0, "' '"), -(33752, 0, "'r'"), -(33753, 0, "'e'"), -(33754, 0, "'s'"), -(33755, 0, "'u'"), -(33756, 0, "'l'"), -(33757, 0, "'t'"), -(33758, 0, "'s'"), -(33860, 1, "''"), -(33860, 0, "'.'"), -(33861, 0, "' '"), -(33862, 0, "'B'"), -(33863, 0, "'u'"), -(33864, 0, "'t'"), -(33865, 0, "' '"), -(33866, 0, "'i'"), -(33867, 0, "'t'"), -(33868, 0, "'s'"), -(33869, 0, "' '"), -(33870, 0, "'a'"), -(33871, 0, "'l'"), -(33872, 0, "'m'"), -(33873, 0, "'o'"), -(33874, 0, "'s'"), -(33875, 0, "'t'"), -(33876, 0, "' '"), -(33877, 0, "'a'"), -(33878, 0, "'l'"), -(33879, 0, "'l'"), -(33880, 0, "' '"), -(33881, 0, "'o'"), -(33882, 0, "'n'"), -(33883, 0, "'l'"), -(33884, 0, "'i'"), -(33885, 0, "'n'"), -(33886, 0, "'e'"), -(33887, 0, "'.'"), -(34129, 0, "' '"), -(34130, 0, "'r'"), -(34131, 0, "'e'"), -(34132, 0, "'s'"), -(34133, 0, "'u'"), -(34134, 0, "'l'"), -(34135, 0, "'t'"), -(34136, 0, "'s'"), -(34318, 0, "'i'"), -(34319, 0, "'f'"), -(34320, 0, "' '"), -(34321, 0, "'y'"), -(34322, 0, "'o'"), -(34323, 0, "'u'"), -(34324, 0, "' '"), -(34325, 0, "'w'"), -(34326, 0, "'a'"), -(34327, 0, "'n'"), -(34328, 0, "'t'"), -(34329, 0, "' '"), -(34593, 0, "' '"), -(34594, 0, "'Y'"), -(34595, 0, "'o'"), -(34596, 0, "'u'"), -(34597, 0, "'''"), -(34598, 0, "'l'"), -(34599, 0, "'l'"), -(34600, 0, "' '"), -(34601, 0, "'n'"), -(34602, 0, "'e'"), -(34603, 0, "'e'"), -(34604, 0, "'d'"), -(34605, 0, "' '"), -(34606, 0, "'`'"), -(34607, 0, "'a'"), -(34608, 0, "'u'"), -(34609, 0, "'t'"), -(34610, 0, "'o'"), -(34611, 0, "'m'"), -(34612, 0, "'e'"), -(34613, 0, "'r'"), -(34614, 0, "'g'"), -(34615, 0, "'e'"), -(34616, 0, "'-'"), -(34617, 0, "'p'"), -(34618, 0, "'a'"), -(34619, 0, "'p'"), -(34620, 0, "'e'"), -(34621, 0, "'r'"), -(34622, 0, "'.'"), -(34623, 0, "'j'"), -(34624, 0, "'s'"), -(34625, 0, "'o'"), -(34626, 0, "'n'"), -(34627, 0, "'.'"), -(34628, 0, "'g'"), -(34629, 0, "'z'"), -(34630, 0, "'`'"), -(34631, 0, "' '"), -(34632, 0, "'f'"), -(34633, 0, "'r'"), -(34634, 0, "'o'"), -(34635, 0, "'m'"), -(34636, 0, "' '"), -(34637, 0, "'['"), -(34638, 0, "'t'"), -(34639, 0, "'h'"), -(34640, 0, "'i'"), -(34641, 0, "'s'"), -(34642, 0, "' '"), -(34643, 0, "'r'"), -(34644, 0, "'e'"), -(34645, 0, "'p'"), -(34646, 0, "'o'"), -(34647, 0, "'s'"), -(34648, 0, "'i'"), -(34649, 0, "'t'"), -(34650, 0, "'o'"), -(34651, 0, "'r'"), -(34643, 9, "'r'"), -(34644, 0, "'e'"), -(34645, 0, "'p'"), -(34646, 0, "'o'"), -(34647, 0, "'s'"), -(34648, 0, "'i'"), -(34649, 0, "'t'"), -(34650, 0, "'o'"), -(34651, 0, "'r'"), -(34652, 0, "'y'"), -(34593, 1, "''"), -(34593, 0, "'n'"), -(34594, 0, "'n'"), -(34654, 0, "']'"), -(34655, 0, "'('"), -(34656, 0, "'https://github.com/josephg/crdt-benchmarks'"), -(34698, 0, "')'"), -(34699, 0, "' '"), -(34700, 0, "'f'"), -(34701, 0, "'o'"), -(34702, 0, "'r'"), -(34703, 0, "' '"), -(34704, 0, "'m'"), -(34705, 0, "'o'"), -(34706, 0, "'s'"), -(34707, 0, "'t'"), -(34708, 0, "' '"), -(34709, 0, "'o'"), -(34710, 0, "'f'"), -(34711, 0, "' '"), -(34712, 0, "'t'"), -(34713, 0, "'h'"), -(34714, 0, "'e'"), -(34715, 0, "'s'"), -(34716, 0, "'e'"), -(34717, 0, "' '"), -(34718, 0, "'t'"), -(34719, 0, "'e'"), -(34720, 0, "'s'"), -(34721, 0, "'t'"), -(34722, 0, "'s'"), -(34723, 0, "'.'"), -(34602, 0, "'a'"), -(34603, 0, "'l'"), -(34604, 0, "'s'"), -(34605, 0, "'o'"), -(34606, 0, "' '"), -(34705, 3, "'i'"), -(34706, 0, "'n'"), -(34707, 0, "' '"), -(34708, 0, "'o'"), -(34709, 0, "'r'"), -(34710, 0, "'d'"), -(34711, 0, "'e'"), -(34712, 0, "'r'"), -(34713, 0, "' '"), -(34714, 0, "'t'"), -(34715, 0, "'o'"), -(34716, 0, "' '"), -(34717, 0, "'r'"), -(34718, 0, "'u'"), -(34719, 0, "'n'"), -(34101, 0, "'n'"), -(34102, 0, "'n'"), -(34103, 0, "'T'"), -(34104, 0, "'h'"), -(34105, 0, "'e'"), -(34106, 0, "' '"), -(34107, 0, "'r'"), -(34108, 0, "'e'"), -(34109, 0, "'f'"), -(34110, 0, "'e'"), -(34111, 0, "'r'"), -(34112, 0, "'e'"), -(34113, 0, "'n'"), -(34114, 0, "'c'"), -(34115, 0, "'e'"), -(34116, 0, "' '"), -(34116, 1, "''"), -(34116, 0, "'-'"), -(34117, 0, "'c'"), -(34118, 0, "'r'"), -(34119, 0, "'d'"), -(34120, 0, "'t'"), -(34121, 0, "'s'"), -(34122, 0, "' '"), -(34123, 0, "'b'"), -(34124, 0, "'e'"), -(34125, 0, "'n'"), -(34126, 0, "'c'"), -(34127, 0, "'h'"), -(34128, 0, "'m'"), -(34129, 0, "'a'"), -(34130, 0, "'r'"), -(34131, 0, "'k'"), -(34132, 0, "' '"), -(34133, 0, "'i'"), -(34134, 0, "'s'"), -(34135, 0, "' '"), -(34136, 0, "'i'"), -(34137, 0, "'n'"), -(34138, 0, "' '"), -(34139, 0, "'t'"), -(34140, 0, "'h'"), -(34133, 8, "'c'"), -(34134, 0, "'o'"), -(34135, 0, "'d'"), -(34136, 0, "'e'"), -(34137, 0, "' '"), -(34138, 0, "'i'"), -(34139, 0, "'s'"), -(34140, 0, "' '"), -(34141, 0, "'['"), -(34142, 0, "'i'"), -(34143, 0, "'n'"), -(34144, 0, "' '"), -(34145, 0, "'t'"), -(34146, 0, "'h'"), -(34147, 0, "'i'"), -(34147, 1, "''"), -(34147, 0, "'e'"), -(34148, 0, "' '"), -(34149, 0, "'r'"), -(34150, 0, "'e'"), -(34151, 0, "'p'"), -(34152, 0, "'o'"), -(34153, 0, "'s'"), -(34154, 0, "'i'"), -(34155, 0, "'t'"), -(34156, 0, "'o'"), -(34157, 0, "'r'"), -(34158, 0, "'y'"), -(34159, 0, "' '"), -(34160, 0, "'h'"), -(34161, 0, "'e'"), -(34162, 0, "'r'"), -(34163, 0, "'e'"), -(34164, 0, "']'"), -(34165, 0, "'('"), -(34166, 0, "'https://github.com/josephg/reference-crdts/blob/main/bench.ts'"), -(34227, 0, "')'"), -(34228, 0, "'.'"), -(34229, 0, "' '"), -(34230, 0, "'Y'"), -(34231, 0, "'o'"), -(34232, 0, "'u'"), -(34233, 0, "' '"), -(34234, 0, "'c'"), -(34235, 0, "'a'"), -(34230, 6, "'I'"), -(34231, 0, "'f'"), -(34232, 0, "' '"), -(34233, 0, "'y'"), -(34234, 0, "'o'"), -(34235, 0, "'u'"), -(34236, 0, "' '"), -(34237, 0, "'w'"), -(34238, 0, "'a'"), -(34239, 0, "'n'"), -(34240, 0, "'t'"), -(34241, 0, "' '"), -(34242, 0, "'t'"), -(34243, 0, "'o'"), -(34244, 0, "' '"), -(34245, 0, "'m'"), -(34246, 0, "'e'"), -(34247, 0, "'a'"), -(34248, 0, "'s'"), -(34249, 0, "'u'"), -(34250, 0, "'e'"), -(34251, 0, "'r'"), -(34252, 0, "' '"), -(34253, 0, "'m'"), -(34253, 1, "''"), -(34252, 1, "''"), -(34251, 1, "''"), -(34250, 1, "''"), -(34250, 0, "'r'"), -(34251, 0, "'e'"), -(34252, 0, "' '"), -(34253, 0, "'m'"), -(34254, 0, "'e'"), -(34255, 0, "'m'"), -(34256, 0, "'o'"), -(34257, 0, "'r'"), -(34258, 0, "'y'"), -(34259, 0, "' '"), -(34260, 0, "'u'"), -(34261, 0, "'s'"), -(34262, 0, "'a'"), -(34263, 0, "'g'"), -(34264, 0, "'e'"), -(34265, 0, "' '"), -(34266, 0, "'y'"), -(34267, 0, "'o'"), -(34268, 0, "'u'"), -(34269, 0, "' '"), -(34270, 0, "'c'"), -(34271, 0, "'a'"), -(34272, 0, "'n'"), -(34273, 0, "' '"), -(34274, 0, "'u'"), -(34275, 0, "'s'"), -(34276, 0, "'e'"), -(34277, 0, "' '"), -(34278, 0, "'t'"), -(34279, 0, "'h'"), -(34280, 0, "'e'"), -(34281, 0, "' '"), -(34282, 0, "'s'"), -(34283, 0, "'a'"), -(34284, 0, "'m'"), -(34285, 0, "'e'"), -(34286, 0, "' '"), -(34287, 0, "'a'"), -(34288, 0, "'p'"), -(34289, 0, "'p'"), -(34290, 0, "'r'"), -(34291, 0, "'o'"), -(34292, 0, "'a'"), -(34293, 0, "'c'"), -(34294, 0, "'h'"), -(34295, 0, "' '"), -(34296, 0, "'a'"), -(34297, 0, "'s'"), -(34298, 0, "' '"), -(34299, 0, "'I'"), -(34300, 0, "' '"), -(34301, 0, "'d'"), -(34302, 0, "'i'"), -(34303, 0, "'d'"), -(34304, 0, "' '"), -(34305, 0, "'i'"), -(34305, 1, "''"), -(34103, 202, "'The reference-crdts benchmark code is [in the repository here](https://github.com/josephg/reference-crdts/blob/main/bench.ts). If you want to measure memory usage you can use the same approach as I did'"), -(33913, 3, "'t'"), -(33914, 0, "'h'"), -(33915, 0, "'e'"), -(33916, 0, "' '"), -(33954, 0, "' '"), -(33955, 0, "'t'"), -(33956, 0, "'e'"), -(33957, 0, "'s'"), -(33958, 0, "'t'"), -(33959, 0, "'s'"), -(34152, 3, "'i'"), -(34153, 0, "'t'"), -(34154, 0, "'s'"), -(34166, 5, "''"), -(34166, 0, "' '"), -(34167, 0, "'h'"), -(34168, 0, "'e'"), -(34169, 0, "'r'"), -(34170, 0, "'e'"), -(34311, 0, "'''"), -(34276, 0, "'''"), -(34277, 35, "'l'"), -(34278, 0, "'l'"), -(34279, 0, "' '"), -(34280, 0, "'n'"), -(34281, 0, "'e'"), -(34282, 0, "'e'"), -(34283, 0, "'d'"), -(34284, 0, "' '"), -(34285, 0, "'t'"), -(34286, 0, "'o'"), -(34287, 0, "' '"), -(34288, 0, "'a'"), -(34289, 0, "'d'"), -(34290, 0, "'d'"), -(34291, 1, "''"), -(34291, 0, "' '"), -(34292, 0, "'q'"), -(34293, 0, "'u'"), -(34294, 0, "'e'"), -(34295, 0, "'r'"), -(34296, 0, "'i'"), -(34297, 0, "'e'"), -(34298, 0, "'s'"), -(34272, 27, "','"), -(34273, 0, "' '"), -(34274, 0, "'f'"), -(34275, 0, "'o'"), -(34276, 0, "'l'"), -(34277, 0, "'l'"), -(34278, 0, "'o'"), -(34279, 0, "'w'"), -(34280, 0, "' '"), -(34281, 0, "'t'"), -(34282, 0, "'h'"), -(34283, 0, "'e'"), -(34284, 0, "' '"), -(34285, 0, "'a'"), -(34286, 0, "'p'"), -(34287, 0, "'p'"), -(34288, 0, "'r'"), -(34289, 0, "'o'"), -(34290, 0, "'a'"), -(34291, 0, "'c'"), -(34292, 0, "'h'"), -(34293, 0, "' '"), -(34294, 0, "'f'"), -(34295, 0, "'r'"), -(34296, 0, "'o'"), -(34297, 0, "'m'"), -(34298, 0, "' '"), -(34299, 0, "'t'"), -(34300, 0, "'h'"), -(34301, 0, "'e'"), -(34302, 0, "' '"), -(34303, 0, "'g'"), -(34304, 0, "'i'"), -(34305, 0, "'s'"), -(34306, 0, "'t'"), -(34307, 0, "' '"), -(34308, 0, "'a'"), -(34309, 0, "'n'"), -(34310, 0, "'d'"), -(34311, 0, "' '"), -(34307, 5, "'.'"), -(34308, 0, "' '"), -(34309, 0, "'Y'"), -(34310, 0, "'o'"), -(34311, 0, "'u'"), -(34312, 0, "' '"), -(34313, 0, "'c'"), -(34314, 0, "'a'"), -(34315, 0, "'n'"), -(34316, 0, "' '"), -(34317, 0, "'r'"), -(34318, 0, "'u'"), -(34319, 0, "'n'"), -(34320, 0, "' '"), -(34321, 0, "'t'"), -(34322, 0, "'i'"), -(34323, 0, "'h'"), -(34324, 0, "'s'"), -(34325, 0, "' '"), -(34326, 0, "'c'"), -(34327, 0, "'o'"), -(34328, 0, "'d'"), -(34329, 0, "'e'"), -(34330, 0, "' '"), -(34321, 10, "'t'"), -(34322, 0, "'h'"), -(34323, 0, "'i'"), -(34324, 0, "'s'"), -(34325, 0, "' '"), -(34326, 0, "'c'"), -(34327, 0, "'o'"), -(34328, 0, "'d'"), -(34329, 0, "'e'"), -(34330, 0, "' '"), -(34331, 0, "'w'"), -(34332, 0, "'i'"), -(34333, 0, "'t'"), -(34334, 0, "'h'"), -(34335, 0, "' '"), -(34336, 0, "'`'"), -(34337, 0, "'node --loader ts-node/esm --expose-gc bench.ts'"), -(34383, 0, "'`'"), -(34307, 0, "' '"), -(34308, 0, "'o'"), -(34309, 0, "'f'"), -(34310, 0, "' '"), -(34311, 0, "'p'"), -(34312, 0, "'r'"), -(34313, 0, "'i'"), -(34314, 0, "'n'"), -(34315, 0, "'t'"), -(34316, 0, "'i'"), -(34317, 0, "'n'"), -(34318, 0, "'g'"), -(34319, 0, "' '"), -(34320, 0, "'o'"), -(34321, 0, "'u'"), -(34322, 0, "'t'"), -(33940, 4, "''"), -(33940, 0, "','"), -(33951, 0, "' '"), -(33952, 0, "'a'"), -(33953, 0, "'n'"), -(33954, 0, "'d'"), -(33955, 0, "' '"), -(33956, 0, "'r'"), -(33957, 0, "'e'"), -(33958, 0, "'f'"), -(33959, 0, "'e'"), -(33960, 0, "'r'"), -(33961, 0, "'e'"), -(33962, 0, "'n'"), -(33963, 0, "'c'"), -(33964, 0, "'e'"), -(33965, 0, "'-'"), -(33966, 0, "'c'"), -(33967, 0, "'r'"), -(33968, 0, "'d'"), -(33969, 0, "'t'"), -(33970, 0, "'s'"), -(33980, 0, "' '"), -(33981, 0, "'a'"), -(33982, 0, "'l'"), -(33983, 0, "'l'"), -(33984, 0, "' '"), -(33985, 0, "'j'"), -(33986, 0, "'a'"), -(33987, 0, "'m'"), -(33988, 0, "'m'"), -(33989, 0, "'e'"), -(33990, 0, "'d'"), -(33991, 0, "' '"), -(33992, 0, "'i'"), -(33993, 0, "'n'"), -(33994, 0, "'t'"), -(33995, 0, "'o'"), -(33998, 3, "''"), -(33985, 11, "'i'"), -(33986, 0, "'n'"), -(34166, 2, "'n'"), -(34167, 0, "'e'"), -(34168, 0, "'e'"), -(34169, 0, "'d'"), -(34170, 0, "'s'"), -(34131, 295, "''"), -(34165, 4, "' '"), -(34166, 0, "'c'"), -(34167, 0, "'o'"), -(34168, 0, "'m'"), -(34169, 0, "'e'"), -(34170, 0, "' '"), -(34171, 0, "'f'"), -(34172, 0, "'r'"), -(34173, 0, "'o'"), -(34174, 0, "'m'"), -(34435, 2, "'b'"), -(34436, 0, "'y'"), -(34449, 25, "'e'"), -(34450, 0, "'d'"), -(34451, 0, "'i'"), -(34452, 0, "'t'"), -(34453, 0, "'i'"), -(34454, 0, "'n'"), -(34455, 0, "'g'"), -(34456, 0, "' '"), -(34457, 0, "'t'"), -(34458, 0, "'h'"), -(34459, 0, "'e'"), -(34460, 0, "' '"), -(34461, 0, "'g'"), -(34462, 0, "'l'"), -(34463, 0, "'o'"), -(34464, 0, "'b'"), -(34465, 0, "'a'"), -(34466, 0, "'l'"), -(34467, 0, "' '"), -(34468, 0, "'c'"), -(34461, 8, "'c'"), -(34462, 0, "'o'"), -(34463, 0, "'n'"), -(34464, 0, "'s'"), -(34465, 0, "'t'"), -(34466, 0, "'a'"), -(34467, 0, "'n'"), -(34468, 0, "'t'"), -(34469, 0, "' '"), -(34470, 0, "'a'"), -(34471, 0, "'t'"), -(34472, 0, "' '"), -(34473, 0, "'t'"), -(34474, 0, "'h'"), -(34475, 0, "'e'"), -(34476, 0, "' '"), -(34477, 0, "'t'"), -(34478, 0, "'o'"), -(34479, 0, "'p'"), -(34480, 0, "' '"), -(34481, 0, "'o'"), -(34482, 0, "'f'"), -(34581, 0, "'w'"), -(34582, 0, "'h'"), -(34583, 0, "'i'"), -(34584, 0, "'l'"), -(34585, 0, "'e'"), -(34586, 0, "' '"), -(34587, 0, "'b'"), -(34588, 0, "'e'"), -(34589, 0, "'n'"), -(34590, 0, "'c'"), -(34591, 0, "'h'"), -(34592, 0, "'m'"), -(34593, 0, "'a'"), -(34594, 0, "'r'"), -(34595, 0, "'k'"), -(34596, 0, "'i'"), -(34597, 0, "'n'"), -(34598, 0, "'g'"), -(34599, 0, "' '"), -(34602, 12, "'t'"), -(34603, 0, "'h'"), -(34604, 0, "'a'"), -(34605, 0, "'t'"), -(34606, 0, "'s'"), -(34607, 0, "' '"), -(34608, 0, "'h'"), -(34609, 0, "'o'"), -(34610, 0, "'w'"), -(34642, 9, "'i'"), -(34643, 0, "'t'"), -(34644, 0, "'s'"), -(34645, 0, "' '"), -(34646, 0, "'u'"), -(34647, 0, "'s'"), -(34648, 0, "'i'"), -(34649, 0, "'n'"), -(34650, 0, "'g'"), -(34651, 0, "'.'"), -(34652, 0, "' '"), -(34653, 0, "'('"), -(34654, 0, "'N'"), -(34655, 0, "'o'"), -(34656, 0, "'t'"), -(34657, 0, "'e'"), -(34658, 0, "' '"), -(34659, 0, "'y'"), -(34660, 0, "'o'"), -(34661, 0, "'u'"), -(34662, 0, "' '"), -(34663, 0, "'c'"), -(34664, 0, "'a'"), -(34665, 0, "'n'"), -(34666, 0, "'''"), -(34667, 0, "'t'"), -(34668, 0, "' '"), -(34669, 0, "'m'"), -(34670, 0, "'e'"), -(34671, 0, "'a'"), -(34672, 0, "'s'"), -(34673, 0, "'u'"), -(34674, 0, "'r'"), -(34675, 0, "'e'"), -(34676, 0, "' '"), -(34677, 0, "'m'"), -(34678, 0, "'e'"), -(34679, 0, "'m'"), -(34680, 0, "'o'"), -(34681, 0, "'r'"), -(34682, 0, "'y'"), -(34683, 0, "' '"), -(34684, 0, "'u'"), -(34685, 0, "'s'"), -(34686, 0, "'i'"), -(34687, 0, "'n'"), -(34688, 0, "'g'"), -(34689, 0, "' '"), -(34684, 6, "'s'"), -(34685, 0, "'u'"), -(34685, 1, "''"), -(34684, 1, "''"), -(34684, 0, "'u'"), -(34685, 0, "'s'"), -(34686, 0, "'a'"), -(34687, 0, "'g'"), -(34688, 0, "'e'"), -(34689, 0, "' '"), -(34690, 0, "'d'"), -(34691, 0, "'u'"), -(34692, 0, "'r'"), -(34693, 0, "'i'"), -(34694, 0, "'n'"), -(34695, 0, "'g'"), -(34696, 0, "' '"), -(34697, 0, "'t'"), -(34698, 0, "'e'"), -(34699, 0, "'s'"), -(34700, 0, "'t'"), -(34701, 0, "'s'"), -(34702, 0, "' '"), -(34703, 0, "'b'"), -(34704, 0, "'e'"), -(34705, 0, "'c'"), -(34706, 0, "'a'"), -(34707, 0, "'u'"), -(34708, 0, "'s'"), -(34709, 0, "'e'"), -(34710, 0, "' '"), -(34711, 0, "'t'"), -(34712, 0, "'e'"), -(34713, 0, "'s'"), -(34714, 0, "'t'"), -(34715, 0, "' '"), -(34716, 0, "'m'"), -(34717, 0, "'o'"), -(34718, 0, "'d'"), -(34719, 0, "'e'"), -(34720, 0, "' '"), -(34721, 0, "'c'"), -(34722, 0, "'h'"), -(34723, 0, "'a'"), -(34724, 0, "'n'"), -(34725, 0, "'g'"), -(34726, 0, "'e'"), -(34727, 0, "'s'"), -(34728, 0, "' '"), -(34729, 0, "'t'"), -(34730, 0, "'h'"), -(34731, 0, "'e'"), -(34732, 0, "' '"), -(34733, 0, "'m'"), -(34734, 0, "'e'"), -(34735, 0, "'m'"), -(34736, 0, "'o'"), -(34737, 0, "'r'"), -(34738, 0, "'y'"), -(34702, 37, "''"), -(34702, 0, "')'"), -(34668, 0, "' '"), -(34669, 0, "'a'"), -(34670, 0, "'c'"), -(34671, 0, "'c'"), -(34672, 0, "'u'"), -(34673, 0, "'r'"), -(34674, 0, "'a'"), -(34675, 0, "'t'"), -(34676, 0, "'e'"), -(34677, 0, "'l'"), -(34678, 0, "'y'"), -(34701, 7, "'i'"), -(34702, 0, "'n'"), -(34703, 0, "' '"), -(34704, 0, "'t'"), -(34705, 0, "'h'"), -(34706, 0, "'e'"), -(34707, 0, "' '"), -(34708, 0, "'u'"), -(34709, 0, "'n'"), -(34710, 0, "'i'"), -(34711, 0, "'t'"), -(34712, 0, "' '"), -(34713, 0, "'t'"), -(34714, 0, "'e'"), -(34715, 0, "'s'"), -(34716, 0, "'t'"), -(34717, 0, "'i'"), -(34718, 0, "'n'"), -(34719, 0, "'g'"), -(34720, 0, "' '"), -(34721, 0, "'e'"), -(34722, 0, "'n'"), -(34723, 0, "'v'"), -(34724, 0, "'i'"), -(34725, 0, "'r'"), -(34726, 0, "'o'"), -(34727, 0, "'n'"), -(34728, 0, "'m'"), -(34729, 0, "'e'"), -(34730, 0, "'n'"), -(34731, 0, "'t'"), -(34732, 5, "''"), -(34882, 0, "' '"), -(34883, 0, "'T'"), -(34884, 0, "'h'"), -(34885, 0, "'e'"), -(34886, 0, "' '"), -(34887, 0, "'r'"), -(34888, 0, "'e'"), -(34889, 0, "'f'"), -(34890, 0, "'e'"), -(34891, 0, "'r'"), -(34892, 0, "'e'"), -(34893, 0, "'n'"), -(34894, 0, "'c'"), -(34895, 0, "'e'"), -(34896, 0, "'-'"), -(34897, 0, "'c'"), -(34898, 0, "'r'"), -(34899, 0, "'d'"), -(34900, 0, "'t'"), -(34901, 0, "'s'"), -(34902, 0, "' '"), -(34903, 0, "'i'"), -(34904, 0, "'m'"), -(34905, 0, "'p'"), -(34906, 0, "'l'"), -(34907, 0, "'e'"), -(34908, 0, "'m'"), -(34909, 0, "'e'"), -(34910, 0, "'n'"), -(34911, 0, "'t'"), -(34912, 0, "'a'"), -(34913, 0, "'t'"), -(34914, 0, "'i'"), -(34915, 0, "'o'"), -(34916, 0, "'n'"), -(34917, 0, "' '"), -(34918, 0, "'d'"), -(34919, 0, "'e'"), -(34920, 0, "'p'"), -(34921, 0, "'e'"), -(34922, 0, "'n'"), -(34923, 0, "'d'"), -(34924, 0, "'s'"), -(34925, 0, "' '"), -(34926, 0, "'o'"), -(34927, 0, "'n'"), -(34928, 0, "' '"), -(34929, 0, "'['"), -(34902, 15, "' '"), -(34903, 0, "'b'"), -(34904, 0, "'e'"), -(34905, 0, "'n'"), -(34906, 0, "'c'"), -(34907, 0, "'h'"), -(34908, 0, "'m'"), -(34909, 0, "'a'"), -(34910, 0, "'r'"), -(34911, 0, "'k'"), -(34912, 0, "'s'"), -(34912, 1, "''"), -(34925, 0, "'c'"), -(34926, 0, "'r'"), -(34927, 0, "'d'"), -(34928, 0, "'t'"), -(34929, 0, "'s'"), -(34930, 0, "'.'"), -(34931, 0, "'t'"), -(34932, 0, "'s'"), -(34933, 0, "']'"), -(34934, 0, "'('"), -(34934, 1, "''"), -(34933, 0, "' '"), -(34934, 0, "'f'"), -(34935, 0, "'r'"), -(34936, 0, "'o'"), -(34937, 0, "'m'"), -(34938, 0, "' '"), -(34939, 0, "'t'"), -(34940, 0, "'h'"), -(34941, 0, "'i'"), -(34942, 0, "'s'"), -(34943, 0, "' '"), -(34944, 0, "'r'"), -(34945, 0, "'e'"), -(34946, 0, "'p'"), -(34947, 0, "'o'"), -(34948, 0, "'s'"), -(34949, 0, "'i'"), -(34950, 0, "'t'"), -(34951, 0, "'o'"), -(34952, 0, "'r'"), -(34953, 0, "'y'"), -(34955, 0, "'('"), -(34956, 0, "'https://github.com/josephg/reference-crdts/tree/fed747255df9d457e11f36575de555b39f07e909'"), -(35044, 0, "')'"), -(34954, 0, "','"), -(34955, 0, "' '"), -(34956, 0, "'a'"), -(34957, 0, "'t'"), -(34958, 0, "' '"), -(34959, 0, "'t'"), -(34960, 0, "'h'"), -(34961, 0, "'i'"), -(34962, 0, "'s'"), -(34963, 0, "' '"), -(34964, 0, "'v'"), -(34965, 0, "'e'"), -(34966, 0, "'r'"), -(34967, 0, "'s'"), -(34968, 0, "'i'"), -(34969, 0, "'o'"), -(34970, 0, "'n'"), -(34199, 0, "','"), -(34200, 0, "' '"), -(34201, 0, "'a'"), -(34202, 0, "'t'"), -(34203, 0, "' '"), -(34204, 0, "'t'"), -(34205, 0, "'h'"), -(34206, 0, "'i'"), -(34207, 0, "'s'"), -(34208, 0, "' '"), -(34209, 0, "'v'"), -(34210, 0, "'e'"), -(34211, 0, "'r'"), -(34212, 0, "'s'"), -(34213, 0, "'i'"), -(34214, 0, "'o'"), -(34215, 0, "'n'"), -(33699, 60, "' '"), -(33700, 0, "'H'"), -(33701, 0, "'o'"), -(33702, 0, "'w'"), -(33703, 0, "' '"), -(33704, 0, "'d'"), -(33705, 0, "'o'"), -(33706, 0, "' '"), -(33707, 0, "'I'"), -(33708, 0, "' '"), -(33709, 0, "'r'"), -(33710, 0, "'e'"), -(33711, 0, "'p'"), -(33712, 0, "'r'"), -(33713, 0, "'o'"), -(33714, 0, "'d'"), -(33715, 0, "'u'"), -(33716, 0, "'c'"), -(33717, 0, "'e'"), -(33718, 0, "' '"), -(33719, 0, "'y'"), -(33720, 0, "'o'"), -(33721, 0, "'u'"), -(33722, 0, "'r'"), -(33723, 0, "' '"), -(33724, 0, "'r'"), -(33725, 0, "'e'"), -(33726, 0, "'s'"), -(33727, 0, "'u'"), -(33728, 0, "'l'"), -(33729, 0, "'t'"), -(33730, 0, "'s'"), -(33731, 0, "'?'"), -(33709, 22, "'r'"), -(33710, 0, "'e'"), -(33711, 0, "'-'"), -(33712, 0, "'r'"), -(33713, 0, "'u'"), -(33714, 0, "'n'"), -(33715, 0, "' '"), -(33716, 0, "'y'"), -(33717, 0, "'o'"), -(33718, 0, "'u'"), -(33719, 0, "'r'"), -(33720, 0, "' '"), -(33721, 0, "'b'"), -(33722, 0, "'e'"), -(33723, 0, "'n'"), -(33724, 0, "'c'"), -(33725, 0, "'h'"), -(33726, 0, "'m'"), -(33727, 0, "'a'"), -(33728, 0, "'r'"), -(33729, 0, "'k'"), -(33730, 0, "' '"), -(33731, 0, "'r'"), -(33732, 0, "'e'"), -(33733, 0, "'s'"), -(33734, 0, "'u'"), -(33735, 0, "'l'"), -(33736, 0, "'t'"), -(33737, 0, "'s'"), -(33699, 0, "' '"), -(33700, 0, "'I'"), -(33701, 0, "' '"), -(33702, 0, "'d'"), -(33703, 0, "'o'"), -(33704, 0, "'n'"), -(33705, 0, "'''"), -(33706, 0, "'t'"), -(33707, 0, "' '"), -(33708, 0, "'b'"), -(33709, 0, "'e'"), -(33710, 0, "'l'"), -(33711, 0, "'i'"), -(33712, 0, "'e'"), -(33713, 0, "'v'"), -(33714, 0, "'e'"), -(33715, 0, "' '"), -(33716, 0, "'y'"), -(33717, 0, "'o'"), -(33718, 0, "'u'"), -(33699, 20, "''"), -(33709, 3, "''"), -(33727, 0, "'s'"), -(33728, 0, "' '"), -(33729, 0, "'m'"), -(33730, 0, "'y'"), -(33731, 0, "'s'"), -(33732, 0, "'e'"), -(33733, 0, "'l'"), -(33734, 0, "'f'"), -(33735, 8, "''"), -(33713, 4, "'t'"), -(33714, 0, "'h'"), -(33715, 0, "'e'"), -(33716, 0, "'s'"), -(33717, 0, "'e'"), -(38416, 53, "''"), -(38416, 0, "'w'"), -(38417, 0, "'e'"), -(38418, 0, "' '"), -(38419, 0, "'n'"), -(38420, 0, "'e'"), -(38421, 0, "'e'"), -(38422, 0, "'d'"), -(38423, 0, "' '"), -(38424, 0, "'t'"), -(38425, 0, "'o'"), -(38426, 0, "' '"), -(38427, 0, "'t'"), -(38428, 0, "'a'"), -(38429, 0, "'k'"), -(38430, 0, "'e'"), -(38431, 0, "' '"), -(38432, 0, "'a'"), -(38433, 0, "' '"), -(38434, 0, "'l'"), -(38435, 0, "'o'"), -(38436, 0, "'t'"), -(38437, 0, "' '"), -(38438, 0, "'m'"), -(38439, 0, "'o'"), -(38440, 0, "'r'"), -(38441, 0, "'e'"), -(38442, 0, "' '"), -(38443, 0, "'s'"), -(38444, 0, "'e'"), -(38445, 0, "'r'"), -(38446, 0, "'i'"), -(38447, 0, "'o'"), -(38448, 0, "'u'"), -(38449, 0, "'s'"), -(38450, 0, "'l'"), -(38451, 0, "'y'"), -(38452, 0, "' '"), -(38453, 0, "'i'"), -(38454, 0, "'s'"), -(38455, 0, "' '"), -(38456, 0, "'h'"), -(38457, 0, "'o'"), -(38458, 0, "'w'"), -(38459, 0, "' '"), -(38460, 0, "'w'"), -(38461, 0, "'e'"), -(38470, 1, "''"), -(38469, 1, "''"), -(38468, 1, "''"), -(38468, 0, "'e'"), -(38648, 1, "''"), -(38648, 0, "' '"), -(38649, 0, "'-'"), -(38650, 0, "' '"), -(38651, 0, "'s'"), -(38652, 0, "'o'"), -(38653, 0, "' '"), -(38654, 0, "'t'"), -(38655, 0, "'h'"), -(38656, 0, "'e'"), -(38657, 0, "' '"), -(38658, 0, "'m'"), -(38659, 0, "'o'"), -(38660, 0, "'d'"), -(38661, 0, "'e'"), -(38662, 0, "'l'"), -(38663, 0, "' '"), -(38664, 0, "'o'"), -(38665, 0, "'f'"), -(38666, 0, "' '"), -(38667, 0, "'''"), -(38668, 0, "'l'"), -(38669, 0, "'o'"), -(38670, 0, "'a'"), -(38671, 0, "'d'"), -(38672, 0, "' '"), -(38673, 0, "'a'"), -(38674, 0, "'n'"), -(38675, 0, "' '"), -(38676, 0, "'o'"), -(38677, 0, "'b'"), -(38678, 0, "'j'"), -(38679, 0, "'e'"), -(38680, 0, "'t'"), -(38680, 1, "''"), -(38680, 0, "'c'"), -(38681, 0, "'t'"), -(38682, 0, "','"), -(38683, 0, "' '"), -(38684, 0, "'k'"), -(38685, 0, "'e'"), -(38686, 0, "'e'"), -(38687, 0, "'p'"), -(38688, 0, "' '"), -(38689, 0, "'i'"), -(38690, 0, "'t'"), -(38691, 0, "' '"), -(38692, 0, "'i'"), -(38693, 0, "'n'"), -(38694, 0, "' '"), -(38695, 0, "'r'"), -(38696, 0, "'a'"), -(38697, 0, "'m'"), -(38698, 0, "' '"), -(38699, 0, "'f'"), -(38700, 0, "'o'"), -(38701, 0, "'r'"), -(38702, 0, "' '"), -(38699, 4, "'w'"), -(38700, 0, "'h'"), -(38701, 0, "'i'"), -(38702, 0, "'l'"), -(38703, 0, "'e'"), -(38704, 0, "' '"), -(38705, 0, "'i'"), -(38706, 0, "'t'"), -(38707, 0, "'s'"), -(38708, 0, "' '"), -(38709, 0, "'o'"), -(38710, 0, "'p'"), -(38711, 0, "'e'"), -(38712, 0, "'n'"), -(38713, 0, "' '"), -(38714, 0, "'a'"), -(38715, 0, "'n'"), -(38716, 0, "'d'"), -(38717, 0, "' '"), -(38718, 0, "'t'"), -(38719, 0, "'h'"), -(38720, 0, "'e'"), -(38721, 0, "'n'"), -(38722, 0, "' '"), -(38723, 0, "'s'"), -(38724, 0, "'a'"), -(38725, 0, "'v'"), -(38726, 0, "'e'"), -(38727, 0, "' '"), -(38728, 0, "'i'"), -(38729, 0, "'t'"), -(38723, 0, "'e'"), -(38724, 0, "'v'"), -(38725, 0, "'e'"), -(38726, 0, "'n'"), -(38727, 0, "'t'"), -(38728, 0, "'u'"), -(38729, 0, "'a'"), -(38730, 0, "'l'"), -(38731, 0, "'l'"), -(38732, 0, "'y'"), -(38733, 0, "' '"), -(38741, 0, "'''"), -(38742, 0, "' '"), -(38743, 0, "'d'"), -(38744, 0, "'o'"), -(38745, 0, "'e'"), -(38746, 0, "'s'"), -(38747, 0, "'n'"), -(38748, 0, "'''"), -(38749, 0, "'t'"), -(38750, 0, "' '"), -(38751, 0, "'w'"), -(38752, 0, "'o'"), -(38753, 0, "'r'"), -(38754, 0, "'k'"), -(38755, 0, "'.'"), -(38751, 4, "'a'"), -(38752, 0, "'p'"), -(38753, 0, "'p'"), -(38754, 0, "'l'"), -(38755, 0, "'y'"), -(39104, 0, "'n'"), -(39105, 0, "'n'"), -(39105, 1, "''"), -(39104, 1, "''"), -(39104, 0, "'n'"), -(39105, 0, "'n'"), -(39106, 0, "'>'"), -(39107, 0, "' '"), -(39108, 0, "'E'"), -(39109, 0, "'d'"), -(39110, 0, "'i'"), -(39111, 0, "'t'"), -(39112, 0, "':'"), -(39113, 0, "' '"), -(39114, 0, "'K'"), -(39115, 0, "'e'"), -(39116, 0, "'v'"), -(39117, 0, "'i'"), -(39118, 0, "'n'"), -(39119, 0, "' '"), -(39120, 0, "'s'"), -(39121, 0, "'a'"), -(39122, 0, "'y'"), -(39123, 0, "'s'"), -(39124, 0, "' '"), -(39125, 0, "'t'"), -(39126, 0, "'h'"), -(39127, 0, "'e'"), -(39128, 0, "'r'"), -(39129, 0, "'e'"), -(39130, 0, "' '"), -(39131, 0, "'a'"), -(39132, 0, "'r'"), -(39133, 0, "'e'"), -(39134, 0, "' '"), -(39125, 10, "'y'"), -(39126, 0, "'o'"), -(39127, 0, "'u'"), -(39128, 0, "' '"), -(39129, 0, "'c'"), -(39130, 0, "'a'"), -(39131, 0, "'n'"), -(39132, 0, "' '"), -(39133, 0, "'d'"), -(39134, 0, "'o'"), -(39135, 0, "' '"), -(39136, 0, "'t'"), -(39137, 0, "'h'"), -(39138, 0, "'i'"), -(39139, 0, "'s'"), -(39140, 0, "' '"), -(39133, 8, "'a'"), -(39134, 0, "'d'"), -(39135, 0, "'a'"), -(39136, 0, "'p'"), -(39137, 0, "'t'"), -(39138, 0, "' '"), -(39139, 0, "'Y'"), -(39140, 0, "'j'"), -(39141, 0, "'s'"), -(39142, 0, "'''"), -(39143, 0, "'s'"), -(39144, 0, "' '"), -(39145, 0, "'p'"), -(39146, 0, "'r'"), -(39147, 0, "'o'"), -(39148, 0, "'v'"), -(39149, 0, "'i'"), -(39150, 0, "'d'"), -(39151, 0, "'e'"), -(39152, 0, "'r'"), -(39153, 0, "'s'"), -(39154, 0, "' '"), -(39155, 0, "'t'"), -(39156, 0, "'o'"), -(39157, 0, "' '"), -(39158, 0, "'i'"), -(39159, 0, "'m'"), -(39160, 0, "'p'"), -(39161, 0, "'l'"), -(39162, 0, "'e'"), -(39163, 0, "'m'"), -(39164, 0, "'e'"), -(39165, 0, "'n'"), -(39166, 0, "'t'"), -(39167, 0, "' '"), -(39168, 0, "'t'"), -(39169, 0, "'h'"), -(39170, 0, "'i'"), -(39171, 0, "'s'"), -(39172, 0, "' '"), -(39173, 0, "'i'"), -(39174, 0, "'n'"), -(39175, 0, "' '"), -(39176, 0, "'a'"), -(39177, 0, "' '"), -(39178, 0, "'r'"), -(39179, 0, "'e'"), -(39180, 0, "'a'"), -(39181, 0, "'s'"), -(39182, 0, "'o'"), -(39183, 0, "'n'"), -(39184, 0, "'a'"), -(39185, 0, "'b'"), -(39186, 0, "'l'"), -(39187, 0, "'e'"), -(39188, 0, "' '"), -(39189, 0, "'w'"), -(39190, 0, "'a'"), -(39191, 0, "'y'"), -(39192, 0, "'.'"), -(39193, 0, "' '"), -(39194, 0, "'I'"), -(39195, 0, "'d'"), -(39195, 1, "''"), -(39195, 0, "'''"), -(39196, 0, "'d'"), -(39194, 3, "''"), -(39194, 0, "'I'"), -(39194, 1, "''"), -(39194, 0, "'K'"), -(39195, 0, "'e'"), -(39196, 0, "'v'"), -(39197, 0, "'i'"), -(39198, 0, "'n'"), -(39199, 0, "' '"), -(39200, 0, "'i'"), -(39201, 0, "'s'"), -(39202, 0, "' '"), -(39203, 0, "'u'"), -(39204, 0, "'s'"), -(39205, 0, "'u'"), -(39206, 0, "'a'"), -(39207, 0, "'l'"), -(39208, 0, "'l'"), -(39209, 0, "'y'"), -(39210, 0, "' '"), -(39211, 0, "'r'"), -(39212, 0, "'i'"), -(39213, 0, "'g'"), -(39214, 0, "'h'"), -(39215, 0, "'t'"), -(39216, 0, "';'"), -(39217, 0, "' '"), -(39218, 0, "'b'"), -(39219, 0, "'u'"), -(39220, 0, "'t'"), -(39221, 0, "' '"), -(39222, 0, "'I'"), -(39223, 0, "'''"), -(39224, 0, "'d'"), -(39225, 0, "' '"), -(39226, 0, "'s'"), -(39227, 0, "'u'"), -(39228, 0, "'r'"), -(39229, 0, "'e'"), -(39230, 0, "' '"), -(39231, 0, "'l'"), -(39232, 0, "'o'"), -(39233, 0, "'v'"), -(39234, 0, "'e'"), -(39235, 0, "' '"), -(39236, 0, "'t'"), -(39237, 0, "'o'"), -(39238, 0, "' '"), -(39239, 0, "'s'"), -(39240, 0, "'e'"), -(39241, 0, "'e'"), -(39242, 0, "' '"), -(39243, 0, "'t'"), -(39244, 0, "'h'"), -(39245, 0, "'a'"), -(39246, 0, "'t'"), -(39247, 0, "' '"), -(39248, 0, "'i'"), -(39249, 0, "'n'"), -(39250, 0, "' '"), -(39251, 0, "'a'"), -(39252, 0, "'c'"), -(39253, 0, "'t'"), -(39254, 0, "'i'"), -(39255, 0, "'o'"), -(39256, 0, "'n'"), -(39257, 0, "'.'"), -(39194, 28, "''"), -(39194, 36, "''"), -(39193, 1, "''"), -(39193, 0, "' '"), -(39194, 0, "'I'"), -(39195, 0, "'''"), -(39196, 0, "'d'"), -(39197, 0, "' '"), -(39198, 0, "'l'"), -(39199, 0, "'o'"), -(39200, 0, "'v'"), -(39201, 0, "'e'"), -(39202, 0, "' '"), -(39203, 0, "'t'"), -(39204, 0, "'o'"), -(39205, 0, "' '"), -(39206, 0, "'s'"), -(39207, 0, "'e'"), -(39208, 0, "'e'"), -(39209, 0, "' '"), -(39210, 0, "'t'"), -(39211, 0, "'h'"), -(39212, 0, "'a'"), -(39213, 0, "'t'"), -(39214, 0, "' '"), -(39215, 0, "'i'"), -(39216, 0, "'n'"), -(39217, 0, "' '"), -(39218, 0, "'a'"), -(39219, 0, "'c'"), -(39220, 0, "'t'"), -(39221, 0, "'i'"), -(39222, 0, "'o'"), -(39223, 0, "'n'"), -(39224, 0, "'.'"), -(39194, 31, "''"), -(39193, 1, "''"), -(39193, 0, "' '"), -(39194, 0, "'I'"), -(39195, 0, "'''"), -(39196, 0, "'d'"), -(39197, 0, "' '"), -(39198, 0, "'o'"), -(39199, 0, "'v'"), -(39200, 0, "'e'"), -(39200, 1, "''"), -(39199, 1, "''"), -(39198, 1, "''"), -(39198, 0, "'l'"), -(39199, 0, "'o'"), -(39200, 0, "'v'"), -(39201, 0, "'e'"), -(39202, 0, "' '"), -(39203, 0, "'t'"), -(39204, 0, "'o'"), -(39205, 0, "' '"), -(39206, 0, "'s'"), -(39207, 0, "'e'"), -(39208, 0, "'e'"), -(39209, 0, "' '"), -(39210, 0, "'t'"), -(39211, 0, "'h'"), -(39212, 0, "'a'"), -(39213, 0, "'t'"), -(39214, 0, "' '"), -(39215, 0, "'i'"), -(39216, 0, "'n'"), -(39217, 0, "' '"), -(39218, 0, "'a'"), -(39219, 0, "'c'"), -(39220, 0, "'t'"), -(39221, 0, "'i'"), -(39222, 0, "'o'"), -(39223, 0, "'n'"), -(39224, 0, "'.'"), -(40111, 4, "'I'"), -(40112, 0, "' '"), -(40113, 0, "'c'"), -(40114, 0, "'a'"), -(40115, 0, "'n'"), -(40116, 0, "' '"), -(40129, 1, "''"), -(40128, 1, "''"), -(40127, 1, "''"), -(40146, 0, "' '"), -(40147, 0, "'1'"), -(40148, 0, "'0'"), -(40149, 0, "'x'"), -(40171, 0, "'o'"), -(40172, 0, "'f'"), -(40173, 0, "' '"), -(40185, 14, "''"), -(40178, 7, "'d'"), -(40179, 0, "'i'"), -(40180, 0, "'f'"), -(40181, 0, "'f'"), -(40182, 0, "'e'"), -(40183, 0, "'r'"), -(40184, 0, "'e'"), -(40185, 0, "'n'"), -(40186, 0, "'c'"), -(40187, 0, "'e'"), -(40188, 0, "'s'"), -(40288, 0, "'H'"), -(40289, 0, "'o'"), -(40290, 0, "'w'"), -(40291, 0, "' '"), -(40292, 0, "'m'"), -(40293, 0, "'u'"), -(40294, 0, "'c'"), -(40295, 0, "'h'"), -(40296, 0, "' '"), -(40297, 0, "'f'"), -(40297, 1, "''"), -(40297, 0, "'o'"), -(40298, 0, "'f'"), -(40299, 0, "' '"), -(40300, 0, "'t'"), -(40301, 0, "'h'"), -(40302, 0, "'e'"), -(40303, 0, "' '"), -(40304, 0, "'s'"), -(40305, 0, "'p'"), -(40306, 0, "'e'"), -(40307, 0, "'e'"), -(40308, 0, "'d'"), -(40309, 0, "' '"), -(40310, 0, "'d'"), -(40311, 0, "'i'"), -(40312, 0, "'f'"), -(40313, 0, "'f'"), -(40314, 0, "'e'"), -(40315, 0, "'r'"), -(40316, 0, "'e'"), -(40317, 0, "'n'"), -(40318, 0, "'c'"), -(40319, 0, "'e'"), -(40320, 0, "' '"), -(40321, 0, "'b'"), -(40322, 0, "'e'"), -(40323, 0, "'w'"), -(40324, 0, "'e'"), -(40325, 0, "'e'"), -(40326, 0, "'n'"), -(40321, 6, "'b'"), -(40322, 0, "'e'"), -(40323, 0, "'t'"), -(40324, 0, "'w'"), -(40325, 0, "'e'"), -(40326, 0, "'e'"), -(40327, 0, "'n'"), -(40328, 0, "' '"), -(40329, 0, "'m'"), -(40330, 0, "'y'"), -(40331, 8, "''"), -(40341, 0, "' '"), -(40342, 0, "'a'"), -(40343, 0, "'n'"), -(40344, 0, "'d'"), -(40345, 0, "' '"), -(40346, 0, "'y'"), -(40347, 0, "'j'"), -(40348, 0, "'s'"), -(40349, 0, "' '"), -(40350, 0, "'i'"), -(40351, 0, "'s'"), -(40352, 0, "' '"), -(40353, 0, "'s'"), -(40354, 0, "'i'"), -(40355, 0, "'m'"), -(40356, 0, "'p'"), -(40357, 0, "'l'"), -(40358, 0, "'y'"), -(40359, 0, "' '"), -(40360, 0, "'d'"), -(40361, 0, "'u'"), -(40362, 0, "'e'"), -(40363, 0, "' '"), -(40364, 0, "'t'"), -(40365, 0, "'o'"), -(40366, 67, "''"), -(40360, 6, "'t'"), -(40361, 0, "'h'"), -(40362, 0, "'n'"), -(40363, 0, "'k'"), -(40364, 0, "'s'"), -(40364, 1, "''"), -(40363, 1, "''"), -(40362, 1, "''"), -(40362, 0, "'a'"), -(40363, 0, "'n'"), -(40364, 0, "'k'"), -(40365, 0, "'s'"), -(40366, 0, "' '"), -(40367, 0, "'t'"), -(40368, 0, "'o'"), -(40369, 0, "' '"), -(40370, 0, "'t'"), -(40371, 0, "'h'"), -(40372, 0, "'e'"), -(40373, 0, "' '"), -(40374, 0, "'r'"), -(40375, 0, "'u'"), -(40376, 0, "'s'"), -(40377, 0, "'t'"), -(40378, 0, "' '"), -(40379, 0, "'c'"), -(40380, 0, "'o'"), -(40381, 0, "'m'"), -(40382, 0, "'p'"), -(40383, 0, "'i'"), -(40384, 0, "'l'"), -(40385, 0, "'e'"), -(40386, 0, "'r'"), -(40387, 0, "'?'"), -(40388, 1, "''"), -(40388, 47, "''"), -(40349, 0, "' '"), -(40350, 0, "'h'"), -(40351, 0, "'a'"), -(40352, 0, "'s'"), -(40353, 0, "' '"), -(40354, 0, "'n'"), -(40355, 0, "'o'"), -(40356, 0, "'t'"), -(40357, 0, "'h'"), -(40358, 0, "'i'"), -(40359, 0, "'n'"), -(40360, 0, "'g'"), -(40361, 0, "' '"), -(40362, 0, "'t'"), -(40363, 0, "'o'"), -(40364, 0, "' '"), -(40365, 0, "'d'"), -(40366, 0, "'o'"), -(40367, 0, "' '"), -(40368, 0, "'w'"), -(40369, 0, "'i'"), -(40370, 0, "'t'"), -(40371, 0, "'h'"), -(40372, 0, "' '"), -(40373, 0, "'m'"), -(40374, 0, "'e'"), -(40375, 0, "'m'"), -(40376, 0, "'o'"), -(40377, 0, "'r'"), -(40378, 0, "'y'"), -(40379, 0, "' '"), -(40380, 0, "'l'"), -(40381, 0, "'a'"), -(40382, 0, "'y'"), -(40383, 0, "'o'"), -(40384, 0, "'u'"), -(40385, 0, "'t'"), -(40386, 0, "','"), -(40387, 0, "' '"), -(40388, 0, "'a'"), -(40389, 0, "'n'"), -(40390, 0, "'d'"), -(40391, 0, "' '"), -(40392, 0, "'e'"), -(40393, 0, "'v'"), -(40394, 0, "'e'"), -(40395, 0, "'r'"), -(40396, 0, "'y'"), -(40397, 0, "'t'"), -(40398, 0, "'h'"), -(40399, 0, "'i'"), -(40400, 0, "'n'"), -(40401, 0, "'g'"), -(40402, 0, "' '"), -(40403, 0, "'t'"), -(40404, 0, "'o'"), -(40405, 0, "' '"), -(40406, 0, "'d'"), -(40407, 0, "'o'"), -(40408, 0, "' '"), -(40409, 0, "'w'"), -(40410, 0, "'t'"), -(40411, 0, "'i'"), -(40412, 0, "'h'"), -(40412, 1, "''"), -(40411, 1, "''"), -(40410, 1, "''"), -(40410, 0, "'i'"), -(40411, 0, "'t'"), -(40412, 0, "'h'"), -(40413, 20, "''"), -(40432, 0, "' '"), -(40433, 0, "'I'"), -(40434, 0, "' '"), -(40435, 0, "'d'"), -(40436, 0, "'o'"), -(40437, 0, "'n'"), -(40438, 0, "'''"), -(40439, 0, "'t'"), -(40440, 0, "' '"), -(40441, 0, "'k'"), -(40442, 0, "'n'"), -(40443, 0, "'o'"), -(40444, 0, "'w'"), -(40445, 0, "'.'"), -(40432, 1, "''"), -(40432, 0, "'n'"), -(40433, 0, "'n'"), -(40449, 3, "'S'"), -(40450, 0, "'o'"), -(40446, 1, "''"), -(40446, 0, "'!'"), -(40643, 7, "'t'"), -(40644, 0, "'e'"), -(40645, 0, "'a'"), -(40646, 0, "'s'"), -(40647, 0, "'e'"), -(40648, 0, "' '"), -(40649, 0, "'a'"), -(40650, 0, "'p'"), -(40651, 0, "'a'"), -(40652, 0, "'r'"), -(40653, 0, "'t'"), -(40708, 0, "' '"), -(40709, 0, "'I'"), -(40710, 0, "' '"), -(40711, 0, "'l'"), -(40712, 0, "'o'"), -(40713, 0, "'v'"), -(40714, 0, "'e'"), -(40715, 0, "' '"), -(40716, 0, "'b'"), -(40717, 0, "'e'"), -(40718, 0, "'n'"), -(40719, 0, "'h'"), -(40720, 0, "'c'"), -(40720, 1, "''"), -(40719, 1, "''"), -(40719, 0, "'c'"), -(40720, 0, "'h'"), -(40721, 0, "'m'"), -(40722, 0, "'a'"), -(40723, 0, "'r'"), -(40724, 0, "'k'"), -(40725, 0, "'i'"), -(40726, 0, "'n'"), -(40727, 0, "'g'"), -(40728, 0, "' '"), -(40729, 0, "'s'"), -(40730, 0, "'t'"), -(40731, 0, "'o'"), -(40732, 0, "'r'"), -(40733, 0, "'i'"), -(40734, 0, "'e'"), -(40735, 0, "'s'"), -(40736, 0, "'.'"), -(40737, 0, "' '"), -(40738, 0, "'T'"), -(40739, 0, "'h'"), -(40740, 0, "'a'"), -(40741, 0, "'t'"), -(40742, 0, "' '"), -(40742, 1, "''"), -(40742, 0, "'s'"), -(40743, 0, "' '"), -(40744, 0, "'n'"), -(40745, 0, "'o'"), -(40746, 0, "'r'"), -(40747, 0, "'m'"), -(40748, 0, "'a'"), -(40749, 0, "'l'"), -(40750, 0, "','"), -(40751, 0, "' '"), -(40752, 0, "'r'"), -(40753, 0, "'i'"), -(40754, 0, "'g'"), -(40755, 0, "'h'"), -(40756, 0, "'t'"), -(40757, 0, "'?'"), -(948, 39, "''"), -(959, 6, "'i'"), -(960, 0, "'m'"), -(961, 0, "'p'"), -(962, 0, "'l'"), -(963, 0, "'e'"), -(964, 0, "'m'"), -(965, 0, "'e'"), -(966, 0, "'n'"), -(967, 0, "'t'"), -(968, 0, "'a'"), -(969, 0, "'t'"), -(970, 0, "'i'"), -(971, 0, "'o'"), -(972, 0, "'n'"), -(973, 0, "' '"), -(1333, 5, "'y'"), -(1334, 0, "'o'"), -(1335, 0, "'u'"), -(1336, 0, "'t'"), -(1336, 1, "''"), -(1336, 0, "'r'"), -(1531, 9, "''"), -(1530, 1, "''"), -(2203, 3, "''"), -(2202, 1, "''"), -(2201, 1, "''"), -(2200, 1, "''"), -(2199, 1, "''"), -(2198, 1, "''"), -(2198, 0, "' '"), -(2199, 0, "'R'"), -(2200, 0, "'G'"), -(2201, 0, "'A'"), -(2202, 0, "' '"), -(2203, 0, "'i'"), -(2204, 0, "'s'"), -(2205, 0, "' '"), -(2206, 0, "'a'"), -(2207, 0, "'n'"), -(2209, 1, "''"), -(2209, 0, "'A'"), -(2401, 20, "'W'"), -(2402, 0, "'h'"), -(2403, 0, "'a'"), -(2404, 0, "'t'"), -(2405, 0, "' '"), -(2406, 0, "'a'"), -(2407, 0, "'r'"), -(2408, 0, "'e'"), -(2409, 0, "' '"), -(2410, 0, "'t'"), -(2411, 0, "'h'"), -(2412, 0, "'e'"), -(2413, 0, "' '"), -(2414, 0, "'r'"), -(2415, 0, "'u'"), -(2416, 0, "'l'"), -(2417, 0, "'e'"), -(2418, 0, "'s'"), -(2419, 0, "'?'"), -(2419, 1, "''"), -(2419, 0, "' '"), -(2420, 0, "'w'"), -(2421, 0, "'h'"), -(2422, 0, "'i'"), -(2423, 0, "'c'"), -(2424, 0, "'h'"), -(2425, 0, "' '"), -(2426, 0, "'d'"), -(2427, 0, "'e'"), -(2428, 0, "'s'"), -(2429, 0, "'c'"), -(2430, 0, "'r'"), -(2431, 0, "'i'"), -(2432, 0, "'b'"), -(2433, 0, "'e'"), -(2434, 0, "' '"), -(2435, 0, "'t'"), -(2436, 0, "'h'"), -(2437, 0, "'e'"), -(2438, 0, "' '"), -(2439, 0, "'s'"), -(2440, 0, "'y'"), -(2441, 0, "'s'"), -(2442, 0, "'t'"), -(2443, 0, "'e'"), -(2444, 0, "'m'"), -(2445, 0, "'''"), -(2446, 0, "'s'"), -(2447, 0, "' '"), -(2448, 0, "'b'"), -(2449, 0, "'e'"), -(2450, 0, "'h'"), -(2451, 0, "'a'"), -(2452, 0, "'v'"), -(2453, 0, "'i'"), -(2454, 0, "'o'"), -(2455, 0, "'u'"), -(2456, 0, "'r'"), -(2457, 0, "'?'"), -(2585, 0, "'W'"), -(2586, 0, "'h'"), -(2587, 0, "'e'"), -(2588, 0, "'n'"), -(2589, 0, "' '"), -(2585, 5, "''"), -(2585, 0, "'I'"), -(2586, 0, "'f'"), -(2587, 0, "' '"), -(2588, 0, "'m'"), -(2589, 0, "'y'"), -(2590, 0, "' '"), -(2591, 24, "'i'"), -(2592, 0, "'m'"), -(2593, 0, "'p'"), -(2594, 0, "'l'"), -(2595, 0, "'e'"), -(2596, 0, "'m'"), -(2597, 0, "'e'"), -(2598, 0, "'n'"), -(2599, 0, "'t'"), -(2600, 0, "'a'"), -(2601, 0, "'t'"), -(2602, 0, "'i'"), -(2603, 0, "'o'"), -(2604, 0, "'n'"), -(2605, 0, "' '"), -(2606, 0, "'r'"), -(2607, 0, "'u'"), -(2608, 0, "'n'"), -(2609, 0, "'s'"), -(2615, 0, "'l'"), -(2616, 0, "'y'"), -(2617, 0, "','"), -(2618, 15, "' '"), -(2619, 0, "'w'"), -(2620, 0, "'h'"), -(2621, 0, "'a'"), -(2622, 0, "'t'"), -(2623, 0, "' '"), -(2624, 0, "'c'"), -(2625, 0, "'a'"), -(2626, 0, "'n'"), -(2627, 0, "' '"), -(2628, 0, "'w'"), -(2629, 0, "'e'"), -(2630, 0, "' '"), -(2631, 0, "'i'"), -(2632, 0, "'n'"), -(2633, 0, "'f'"), -(2634, 0, "'e'"), -(2635, 0, "'r'"), -(2636, 0, "' '"), -(2637, 0, "'f'"), -(2638, 0, "'r'"), -(2639, 0, "'o'"), -(2640, 0, "'m'"), -(2641, 0, "' '"), -(2642, 0, "'t'"), -(2643, 0, "'h'"), -(2644, 0, "'a'"), -(2645, 0, "'t'"), -(2631, 0, "'r'"), -(2632, 0, "'e'"), -(2633, 0, "'a'"), -(2634, 0, "'l'"), -(2635, 0, "'l'"), -(2636, 0, "'y'"), -(2637, 0, "' '"), -(2638, 0, "'s'"), -(2638, 1, "''"), -(2624, 29, "''"), -(2624, 0, "'d'"), -(2625, 0, "'o'"), -(2626, 0, "'e'"), -(2627, 0, "'s'"), -(2628, 0, "' '"), -(2629, 0, "'t'"), -(2630, 0, "'h'"), -(2631, 0, "'a'"), -(2632, 0, "'t'"), -(2633, 0, "' '"), -(2634, 0, "'a'"), -(2635, 0, "'c'"), -(2636, 0, "'t'"), -(2637, 0, "'u'"), -(2638, 0, "'l'"), -(2638, 1, "''"), -(2638, 0, "'a'"), -(2639, 0, "'l'"), -(2640, 0, "'l'"), -(2641, 0, "'y'"), -(2642, 0, "' '"), -(2643, 0, "'t'"), -(2644, 0, "'l'"), -(2645, 0, "'l'"), -(2645, 1, "''"), -(2644, 1, "''"), -(2644, 0, "'e'"), -(2645, 0, "'l'"), -(2646, 0, "'l'"), -(2647, 0, "' '"), -(2648, 0, "'u'"), -(2649, 0, "'s'"), -(2673, 1, "''"), -(2672, 1, "''"), -(2672, 0, "'.'"), -(2674, 1, "''"), -(2674, 0, "'A'"), -(2719, 6, "''"), -(2728, 0, "'r'"), -(2729, 0, "'e'"), -(2730, 0, "' '"), -(2731, 0, "'a'"), -(2732, 0, "'r'"), -(2733, 0, "'e'"), -(2734, 0, "' '"), -(2735, 0, "'n'"), -(2736, 0, "'o'"), -(2737, 0, "' '"), -(2738, 0, "'m'"), -(2739, 0, "'o'"), -(2740, 0, "'r'"), -(2741, 0, "'e'"), -(2742, 11, "''"), -(2738, 4, "''"), -(2737, 1, "''"), -(2725, 0, "'t'"), -(2726, 0, "'h'"), -(2727, 0, "'a'"), -(2728, 0, "'t'"), -(2729, 0, "' '"), -(2897, 0, "','"), -(2898, 0, "' '"), -(2899, 0, "'m'"), -(2900, 0, "'a'"), -(2901, 0, "'y'"), -(2902, 0, "'b'"), -(2903, 0, "'e'"), -(2904, 0, "','"), -(2905, 7, "''"), -(2905, 0, "' '"), -(2906, 0, "'w'"), -(2907, 0, "'r'"), -(2908, 0, "'i'"), -(2909, 0, "'t'"), -(2910, 0, "'e'"), -(2911, 0, "'s'"), -(3305, 5, "'t'"), -(3306, 0, "'e'"), -(3307, 0, "'s'"), -(3308, 0, "'t'"), -(3309, 0, "'i'"), -(3310, 0, "'n'"), -(3311, 0, "'g'"), -(3487, 5, "''"), -(3487, 8, "''"), -(3837, 6, "'a'"), -(3838, 0, "' '"), -(3845, 0, "' '"), -(3846, 0, "'o'"), -(3847, 0, "'r'"), -(3848, 0, "' '"), -(3849, 0, "'s'"), -(3850, 0, "'o'"), -(3851, 0, "' '"), -(3851, 1, "''"), -(3850, 1, "''"), -(3849, 1, "''"), -(3848, 1, "''"), -(3847, 1, "''"), -(3846, 1, "''"), -(3846, 0, "'a'"), -(3847, 0, "'g'"), -(3848, 0, "'o'"), -(3851, 0, "' '"), -(3852, 0, "'d'"), -(3853, 0, "'e'"), -(3854, 0, "'c'"), -(3855, 0, "'i'"), -(3856, 0, "'d'"), -(3857, 0, "'e'"), -(3858, 0, "'d'"), -(3859, 0, "' '"), -(3860, 0, "'t'"), -(3861, 0, "'o'"), -(3869, 1, "''"), -(3868, 1, "''"), -(3867, 1, "''"), -(4071, 0, "'I'"), -(4072, 0, "' '"), -(4073, 0, "'t'"), -(4074, 0, "'h'"), -(4075, 0, "'i'"), -(4076, 0, "'n'"), -(4077, 0, "'k'"), -(4078, 0, "' '"), -(5241, 0, "'i'"), -(5242, 0, "' '"), -(5243, 0, "'n'"), -(5244, 0, "'T'"), -(5245, 0, "'h'"), -(5246, 0, "'e'"), -(5247, 0, "' '"), -(5247, 1, "''"), -(5246, 1, "''"), -(5245, 1, "''"), -(5244, 1, "''"), -(5243, 1, "''"), -(5242, 1, "''"), -(5241, 1, "''"), -(5241, 0, "'i'"), -(5242, 0, "'n'"), -(5243, 0, "' '"), -(5244, 0, "'T'"), -(5245, 0, "'h'"), -(5246, 0, "'e'"), -(5247, 0, "' '"), -(5248, 0, "'L'"), -(5249, 0, "'i'"), -(5250, 0, "'t'"), -(5251, 0, "'e'"), -(5252, 0, "'r'"), -(5253, 0, "'a'"), -(5254, 0, "'t'"), -(5255, 0, "'u'"), -(5256, 0, "'r'"), -(5257, 0, "'e'"), -(5258, 0, "' '"), -(5244, 15, "''"), -(5244, 0, "'t'"), -(5245, 0, "'h'"), -(5246, 0, "'e'"), -(5247, 0, "' '"), -(5248, 0, "'a'"), -(5249, 0, "'c'"), -(5250, 0, "'a'"), -(5251, 0, "'d'"), -(5252, 0, "'e'"), -(5253, 0, "'m'"), -(5254, 0, "'i'"), -(5255, 0, "'c'"), -(5256, 0, "' '"), -(5257, 0, "'l'"), -(5258, 0, "'i'"), -(5259, 0, "'t'"), -(5260, 0, "'e'"), -(5261, 0, "'r'"), -(5262, 0, "'a'"), -(5263, 0, "'t'"), -(5264, 0, "'u'"), -(5265, 0, "'r'"), -(5266, 0, "'e'"), -(5267, 0, "' '"), -(5267, 1, "''"), -(5256, 11, "''"), -(5247, 9, "''"), -(5244, 3, "''"), -(5244, 0, "'The Literature '"), -(5244, 15, "''"), -(5244, 0, "'the'"), -(5247, 0, "' academic'"), -(5256, 0, "' literature'"), -(5267, 0, "' '"), -(5267, 1, "''"), -(5256, 11, "''"), -(5247, 9, "''"), -(5244, 3, "''"), -(5243, 1, "''"), -(5242, 1, "''"), -(5241, 1, "''"), -(5282, 0, "'n'"), -(5283, 0, "' '"), -(5284, 0, "'a'"), -(5285, 0, "'c'"), -(5286, 0, "'a'"), -(5287, 0, "'d'"), -(5288, 0, "'e'"), -(5289, 0, "'m'"), -(5290, 0, "'i'"), -(5291, 0, "'c'"), -(7310, 8, "''"), -(7508, 1, "''"), -(7471, 0, "' '"), -(7472, 0, "'B'"), -(7473, 0, "'u'"), -(7474, 0, "'t'"), -(7476, 1, "''"), -(7476, 0, "'t'"), -(7496, 0, "' '"), -(7497, 0, "'r'"), -(7498, 0, "'e'"), -(7499, 0, "'a'"), -(7500, 0, "'l'"), -(7501, 0, "'l'"), -(7502, 0, "'y'"), -(29306, 1, "''"), -(29306, 0, "'&'"), -(29307, 0, "'l'"), -(29308, 0, "'t'"), -(29309, 0, "';'"), -(29248, 240, "'nAnd oh look - those last three rows are *weird*! 29 and 23 don't add up to 65. I'm probably thrashing the CPU cache by interleaving updates in the two b-trees. Looks like a *batch_update()* method would bring that 65ms down to *52ms*.'"), -(29483, 0, "'n'"), -(33600, 46, "'B'"), -(33601, 0, "'e'"), -(33602, 0, "'n'"), -(33603, 0, "'c'"), -(33604, 0, "'h'"), -(33605, 0, "'m'"), -(33606, 0, "'a'"), -(33607, 0, "'r'"), -(33608, 0, "'k'"), -(33609, 0, "'s'"), -(33600, 0, "'A'"), -(33601, 0, "'l'"), -(33602, 0, "'l'"), -(33603, 0, "' '"), -(33604, 1, "''"), -(33604, 0, "'b'"), -(33614, 0, "' '"), -(33615, 0, "'a'"), -(33616, 0, "'r'"), -(33617, 0, "'e'"), -(33618, 0, "' '"), -(33619, 0, "'l'"), -(33620, 0, "'i'"), -(33621, 0, "'e'"), -(33622, 0, "'s'"), -(33628, 0, "' '"), -(33629, 0, "'y'"), -(33630, 0, "'e'"), -(33631, 0, "'s'"), -(33634, 80, "''"), -(33634, 0, "'v'"), -(33635, 0, "'e'"), -(33636, 0, "'r'"), -(33637, 0, "'y'"), -(33638, 0, "' '"), -(33639, 0, "'c'"), -(33640, 0, "'l'"), -(33641, 0, "'e'"), -(33642, 0, "'v'"), -(33643, 0, "'e'"), -(33644, 0, "'r'"), -(33645, 0, "'.'"), -(33632, 14, "''"), -(33625, 7, "''"), -(33625, 0, "'Yes yes'"), -(33632, 0, "', very clever.'"), -(33791, 27, "' '"), -(33792, 0, "'I'"), -(33793, 0, "'''"), -(33794, 0, "'m'"), -(33795, 0, "' '"), -(33796, 0, "'n'"), -(33797, 0, "'o'"), -(33798, 0, "'t'"), -(33799, 0, "' '"), -(33800, 0, "'s'"), -(33801, 0, "'o'"), -(33802, 0, "'r'"), -(33803, 0, "'r'"), -(33804, 0, "'y'"), -(33805, 0, "' '"), -(33806, 0, "' '"), -(33806, 1, "''"), -(33806, 0, "'-'"), -(33807, 0, "' '"), -(33808, 0, "'w'"), -(33809, 0, "'r'"), -(33810, 0, "'i'"), -(33811, 0, "'t'"), -(33812, 0, "'i'"), -(33813, 0, "'n'"), -(33814, 0, "'g'"), -(33815, 0, "' '"), -(33805, 11, "'.'"), -(33799, 0, "' '"), -(33800, 0, "'e'"), -(33801, 0, "'v'"), -(33802, 0, "'e'"), -(33803, 0, "'n'"), -(33647, 43, "''"), -(33647, 0, "'n### How do I run these benchmarks myself?n'"), -(33799, 5, "''"), -(33805, 1, "' - writing '"), -(33815, 1, "''"), -(33807, 8, "''"), -(33806, 1, "''"), -(33806, 0, "' '"), -(33806, 1, "''"), -(33805, 1, "''"), -(33799, 6, "''"), -(33795, 4, "''"), -(33791, 4, "' But its almost all online.'"), -(33638, 8, "''"), -(33634, 4, "''"), -(33634, 0, "'I know. I've made a few sleights of hand which I want to 'fess up to and defend.'"), -(33628, 4, "''"), -(33618, 5, "''"), -(33614, 4, "''"), -(33604, 1, "''"), -(33604, 0, "'B'"), -(33603, 1, "''"), -(33600, 3, "''"), -(33600, 10, "'Your benchmarks are weird / wrong / misleading'"), -(33600, 46, "'Benchmarks'"), -(33600, 0, "'All'"), -(33603, 0, "' '"), -(33604, 1, "''"), -(33604, 0, "'b'"), -(33614, 0, "' are'"), -(33618, 0, "' lies'"), -(33628, 0, "' yes'"), -(33634, 80, "''"), -(33634, 0, "'very'"), -(33638, 0, "' clever.'"), -(33791, 27, "' I'm'"), -(33795, 0, "' not'"), -(33799, 0, "' sorry'"), -(33805, 0, "' '"), -(33806, 0, "' '"), -(33806, 1, "''"), -(33806, 0, "'-'"), -(33807, 0, "' writing'"), -(33815, 0, "' '"), -(33805, 11, "'.'"), -(33799, 0, "' even'"), -(33647, 43, "''"), -(33600, 23, "'Your benchmarks are weird / wrong / misleading'"), -(33600, 46, "'W'"), -(33601, 0, "'e'"), -(33602, 0, "' '"), -(33603, 0, "'n'"), -(33604, 0, "'e'"), -(33605, 0, "'e'"), -(33606, 0, "'d'"), -(33607, 0, "' '"), -(33608, 0, "'t'"), -(33609, 0, "'o'"), -(33610, 0, "' '"), -(33611, 0, "'t'"), -(33612, 0, "'a'"), -(33613, 0, "'l'"), -(33614, 0, "'k'"), -(33615, 0, "' '"), -(33616, 0, "'a'"), -(33617, 0, "'b'"), -(33618, 0, "'o'"), -(33619, 0, "'u'"), -(33620, 0, "'t'"), -(33621, 0, "' '"), -(33622, 0, "'b'"), -(33623, 0, "'e'"), -(33624, 0, "'n'"), -(33600, 25, "'T'"), -(33601, 0, "'h'"), -(33602, 0, "'e'"), -(33603, 0, "'s'"), -(33604, 0, "'e'"), -(33605, 0, "' '"), -(33606, 0, "'b'"), -(33607, 0, "'e'"), -(33608, 0, "'n'"), -(33609, 0, "'c'"), -(33610, 0, "'h'"), -(33611, 0, "'m'"), -(33612, 0, "'a'"), -(33613, 0, "'r'"), -(33614, 0, "'k'"), -(33615, 0, "'s'"), -(33616, 0, "' '"), -(33600, 17, "'B'"), -(33600, 1, "'These benchmarks '"), -(33616, 1, "''"), -(33605, 11, "''"), -(33600, 5, "'We need to talk about ben'"), -(33621, 4, "''"), -(33600, 21, "''"), -(33600, 0, "'T'"), -(33601, 0, "'g'"), -(33602, 0, "'e'"), -(33602, 1, "''"), -(33601, 1, "''"), -(33601, 0, "'h'"), -(33602, 0, "'e'"), -(33603, 0, "'s'"), -(33604, 0, "'e'"), -(33605, 0, "' '"), -(33606, 0, "'b'"), -(33607, 0, "'e'"), -(33608, 0, "'n'"), -(33609, 0, "'c'"), -(33610, 0, "'m'"), -(33611, 0, "'k'"), -(33612, 0, "'a'"), -(33613, 0, "'r'"), -(33613, 1, "''"), -(33612, 1, "''"), -(33611, 1, "''"), -(33610, 1, "''"), -(33610, 0, "'h'"), -(33600, 11, "'A'"), -(33601, 0, "'r'"), -(33602, 0, "'e'"), -(33603, 0, "' '"), -(33604, 0, "'t'"), -(33605, 0, "'h'"), -(33606, 0, "'e'"), -(33607, 0, "' '"), -(33608, 0, "'b'"), -(33609, 0, "'e'"), -(33609, 1, "''"), -(33609, 0, "'e'"), -(33610, 0, "'n'"), -(33611, 0, "'c'"), -(33612, 0, "'h'"), -(33613, 0, "'m'"), -(33614, 0, "'a'"), -(33615, 0, "'r'"), -(33616, 0, "'k'"), -(33617, 0, "'s'"), -(33603, 15, "' '"), -(33604, 0, "'t'"), -(33605, 0, "'h'"), -(33606, 0, "'e'"), -(33607, 0, "'s'"), -(33608, 0, "'e'"), -(33609, 0, "' '"), -(33610, 0, "'b'"), -(33611, 0, "'e'"), -(33612, 0, "'n'"), -(33613, 0, "'c'"), -(33614, 0, "'h'"), -(33615, 0, "'m'"), -(33616, 0, "'a'"), -(33617, 0, "'r'"), -(33618, 0, "'k'"), -(33619, 0, "'i'"), -(33620, 0, "'n'"), -(33621, 0, "'g'"), -(33621, 1, "''"), -(33620, 1, "''"), -(33619, 1, "''"), -(33619, 0, "'s'"), -(33620, 0, "' '"), -(33621, 0, "'f'"), -(33622, 0, "'o'"), -(33623, 0, "'r'"), -(33624, 0, "' '"), -(33625, 0, "'r'"), -(33626, 0, "'e'"), -(33627, 0, "'a'"), -(33628, 0, "'l'"), -(33629, 0, "'?'"), -(33584, 0, "'n'"), -(33636, 18, "''"), -(33636, 0, "';'"), -(33637, 0, "' '"), -(33638, 0, "'t'"), -(33639, 0, "'h'"), -(33640, 0, "'o'"), -(33641, 0, "'u'"), -(33642, 0, "'g'"), -(33643, 0, "'h'"), -(33644, 0, "' '"), -(33645, 0, "'i'"), -(33646, 0, "'t'"), -(33647, 0, "'s'"), -(33645, 3, "'t'"), -(33646, 0, "'h'"), -(33647, 0, "'e'"), -(33648, 0, "'r'"), -(33649, 0, "'e'"), -(33650, 0, "'''"), -(33651, 0, "'s'"), -(33652, 0, "' '"), -(33653, 0, "'a'"), -(33654, 0, "' '"), -(33655, 0, "'f'"), -(33656, 0, "'e'"), -(33657, 0, "'w'"), -(33658, 0, "' '"), -(33659, 0, "'s'"), -(33660, 0, "'l'"), -(33661, 0, "'i'"), -(33662, 0, "'p'"), -(33663, 0, "'p'"), -(33664, 0, "'e'"), -(33665, 0, "'r'"), -(33666, 0, "'y'"), -(33667, 0, "' '"), -(33668, 0, "'s'"), -(33669, 0, "'l'"), -(33670, 0, "'e'"), -(33671, 0, "'i'"), -(33672, 0, "'g'"), -(33673, 0, "'h'"), -(33674, 0, "'t'"), -(33675, 0, "'s'"), -(33676, 0, "' '"), -(33677, 0, "'o'"), -(33678, 0, "'f'"), -(33679, 0, "' '"), -(33680, 0, "'h'"), -(33681, 0, "'a'"), -(33682, 0, "'n'"), -(33683, 0, "'d'"), -(33684, 0, "'s'"), -(33685, 0, "' '"), -(33685, 1, "''"), -(33684, 1, "''"), -(33684, 0, "' '"), -(33685, 0, "'d'"), -(33686, 0, "'o'"), -(33687, 0, "'i'"), -(33688, 0, "'n'"), -(33689, 0, "'g'"), -(33689, 1, "''"), -(33688, 1, "''"), -(33687, 1, "''"), -(33686, 1, "''"), -(33685, 1, "''"), -(33685, 0, "'g'"), -(33686, 0, "'o'"), -(33687, 0, "'i'"), -(33688, 0, "'n'"), -(33689, 0, "'g'"), -(33690, 0, "' '"), -(33691, 0, "'o'"), -(33692, 0, "'n'"), -(33693, 0, "' '"), -(33694, 0, "'h'"), -(33695, 0, "'e'"), -(33696, 0, "'r'"), -(33697, 0, "'e'"), -(33698, 0, "'.'"), -(33636, 8, "'B'"), -(33636, 1, "''"), -(33636, 0, "' '"), -(33636, 1, "''"), -(33636, 0, "'.'"), -(33637, 0, "' '"), -(33638, 0, "'B'"), -(33639, 0, "'u'"), -(33640, 0, "'t'"), -(33641, 8, "' '"), -(33642, 0, "'t'"), -(33643, 0, "'h'"), -(33644, 0, "'e'"), -(33645, 0, "'r'"), -(33646, 0, "'e'"), -(33647, 0, "' '"), -(33648, 0, "'a'"), -(33649, 0, "'r'"), -(33650, 0, "'e'"), -(33651, 0, "' '"), -(33652, 0, "'a'"), -(33652, 1, "''"), -(33651, 1, "''"), -(33800, 20, "''"), -(33800, 0, "' I'm not even sorry.'"), -(33799, 21, "' '"), -(33800, 0, "'m'"), -(33801, 0, "'e'"), -(33802, 0, "'s'"), -(33803, 0, "'s'"), -(33804, 0, "'.'"), -(34107, 9, "''"), -(34107, 0, "'j'"), -(34108, 0, "'o'"), -(34109, 0, "'s'"), -(34110, 0, "'e'"), -(34111, 0, "'h'"), -(34112, 0, "'p'"), -(34113, 0, "'g'"), -(34114, 0, "'/'"), -(34115, 0, "'t'"), -(34116, 0, "'e'"), -(34107, 10, "'j'"), -(34108, 0, "'o'"), -(34109, 0, "'s'"), -(34110, 0, "'e'"), -(34111, 0, "'p'"), -(34112, 0, "'h'"), -(34113, 0, "'g'"), -(34114, 0, "'/'"), -(34115, 0, "'t'"), -(34116, 0, "'e'"), -(34117, 0, "'x'"), -(34118, 0, "'t'"), -(34119, 0, "'-'"), -(34120, 0, "'c'"), -(34121, 0, "'r'"), -(34122, 0, "'d'"), -(34123, 0, "'t'"), -(34124, 0, "'-'"), -(34125, 0, "'r'"), -(34126, 0, "'u'"), -(34127, 0, "'s'"), -(34128, 0, "'t'"), -(34238, 6, "'B'"), -(34239, 0, "'e'"), -(34240, 0, "'n'"), -(34241, 0, "'c'"), -(34242, 0, "'h'"), -(34243, 0, "'m'"), -(34244, 0, "'a'"), -(34245, 0, "'k'"), -(34246, 0, "'r'"), -(34246, 1, "''"), -(34245, 1, "''"), -(34245, 0, "'r'"), -(34246, 0, "'k'"), -(34247, 0, "' '"), -(34248, 0, "'b'"), -(34249, 0, "'y'"), -(34250, 0, "' '"), -(34251, 0, "'r'"), -(34252, 0, "'u'"), -(34253, 0, "'n'"), -(34254, 0, "'n'"), -(34255, 0, "'i'"), -(34256, 0, "'n'"), -(34257, 0, "'g'"), -(34258, 5, "''"), -(34307, 0, "','"), -(34352, 17, "'T'"), -(34367, 0, "' '"), -(34368, 0, "'s'"), -(34369, 0, "'t'"), -(34370, 0, "'r'"), -(34371, 0, "'u'"), -(34372, 0, "'c'"), -(34373, 0, "'t'"), -(34374, 0, "'u'"), -(34375, 0, "'r'"), -(34376, 0, "'e'"), -(34385, 0, "' '"), -(34386, 0, "'c'"), -(34387, 0, "'a'"), -(34388, 0, "'n'"), -(34389, 0, "' '"), -(34390, 0, "'b'"), -(34391, 0, "'e'"), -(34392, 0, "' '"), -(34393, 0, "'e'"), -(34394, 0, "'n'"), -(34395, 0, "'a'"), -(34396, 0, "'b'"), -(34397, 0, "'l'"), -(34398, 0, "'e'"), -(34399, 0, "'d'"), -(34400, 0, "' '"), -(34401, 0, "'o'"), -(34402, 0, "'r'"), -(34403, 0, "' '"), -(34404, 0, "'d'"), -(34405, 0, "'i'"), -(34406, 0, "'s'"), -(34407, 0, "'a'"), -(34408, 0, "'b'"), -(34409, 0, "'l'"), -(34410, 0, "'e'"), -(34411, 0, "'d'"), -(34416, 11, "''"), -(34480, 0, "' '"), -(34481, 0, "'a'"), -(34482, 0, "'l'"), -(34483, 0, "'s'"), -(34484, 0, "'o'"), -(34571, 8, "''"), -(34571, 0, "'.'"), -(34573, 45, "''"), -(34652, 0, "'.'"), -(34653, 0, "' '"), -(34654, 0, "'I'"), -(34655, 0, "'''"), -(34656, 0, "'v'"), -(34657, 0, "'e'"), -(34658, 0, "' '"), -(34659, 0, "'b'"), -(34660, 0, "'e'"), -(34661, 0, "'e'"), -(34662, 0, "'n'"), -(34663, 0, "' '"), -(34664, 0, "'r'"), -(34665, 0, "'u'"), -(34666, 0, "'n'"), -(34667, 0, "'n'"), -(34668, 0, "'i'"), -(34669, 0, "'n'"), -(34670, 0, "'g'"), -(34671, 0, "' '"), -(34672, 0, "'t'"), -(34673, 0, "'h'"), -(34674, 0, "'e'"), -(34675, 0, "' '"), -(34676, 0, "'b'"), -(34677, 0, "'e'"), -(34678, 0, "'n'"), -(34679, 0, "'c'"), -(34680, 0, "'h'"), -(34681, 0, "'m'"), -(34682, 0, "'a'"), -(34683, 0, "'r'"), -(34684, 0, "'k'"), -(34685, 0, "'s'"), -(34686, 0, "' '"), -(34687, 0, "'w'"), -(34688, 0, "'i'"), -(34689, 0, "'t'"), -(34690, 0, "'h'"), -(34691, 0, "' '"), -(34692, 0, "'t'"), -(34693, 0, "'h'"), -(34694, 0, "'a'"), -(34695, 0, "'t'"), -(34696, 0, "' '"), -(34697, 0, "'f'"), -(34698, 0, "'l'"), -(34699, 0, "'a'"), -(34700, 0, "'g'"), -(34701, 0, "','"), -(34702, 0, "' '"), -(34703, 0, "'c'"), -(34703, 1, "''"), -(34703, 0, "'t'"), -(34704, 0, "'h'"), -(34705, 0, "'e'"), -(34706, 0, "'n'"), -(34707, 0, "' '"), -(34708, 0, "'C'"), -(34709, 0, "'T'"), -(34709, 1, "''"), -(34709, 0, "'c'"), -(34709, 1, "''"), -(34708, 1, "''"), -(34708, 0, "'c'"), -(34709, 0, "'t'"), -(34710, 0, "'l'"), -(34711, 0, "'_'"), -(34711, 1, "''"), -(34710, 1, "''"), -(34710, 0, "'r'"), -(34711, 0, "'l'"), -(34712, 0, "'+'"), -(34713, 0, "'C'"), -(34714, 0, "' '"), -(34715, 0, "'a'"), -(34716, 0, "'s'"), -(34716, 1, "''"), -(34715, 1, "''"), -(34714, 1, "''"), -(34713, 1, "''"), -(34712, 1, "''"), -(34711, 1, "''"), -(34708, 3, "'k'"), -(34709, 0, "'i'"), -(34710, 0, "'l'"), -(34711, 0, "'l'"), -(34712, 0, "'i'"), -(34713, 0, "'n'"), -(34714, 0, "'g'"), -(34715, 0, "' '"), -(34716, 0, "'t'"), -(34717, 0, "'h'"), -(34718, 0, "'e'"), -(34719, 0, "' '"), -(34720, 0, "'b'"), -(34721, 0, "'e'"), -(34722, 0, "'n'"), -(34723, 0, "'c'"), -(34724, 0, "'h'"), -(34725, 0, "'m'"), -(34726, 0, "'a'"), -(34727, 0, "'r'"), -(34728, 0, "'k'"), -(34729, 0, "'s'"), -(34730, 0, "' '"), -(34731, 0, "'a'"), -(34732, 0, "'s'"), -(34733, 0, "' '"), -(34734, 0, "'s'"), -(34735, 0, "'o'"), -(34736, 0, "'o'"), -(34737, 0, "'n'"), -(34738, 0, "' '"), -(34739, 0, "'a'"), -(34740, 0, "'s'"), -(34741, 0, "' '"), -(34729, 13, "' '"), -(34730, 0, "'r'"), -(34731, 0, "'u'"), -(34732, 0, "'n'"), -(34733, 0, "' '"), -(34734, 0, "'a'"), -(34735, 0, "'s'"), -(34736, 0, "' '"), -(34737, 0, "'s'"), -(34738, 0, "'o'"), -(34739, 0, "'o'"), -(34740, 0, "'n'"), -(34741, 0, "' '"), -(34742, 0, "'a'"), -(34743, 0, "'s'"), -(34744, 0, "' '"), -(34745, 0, "'n'"), -(34746, 0, "'u'"), -(34747, 0, "'m'"), -(34748, 0, "'b'"), -(34749, 0, "'e'"), -(34750, 0, "'r'"), -(34751, 0, "'s'"), -(34752, 0, "' '"), -(34753, 0, "'s'"), -(34754, 0, "'t'"), -(34755, 0, "'a'"), -(34756, 0, "'r'"), -(34757, 0, "'t'"), -(34758, 0, "' '"), -(34759, 0, "'c'"), -(34760, 0, "'o'"), -(34761, 0, "'m'"), -(34762, 0, "'i'"), -(34763, 0, "'n'"), -(34764, 0, "'g'"), -(34765, 0, "' '"), -(34766, 0, "'o'"), -(34767, 0, "'u'"), -(34768, 0, "'t'"), -(34769, 0, "'.'"), -(34769, 1, "''"), -(34822, 15, "'j'"), -(34823, 0, "'o'"), -(34824, 0, "'s'"), -(34825, 0, "'e'"), -(34826, 0, "'p'"), -(34827, 0, "'h'"), -(34828, 0, "'g'"), -(34829, 0, "'/'"), -(34830, 0, "'c'"), -(34831, 0, "'r'"), -(34832, 0, "'d'"), -(34833, 0, "'t'"), -(34834, 0, "'-'"), -(34835, 0, "'b'"), -(34836, 0, "'e'"), -(34837, 0, "'n'"), -(34838, 0, "'c'"), -(34839, 0, "'h'"), -(34840, 0, "'m'"), -(34841, 0, "'a'"), -(34842, 0, "'r'"), -(34843, 0, "'k'"), -(34844, 0, "'s'"), -(34984, 15, "'m'"), -(34985, 0, "'y'"), -(34986, 0, "' '"), -(34987, 0, "'r'"), -(34988, 0, "'e'"), -(34989, 0, "'f'"), -(34990, 0, "'e'"), -(34991, 0, "'r'"), -(34992, 0, "'e'"), -(34993, 0, "'n'"), -(34994, 0, "'c'"), -(34995, 0, "'e'"), -(34984, 12, "'j'"), -(34985, 0, "'o'"), -(34986, 0, "'s'"), -(34987, 0, "'e'"), -(34988, 0, "'p'"), -(34989, 0, "'h'"), -(34990, 0, "'g'"), -(34991, 0, "'/'"), -(34992, 0, "'r'"), -(34993, 0, "'e'"), -(34994, 0, "'f'"), -(34995, 0, "'e'"), -(34996, 0, "'r'"), -(34997, 0, "'e'"), -(34998, 0, "'n'"), -(34999, 0, "'c'"), -(35000, 0, "'e'"), -(35001, 0, "'-'"), -(35002, 0, "'c'"), -(35003, 0, "'r'"), -(35004, 0, "'d'"), -(35005, 0, "'t'"), -(35006, 0, "'s'"), -(40800, 0, "'''"), -(39603, 0, "'''"), -(35983, 0, "'''"), -(26041, 0, "'''"), -(20874, 0, "'''"), -(16160, 0, "'''"), -(14164, 0, "'''"), -(9304, 0, "'''"), -(3265, 0, "'''"), -(3985, 1, "''"), -(3985, 0, "'o'"), -(188, 0, "'n'"), -(189, 0, "'n'"), -(189, 0, "'<'"), -(190, 0, "'s'"), -(191, 0, "'e'"), -(192, 0, "'p'"), -(193, 0, "'h'"), -(194, 0, "'-'"), -(195, 0, "'f'"), -(196, 0, "'o'"), -(197, 0, "'o'"), -(198, 0, "' '"), -(199, 0, "'/'"), -(200, 0, "'>'"), -(199, 1, "''"), -(198, 1, "''"), -(199, 0, "'<'"), -(200, 0, "'/'"), -(201, 0, "'s'"), -(202, 0, "'e'"), -(203, 0, "'p'"), -(204, 0, "'h'"), -(205, 0, "'-'"), -(206, 0, "'f'"), -(207, 0, "'o'"), -(208, 0, "'o'"), -(209, 0, "'>'"), -(199, 11, "''"), -(198, 0, "' /'"), -(198, 2, "''"), -(199, 0, "''"), -(199, 0, "'o'"), -(200, 0, "'h'"), -(201, 0, "' '"), -(202, 0, "'h'"), -(203, 0, "'a'"), -(204, 0, "'i'"), -(216, 0, "' -->'"), -(189, 0, "''"), -(189, 0, "''"), -(188, 0, "''"), -(34546, 0, "''"), -(0, 0, "'") + , (189, 0, "") + , (189, 0, "") + , (188, 0, "") + , (34546, 0, "") + , (0, 0, "'' 'y'd'i't' 'e'm''''''''''''''5000x faster CRDTs: An adventure in optimization''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'g' 's''a' 'e'''''''''''''''''''''''n'o'i't'a'z'i'm'i't'p'o' 'n'i' 'd'a'm' 'I' 'w'o'H'''''''' 'g'n'''o'g' ''''i'k'a'M'n'''''''50'''''''''''''e'r'u't'n'e'v'd'a' '''' '''''''''''''''''''r'e't's'a'f' 'x'''' '0'0'0'5' 'o'g' 't'a'h't' '00x faste' 'r''''''''''''''''''''''''''''''''n'o'i't'a'z'i'm'i't'p'o' 'n'i' 'y'd'u't's' 'e's'a'c' 'A' ':''''''':''''''''''''''''='c'r's' 'g'm'i'<'''''>'''> aut'''''x'0'0'0'5'omerge1.drawio.svg'n'n'.'N'H''''N' 'r'o'f' 'y'd'a'e'r' 't'''n's'i' 's'i'h'T' '!'e's'''''''i'l'l'i''''' -->'''s'm'''''''''''''M''''m''''''''''''t'n'e'd'u't's' 'd'a'r'g''''-'''s'M'''''''s'm''''''s'm'-''''''''''''0'0'0'1'='s'M''''M'e'm'i't' 'n'''''t'b'-'e'm'i'''''''''n't'b'-'e'm'i't't'- '''''''''''''''''''''''n'f'd's'''d'f's'd'''''''i'a'h' 'h'o' -->'''''' /'''''''''''''''>'o'o'f'-'h'p'e's'/'<'''''''>'/' 'o'o'f'-'h'p'e's'<''n'n'a'e'l'p' ''''p'y'l'e'd'i'w' 'o'o't' '''''''''''''''''''''''''''''''' 'f'f'u't's'''e'w' 's'i'h't' 't'u'o'b'a' 'g'n'i'k'l'a't' 'n'e'v'E''''''For the uninitiated, CRD's'''TS [(Conflict-Free Replicated Data types)](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) are fancy programming tools which let multiple users edit the same data at the same time. They let you work locally with no lag. (You don't even have to be online). And when you do sync up with other users & devices, everything just magically syncs up and becomes eventually consistent. The bes'''''''''''''c'i'm'e'd'a'c'a' 'e'm'o's'''''''''''s''''e'd''''''h'c'a'e't'o'c''''y'd'o'b'e'm'o's't part of CRDTs is that they can do all that without even needing a centralized computer in the cloud to monitor and control everything''''''''t'n'a'w' 'I''Think, Google Do'''''''''y'm' 't'n'a'w' 'I''''''y''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'c'i'v''''''[''''''''''o't'''https://ourincrediblejourney.tumblr.com')'/'(']'' '''''g'''n'i'd'e'e'n'''''''''''I' 'o'g'a' 's'r'a'e'Y'' 'e'm' ''e'd' 'y'm''''''r'o'F' 'l'l'''''''''''''''''''''''''''''''''''''''''''''y'k'n'u'l'c' 'd'n'a' '''' ''')'a't'a'd' ''''''''''''''''''' '.'w'o'n' 'l'i't'n'u' ','l'l'e'W''n'o'i't'a'c'i'l'p'p'a' 'l'a''''l'e'r' 'r'e'h't'o' 'd'n'a'(' ''a' 'n'''''''n'e'e'b' 'e'v''''''e'''''''''''s'r'a'e'y'''''''''''''e'd' 'a' 'r'o'f' 'e'w't'e'b' 'a't'a'd' 'e'r'a'h''a's'''''' 'k'r'o'w' 'y'l's's'e'l'm'a'e's' 'o't' 's'p'p'a''m' 'cs without google. Or master-master database replication without lag. Or seamles''''''''''''''''''''''''''s''''''''t'''''''''''''''e'm'o's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'''''f''' 't'u'B'''''''''''''''''''''''''e'r'''y'e'h't' 'g'n'i't'i'd'e' 't'x'e't' 'r'o'F''e'h't'o''''''''''''''''''''''''''''' 'y'''''For the uninitiated, CRDTs [(Conflict-Free Replicated Data typ' '''es)](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) are fancy programming tools which let multiple users edit the same data at the same time. They let you work locally with no lag. (You don't even have to be online). And when you do sync up with other users & devices, everything just magically syncs up and becomes eventually consistent. The best part of CRDTs'I want Google Docs without google. I want my apps to seamlessly share data between all my devices, without me needing to rely on some [flakey startup](https://ourincrediblejourney.tumblr.com/)'s servers to still be around in another decade. I think they're the [future of collaborative editing](https://josephg.com/blog/crdts-are-the-future/). And maybe the future of all software - but I'm not ready to talk about that yet.''I want Google Docs without google. I want my apps to seamlessly share data between all my devices, without me needing to rely on some [flakey startup](https://ourincrediblejourney.tumblr.com/)'s servers to still be around in another decade.' is that they can do all that without even needing a centralized computer in the cloud to monitor and control everything.''n''nI want Google Docs without google. I want my apps to seamle'nFor the uninitiated, CRDTs [(Conflict-Free Replicated Data types)](https://en.wikipedia.org/wiki/Conflict-free_repli''c''a''ted_data_type) are fancy programming tools which let multiple users edit the same data at the same time. They let you'''''''' ''w''ork locally with no lag. (You don't even have to be online). And when you do sync up with other users & devices, everything just magically syncs up and becomes eventuall''''''n''n'''''''m''' 't'u'B'n'n'''y consistent. The best part of CRDTs is '''A''' '.'that they can do all that without even needing a centralized computer in the cloud to monitor and control everything.'ssl'n'y share data between all my devices, without me needing to rely on some [flakey startup](https://ourincrediblejourney.tumblr.com/)'s ser'n'vers to still be around in another decade.''n''nFor text editing they've been famously really slow and clun'nI want Google Docs without google. I want my apps to seamlessly share data between all my dev'''n'n'n'ices, without me needing to rely on some [flakey startup](https://ourincrediblejourney.tumblr.com/)'s servers to still be around in another decade.'ky 'n'for years, so barely anyone uses them. Well, until now.'''''n'''n'n'n''''''''''''''''''''''''''''''m'''''''''''''''''''''nFor text editing they've been famously really slow and clunky for years, so barely anyone uses them. Well, until now.'''''n'''''n'''''n''''n'n'n''''But before we can even talk about that'',''''''''''''''''''''''''''''''''''''''''' ','t'a'h't' 't'u'o'b'a' 'k'l'a't' 'n'e'v'e' 'n'a'c' 'e'w' 'e'r'o'f'e'b' 't'u'B'n'n'!'e'b' 'o't' 'e'v'a'h' 't'''n'o'd' 'y'e'h't' 't'u'B''''''' ','l'l'e'W' '''''''''''''l'e'W' ''e'h't' 's'''' 'e's'u' 'e'n'o'y'n'a' 'y'l'e'r''''''''''e'r''''l's'a'b''''''''''''''y'l'l'a'e'r' 'y'd'o'b'o'n' 'o's' ','l'l'a'e'r''''''.'w'o'l's' 'y'l's'u'o'm'a'f' 'e'r'''y'e'h't' 't'u'B'n''n''n'''''''''.'e'd'a'c'e'd' 'a' 'n'i' 'd'n'u'o'r'a' 'e'b' 'l'l'i't's' 'o't' 's'r'e'v'r'e'''''''a't's' 's'''''' 'p'u't'r'a't's' 'y'e'k'a'l'f' 'a' 'n'o' 'g'n'i'y'l'e'r'''''''''''''''''''''e'm'o's' 't'a'h't' '''''''''''''''''''''''''''''''''''''''.'s'r'a'e'y' 'e'l'p'u'o'c' 'a' 'n'i' 'k'r'a'd''''''''e'n'i'l'f'f'o' 'o'g' 'o't' 'g'n'i'o'g' 'e'r'a''g'n'i'y'r'r'o'w''''u'o'''''''''''''''''' 'y'g'd''''''''''' 's'r'e'v'r'e's' 's''''o'd''''''''p'u't'r'a't's' 'o'n' 'h't'i'w' ','a't'a'd' 'n'o'i't'a'c'i'l'p'p'a' 'e'c'i'v'e'd'-'s's'o'r'c' 's'n'n'''. Think, Google Docs without google. Or master-master database replication withou'''''''''''''''''' 's's'e'l'm'a'e's' 'r'O' '.'g'a'l' 't'''''''''''''''''''''''''''' '(''S'T'D'R'C''' ','d'e't'a'i't'i'n'')'''''''n't'i'n'u' 'e'h't' 'r'o'F''CRDTs are'[' Conflict-Free Repli''''e'r'a' 'cated Data ty'''''''''''''''t'e'l' 'h'c'i'''h'w'''''''''''w'o'l'l'a' 'o'''o't' ''''''''''''''''''''''''''''''''''''''.''Y''''''''''''''''''''''''''''''''''''''''''''''''''sync''''''''t'c''with'''o't'e'n'n'o'c'''''''''''''''''''''''''''&''''''''''''''''''''''''''''''''''''''''' 'd'l''''''''''''''''''''''''''''''''''''''''''''.'t'n'e't's'i's'n'o'c' 'y'l'l'a'u't'''''n'a'c' 'n'e'v'e' 's'e'm'o'c''''''n'e'v'e'''a' ' 'e''''''''''''G''''''D''''''''''''g''''G''''''''''''''''''''''''''' 'e's'a'b'a't'a'd''''''''''''''''''''' 't'u'o'h't'i'w' 'n'o'i't'a'c'i'l'p'e'r' 'r'e't's'a'm'-'r'e't's'a'm' 'r'O' '''''''''''''''''''''.'e'l'''''''e'.'g'o'o'g' 't'u'o'h't'i'w' 's'c'o'd' 'e'l'g'o'o'g' ','k'n'i'h'T' '''d'e'z'i'b' 'd'n'a' 'p'''u' 's'''c'n'y's' ''u'o'h''''''''''''' ','m'e'h'A'''''''G'''''''''s'c'o'D' '''''''' ')'e'l'g'o'o'g' 'e'k'i'L'(' 's'''''''''''''''y'l'l'a'c'i'g''''i'a'm' 't's'u'j'''' 's'i' 'g'n'i'h't'y'r'e'v'e' ','s'e'c'i'v'e'd' '/' 's'r'e's'u' 'r'e'h't'o' 'h't'i'w' 'p'u' 'c'n'y's' 'o'd' 'u'o'y' 'n'e'h'w' 'd'n'A' '')'e'n'i'l'n'o' 'e'b' 'o't' 'e'v'a'h' 'n'e'v'e' 't'''n'o'd' 'u'o'y'(' 'g'a'l' 'o'n' '''''''''''''''''''''''t'e'n'r'e't'n'i' 'e'h't' 't'u'o'h't'i'w' 'y'l'l'a'c'o'l' 'k'r'o'w' 'u'o'y' 't'e'l' 'y'e'h'T'''''t''''''''''' 'k'r'o'''w''''''''t'i' ''''''''''''o't' '''g'''''n'i'd'e'e'n' 'o'd' '''''''''''r'o' 'g'n'i'k'c'o'l' ''y'e'h't' '''''''''''''''''''''''''''t'a'h't' 'e'k'i'l' 'g'n'i'h''''''''''''y'e'h't' 't'a'h't' ''t'y'n'a' 'r'o'''''''n'a' '''''''''''''''t'i' 'o'd''''''''''''''''' 't'u'o'''''''''' ',''b'a' '''''''''''''m'o'r'f''''' '&' 'g'a'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''i'''' 'n'''o' 'r'e't'u'p'''''''l'o'r't'n'o'c''m'o'c' 'l'a'r't'n'e'c' 'y'n'a''S''''''''E''''''C'''''''''g'n'i'd'e'e'n' 't'u'o'h't'i'w' 't'a'h't'''''''''''''''d'n'a' 'r'o't'i'n'o'm' ' 'l'l'a' 'o'd' 'n'a'c' 'u'o'y' 's'i' 's'''' 'T'D'R'C' 'f'o' 't'r'a'p' 't's'e'b' 'e'h'T''''''''''''''''''''''''s'n'o'i't'c'e'n'n'o'c' 't'e'n'r'e't'n'i' 'y't't'o'p's' 'r'o' '''''''''''''''''''''''''''''''''''''''''''' 'o't' 'e'n'i'l'n'o' 'e'b' 'o't' 'd'e'e'n' 'n'e'v'e' 't'''n'o'd' 'e'l'p'o'e'P' '.'''''''''''''''''''e''''b' 'r'o' ','g'n'i'y'r'r'o'w'' 'n'a'c' 'e'w' 'd'n'A' '.'''''(https://en.wikipedia.org/wiki/Conflict-free_replicated_data_typ''''''h'T'e''')')'(']'''''''''''''''''''''''''''''''s'l'o'o't'''''''s'k'c'i'r't' 'g'n'i'''m'm'''a'r'g'o'r'p' 'y'c'n'a'f' 'e'r'''y''''''''''''''''''''''''s'r'e'v'r'e's''''''''''''''''y'l'l'u'f''''''''''''''''''''''''''''''''''''''''''''''''''o''''''''''e't'a'n'i'd'r'o'o'c''t' 'g'n'i'd'e'e'n'''''''''''''''' 'd'n'a' 'g'n'i's's'e'n't'i'w''''''''''''g'n'i'l'l'o'r't'n'o'c' ''')'''''')'d'u'o'l'c' 'e'h't'''(' 'r'e't''''e'u'p'm'o'c' 's'''e's'l'e' 'y'd'o'b'e'm'o's'''e'p'''''''G'N'A'A'F' 'o'h''''''''''''''''''''' 'e'm'''''''''''e'g'r'a'h'c''''''''''''''''''''''g'n'i'h't'y'r'e'v'e' 'f''''''''''''' 'r'e'v'o' 'l'o'r't'n'o'c' 'n'i' '''o's'''''''''.'s'r'e'v'r'e's' 't'u'o'h't'i'w' ','e'b'y'a'm' ','''' 'd'n'A' ' 't'u'o'h't'i'w' ','e'h't''p'''''''''''r'o' 'g'n'i'k'c'o'''l''''''s' 'es. Basically, special constructions which le''''''''''''''''''''''''''d'l'i'u'b' ''''o'd'''''''''''''''''''''s'r'e't'u'p'm'o'c' 's''''''''''''''''''e'l'g'''''''''''''''''''''''''''t'i'g' 'o't' 'g'n'i'm'm'a'r'g'o'r'p' 'r'i'a'p' 'd'd'a''''o'o'g' 't'u'o'h't'i'w' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e's'a'b'a'''''''''''r'e't's'a'f' 'y''''''' 's'a'w' ''t'a'd''''''''''''''''''''''''''''S'O'X'A'P' 't'u'o'h't'i'w' 'n'o'i't'a'c'i'l'p'e'r' 'r'e't's'a'm'-'r'e't's'a'm' 'o'd'''''''e'l'g'o'o'''''''''''''''''''''''''''''''g'''''''.'t'i'G' 'o't' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'd'd'a'g' 'f'o' 't'''' 'u'o' 's'r'e't'u'p'm'o'c' 's''''''''''''' 'r'o' ','s'c'o'd' 'e'l'g'o'o'g' 'f'o' 't'u'o' 'e'l'g'o'o'g' 'e'k'a't' 'n'a'c' 'e'w' 'o'S'''' 'r'O' '.'g'n'i't'i'd'e' 't'n'e'm'u'c'o'd' 'e'm'i't'l'a'e'r'''t multiple computers / users all edit the same data at the same tim'''''''''''''''''''''''''''''''''''''''''''''s'u'''a' ' 't'e'l' 'n'a'c'''''''''''''''''''''' ','t's'a'f''''''''''''''''''''''''''' 't'n'e'''.''''''w''' 't'u'B'''s't's'i's'n'o'c'-''''c'y'l'l'a'u't'n'e'v'e' 'e'k'a'm'''''''''''''''''''''''''''''t'u'o'h't'i'w' 'n'o'i't'a'c'i'l'p'e'r' 'e's'a'b'a't'a'd'''''''''''''''''''''''''''''' 'r'o' ','s'c'o'd' 'e'l'g'o'o'g' 'r'e'e'p'-'o't'-'r'e'e'p' 'd'l'i'u'b' 'u'o'y' 't'e'l' 'y'e'h'T' ''''''''''''''''''''''''''''' '''' 'y'e'h'T' '.'s't'c'''i'l'f'n'o'c' 'g'n'i't'i'd'e' 't'u'o'b'a' 'g'n'i'y'r'r'o'w' 't'u'o'h't'i'w' ','''e'' without worrying about locking or'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n' 'r'o' 'g'n'i'k'c'o'l' 't'u'o'b'a' 'g'n'i'y'r'r'o'w' 't'u'o'h't'i'w' ''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'p'o'c' 's'''e'n'o'y'r'e'v'e'''''y'e'h't' ','r'e'h't'o' 'h'c'a'e' 'h't'i'w' 's'e'g'n'a'h'c' 'r'i'e'h't' 'e'r'a'h's'''''' 'l'l'e't' 's'r'e't'''''''r'e'u'p'm'o'c' 'e'h't' 'e'c'n'O' '.''''''''''' 'd'n'a' ','e'm'i't' 'e'm'a's' 'e'h't' 't'a' '''a't'a'd' 'e'm'a's' 'e'h't''''''''''''''''''''''''e'e'n''''''''' 't'u'o'h't'i'w' 'y'l'l'a'c'o'l''''' 'd'n'a' 'a't'a'd' 'e'm'o's' 't'i'd'e' 'l'l'a' 's'r'e's'u' '/' 's'r'e't'u'p'm'o'c' 'e'l'p'i't'l'u'm''''l'''''''''''''''' 's'r'e's'u' 'e'l'p'i't'l'''''''l't'u'm' 't'e'l' 'h'c'i'h''''i''''''''''''' 'h'c'''''''c'h'i'w' 's'n'o'i't'c'u'r't's'n'o'c'''''''''''' 's'm'h't'i'r'''''''t'i'o'g'l'a' 'l'a'i'c'e'p's' ','y'l'l'a'c'i's'a'B' '.'s'e'p'y't' 'a't'a'D' 'd'''''''D' 'e't'a'c'i'l'p'e'R' 'e'e'r'F'-'t'c'i'l'f'n'o'C' 'e'r'a' 's'T'D'R'C'n'k'n'i'l' 'e'h't' 'e'r'''''''''''''''e'e'r'F'-'t'c'i'l'f'n'o'C''[''a''''https://en.wikipedia.or'''''''''''''''''''''''''''''''''''''''''''s'e'p'y't' 'a't'a'D''''d' 'd'e't'a'c'i'l'p'e'R' 'e'e'r'F'-'t'c'i'l''''-'f'n'o'C' 's't'a'h't'(' 'g/wiki/Conflict-free_replicated_data_typ')'e'(']''n'n''''h's' 't'''n'o'D' ''o's' 'e'b'y'a'm' ',''''''''''''''''''''.'g'n'i'h's'i'l'b'u'p' 'e'r'o'f'e'b' 's'm'a'r'g'''''''''''''''' 's'u'o'i'''r'a'v' 'g'n'i's'.'A'''''''''''u' ',''''''a'i'd' 's'd'e'e'N' ':'T'F'A'R'D''''R' '>'''n'n''''''''''''''''''''''''''''''''''''''')'!'s's'e'y' ','w'o'W''''''''''''''''e'k'i'l''''' ','w'o'w''''''''''w'o'w'(' '''''''(' '''''''''''''''''''''' 'g'n'''''''r'e't's'a'f' ''i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'g'n'i'k'a'M'''''''''''''''''' 't's'i'l''''''''''''''''''''''''x'0'0'0'4' ''''''' 't'y'b' 'e'c'n'a'm'r'o'f'r'e'p' 'g'n'i'v'o'r'p'm'I' ':''o''''p''''''''''''''''t''''o'''''''''''''''''n'o'i't'a'm'r'o'f's'n'a'r'T' 'l'a'n'o'i't'a'r'e'p'O' ''R'R'R'B''''''''''''''''''''''''' 'R'R'R'B' 'o'g' ''''''''r'i'e'h't' '-''''''''''''-' 'n'Th''''''''''''g'n'i't'a'i'r'u'f'n'i' 'e annoying part was that ''s''''S'''''''' smart'''''''''t'r'a'm's' ''o' 'g'n'a'h's'T'D'R'C' 'g'n'i'k'a'M''''''m'o't'u'A' '#'''''''''W'' '!'''''''''''''''''' 'n'o'i't'a't'n'e'm'e'l'p'm'i'n'n'n''''''''''I '''''''''''''n''''n'o' 'g'n'i'o'g' 's'a'w' 'took a'' ''cl'''''t'a'h't' 'oser look at the paper - because something was fishy here. In their paper when a user pasted a big chunk of text (say, 1000 characters), instead of creating 1 operation with 1000 characters, their code split the insert into 1000''''''''''' 'l'a'u'd'i'v'i'''''r''''t'u'o'y'd'n'i'''''''''''''''''''s'n'o'i't'a'r'e'p'o' ''''' 'l'a'u'i'''''h'''o'D'd'v'i'd'n'i' operations. And each of those inserts needed to b''''''''''''l'a'r'e'v'e''''e'm' 's' 't'a'h't'e'' ''processed separately''''e'r'a' '''.'' Duh - of course it'll''''''''''x''''''''''r'u'o'i'v'a'h'e'b''semantics''''''''''r'u'o'i'v'a'h'e'b'o'b'-'k'c'a'l'''''''''''''''''s't'i'd'''''''''''s't'n'''''''''''''''''''''''''''''''''''''''''''','e'm'i't' 'e''''''''''''''''''''''''''''''''''''''''r'''e'd'r'o' 't'a'h'w' 'n'i'''''''''''x'o'b'-'e't'i'h'w''''''''''''''m'e't'''''''''''''g'n'i'm'm'a'r'g'o'r'p' 's'y's' 'e'h't' 'f'o' '' ' 'o's''optimized i'''''''''''e'd'o'c' 'e'h't' 's it, and for what'''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't'i'#''d'e' 't'n'e'r'e'f'*''f'i'd'*'' 'n'i' 'm'r'''o'*''''f''*'r'e'p' 't'''i''' 's'e'o'd'''''Bu''t n''o m''''''''''''''''''''''''''''''''''''''''''''''''''''ther''e ar''e a''''''''''''''''''''''''''''''''''''''If you wait long enough, somebody will find more' N''o ma'e'''tte''r '' bugs.'''''''''''''''''''a' 'n'g'i's'e'd' 'n'a'c'''''''''''''anohter'''''''''''''''''''d'n'A' '.'s'g'u'b'r'''u' 'o'''i'e'v'''a'r'h'''e'o'm''''''''b''r'e't'h'o''semantics'n'a' 's'd''r'n'u'''o'i'i'''v'f'a'''h' 'e''y'l'l'a'u'b''s'u' 'e'n'o'e'm'o's' 'e'm'i't' 'h'g'u'o'n'e' 'n'e'v'i'g''''''''''''a' 'e'r'a' 'e'r'e'h't' ','e't'i'r'w' 'u'o'y' 's't's'e't' 'y'n'a'm' 'w'o'h' 'r'e't't'a'm' 'o'N'''''''''m' 'o'n' 't'u'B' ''''''''''''''a''' 'e's'i'w'e'k'i'*''L'' ''*'f'i' 'd'n'a''''*'''''*''a'n''''''''''''''''''''n'''''''''''''' 'm'e't's'y's''''''''''''''''' 'r'e't''''e't'a'm' 'o'N' 'e'h't' 'f'o'''''''o' ''o'i'''t'a't'n'e'm'e'l'p'm'i' 'y'r'e'v'e''''l'l'a'' ',''' '?''''''''''''''''''''''''''''''''''?'s'e'l'''u'r' 'e'h't' 'e'r'''a' 't'a'h'W' '''' '?''e'h't' 'o'd' 'r'o' ','''''''' '?'w'o'H'''''''''''''''''t'c'i'l'f'n'o'c' 'y'e'h't' 'o'D' '?'d'e'g'r'e'm' 'y'e'h't' 'e'r'A''''m'a's''''e' 'e'h't' 't'a' 't'x'e't' 'f'o' 'n'o'i'g'e'r' 'e'm'a's' 'e'h't' ''''e'i'l'c' 'o''''''''''''''''i'l'c' 'p'w't''''''''d'n'e' 't'n'e'r'r'u'c'n'o'c'b' ' be slow if you do that! This isn''''''''''''''''''''''''''n'e'h'w''''''''''''''d'n'''d'e'u'o''F'''''''''''''''''''''e's'r'e'v'i'n'U' 'e'h'T' 't'u'o'b'''A''''''t'u'o'b'[''a''''s'''''o'b''''https://github.com/josephg/diamond-'#'type')'s'(']'r'a' 't'n'e's' '' 's'''''''''''''''r''6'''54''''65'''''4''''6'''6'5'''''''5'4''''''''''r'e'v'o' ''''''4'5''''''''''u'''''o'''''i'''d'v''e''a'h'c'h''t''e'e''''''''''''''''' 'e'b''l'o'h'w''' 'a'''f'o' 'semantics''' 'f'o' 'e''r'''''u'''''o'''''i'''''v'''o'a''t''h' 'd'e''e'd'e'e'n' 'y'e'h't''b'n'O' '.''''r't's'r'e'v'o' 'y'l'b'a'b'o'r'p' ''''''''''''t'o'n' 'd'n'A' '.''a'w' '''''d'e'k's'a''t'r'a'p' 'g'n'i'y'o'n'n'a' 'e'h'T''t a problem with the a''''''''''''''''''''-''''e'b'u't'u'o'y''''''''''p'y't'''='s's'a'l'c''''''''''''''''''''''''0'0'1'='''''''''''''0'1' ':'h't'd'i'w'-'x'a'm' 'l'''min'''''''-'x'a'm'''''''''''-'x'a'm''''''n'i'm''width='560' height='315' '''go''''''''''''''''''''''''''''''''''''''''''''''''''''p'u' 'e'd'o'c''''''''''''''d'e'w'e'i'v'e'r' 'r'e'e'p' '' 'o't' 's'n'o'''''''''' 's't'a'h'T''''''''''''''n''' 's'i' 'h'c'i'h'w' ',''''''.'N'''''t'h''''''''''n'A''''a' 's'i' 'A'G'R' ''''''g'''''i'''''r'i't'a't'n'e'm'e'l'p'm'.'B''''''''''''''''''''''''d'n'i'f' 'l'l'i'w' 'y'd'o'b'e'm'o's'''''''''''''''''''''a' 'e't'i'r'w' 'l'l'''i'w' 'e'r'e'h't''''i' 'e'''r'o'm''''''m'i' 'f'o' 'h'c'n''''''''''''' 't'u'o' 'e'n'o'e'm'o's' ''u'b' 'a' 's'a'h' ''''''o'h'w''''''''g'n'i'h's'u'r' ','rithm. This is just a prob'''''''''''''''''''''''''''''''''''''''''''''''''''''''''?'r'u'o'i'v'a'h'e'b' 's'''m'e't's'y's' 'e'h't' 'e'b'i'r'c's'e'd' 'h'c'i'h'w' ''''?'s'e'l'u'r' 'e'h't' 'e'r'a' 't'a'h'W'lem''''''''''''''''''''''''''''''s'n'u'''''''''''''''''''''''''''''''''''s'u' 'l'l'e'''''''l'l''.'A''''''t''' 'y'l'l'a''''l'u't'c'a' 't'a'h't''' 's'''''' 't'a'h't'e'o'''''''''''''''''''''''e'r'o'm' 'o'n' 'e'r'a' 'e'r''d''''''''''''''''''''s' 'y'l'l'a'e'r''''''''''''''''t'a'h't' 'm'o'r'f' 'r'e'f'n'i' 'e'w' 'n'a'c' 't'a'h'w'''''''''''''''s'e't'i'r'w' ''','e'b'y'a'm' ','' ','y'l''r' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'm' 'f'I'''''''' 'n'e'h'W'''''e'k'f''''o''t'''''''''''''''''' '?'I' 's'a'w''n''n' 'o'h'W'u'''''''i'l' 'm'e'e''''''''''''''''''''''''-' 'e'r'e'''''''r'o'w' 'y'l'l'a'e'''''' 'a'','v'a'j'r'''''''''''''e'r'e'w' 'y'e'h't' 't'a'h'w' ''s' '''''''''''''''''''o't''f'o'' 's'k'n'i'l' 'e''''m' 'g'n'i'd'n'e's'with *their particula'''''''g'n'i't's'e't'r implementatio'' 'a'n*.''I wouldn't min''','d so much if I didn't have so many people'''''''''g'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'I' 'n'e'h't' 'd'n'u'o'r'a' 'e'm'i't' 'e'm'o'S''''a'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''' ','''' 'h'g''''''''''''''''''''''''''''''''''''''''''''''.'''s'n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'e't's'a'f'''''''''''''''' 'o'd' 'o't' 's''''''''''''''''''''''''''''''''e'm'a's' 'e'h't' 's'a'h' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'h'c'a'E''''I'' 'a'''''''o''''''''''''o't' '''''d'''e'd'i'c'e'd' 'g'a''''''''''''''''''' 'o's' 'r'o' 'y'a'w' 'w'e'n''''''''''''''''''''''' 'o't'''''''s't'a'h'T'''w''''''''''''''o''''''''m'i' 'r'e't's'a'f' 'h't'i'w' 's'e's'r'a'-'t'r'a'm's' 'r'e'g'g'i'b' 's'y'a'w'l'a' 'd''''''''' 'k'n'i'h't' 'I'n'A' '.'s'g'u'b' 'e'r'o'm' '''''u'u'o'n'e' 'g'n'o'l' 't'i'a'w' 'u'o'y' 'f'I'''''''''''''''''''''''''s'M''y''''''''''''''''''','g'n'i'c'i't'o'n' 't'u'o'h't'i'w' ',''a'w'l'a' 's'''e'r'e'h't' 'e'm'i'''t' 'h't'i'W' ''s''''n'i'''' 'n'o's'i'r'a'p'm'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''e'n'c'e'i'c's' 'a' 't'o'n' ','t'r'''a' 'n'a' 's'i' 'g'n'i'k'r'a'm'h'c'n'e'B' '''n''''t''p'n''m'c'''''''''''''s'i' 'e'g'r'e'm'o't'u'A' '''''''''''''''''''''''''''''' 'e'r'''','a' 's'd'e'e'p's' '''m'h't'i'r'o'g'l''''''e't'i'u'q' ''''''''''''''''''''' 'y't'i's'r'e'v'i'n'u'a'''p's' 'd'e'h's'i'l'b'u'p''''''''''''''''' 's'i'h't' 't'a'h't'''''''''' 't''''''''e'i'r't' 'u'B'''''''''''''''''''s't'''c'e'p's'a'''''''''''I' '.'''''''''''''''''d'a'h' 's'T'D'R'C'''''''''''''''''''''''''''''''''''''''''''''' 't'u'b' 't'h'g'u'a'N'''''''''''''n'''n'n'''''''n'n''''''''''s'd'n'a'l' 'e'g'n'a'r't's''''''m''' ''''''''''''''''''''''''s'''''''''''''''''''a''''''''''''''''''''''''''''''''v'e''''v'''''''''''''0'2'0'2' 'm'o'r'f' '''''''''''''''''''''n'n':'k'l'a't' 's'i'h't' 'n'i' 'l'l'i'w' 'I' 'n'a'h't' 'r'e't't'e'b' 'r'a'f' ''''''e'g'r'e'm'o't'u'A' 's'n'i'a'l'p'x'e' 'n'i't'r'a'M''''''''''''''''''''i' 's'n'i'a'l'p'x''''''*'*'*'e' 'n'i't'r''''''''''''''I' 'e'n'i'''''''*''''''*'''*''''''''''''''''.'A'''''''A't'n'e'm'u'c'o'*''d''' 'y''*'t'p'*''m'e' 'n'a' 'o't'n'i' ''''.''''g'a'm'I'n'''''''''''''''''''''''''s't'r'e's'n'i' '''c'b'a''' 'h't'i'w' ''''e'e'e'r't'''(']'['!''n'''a'M'n'n'')''''''d'n'a'l''''''''s'l'e'n'n'u't' 'e's'o'''')'h't' 'm'o'r'f' 's'e'm'o'c' 'y'l'n'O'''''''''''''*'''''s''''''''s'*'' 'e''*''.'B''''''''''''''''*'''''''''''''g'v's'.'*''o'i'w''*'a'r'd'.'1'e'g'r'e'*''m'o''''''''''''''''''c'b'X'a''' 'h't'i'w' 'e'e'r't''t'u'a' '''>''n'n''''*''''n''-0.5 -0.5 192 162' style='max-width:100%;max-height:162px;'>
a
a
''''''n'n'
'n'n'' 'g'n''''''''''''''''''''''''''''''''''''r'a'i'l'i'm'a'f' 'y'l'b'a'k'r'a'm'e'r' 's'i' 't'l'u's''''''''''l's'u'e'r' 'e'h't' ','''i'''t'i'd'e' 'e'h't' 't'u'o'h'g'u'o'r'h't'''''''''''t'u'o'h'u'g'o'r'h't' 'd'e'n'e'p'p'a'h' '''c'a'e''r'e'h'w' ''w' 'f'I''''''''''r'a'l'u'c'i't'r'a'p' 'n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'n!'''''''''''''''''''''''''''''''''''' 't'n'e'm'u'c'o'd' 't'u'o'h'g'u'o'r'h't' 'n'o'i't'i's'o'p' '''''''n'i't'i'd'E'[reference crdts implementation zoomed in]''''''s'o'p's'n'i'(ref_perf3.svg)''d'e'i'l'p'p'a' 'g'n'i'h't'o'o'm's' 'd'n'a' 'g'n'i't'e'k'c'u'b''''''''''' 'g'n'i'g'a'r'e'v'a' 'e'm'a's' 'e'h't' 'h't'i'w' ',''''.'e'k'o'r't's''''t'y'e'k' 'y'''''''''''''''e'g'n'a'h'c' 'y'r'e'v'e' 'r'o'f' 'n'o'i't'i's'o'p' 't'i'd'e''''s'n'i''''e' 'e'h't' 'f'o' 'h'p'a'r'g'''''''''''''''' 'e'h't' 's'''e'r'e'H' '?'e'p'a'h's' 's'i'h't' 'e'v'a'h' 'h'p'a'r'g' 'e'h't' 's'e'o'd' 'y'h'W''n'n'n'a'w' ''''''''''n'a'w''''''u'o'y' 'f'I' '.'''''''''''''''''''''''''''''''''''''''''''''o't' 'd'n'o'p's'e'r'r'o'c' 't'a'h't' 's'e'o'd'''''''h't' 'x'e'd'n'i' 't'a'h'w''''''''''''''''''e's'a'c' 'g'n'i't'i'd'e' 't'n'e'r''I'r'u'c'n'o'c'-'n'o'n' 'r'o'f' 'n'o'i'''' '''''''''''''''''s'u''''''''' 'y'l'r'a'e'n'i'l''o'i'r'a'v' 'o'd'''''''''''''''''''''''''''''''''''''0'0'4'='t'h'g'i'e'h' '''' ''''''''''''''''https://invisiblecollege.s3-us-west-1.amaz'Y'''onaws.co'''0'0'3'm/braid-meeting-10.''''''0'''''''''''''''4'p'm'/'o'e'd'i'v'='e'p'y't' ''>''''n ''''''''>'o'e'd'i'v''''''''''v'i'd'/'<' ''7'2'=''''-'t'#'mp'''4'='c'r's' 'e'c'r'u'o's'<' 'n'>'s'l'o'r't'n'o'c' 'o'e'd'i'v'<'n'n''''''''''''''.'g'n'i'p'e'e'k'k'o'o'b' 'd'e't'r'o's's'a''''s' 'd'n'A' '/'/' '''''''''' '/'/'n'''n 'n doc.version[id[0]] = id[1]' '''''''n'o'''''''n'i't'a'z'i'm'i'''t'p'O' '/'/' '''''const int''''''''''D''''d''''''''''''''''s'e'p'y't' 'd'n'o'm'a'i'D'[''''D' ''''''''d'n'o'm'a'i'D'd'e'l'l'a'c' ''' ''''''a' ' 'https://github.com/josephg/diamond-types' '' 'n ' if (newItem'n let oparent = findItem(doc, o.originLeft)'''.seq > o.seq) breakn' 'egrate''AutomergeSmol = (doc: Doc, newItem: Item)''''''''''W'O'L'S' '/'''''''''' '*'*'/' ' => {n const {id}'''''t's'n'o'c''''''t'e'l''' = n''' ','i'ewItemn'''n ' ' // Scan to find the insert locationn'' '''''''i' 't'e'l' ' doc.'[''''''''''''https://en.wikipedia.org/wiki/Range_tre')'e'(']'''e'e'r't' 'e'g'n'a'r'version[id[0]] = id[1]nn'' let p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'i''''''u' 't'u'B'''''f'i'd'o'm' 'y'l't'h'g'i'l's''''''''''''''u''' 't'u'B' '.'e'e'r't'-'b' 'a' 't's'u'j' 'y'l'l'a'u't'c'a''''''''''j' 'y'l'l'a'u''''''''''''''''l'l'a't'u'c'a' 's'i''''''' 's' 'e'e'r't' 'e'g'n'a'r' 'y'm' ','d'o'o'h' 'e'h't' 'r'e'd'n'U'''''''''''''''''''''''''y'l'l'a'e'r' 's'i' 'e'e'r't' 'e'g'n'a'r' 'e'h'T''''''''''''''''''''''''''''''''''''' 'a' 's'e's'u' 'y'l'l'a''''l'n'r'e't'n'i' 'e'e'r't' 'e'g'n'a'r' 'e'h'T''''''r'e't'n'I' ''''''''''''' 'm'''I''''''' 'd'n'A'''''''''e'g'n'a'r' 'y'M''''''' 'A'' '''' 'arent = findItem(doc, newIte''>''''''''''''''''''''''''''''''''e'[''h'T' '?'t'h'g'i'r' ','e'e'r'''''https://en.wiki'3'''pedia.org/wiki/Range_tre')'e'(']''''''''''''''''d'n'o'm'a'i'D''k'a'e'w''''d'a'b''''''''''''''''''''3'''''''''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 'g'n'i'o'd' 'm'''I' 't'a'h'w' 'f'o' 'n'o'i't'p'i'r'c's'e'd''''''''''t'a'm' 'r'o'o'p' 'y't't'e'r'p' 'a' 's'i' 's'e'e'r't' 'e'g'n'a'r' 'n'o'''''''''''y't't'e'r'p' 's't'i''t' 'e'g'n'a'r' 'a' 's'i' 's''3'''i'h'T'''''''''''''''''''''''' 'e'l'c'i't''''i'r'a' 'a'i'd'e'p'i'k''4'''i'w' 't'a'h'T''''''''''k' 'I''''''''''''''''''t'''n'd'i'd' 'I' 'e'r'u's' 'm'''4''''I''' Does this have a name? I've been calling it a 'range tree', but I think that name is [taken by another data structure](https://en.wikipedia.org/wiki/Range_tree)n'n'''m''.originLeft)nn let inn // Scan to find the insert locationn for (i ='''''4''''''''''''''''''''''.''''''''''''''' 'r'a'e'n'i'l'Black magic'''''y'r'e''''''''''''''''''''''''''''''''.'a'e'd'i' 'o'n' 'e'v'a'h' 'I''''''''f'o' 'h'c'n'u'''''''''''l'l'e'w' 'd'e'k'r'o'w''b'''' '''''''''''''''''''I have no ide''''''''''''''''''''''''''''''''''''.'t'[''s'e'b' 'e'h't' 'e'b' 'o't' 't'''https://github.com/josephg/diamond-j')'s'(']''u'o' 'd'e'k'r'o'w' '''''''''''t's'e'b' 'e'h't' 's't'a'h't' 'y'h'w' '''a''. ' ' '''''''''''''''''.'t's'e't's'a'f' 'e'h't' 'n'a'r'''''''''''''''' 'e'b' 'o't' 'd'e'n'e'p'p'a'h'''''''''' 'd'e'm'e'e's'''''' 't's'u'''j'n'e'h'w''''' 'r'o'f' 't'c'e'p''Y'''x'e' 'e'w' 't'a'h'w' ''o't''''s'''''''''''''''''''''''''''''''''''''''''''' '.'k'c'e''''''''''''t'p'i'r''''d'''c's'a'v'a''''''''''''''''''t'''s'u'r' 'n'i' 'y'l't'c'e'r'i'd''j'''''''''''''''''''''e'h't' '''n'u'r' 'd'n'a' 't'a'h't'https://github.com/j''''e'w' ','oseph'''l'l'a''''e'h't'g/diamond-types/blob/42a8bc8fb4d44671147ccaf341eee18d77b2d532/benches/yjs.rs'' 'l'l'a' '''n'e'l't't'o'b' 'a' 'w'o'n' 's'i' 'M'S'A'W' 'd'n'a' 't'p'i'r'c's'a'v'a'J''I'''''Rust gives us total control over the memory layout, so we can pack everything in tightly. Unlike in the diagram, each leaf node in my b-tree stores a block of 32 entries, packed in a fixed size array in memory. Inserting with a structure like this results in a little bit of memcpy-ing, but a little bit of memcpy is fine. Memcpy is always faster than I think it will be - CPUs'''''''''''''''''''''''''''' '''''' ' ' ' ' ')'s'j'e'd'o'n''''''''''''''''')'e'''''''v'i't'a'n'(' 'd'n'o'm'a'i'D' 'a'i'v' 'm's'''''''m's'a'w'(' 'd'n'o'm'a'i'D' can copy several bytes per clock cycle. Its not the epic hunt of a main memory lookup'''''('n'n'''.''6'5''''''''n'''i' ''c'r'u''''''''''' 'h'c'i'h'w' '-' ''o's' 'p'e'e'D' ':'g'''''''''''''''''''''''''''e'r''''t's'a'f''u't'''''''''''''''e'r'a'w'd'r'a'h''''''''''.'r'e't'u'p'm'o'c' 'y'm' 'n'o' '''''''''''''''''''''''''''''''''' 's't'a'h't' 'y'h'w' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I' '''c'u')''r'''''''''''''''''''' 'w'o'n'k' 't'''n'o'd' 'I' ''t's' 'a't'a'd' 'e'h't' 'g'''''''''''' 'n'i' 's't'l'u's'e'r'n'i'g'''''4'9'3'1'n'a'h'C''''x'i'F''''F'''''''' 'r'e't''''''''''''''''''.'I''''y''''''''''''' 'y'l't'n'e't's'i's'n'o'c''t'i'p' 'a' ''('t'a'h'w'')' ''''''''''''''''''''''''''''''''''''''''''''''''''':'''':'''''''''''''''''s't'e'L' '.'*'x'x'''x'x''''nWell, a nearly'''''''''''''''''''''''''''n'a'h't''''''''''n'o'i't'u'c'e'x'e' '''''' 'r'e'w'o'l's' 'x'4''','r'e'b'm'e'm'e'r''' ''''''''''''''*'''''t''''''''''''''''''''''''''*''''''''''' 'd'n'A' flat'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'o'r'f''''''a'''i'v''' 'd'e't'a''''''''h'g'u'o'''r'h't'''''''a'e'r'e'n'e'g''''j' ''''''''''''''''M'S'A'W' 's'i' 'y'''''''''''''''t'i' 'n''y'l''u'r' 'I' 'n'e'h'w' 'h'W'n'n'''s''''''''' 'r'''''''''''''''''''''''''''''''''''e'v'i't'a'n' 'n'a'h't' 'r'e'w'o'l's' 'h'c'u'm' 'o's' 's'i' 'm's'a'w''''''''''''''''''g'i'b' 'o's' 's'i' 'p'a'g' 'e'h't' ''''''''''''''t'a'h't' 'y'l'l'a'e'r' 'e'd'n'o'w' 'I''i''''''''''''' 'o't' '''w'o'h' 'w'o'n'k' 't'r'a'h'c' 's'i'h''''''''''''s'''M'S'A'W' 's'e'o'd''''''''''''''''l'l'a'e'r''''''''''''''''''''''''?'h'c'u'm' 't'a'h't' 'n'w'o'd' 't'i' 'w'o'l's' '' ''T'''''''''''''''''''''''r'a'h'c' 's'i'h't' 's's'e'n'r'i'a'f' 'r'o'F''''''''''''''''''''''' 'n'u'r' 's'i' 'k'r'a'm'h'c'n'e'b' ''''''''''s'e'd'u'l'c'n'i'''s'i' 's'i'h'T'''''''''''''' '.'n'o'i's'r'e'v' 'w'o'l's' 'e'h't' ''''''''''''' 't'p'i'r'c'''''''''''''''''''''''a'i'v''' 't's'u'r' 'o't'n'i' 'g'n'i'l'l'a'c'''''''d'e'l'l'a'c' ',''s'a'v'a'j''s'w'o'h's''' '''t'r'a'h'c' line. I wonder'''''''''''''''''''''''''''''''''?''T''''''''''''''' ''''''''' ''''''s'i' 's'i'h't',' 'r'e'b'm'e'''m'e'r' 'd'n''''''s'j'''e'd'o'n''A'.'.''''?'t''''o'S' 'u'o'b'a' 's'i' 's'*''s'*''e'n'y'r''f'I''e't't'i'j''''k' 't'a'h't' 't's'''''''r'e'h't'o'n'a'''a'h'w' if the jitteryness is deletes are marginally faster than ''inserts'(' or somet')'hing?'n'''''''''''''''''h'c'u'm' 't'a'h't' '''''''''''''y'r'o'm'e'm' '''' 'a'''''''''''''''''''''''' 'I' ','h'E'''''''''''''''''''''''e'h't''''''''''''''''''''''g'''''n'''''i'''''w'''''o'''''h's' 's'i''''''s'w'o'''''''''''''''''?'g'n'i'h't'e'''m'o'''s' '''r'o''' ':''''''h'''s' '''''s'''s'e'''n' '''f'i''' 'r'e'd'n'o'w' 'I'''''''''''''''''''''''''''''''''''''''''t'i'b'''''''''''''''''''''''''''''''''''''''''''' 'y'l'''''l'a'n'i'g'''r'a'''''m'''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a't'''a'd' 'g'n'i'''m'i't''' 'e'h't''' 'f'o''' 't'u'''o' 'p'o'''p' ''''.'''''''''''''''''a'''g'''a' 'o'''i'''t'a'r''' 'e't'''e'l'e'd' '/''' 't'''r'e's'n'i' '''e'h'''t' 'g'n'i'e'e'''s''' 'e'r'''e'w' '''''o'''s' ',''''y'l't'''''''h'g'i'l's''''''''''''''''''''''''''''''4'''''~'''''''''''''n'i'a'''g'''a''''''''''.'g'n'i'''h'''t'e'm'o's' '''r'o' '''s'''t'r'e's'n'i''''' 'n'a'h't''' 'r'e't's'a'f''''' 'e'r'a''' 's'e't'e'l''''''''''''''''''''' 'e'r'u't'c'''u'''r't'''s' ''''''''''' ''' ' ''' ' ' ' ' ' ' '''''''''''e'g'''a'r'o't's' 'a't'a'D''''e'd' '''e'b'y'a'M''''''''''' ' ' ' '''''''''''''''''|' 'e'g'a'u'g'''n'a'L'''''''''''''g'n'a'L' ''''''''''''''b'a'b'o'r'p' 's'''t'I' '.'''''''''''''''|' '-'-'-'-'-'-'-'-' '''''''''''''s' 'e'h't' 'h'g'u'o'h't' '-' ''''.''' '''''a'''''''''''''|' ' ' ' ' ' ' 'S'J' '' ''+''' ''v''ia JS''''''m's'a'w'+''s't'i' 'y'h'w''''''''''''''''''''''''''''' 's'i' 's's'e' JS |''n'y'r'e't't'i'j' 'e'h't' 't'a'h'w' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I' '.'e'n'i'l' ' JS |''t'a'l'f' 'y'l'r'a'e'n' ','l'l'e'W'n'n'''''''''''''''''''''''''':'e'n'i'l' 't'' JS |'a'l'f' 't'a'h't' 'n'i' 'k's'a'b' 'd'n'a''''''e'''''e'l'f'*''''(' 's'j'y' 'o't''''''''''' 'a'i'v''''''''''a'v'i' ''''''' '+''''''S'J'+''''''''''''''''''M'S'A'W'''''''''''''m's'a'w'/'t's'u'R' JS ''' JS ''''''''''s'e'k'o'r't's'y'e'k' '' |'|' 't'x'''''''#''t's'u'R'e'n' 't'i' 'e'e's' 'y'l'e'r'a'b' 'n'' 'a'c' 'u'o'y' 't'''''''''t's'u'R's'' JS |'a'f' 'o's' 's't'i' ','h'O'''''''''''''''''''''' ''' ''' ''''''''''''t's'u'R'''''')'''e' 'v'''i' JS |''''t'''a' 'n'''(''' '''d')'n'''o'''m'''a's'i''''''j'''''''e'''d'''D''o'''n''' '''a'''i'' JS |'''v''' '''m'''s' 't'''s'u'''j'm'''s'''''''d'n'o'm'a'i'' doc'''D''''a'' 'a'''w'd'(''' 'n'd'''n'a'o'''m' 'a'''i'e'r'e'h't' 't'i'b' 'a' 'n'i' 'm'D''o'o'z' 's't'e'l' ','m'H'n''n's''''''''''''''''''''''e'k'i'''''''''s'e'o'g'''''''''''''''''''i''' 'r'''e'''''''''''.'''''''''''''''''''''d'n'o'm'a'i'd'''''''['''''''d''''''''''t's'u'r' 'o't'e't'r'd'''n'o'o'''m'''a'''i''s't'e''r''d'e''g''''''p' 'k'r'a''r'e''m'h'c'n'e'b' 'e'm'a's'there'''''''''''''''''''''' 'k'''r'''''6'9''''''0'.'0'''a'''''m'h'c'n'e'b' 'e'h'T'''''''''''' 'd'n'a' 't'p'''e'h't''i'r'c's'a'v'a'''''''''''''t's'u'r' 'h'g'u'o'r'h't' ''j't's'a'f' 'n'e'v'e' 's't'e'g' 't'I''I''''''''''''''''''''''''''''s'i'h'''''''''''''''''''y'l'e'v'i't'a'n' 'g'n'i'n'n'u'R'''''''''t' 'e'k'i'L' '.'''t' '['''''''''''''''''y'l'''h't'''' ''n'u'r' 'd'n'a' ''''''''''''''''''''''''''''' 'd'n'a' 'm's'a'w' 'p'i'k's' 'e'w' 'f'i' 'r'e't's'a'f' 'n'e'v'e' 's't'e'g' 't'I''l' ''s'e''''''''''''''''f'o' 't'i'b' 'e'l't't'i'l' 'a'r'u't'c'u'r't's' 'a' ''https://github.com/josephg/diamond-types/blob/yjs-style/benches/yjs.rs'h't'i'w' like t''T'f' ''''''''''''y'a'r'r'a' 'n'a' 'n'i' ''''''''''''''''''''''''''s'e'r'u't'c'u'r't's' 'a't'''a'd' 'g'n'i'g'n'a'h'C''''F'''n'n'i'n'''r'a''''''w''' 'd'n'A'W' parent + 1; i < doc.content.length; i++) {n ' || (oparent === parentn ''''''''''' 'y'l'b'a'n'o's'a'e'r''' && (newItem.seq === o.seq)'' || '6'('5'opa''rent'' === parent && (newItem.seq === o.seq)n && id[0] < o.id[0])'' || (oparent === parent && (newItem.seq === o.seq) && id[0] < o.id[0])'' '''1'.'1''' '' ''|| (oparent === parent && (newItem.seq === o.seq)'' || (oparent === parentn && (newItem.seq === o.seq)'' || (oparent === parent && (newItem.seq === o.seq)n && id[0] < o.id[0])'' || (oparent === parent && (newItem.seq === o.seq) && id[0]'' < o.id[0])'' || (oparent === parent && (newItem.seq === o.seq)''''''n'-'-'-'n' ''let '''3'9'1'''o = d'''''' 'r'e'd'n'u'oc.content[i]n let oparent '''''''''''''''''''''''''!'')'g'n'i'm'o'c'n'i' 'c'i'g'a'm' 'k'c'a'l'B''''''''''''''''' 's' 'i's'i'h'T'(' '= findItem(doc, o.originLeft)nn // Should we insert here?n if (oparent < parentn || (oparent === parentn && (newItem.seq === o.seq)n && id[0] < o.id[0])n ) breakn }nn // We've found the position. Insert at position *i*.n doc.content.splice(i, 0, new''Item)n doc.max''6'5'Seq = Math.max(doc'''''r''''0'0'0'5''''1''e'v'':'''o' '.maxSeq, newItem.seq)n}''''''''`''''''''''''''''''''''''''''''''''''''''''''''''''''''''T''' '.'0'0'0','''''''0' '0'0'2' 'd''''''''''''''''''r'e'h't'o' 'h'c'a'e' 'r'o'r'r'i'm'n'u'o'r'a' 's'''''e'''''.''''n'i'l''''''''''''''''e'r'e'h't' 'n'o' 'g'n'i'o'g' 's'' 'o'w't' 'm'o't't'o'b' 'e'h't' 't'a' 'k'o'o'l'''' '''''''''n'''nnThat, my friends, is how you make the computer do a lot le'n'ss wo''''#'#'rk.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!''''''''''?'!' 's'i' ''''''' 's't'a'h't' 't'a'h'w' 'r'e'd'n'o'w' 'I' '.'a's'r'e'v' 'e'c'i'v' 'd'n'A' '.'r'e't's'a'f' 's't'e'g' 'm's'a'w'-'t's'u'r' ','w'o'l's' 's'i' 's'j'y' 'n'e'h'w' 's'd'o'i'r'e'P' '''''''''''.'p'u' 'e'n'i'l' 'f'o' 'd'n'i'k' 'm's'a'w'-'t's'u'r' 'd'n'a' 's'j'y' 'f'o' 's's'e'n'y'''''''y'n'r'e't't'i'j' 'e'h't' '-' 'h'u'H'''''''''l'o'o'c' 's't'I' '>''''I'n''n'`'''''l''' 't'u'B''`'n'n'n'6''''5''''t'p'i'r'c's'a'O''v'a'j'`'`'`'n'''''''''a't'a'd' 'e'h't' '''n'n''''''''''''''''''':'s'i'h't' 'e'k'i'l' 's'k'o'o'l' 'e'g'r'e'm'o't'u'a' ','d'e't'c'a'p'm'o'C'''''p'm'o'C''''''m'o't'u'A'''''''''' 's'k'o'o'l' 't'I'''''''''' 'e'r'''o'y' 'f'I' ''' 'y'n'a' 'e'k'a'm' 't'''n's'e'o'd' 'd'n'e'k'c'a'b' 's'r'-'e'g'r'e'm'o't'u'a'''''''''''''''''''''''''' 'd'e'w'''a'l'f' ','l'u'f'i't'u'a''''''s''''s'k'o'o'm' ''e'b'''k'c'a'b' 't's'u'r' 'e'h't'''''' 's'i'h't' 'o't' 'g'n'i'h'c't'''''''t'c'i'w'S''''W''O''y'd'a'e'r'''''''''''''''''''''''''''''Plain string e''9''''0''''2'1'''d''its in JS'''''''' ' ' ' ' ' ' ' ''''''''''''''s'a' 'e'm'a's' 'e'h't' 't'''''''''''''''''''''''''')'g'v's'.'s'r'm'a'_'s'v'_'m'a'('''1'.'1'''''']'''['!''''@'''''''#'n'n':'''s'o'm'l'a'''''''''''e'h't' 'y'l'r'a'e'n' 's'm'r'o'f'r'e'p'''' 's'i' 'e'd'o'c' 'e'h't'' 's't'i' 'e'r'o'f'e'b' '''''''''''''s't'e'g' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'.'e'm'i't' 'r'e'v'o' 'e's'r'o'w' 'y'l'l'a'u''''u'd'a'r'g' 'g'n'i't't'e'g'''''''''''''''''''''o'w' 'g'n'i't't'e'g' 'y'l'l'a'u'd'a'r'g'''''''' 'y'l'w''''''''''s's'e'u'g' 'I''''''''''''#'#'''''''''f'o' 't'u'o' 's'e'm'o'c' ' ''o'l'![rust implementatio''''n in wasm vs Yjs](rust_perf6.svg'n')n''s' 's'i' 'e'c'n'a'm'r'o'f'r'e'p' 'y'l'r'a''7'''e'l'C' '.'''''''' 't'u'b' '-' 't'i'b' 'a' 't'u'o' 'g'n'i'h't'y'r'e'v'e'''''''''''''''' 't'u'o' 'n'g'i'h't'y'r'e'v'e'''' '''' ' 'e''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o' 's't'n'e'm'm'o'C''''''''''''' 'f'o' 's't'o'L''F''Read'''s'i' ' f''F'''''''''''''''''n'o' 'k'c'a'b'd'e'e'f' 'd'a'e'R'''''''''' 's't'o'l' 'd'n'A''''S''''''
''''''[2021 Seph Gentle](https://josephg.com/)''''''[https:'n'//github.co'n
'm/j'n'osephg/](https://github.com/josephg/)'''n'''n[2021 Seph Gentle](https://joseph''g.com/)'''''n''l'a' 'e'e'S''''W''n'n'n'n'n'n'''Discuss o''O''''''''s''''''''n[https://github.com/josephg/](https://github.com/josephg/)'''''n''''n'o''''''''''''s'w'e''n'N''' '''r'''e'''k'''c'''a'''H'i''''''''''https://news.ycombinator.com/item?id=2801720')'4'(']'N'H' 'n'o' 's's'u'c's'i'D'['n''''''''''''''s'''''''m''''''''''''''t'u'o' 'd'e'p'l'e'h' 'r'o'f'n'a'r'T' 'l'a'n'o'i't'a'r'e'p'O' 'n'o' 'g'n'i'''''''''o'S''''''''n'i' 'k'r'o'w''''''''O' 'g'n'i's'u' 't'p'e'k' 'd'n'a' 'l'l'a' 'm'e'h't' 't'a' 'e's'o'n' 'y'm' 'd'e'b'm'u'h't' 't's'u'j' ''d'n'A'g'a'r'e'v'a''''''''''''''''''' ''['g'''https://github.com/yjs/yj')'s'(']''n'''''d'i'l'o's''''o''i'h't'y'r'e'v'e' 'h't'o'o'm's' 'e'w' 'n'e'h'w' 'd'a'e'r' 'o't' 'r'e'i's'a'e' 't'i'b' 'a' 's'i' 't'r'a'h'c' 'e'h'T'n''n'' 'n''''''h'c'a'e' ''''''n'''''e'''''k'a't' s''''''''''d''n'i'Y'''''''Y''e'g'a'r'e'v'a''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a'r'e'p'o' '0'0'0'1' 'f'o' 's'p'u''''''''''''''''''''' That big spike? A group of 1000 edits took over'''''''''''''''''''''''''.'f'o'O' ''n'.'s's'e'c'o'r'p' 'o't' 's'd'n'o'''''''''''''''''''''''''''''''''''''''''''''' 'd'e'd''''''''''''''''''''''''''''''''''''''''''''''' 't's'a'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''m''''''''''''''''''''''''''''''''''''''''''.'e'r'o'f'e'b' 't'a'h't' 'd'e'c'i't'o'n'''''''''''''''''''''''e'k'a'm' 'o't' 'w'o'h' 't'u'o' 'd'''''''u'o'e'''''''''.'h's'w'a'G' ''r'u'g'i'f'' 'e'n'o'y'n'a' 'k'n'i'h't' 't'''n'o'd' 'I'''''''''''''''''''d'e'c'i't'o'n' 's'a'h' 'y'd'o'b'o'N'h't'i'r'o'g'l'a' 'T'D'R'C'''''''''''''''''''t'''n'o'd' 'I' '.'m'h't'i'r'o'g'l'a' 'y'''' ''''g'n'a' 'o't' 'd'e't'p'a'd'a' 'e'b' ''''#'n'a'c' 'n'o'i't'a't'n'e's'e'r'p'e'r' 't's'i'l' 's'''n'i'v'e'K' 'g'n'i'w'o'h's' 'd'n'A' '.'g'n'i'x'e'd'n'i' 'r'e'v'e'l'c' ''''''''''''''''l'l'a' ''''-'y'l''''-'e'r'a'r' 'd'n'a''''''''''''' 'a' 'e'd's'i'g'n'o'l'a' ''''''o'c'n'e' 'h't'g'n'e'l'-'n'u'r''''' ''''''-'E'L'R' ''''''''''''''''''''''u'p' 'd'n'a' 's'e'e'r't'-'b' 'g'n'i's'u' 's'i' 'n'o'i't'u'b'i'r't'n'o'c' 'y'M' '''''''U' 'c'e's' ' 3.5'n'n'''''''''''''''''''''''''''''''''''''''5'.'3' 'r'e'v'o''''3' 'k'o'o't' 's't'i'd'e' '0'0'0'1' 'f'o' 'p'u'o'r'g' 'A' '?'e'k'i'p's' 'g'i'b' 't'a'h'T' ''''o'r'g' 'o't'n'i' 'd'e''''''''''''' 't's'e't' 'e'h't' 's'a'''t'e'k'c'u'b' ','''['''''https://github.com/yjs/yj')'s'(']''''' ','pent processi''''''''''' 'e'c'r'u'o's'n'e'p'o'ng each chu'''''''''I'''''''''''''t'u'o'h'g'''''''''''''''''''''s'w'o''*'h's' ''''''' 'e'm'i't' '*''s'i'x'a' 'Y''''y'''''''''''''''''''e'g'a'r'e'v'a' 'w'o'h's''''s'j'Y' 's'e'm'i't' 'e'h'T'(''''T' 'u'o'r'h't'nk of 1000 operations''' during the test. I think those spikes are V8's garbage collector trying to free up memory. The spikes ge''t both slower and more frequen''''''''''''''''.'s'w'o'r'g' 't'n'e'm'u'c'o'd' 't as the'''''''''''''''g'v's'.'1'f'r'e'p'_'m'a' '>'''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i's's'e'c'o'r'p' 't'n'e'p's''''''g'n'i'r'u'd'''''''''''''''''''''''''''''' 's'''8''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 's'a' 't'n'e'u'q'e'r'f' 'e'r'o'm' 'd'n'a' 'r'e'w'o'l's' 'h't'o'b' 't'e'g' 's'e'k'i'p's' 'e'h'T' '.'y'r'o'm'e'm' 'p'u' 'e'e'r'f' 'o't' ''s'g'j''n'i'Y''y'r't' 'r'o't'c'e'l'l'o'c'V''''''''''''' 'e'g'a'b'r'a'g' 'e'h't' 'e'r'a''''h' 's'e'k'i'p's' 'e's'o'h't' 'k'n'i'h't' 'I'''''''''''''''''''''''''''''' '.'e'r'e'h' 'n'o' 'g'n'i'o'g' 't'o'l' 'a' 's'''e'r''''e'h'T'''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'t's'e't' 'e'h't' 'g'n'i'n'n'u'r' 'e'l'i'h'w' 's'n'o'i't'a'r'e'p'o' '0'0'0''''0'1' 'f'o' 'k'n'u'h'c' 'h'c'a'e' 'r'o'f''''d' 'n'e'k'a't' 'e'm'i't' 'e'h't'''''''''''''''''n'i' 'h'c'a'e' 'g'n'o'l' 'w'o'h' 'g'n'i'w'o'h's'''''''''''''''''''''''''''' 'e'c'n'a'm'r'o'f'r'e'p' 's''''''''0.00.51.0<''''': [..]'''t''e''x''t'' ''fill='currentColor' x='''-'''''''''''''''''''e'h't' ','w'o'n' 'r'o'F'''''''''''s'e'd'u'l'c'n'i'''''''''a''' 't'u'B's'a'h''''''''''''''''''''''''''w'o'''''''s'k'r'o'w' 'h' 's'e'h'c't'a'm' 'y''a'l''''Being faster *and'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'')'w'o'n' 't'h'g'i'r' 'e's'o'h't' 'r'o'f''''''''e'k'a'm' 'o't'''''''''''''''''e's'o'h't' 'f'o' 'y'n'a' 'r'o'f' 'h'g'u'o'n'e' 'p'r'a'h's' 't'o'n' 'm'''I' 't'u'b' ','t'e'y' 'd'e'h's'i'l'o'p' 'g'n'i'e'b' 't'o'n' 'd'n'o'm'a'i'd' 't'u'o'b'a' 'e'r'e'h' 's'n'u'p' 'f'o' 'y't'n'e'l'p' 's'''e'r'e'h'T''''E'('''''''I'(' '''''''' 's't'I' '''''''.'h'E' ''l'i'f'o'r'p' 'e'c'n'a'm'r'o'f'r'e'p'''''''e'm' 't'n'e'r'e'f'f'i'd' 'y'l't'h'g'i'l's'''''''''''''g's'i'l' 'a' 'e'v'a'h''''''''''h'c't'a'm' 't'o'n'''''''''m' 't'o'n''''''''''t'n'e'r'e'f'f'i'd' 'e'b' 't'h'g'i'm' '''''''''''''''''''''''indicative'''''''''''''''''' ''''''''''''0'.'1' 'd'n'o'm'a'i'd' 'f'o' 'e'v'i't'i'c'i'd'n'i' 'e'b' 't'o'n' 't'h'g'i'm' 's'k'r'a'm'h'c'n'e'b' 'e's'e'h't'* simple''r'', which moves the [Pareto efficiency frontier](https://en.''''''''''''''''e'Y''''k'''''''''d'a'e't's''''''''''a'e't'n'i' 'i'l'''''''''''''''''s'j'''''''s'h'y' 'o't' 'y'l'r'''''''''''''''''y'l't'n'e'r'e'f'f'i'd' 'k'r'o'w'a'l'i'm'i's' 's'k'r'o'w' 'h'c'i'h'w''''''''''''''t'e'y' 'd'n'o'm'a''''m'i'd'''wikipedia.org/wiki/Pa'n''''''''''''''''''''''''''''''''''''''''''''''''o'p'e'r' 's'i'h't' 'm'o'r'f' 'e'm'o''''''''r'a'l'i'm'i's'c' 's'k'r'a'm'h'c'n'e'b''''''''''''r'o'f' 't'p'e'c'x'e''P''''O''''''''''''''''''''''r'e'p' 'd'n'A''''''''''''''''''''''''''''' '.'s'n'o'i't'a'r'e'p'o' 'e't'e'l'e'd''''d' 'o'l'u'd'o'm' '''''''' 'd'n'a'''''''''''''d' 'n'a' ','''''''''''''''''''''''''''''y'l'e't'a'm'i'x'o'r''''x'p'p'a' 'y'l'b'''''''''''''''''''''''''''.'g'n'o'r'w' 'm'''I' 'e'.'I'''''b'y'a'm' 'r'O' '' '.'e'b'y'a'M'a'b'o'r'p' 'l'l'i'w''''' 's'''d'n'o'm'a'i'D''''''''''''''''''''''''''''''''''''''''''''''''''''m'o'r'f' 'd'e't'a'r'e'n'e'g' 'e'r'e'w' 's'''t'l'u's'e'r' 'g'n'i'k'r'a'm'h'c'n'e'b' 'd'n'o'm'a'i'd' 'y'M''For my rust implementation results come f''r''om benchmarking''n'.' [''jos'n'ephg/diamond-types, at this version](https://github.com/josephg/diamond-types/tree/42a8bc8fb4d44671147ccaf341eee18d77b2d532). '#'Benchmark by running ` RUSTFLAG''''S='-C target-cpu=native' cargo criterion yjs`. The inline rope structure'' '''''''''''''''''''''''''''''''''''' ''''s'''''''t'c'e'j'o'r'p''i'h't''g'n'i's'u' 'm's'a'w' 'o't''''''' '&' 'd'e'l'i'p'm'o'c''''''''d'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''t'i'g' 'm'o'r'f' 's'e'p'y't'-'d'n'''''''d'n'o'm'a'i'd''o'm'a'i'd' 'f'o' 'y'p'o'c' 'l'a'c'o'l' 'a' 'o't' 't'n'''''''d'n'o'm'a'i'd''i'o'p' 'o't' 'd'e'd'o'c'd'r'a'h'''''''''''''''''nDiamond's benchmarks com'''''''r'e'p'p'a'r'w'e from [josephg/diamond-types, at this version](https://github.com/'''''''''''''''''''''''''''''''''''''''''''''o't' 's'k'n'a'h't' 't's'u'j' 't'''n's'i''''''i' 'e'c'n'a'm'r'o'f'r'e'p' 's'''d'n'o'm'a'i'd''''r' 'josephg/diamond-types/tree/42a8bc8fb4d44671147ccaf341eee18d77b2d532)''''''''''''''''''''''''''' 'o's'l'a'''''''''''''''''''''''''.'t'p'o'-'m's'a'w''''b''''s'a'w' 'h't'i'w' 'd'e'z'i'm'i't'p'o' 's'i' 'e'l'd'n'u'b' 'm's'a'w' '''''''''h'c'n'e'b' 'e'h'T' '. Benchmark by runnin''g ` RUSTFLAGS='-C target-cpu=native' cargo criterion yjs`. The inline rope structure updates can be enabled or disabled by editing [the constant at the top of src/list/doc.rs](https://github.com/josephg/diamond-types/blob/42a8bc8fb4d44671147ccaf341eee18d77b2d532/src/list/doc.rs#L15). You can look at memory statistics by running `cargo run --release --features memusage --example stats`.'e'e'n''b' 'e'v'''I' 'h'g'u'o'h't''''o' ',''p'p'a'r'w'''''''''d'e'l'i'p'm'o'c' 's'i' 'd'n'o'm'a'i'D''''''''''''''''''''https://github.com/josephg/diamond-js/tree/6e8a95670b651c0aaa7701a1a763778d3a486b0''''''nDiamond is compiled to wasm using [this project](https://github.com/josephg/diamond-js/tree/6e8a95670b651c0aaa7701a1a763778d3a486b0c), hardcoded to point to a local copy of diamond'''''''d'n'o'm'a'i'd'-types from git.'''''n''''''''''''''''''''r'e'p'p'a'r'w' 'm's'a'w'''''''''''''''''''''''''''''''''''' 'm''''''''''g'n''#'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''n'''''''t''' ','l'l'e'W''T''-'-'-'n''r'o'f' 'k's'a' 'e'l'p'o'e'p' 'g'n'''''''''''''''''''''d'r'o'c'e'r''''''''''''''''''''''''''''''''''''''a' 'n''''''''''''''''''''n'''''''''''''''''''''''''''''t's'o'p''''''''''''''''''''e'h't' 'f'o' 't'r'a'p' 's'i'''''''''''''''''''''''''''''''''''''''''''''''''https://invisib''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''W''' '.'h'c'.''T''u'o't' 'n'i' 't'e'g'''''''g' ''w''' ','s'd'r'a'w'o't' 'e't'u'b''n'n''''i'r't'n'o'c' 'o't' 't'n'a'w' 'u'o'y' 'k'r'o'w' 'f'o' 't'r'o's' 'e'h't' 's'i' 's'i'h't'''''''d'n'o'm'a'i'D'''''''''''''''s'd'n'a't's''''''''''''''''''n''''''''''''''''''''''''.'s't'n'a'i'g'''''''h'c' 'f'o' 's'r'e'd'l'u'o'h's' 'e'h't' 'n'o' 'g'n'i'd'n'a't's' 's'i'''''''''''''''''e's'u'a'c'e'b' 't'a'e'r'g''''i''''g' 's'i' 'T'D'R'C' 'y'M'' 'f'I'''''''''''''g'n'i'r'i'h' 'e'r'''e'W' 'le.college''''''''''t''' 'e'g'u'H''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o't'''''''''''''' 'n'n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'k'r'o'w''''''''''''n'd'l'u'o'w' 's'i'h'T''''''''' 'd'n'o'm'a'i'D' '.'s'j'Y' 'd'n'a' 'e'g'r'e'm'o't'u'A' 'n'o' 'k'r'o'w' 'r'i'e'h't' 'r'o'f' 's'n'h'a'J' ''m'p'p'e'l'K''''L' ' 's'k'n'a'h't''''''''''' 'o't' 's'n'k'a'h't' 'l'a'i'c'e'p's'''''''''''''''''''''''''' 'r'o'f' 'n'i'v'e'K' 'd'n'a' 'n'i't'r'a'M''''''i't'r'a'P' 'd'n'A' '.'''''''''''''''''''.'e'v'i'l' 't'n'e'w' 't's'o'p' 's'i'h''''i'''''''s'h't' 'e'r'o'f'e'b' 'k'c'a'b'd'e'e'f' 'e'v'a'g' 'o'h'w' 'e'n'o'y'r'e'v'e' 'o't' 'u'o'y'k'n'a'h'T'n'n'.')'/'(']'e'g'e'l'l'o'C' 'e'l'b'i's'i'v'n'I'[' 'e'h't' 'y'b' 'd'e'd'n'u'f' 'd'n'a' ''''''''''f' ',''''''''''''''''n'f'u' ','''''''''''''''''''''''''''' 'B'''''''''''t'c'e'j'o'r'p' ''e'h't''''''''''https://braid.org')'/''''''':'s'p't't'h''''b'(']'d'i'a'r'b'[' 'f'o' 't'r'a'p' 's'a''''''''''' 'o't' 's'k'n'a'h't' 'e'l'b'i's's'o'p' 'e'd'a'm' 's'a'w' 'k'r'o'w' 's'i'h'T''''''''''''''''''''''''''''' 'e'v'a'g' 'o'h'w' 'e'n'o'y'r'e'v'e' 'o't'''''''o'f' 's'k'n'a'h''''a'T'n''n''s't'n'e'm'e'g'd'e'l'w'o'n'k'c'A' '#'n'''''''''n'e'e'b''''''''''t'''o'n' 'r'o' ' 's'a'h' 'm'e't'i'''''''i't' 'h'c'a'e' 'r'e'h't'e'h'w'i' ''''s'a'h' ''m'e't'i' 'h'c'a'''''' ','a'k'A'e' '*'n'e'h'w'*''''''''''''''''''''''''''''''''''''''''''''''''''s'e'l'b'u'o'd''''''''''''''''''''''''''''''''''''''.')'T'D'R'C' 'd'e's'a'b'-'n'o'i't'a'''''' 'a' 's'a'h''''''''''''''''''''''''''''''''''''''''''''''''' '1'2'0'2''''''''Seph Gentle''''''''''''n'[https://josephg.com/](https://josephg.com/)'n'n'''htt''''''''''m''''''''/''https://github.com/josephg/'g'h'p'e's'o'j''o'c'.'b'u'h't'i''''t'g'ps://josephg.com/'e'l't'n'e'G' 'h'p'e'S'n''''''' ''''h'p'e'S''y'B''''''''''i'r'W'''''>'r'e't'o'o'f'<'n''''[''''''''''''''''''''''''''''>'r'e't'o'o''''i'f'/'<'n'''''''''''''''''')'/'m'o'c'.'g'h'p'e's'o'j'/'/':'s'p't't'h'(']'''''''n'n'e'l't'n'e'G' 'h'p'e's'o'J'n'n'-'-'-'n'n''''''''''''''''''''e'z'i's' 'e'g'a'r'o't's' 'k's'i'd'-'n'o' 'd'n'a' 'e''A''''g'n'i'g'a's'u' 'y'r'o'm'e'm'''''''''''''''''''''''''' ','s'e't''''''''''t'n'e'm'e'l'p'm'i'e'l'e'd' 'l'a'r''''''r'e'h'''''''f'f'u't's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'a''''''''''''' 't'n'e'r'r'e' '''''''''''''''''''''''''''''e'h't' '?'d'e'd'r'o'c'e'r' 'e'k'o'r't's'*''y'e''*'k' 'y'r'e'v'e' 'e'v'a'h' 'o't' 'd'r'i'e'w' 't'i' 's'I' '')'?'t'n'a'w' 'e'l'p'o'e'p' 't'a'h'w' 's't'a'h't'''''''' 'e'l'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i'h't' ''''t''''''''''''''''''''''''''''''''''.'s'u'o'v'r'e'n' 'e'm' 's'e'k''''''''''''''''''''''''''''''''''''''''''''''''''''''''']'''of diamond-types' ''''https://github.com/josephg/diamond-types/tree/yjs-s'''''''''''''t' 'e'''''''''' 'n'e'e'''''''''''''''''''r'o'f''r'e'' 's'e'k'a'm' 's'''''''t'''''''''l'a'n'i'f' 'u'b' ',''''i'''''''''''''''''''''''''''''''''''''''''''''''''''.'h'E' '''''''''.'V'M'M'Y' '.'e'v'o'b'a' 'd'e't's'e'g'g'u's' 'e'v'''I' 'n'a'h't' 'r'e'g'g'i'b' 'e'l't't'i'l' 'a' 'e'b''h'T' '''.'''b' 's'a'h'r'e'h'w' ','tyl''')'''e'(']'e'l'y't's'-'s'j'y'[' 'e'h't''''a''' 'e's'u' 't'''''''''''''''''' 's'e'p'y't'-'d'n'o'm'a'i'd' 'f'o's'o'p' 'g'o'l'b' 's'i'h't' 'n'i' 's'k'r'a'm'h'c'n'e'b' 'l'l'A'''''''''''''''''''''''''e't't'i'r'w' 's'i' 't's'o'p' 'g''''s'o'l'b' 's'i'h'T'a'm''''''s'e'v'i'g' 'l'l'i't's' 't'i'''''''''''''e'k'i'l' 't'''n'o'd' 'I' 't'u'b''''''''''''' 't'b'u' ','e'c'i't'c'a'r'p' 'n'i' 'l'l'a'm's' 's'y'a'w'l'a' 's'i' 'n'o'i't'a'm'r'o'f'n'i' 's'i'h't''''''''s'e't'e'l'e'd' 't'a'h't' 'e'm' 's'e'r'u's's'a' 'n'i'v'e'K'''''''''''''''''''''''s' 'y't't'e'r'p' 'l'l'i't's' 's'i' 's'i'h'T' ''o'e'p' 'e'b'y'a'M'(' ''t'o'o'p'm'e't' 't'u'o'h't'i'W''''''''''''s'e's'a'e'r'c'n'i'''''''s'e'h's'u'p'''!'''''''''b' ' 'n'o' 't'c'a'p'm'i' 'r'e'p'o' 'n'''' 'a' 's'a' 't'o'n' ','T'D'R'C' 'e't'a't''''''''''d'd'a' 'I' 'n'e'h'W''s' 'a''''''''t'i' ','''''''''''s'e's'a'e'r'c'n'i' '4''''''' ''''''''''' 'f'o' '''''''''r'e'h't'r'u'f' 's't''''s'i'h't''o'l'''''''''''''''''''''''''''o''' 't'c'a'p'm'i' ''''''''''''''''''''''''''''h'c't'a'm' 'o't' 'e'l'b'a' 'e'b' 't'''n'o'w' 'I' '.''o's'l'a' 'l'l'i'w' 's'i'h'T''O'''''''''''''''s'e'''''''''''''''s'e's'a'e'r'c'n'i' 'o's'l'a' ''t'e'l''''''''''s'e's'a'e'r'c'n'i' ''''''e'd' 'l'a'r'''''''''''''''''''''''''''''''''''n'o'i't'a'z'i'm'i't'p'o' '''''''e'r'o'm''''''e'h't' 's' 'r'o'f' 'm'o'o'r' 's'''e''''''''''''''''''''''''g'n'i't'''''''''''''''''''''''''''''t'''''a'h't' 'e'k'i'l' 'y'c'n'a'f' 'g'n'i'h't'y'n'a' 'r'o' 'i'd'e' 'e'k'o'r't's'y'e'k'-'r'e'p' 'o'd''r'e'h'T'''''''''''''''o't' 'g'''''''''f'o' 's'n'e't' ''''t'''n'''''i'''o'g' 'm''''o'p'm'e't'''' 's'a' ''I''''T's''''''''''e's'a'e'r'c'n'i' '''o't'e't'e'l'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a''''''''''''''''''''''''''''''''''''''''''''r'i'a'f' ''''''''''''''''''''''''''''''''''''''' 'f'o' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''.'m'r'o'f' 'l'a'n'i'f' 's'''d'n'o'm'a'i'd' 't'o'n' 's'i' 's'i'h'T' '''''''''''''''''''''''''''''''''''''''''''''i'f'n'o'c' 'e'b' 'd'l'u'o'h's' 't'i' 'f'i' 'd'e'd'i'c'e'd' 't''''d'''n'e'v'a'h' 'I' ''s'e'g'g'u's' 's'k'r'a'm'h'c'n'e'b' 'e's'e'h't'''''''''''''''''t'c'e'p'x'e' 'd'l'u'o'w' 'u'o'y' 'n'a'h't' ''.'r'e'g'g'i'b' 'e'l't't'i'l' 'a' 'p'u' 'd'n'e' 't'h'g'i'm' ''n'o'i's'r'e'v' 'd'e's'a'e'l'e'r' 'e'h't''''f''''''''d'n'o'm'a'i'd' 't'u'B' '.'s'j'y' 'h't'i'w'a'''''''''''''''' 'n'o's'i'r'a'p'm'o'c' 'e'h't' 'e'k'a'm' 'o't' ','d'e'l'b'a's'i'd' 'f'f'u't's' 's'i'h't' 'h't'i'w' 'i'c'e'p's'''''''h'c'n'a'r'b' 'a' 'f'o' 't'u'o' 'g'n'i'k'r'a'm'h'c'n'e'b' 'n'e'e'b' 'e'v'''I' '.''''''' ','s'e't'e'l'e'd' 'l'a'r'o'p'm'e't''''l'e'd''''''o'p'm'e't''d' 's'e'r'o'''''''''''''''''''''''''''''''''''''''''' 'k's'i''''''.'''''''''''''''''''''''''''''''''''''''''''''''' 'e'l'y't's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''~'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'c'a'b' 'n'o'i't'a'm'r'o'f'n'i' 's'i'h't' 's'd'd'a'''''s'e'o'd' 'd'n'o'm'a'i'd' 'f'o' 'h'c'n'a'r'b' 'r'e't's'a'm' 'e'h'T'n''n'''''''''''''''''''''' 'e'r'a' 's'm'e't'i' 'e'r'o'm' 'd'n'a' ','s'''''''''B'(' ''w'o'r'g' 't'n'e'm'u'c'o'd' 'e'h't' 's'a' '''' ''.'e'm'i't' 'r'e'v'o' 'w'o'r'g' 'y''''t'e'h't' 'd'n'A' '''.'b'k'4' 'e'r'a' 's'n'o'i's'r'e'v' ','s'j'y' 'n'I' '.'s'e't'y'b' 'w'e'f' 'a''''''''''''(' 'l'l'a'm's' 'e'r'a' 's'n'o'i's'r'e'v' ','d'n'o'm'a'i'd' 'n'I' '.'d'l'e'i'f' 'n'o'i's'r'e'v' 'e'h't' 'o't'n'i' 'd'e''''''e'b' 'e'v'a'h' 's'm'e't'i' 'h'c'i'h'w' 't'u'o'b'a' 'n'o'i't'a'm'r'o'f'n'i''''''''''''s'e't'e'l'e'd' 'e'h't' 'e'd'o'c'n'e' 'h't'g'n'e'l'-'n'u'r''''''''''E'L'R''''''''''''''''''''''''' 't'u'o'b'a' 'n'o'i't'a'm'r'o'f'n'i' 'd'e'b'm'e' 'o't' 's'd'e'e'n' '''''''''' 's'''s'j'Y' '-'n''')'l'o'o'c' 's't'i' 't'u'b' ','t'a'h't' 't'n'a'w' 't'''n'o'd' 'e'l'p'o'e'p' 'e'b'y'a'M'(''''''''''''''''''''''''''''''''I' '?'t'a'h't' 't'n'a'w' 'e'l'p'o'e'p' 'o'D'(' '''' '.'s'y'a'l'p'e'r' ''''r'e'd'i'l's' 'e'm'i't' 'y't't'e'r'p' 'u'o'y' 'e'v'i'g''''''''''''''''''''''''s'n'o'i's's'e's' 'g'n'i't'i'd'e' 'y'a'l'p'e'r' ''''''''''''''''''''''''''''''''''''''''''''.'s'y'a'l'p'e'r' 'g'n'i't'i'd'e'''''l'p'e'r' 'r'e't'c'a'r'a'h'c'-'y'b'-'r'e't'c'a'r'a'h'c' 'o'd' 't'''n'a'c' 's'j'Y' 'e'z'i's' ''d'-'n'o''''''''e'g'a'r'o't's''''l'i'f' 'n'o' 't'c'a'p'm'i' 'n'a' 'e'v'a'h' 'o's'l'a' 'l'l'''t'i' 'd'n'A' ''t's' 's'j'Y''''''''''''''' 'a' 'e'r'a' 's'e't'e'l'e'D'(' '''''''''''' 'h't'i'w' 'o'd' 'o't' 'g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a't'a'd' 's'i'h't' 'g'n'i'd'd'A'''''''''''''''''d' '''s''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'i'a''-'''''''''''''''''''''''''''''e't'e'l'e'd' 'h'c'a'e' 'n'e'h'w' 'g'n'i'r'o't'S' '-' 't'i'''''''''''''''''.'g'n'i'h't'o'n''''t' 't'o'n' 's't'i' 't'u'b' ','r'e'h't'r'u'f' 't'a'h't' 'e'z'i'm'i't'p'o' 'n'a'c' 'I' 'k'n'i'h't' 'I' 'e's'a'e'r'c'n'''i' 's'i''''''''''s'i'n''''''''''''''n'i' 'i's'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''t'e'l'e'd' 'e'r'o't's'''''''o't' 'o's'l'a' 'I' 'n'e'h'w' 'b'm'4'3'.'2' 'o't' 'b'm'2'1'.'1' 'm'o'r'f' 's'e's'a'e'r'c'n'i' 'e'g'a's'u' 'y'r'o'm'e'm' 's'''d'n'o'm'a'i'D' '.'e'g'r'a'l' 'y'l'd'r'i'e'w' 's'i' 'd'e'n'e'p'p'a'h' 'e't'e'l'e'd' 'h'c'a'e' 'n'e'h'w' 'g'n'i'r'o't'S'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''b'k'0'0'5' 't'u'o'b'a' 's'e'k'a't' 't'I'''''''''''''' 'n'e'h'w' 'g'n'i'r'o't'S' '.'n'o'i't'a'm'r'o'f'n'i' 's's'e'l' 'h'c'u'm' 'e'r'o't's' 'o't' 's'd'e'e'n' 's'j'Y' 'n'i'h't'o'n' 's'a'h' 't'i' 'd'n'A' '.'''''''''''''''''''n' 's't'I'.'i'h't'e'm'o's' 's'i' 's'i'h't' 'k'n'i'h't' 't'''n'o'd' 'I' '-' 't'h'g'i'r' 'y'l'b'a'b'o'r'p' 's'i' 'n'i'v'e'K' '.'o't' 't'n'a'w' 'I' 'f'i' 'e'r'u's' 't'o'n''''''l'l'i't's' 'm'''I' ''''p'p'a'r'w' 's'j'-'d'n'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'g'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*'''''''''''''''''''''''''''''''''''''''''''''''''''''''-''' '-'n'n':'s'n'o'i't'a'c'i'l'p'm'i' 'd'r'i'e'w' 'e'm'o's' 's'a'h'''' 's'i' 's'i'h'T' '.'d'e't'e'l'e'd' '*'n'e'e'b' ''''''''''b' '*'''e'v'a'h' 'y'e'h't' 't'a'h't' 'y'l'n'O' '.'d'e't'e'l'e'd' 'n'e'e'b' 'e'v'a'h' 't'n'e'm'u'c'o'd' 'a' 'n'i' 's'm'e't'i' 'h'c'i'h'w' 'e'r'o't's' 't'''n's'e'o'd'''''''''''''''s'e't'e'l'e'd' 's't'a'e'r't'e'm'o't'u'a'''''''''''''''''''''''''''''''''''''''''''''''' 'e'r'o't's' 't'''''''''' 't's'''n's'e'o'd' 's'j'Y' ':'s'n'o'i't'a't'n'e'm''''''''''n't'm'e'l'p'm'i' 'r'e'h't'o' 'e'h't' 'r'e'v'o' 'e'g'd'e' 'e't'i'n'i'f'e'd' 'a' 's'a'h' 's'j'Y' 'h'c'i'h'w' 'n'i' 'y'a'w' 'e'n'o' 's'i' 'e'r'e'h't' ','d'i'a's' 't'a'h'T''n'n'm'a'i'd' 'e'h't''''d' 's'n'i'a't'n'o'c' ')'c'(']'y'r'o't'i's'o'p'e'r' 's'i'h'T'['''updates can be enabled or disabled by editing [the constant at the top of src/list/doc.rs](https://github.com/josephg/diamond-types/blob/42a8bc8fb4d44671147ccaf341eee18d77b2d532/src/list/doc.rs#L15). You can look at memory statistics by running `cargo run --release --features memusage --example stats`.'n'n'''''''''d'n'o'm'a'i'd''n'''r''eto_efficiency). Ideas w'n'hi''ch'' '''''''n''''''''''''''''''''''''''m'''' 'n''''''''''''''s'e'p'y't'-'d'n'o'm'https://github.com/josephg/diamond-types/tree/42a8bc8fb4d44671147ccaf341eee18d77b2d532''a'i'd'''a'c''''h's''t'' RUSTFLAGS='-C target-cpu=native' 'i'r'o'g'l'a' 's'i'''''h''U'''''''U'Y''''I't''''''''''''''''''''''''''''''''''''''''''''''''''['s'i' 'm'h't'i'r'o'g''''''''''''''t's'i'l'l'a'e'r' ''''''''''https://github.com/josephg/diamond-types/blob/42a8bc8fb4d44671147ccaf341eee18d77b2d532/src/list/doc''''''''''''''''''''''''''''''''''''g''cargo run --release --features memusage --example stats'''''''''n'i'n'n'u'r' 'y'b' 's'c'i't''nFor my rust implementation results come from benchmarking [josephg/diamond-types, at this version](https://github.com/josephg/diamond-types/tree/42a8bc8fb4d44671147ccaf341eee18d77b2d532). Benchmark by running ` RUSTFLAGS='-C target-cpu=native' cargo criterion yjs`. The inline rope structure updates can be enabled or disabled by editing [the constant at the top of src/list/doc.rs](https://github.com/josephg/diamond-types/blob/42a8bc8fb4d44671147ccaf341eee18d77b2d532/src/list/doc.rs#L15). You can look at memory statistics by running `cargo run --release --features memusage --example stats`.'s'i'n''t'a't's' 'y'r'o'm'e'm' 't'a' 'k'o'o'l'.rs#L1')'5'(']''s'j'Y''''''''''s't'i' 'd'n'A' '.'''e'h't' 'l'a' 's'''e'g'r'e'm'o't'u'a' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'm' ' 'y'l'l'a'c'i't'e'r'o'e''''''''''e'r'o'''''''r'e'h'T''''''''''s'e'o'd' ''''''y'l'l'a'e''e''''w'r''t'I''do this are rare and tr'3'''uly golde''n''.' '.'l'a'e'r''I''''''m''''''''nYou'll also need `automerge-paper.json.gz` from [josephg/crdt-benchmarks](https://github.com/josephg/crdt-benchmarks) in order to run most of these tests. The reference-crdts benchmark depends on [crdts.ts from josephg/reference-crdts, at this version](https://github.com/josephg/reference-crdts/tree/fed747255df9d457e11f36575de555b39f07e909)'''''n'''''''''e'c'i't'c'a'r'p' 'n'i' ''''' 'y'l'l'a'e'r'''''''e'l'p'm'i's''''i' 's'i''''''M'''''''''''''''''''''''''''''''nThe charts were made on [ObservableHQ](https://observablehq.com/@josephg/crdt-algorithm-performance-benchmarks).'''''n''''nMy rust crdt wasm wrapper anywhere.'''''''''''''''''''''''''.'''''e's'a'b'e'd'o'c' 'e'm'a's' 'e'h't' 'n'i' 's'''' 'T'D'R'C' 't's'i''''o'l' 'y'n'a''''m''''''''''t'n'e''''''''''''p'''Its a lot faster than'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'n'a'h't' 'r'e'w'o'l's' 'h'c'u'm' 's'i' 'e'g'r'e'm'o't'u'A'''(''']'['!'n'''''''')'''''''='c'r's' 'g'm'i'<''>''ref_vs_am_perf.svg'n'n':'e'g'r'e'm'o't'u'a' 'n'''''''''''''''''''''''''''' 'n'a'h't' 'r'e't's'a'f' 't'o'l' 'a' 's't'I'n'n''u' 'e'g'r'e'm'o't'u'a''m' 't'n'e'm'e'l'p'm'i' 'n'a'c' 'u'o'Y' '.'''''s' 'e'd'o'c' 'e'h'T' '.'2'n'': [..]'9' ''dy='''0.32''em'>''1.5<''/tex''t''>'n''n''''''' 'l'l'a' 't'''''''''''''''''''''''''''''t'a'h't''''''''''''''''''''''''''''''''''''''''''','n'o''''',''''e''''''''''''r'o' ''''''i'''''t'i's'o'p' 'r'e't'c'a'r'a'h'c''''b' 'y'b' 'm'e't'i' 'y'n'a' 'p'u' 'k'o'o'l''''''''''''''''''''''''''e't'c'a'r'a'h'c' 'y'b' 'm'e't'''''''t'm'i' 'y'n'a' 'd'n'i'f' ' 'n'i' '''s'r'e't'c'a'r'a'h'c' 'f'o' 'r'e'b'm'.''''u'n'n' 's't'a'h'T' '''''''''''''''''''''''''''''''t'''''''''''''')'y'l'e'v'i's'r''''''''''''''''''''''''''''''n'i' 's'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'I' '.'t'n'e'm'u'c'o'd' 'e'l'o'h'w''''''''''u'c'o'd' 'e'l'o'w' 'e'h't' 'n'i' 'r'e't'c'a'r'a'h'c' 'y'r'e'v'e' 'f'o' 'n'o'i't'i's'o'p' 'e'h't' 'g'n'i't'a'd'p'u' 'e'l'i'h'w' ','e'm'i't'o'i''''e't'e'l'e'd' 'd'n'a' 's'n'o'i't'r'e's'n'i' 'o'd''''u'c'e'r'(' ''''n's''''''''''n's'n'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'y'm' 't'u'B' '.'''' 'p'a'M'e'e'r'T'B' 'a' '''''''''' ' 'a'n'a'e'm' 'y'e'h't' 's'e'e'r't'-'b' 't'u'o'b'a' 'k'l'a't' 'e'l'p'o'e'p' 'n'e'h'w' 'y'l'l'a'u'''s'j'Y''s'U''''s'j'Y'n'n'''' 'e'h't' 'o''''''s'e'k'a'm''''''''s'd''''''''''''''''''c'o'l'l'a'm' 'o't' 's'l'l'a'c' ''e'e''s'n'j''t' 'Y''k'c'a'b' 't'n'e'w'''''r'a't's' 'n'i't'r'a'M' 'n'e'h'w' 'd'n'e' 'e''''''' 'a'h't' 'r'a'e'n' 'r'e't''''''''''''''''''''h'g'u''''''''''''''t'r'a'h'c' 's'i''''e'h't' 'n'i' ''''o'r'h't' 'e'c'n'a'm'r'o'f'r'e'p' ''t'e'b''''''r''' 'd'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i''''' 'y'l''''''''''s'i'h't' 'n'a'h't' '''''''''''n'i'a'g'a' ''e'v'i't'a'n''' 'k'r'a'm'h'c'n'e'b' 's'i'h't' 'n'u'r' 'I'''' 'n'e'h'W''''''''''''''''''''''' 'r'e'h't'o'n'a''''''''''w''' 't'u'B''''''' 'r'e't's'a'f' 'x'3' 's'n''''''''''''s'i' 'e'd'o'c' 'e'h't'u'r' 'e'd'o'c' 'e'h'T' '.'n'o'i's'r'e'v' 'w'o'l's' 'e'h't' 's'i' 's'i'h't''''A' 's't'e'g' 'e'c'n'a'm'r'o'f''''''''''''''''''''''''''''''''''''''''''''i''' '-' 'h'c'u'm' 'o'o't' 'r'e't't'a'm' 't'''n's'e'o'd' 't'i' 'e'''' 'b'y'a'M''''''I'''r'f'o'r'e'P' '' stroke-opacity='0'I''''''''''y'l'b'a'b'o'r'p' '''''''''''''''s't'i' 'e'm'u's's'a' 'I'.''1'>2''.'''''''']'''.'.'[''' '': [..]':'0''<'.'lin'['e s'')' ''''''''''''''''e't'a'l'u'c'l'a'c'''''''''''''''''''''d'e't'a'l'o's'i' 'e'c'n'a'm'r'o'f'r'e'p' 's'j'y'tro''(':'k''e='c']'urrentC'['olor' x2='-6'>2.53.03.5_ time per txn (ms)0'''''''''''''''''''''''''''''''''''''''''''''''y'r'o'''''y'd''''y'i't'm'e'm''''s'i'h't'' 'n'i' 'd'e't'n'e'm'g'a'r'f' 's't'c'e'j'b'o' 't'p'i'r'c's'a'v'a'j'50,000100,000150,000200,000250,000txns _ 120kb).n''''''''''''''''''''''''''''''''''''''''''''''''''t''' 'e'''''l'a'c's' 'r'a'e'n'i'l' 'a' 'h't'i'W''''i''''''''''''''''''''''''''''''''''n- But when inserting we need to update 2 data structures instead of 1. This makes everything more than twice as slow, and it makes the wasm bundle twice as big (60kb -> 120kb).''''' 'e'r'e'h'w'e'm'o's' 't'n'e't'n'o'c' 't'n'e'm'u'c'o'd'''''''o'c' 'e'h't' 'e'r'o't's' 'l'l'i'w' 's'e's'a'c' 'e's'u' 'f'o' '''s't'o'L' '-'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'm''''''''''''.'e'e'r't'-'b' 'e'h't' 'n'i' 'g'n'i'h't'y'r'e'v'e' 'e't'a'c'i'l'p'u'd' 'o't' 'd'e'e'n''''i' 'o'n' 's'''e''''''''''''''''')'g'v's'.'s'l'a't'o't'(']'['!'''''''['#''''@'''''''['#'n''n'r'e'h't' 'o's' ','y'a'w'''''''''''''''''''''y't't'e'r'p' ','e'l'g'n'i's''''e'r'p' 'a' 'n'i''y'n'a' 't'''''''''''''''''''''''''''''''''s'e's'u'a'p' 'C'G' 'y'k'c'u'l'n'u' 'e'm'o's' 'g'n'i'r'r'a'b''''a' ','n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 'a' 'e'v''''''''''''''''''''''t'r'a'h'c' 'e'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':''''''''''''''''''''n'o's'i'r'a'p'm'o'c' 'n'I' '.'''':''''''''''''''''''''''''''''''''''''''''''''''.'t's'a'f' 'k'o'o'l' 'g'n'i'h't'y'r'e'v'e' 's'e'k'a'm' 'e'g'r'e'm'o't'u'A' '.'''''''![all data in one char''''''''''''''''''''''''e'l'a'c's's' 'r'a'e'n'i'l' 'a' 'h't'i'w' ','t](all_per'''''''r'a'e'n'i'l'_'f.svg)''''type: 'log', domain: [0.0005, 4], tickFormat: ',','n'n':'s'i'h't' 'e'k'i'l' 's'k'o'o'l' 'y'l'l'a'u't'c'a' 'a't'a'd' 'e'h'T' '.'n'i'a'r'b' 'r'u'o'y' 'k'c'i'r't' 's'e'l'a'c's' 'g'o'l' ','''' 'r'e'b'm'e'm'e'R'n'n''''''''''I'n'n''o' 'n'i' 'a't'a'd' 'l'l'a'a'h'''''' 'd'e'e'n' 'l'l'i'w' 't'n'e'm'n'o'r'i'v'n'e''''i' 'g'n'i't'i'd'e' 'e'd'o'C'''''' 'e'd'o'V' 'S'V' 'e'h't' ','e'd'o'C' 'S'V' 'n'i' 't'x'e't' 'g'n'i't'i'd'e' 'e'r'''u'o'y''''' 'e'h't' 'f'i' ','e'l'p'm'a'x'e' 'r'o'F' '.''''''''''''''''e' 'r'o'f' '-' 'y'a'w'y'n'a' ''''''' ','s'e's'a'c' 'e's'u' 'f'o' '''''''s'e'r'o't's's't'o'l'''''''o'm'''''''''' 'a'''',' 's'A'''''''''''''''''''''t'a'h't' 's'i' 't'l'u's'e'r' 'e'h'T'n'a''''''''''''n'o'i't's'e'u'q' 'n'i' ''''''''i''''''''' 'y'l'''''''''' ''There's a performance measure nobody is taking seriously enough at the moment. And that is' ',''''''''''''''''''''''''''''''''''''''''''''')'e's'a'b'a't'a'd' 'a' 'n'i'(' '''''''''''''''''''''''''''''u''' 'd'n'A''''''''''''''''''''''''''''''''''''''''''' 'h't'i'w' 'g'n'i't'c''''t'a'r'e't'n'i' 'y'l'l'a'u't'c'a' 'e'r'a''''''''''''''.'T''''''''''''''''''''''''' ',''''''' ','s'i' 't'a'h't'''''''i't' 'd'n'A' '.'t'n'e'm'o'm' 'e'h'''''''''''''''''''''''''''''''''''''''''''''''.'a't'a'd' 'f'o' 't'r'o's' 's'i'h't' 'h't'i'''''''i't'w' 't'c'a'r'e't'n'i' 'd'l'u'o'h's' 'e'w' 'w'o'h't' '''''''''''''''''''l'u'f'e's'u' 'n'e't'f'o'''''y'r'e'v' 't'''n's'i't'a' 'h'g'u'o'n'e' 'y'l's'u'o'i'r'e's' 'g'n'i'k'a't' 's'i' 'y'd'o'b'o'n' 'e'r'u's'a'e'm''''''''e'r's'u'a'''''''a's'e'm' 'e'c'n'a'm'r'o'f'r'e'p' 'a' 's'''e'r'e'h'T'n''e'l'b'a'y'f'i't's'u'j'' 'r'o'f' 'r'e'.''''t't'e'b' 's'i' 's'i'h't' 'e'r'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'e'h't'o' 'e'h't' 'f'o' 'e'n'o'n' 'h'c'i'h'w' ','e'r'u't'a'e'f' 't'e'e'w's' 'a' 'r'o'f' '''''''''''''''''''''''''r'e'h't'o' 'e'h't' 'f'''' 'o' 'e'n'o'n' 't'a'h't' ','M'A'R' 'a'r't'x'e' 's'e's'u' 's'i'h'T' ''g'i'f' 'I'n'n'''''''n'n'''''''s'n'o'i't'a'z'i'm'i't''''''''''''''''''''y'e'n'r'u'o'j''''o't's' 's'i'h't' 'n'i' 'p'e't's''p'o' 'e'r''''''''''e'r' 'e'h't' 'e'r'a' 'r'O' '?'y'r'a'd'n'u'o'b''''''''''y'r'a'n'u'o'b''''''''''''''''''''' 'n''''d'''o'i't'a't'n'e'm'e'l'p'm'i'i' 'M'S'A'W' '/' 't'p'i'r'c's'a'v'a'j' 'e'h't' 't'i' 's'I' '.'r'e't's'a'f' 'x'3' 's'i' 'n'o'd' 'I''''''''''''''''''''''''''''''e'd'o'c' 's'i'h't' 'f'o' 'n'o'i's'r'e'v' 't's'u'r' 'e'h'T''''''''' 't'''n'o'd' 'I' ''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'e'b' 'l'l'i'w' 'e'g'n'a'h'c' 'y'''''''''s'i'h''''''' '''''g'n'' 'i's'''m'''I't'''''''''''''''''''''''d'e't'u'b'i'''''''''''''''s'e'g'n'a'h'c' 'e's'o'h't' 'r't's'i'd' 'e'b' 'd'l'u'o'h's' '''''t'''''s'e'h't' 'f'o' 'l'l'a'l'n'o'''''''''''''''''''''''''''''''''''''''' 'e'm'a's' 'e'h't' 'k'o'o'l' 'o't' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 't's'u'r' 'e'h't' 't'c'e'p'''''''''''''r'''The fac'''''t'a'h't' 't automer''ge-rs isn't any faster than automerge gives me some confidence that i'''''''''''''' '''y'l't's''.'''e'''''n'''o'h' 't'u'B' 'ts not just rust.'n'e'z'i'm'i't'p''''''T'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'u'r' 't's'u'j' 't'o'n' 's't'i' 't'a'h't' ''.'')'e'c'n'e'd'i'f'n'o'c' 'e'm'o's' 'e'm' 's'e'v'i'g' 'e'g'r'e'm'o't'u'a' 'n'a'h't' 'r'e't's'a'f' 'y'n'a' 't'''n'''''''''''''''''''w'o'l''''o's' 'y't't'e'r'p' 'l'l'i't's' 's'i' 's'r'-'e'g'r'e'm'o't'u'a' 't'c'a'f' 'e'h't' ''''' 'f'i' 'h'g'u'o'h'T'(' 'o' 's'''x'e' 'I'''''''''''''''''''r' 'e'h't' 't'c'e'p'x'e' 'I' 't'u'B' 'the whole document. '07.67335132936387L164.72''1'Even through webassembly, this code'877911139''''''<'''''''''''''s'u'o'i'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'n'e'm'u'c'o'd' 'e'l'o'h'w' 'e'h't' 's's'o'r'c'a''''''''''r'e't't'a'm' 'o'n' 't's'a'f' 'y'l'm'r'o'f'i'n'u' 's'i'''''''s'a'f' 'i's' 'm'e't's'y's' 's'i'h't' '-' 'n'e'p'p'a'h' 's't'r'e's'n'i' 'e'r'e'h'w' 'e'r'a'c' 't'''n'o'd' 'e'W' ''''''''''''''''''''''''''''''''''y'l't'h'g'i't' '' 'o's''''p'''''''''''''' ','n'i' 'd'e'k'c'a'p' 's'i' 'y'r'o'm'e'm' 'e's'u'a'c'e'b' 'd'n'A'e't's'y'm' 'img src'''''''''!''3'''f'r'''e'p'_'f'e'r'=automerge1.drawio.svg>'n''''''''''''''''f'i' 's'i'h'''n'o'''t' 'e'e'''''''''''''''''''''''''''''''a'e'd'i' 'o'n' 'e'v''.'a'h' ''''''''''''' 'e'h't' 'f'o' '''''''''''''''''''''''''''''''''?'r'o't'a'c'o'l'l'a' 'e'h't' 'e'b'y'a'M' ''''''''''''''''''''''''''e'c'a'l'p' 'e''''''''''y'l's'u'o'i'v'b'o' ''h''''''''''''''''''''t'h'g'i'r' 'e'h't' 'n''o't' 'd'n'a' 'p'u'''''''''.'s'd'r'a'w'p'u'''t' 'r'e'v'o' 'l'l'a' 'd'e'n'e'p'p'a'h' 's't'r'e's'n'i'''''''''' 's'''n''''e'r'a' ''i't'r'a'M'''''''n'i't'r'a'm''''''' 'e'h't''''''''''''e'r'a' 's't'r'e's'n'''i''''t'r'a'p' 's't'd'r'c'-''''r'' '''e'''''''''''' 's'i'''''''''''''''''''''''''''''''''''''''''''n'e'h'w' ''''''''''''''''''''''''''''''''''''''d' 'e'h't' 'h'u'g'o'h'r't' 'k'c'a'b' 'g'n'i'm'o'c' 'n'i't'r'a'M'''''''' 'n'i't'r'a'm' 's'a'w' 'd'n'e' ''''e'e'h't' 't'a' 'n'o'i't'c'e's' 'e'h't' 'e'm'u's's'a' 'I' ''h't' 'g'n'i'r'u'd''c'n'e'r'e'f'e'r''s' 'n'a'c' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'a'e'n'i'l'''''''''''''''''''''''''''''.'*'t'h'g'i'r' 'e'h't' 'o't' 'd'n'a' 'p'u'*' 'd'n'e'r't' 'g'n'o'r't's' 'a' 's'''e'r'''''''''''''s' 'e'''''''''''e''''''''''''''''''''''a' 's' 'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't''''' 'u'o'y' 't'u'b' ','e'c'a'r't' 's'i'h't' 'g'n'i'r'u'd' '''''''''''''''''''''''''''''''''''''' 'y'a'r'r'a' 'n'a' 'n'i' 's't'n'e'm'e'l'e' 'g'n'i'l''''i'f'f'u'h's' 'd'n'a' ','e'c'a'l'p' 'e'h't' 'r'e'v'o' 'l'l'a' 's'e'v'o'm' 'r'o's'r'u'c' 't'r'e's'n'i' 'e'h't' 'e's'u'a'c'e'b' 'e'r'e'h' 'n'o' 'g'n'i'o'g' 't'o'l' 'a' 's'''e'r'e'h'T' ''''''''''''''''''g'v's'.'3'f'r'e'p'_'f'e'r' '>'n'n''''''''''''''''''''''i't' 'f'o' 't'n'u'o'm'a' 'e'h'T' ''''''''''h'T' '.'u'o'Y'''''''''''''''''''''''''''''''''''e'v'o'b'a' 'm'a'r'g'a'i'd' 'e'h't' 'n'o' 'n'i' 'm'o'o'z''''s' 'e'w' 'f'I'''''''' 'n'a'c' 'e'W'''5,312.81199444924806L167.03154231690135,312.0217097908432L169.3412067226632,319.40058767560174L171.65087112842502,303.290438'''''''''''''''''''''n'o'i't'a'm'r'o'f'n'i' 'e'm'a's' 'e'h't' '2256132L173.96053553418687,306.0601856298547L176.27019993994872,323.22592646787865L178.57986434571058,338.4754829397754L180.8895287514724,324.0422604860777L183.19919315723425,311.7291642678771L185.5088575629961,317.5852446235697L187.81852196875795,325.754799163999L190.1281863745198,273.2218301538354L192.43785078028165,307.0379464344723L194.74751518604347,308.3675182314111L197.0571795918053,305.8125952144778L199.36684399756714,315.50578542817016L201.676508403329,310.0300645885391L203.98617280909085'''''''''''''''' 'g'n'i't'l'u's'e'r' 'e'h't',304.62440782643097L206.29583721485267,302.907305923881L208.60550162061452,300.7181531616053L210.91516602637637,309.3549651114627L213.224')'83043213822,334.8545623'''('09457L215.53449']'483790007,256.6'['764747401852L217.8441592436619,306.02416966122115L220.1538236494237,310.3887761981957L2'!'22.46348805518556,303.43580943104564L224.77315246094741,297.79652458815247L227.08281686670927,300.0300648629319L229.39248127247112,331.8233899414033L231.70214567823297,308.30299991729026L234.01181008399482,294.57287976030636L236.32147448975667,306.4273207234548L238.63113889551846,250.2423452782171L240.9408033012803,299.7219722136838L243.25046770704216,310.1519343708049L245.560132112804,298.3395931638715L247.86979651856586,296.983'''Kevin says he wro'''n'te and rewrote parts of yjs 12 times in order to make this code run so fast. If there was a programmer version'' of the speedrunning community, they would adore Kevin' '.'9'''''''''''n'e'v'e' '028824633L250.17946092432769,294.8186880886822L252.48912533008954,315.4'I'''002676011884L254.7987897358514,328.7540567058032L257.10845414161327,296.1958934037708L259.41811854737506,285.17''''''''''''''''''''''''''''''''s'w'o'r'g' 't'n'e'm'u'c'o'd' 'e'h't' 's'a' ',''''''''''''''''''''''''''''''''n'[''o'''''''''''https://observablehq.com/@josephg/crdt-algorithm-performance-benchmark''.')'s'(']''''''''''''''''''''' 's'''Q'H'e'l'b'a'v'r'e's''''j'b'O' 'g'n'i's'u' 'e'd'a'm' 'e'r'e'w' 's't'r'a'h'c' 'e'h'T'''''''''''''''''''''''''''''''' 'g'n'i''''s't'r'a'h'c' 'e'h't' 'h't'i'w' 'y'a'l'p' 'n'a'c' 'u'o'Y'n'n'''''''n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''' ':'s'i''''*'''''n'e'v'''*''e' '' 'n'o'i't's'e'u'q' 'l'a'e'r' 'e'h'T'a'e'd'i' 'o'n''any'''u'm''''''''a'e'''''''''''''e'r'e'h' 'd'e'g'a'n'a'm'd'i' 'n'o' 'e'v'a'h' 'I' '?''''' 'f'o' 's'k'n'u'h'c' 's'e't'e'l'e'd' 'r'e's'u' 'e'h't' 'n'e'h'w' 'r'O' '?'t'n'e'm'u'c'o'd' 'e'h't'n'' 'd'' '''n'u'o'r'a'''''''''''y'a'w' 'g'n'o'l' 'a' 'r'o's'r'u'c' 'r'i'e'h't' 's'e'v'o'm' 'r'e's'u' 'e'h't' 'n'e'h'w' 'n'e'p'p'a'h' 'y'e'''''''t'a'h't' 'e'b'y'a'M' '''''.'t's'a'f' 'o''''''''''''''''''''''''''''''''''''''''''''*''''''*''''''''''''''''''''''''''''''''''''''''''''''''i''' ','s'm'h't'i'r'o'g'l'a'''''''''''''''''''''''':'o't' 'd'e'e'n' 't's'u'j' 'd'l'u'o'w' 'u'o'Y' 'r'e'h't'o' 'e'h't' 'e'k'i'l'n'U''I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''still ''''''''C'''''''''''''''''d'r'i'e'w'''''''''!'s'u'o'i'r'''n'>'''u'c' 'y't't'e'r'p'''''''''''''.'d'r'i'e'w' 't'i'b' 'a' ''''''' 'a'l'l'i't's' 's't'i' 't'u'b' ','s'm'r'e't' 'e't'u'l'o's'b'a' 'n'i' 'l'l'a'm's' 'y't't'e'r'p' 'e'''''''''''''''''''e'v'a'h' 'n'a'c' '''''''''''''d'r'i'e'w' ''''''''''''s'm'e'l'b'o'r'p'''''''''[''''''''''''s'e'i'l'a'm'o'n'a'''''''o'n''''''''''''''s'm'e't'i''s'e'i'l'o'm'''''''''''''e'd'o'c' 'y'm' 'e'k'a'm' '''' 'r'o''''g'n'i'''f'''''''o'n'a'''''''s'''''''s'a''n'''''''''''''''''''''''''''''''''''''''''''''g'n'i'h't' 'g'''' 'n'o'r'w' 'e'h't' 'e'r'u's'a'e'm' 's'k'r'a'm'h'c'n'e'b''''''''''''' 'e'c'n'a''''''''''''''''''''g'n'i'r'u's'a'e'm' 'm''''''A' ''''m' '''I' 'd'n'A' '.'m'r'o'f'r'e'p' 'r'u'o'Y'''''''''''''https://www.cl.cam.ac.u''''''''''''''''.'''' '''' 't'x'e''''O''' '.'''t''''' '''g'n'i'd'n'e'p'e'r'p'k/~arb33/'''p'papers/KleppmannEtAl-InterleavingAnomalies-PaPoC20''''''''''''''''''''''''''''''''''''''''''''''''''y'd'''a'e'r'l'a' ''.'')'l'l'e'w' 't'a'h't' 's''''''''''n'c'a''''' 's'e'o'd''m'r'''o'f'r'e'p' 'y'l'l'a'u's'u'''''''''''''y'l'l''''' 's'e'o'd''a'c'i'''s'a'b' 's'i' 'e'g'''''''''''''''''''''''''''s'e'k'a't' 't'i' '''''''d'e'r'o't's' ''e'm'i't' 'h'c'u'm' 'w'o'H'r'e'm'o't'u'a' 'd'n'A'(' '19.pd')'f'(']''''''''g'n'i'x'i'f'''''''''''e'r'p' 'n'e'h'w'''''''''' 'n'i'''''''h't' ''''''''''''''''g'n'i'x'i'f'e'r'p' 'n'e'h'w' 'm'e'l'b'o'r'p' 'g'n'i'v'a'e'l'r'e't'n'i' 'n'a''''''''''''''''''''''''''''''''''''''''''e'm'o's' 'n'i' 's'c'i't'n'a'm'e's' 'g'n'i'r'e'd'r'o' 'e's'r'o'w' 'y'l't'h'g'i'l's' 's'a'h' 'A'G'R' 'd'n'A' '''''''''' 'd'n'A' '''' '''''''''''''''' 'd'n'A' ''r'''y'e'h''''' 'r'a'v'''''''''t'n'e't'n'o'c''''''' '=' 'm'e't'i'T' '.'h'g'u'o'h'':'''t''''''''''u'o'h' '''''''''''''''''''''''' 's'i''''''''''''''''''''s'i'h't' 'e'k'i'l' 's's'e'm' 'a' '''5' ';'''''''''''''' 's'i' 'e'r'e'h''''''''''''''''''''g'v's'.'o'i'w'a'r'd'.'g'a'r'f'-'m'e'm' 'e'l'a'c's' 'e'h't' ','r'e'b'm'e'm'e'r' 't'u'B' '.' '''''''''''''''''''''t's'e't' 's'i'h't' 'n'i' '''''''''''''''''''''''''''''''''''''e'm')''i't' 'r'e'v'o' 'r'e'w'o'l'''s' '(''t'e'g' 't'''n's'']'e'o'''''''s'e'd' '[''t'i' 'd'n'a' ','''''':'t's'a'f' 's'y'a'''I have no idea what those spikes are. Remember, the''''''!''''''''''''''''''''''''''''''''''''''''''''''''' '''e'h't' ','r'e'b'm''''''''''''''''''y't'i'n'u'm'm'o'c' 'a' 's'a' ''n'e'm'e'R'''' '''''''''' '''''''''''''''''''''''''''''''''' 'm'o'r'f' 'e'b' 't'h'g'i'm' 't'i' 's'k'n'i'h't' 'n'i'v'e'K' '.'''' 'e'r'a' 's'e'k'i'p's' 'e's'o'h't' ''''t'a'h'w' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I' 'h'g'u'o'h'T'('n''n'w'l'a' 't's'o'm'l'a' 's't'I' '.'e'c'n'a'm'r'o'f'r'e'p' 't'a'l'f' 'y'l'''t's'o'm' 's'a'h'''''''''''''''''''''''''''''e'm'i't' 't'n'a't's'n'o'c' 's'e'k'a't'''''''''s''''''''''''''''''''''''''''''''''''''''r'o''''''''''''''''''''''''''''''''''''''''''''g'v's'.'5'f'r''''f'e'p'_'s'j'y''''0.0000.0020.004'vg>'n''t'I' ''''''''''''l' 'l'u'''''''''''''''''''''''''''''''''''''''''''.')'e''''''''t'''n's'i'''''''' 'l'l'i'w''''''''t'''n's'i' '8'V''r'e'h' 'p'''''''''''' 's't'i' 'e's'u'a'c'e'B''l'e'''''h' 'd'l'u'o'w' 'g'n'i'n'i'l'n'i'''''''''''u'o'w' 'g'n'i'l'n'i' ''''''' 'i'g'n'i'r't's' 'l'l'a'm'S'(' ''' '''''''''''''''''''''.'c'i'g'a'm' 't'o'n' 's't'i' 't'u'B' '.'''' 'f'w'a' 'n'''''''''''''''s'k'c'i'r't'''''''''''''''''g'v's'.'o'i'w'a'r'd'.'e'e'r't'b' 'f'o' 't'o'l' 'a' 's'a'h'''''''a' 's'e'o'd'''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i'n'i'l'n'i' 'g'n'i'r't's' 'l'l'a'm's' '-' 'e'r'e'h' 't'o'l' 'a' 's'p'l'e''''''''''''''''''''''e'c'a'r't' 'g'n'i't'i'd'e' 's'''''''''h'c'i'h'w' '''n'i't'r'a'M''h'''''''' 's'e'o'd' 'r'e'z'i'm'i't'p'o' '8'V'''''''8'v' 'e'h'T' ''c'u'm' '='0.1'>0.0060.008']'0.0100.0120.0140.016_ avg time per txn (ms)050,000'.svg>'n'ate(271.46644057618425,0)'>'_perf4.svg>'n''a' 'k'c'a'r't' 'o't' 'r'o't'c'e'l'l'o'c' 'e'g'a'b'r'a''''''''''b'a'r'g' 'a' 'd'e'e'n' 't'''n's'e'o'd' 't's'u'R''''''''''t's'u'r' 'm'o'r'F''''''''' 'e's'u'a'c'e'B' '.'r'e't't'u'b' 's'a' 'h't'o'o'm's' 'o's'l'a' 's'i' 'e'c'n'a'm'r'o'f'r'e'P''''''''''''''''''''''''''''''''' '*' '''''nWe can''''''''''''''n'o' 'g'n'i'h't'y'r'e'v'e' ''' put a lot of this stuff on '''''t'r'a'h'c'one graph if I use a log scale. Its remarkable how neat it looks, but log scales are meaningless to humans.nn> all_perf.svg'n''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''We '''e's'u'can put a lot of this stu'''''''''''''''''s'k'o'o'l' 't'i' '''''''''''''''''s'''''''''''''''f'I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'u'j' 'e'r'a' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 't's'u'r' 'e'h't'''' 'y'm' 'd'n'a' 's'j'y' ','e'l'a'c's' 'r'a'e'n'i'l' 'l'a'm'r'o'n' 'a' 'e's'u' 'I' 'f'I''n'n'''t'i' '''''''''''''''''''''''''s'i'h't' 'e'k'i'l' 'p'u' 'k'c'a't's' 'y'e'h't' 'y'l't'a'e'n' 'w'o'h' 'e'l'b'a'k'r'a'm'e'r'''''''' '''' 'y'l'l'a'e'r'ff on one graph if I give it a log scale. Its prett'''''''''''''''''''''''''''''''''''''''''''.'s'n'a'm'u'h' 'o't' 's's'e'l'g'n'i'n'a'e'm''''''''''''''''''g'n'i'n'a'e'm' 'y'l's'u'o'i'r'e's' 'e'r'a' 's'e'l'a'c's' 'g'o'l' 't'''''''l'g'u'b'''''o'b'o'n''''''t'u'b' ','''''''''''''''y't't'e'r'p''!' 'd'n'A' '.'y meaningles''s, bu''''''''''''''''''''''''''s'e'r'u't'a'e'f' 'e'm'o's' 'e'e's' 'n'a'c' 'u'o'y' 't'''''''''''''''g'v's'.'f'r'e'p'_'l'l'a' '>'n'''We''I''We can put a lot of this stuff on o'''''''''''''''t'i' 'e'v'i'''''''''''''''''''''''''''''''''''''' 'u'o' 't'u'b' ','s's'e'l'g'n'i'n'a'e'm' 'y't't'e'r'p'''''''e'r' 's't'I' ''g' 'I''''''''''''''''''''.''''''''''''''''''''''''''''n'i'm' 'y't't'e'r'p' 's't'i' 'h'g'u'o'h't' ','e'l'a'c's' 'g'o'l' 'a' 's'a'h''''a' 't'i' 'f'i' 'ne graph, but i'''''''''' 'I' 'f'I'''''''''''''''''''''''''''''''''''''''''''''''''''i' 't'u'b' ','h'p'a'r'g' 'e'n'o' 'n'o' 'f'f'u't's' 's'i'h't' 'f'o' 't'o'l' 'a''''''''e'h't' 'l'l'a' 't'u'p' 'n'a'c' 'e'W'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''w''''''''''''''''''g'v's'.'6'f'r'e'p'_'t's'u'r' '>'n'n''o'n'k' 't'''n'd'l'u'o'w'''''''''''''''''''''''''''''''''''''''''''''''.'a't'a'd' 'k'r'a'm'h'c''''''''''m'c'h'n'e'''''''e'n'b' 'e''''''''''b'e' 'h't' 'n'i' 'l'l'e't' 't'''n'a'c' 'y'l't's'e'n'o'h''''c' 'u'o'y'''''''''' 't'i' ','e'h'c'a'c' 'U'P'C' 'n'i' 's't'i'f' 'g'n'i'h't' 'e'l'o'h'w' 'e'h't' 'e's'u'a'c'e'b'''''''c'e'''''''''''''''''''''t's'a'f' 's't'i' ','y't'i'l'a'e'r' 'n'i' 't'u'B' '.'s'w'o'r'g' 't'n'e'm'u'c'o'd' 'r'u'o' 's'a' 'r'e'w'o'l's' 'y'l'l'a'u'd'a'r'g' 't'e'g'''''''' 'y'l'w'o'l's' 's't'r'e's'n'I''''''''''''''''''' 's'e'k'a't''*''''''*'''' 'd'l'u'o'h's' 't'r'e's'n'i' 'h'c'a'E''''''' 'h'c'a'e'T' '.'n''''''')'n' 'g'o'l'('O' 's'i' 's'i'h't' 'y'l'l'a'c'i'n'h''''''''''i'h'n'c'e''''h'T'n''n'0.71em'>100,000150,000200,000250,000txns _yjs' '>'n'n':''''.'d'n'e' 'e'h't' 't'a' 'd'n'a' 't's'e't' 'e'h't' 'f'o' 't'r'a't's' 'e'h't' 't'a' 'l'l'e'w' 's'a' 't's'u'j' 'g'n'i'm'r'o'f'r'e'p''''''''''''t'a'l'f'''''''''''''''''''''''''''''''y'n'a' 'r'o'f' 'e'c'n'a'm'r'o'f'r'e'p' 't'n'a't's'n'o'c'''''''''''''r'e'p' 't'a'n't's'n'o'c'''''''' 'r'a'e'n'i'l' 'g'n'i'v'a'h' ')'y'l't's'o'm'('''''''m'(' 't'i' 'e'e's' 'n'a'c' 'u'o'y' ','s'j'y' 'e't'a'l'o's'i' 'e'w' 'f'i' 't'u'B'n''n''s' 's't'i' 'e's'u'a'c'e'b' 's'm'h't'i'r'''''''r'i'o'g'l'a' 'r'e'h't'o' 'e'h't' 's'a' 'e'l'a'c's' 'e'm'a's' 'e'h't' 'n'o' 's'j'y' 't'u'p' 'y'l'l'a'e'r' 't'''n'a'c' 'I'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'a' 'e'l'a'c's' 'e'm'a's' 'e'h't' 'n'o' 't'i' 't'u'p' 'e'w' 'f'i' 's'j'y' 't'u'o'b'a' 'g'n'i'h't'y'n'a' 'l'l'e't' 'y'l'l'a'e'r' 't'''n'a'c' 'u'o'Y'''''''''''''''''''''''''''''''' 'e'h't' 't'a' 'e'n'i'l' 'a' 'y'l'l'a'c'i's'a'b''''a' 's'i' 's'j'Y'''''''''''''''''''''''''''''''''''''''' 's't'e'g' 'n'o'i't'a't'n'e'm'e'l'p'm'i'''''''''''''n'o'i't'n'e'e'm'l'p'm'i' 's't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'y'M'n'n''''''''''''''''''g'v's'.'4''''3'f'r'e'p'_'s'j'y' '>'n'n'52623706938L261.7277829531369,223.7808467136446L264.0374473588987,293.1937300104379L266.3471117646606,289.9869132376882L268.65677617042246,291.6462404722998L270.96644057618425,289.42647291779764L273.27610498194616,288.73305852091545L275.58576938770796,285.40769612092686L277.8954337934698,211.52907397574947L280.20509819923166,296.8787805094819L282.5147626049935,282.295329170959L284.82442701075536,280.7163715275385L287.1340914165172,272.5731189417396L289.443755822279,275.0129783224233L291.75342022804085,276.9126581770053L294.0630846338027,189.08334506829772L296.37274903956455,269.75095167386496L298.6824134453264,267.29315698612555L300.9920778510882,265.8590805276817L303.30174225685005,264.501607487239L305.6114066626119,269.3548107729358L307.92107106837375,268.8816247241124L310.23073547413566,202.03719512981164L312.54039987989745,283.08538581221364L314.8500642856593,286.0625855919234L317.15972869142115,285.31391182056876L319.469393097183,283.6213318017489L321.7790575029448,191.616563149324L324.0887219087067,279.98515686757565L326.3983863144685,289.1524945249947L328.70805072023035,263.5754665180542L331.0177151259922,266.8788627463574L333.32737953175405,255.23313406131842L335.6370439375159,153.86730210866077L337.9467083432777,301.99399449969684L340.2563727490396,290.8151097199587L342.5660371548014,271.37666532881445L344.8757015605633,243.9075814030077L347.1853659663251,247.42484492269904L349.49503037208694,143.05820126289254L351.80469477784874,241.84426073806134L354.1143591836106,239.0242903080998L356.4240235893725,292.0706584851939L358.7336879951343,320.2314768731976L361.04335240089614,320.6956649302387L363.353016806658,320.0829015220471L365.66268121241984,321.2679022376054L367.9723456181817,322.1500064081641L370.2820100239436,279.7812966036057L372.59167442970534,150.62350929459564L374.90133883546713,257.0801537460953L377.21100324122904,255.46705246774198L379.5206676469909,248.08051474050524L381.83033205275274,318.5028032163361L384.1399964585146,276.7833899801005L386.44966086427644,152.70123680729728L388.75932527003823,256.6348536760652L391.06898967580014,245.0570589547315L393.378654081562,270.61816627165695L395.6883184873238,291.8337743186176L397.99798289308563,280.8975785923264L400.3076472988474,253.8488537800058L402.61731170460934,147.2092245933975L404.92697611037113,267.5180237332205L407.23664051613304,269.12887056904947L409.54630492189483,263.69664792804076L411.8559693276567,261.98689326829947L414.16563373341853,139.71486284935736L416.4752981391804,261.370087858105L418.78496254494223,255.87257318100725L421.0946269507041,251.42154830828582L423.40429135646593,131.12237322332066L425.7139557622277,249.9432022329065L428.02362016798963,256.1754197061827L430.3332845737514,254.50504213301897L432.64294897951333,146.26343237985773L434.9526133852751,315.7184830632591L437.2622777910369,302.10868524317397L439.57194219679883,255.69386672151452L441.8816066025606,256.41916570277965L444.19127100832253,248.13793562231044L446.5009354140843,114.02454935610312L448.8105998198462,287.79113971980667L451.120264225608,312.85080038886963L453.42992863136993,247.3359109086496L455.7395930371317,243.34848556827768L458.04925744289346,257.7248076918354L460.35892184865537,119.47206998493448L462.6685862544172,265.91938940330715L464.97825066017907,242.72561048392126L467.2879150659409,282.8106164159161L469.5975794717028,107.43905265210508L471.90724387746457,262.2833716323476L474.2169082832265,252.86015026091383L476.5265726889883,269.4731244463173L478.8362370947501,233.83269544419872L481.14590150051197,100.98776160576477L483.45556590627376,244.24007151106983L485.76523031203567,301.8079308123864L488.07489471779746,92.276266478406L490.38455912355937,244.46197624194338L492.6942235293212,310.48604681001416L495.003887935083,312.8078811147665L497.31355234084486,313.28568309617674L499.6232167466067,314.5272652056339L501.93288115236857,314.03204683685385L504.2425455581304,314.7672865055629L506.55220996389227,314.0681960634063L508.86187436965406,314.9782533216905L511.17153877541597,278.2343911738366L513.4812031811778,103.58778921321984L515.7908675869396,256.7088159354081L518.1005319927015,252.40193097464996L520.4101963984633,310.27312490170635L522.7198608042252,313.89856161738174L525.029525209987,117.09933023463333L527.3391896157488,250.46510226563396L529.6488540215107,252.63180133148424L531.9585184272726,281.29381511586587L534.2681828330344,97.4889116048936L536.5778472387963,254.0046295795242L538.887511644558,268.9243289417631L541.1971760503199,236.43463906860703L543.5068404560817,243.32870538611743L545.8165048618436,84.21007881810141L548.1261692676054,248.48442243559901L550.4358336733673,235.82050822847495L552.7454980791291,250.43728877275638L555.055162484891,81.18646414056792L557.3648268906528,257.0717637683346L559.6744912964147,253.72565890605804L561.9841557021764,249.73066156932813L564.2938201079384,254.28819573630133L566.6034845137001,78.48691944732096L568.9131489194621,224.2537264993702L571.2228133252238,239.2663311199341L573.5324777309856,232.68035053927576L575.8421421367475,69.11175796229507L578.1518065425093,250.54871478950017L580.4614709482713,267.08943890964383L582.771135354033,249.6621817083864L585.0807997597949,47.52002115006532L587.3904641655568,217.37818785303227L589.7001285713186,203.3479695705606L592.0097929770805,60.56641231392514L594.3194573828423,232.57566269516408L596.629121788604,228.98581452406694L598.938786194366,214.00566179434387L601.2484506001277,100.80896576366655L603.5581150058896,203.38959245872059L605.8677794116514,260.22470453529644L608.1774438174134,282.70516752262176L610.4871082231753,20L612.796772628937,219.03020807171086L615.106437034699,238.11778445410738L617.4161014404607,58.48072724002276L619.7257658462227,291.5684325466767L622.0354302519844,306.4843494155757L624.3450946577461,297.73916524730816L626.6547590635081,260.0212592150145L628.9644234692698,209.87775537831772L631.2740878750318,29.030959931952616L633.5837522807935,287.9655590713959L635.8934166865554,262.31117053219054L638.2030810923173,271.11027026144575L640,274.7612139915496'>'n'n'e'g'r'e'm'o't'u'a' 'f'o' 't'r'a'h'c' 'a' 's'i' 's'i'h'T''''''''''''e'g'r'e'm'o't'u'A'''''''''''''''''''''''''''''''' 's'''e'g'r'e'm'o't'u'a' 'f'o' 't'r'a'h'c' 'a' 's'i' 's'i'h'T'''''''e'W'n': 102px;'>
b
b
c
c
(root)
(root)
Viewer does not support full SVG 1.1'''h't' '''''''''''''''''''d'e'b'i'r'c's'e'd' 'h'c'i'h''''''''s'm'e't's'y's'w''''h' 'd'''''''I' 'd'''d'e'''n'''''A' '.''''''n'''''a' ','s'c''''s'i't'n'a'm'e's' 'e'm'a's' 'e'h't' 'k'o'o't''''o'''n'a'r'' 'I''''''''''''''th''' academi''' literatur'''''''''''''c'i'm'e'd'a'c'a' 'n' 'e'c'e''''The Literature ''''''''''''''''''''''''''''''''' 'e'r'u't'a'r'e't'i'l' 'c'i'm'e'd'a'c'a' 'e'h't'''''''''''''''''' 'e'r'u't'a'r'e't'i'L' 'e'h'T' 'n'i'''''''''''''''''''''' 'e'h'T'n' 'i'''' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''e'c'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''e'm'i't' 't'a'h't' 'd'n'u'o'r'a' 'e'r'e'h'w'e'm'o's'''''''''''''''''''''''''''''''''s'a'w' '''''''''''''''''''''''''''-''W'-'-'n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'l'a't'o't' 'e'v'a''.'I''''h' 'd'l'u'o'''''''''''''''''''''''''''''''''r'e'''''''''''''''''''t's'a'f' 's'T'D'R'C' 'g'n'i'k'a'M' '#''p'a'p' 'e''''''''''p' 'a'h't' 'g'n'i'd'a'e'r' 't's'u'j' 'm'o'r'f' ''''''u'i'o'w' ''''''''''''''''''''''''''''n'''''''''''''''''''''''''''''''''''''''''''''''f'o''' 'e'r'u't'u'f' 'e'h't' ''''''''''''''''''''''''''' 't''''''r'e'v'e'n' ''''''u'b' ','s't's'e'g'g'u's'''''''t'n'a'c'''''''''''''''''''''''''''''''''''''''''''' 'c'i'm'e'd'a'c'a'''''''''''d'n'a' 's'r'e'p'a'p' 'g'n'i'd'a'e'r' '''''''''''''''''''''''''''''''''''''''''''''!'s's'e'n'd'a'M' '?'r'e't'c'a'r'a'h'c' 'y'r'e'v'e' 'r'o'f''''a' 'D'I'U'G' 'A' '.'''d'''e'p'''' 'p'o't's' '''''''''''''''''' ','m'e'h't' 'd'e's's'i'm's'i'd''''''''''d'e'm'u's's'a' 'I' ''''''''r'e'''''''''''''''''''''''''''''''t'''n'e'm'e'l'p'm'i'' 'o't' 'y'a'w' 't's'e'b' 'e'h't''''''''''''''''e's'o'h't' 'e'k'a'm' 'o't' 'w'o'h' ''v'e'n' ''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'w'o'l's' 'e'b' 's'y'a'w'l'a' 'l'l'i'w' 'm'e't's'y's' 'e'h't' 'e'v'o'r'p' 't'''n'a'c' 't'u'b' ','s't's'e'g'g'u's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'v'o'r'p' 'y'l'n'o' 't'i' 't'u'b'''''''''' 't'u' '-' 'w'o'''l'''s' 's'i' 'm'e't's'y's''''''''''s'c'i't'n'a'm'e's' 'e'h't' 's't's'e'g'g''''''''''''''''''''''''''' '''''''d'a'h' 'e'b'y'a'm' '-' 'e's'r'o'w' 's't'i' 'e'b'y'a'M'u''''a's''''p' 'n'o''''' 'e'''d'e'v'a'h''i't'a't'n'e'm'e'l'p'm'i' 'w'o'l's' 'a' 'd'n'A' '''''''''''''''''''''''''''''''''''''''''''''''''''''''l' 't'''n'e'r'a' 'u'o'y' 's'e'v'o'r'p' 't's'u'j' 't'I' '.'s'g'u'b' 'f'o' 'e'c'n'e's'b'a' 'e'h't' 'e'v'o'r'p' 't'''''''t't''''u'B' 'n's'e'o''''''''y'l'l'a'e'r' 'd' 'e't'i'u's' 't's'e't' 'g'n'''i's's'a'p' 'a''''''''''n'a' ' '-' 's't's'e't' 'e'k'i'l' 's't'i' 'e'b'y'a'M' ''o'i't'a't'n'e'm'e'l'p'm'i' 'w'o'l's' 'a' 'm'o'r'f' 'n'r'a'e'l' 'e'w' 'n'a'c''''s' 't'a'h'W''When our implementation ''runs slowl''y,'''''''''''' 'd'l'u'o'h's' 't'a'h'w''''''''''''''''''''''''''''g'n'i'h't'y'n'a' 's'u' 'h'c'a'e't' 't'a'h't' 's'e'o'd'''''''''''''''''''l'u'f'g'n'i'n'a'e'm' 't'a'h't' 's'i'''''''''''''''''''''?'n'a'e'm' 't'a'h'''''w''' 'd'n'A''t' 's'e'o'd' 't'a'h'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'v'l'o'v'n'i' 's'e'r'''''''''''.'s'c'i't'n'a'm'e's' 'e'h't' 't'u'o'b'a' 'g'n'i'h't'y'n'a' 'g'n'i'v'o'r'p' 'e'r'''e''''''''''r'e'h'w''''t' 'f'i' 'w'o'n'k' 't'''n'o'd' 'I'''''''''' 'e'w' what are we actually proving?''W''''''''''''''''''''''''''''''''''''''''''''''''''''''''?''''''w''' 't'u'B'I' 's'a'w' 'o'h'w' ','t's'a'f' 'm'e'h't' 'e'k'a'm' 't'''n'd'l'u'o'c' 'm'e'h't' 'd'e't'n'e'v'n'i' 'o'h'w'''''''''' 'd'e'v'l'o'v'n'i' 's'r'e'h'c'r'a'e's'e'r' 'e'h't' 'f'I' '.'r'e'h't'e'g'o't'l'a' 's'T'D'R'C' 'd'e's's'i'm's'i'd' 'I' ','n'e'h't' 'd'n'u'o'r'a' 't'n'''''''''''''''''''''''''''s''''y'l'?'''''''''s' 'n'u'r' 'n'o'i't'a't'''''e'v''''n'e'm'e''''' 'd'l'o'l'p'm'i' 'r'u'o''''''i''''''''y'a's'''n'a''''''''''t'a'h't' 'w'o'h'''' 's'o'p' 'e'''s'i'm'o's' 't'a' ',''''''''''''''''''''''''''''''''''''''' 's'n'u'r''''''''''''''''''''''''''''''''''''''''''''' 'e'c'n'e't'''''''''''''''''''''''''''''''''''''t'a'h't' 'o'd' 'e'w''''i' 'f'i'''''X'''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h't' 'd'a'e'h'r'e'v'o''''[' 'h'c'''''''''''''''''k'r'a'm'h'c'n'e'b' ''''https://gist.github.com/josephg/13efc1444660c07870fcbd0''b3e9''17638#file-js_baseline-js-L37-L4')'1'(']'u'm''''''''''''''''''''''''''''''''n'a'c' 'e''''' 's'i'h't'''''''''''''''''''j''' 't'u'o' 's'n'r'u't' '''*''t'*''I'''''''''''''''''''''''''''''''''''''''''''' 'a'r't'x'e''''''''''''''''e'k'a'm' 'o't''''''''''''''k'r'o'w' '''''''''automerge (v1.0.0-preview2)'*'''''''''''''''''''''''''''''''''''''''n'a'''J''''c't'i' 't'u'b' ','g'n'i't'i'd'e':'''' 'e'v'i't'a''''''''''t'i'a'r'o'b'a'l'l'o'c''''a' 'r'o'f' 'd'e'e'n' 'e'w' 'n'o'i't'a'm'r'o'''''''''''''a'm'o'r'f'n'i' 'e'h't' 'l'l'a' 'y'a'w'a' 's'w'o'r'h't'''''''''''''''''''t'''n'd'l'u'''''''''n'o'w' 'y'l's'u'o''''u'i'v'b'o' 's'i'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's''''''''''''''''''t'n'e't'n'o'c' 'e'h't' 'l'l'a' 'e''''.'''u'''j' 'e'w' ','k'r'o'w' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'e'k'a'm' 'o't' 'n'o'i't'a'm'r'o'f'n'i' 'a'r''''a't'x'e' 'e'h't' 'l'l'a''''''''''''' 'n'o'i't'a'm'r'o'f'n'i' 'g'n'i'r'o'''''''o'r't's' 'f'o' 'd'''' 'a'e't's'n'i''''''''k'r'a'm'h'c'n'e'b' '''' 'e'h't'''''' '''''e'''w' ','s'i' 't'a'h't' 't'n'''''''''''Automerge was just never written with performance in mind. Their team is working on a replacement [rust implementation of the algorithm](https://github.com/automerge/automerge-rs/) to run through wasm, but at the time of writing it hasn't landed y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'e't' 's'i'h't' ''''''''''''''''''''''''''''''.''''-'-'-''n'n'''']''e'd'o'c' 't'p'i'r'c's'a'v'a'j' 's'''e'g'r'e'm'o't'u'a''''''''''''''''''''''''''a'v'i'u'q'e' 't'p'i'r'c's'a'v'a'j' 'e'h't' 'n'o'''''''''''''''''''''''n'a'h't' 'r'e't's'a'f' 'y'l'e'r'a'b' 's't'i' '-' 't'u'o' 'k'r'o'w' 'o't' 's'k'n'i'k' 'e'm'o's' 'e'v'a'h' 'y'l's'u'o'i'v'b'o' 'y'e'h't' 't'u'b' ','g'n'i'k'r'o'w' 'h'c'n'a'r'b' 'r'e't's'a'm' 'e'h't' 't'o'g' 'I' '''et. On this test the rust co'''''''y'l'n'o' '''''''''''''''''''''''''''' 't'n'e'l'a'v'i'u'q'e''''''''''''''''''''''.'t'p'i'r'c's'a'v'a'j' 'e'h't' 'n'a'h't' 'r'e't's'a'''f'B'''' 'y'l'e'r'a''''r'b' 's'i'''de performs almost''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''['''''''''[''''''''''''''''''''''''''''V'''''8'''https://github.com/automerge/automerge-rs')'/'(']''v' 'n'o' 'g'n'''''''n'g'i'n'n'u'r' 't'p'i'r'c's'a'v'a'j'''''''''''''''''''''''''''''''''''''''''''''''''' 't's'o'm'l'a''''l' 's'm'r'o'f'r'e'p' 'e'd'o'c' 't's'u'r'''''e'd'o'c' 'e'h't' 't's'e't' 's'i'h't' 'n'O''' 'w'':'''a'r''.'''''''''''''''''e'd'o'c' 'e'h't' 'd'n'a' ',''''''''''''I'''''''''''''''''.'t's'a'f' 'y'r'e'v' 's'i' '''''''''t'p'i'r'c's'a'v'a'j' ','''' 'd'n'A''''''''''p'S'(' ''n'''.'e'd'o'c' 'r'u'o' 'l'l'a' 'h't'i'w' 'n'w'o'd' 'd'e'd'a'o'l' 't'''n's'a'w' 't'i' 'f'i' ','o'g' 'd'l'u'o'c' 't'p'i'r'c's'a'v'a'j' 't's'a'f' 'w'o'h' 'f'o' 'e's'n'''''''''' 'e's'''' 'e's' 'a' 's'u' 's'e'v'i'g' '''''''''''''''''''''''''''''''''t'p'i'r'c's'a'v'a'j''''h' 't's'a'f' 'w'o'h' 't'u'o'b'a' 's'w''''''''''s'w'''''''w'l'u'o'h's' 'h'c'i'h'w' ';''''e'i'c'i'f'f'e'n'i'''''t's'a'f' 'w'o'h' 'f'o' ''''''''(' '.'''e''''''T''''''''''''''''''''''''''''''''''''''''' 't'''n'a'c' 'y'l't'c'e'r'i'd' 'g'n'i'r't's' 'a' 'o't'n'i' 'g'n'i'c'i'l'p'S' ''s'n'e's' 'a' 't'e'g' 'o'T''''''''''''''e'n'i'l'e's'a'b' 'a' 's'A'''''''' 'n'a'c' 'e'W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'c''''''' 'o't'n'i''i'l'p's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a'c'i't'e''''i'r'o'e'h't' 'e'h't' 'e'b' 'd'l'u'o'h's' 'h'c'i'h'w' ',''.'g'n'i'r't's' 't'p'i'r'c's'a'v'a'j' 'a' 'o't' 'y'l't'c'e'r'i'd' 'd'e'i'l'p'p'a' 't's'u'j' 'e'r'a' 's't'i'd'e' 'e'h't' 'l'l'a' 'e'r'e'h'w' 'e'n'i'l'e's'a'b' 'a' 'o't' 'e'r'e'h' 't'i' 'g'n'i'r'a'p'm'o'c' 'm'''I'n''n'''''''''''''''''''''''''''It would b''''''''''''''' 'e'b'''''''''''g'n'i's'u'f'n'o'c' '''''''y'l'l'a'e'r''''''''''''''''.'g'n'o'r'w' 'r'e'p'u's' 'e'b' 'd'l'u'o'w' 't'a'h'T' 'e silly making a chart showing how text-ot is both fast and slow. Th''*'*'e difference is in the i'*'mp'*'lementation. An'''d thats true here too -'''''''''''''''''''''''''''''''''''''''''''''w'''''o'''''''''h't'o''''d'n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '-' 'o'o't' 'e'r'e'h' 'e'u'r't' 's't'a'h't' 'd'n'A' '.'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'h't' 'n'i' 's'i' 'e'c'n'e'r'e'f'f'i'd' 'e'h'T' '.'''' ''''b' 't'o''''t'-'h' 'g'n'i'w'o'h's' 't'r'a'h'c' 'a' 'g'n'i'k'a'm' 'y'l'l'i's' 'e'b' 'd'l'u'o'w' 't'I'''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''w'o'l's' '' ' ' 's'i' 't'x'e't'-'t'o' 'd'n'a' ','t's'a'f' 's'i' 't'x'e't'-'t'O''' 't'a'h't' 'f'o' 't'r'a'h'c' 'a' 'e'd'a'm' 'u'o'y' 'f'i' 't'u'B''''''''''a'm' 'u'o'y' 'f'I'n''n''''''''''''''''''''e'r'a' '''s'p'u''''''''''''''''''' ''''''''''''''''''''''' 'y'l't'n'e'r'e'h'n'i'''' ''''.'w'o'l's' 's'i' 'g'n'i'h't'e'm'o's' 'e'v' ''o' ''r'p' 't'''n'a'c' 'u'o'y'' 'd'e'e'p's'''''''''''''''''''''''''''' 't'u'b' ','e'l'b'i's's'o'p' 's'i' 'e'd'o'c' 't's'a'f''''' 'e'h't' 'e'v'o'r'p' 'n'a'c' 'u'o'y' '-' 'o'o't' 't'a'h't' 'e'k'i'l' 'l'e'e'f' 's'k'r'a'm'h'c'n'e'B''''P' '.'e'c'n'e's'b'a''W' 'r'i'e'h't' 't'o'n''''''''''''''''''''''''t'u'o'''':''''''''''''''''''''''''''''''''''''''''''''''s'a' 'p'u' 'd'n'e' 't'h'g'i'm' 't'n'e'm'u'c'o'd' 'e'h't' 'n'e'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''b' 'e'h't' 'e'r'o'f'e'b' 'o'g' '*'o't' 's'a'h'*' 'X' 'e'h't' 'e's'u'a'c'e'b' ',''''.'D'I' 'r'i'e'h't' 'n'o' 'd'e's''''e'a'b' 'm'e'h't' 't'r'o's' 't'''n''''''''''''''''''''''''''''''''''g'n'i'd'r'o'c'e'r' 'r'e't'c'a'r'a'h'c' 'y'b' 'r'e't'c'a'r'a'h'c''''''''''f'o' 'd'r'o'c'e'r''''''''''''''''''''''''''''' 'd'e's'a'b' 'e''''''''''''' 'd'''''''''''''''''''''''s'w'o'r'g' 't'n'e'm'u'c'o'd' 'e'h't' 's'a' 'n'a' 'g'i'b' 's't'e'g''e''''''g'u'h'r't' 'e'r'o'c''''''''''''''''''''.'w'o'l's''''l' 'o'o't' ''''''''''''' 't'''n'''''''''''''''''''''.'''w'o'l's' 's'i' 'e'r'u't'c'u'r't's' 'a't'a'd' 's'''''''''''''''' 'd'n'a' 's'e't'a'e'r'c'''''''''''''''''''''''''''''' 's't'c'e'j'b'o' 'y'n'a'm' 'o'o't'''''''t's' 's'e'r'o't's' 'e'g'r'e'm'o't'u'A' '' 'a''a'c' 'e'w' 'n'a'c' 's't's'e'T''Y''''''''''''''''''''' ''e'v'o'r'p'a'c'''' 'y'e'h'T''''g'n'i''''b'a''' 'g'n''''''''''''t'a'h't' 't'u'o'b'a' 'i'y'' 'a''''''''''''' 't'''n'a'c' 'u'o'Y' '.'''s'''''''''''''' '''' ''''''''''''' 'o't' 's'a'h''s''''''''''''''''''''''''.'w'o'l's' ''''''''''''''''''''''''''''''' 'f'o' 'n'o'i's'r'e'v' 'c'i'm'h't'i'r'o'g'l'a' 'e'h't' 's't'I''''''e'b' 's'y'a'w'l'a' '''l'''''''''''''''''''''''''''''''''''-' 'r'e't'a'l' 'f'o' 'e'r'o'm''''''''''''s'i' 'A'T'A'Y' '.' 'e'e's' '''l'l'''e'w' 'h'c'i'h'w' '-' '''''''''''''''''g'n'i'n'u't' '''''''''''''''''''''''''''''''n'u'r' 'r'e't'u'p'm'o'c' ''''''t'i' 'e'h't''''''''''''''''''''''''''h'c'i'h'w' 'A'T'A'Y' 'd'e'l'l'a'c' 'T'D'R'C' ''''''''''''r'a'r''''''''''y'l't'h'g'i'l's' 'b'i'l'''''''l'l'a'm's' ' 'a' 's't'n'e'm'e'l'p'm'i''''''''''''''''m'i'I'' 's'i' 'l'i'''''''''''''''automerge (v1.0.0-preview2)'''''''''m's'a'w' 'h'g'u'o'r'h't' 'n'u'r' 'o't' ''w' 'm'h't'''''RGA''a'''''''''''''''''''e'b' 'o'''''''o's' 'r'o' 't' 'd'e's'o'p'p'u's' '''a''''A'G'R' 'o'''''''''''''''''''''''''''''''t's'a'f' 't'''a'h't''''''-'-'-'n'n''' 'n'''''y''''' 'e'v'a'h''e'h't'u'r' 't'''n'd'i'd' 't'i''''d''''''','''''''''''''''' ''''''''''''''''''''''''''''''''e'l'b'a't' 's't'l'u's'e'r''''''' 'e'l'b'a't' 'y'm' 'o't' 'm'e'h't''''b' 'g'n'i'd'd'a'''''t'i'''''''''''''''''''''''''''e'l'b'a't' 'e'l't't'i'l' 'y'm' 'o't' 'm'e'h't' 'b' 'r'i'a'f' 'a'''''''''''''''''''''''''''''s't's'e't' 'y'm' 'n'i' 't'a'h't' 'n'a'h't' 'r'e'''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'e'h't' 'l'i't'n'u'''''''t'a' 's'k'r'a'm'h'c'n'e'b' 'g'n'i'd'd'a' 'n'o' 'f'f'o' 'd'l'o'h' 'l'l'''I' 'd'n'a' ';'''w'o'l's' 'n'a'r' 't'i'''''''''''''''''t'''n'd'l'u'o'c' 'I'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'a'h' 't'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e's'a'e'l'e'':'r' '''r'o'f' 'y'd'a''''''''''d'a'd'e'r' 's't'i' 'e'r'o'f'e'b' 't'u'o' 'k'r'o'w' 'o't' 's'k'n'i'k' 'e'm'o's' 'e'v'a'h' 'y'e'''''''n'i'h't' 't'c'e'p's'u's' 'I' '.'t'e'y' 't'i' 'g'n'i's'u' 't'n'e'm'e'v'o'r'p'm'i' 'h'c'u'm' 'g'n'i'e'e's' 't'o'n' 'm'''I''''''''''''''''' ''''' '''g'n'i''m''''t'n'e'm'o'm' 'e'h't' 't'a''''''''''''''''''''' 'r'a'l'i'm'i's' 'e'e's' 'I' 't'u'b' ',''''''''''''' 'e'h't' 'n'a'r' 'I' '.''t' ''i'r'o'g'l'a' 'n'a''''''''h't'i'w' '''''t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i's'r'e'v' 'S'J' 'e'h't' 's'a' 'e'm'a's' 'e'h't' 't's'o'm'l'a' 's'a'w' 't's'e't' 's'i'h't' 'n'i' 'e'c'n'a'm'r'o'f'r'e'p''''u'b' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 't'a'h't''''''''.''''''''''''''''''''''''' 'o's' '-' 'n'o'i's'r'e'v' 't'p'i'r'c's'a'v'a'j' 'e'h't' 'o't' 'e's'o'l'c' 'y'l'b'a'k'r'a'm'e'r''''''''''''''''''''''''''''''' 'o't' 'g'n'i'o'g' 'm'''I' '.'e'm'a's' 'e'h't''''h' 't's'o'm'l'a' 's'a'w' 'e'c'n'a'm'r''''o'f'r'e'p'''''''''''''''''''''' 'y'l'n'o''''''''''''''''r'e't's'a'f' 'y'l't'h'g'i'l's'''''''''''''g'i'l'g'''''''''''''f' 'y'l'e'r'a'b' 's'a'w' 't'i' 'd'n'a' 'k'r'a'm'h'c'n'e'b' 'y'l'r'a'e' 'n'a' 'n'a'r' 'I' '.''e'l'u'''r''' 'a' 's'''''e'r'e'h'T'''''''''''''''''s'k'r'a'm'h'c'n'e'b' 'e'b'y'a'M'''' It seems like tests - you can prove the existence of bugs, but not their absence. Benchmarks feel like that too - you can prove speed ups are poss''''''''''''''''''''''''''''''''''so'''s'e'o'd' 'e'g'r'e'm'o't'u'a' 't'a'h'w' 's't'a'h't'ible, but you can't ''*'*'prove something is inherently s'*'lo'*'w.'n'n'''s'i'x'e'''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'c'n'u'f' 's'i'h't' 'f'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't'r'e's'n'i' 'r'o'f' ''''''s'i' 'c'i'g'o'''''''g'i'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'a' 's'c'i't'n'a'm'e's''''''''''''''''''''e'r'a' '''s'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'h't' ','s'r'e'p'a'p' 't'n'e'r'e''''i'f'f'i'd' 'y'r'e'v' 'g'n'i'e'b' 'e't'i'p's'e'D' ''''''''''''''''''''''''''l'a'c'i't'n'e'd'i'''''''''''''''''''''''''t'r'a'p'a' 'l'l'e't' 'o't' 'e'l'b''''l'i's's'o'p'm'i'''''''''a'c'i't'n'e'd'i' 't's'o'm'l'a' 'e'r'''y'e'h'T' '.'k'o'o'l' 'a' 'e'v'a'h'''''''h'a' 'o't' 't'n'a'w' 'u'o'y' 'f'i' ','e'l'i'f' 'e'm'a's' 'e'h't' 'n'i''''''''''''''' 'e'h't''''''''''.'l'a'c'i't'n'e'd''''''e'd'o'c''''''''''s'e's'a'b'e'd'o'c' 'i' 't's'o'm'l'a'''''''''''''''''''t'n'e'r'e'f'f'i'd' 'y'l't'h'g'i'l's' 's'i' 'n'o'i's'r'e'v' 's'j'y' 'e'h'T' '''''''''''h't' 't'u'b' ','s'g'u'b' 'f'o' 'e'c'n'e's'b'a' '''e'h't' 'e'v'o'r'p' 'n'a'c' 'u'o'y' '-' 's't's'e't' 'e'k'i'l' 's'm'''''' 'r'i'e'h'T''e'e's' 't'I' '?'g'n'i'v'o''''''''ode'''''''''''''' i''s '''''''''o''s ob''''i''s obviou'y'''sl''y'It''''''''''''''''e'r'o'm' 'x'0'3' 'd'n'a' ','s not exactly like-for-like -''' ver''y differen''t ''''''''''''''''''f'''''''''''''''' my implementation doesn't''''''''''''' 's'''' use''''''''''''l'a'e'r' '''''''''''y'r'a' examp'''le,''''''''''','e'c'n'a't's'n'i' ''r'b'i'l' 'e'h't' 'e'c'n'e'r'e'f'f'i'd' 'f'o' 's't'o'l' 's'a'h''''''''''''''''''''''''''''''''''''''''''''''''''''.''*'F'*'''''e'g'r''''''''''''e'c'n'e''''''''''''''''''e'l'p'm'i's' 'd'n'a' 't'e''''e'h't'e'w's'''''e'r''''''''''''''t's'u'j'''''''''''''''''''''''p'u' 's'g'n'i'h't' 'g'n'i''W'''''''''''w''' 't'a'h'''''''''''' 'd''' ''n'a' ''''w'o'n' ''n'a'e'l'c'''''''t's'a'f' 'a''t' 'w'o'N'm'm'u'g' '''''''''''''s'j'e'l'b'a't'u'm'm'i' 'm'o'r'f' 'y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' ','e'd'o'c' 's's'e'l' 's'e't'u'c'e'x'e' 'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''''''''''''''x'e' 'e'd'o'c' 'y'M'''s'n'o'i't'a'z'i'm'i't'p'o'o'r'c'i'm' 'e'l't't'i'l' '''' 'l'b'a'b'o'r'p'''''''''''''''''''''''''' 'o't' 'e'u'd' '''''''''''''' 'f'o' 's'k'r'i'u'q' 't's''.''''' ','h'O'u'j' 'y'l'b'a'b'o'r'p'''e'h' '''''''r'''''''''''''''''''''''''''''''''''''''''''''''''''''''')'s'j'e'l'b'a't'u'm'm'i' 'd'n'a'(' '''''''s'n'o'i't'a't'n'e'm'e'l'p'm'i'''''''m'i' ''''''''' 'f'o' 'k'c'a'l' 's'''e'g'r'e'm'o't'u'a' 't's'u'j' 's'i'''''''''''''''y'l'b'a'b'o'r'p' 'n'a'c''''''''''''''''''''''''''''o't' 'e'l'b'''''''e'n'o'l'a' 'a'''''''t'a't'u'b'i'r't't'a' 'y'l'b'a'b'o'r'p' 's'i'''''''e'l'p'm'''''''''' 'g'n'i'e'b'''''w'o'l's''''t's'u'j' ''i's''e'p'u's' ''''''''g''''''' 'f'o' 'l'''''''e'd'o'''''''''''''''n'w'o'd' ''''''''''w'o'd''c' 's''''l'a'''''''''''''''w'o'l's' ''''' 'g'n'i'h''''''''''''''''''r'e'w'o'l's' 's'e'o'd' ''t'y'r'e'v'e''n'i'k'a'm' '''r''''''e'e'f'f'i'd' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'e'r'u't'c'u''''''''''''''e'c'n'a'm'r'o'f'r'e'p' ''r't's' 'a't'a'd''''''''''''''e'g'r'e'm'o't'u'a' 'r'o'f' '' 't'e'e'w's' ''' ''s''''''''''''''''''''''s'k'r'o'w' 'e''''''''''e'k'r'o'w'e' 'h't' 'p'u' 'g'n'i'm'm'u'g' 'i'h't' 'o't' 't'a'h't' 'f'o' 'l'l'a' 'e't'u'b'i'r't't'a' '''''''''''''''''''''''h'c'a'o'r'p'p'a' 's'''n'i'v'e'K' 'e'v'i'g'''''''''''''''''a' 't'A'''''''''''''''''''''''t' 'e'r'a''''s' 's'r'e'b'm'u''' ''''''n' 'e'h'T''''''s'e'k'a't' ''''''''' 'a''''''''''''''''y'r'''''s'e'k''''r'a't''''''''s'i' 's'i'h'T''e'v''''''''''''''''''''t'r'''a'e'h'''''''''''''''''''t'r'a'e'h' 'r''''''''''''s'e'k'a't' 't'i' 'u'o'y' 'f'o' 't'a'e'b' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'k'i'l' 'e'b' 'd'l'u'o''''''t'''u'B' '.'''w'''''''''''''''''''''''''''''''.'h't'e'e't' '''r'u'o'y' 'h's'u'r'b' 'o't' 'n'e'k'a't' 'e'm'i't'''''''''''y'l'l'a'u't'c'a' ':''''''''' 's'i'''''''''y'l'l'a'u't'c'a'' 'e'h't' 'd'n''''''''''''''''''' 'h'c'u'o'c' 'e'h't' 'r'e'd'n'''U'a' ','t'a'e'b' 't'''r'''a'e''''''''''''''k''''''''''''''''s'i'h't' 'x'i'f' 'n'a'c' 'e'W' '''' ''''''''''''' 'e'W' ''r'o'w' 'f'o' 't'o'''''''''''''''''''''''''''''''''''''''''' 'y'm' 'f'o'''''''''''''''''''''''''''''e'w' 'g'n'i'h't'y'r'e'v'e' 's'u'''''''e'm'''''s'u' 'l'l'e't''''n'o'c' 'd'l'u'o'w'''''''''''e'm' 's'l'l'e't' ' 'd'a'e''''''''w'o'n'k' 'o't' ''r' 'e'l'g'n'i's' 'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'L'')'d'e'e'n' '''I' 'n'o'i't'a'm'r'o'f'n'i' '''''''''''''''''''''''''''n'o's'a'e'r' 's'i'h't' 'y'l't'c'a'x'e''''''''''''''''''''''' 'a''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''''''' 't'u'b' ','g'n'i't'i'd'e'''''''''''''''''''o'o't' 's'e's'a'c' 'r'e'h't'o' 'n'i' ''''d'e'e'n''''' 't'x'e't' 'n'e'h'w'''''''''''''''u'c'o'd' 't'x'e't' 'a' 'n'i' 'h'c'u'm''''''''''m'u'n' 'n'''' 'e'p'p'a'h' 't'''n's'e'o'd' 's'i'h'T's'o'c' '''''e'c'n'a'm'r'o'f'r'e'p' 'r'a'e'n'i'l' 's'a'h' 's'j'y' 'n'i' 'h'c'i'h'w' ',''''And '''''''''''n'o's'a'e'r' 's'i'h't' 'r'o'f' 'e'h't' 'l'l'a' 's'a'h' 't'i' ','t's'i'l' 'y'r'e'c'o'r'g' 'y'm' 'p'u' 'k'c'i'p' 'I' 'n'e'h'w' 'o'S'('''''''''''''''''''''''''''''''''g'n'i't'i'd'e'''''''''''m'a''''m'r'g'o'r'p' 'e'h't'' 't'x'e't' 'n'a'h't' 'r'e'h't'o' 's'g'n'i'h't''''h' ''' ''''''' 'f'o' 't'o'a'l' 'a'h' 'e'''''''''''''''''''' 'g'n'i'o'd' 's'e'k'''a'm' 's'i'h't''''''''''''''''''''''''''''''''''''''''''''''.'e'r'o'h'c' 'a' 'e'b' 'l'l'i'w' 'g'n'i'p'p'o'h's' 'y'r'e'c'o'r'g' 'e'h't' 'g'n'i'o'd'''''''''''''' 'e''''o'h't' 'o't' 'g'n'i'o'g'l'g'n'i's' 'a' 'n'e'e'w't'e'b' 'e'c'n'e'r'e'f'f'i'd' 'e'h't''''''''''''''''''''''s'i''''''''l'o'v'n'i''''''''''s'e'b'i'r'c's'e'd' 't's'i'l' 'g'n'i'p'p'o'h's' 'r'u'o'y''''''''''''''''''''r'u'o'y' 't'u'o' 'g'n'i'r'u'g'i'f' 's'''' 't'I''''''''''''''''''''''''''''''''' 's'e'c'a'l'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n''''''''''y'l'l'a'u't'c'a' 'i'n'o'i't'n'e'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y'u'b'''''''y'u' 'o't' 't'a'h'w' 't'u'o' 'e'r'u'g'i'f'''' 'o'g' '''' 'o't' 'e'm'i't' 'g'n'o'l' 'a' 'u'o'y' 'e'k'a't' 'o't' 'g'n'i'o'g' 's't'i'''''''''''''''''''''r'u'o'y' 'h'g'u'o'r'h't' ''''''''''''''''''''.'e't's'a'p'h't'o'o't' 'd'e'e'n' 'u'o'y' 'g'n'i'y'a's' 'e't'o'n' 'e'l't't'i'l' 'a' 's'i' 'e'g'd'i'r'f' 'r'u'o'y' 'f'o' 'p'o't' 'n'O''''''''''''''''' 'o't' 'e'v'a'h' 'u'o'y' 'd'n'A''''.'n'o' 'o's' 'd'n'a' ','''e'g'd'i'r'f''''r' 'e'h't' 'f'o' 'p'o't' 'n'O''' ','''h'c'u'o'c' 'e'h't' 'r'e'd'n'U''' '-' '' 'f'o' 't's'i'l' 'a' 'e'v'a'h' 't's'u'j' 'u'o'Y'''T' ''''''''''''''s'e'r'i'u'q'e'r' 't's'r'i'f''e''a' '' '''d'n'A''' ''''''''t'h'g'i'm'''''''' 'c' ''.'l'''l'u'f' 'e'k'a't' 'd'l'u'o'''''''''''''''''e'l'a'c's' 'n'a'm'u'h' 'o't' '''''''''''''''''''''''''''''''''' 'e'n'i'g'a'm'i' 'n'a'c' 'e'w'''''''''''''''''!'.''''''!'*'e'g'r'e'm'o't'u'a' 'n'a'h't' 'r'e't's'a'f' 'x'0'0':''3'*' '''s't'I' '.''''c' 'I' 'h's'i'w' 'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a't'a'd' 'e'h't' 't'u'o'b'a' ''''''' '.''v'(''''''s'i'h''')''t' 'm'o'r'f' 'e'd'u'l'c'n'o'c' 'n'a'c' 'e'w' 'h'c'u'm' 'o's' 'y'l'n'o' 's'''e'r'e'h't' 'd'n'i'm' 'n'i' 'r'a'e'b' '' (v13.''5.5)''''''''''5'''''''''''''''''''.'5'.'3'1' '@' 't'u'B'(''''('''''''''''''''''''''''''''''''''''''''''''''''''''''n'.'s'j'e'l'b'a't'u'm'm'i' 's'i' 'y'l'l'a'e'r' 'e'c'n'e'r'e'f'f'i'd' 't'a'h't' 'f'o' 't'o'l' 'a' 't'u'B'n'''''''''g'n'i's'u' 't'o'n' 'm'''I' 'e'm'o't'u'a' 'm'o'r'f' 't'n'e'r'e'f'f'i'd' 'y'r'e'v''' 'y'l''''y's'u'o'i'v'b'o' 's'i''''''''''''''''b'o' 's'o' 'e's'a'b''''' 's'i' 'e'd'o'c' 'y''''''''''e'd'o'M''''''''''''''''''''''''''''''''''''''t'''n'o'd' 's'r'e's'u' 'r'e'v'e'n'e'h'w'''''''h'e''''''' 'l'i't'n'u' 'e'b' 'l'l'i'w' 't'i' 'd'n'A'(' ''r'p''''''''''''g'n'i'w'o'h's' 'y'l'l'a'u't'c'a''' 'I' 'd'n'A'n'n'''' '.'y'd'o'b'o'n' 's'a'w' 'I' ''''i'c''''''''''''''''c'e'n'c'i's' 'r'e't'u'p'm'o'c'''''''''''''''e'l'p'o'e'p' 'e'c'n'e'i'c's' 't'r'a'm's' 'e'h't' 'f'o' 'e'n'o'n''''''''''''''' 'y'l'l'a'e'r''''''''''''''''''.'t'a'h't''''''.'t'a't'h' 't'u'o'b'a' 'd'e'r'a'c' 'y'd'o'b'o'n' 'e'k'i'l' 't'l'e'f' 't'i''''I'''''o'b'o'n' '''''''''' '-' 't'u'b' 'e'd'o'c' 'g'n'i'k'r'o'w'''''' 'e'm'o's' 'd'a'h' 'I' 's' 'k'r'a'm'h'c'n'e'b''''''d''''e'e'p's' 'e's'e'h't' 't'a''''''''''y'd'o'b'y'r'e'v'e' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''('''''''''''''''''''')'.'.'''.'e''''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'g'n'i'k'r'o'w' 't'i'g' 'n'i' 'n'o'i's'r'e'v' 'e'h't' 't'e'g' 't'''n'd'l'u'o'c' 'I''''''''''' 't'''n'e'v'a'h' 'I' 't'u'b' ','r'e't's'a'f' 'x'5' 't'u'o'''*'*'b'''''''''*''a'*'' 's't'i' 'd'l'o't' 'n'e'e'b' 'e'v'''I' ''d'o'c' 'g'n'i'k'r'o'w' 't's'u'J' '.'s'm'i'a'l'c' 'y'm' 'g'n'i'y'f'i't's'u'j' 'r'e'p'a'p' 'd'e'h's'i'l'b'u'p'''''''''''' 'c'i'f'i't'n'e'i'c's' 'a' 'e'v'a'h' 't'''n'd'i'd' 'I' '.''''''' ';''''''' ','y'd'o'b'o'n' 's'a'w' '''''''''''''''' 'a' 'e'v'a'h' 't'''n'd'i'd' 'I' 't'u'b' '-' ''''-'h't''')'y'l'd'e't'''''''''''''''''''''t'u'o'W''b'a' 'k'n'i'h't' 'I' 't'a'h'w''n'i'o'p'(' ''g'n'i'd'n'e's' flipping me a link to the paper and asking me about it. Because, written up as Published Science Paper it makes peop'N''o'o'''''''n'''''''''''''l'a'e'r'''''''''''''''''''''''''''''''''''''!'e'm' 'e'v'e'i'l'e'b' 'e's'a'e'l'P' '!'t'h'g'i'r''''''''''''''''''m'''I' '!'l'a'e''''''''''' 'n'a'c' 'e'w' 'd'n'A''r' 't'''n's'i' 'e'c'n'e'i'c's' 'e'h'T''''''''i'c's' 'e'h't' ''' ''','o'S'le think this is a Fact Of The Un''n'i'iverse rather than an implementation detail'''''''''''''''''''''''''''''''''''''''''''''''''.'n''r'e'h'c'r'a'e's'e'r' 'd'e'k'r'o'w'r'e'v'o' 'n'''' 'a' 'y'b' 'n'e't''''e't'i'r'w' 'e'd'o'c' 'e'm'o's' 'f'o'''''''''''' 'e'm'o's' 'n'i' of so'''''''''''''''''''n'o'o's' 'e'e's' 'l'l'''e'w' 's'a' ','m'n'''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'p'm'I''''''''''k'a'M'''''''''''''s'T'D'R'C' 'g'n'i'k'a'M''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''w''' ','e's'u'a'c'e'B''''''''''e'B'?''Written up as Publ''ished S''''''''''''''''''''''''''''''''t'n'e''''n'e'r'e'f'f'i'd' 'd'n'A'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'm'o's' 'f'o' 'l'i'a't'e'd' 'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''''''e'''''''''n'e'e''''g'n'i'''b''' 'e'v'''d'a'c'e'd' 'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'b''''''''''''''''''' 'd'n'a' 'e't'o'r'w''''''''e't'o'r'w'e'r''' 'e'h'd'n'a' ' run''''-' ''''''''''''''''a' 's'a'w' 'e'r'e'h't' 'f'I'a'k'''''''''t'i'm'd'a' 'o't' ''r''''r'o'w'n'u' 'd'n'a' 'w'o'l's' 'e'b' 's'''''''''''''''''''''''''''''''''''''''''' 'e'h't'''''''''''''''''''''''''''''''''''''''n'i'v'e'''''''v'E'K' 'e'r'o'd'a' 'd'l'u'o'w' 'y'e'h't''''''''''''''''''''''''''''''''''''.'n'o' 's'l'l'e'b' 'h't'i'w' 'e'r'e'h't' 'e'b' 'd'l'u'o'w' 'n'i'v'e'K' ','y't'i'n'u'm'm'o'c' '''''''''g'n'i'n'n'u'r'd'e'e'p's' 'f'o' 'n'o'i's'r'e'v' 'r'e'm'm'a'r'g'o'r'p''''''''''''' 'g'n'i'm'm'a'r'g'o'r'p' 'a' 's'a'w' 'e'r'e'h't' 'f'I' ''y'a'w'l'a' 'o't' 'd'e'm'o'o'd' 'e'r'e'w' 'y'e'h't' 't'a'h'T' '.'s'T'D'R'C''''e'd' 'n'o'i't'a'n't'e'm'e'l'p'm'i' 'n'''' 'a' 'n'a'h't' 'r'e'h't'a'r' 'e's'r'e'v'i'n'U' 'e'h'T' 'f'O''''''''''''''' 'a' 'n'a'h't' 'r'e'h't'a'r' 't'c'a'F' 'a' 's'i' 'c'''''''''''''e'd'o'c' 's'i'h't' 'f'o' 'ience Paper it makes people think thisn' '''''' 'e's'u'a'c'e'b'n'o' 'g'n'''''''''''''''''w' 'r'e'p'a'p' 'r'i'e'h't' 'n'I'''''''''''''''''w''' 't'u'o' 's'n'r'u't' '''t'I'i'o'g''''' 's'a'w' 't'a'h'w' 'e'e's' 'o't' 'r'e'p'a'p' 'e'h't' 't'a''''''''['''''''''''''''''''''e'r'e'h' '''(https://josephg.com/blog/crdts-are-the-future/''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'e'y' 't'a'h'''''''''''''''''''''''''''''''''' 's'r'e'''''''''''''''''''n'i' 'n'o'i't'c'n'u'f' 't'r'e's'n'i'p'a'p' 'c'i''''''''''''''')'A'T'A'Y'(' 'T'D'R'C'''''''R'c' '''' 's'''m'e'd'a'c'a' 'n'i' 't'u'o'b'a' 'd'a'e'r' 'u'o'y''''''''' 'y'a'd'o't''t' 't'u'o'b'a' 'k'l'a't' 'o't' 'y'd'a'e'r' 't'o'n' 'm'''I' 't'u'b' '-' 'e'r'a'w't'f'o's' 'r'u'o' 'l'l'a'''''''''''''''''''f'o's''''f' 'f'o' 's'd'n'i'k' 'r'e'h't'o' 'e'b'y'a'm' 'd'n'A' '.')')'(']''y'h's'i'f' 's'a'w' 'g'n'i'h't'e'm'o's' '-' ''''''''''''''''''''''''''''''''''''''''p'''p''''''''''''''''''''''''''''''''''''''''''n''''t'n'e'm'e'l'p'm'i' ''''''''''''s''''''''''r'i'e'h't''''''''''''''''r'a''''''''''''''''''''''''' 'd'e'h's'i'l'''''''''''''''''''''''''''s'i'h't' 'k'n'i'h't' 'e'l'''''''''''''''''''n'n'a'm'p'p'e'l'K' 'n'i't'r'a'M' '''' ''p'o'e'p' 's'e'k'a'm' 't'i' ''b'u'''''''''''''i'l'b'U'P'''''''b'u''''''''''''''r'e'p'a'P' 'e'c'n'e'i'c'S' 's'a'''''''''''''''''''''''''''''''''''''''''''''''s't'e's'l'l'i'k's' 't'n'e'r'e'f'f'i'd' 'h't'i'w' 'e'l'p'o'e'p' 'e'v'l'o'v'n'i' '''''''''''''''''''e'b' 'e'r''''' '''p'u'''''' 'a' 'n'i' 'n'e't't'i'r'W' ''l'u'c'i't'r'a'p' 's'i'h't''''''''''''''''''''n'o'i't'a't'n'e'm'e'l'p'm'i' '''''''''''''')'s'm'h't'i'r'o'g'l'a' ''''''' 'f'''o' 'l'l'a''T''''''''''y'l't'n'e'r'r'u'c' ''O' 'd'n'a' 'T'D'R'C' 'h't'i'''''d'r'a'w'w'(' ''d'l'u'o'c' ''''t'u'''''''''' 't'a'h't' 'e'k'i'l''''''''' 'd'''''u'o'y' '''l'u'o'w''B'u'o'''''''''''''' 'o't' 'd'e'e'n' 'e'w'y' 's''''''''''''''''''''''''''''''''''''''''''''''''''y'r'o'm'e''''a'm' 'n'i'a'm' 'o't' 'd'''''''''''''''''''''''''''''''''''''''''''''d'l'u'o'w' 'e'w' 'e'b'y'a'm''''''''''''''''''''''''s'i' 'h'c'i'h'w'''''' ''''r'e'p'''r'o' ','s'm'3'2' 'n''''''e'm'o'h' 'i' 's'n'o'i't'a''''''s''''''''''''''e'v'a'h'''''''''''''e'v'h'a' 'l'l'i't's' 'd'''I''t'''i'd'e'r'e'p'o' '0'0'0' '0'6'2' 'g'n'i's's'e'c'o'r'p' 'e'r'''e'W' '''''''''''''''''''''''' 'l'l'u'f'''''''''''''''''' 'k'r'a'm'h'c'n'e'b'''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''!'p'u' ''''''' 'u'd'd'a' 't'''n'o'd''' 's'r'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'v'a'e'l'r'e't'n'i' 'e'r'a' 's'e't'a'd'p'u' 'e'e'r't'-'b'''p'u' 'e'h't' 'l'l'a' 'e's'u'a'c'e'b' ','g'n'i'h's'a'r'h't' ''b'm'u'n' 'e's'o'''h't' 't'u'B','''f'o' 'e'c'a'r't' 'g'n'i't'i'd'e' 'n'a''''''' 'a''''''''''''''''''''''''''''''r' ''e's'u' 'e'l'g'n'i's' 'a' 'm'o'r'f' ''''''''''''''''''S' '.'s'n'o'i't'a'r'e'p'o' '0'0'0' '0'6''''7'2' 's's'e'c'o'r'p' 'o't' 's'''''''s' 'e'k'a't' 't'i' 'e'm'i't' 'h'c'u'm' 'w'o'h' 'e'b'i'r'c's'e'd' 's'r'e'b'm'u'n''''t' 'e'c'n'a'm''''a'r'o'f'r'e'p' 'e's'e'h't' ','r'e'b'm'e'm'e'R' ''a'e'''''''e'a'r' 'h'c'a'e' 'h't'i'w' 'e'l'b'i's's'o'p' 's'':'a' 'h'c'u''' '''':''''m' 's'a''''''''''o'y' 'y'a'w'''''''''''''''e'l'p'm'i's' ''''s''''''''s''''''''t'o'l' 'a' ''m'''h't'i'r'o'g'' '''l'''n'n'''''a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''' '''y'b' 'd'e's'u'a'c' '''''''''''''g'''''''''''''''''' 't'h'g'i'r'''''''''''''t'i'r'w' 'm'''I' 'f'I'''''l''' 't'I'n'i'h't'e'm'o's' 'r'o' ''''y'l'b'a'b'o'r'p' 's'i''''''''''''''''''''''''''''''''y'a'w' 'e'h't' 'l'l'a' 'e'c'n'a'm'r'o'f'r'e'p' ''''''''r'e'p' 'y'm' 'e'c'n'e'r'e'f'f'i'd' 'e'h'T''''t'o'n' 's't'i' 't'u'B' '.')'s'm'3'2'(' 'e'e'r't'-'b' 'y'm' 'g'n'i'''' 't'a'd'p'u'''' 'n'i' 't'n'e'p's' 'e'm'i't' 'e'h't' '+' ')'s'm'9'2'(' 'y'e'p'o'r' 'n'i' 't'n'e'p's' 'e'm'i't' 'e'h't' 'f'o' 'm'u's' 'e'h't' 'e'b' 'd'l'u'o'h's'''''''' 'e'h't' 's'i' ')'s'm'5'6'(' 'e'c'n'a'm'r'o'f'r'e'p' 't's'u'r' 'e'h'T'''''''''''''''''''''''s'e'i'r't'n'e'''''''''''''''''''''''''' 'n'o'i't'a't'''''''t'e'n'e'm'''''''m'e'e'l'p'm'i' 't's'u'r' 'e'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'u''+'''''''''''''''n'a'h't' 's's'e'l' ''''''' 's's'i'''b' '-' 'e'c'n'a'm'r'o'f'r'e'p' 't's'u'r' 'r'u'o' 'o't' 'p'u' 'd'd'a' 'd'l'u'o'h's' 's'w'o'r' 'o'w't' 'm'o't't'o'b' 'e'h'T''''''''''''''''d'd'a' 'd'l'u'o'h's' 'y'e'h'T' '''''''t'''''''t'n''o't''n'a'w' 'I' '' '.'.' 't'u'b' 'd'' 'r'a'w'k'w''''t'i' 'a' '''s'''''''i' 's'i'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''' ''''''' '''''''''!'s'e'k'''''''''''''''''''''''''''' ','y'a'w' 'e'h't' 'y'b' ','h'c'i'h'w'''''''m''' ''''''','n'a'e'm' 'I'''''''''''''''''''''''''''?'e'r'e'h' ''''?'n'o' 'g'n'i'o'g' 's't'a'h'w' '-' ''''!'i'O's'a'w' 't'i''''e'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'o't' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c''''c' 't'r'o'p'p'u's' 'o't' 'k'r'o'w' 'a'r't'x'e' 'f'o' 't'o'l' 'e'l'o'h'w' 'a'''''''''' 'e'r'o'm' 'y'a'w' 'g'n'i'o'd' 's't'i' 'd'n'a' ','y'l't'c'e'r'i'd' ''!''''''o'''''c'''' ','l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''s''''''''''')'!'(' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'')'n'o'i's'r'e'v' 'e'v'i't'a'n' 'e''''s'y'a's'''''''''''''''''''''''''''''s'm'''h't'i'r'o'g'l'a' 'T'O' 'd'n'a' 's'T'D'R'C' 'd'i'a's''''h't' 's'''a' 'e'm'a's' 'e'h't' 'e'b' 'd'l'u'o'h's' 't'I' '.'e'g'a's'u' 'y'r'o'm'e'm' 'm's'a'w''''''''''''''''' 'n'i'''''''''''''''''''''''''''''''''''''''' 'f'o' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h't' 'h't'i'w' 'e't'e'p'm'o'c' 'n'a'c' 'e'w''' 'e'''''''*''''''g''guessing''''''''s'e's's'e'u'g'a's'u' 'y'r'o'm'e'm' 'e'r'u's'a'e'''''''*'''m' 'o''''t' 'w'o'h' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I'('n''n'n''''''''''''''''d''n'''n''''e'v''''''d'n'u'o'r'a''o'r'p'm'i' 't'''n's'a'h''''''''''s'h'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i' 'p'u'''''*''''''''''*''.'g'n'i'h't'y'n'a' 'n''''''' 's'i' 's'i'h't' '''''''''''''''''''''''''''e'r'''y'e'h't' ','d'r'a'g'e'r' 't'a'h't' 'n'i' 'd'n'A''e'd''''''''''t' 'e'o'c''''d' 'n'a'c' 'e'W' '.'s'y'a'd' 'e's'e'h't' ''''''''''''''''''''''' 'e'W' 'e'''''''''''''''''''''''''o't''''''''''''''''''''''''' 'y'l'e'd'u'r'''''''''''','''t''' ''a' 'd'e'h'g'u'a'l' 's'e'm'i't'e'm'o's' 'g'n'i'e'b'' 'l'''a'c'i't'n'e'd'i' 't''''''''''i't' 's'o'm'l'a' 's'i'c'n'a'''''''t's'o'm'''''''o's'E''l'a' ''m'r'o'f'r'e'p' 's't'i''' 'e's''v'o'r'p'm'i' 'o't' 'e'l'b'a' 'n'e'e'b''''''''''''''''.''''''''''''''''''''''''''''' 'g'n'i'h't'y'n'a' 'd'n'i'f''''i'u'q' 'n'a'c' 'e'w' 'o's''''w' ','''''''''''''''''''''''''''''' '''h'''t'r'a'e' 'n'o'''''''''''''''''I took a closer '''''''d'n'''''''''''''''''s't'r'e's'n'i' 'e's'o'h't' 'f'o'A' ''''''''o''' '-' 'h'u'D''O'.'look and it seemed like it w'''' 'u'o'''''''''s'e'm'i't'e'm'o's''y'''''''''''''''''t'n'e'm'u'c'o'd' 'e''''':''''e'''''''d'''e' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a' 'e't'o'r'w' '''''''''''''''''''''''''''''''''''''''''''''''''e't'o'r'w'''''''w' 'y'e'h't' 't'u'B''O' '.')'s'l'a'c'i's'u'm' 's'u'o'm'a'f' 'f'o' 'h'c'n'u'b' 'a' 'e'd'a'm' 'y'e'h't'''''''''''''''''''r'o'f' 's'u'o'm'a'f' 'e'r'''y'e'h't''''t'(''''''''y'd'o'b''o'd''''' 't'a' 's't'n'u'o'c''''''''''n'u'o' 'r'e't'c'a'r'a'h'c' 'e'h't'''''''''r'e't'f'a' ''''''''''''e'h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'W''''y'a'w'y'n'a' 'o'o't' 't's'a'f' 't'a'h't' 'e'd'a'm' 'I' 't'u'''' 'g'e'b' ''','t's'e't' 's'i'h't' 'n'i' 's'r'e''''*'*'''''' 'e'l't't'i'l''''''''''''''''''*'*'''''''''''''' '!'c'i'n'o'r'i' 'w'o'''!'?'''H''Who could have guessed!''''''''!'c'i'n'o'r'I'''''' 'e'e'r't'-''*'*''b' 'e'h't''''''''''*''''*''e'''p' 'e't'o'''''''''''''.'D'I' 'y'b' 'h'c'r'a'e's''m'e'r'''''''''''''''-''''''t's'u'j' ' 'p'l'e'h' ''*'*''t'h'g'i'm' 't'I'' 'm'o'r'f'''''''''*'' '*''s't'i'd'e' 'e'g'r'e'm' 'r'e'v'e'n' 'e'W''It doesn't come into play here, but w''''W'''a''''S''''A' ''t'o'o'r' 'e''''''''''''''''o'o'r'e' 'h't' 'o't' 'p'u' 'y'a'w' 'e'h't' 'l'l'a' ','t'n'e'r'a'p' 's't'i' 'd'n'a' ','t'n'e'r'a'p' 's't'i' 'n'e'h't' ','f'a'e'l' 'a' 'e't'a'd'p'u' 'e'W' 'h't' 'o't'n'i''as amateur'''''''''''''''''''''''''''''''k'n'''''''''''''''''''''''''''''')'s'r'''''''''''''''''''''''''''''''''''''''' 'e'l'o'h'w''''''''''''''''''''''''''''''''''s'e'z'i's' ''''''''k'r'o'w'''''l'l'e'w' '' 'o't' ''t'n'e'r'e''''''''''''y'l'l'i's' '''''''''''''''''''''''''''''''''''''d'e'i'r't'''''''''''''''''f'o'''''''''''''''''''w'o'l's' 'y't't'e'r'p' 'e'r'a' ' 's't'o'l' 't'a'h't'''''''''''''''''''''''''''''' 'w'o'h' 'l'l'a' 's'u' 'l'l'e't' 'o't' 'd'e't'r'o'p'o'P''''r'p''S''''''''''''''''''''''i'''''''''''''''''''''.'W''*'''*'''g'n'o'r'w' 's'a'w' 'r'e'p'''''''r'e'*''a'p'''''*'a' 'e'h't' '''' '''''''''''''''''''''''''''''''''''a' ''''''''''''''''''e'k'i'l' ''''''''''''''''''''''''''g'n'o'r'w' 'f'o' 'd'n'i'k' '''''''s''T'g'n'i'r't's' 'e'v'i't'a'n' 'g'n'i's'u' 'e'r'e'w' 'u'o'y' 'k'n'i'h't' 'd'''u'o'y' 't's'a'f' 'o's' 'n'u'r'''t'u'B' It turns out we c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i' '''s'*''t''*'I''e'k'a't's'i'm' 'r'i'e'h'T''''s't'I' '.'w'o'n' 'r'e'p''*'a'p'''''''''''e'r'''y'e'h'T' '.'*' 't'a'h't' 'e't'a'i'c'e'r'p'p'a' 'f'o' 't'r'o's' '''''''''''' 'f'o' 't'r'o's' 'm'''I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''o'S'n'''''''e'l'p'o'e'p' ''''o'i't'a'r'e'p'o' '''''''''''''''r'e'p'a'p' 't'a'h't' '''''''''''e'r''database'''''' 'g'n'i's'u' '''e'w''''''g'n'o''' ''r'w' 'y'e'h'T''''n'i' 'g'n'i'r't's' 'e'v'i't'a'n' 's'a' '''''t'a'h'w' ''t's'a'f' 's'a''''''''''''''*'''''''''''*'''''''''''' 'o't' 'm'e'e'''s''''''k'n'i'h't' 'e'l'p'o'e'p' 'e'm'o's' 't'a'h'w'''''e'm'o's'''''''''''''''''''''''' ','d'l'o't' 'n'e'e'b' 'e'v'''I' 't'a'h'w' 'e't'i'p's'e'd'' 't'u'o'b'a' 'm'e'h't' 'e'k'a'm' 'n'a'c' 'e'W' '.'''''''''t'u'o'b'a''''k'i'l' '-' 't's'a'f' 'y'z'a'r'c' 'm'e'h't' 'e'k'a'm' 'n'a'c' 'e'W' '.'t's'a'f'an make CRDTs work almost as fast as editing a string. '''l''''l'l'e't''''''''e'l'p'o'e'p' ' 'o't' 'd'e'm'i'a'l'c''''''''''''[''l'l'a' 's'u' 'd'''https://en.wikipedia.org/wiki/Gilbert_and_Sulliva')'n'(']'''''''r'e'p'a'p'l'o't''''''''''''''''''''''''''''''''''''''''''''''''''s'i' 'h't'u'r't' '''''''''''''a' 's'd'e'e'n'''''''''''''''''''''''m'a'e'r'd' 't'a'h't' ''''''''''''''''''''''d'e'v'e'i'h'c'a' 'e'b' ''''b'''''''''''''''''''''''''''''''y'e'h't' 'n'e'h'w' 't's'L'''''t''''l'a' 'e'b' 'k'''''''''''''''''''''''''''''''''''''''''''''''s'c'i'r'y'l' 'e'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''r''''''''''''''''a' 'd'e'r''''''''' 'd'e'd'e'e'n''a'h''''''e'b' 'o't' ''s' '''y'e'h'T'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''E'e''''g'n'o'l'a' 'e'k'a'm' 'd'l'u'o'c' 'm'e'h't' 'f'o''' '''e'n'o'''''''o'n' 'o'n' 'g'n''And yet''''t'u'B'i'h't'e'm'o's' 'e'd'a'm' 'y'e'h't' 'r'e'h't'e'g'o'T' '.'t'i' ''''e'n'i'g'n'e' 'e'h't' 'r'e'h't'o' 'e'h't' ','r'e'l'l'e't'y'r'o't's' 'e'h't' 's'a'w' 'y'u'g' 'e'''' 'n'o' '-' ''r'e'h't'o' 'e'h't' ','c'i's'u'm' 'e'h't' 'd'i'd' 'y'u'g' 'e'n'o' '-' 'r'o'w' 'n'a'c' 's'n'o'i't'a'r'o'b'a'l'l'o'c' 'e's'o'h't' 'd'n'A' '.''''''''''''''''''''''''!'d'e's's'e'u'g' 'e'v'a'h' 'd'l'u'o'c' 'o'h'W' '''' 'k'r'o'w' ''e'h't' 't'u'B''And sometimes the best collaborations aren't between peers. Instead they look like Gilbert & Sullivan. Or Jobs and Wozniak. The same love, and the same dream but totally different skill sets brought together brought together to achieve something no one of us could achieve on our own.''nn'n''''''''''''l'l'e'w' 'y't't'e'r'p' '''''''''''''''''' 'd'n'a' 'r'e't's'a'f'''''''''''''''''''''''''''''''.''''d'n'A'''''''''''''''''''' 't'a'h'w' 'r'e't't'a'm''them'''s'u' 'o'n' ',''''.'k'o' 's't'a'h't' 'd'n'A' '''' ''''''''''''''''''''''' 'a' ''.''''''''''''''''''''''' 'y'l'l'a'n'i'f' ''''''' 's'a'w''' 'r'e'p'a'p' 't'a'h't' 'o'S''''''g''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'n'o' 'o'n''''''''''''''''''''''''''''''''''''''n'w'o' 'r'u'o' 'n'o' 'e'v'e'i'h'c'a' 'd'l'u'o'c' 's'u' 'f'o' 'e'n'o'n' 'g'n'i'h't'e'm'o's' 'e'v'e'i'h'c'a' 'o't' 'r'e'h't'e'g'o't' 't'h'g'u'o'r'b' 'r'e'h't'e'g'o't' 't'h'g'u'o'r'b' ''n'i't'i'd'e'''''''''g'n'i'r't's' 'a' 's'a' 't's'a'f' 's'a' 't's'o'm'l'a' 'k'r'o'w'''''f' 's'a' ''''''''''''' 't's''''''''''''''''''''''''''''''''''''''''''''''t'''''t'a'h'T''''''''''''''''''''''''''t'n'e'm'o'm' 't'a'h't' 'n'i' 'd'n'A' ''''''''''''''''''''a'c'a' 't'a'h't' 's'n'''''''s'k'a'''''''''''''''''''' ''''m''''h'g''t'a''u'o'h't' 'n',''''''e'v'e' ','t'u'B'''e''''a'm' 't'a'h'''''t'e'y' 't' 'd'n'A'i' 't'u'o'b'a''''''''''''''''''''''''''''''','d'e't'n'''''n'e'v'e' ''a'w'''''''''''.'p'l'e'h' 'o't' '' 'y'l'l'a'e'r' 'I' 'k's'a't' 'a' 'h't'i'w' '' '''''''''''' 'y'r't' 't'''n'd'i'd'r'''''''''''''''''''''''''''''.'t''Oops''''''''''''''''c''' 't'u'o' 'd'e'n'r'u't' ''''''' 'e'b''''''' 'e' 'o't't'I' '!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''u' 'f'o' 'l'l'a' 'n'e'e'w't'e'b' ''.'n'o'i't'a'r'o'b'a'l'l'o'c' 'a' 'd'e'd'e'e'n' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'C' ''i' 'o't' 's'r'e'h'c'r'a'e's'e'r' 'e'h't' 't'f'e'l' 'I''''e'v'e'l'c' 't'i'b' 'a' 'e'b' 'o't' 'g'n'i'l'l'i'w' 'e'r'''e'w' 'f'i' ',''a'f' 'd'n'a' 'l'l'a'm's''''''''''''''''''a' 'h'c'i'h'w' '''''''''.'s'T'D'R'C' 't's'a'f' 'e'k'a'm' 'n''''h'a'c' 'e'w' 't'u'o' 's'n'r'u't' 't'I' '''''''''''''''''' '''''t'u'o'b'a'''''''''''''''''s'a' 'e't'a'r'u'c'c'a' 's'a'''''''''''''t'I' ''''''''''''''''?'T''''w'o'''''''''''''''''''''d'n''''''''''''''''''''''''''''''''''''''''''''' '-' 's'''c'i'm'e'd'a'c'a''' 'h't'i'w' 'e't'a'u'q'e'd'a'n'i' 'f'o' 't'r'o's''' 'l'':'''''e'e'f''''a' ','n'a'm'u'h''' 's't'a'h'T'''''''''''''''''''''f'o''' 't'f'i'g' 'e'h't' 'h't'i'w' 's''' ''''n'k' 'u'o'y' ''''''''.'0'0'0'1'$' 's't's'o'c' '''''''''''''''''''''''''''''''''''''''''a'n'a'n'a'b' ''''b'a' 'g'n'i's's'e'u'g' 'e'r'i'''''''''''''''''''s't'a'h't' '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' 'y'e'h't' 'd'a'e't's'n'I' '.'s'r'e'e'p''''' 'o'w't' 'n'e'e'w't'e'b' 't'''n'e'r'a''s'e'm''''''''y'l'l'a't'o'''''''o't't'''''''''''''''''''''''''''''''''''''r'o'f' 'g'n'i't'''A decade ago Google Wave really needed a good quality list CRDT.'' So I got super excited when the papers for CRDTs started to emerge. [LOGOOT](https://hal.inria.fr/inria-00432368/document) and [WOOT](https://hal.inria.fr/inria-00445975/document) se'''''''w'o'n' 'd'n'A'emed like a big deal! But that excit'''''''''''I' 'n'e'h'w' 'd'e'i'd'''ement ''turned to ash when I realised the algorithms were ''too slow and inefficient to be practically useful. And I made a big mistake - I assumed'' if the ac''''g'i'b' 'ademics couldn't make them fast, nobody could. I turne''''''''''''''''''''''''''''''''''''''''''''''''''''h''' 'd'n'A''''''''''''''''''''''''''''''m'e'h't' 'g'n'i'd'a'e'r' 'd'i'o'v'a' 'o't' 'g'n'H''i'h't'y'n'a' 't's'o'm'l'a' 'o'd' 'l'l'''I''' 'd'n'a' 'y'n'a' 'n'e't't'i'r'w' 't'''n'e'v'a'h' 'I'''''''''''''''''''''''' 'e'm'a'h's' 'l'a'n'r''.'''t'u'B''''e't'e' '''!''''.'s'''y'''m' 'o't'''''''''''''''''''''''''' ')'m'e'h't' 'g'n'i'd'a'e'r' '*'e't'a'h''''H'*' 'I'''''''*' '(' '-' 'd my back on academia and dismissed them''.n'n'n''h'g'i'f' 's'h't'g'n'e'r't's''''''''s' 's'd'n'i'm' 't'n'e'r'e'f'f'i'd''''''s'd'n'i'm' 'y'n'a'M''''' 'o'w'T'' ''i't'e'm'o's'''''''''''''''''''''''''''''''''''''''''''''''''''''''.'k'a'i'n'z'o'W' 'd'n'a' 's'b'o'J'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'l'a'o'g' 'e'm'a's' 'e'h't' 'd'r'a'w'o't' 'd'e'd'a'e'h' 's'e'v'i't'c'e'p's'r'e'p' 't'n'e'r'e'f'f'i'D' '.'s't'e's' 'l'l'i'k's' 't'n'e'r'e'f'f'i'd' 't'u'b' ' 'r'O' '''''''''''''''''''''''''''''''''''m'a'e'r'd' 'e'm'a's' 'e'h't' 'd'n'a' ','e'v'o'l' 'e'm'a's' 'e'h'T''''O''''M' '.'n'a'v'i'l'l'u'S' '&' 't'r'e'b'l'i'G' 'e'k'i'l' 'k'o''''k'o'l''''''''''' 'm'o'r'f' 'e'm'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''''e'm'o'c' 'y'e'h'T' '.'r'e'h't'e'g'o't' 'g'n'i'k'r'o'w' 's'f'e'h'c' 'o'w't' 'm'o'r'f' 'e'm'o'c' 't'''n'o'd''''''''''''''''''''' 's'n'o'i't'a'r'o'b'a'l'l'o'c' 't's'e'b' 'e'h't' 'e's'u'a'c'e'b' ','t'a'h't' 'w'o'n'k' 'o't' 't'n'a't'r'o'p'm'i' 's't'i' 'd'n'A'n''n'''' 'e'r'a'n'o'i'l'l'i'b' 'a' 'e'k'i'l' 'g'n'o'r'w' 'e'r'e'w' 'y'e'h'T' ''''' 'd'e'i'r't''''''''''''''''l'o'b' 'e'm'o's''''''''''''''''''''''''''''''e'c'n'''''''''''''''''''''''.'''''''''''''''''''''''' 'y''''''''y'l'd'r'i'e'w''''''''''f'o' 't'r'o's' ''l'l'a'u't'c'A' '''''.'k'o' 's't'a'h't' 't'u'B'n''s'e'm'i't' 'f'o' 's'd'n'a's'u'o'h't'''''''a's' ''e'h't''''c'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''t''' ','o'N'l'a't'r'o'm' 'o't' 'h'''''''t'a'e'r'G''t'u'r'T' 'g'n'i'r'b' 'o't' 's'n'e'v'a'e'h' 'e'h't' 'm'o'r'f' 't'n'e's' ',''''''''''e'r'''y'e'h'T' '.'s'd'o'g' 't'''n'e'r'a' 's't's'i't'n'e'i'c'S' '''' '.'o'g'a' 's'e'd'a'c''''a'e'd''''a' 's'u'o'i'v'b'o' 'n'e'e'b' 'e'v'a'h' 'd'l'u'o'h's' 't'a'h't' 'g'n'i'h't'e'm'o's' 'e's'i'l'a'e'r'''''''''''''''''''''' 't'a'h't' 'g'n'i'h't'e'm'o's' 'n'r'a'e'l' 'e'm' 'e'd'a'm' 'g'n'i'h't' 'e'l'o'h'w' 's'i'h't''i'c's' 'd'e'h's'i'l'b'u'p' 's'a'w' 't'i''''''''t''''''''''''''e'n'o'y'r'e'v''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''.'s'd'o'g' 'y'b' 'n'e't't'i'r'w' 't'''n's'a'w' 'r'e'p'a'p' 'e'h't' ','t'u'o' 's'n'r'u't' 't'I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'e'h't' 'f'i' 'd'e'd'u'l'c'n'o'c' 'e'v'a'h' 'd'l'u'o'w' 'r'e'p'a'p' 'e'h't' 't'a'h'w' 's'w'o'n'k' 'o'h'W' ''e'''''''''l'l'a' 'e'w' 'd'n'A'''''''''''''''' 'e's'u'a'c'e'b' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e'h'c'r'a'e's'e'r' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'd'u't'i'n'g'a'm' 'f'o' 's'r'e'd'r'o' 'l'a'r'e'v'e's''''''''''''''''''''.'s'e'm'i't' 'f'o' 's'd'n'a's'''''''a's'u'o'h't'''''''''''r'o't'c'a'f' 'a' 'y'b' 'g'n'o'r'w' 'e'r'e'w' 'y'e'h'T' '.'g'n'o'r'w' 't's'u'j' 't'''n'''''''''''''''''''''''''''''''.'e'd'u't'i'n'g'a'm' 'f'o' 's'r'e'd'r'o' '3'''''u'o'h't' 'y'b' 'f'f'o'h't' 'd'e'v'e'i'l'e'b' 'e'n'o'y'r'e'v'e' ',''''''''' 'e'w' '*'e'c'n'e'i'c's' 'd'e'h's'i'l'b'u'p'*' 's't'i' 'e's'u'a'c'e'b' 'd'n'A' '''''''t'u'B' '.''''u'''''''''''''' 'e'r'e'w''''o' 's'r'e'b'm'u'n' ''o'b'a' 's'm'i'a'l'c' 'e'd'a'm' 'o'g'a' 's'r'a'e'y' 'e's'o'h'''''''''''''''' 'e's'h'o't' 'l'l'a' 'd''''l'a'e'r' 'I''''''''''''''''m'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'b' 'f'f'o' 'e'r'e'w' 's'e'r'''''''r'e'u's'a'e'm' 'e'c'n'a'm'r'o'f'r'e'p' 's't'i' 't'u'b' ','n'u'r' 's'T'D'R'C' 's'u'o'i'r'a'v''''t' 't's'a'f' 'w'o'h' 'w'o'n'k' 'o't' 'd'e'm'i'a'l'c''''''''''''''''''''''' 'w'o'h' 't'u'o'b'a''''''''' 'g'n'i'k'r'a'm'h'c'n'e'b'''''''' 's'm'i'a'l'c' 'e'd'a'm' 'r'e'p'a'p' 'c'i'm'e'd'a'c'a' 't'a'h'T''n'n'f'f'i'd' 'w'e'f' 'a' 'h't'i'w' 'm'e't's'y's' 'e'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'o'o'g' 'y't't'e'r'p' 'd'e''''s'm'e'e's' '2'3''''T'''''''''r'e'h'g'i'H' '''.'''' 'g'n'i'k'r'a'm'h'c'n'e'b' 'd'n'a' 's'r'e'b'm'u'n' 't'n'e'r'e'f'f'i'd''''''''s'r'e'b'm'u'n' 'w'e'f' 'a' 'g'n'i'y'r't' 'y'b' '2'3' 'd'e'k'c'i'p' 'I' 'e't'c'a'''''''''''''''''''''''''h't'i'w' ''''''''' 'y'n'''a'm' 'o'''''''''''''''o't' 'k'n'i'l' 'a' 'e'm's'n'o'i''''''''''!'d'a'B' ''''''''''''''''''''''' ','w'o'l's' 't'''n's'i' 'e'd'o'c' 'y'M''''''' 'Y' '''''''r'i'e'''h't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e''a'''''h'T'''''''''''''''''''''.'B''m'h't'i'r'''''''''''''''''r'a'l'u'c'i't'r'a'p' 'e'''''''''' 'm'h't'i'r'o'g'l'a''''''''e'p'm'o's' 'o'''''''''''''''''''''m'r'o'f's'n'a'r't' 'l'a'n'o'i't'a'r'e'p'o'''''T'O''''''g'''''l'A' 'n'a' 's'i' 'A'G'R' '.'m'h't'i'r'o'g'l'A' 'n'a' 's'i''''''''''''''''''' 'n'a' 's'o' 'r'e't'i'p'u'J' '.'''''''''''''''''''''''''''''''''''''y'''l'e't'a'r'a'p'''''e's' 'd'e's''*''''*'''s'e'c''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''*'''''*'''b''''''''''k'c'a'h' 't'a'e'n''' 'e'h't' 'e'r'o'f'e'b' 'd'e't'r'e's'n'i' 'r'e's'u' 'e'h't' 'h'g'u'o'h't' 'n'e'v'e'''''''''''''''''''''''''''''''''''''''e'r'o'f'e'b' 'd'e't'r'e's'n'i' '*'y'l'r'a'e'l'c'*' 'r'e's'u' 'e'h't' 'd'n'a' ','o'r'p' 'e'b''''p' 'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'i' ','r'e'p'a'p' 'e'h't' 'm'o'r'F'''''''''''''''''''''''''''''' ','s'u'o'i'r'u'',''''''k'c'a'h''c' 'e'r'''u'o'y' 'f'I' ':''''''''''k'c'i'r't'''''k'c'a'h'''''''''''''''''''''''''t'i' 't'a'h'''''''''m'e'l'b'o'r'p' 't' ''''''k'a'e'w't't'p''''T' '.'''e'c'x'e' ','l'a'c'i't'n'e'''''w''' 't'u'B''d'i''' 's'i' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h' ''''y'l'l'a'u't'c'a''''''''''''''''''.'')'t'n'a''''''''''t'a'n't'r'o'p'm'i' 'y'l'l'a'e'r' 't'''n's'i' 'e'c'n'e''M'r'e'f'f'i'd' 'e'h't' 't'u'b' ';'k'c'a'h' '*'t'n'e'r'e'f'f'i'd'*' 'a' 'h't'i'w' 's'i'h't' 's'e'v'l''''''''''''t'n'e'm'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''nAnd oh look - those last three rows are *weird*! 29 and 23 don't add up to 65. I'm probably thrashing the CPU cache by interleaving updates in the two b-trees. Looks like a *batch_update()* method would bring that 65ms down to *52ms*'n'.'.'e'c'a'r't' 'g'n'i't'i'd'e'''''u'c'o'd'''''''g'n'i'r't's''''';'t'l'&''' 's'i'h't' 's's'e'c'o'r'p' 'o't' 's'm'9'2' 's'e'k'a't' 'n'w'o' 's't'i' 'n'o' 'y'e'p'o'R' 'c'o'd' 'e'h't''o's'e'd'i's'A'('''''''''''''''''''''' 's'j'Y' ','e'c'n'e'r'e'f'e'r' 'r'o'F'n''n'''''s't'I'''''''''''''''!''''1'l'l'e't' 'o't' '''''''''' 'e'h't' 'g'n'i'd'a'e'R'''''''''''''''e'l'b'i's's'o''''''''''s's'i'p'm'i' 's't'I' '?'s't'l'u's'e'r' 'r'i'e'h't' 'p'u' 's's'e'm' 't'h'g'i'm' 'h'c'i'h'w' ','s'r'e'h't'o'''''''''''''r'e'h't' 'f'o' 's'n'o'i's'r'e'v' 'w'o'l's' 'd'n'a' 's'm'h't'i'''''''''''''''''''''p' 'a' 'g'n'i't'i'r'w' 'e'l'i'h''''h'w' 'r'o'g'l'a' 'e'm'o's' 'f'o' 's'n'o'i's'r'e'v' 't's'a'f' 'e'v'a'h' 'y'e'h't' 'd'i'D'''''.''''''d'i''''' 'd'i'd''''''''''' 'y'e'h't' 'e'r'e'W' '?''''''''n'o'i's'r'e'v''''e' 't's'a'f' 'e'''' 'h't' '''''''''''''''''''''''''d'e'i'r'r'o'w' 'o'o't' 't'''''''t'''''''''''' 'o'''ing''''''t''' 'n'e'k'a't' '' 'o'n' 'm'''I' 'o's' ','r'o' 'n'o'i's'r'e'v' 'w'o'l's' 'e'h't' 'g'n'i's'u' 's'c'i'm'e'd'a'c'a' 'e'h't' 'e'r'e'w' 't'u'B' ''''''''' 'y'g'''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'g'u''''''''''g'h'u'o'''' '''' '-' 'r'h't' 'g'''''''''''''*'d'r'i'e'w'*' 'e'r'a' ''''''''''' '''o'g'a'''d'e''''''' '''''''s'r'a'''e'Y''''''''''''''''''''s'e'e'r't'-'b' 'o'w't' 'e'h't' 'n'i' ''''''''''''''''''''''''' 'd'l'''u'o'h's''''''!'t'i' 'p'o't'S' '!'o'N' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'e'l'b'o'r'p' 'e'g'a'u'g'n'a'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'o'd''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'''''''''!'w'o'l's' 's'i' ''i't''https://josephg.co' editin' trace'g' ' javascrip' strin''g't'a'''''w' can'' merg' co'.''''''''''' 'e'h't' 'o't' '-' '''nc'rren' edit''''''''''''''''''''''':'r'e't's'a'f' 't'o''''t'l' 'a' 's't'i' 't'u'B' '.'' bu' it' 's't's't'''ud'e't'e'm/blog/''''''''''''''''''e'c''''''''''''''''''''''''''' javascript' no''' 't'''' not''''g'n'''i'r'' allow'' ', using a javascript string, well''''''''''''''''''''''''''''''''d'''''''''''''''''''''''it might not concurrent edits but ''''''''''''''' 'd'e's'a'b' ''''''''''''''''''''''''''e'g'u'h'''''''''''''''''w'o'l's' 'd'n'a' 'g'i'b' '''''''''''''''''''''''''''''''d'n'a''''i' 'a'i'm'e'd'a'c'a' 'n'o' 'k'c'a'b' 'y'm' 'd'e'n'r'u't' ''s't'e'g' 's'e's'u' 'e'g'r'e'm'o't'u'a' '''''''''''''''''t's'a'f' 'y'r'e'v' 't'''n's'i' 'e'e'r't''d' 'e'h'T''''''' '''T''''''''''' 's'i' 'e'e'r't' 'A'''its slow:'''''''' 's't'i' 't'u'b' 's't'i'd'e' 't'n'e'r'r''''d'u'c'n'o'c' 'e'g'r'e'm' 't'''n'a'c' 'e'w''t's' 't'p'i'r'c's'a'v'a'j' 'a' ''a'r't' 'g'n'i't'i'd'e' 'crdts-are-the-future/'i'd'e' 't'n'e'r'r'u'c'n'o'c'''''''''''''''''''''''' 't'o'n' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'g'n'i't'i'd'e' 'e'v'i't'a'r'o''''''''''s'r'a'e'y' 'r'o'f' ''b'a'l'l'o'c' 'f'o' 'e'r'u't'u'f' ''' ''e'h't''''''''''t'a'h't' 's'e'o'd' '' 'e'r'''y'e'h't' '''''''' 'k'n'i'h't' 'I''k'n'i'h't' 'I' '''as '''''''''''''''''''''*'''''''''*'' ''*''''*'''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't'''''''''''''''''''''''''''''''o't' 'w'o'''h' 't'u'o' 'e'r'u'g'i'f' '''''''''''''''''''''''l'l'a'c' 't'a'h't''''''''''''''''''''''''''''''''''''''''''''''d'n'a' 's'r'e'p'a'p' '','''''''''''''p'p'a''''''''''p'p'a' 'g'n'i't'n'i'o'p'p'a's'i'd''''c' ''''''''''''''''''''''''''n'a'c' 'e'w' 'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'e'b'm'u'n' 'e'c'n'a'm'r'o'f'r'e'p' 'e's'e'h't' 't'a' 'e'v'i'r'r'a' 'o't' 'l'l'a' 't'a' 'e'm'i't' 'o'n' 'd'n'a' '''o''' '''''''''''''''''''''''''''''''''.'t'n'i'o'p' 's'i'''''''''''''''''''y'b' 's'D'I'U'U' 'g'n'i'd'i'o'v'a' 'h't' 'o't' ' ''s'u' ''.'''g'''n'i'r'b' 'd'n'A' ''''''''h' ''''''''''''''''t'i' 'e'v'o'l' 'I''''''''''''''t'n'a'i'l'l'i'r'b' 's't'i' 't'u'b' ','''o't' ''t'a'''''''''''''''''''''''''''''''''r'e'l'p'm'i's' 'h'c'u'm' 'o''''i's' 'g'n'i'h't'y'r'e'v'e' 's'e'k'a'm' ''''''''''''''''' 'd'n'a' 'e'l'o'h'w' 'e'h't' 'n''''''t'b'u'o'd''.'I''''o''''a' 'a'i'm'e'd'a'c'''''''''''''''''''''''''''','g'n'i't'i'a'w' 'f'o' 'e'd'a'c'e'd' 'a' 'r'n''e't'f'a' ',''a'''''''''''''''''''''''''''''''?'l'''''''''''''''''''''a' 'e'r'a' 'e'r'e'h't' 't'u'B' '.'''' ''''B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 'n'o' 'g'n'i'o'g''''''''''''''.'s's'e'm' ''' I'm not even sorry.''''''''''g'n'i'o'd' ''''''' 's'd'n'a'h' 'f'o' 's't'h'g'i'e'l's' 'y'r'e'p'p'i'l's' 'w'e'f' 'a' 's'''e'r'e'h't''''s't'i' 'h'g'u'o'h't' ';''''a'e'r' 'r'o'f' 's''''''''''g'n'i'k'r'a'm'h'c'n'e'b' 'e's'e'h't' ''''''''''''''''s'k'r'a'm'h'c'n'e''''e'b' 'e'h't' 'e'r'A''''''''''''''''''''''''''''''t's'u'r'-'t'd'r'c'-'t'x'e't'/'g'h'p'e's'o'j'''''''''''e't'/'g'p'h'e's'o'j'''''''h'''''''''''''r'a'k'm'c'n'e'b''''''''''''''''''''''g'n'i'n'n'u'r' 'y'b' 'k'r'''''''r'k'a'm'h'c'n'e',''B'' 'e's'e'h'''''''e'g'T''''We need to ta'T'lk abou''t b''''''''''e'r'u't''''''''''''''''''''''''''''d'e'''l'b'a's'i'd' 'r'o' 'd'e'l'b'a'n'e' 'e'b' 'n'a'c' 'c'u'r't's' ''''''o's'l'a' 'en''Thes''e benchmark''s ''B'''''''''''''''''' 's'k'r'a'm'h'c'n'e'b' 'e's'e''.'''''h'T''''''''''''''''''''''''''n'e'b' 't'u'o'b'a' 'k'l'a't' 'o't' 'd'e'e'n' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'u'o' 'g'n'i'm'o'c' 't'r'a't's' 's'r'e'b'm'u'n''''''''''''''''''''''''s'k'r'a'm'h'c'n'e'b'-'t'd'r'c'/'g'h'p'e's'o'j' 's'a' 'n'o'o's' 's'a' 'n'u'r' '''''''''''''' 's'a' 'n'o'o's' 's'a' 's'k'r'a'm'h'c'n'e'b' 'e''''''''''''''''''''''''s't'd'r'c'-'e'c'n'e'r'e'f'e'r'/'g'h'p'e's'o'j'''''''''''''e'c'n'e'r'e'f'e'r' 'y'm'h't' 'g'n'i'l'l'i'k''''''''''''''''''''''s'a' 'C'+'l'r'''''''_'l't'c'''''''c''''T'C' 'n'e'h't''''c' ','g'a'l'f' 't'a'h't' 'h't'i'w' 's'k'r'a'm'h'c'n'e'b' 'e'h't' 'g'n'i'n'n'u'r' 'n'e'e'b' 'e'v'''I' '.''e'W''Your benchmarks are weird / wrong / misleading''Al''b''' 'l''' ar' lies'e'B' yes''ver' clever.'''y'''enchmarks''Your benchmarks are weird / wrong / misleading''''''''''B''''b''' 'l'l'''''''''''''s''Ye''s ye','I know. I've made a few sleight' I'' no' even'' sorr'.'''' writin' 'g'-'''' ' 'y't'm's of hand which I want to 'fess up to and defend.''' ver''y clever.'n### How do I run these benchmarks myself?n''''s'''e'i''''''s'''''''''''''.'r'e'v'e'l'c' 'y'r'e'v'''e'y' ''l' 'e'r'a' ''A'''''''''''s'k'r'a'm'h' But its alm''o''s''t'' ''a''l''l'' ''o''n''l''i''n''e.''c'n'''e'B''''' 'h'''''' ''' ''- writin''g ''t''''' '''''''n'n''''''''''''''''''''''''''''''n'e'v'e' ''''''''.'''''''''''' 'g'n'i't'i'r'w' '-'''' ' 'y'r''''r'o's' 't'o'n' 'm'''I' '''''''''''''''''' 't'''''''''''''''''s'n'o'i't'a't'n'e'm'e'l'p'm'i' '''h'g'i'e''''a'w't'h'g'i'l' ','''' 't's'''''' ',''a'f' 'r'o'f' 'a'l'u'm'r'o'f' 'e'h't' ''''''''''''s'T'D'R'C' 't's'a'f'i'w' 'd'e't'a'r't's'u'r'f' 't'o'g' 'I'' 'g'n'i'r'e'w's'n'a''doing that work''''''''''''''''''''''h't' 'd''''''t'r'a't'''''''''''e'k''''''t''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''''''''''''''''''''''''''''''''''''''k'r'o'''''''''''''''''''''''''''''''''''s'k'l'''''''y'r''''''''''''''''nA decade ago Google Wave really needed a good quality list CRDT. So I got super excited when the papers for CRDTs started to emerge. [LOGOOT](https://hal.inria.fr/inria-00432368/document) and [WOOT](https://hal.inria.fr/inria-00445975/document) seemed like a big deal! But that excitement turned to ash when I realised the algorithms were too slow and inefficient to be practically useful. And I made a big mistake - I assumed if the academics couldn't make them fast, nobody could. I turned my back on academia and dismissed them.n'n'n'n'-'-'-'n'n'n'n'n'n'n'n'a'n'i'b'o'f' ''''' 'r'e'h't'o''''''''''''''''''''''''''t'n'a'i'l'l'i'r'b'''''''r'''o'f' 'd'e't'n'e'v'n'i'''''''.'e''''''''''''' 'r'e'd'r''''''''''''''''e'r'e'h'w''''''d'n'a' ','''y'r'e'v'e' 'o' 'n'i''''n'i'l'p''''''''''','''''''''''' 's'''n'i'v'e'K''''e'h't''''''''''e'h'T'''''''''''''''''''''''h'''''''''t'e'b' 'I''''''''e'h't' 's't'I' '.'''''k'c'a''''''''''''''''''''''''''''''''e'd'a'c'''''''''''''m'e'h't' '''t'i' ''f'o' 'y'n'a' 'e'd' 't's'a'l' 'e'h'''''''''r'e'h't'i'e' 't'i''t' 'r'e'v'o' 'a'e'd'''''''a'e'i' 't'a'h't' 'o'r'p'p'a' 'n'o'i't'r'e's'n'i' '+' '''''e's'r'u'o'c' '''f'o' ''o'e'p' 'r'e'v'e'l'c' 'f''''''''''''''''''''''''''' 'd'l'u'o'w' 'I' 'k'n'i'h't' 't'''n'o'd''''''''''''''''''''''''''''''''''''''.'r'e'h't'i'e' 't'a'h't' 'f'o' 't'h'g'u'o'h't' 'e'v'a'h' 't'''n''''''' 'e'v'a'h''''n' ''''n'd'l'u'o'w' 'I'o'''.'''I'''''''''''''''''n'n'a'm'p'p'e'l''''''''''''s't'i' ''''''t'i' 'l'l'e'K' ' 'h'c'n'u'b' 'a' '''''''''''' '''m''''''''''''''''''approach ''' 'n'o'i't'a''''i't'n'e's'e''''''''''''''''''''''''e's'e'h't'''''''''''u'o'''''''''''f'l'e's'y'm' 's'y' 'e'v'e'i'l'e'b' 't'''n'o'd' 'I' ''''''''''''''''''''''''''''''''''''''''s't'l'u's'e'r' 'k'r'a'm'h'c'n'e'b' 'r'u'o'y' 'n'u'r'-'e'r''''''''''''''''''''''''?'s't'l'u's'e'r' 'r'u'o'y' 'e'c'u'd'o'r'p'e'r' 'I' 'o'd' 'w'o'H' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'l'u's'e'r' 'r'u'o'y' 'd'e't'a'r'e'n'e'g' 'h'c'i'h'w' 'e'd'o'c' 'e'h't' 'd'e'h's'i'l'b'u'p' 't'''n''''''''''''''''''''''''''''.'e'n'i'l'n'o' 'l'l'a' 't'''' 'e'h't''s'o'm'l'a' 's'','''t'i' '''''''''''''''''''''s't'd'r'c'''''''n'i''''''''''''o'''t'n'i' 'd'e'm'm'a'j' 'l'l'a' ''-'e'c'n'e'r'e'f'e'r' 'd'n'a' 't'u'B' '''''''s't's'e't' '.''''e'v'a'h' 'u'o'Y' '#'#'#''n'n'''''''''''''''''''''''''''''''''''''''''''''''''m'o'r'f' 'e'm'o'c' ''''''''''''''''''''''n'o'i's'r'e'v' 's'i'h't' 't'a' ','''''s'd'e'e'n'''''''''''''''n'a'r' 'I''''''''''''''''''''''''''''''''''''''e'g'd'o'p''''b' 'e'g'd'o''''The reference-crdt'''s't'i's ben'''''e'r'e'h' '''chmark code is [in the repository here](https://github.com/josephg/reference-crdts/b''y'b'lob/m'''''''''''''''''''''''''''''''''''''f'o' 'p'o't' 'e'h't' 't'a' 't'n'a't's'n'o'c'''''''''c' 'l'a'b'o'l'g' 'e'h't' 'g'n'i't'i'd'e'''''''''''''''''''''''''' ''''''''''w'o'h' 's't'a'h't'g'n'i'k'r'a'm'''''''''''''''''''''''''''''''''''''y'l'e't'a'r'u'c'c'a' ''''''''''''''''''''''''''''''''''t'n'e'm'n'o'r'i'v'n'e' 'g'n'i't's'e't' 't'i'n'u' 'e'h't' 'n'i'''''''''''''''''''''''''''''''''''')''''''''''''''''''''''''''''''''''''''''y'r'o'm'e''''''''''''''''''''''''''''''''''s'k'r'a'm'''''''''''''''''''''''''''''''''''''''''''''''n'o'i's'r'e'v' 's'i'h't' 't'a' ','y''https://github.com/josephg/reference-crdts/tree/fed747255df9d457e11f36575de555b39f07e90')'9'(''r'o't'i's'o'p'e'r' 's'i'h't' 'm'o'r'f' '''''(']'s't'.'s't'd'r'c'h'c'n'e'b' '''''''''''''''''''''''''''''[' 'n'o' 's'd'n'e'p'e'd' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 's't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'e'h'T' 'm' 'e'h't' 's'e'g'n'a'h'c' 'e'd'o'm' 't's'e't' 'e's'u'a'c'e'b' 's't's'e't' 'g'n'i'r'u'd' 'e'g'a's'u'''''''u's''''''' 'g'n'i's'u' 'y'r'o'm'e'm' 'e'r'u's'a'e'm' 't'''n'a'c'''' 'u'o'y' 'e't'o'N'(' '.'g'n'i's'u' 's't'i''h'c'n'e'b' 'e'l'i'h'w'''''''''''''''''''''''''''''''''''''''''''t'u'o' 'g'n'i't'n'i'r'p' 'f'o' ''''''''''''''''''''''''''''''''node --loader ts-node/esm --expose-gc bench.t'`'s'`' 'h't'i'w' 'e'd'o'c' 's'i'h't''''''''''' 'e'd'o'c' 's'h'i't' 'n'u'r' 'n'a'c' 'u'o'Y' '.'''''' 'd'n'a' 't's'i'g' 'e'h't' 'm'o'r'f' 'h'c'a'o'r'p'p'a' 'e'h't' 'w'o'l'l'o'f' ','ain/'''''''''''''''''''''''s'e'i'r'e'u'q' '''d'd'a' 'o't' 'd'e'e'n' 'l'l'''bench.ts). If you want to measure m'''emory usage you can use the same approach as I did'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''https://github.com/josephg/reference-crdts/blob/main/bench.t'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i' 'd'i'd' 'I' 's'a' 'h'c'a'o'r'p'p'a' 'e'm'a's' 'e'h't' 'e's'u' 'n'a'c' 'u'o'y' 'e'g'a's'u' 'y'r'o'm'e'm' 'e'r'''''''''''''m' 'r'e'u's'a'e'm' 'o't' 't'n'a'w' 'u'o'y' 'f'I'''''''a'c' 'u'o'Y' '.')'s'(']'e'r'e'h' 'y'r'o't'i's'o'p'e'r' 'e''''i'h't' 'n'i'[' 's'i' 'e'd'o'c'''''''''h't' 'n'i' 's'i' 'k'r'a'm'h'c'n'e'b' 's't'd'r'c'-'''' 'e'c'n'e'r'e'f'e'r' 'e'h'T'n'n'h' 'a' 'f'o' 't'i'b' 'a' 's'''''''''s't'l'u's'e'r' 'i' 'g'n'i'h't'y'r'e''''v'e' ','' ''''''''''''n':''''''''''''''t' 'f'o' 't's'o'm' ','''''''''''nThe benchmark code for my JS string baseline, yjs and automerge is [in th'''''''''''' 't'n'a'w' 'u'o'y' 'f'i'is github gist](https://gist.github.com/josephg/13efc1444660c07870fcbd0b3e917638). Its a mess; but messy code is better than missing code.nnFor my rust implementation I'm benchmarking [this code](https://github.com/josephg/text-crdt-rust/t''n'n''''''''' 'o's'l'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''https://github.com/josephg/crdt-b'''''''''''''''n'u'r' 'o't' 'r'e'd'r'o' 'n'i'enchmark''''''''''''''''''''''''''.'s't's'e't' 'e's'e'h't' 'f'o' 't's'o'm' 'r'o'f' ')'s'(']''''''''y'r'o't'i's'o'p'e'r''''''''''r'o't'i's'o'p'e'r' 's'i'h't'[' 'm'o'r'f' '`'z'g'.'n'o's'j'.'r'e'p'a'p'-'e'g'r'e'm'o't'u'a'`' 'd'e'e'n' 'l'l'''u'o'Y' 'ree/ba20b6386c0472958f33024ce0b806e75470e1ca). Run it with `cargo criterion yjs` or `cargo criterion ropey` to isolate the ropey baseline. Turn on and off the inline rope updates my commenting out lines near the top of src/universal/doc.rs. You can add `--features memusage` to print out memory allocator statistics - which is how I'm figuring out how much RAM I'm using.nnI haven't uploaded my rust crdt wasm wrapper anywhere.'n'n':'''''''''''' 's'''e'r'e'h''''' 'e'h't' ','f'l'e's'r'u'o'y' 's'k'r'a'm'h'c'n'e'b' 'e'h't' 'f'o' 'y'n'a' 'h't'i'w' 'y'a'l'p' 'o't' 't'n'a'w' 'u'o'y' ''''''''''''''''''''''''''''''''''''''''''''''e'w' ''e'''w'''''o'h' 's'i' 'y'l's'u'o'i'r'e's' 'e'r'o'm' 't'o'l' 'a' 'e'k'a't' 'o't' 'd'e'e'n' 'e'w''''f'I'n'n''r'p'e'r'''''''' 's'n'h'a'''''''''''''''' 't's'u'm'''''''''g'n'i's'u' 'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'''''''''''''''y'l'p'p'a''''''.'k'r'o'w' 't'''n's'e'o'd' ''''a'u't'n'e'v'e''''''''t'i' 'e'v'a's' 'n'e'h't' 'd'n'a' 'n'e'p'o' 's't'i' 'e'l'i'h'w''''' 'r'o'f' 'm'a'r' 'n'i' 't'i' 'p'e'e'k' ','t'c''''t'e'j'b'o' 'n'a' 'd'a'o'l''' 'f'o' 'l'e'd'o'm' 'e'h't' 'o's' '-' '''''''''''','d'i' '''''''''''''''''''''''''''''''''''''''''.'r'e'h't'i'e' 't'a'h't' 'f'o' 't'h'g'u'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'c'a' 'n'i' 't'a'h't' 'e'e's' 'o't' 'e'v'o'l''''''''''e'v'o' 'd'''I' '''''''''''''''''''''''''''''''''''''.'n'o'i't'c'a' 'n'i' 't'a'h't' 'e'e's' 'o't' 'e'v'o'l' 'd'''I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'o'i't'c'a' 'n'i' 't'a'h't' 'e'e's' 'o't' 'e'v'o'l' 'e'r'u's' 'd'''I' 't'u'b' ';'t'h'g'i'r' 'y'l'l'a'u's'u' 's'i' 'n'i'v'e'K''''I''''''d''''''d'I' '.'y'a'w' 'e'l'b'a'n'o's'a'e'r' 'a' 'n'i' 's'i'h't' 't'n'e'm'e'l'p'm'i' 'o't' 's'r'e'd'i'v'o'r'p' 's'''s'j'Y' 't'p'a'd'a''''''''' 's'i'h't' 'o'd' 'n'a'c' 'u'o'y''''''''''' 'e'r'a' 'e'r'e'h't' 's'y'a's' 'n'i'v'e'K' ':'t'i'd'E' '>'n'n'''''''n'n''h't' 'e'v'a'h' 't'''n'd'l'u'o'w' 'I'''''''''''''''''''''''''''''''''''''''''' 't'a'h't' 't's'a'p' 't'h'g'i'r' 'd'e'k'l'a'w' 'e'v'a'h' ''''''''''t'''n'd'l'u'o'w' 'I' 'k'n'i'h't' don't''''''''''''l'u'o'w' 'I' 'k'n'i'h't' kno'''''''''''''''''''''''''' 'n'a'c' '''I''''''''''g'h'u'''''x'0'1' 'o'h't' 'e'v'a''' 'f''''''''''''s'e'c'n'e'r'e'f'f'i'd'o''h' ''''''''''''''' 't'''n'd'l'u'o'w' 'I' 't'a'h't' 'w'''''''''''''''w'o'n''''''''''''''''''''''''''''''''''''''''''''''y'm' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h't'i''''''''''h'''n'n''''''''''!''''''''o'S''''''.'w'o'n'k' 't'''n'o'd' 'I' 'i't'w' 'o'd' 'o't' 'g'n'i'h't'y'r'e'v'e' 'd'n'a' ','t'u'o'y'a'l' 'y'r'o'm'e'm' 'h't'i'w' 'o'd' 'o't' 'g'n'i'h't'o'n' 's'a'h' ''''''''''''''''''''''''''''''''''''t'r'a'p'a' 'e's'a'e't''''''''''''''''''''?'r'e'l'i'p'm''''''''''''''''''''''''''''''''''''''''''''''''''?'t'h'g'i'r' ','l'a'm'r'o'n' 's'''' 't'a'h'T' '.'s'e'i'r'o't's' 'g'n'i'k'r'a'm'h'c'''''''c'h'n'e'b' 'e'v'o'l' 'I' ''o'c' 't's'u'r' 'e'h't' 'o't' 's'k'n'a''''''''''s'k'n'h't'''''''''o't' 'e'u'd' 'y'l'p'm'i's' 's'i' 's'j'y' 'd'n'a' 'e'e'w't'e'b'''''''n'e'e'w'e'b' 'e'c'n'e'r'e'f'f'i'd' 'd'e'e'p's' 'e'h't' 'f'o''''f' 'h'c'u'm' 'w'o'H'k' 't'''n'o'd' 'I' 't''''''''s'e''''''''d'i'o'v'a' ''l'p'u't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','c'i''''''''''''''''smart ''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'i' 'g'n'i'c'i't'o'n' 't'u'o'h't'i'w' 't's'a'p' 't'h'g'i'r''''''' 'g'h'r'i't' 'd'e'k'l'a'w' 'y'l'e'r'u's' 'e'v'a'h' 'e'l'p'o'e''''p'p''p''''''''p' 't'r'a'm's' '0'0'1' 't'a'''''''''s't'h'g'i'e'l's'h't' 'a'e'd'i't's'a't'n'a'f''''''''''''j' 's'u'o'i'v'b'o' 'f'o' 't'r'o's' 'e'h't' 's'i' 'e'r'e'h' 'e'b'i'r'c's'e'd' 'I' 'h'c'a'o'r'p'p'a' 't's'i'l' 's'''n'i'v'e'K' 'd'n'A' '.'t'a'h't' 'h't'i'w' 'p'u' 'e'm'a'c' 'o'h'w' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I' ')''''''''''''''''''d'n'A' '.'s'u'i'n'e'g' 's'i' ''n'e'g'a'(' ''o' 'm'e't's'y's''''''''''''''''''''''''' ''''d' 'n'a' 'g'n'i't'a'r'e'n'e'g''''''''' 'g'n'i'r'o't's' 'e'v'a's' 'o't'''''''''''''''''s'D'I'U'U' 'f'o' 'd'a'e't's'n'i' ' 'e'h'T'''''''' 'e'h'T'''''''''''''''''''''''''''''''''''''''''''e'g'r'e'm'o't'''''''''''''''''''''''''''''''''''''''''''''''' 'n'''''''''''''''''''''''''''''''''''''s'r'e'b'm'u'n' 'e'c'n'e'u'q'e's' 'g'n'i't'n'e'm'e'r'c'n'i' 'g'n'i's'U''''' 'd'n'A' '''''i''' 't'n'e'l'a'v'i'u'q''''''''''u'q'u'e' 'e'h't''''''' 's'''s'j'Y' 'r'o'f' 'n'o'i't'a'r'i'p's''''''''''i's'p'n'i' 'e'h't' 's'a'w' 'd'n'a' ',''u'A' 'r'o'f' 'e'd'a'm' 'n'i't'r'a'M' '''''''''''''''''''''''''''''''''''''.'''''''''''''''' 'd'n'a' '-' 'c'i't's'a't'n'a'f' 's'i' 'm'e't's'y's' 'g'n'i'd'o'c'n'e' 't'n'e'm'u'c'o'd'''''-'n'u'r' 's'''e'g'r'e'm'o't'u'A''''''''''''''''''''''''' 't'i' 'e'n'o'd' 'e'v'a'h' 't'''n'd''''n'l'u'o'c' 'I' ''''''''''''n'''n'a'm'p'p'e'l'K' 'J'''''''''''n'i't'r'a'M' 'd'n'a' ''''o'r'f' 's'a'e'd'i' 't'a'e'r'g' 'e'm'o's''w' 'd'r'''''''''''''''!'e'd'u'd' 's'k'n'a'h'T' ''a'h' 'e'm'o's' ',''''''''''''''.'')'*'n'i'v'e'K''''k'*' 'd'n'a' 'e'd'a'c'e'd' 'a' 'k'o'o't' 't'i' ','l'l'e'W'(' '.'s'm'h't'i'r'o'''''''o'''''''h'r'i'g'l'a' 'e's'e'h't' 'f'o' 'e'r'u's''''t'a'e'r't' 'e'h't' 'h't'i'w' 'n'r'u't'e'r' 'd'n'A' ''s'a'f' 'a'm''''a' 'o't' 's'r'a'w'o't' 'g'n'i'n'r'u't'''''''''''''''''''''''''''''' 't'n'e'i'c'i'f'f'''''''''' systems''Wow' ' wa''''s'I','''''''''''s''But''''l'l'e'W' it'''''''''''''''' tur'https://githu'''e'h't'b.com/aut'''''''''''''''''''''''h'c'a'o'r'p'p'a' 't'h'g'i'r' 'e'h't' 's'a'h' 'omerge/automerge-perf/'ns '[''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'd'o'h't'e'm' 'l'a'u'd'i'v'i'''''''''''n'o'i''you're'''''''''''''''''''''e'v'i'v'r'u's''''''''y'a'''''''''''' ','r'a'f' 'y'b' 't'u'B''w'y'n'a' ' 't'''n'o'w' 't'i't'c'n'u'f' 'a'd'n'i' ''''''''''''''''''''''''''''''''''.'r'e't's'a'f' 'g'n'i'h't'e'm'o's' 'h't'i'w' 't'i' 'e''''i'c'a'l'p'e'r'g'n'i'z'i'm'i't'p'o' 'o't' 'g'n'i'v'o'm' 'e'r'o'f'e'b' ''''''''''b'''''' 'n'e'h'T' '.'''s'e'r'u't'c'u'r't's'''' 'a't'a'd' 'd'n'a' 'm'h't'i'r'o'g'l''''n'a''''''''''''''d'n'a' 'm't'h'i'r'o'g'l'a' 'e'r'o'c' 'e'h't' 'x'i'F' '.'out I'''''https://github.com/automerge/automerge')'/'(']' was'''''s'a'w' 'I' ',''''s't'I'w'o'W'm'e't's'y's' 'e's'o'h't' 'f'o' ''e' 't'u'o'b'a' '''''''''''''''''''''''''''' '.'n'u'r' 'o't' 's'e't'u'n'i'm' '5' 'y'l'r'a'e'n'g'n'i'h't'y'n'''''''''''''''''n'i''''''''''''''''s'd'n'o'c'e's' '''''''''g'n'i'''''' 'k'o'o't' 'I''5'6'0''''6'.'0' '.'l'l'i'm'''n'''u'r' 'o't' ''a''''' 'n'o'i''''''''''''' 'n'i'o't'''a'c'o'l''''''''''''''''''5'6'''''''4'5''''''''''''''''''''''r'e't's'a'f' 'x'0'0'0'5' 'y'l'r'a'e'n''''''''W''''w''' 'o'S'''''''''''''''''''''''''''''t's'r'i'F' '''.'o'n' ','t'i''''''''' 'h't'r'a'e' 'n'o''a'''''''n'a' ''W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' all the steps''''''''''''''''''''''.''''t'u'B't's'a'f' 'r'e'p'u's'':' 't'i' 'e'k'a'm' 'o't' that make it fast.'''' ''I '''''''''' 'I' '''' 'h'g'u'o'r'h't' 'u'o'y' 'e'k'a't' 'l'l'''I''''''!'r''Sometimes when I pick up a new '''''''''''''''''k'c'i'u'q' 'a' 'd'n'a' 'h'O'''''''''''''''' ':'e'd'i's'a' 'n'a' 't's'u'J'(''''''''''''''''''''''''''''I' '.'t'n'e'''''t'e'y'''''''''''''''''''''''''e'm'i't' 'e'm'i'r'p' 'r'o'f' 'm'o'm' 'e'h't' 't'a' '''e'''g'r'e'm'o''''''''''''''''''''''''''''''''' 'o'''''''''''''''''''''''s'''''' 'r'e'h't'o' 'd'n'a' 's'j'Y' 'i'S'''''''''''''''''''''''''''s'n'o's'a'e'r' 'e'h't' 'f'o' 'e'm'o's''' 't'I' '.'n'o'i't'a'd'n'e'm'm'o'c'e'r' 'y's'a'e' '''''''''''''''y'a'w' 'e'm'a's' 'e'h't' 'n'i''n''''''' 's'a''t'u'a'''''e'c'n'''''''''''''t'i' 'd'n''''''''''t'n'e'm'e'l'p'm'i'a't's'r'e'd'n'u''o'''''''''''''''''''''''y'd'a'e'r' 't'o'n' 's't'i' '-' 't'e'y' ''['''''''''''''''''''''''''''e'm'a's' 'e'h't' 'n'i' 'h't'o'b' ',' https://github.com/yjs/yj''')'s'(']''''''t' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a''' 's'u'o'i'''s''r'u'c' 'e'r''''''''''''''''''''''''''''''''''''''''''''!'e'e'r't' 'a' 's'a' 's'i'h't' 'w'a'r'd' 'n'a'c' '''''e'W''''''''''''')'!'n'o'o's' 'y'h'w'''''''''''''''''''''''''''''''' 'y'm'''''''''''''''''''''''''''''''''''o't' 's'e'g'n'a'h'c' 'n'i' 'd'e't'l'u's'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''protocol''''''d'n'''''e's'o'h't''A' '''''''''y'k'r'a'l'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''y'l's'u'o'i'v'b'o' ','o'o't' 'e'n'o'g' 'e'r'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'n'''''e'h'''''''e'j'T'''''''''''''''''''''''''''''''''''''''''''''''a''''''''')'e'v'i't'i'r'e'p'm'i' '>'-' 't'p'i'r'c's'a''''''''''''''''''''g'n'''''''''''''t' 'n'g'i's's'a'i's's'e'u'g' 'y'l'n'o' 'm'''''''''''''''''''''''''''''''''''''''''''''''''''su''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y''''''e'd'''o'c' ''''''y''' ','d'n'A''m''''''''''''''''''''''''''''''''''''f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'r'e'h' 'w'o'h's' 'I' 's'n'o'i't'a't'n'e'm'e'l'p'm'i' 'n'e'e'w'''''''''''''''''''''''''''e'''''''''''''''''''''''''' 'g''!''''''''e's'a'e'l'p' 'n'i'k'r'a'm'h'c'n'e'b'''''e'd'o'c' 'e'h't' 'e'm' 'w'o'h'S'l'b'a'c'u'd'o'r'p''''''''''''''''''''''''''''''''''''''''?'s't'l'u's'e'r' 'k'r'a'm'h'c'n'e'b' 'e's'e'h't' 'd'e't'a'r'e'n'e'g''''e' 't'a'h't' ''e'r''''''''''''''?'e'l'b'a'c'u'd'o'r'p'e'r' 's'i'h't' 's''''''''''''''''i'h't' 'S'I' ''''''''''''''''''''''''' '.'u'o'y' 'e'v'e'i'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''','e'n'i'l'e's'a'b' '''g'n'i'r't's' 'S'J' 'y'm'''''''''''t'p'i'r'c's'a'v'a'j' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'd'o'c''''''s'k'n'i'l''''''e''' ''d'o'c' ' '''''''''''''''''''''''''.'g'n'i's's'i'm' 'n'a'h't' 'r'e't't'e'b' 's'i' 'y's's'e'm' 't'u'b' ';''''.'s's'e'm' 'a' 's't'I' '''''''''''''''''''''''t's'i'g' 'b'u'h't'i'g' 's'i''' ''h't' 'n'i''''''''https''''''''''e't'a'l'o's'i' 'o't'://gist.github.com''n'n'''/josephg/13efc1444660c07870fcbd0b3e91763''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i' 'h'c'i'h'w' '-' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.')'g'n'i's'u' 'm'''I' 'M'A'R''''r' 'h'c'u'm' 'w'o'h' 't'u'o' 'g'n'i''''''''''''' 't'u'o'r'u'g'i'f'''''''''''' 'g'n'i't'a'r'e'n'e'g' 'm'''I' 'w'o'h' 's'i' 's'i'h'T'(' '.'''''''''''''T'(' '.'s'c'i't's'i't'a't's' 'r'o't'a'c'o'l'l'a' 'y'r'o'm'e'm' 't'u'o' 't'n'i'r'p' 'o't' '`'e'g'a's'u'm'e'm' 's'e'r'u't'a'e'f'-'-'`' 'd'd'a' 'n'a'c' 'u'o'Y' ''''''''''''''''''''''''''''''''''t'd'r'c' '' 't's'u'r'''''''''''''''''''''''.'e'r'e'h'w'y'n'a' 'r'e'p'p'a'r'w' 'm's'a'w' 'y'm' 'd'e'd'a'o'l'p'u' 't'''n'e'v'a'h' 'I'n'n'''''''''''''''''''''''''https://github.com/josephg/text-crdt-rust/tree/ba20b6386''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'r'.'c'o'd'/'l'a's'r'e'v'i'n'u'/'c'r's' 'f'o' 'p'o't' 'e'h't' 'r'a'e'n' 's'e'n'i'l' 't'u'o' 'g'n'i't'n'e'm'm'o'c' 'y'm' ''''''''''''''o' 'e'h't' 'r'a'e'n'''' 'n'i' 's'e't'a'd'p'u' 'e'p'o'r' 'e'n'i'l'n'i' 'e'h't' 'f'f'o' 'd'n'a'''''''a'o' 'n'o' 'n'r'u'T' '.'e'n'i'l'e's'a'b' 'y'e'p'o'r' 'e'h't' 'r'o'f' '`'y'e'p'o'r' 'n'o'i'r'e't'i'r'c' 'o'g'r'a'c'`' 'r'o' '`'s'j'y' 'n'o'i'r'e't'i'r'c' 'o'g'c0472958f33024ce0b806e75470e1c'''''''''''''''''''r'a'c'`' 'h't'i'w' 't'i' 'n'u'R' '.')'a'(']'e'd'o'c' 's'i'h't'[' 'g'n'i'k'r'a'm'h'c'n'e'b' 'm'''I' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 't's'u'r' 'y'm' 'r'o'F' '.')'8'(']'e'r'e'h'[' 's'i' 'g'n'i'n'n'u'r' 'm'''I' 'e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'y' 'r'o'f' 'e'd'o'c' 'k'r'a'm'h'c'n'e'b' 'e'h'T'n'n'y'a'l'p'''''''''''''t''''&' 'y'f'i'r'e'v' 'o't' 't'n'a'w' 'I' ''e'b' 't'''n'o'd' 'I'''''''''''''''''''''''''''''''''''''''''''''?'s'k'r'a'm'h'c'n'e'b' 'r'u'o'y' 'n'u'r'-'e'r' 'o't' 'e'd'o'c' 'e'h't' 's'i' 'e'r'e'h'W''''''''''''''''''''''d'e'h's'i'l'b'u'p' 't'''n'e'v'a'h' 'u'o'Y' '#'#'#'n'n'n''t'e'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'a'h't' 'f'o' 't'u'o' 'k'c'e'h' 'e'h't' 'd'a'e'r' 'd'''I' '.'e'd'i'u'g' 'd'e'l'i'a't'e'd' 'e'r'o'm' 'a' 'h's'i'l'b'u'p' '''''''''e'm' 'w'o'h's' 'd'n'a' 's'e'c'n'e'r'e'f'f'i'd' 'e'c'n'a'm'r'o'f'r'e'p''''''''''''' 'd'n'a' 's'e'g'n'a'h'c' 'e's'e'h't' 'f'o' 'h'c'a'e' 't'r'a'p'a' 'l'l'u'p' 'o't' 'e'n'o'e'm'o's' 'r'o'f'''' 'o't' '*'e'v'o'l'*' 'd'''I' ',''''''u'o'y' ''''''' ','s'r'e'h't'o'b' 's'i'h't' 'f'''' 'I''o'''''''''''''''f'f'u't's''''''''''s'c'i'f'i'c'e'p's' '''''''''d'e'Yes. This is a reasonable criticism of this approach. I covered too much territory here to be as thorough as I'd like. I did benchmark 4 different CRDT implementations here - 2 of which I wrote myself from scratch. And this post is nearly 7000 words. If this bothers you, please do more detailed benchmarks. I'd love to''t'n'e'v'n'i''''''''''s'w'e'n' 'e'k'a'f''''''''''r'e'l'i'p'm'o'c''''''''''p'm'o' 't's'u'r' 'e'h't'''f'o'''''''''''''t's'a'f' 's'i' 't's'u'r' 'e's'u'a'c'e'b' tidying up automerge'''' '''s'u'o'i'v'b'o' 'e'm'o's' 'g'n'i'o'd' ''''''''''''''''''''''e'g'r''''''''''''''''''''''''''''''''''''''''''''''' 'd'e'l'i'a't'e'd' 'e'r'o'm''''''''''''''''''''''''''''''' 'o't' 'e'v'o'l' 'd'''I' '.'s'k'r'a'm'h'c'n'e'b' 'e's'o'h't' 'o'd' 'e's'a'e'l'p' ','u'o'y' 's'r'e'h't'o'b' 's'i'h't' 'f'I'''''''''''''e's'o'p'p'u's' 'I' 'o'S' '''''e'm'o't'u'a' 'p'u' 'g'n'i'y'd'i't' 'd'n'a' 's'j'e'l'b'a't'u'm'm'i' 'g'n'i'v'o'm'e'r' 't's'u'j' 't'c'e'p's'u'''''''u's's' 'I' '-' 'h't'r'o'w' 's't'i' 't'a'h'w' 'r'o'f' 'd'n'A' ''''v'a'j' 'P'F'(' '.'''''''(' 't'n'e'r'e'f'f'i'd' 'y'l'l'a't'o't' 's'i' '''''A''o's'a'e'r' 'r'e'v'e't'a'h'w' 'r'o'f' '''''''''' 's'''e'g'r'e'm'o't'u'a' 't'u'o''''''''''''''''''''''''''''''''''''''''' 'e't'u'b'i'r't's'i'd'''''''''''''''''''''''''''''d'e'n'e'p'p'a'h' 't'a'h't' ''''''''''''''''''''''''''''''''''.'s'e'g'n'a'h'c' 'e'h't' 'l'l'a' 't's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i'h't' 'f'o' 't'r'o'''''''''''''''''''''''''''''.''Yes. This is a reasonable criticism of this approach. I covered too much territory here to be as thorough as I'd like. I did benchmark 4 different CRDT implementations here - 2 of which I wrote myself from scratch. And this post i'''''''''''''''''''''''''''.'y'd'a'e'r'l'a' 's'd'r'o'w' '0'0'0'7' 'y'l'r'a'e'n' 's''Y''.'T'''''''''?'p'u' 'e'd'a'm' 't's'u'j' 's'i' 's'r'e't'n'i'o'p' 'f'o' ''s' 's'i'h't' 'r'o'f' ''''''''''''''''''''''''n'o'i's's'u'c's'i'd' 'y'm' 'l'l'a' 'd'n'a' ','t'p'i'r'c's'a'v'a'j' 'n'a'h't' 'r'e't's'a'f' 'h''''''''''''''''''' 's'i' 't's'o'p' 's'i'h't' 'd'n'A' 'c'u'm' 't'a'h't' 't's'u'j' 's'i' 't's'u'r' 'e'b'y'a'M' ''g'n'o'm'a' 'p'u'd'e'e'p's' 't'a'h't' 'e't'u'b'i''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h' ''''''''''''''''''''''''''''''''''''''''''h'c't'a'r'c's' 'm'o'r'f' 'f'l'e's'y'm' 'e't'o'r'w' 'I' 'h'c'i'h'w' 'f'o' '2' '-' 's'n'o'i't'a't'n'e'm'e'l'p'm'i' 'T'D'R'C' 't'n'e'r'e'f'f'i'd' '4' 'k'r'''''''''' 'r'k'a'm'h'c'n'e'b' 'd'i'd' 'I'''e'W' '.'e'k'i'l' 'd'''I' 's'a' '''''''h'g'u'o'r'o'h't' 'e'b' 'o't' ''.'e'r'e'h' 'y'r'o't'i'r'r'e't' 'h'c'u'm' 'o'o't' 'd'e'r'e'v'o'c' 'I' '.'h'c'a'o'r'''''''r'a'p'p'a' 's'i'h't' 'f'o' 'm's'i'c'i't'i'r'c' 'e'l''''''''''e'l'i'b'a'n'o's'a'e'r' 'a' 's'i' 's'i'h't' ','s'e'y' 'd'n'A'c'i'h't'i''''o'l'o'n'o'm'r't'''t'a' 'o't' 'w'o'h' 'w'o'n'k' '*'y'l'l'a'e'r'*' 't'''n'o'd' 'I'h'g'u'o'r'h't' 'p'u' 'p'o'p'''''''''d'e'r'a'e'p'p'a' 't'a'h't' 's'y'a'r'r'A'8't'n'i'U' 'e'h't' 'l'l'a' 'd'n'A' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''?'p'u'd'e'e'p's' 'e'h't' 'e't'u'b'i'r't't'a' 'e'w' 'd'l'u'o'h's' 't'a'h'w' 'o't'''''''''''''''''''s'i'h't' 'f'o' 't'r'a'p'''h'c' 'h'c'i'h'w' 't'u'B''''' 'w'o'H' '.'e'g'n'a'h'c' 's'i'h't' 'm'o'r'f' 'e'c'n'a'm'r'o'f'r'e'p' 'x'0'1' 't'o'g' 'e'W''''''''e'd'o'c' 'y'M'''''''h'T'n'n''''''''''''''s'''''''''''''''''''''''''''''''''''''' 'm'o'r'f''''''''''''''''''''''''''''''''''i''' 'o'S''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't' 'r'e'w's'n'a' 'o't' 'e's'o'p'p'u's' 'I'n'n'.'''''''''' 's'a'r'e'h'w' ';'e'r'e'h' 's'p'u'd'e'e'p's'''''''''''''''''e'c'n'a'm'r'o'f'r'e'p' 'e'h't' 'g'n'i't'u'b'i'r't't'a's''''''''''''i'm' 'm'''I' 'e'l'b'i's's'o'p' 's't'I' '''' '.'g'i'b' 'y'l'r'a'l'i'm'i's' 'e'r'a''''''''''''' 'e'd'o'c' 't's'u'r' 'y'm' 'o't' 's'j'y' 'd'n'a' ',''''''''''s'i' 's'j'y' 'o't' 's't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'm'o'r'f' 'e'g'n'a'h'c' 'e'h'T''''''''' 'n'a'c' 'w'o'H''''W''''''''''''''''''''''''''''''''e'h't' 'e'd'a'm' 's'e'g'n'a'h'c' 'e's'e'h't' 'f'o' ''''''''''''''''''''''''''''''''''''''''''''''''''Which''''''' 'h'c'i'h'W'n'n'e'l'y't's' 't'p'i'r'c's'a'v'a'j' 't'n'e'r'e'f'f'i'd' 'a' 'd'''''''d' 'e's'U' '-'n'l'o'c'o't'o'r'p' 'd'n'e'k'c'a'b' '/' 'd'n'e't'n'o'r'f' 's'''e'g'r'e'm'o't'u'a' 'd'e'v'o'm'e'R' '-'n's'j'e'l'b'a't'u'm'm'i' 'd'e'v'o'm'e'R' '-'n')'t's'i'l' 'o't' 'e'e'r't''''''''''''''''' '>'-' 't's'i'l'(' 'e'r'u't'c'u'r't's' 'a't'a'd' 'e'r'o'c' 'e'h'T'''''e'r'o'C' '-'n'n':'s'e'g'n'a'h'c' '''''''''s't'd'r'c'-'e'c'n'e'r'e'f'e'r'''''''u'a' 'o't' 'e'g'r'e'm'o't'u'a' 'm'o'r'f' 'g'n'i'v'o'M' ' 'e'e's' 'l'l'''''''''''l'u'o'Y'''''''''''''''''''''''''''''''t'c'a' 's's'a'l'c' 'a''''''''''''''''''w''' '-' 't'i' 't'e'g' 't'''n'o'd' 'I'''''''s'i' 'y'h'W'' 's'i' 's'n''''''''?'''w'o'l's' ''''' 't'''s'u'j''o's''h'a'J''''Y' '''' 'n'i'v'e'K' '.'''s's'e'n'i's'u'b' 'e'h't' 'n'i' 't's'e'b' 'e'h't' 'y'l't'n'e'r'r'u'c''''''' 'e'h't' 's'i' 's'X''''j'Y' '''https://github.com/yjs/y''''''''''''''''''''''''''''''' 't'u''''''''''''''''''''l'u'o'h's' 'r'e't'c'a'r'a'h'c' ''o' 'e'r'u'g'i'f' 'e'w' 'o'd' 'w'o'h''''''''''''''''''''''?'t's'r'i'f' 's'e''''''''''''''''''''''''' 'n'o' 'd'e's'a'b' 'm'e''''''''''''''''''''''''''''''''''''''''e'g'r'e'm'o't''''''''''''''''''''''''''' 's''''''t'''I' '.'k'c'a'h' 'a' 'f'o' 't'i'b' 'a' 'h't'i'w''u'A''''''r'e'v'e'.'''c'X'b'a''' 'h't'i'w' '''''''''''s'''m'e't'i' 'w'e'n' ''p'u' 'd'n'e' 'd'''e'w' 'n'e'h't'h'''''''''''''''''''''''''''''''s't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'y'm''''''''''''''''''''''''''''' 't'e's' 'u'o'y' ','''o''' 'e'b''t'g'n'i'h't'y'n'a' 't'r'e'''''''''''''''''''''''''''''''''''''''''''''' ','e'l'p'm'a'x'e' 'r'o'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'i'h't' '''''''''''''''e'g'r'e'm'o't'u'a' 'n'a'h't' '','''''''' 'p'u' 's'd'n'e'''''''''''''o's'l'a' 's't'I' '.'''''''''''t' 'g'n'i's'u' ','e'd'o'c' 'y'm' 't'u'B' '.'s'j'e'l'b'a't'u'm'm'i' 'e's'u' 't'''n's'e'o'd'''''''''e'o'd' 'o's'l'a' 'n'o'i't'a''''i't'n'e'm'e'l'p'm'i''''o' 'y'm''''''''''''''''''''' 'g'n'i't'n'e'e'l'p'm'i' 't'o'n' ''''n'm'''I' '-' 'e'k'i'l'-'r'o'f'-'e'k'i'l' 'y''''''' '-' 'p'o't'S'''''''''''!''''''''.'g'n'i'''y'd' 'm''''''''' 'm'I''''''l'''''t'''''c'a'x'e' 't'o'n' 's't'I's'n'i'''''''''''''''''''t''''':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'r'-'e'g'r'e'm'o't'u'a''''w' '''''''''''''''''''''''''''''''''''''''''''''''''' Definitely don't submit any PRs to f''''''''''''''''''''''''''''.'t'i'u'r'f' 'g'n'i'g'n'a'h' 'w'o'l' 'e'h't' 'l'l'a' 'x'i'''''''''''''''''''''''''''''''''''''''''''i'f' 'o't' 's'R'P' 'y'n'a' 't'i'm'b'u's' 't'''n'o'd' 'y'l'e't'i'n'i'f'e'D' ''''t'''''.'''''''*'h'c't'i'w'T'*' '.'t'i' 't'u'o'b'a' 'k'n'i'h't' 'o't' 't'o'n' 'y'r'T' ''n'.'''r'e't't'a'm' 't'''' '''n's'e'o'd' ''''''' 'd't'i' 'o'S' ''h't'i'w' 'd'e'c'a'l'p'e'r' 'n'e'e'b' 's'a'h' 'y'd'a'e'r'l'a' ''''''''''''' 'y'l't'h'g'i'l's'''''''''''''''''''''''''''''''''''''''u'o'y'''''''''''''',''''e's'a'b''e'n'i'f' 's't'i'''''''>''' Wow I saw a sequence number, and it was *this big''''''!''''''''''''''''''''''''''''''''.'m'e'h'A' '.'''''''''*'!'r'e'g''''e'g'i'b' 'n'e'v'e'*' 's'i' 'e'n'i'M' '?'h'a'e'Y'''''''''Y' '.'*'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!'''''!'*'g'i'b' 's'i'h't'*' 's'a'w' 't'i' 'd'n'a' ','r'e'b'm'u'n' 'e'c'n'e'u'q'e's' 'a' 'w'a's' 'I' 'w'o'W' '>''n'n'''''''''''' 'o'W'('n'n''''''r'e'v'e't'a'h'w'''''''''''''''''''''''''''''''''''''''''''''')'w'o'n' 't'a'h't' 'o't'n'i' 't'e'g' 't'o'n' ''('s't'e'l''''''''''''''''''' 's'i' 'e'c'n'e'r'e'f'f'i'd' 'e'h't' 't'u'b' ','g'n'i'h't' 'r'e'b'm'u'n'''''''''''''''''''''''''''''''''''')'.'y'a'd' 'r'e'h't'o'n'a' 'r'o'f' 'm'e'l'b'o'r'p' 'a' 's't'a'h't''m''''''''''''''o't' 'g'n'i'o''''''*'e'r'e'h'''''''''''''e'r'e'j'*''''('''''''*'(''''g' ''''''h't' 'r'e'n'm'u'n' 'e'c'n'e'u'q'e''''''''' ','m'h'u' ','h'U''s''''e' 'e'h't' '''o't' 'h'c'a'o'r'p'p'a' 't'n'e'r'e'f'f'i'd' 'a' 's'a'h' '')'s'''''''''''' '.'r'e'v'e't'a'h''''''''''t'h'a'W''''''''''y'n'A' ''''''''''''''a''' 'r'o'F''''How fast is it?''''''''''''e'g''5'7''''''r'e'm'o't'u'a' ' ''''''''''''''''''?'A''t'i' 's'i' 't's'a'f' 'w'o'H''''''''''''''''''g'''''''''''''''''' 'e'c'''''''m'o'r'f''''''''''''e'd'a'm' 'f'l'e's'm'i'h' '''a'r't' 'g'''' 'n'i't'i'd'e' 'n'a'n'i'','b''''''s''''''''''f'o' 'e''''''''''' 'p'u' 'g'n'i'p'y't'''c'a'''''''''n'i'''r'''t' 'u' '''''' ''''''o's'l'a' 'n'w'o''t'i' 't's'e't''''n'u'r'''''''s'a'f''''''''''''''''''''t'''n'''s'i' 'h'c'i'h'w' ','''''''''''''y'''a'''''y'l'n'o' ''w''''''''''y'w'a'y'n'a' ''e'w''''e' 'w'o'h' 'o'S'''''''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i''''e'h't'''y'm'h't' 'f'o' 't'r'o's' 't'a'h't' 'o't'n''''''''''''''''' '-' 'o'n' ','t'i'a'W'i' 'e'r'''u'o'y' '''''''''''''d'n'u'o'r'a' 'k'c'i't's' ''f'i' ''''''''''''''''''''''''''''''''''''''''s'e'm'o'c'e'b' ''''''''[''''The editing trace'''''''' 's'i'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'k'o'r't's'y'e'k' 'y'r'e'v'e' '''''''''''' ','s'a'h' 'n'a'C'''''''''''' '2'^'n'?'''''''''m'a'r'g'a'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't' 'o'd''''k'a'm' 't'i' 'd'i'd' 'w'o'H'''''''''''''''''''?'o'd' 't'i' 'd'i'd' 't'a'h''''''' 's's''j'Y'w''''l' 'o'S' '.'s'm'e'l'b'o'r'p' 'e's'e'h't' 'd'e'x'i'f' 's'a'h'''''''r'e'v'e' 's''''''''''''t'n'e'm'u'c''''''''''''''''''''''''''''''''l'l''''''''''''y'l'b'a'b'o'r'p' 'y'e'h't'''r''''''''''''''''''''''''''''' 'y'l'l'a'u'''s'u''m'e't's''s'y's' 'e'''''''''''''''''''n' '''''''n'n''''o'i't'a'c'o'l' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''B' '.''')'''s'n'o'i't'a'c'i'l'p'p'a' 'g'n'i't'i'd'e'-'t'x'e't'-'n'o'n' 'r'o'f' 'l'l'e'w' 's'a' 'k'r'o'w' 't'''n'd'l'u'o'w''''''''''o'w'''''''o'w'''''''u'w'o' 'y'l'b'a'b'o'r'p' 't'i' 'd'n'a'(' ''d'e'h'c'a'c' 'e'h't''h't' 'o'S' '.'e'''t'a'l' 'g'n'i'h't'e'm'o's''''o't' 'y'r't' ''o'd' 'e'h't''j'y' 'n'a'e'm' 'I' ','e'w' 'y'b' 'd'n'A' 'd' 't'r'e's'n'I' '>''''n'n''h't'i'w' 'r'e'w'o'l's' 's't'e'g' 't'i' 't'u'b' ','t's'a'f' 'f'f'o' 's't'r'a't's' 'm'e't's'y's''''a' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''n'n'''''A' ''''''r'''e't'c'a'r'a'h'c' '0'0'0''' ''''' '''.'b'k'0'0'1' 't'''u'o'b'a' '''''''''''''''''''''''''''''''''''''s'e's'u' 'e'g'r'''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 'g'n'i's'u' ','''''''''''''''''''''''''''''''''''''''''''''''''''''w'o'l's' '''s't'i' 't'u'b' ''''''''''''''''''r'e't's'a'f' 's'i' 's'i'h'''''''' 'o't''''' 'u'o'y'T' '.''''' 's't'i'd'e' 't'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''e't''.'T''o'r'w' 'e'w' 't'a'h'w' '''' 'l'l'a''f'o' 'n'o'i's'r'e'v' 'd'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'m'e't'i' 's'u'o'i'v'e'r'p' 'e'h't' 's'i' 't'n'e'r'a'p' 's''''''''''''''''''''''''''''''''a' 's'a' 'm'e't'i' 's'u'o'i'v'e'r'p' ''''''''''e'r'p'e'h't' 's'a'h' 'm'e't'i' 'h'c'a'e' ''''''s'd'e'e'n'd'n'a' ','e'm'i't' 'h'c'a'e' '1' '''''' 'r'e't'a'l''y'b' 'p'u' '''''''''''''p'u' 't'''''''''''''''''''''''''''''''.''''''i'''''' 's'i'h't''' 't'u''''t'e's' ''B'x'e'''g'n'i''l'p'm'o'c' 't'i'b' 'a' 's'i'''''y'a'r'r'a'' 'c'i'g'o'l''''' '''''e'''''h't' 'o's'o'g' 's'd''' ','''i''' 'e'h't'''''''''''''''''''e'h't' 's'i' 't'n'e'r'a'p' 'h'c'a'e' 'e'm'u's's'a' 'e'W'(' '''''''(' '.'''' 'e's's'e'r'p'm'o'c' 'a' 't's'u'j'''''''j' ' 's'i' 's'i'h'T'r'r'u'c'n'o'c' 'w'''''''''''''s'i' '''n'u'r'''''o''''''''''' 'l'l'a' 't'h'g'i'm' '''''''''''''''':''''':'r'e':''''w'o'l's' 'h'c'u'm' 's't'i' ','''' 'l'l'e'w' ',''''[''I'''''''y'l'''https://immutable-js.github.io')'/'(']'' ''''t'c'e'r'i'd' 't'p'i'r'c's'a'v'a'j' 'n'i' 't'a'h't' 's's'e'c'o'r'''p' 't's'u'j' 'e'w' 'f'''''''''?'h'g'u'o'h't' '''I''' '''''W'''''''''''''''''e'r'a'p'm'o'c' 'n'a'c' 'e'W'*'s's'e'r'p' 'y'e'k' 'r'e'p'*' 'm'a'r' 'f'''''''i' 't'u'b' ',''o''''f' 'b'k'0'1' 's't'a'h'T' '!'a'o'h'W'''''!''''!''''.'w'o'W' ''e'm'o't'u'a' ','e''''w'n'o'd' 's't'i' 'e'm'i't' 'e'h't' 'y'b's'i' 'e'z'i's' 't'n'e'm'u'c'o'd' 'l'a'n'i'f' 'e'h't' 'd'n'a' ','s't'i'd'e' '0'0'0' ''''0'0'8'2' 's'a'h' ''M'''''''''''''''''''' 't's'u'j''''' 'e'c'a'r't' 'g'n'i't'i'd'e' 'e'h'T'n'n''''''''''''a''' ','''''''e'v'o'b'a' 'y'a'w'y'n'A''''''''(''''''''')''''''''''''''''''''https://github.com/dmonad/crdt-benchma' 'rk''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't'''''o'o'A''t' '''''''''''''e'g'''r'e'm'o't'u'a' ''''''''''''''''''' 'r'i''''''''''''''''''''''using Nod''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'''''''''''''''''''''.''''''''''''o'd' 'w'o'h' 'o'S't'e'y' 'd'e'd'n'a'l' '''''''''''''''e'h't' 'f'o' 'n'''''''''''''''''''''''' 'g'n'i't'i'r'w' 'f'o' 'e'H''''''''''''''r''''''''''''''''''''''''''''''''''''''''''''''''''e't'i'r'w'e'r' 'a' 'n'i' 'y'a'w'a' 't'i' 'w'o'r'h't' ''''''''''''' 'e'h't' '''''''''''k'c'a'b' 'n'w'o'r'c' ''m'i'a'l'c''''''''''''e'h't' 'm'i'a'l'c'e'r'o't' 't'u'o'b'a' 'e'r'''u'o'y'''''''''a' 'e'r'''o'u'y' 'n'e'h'w'''''''''''''''''g'n'i't'i'r'w'e'r' 'e'r'o'f'e'b'''''''''''''''''''''a'f''''''''''''''''''''''''''''''''''''''''''''' 'n'o'i't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''''s'j'Y' '.'e'd'a'm' 'l'l'e'w' 'd'n'a' 'd'e't'n'e'm'u'c''''u'o'd' 'l'l'e'w' ','t's'a'f' 'pretty''really'''''''''y'l'l'a'e'r''y'l'l'a'e'r' 's't'i' 'd'n'A''''A'''''''e'K' '.'s'n'h'a'J' 'n'i'v'e'K''''H''''J' 'y'b' 'e'd'a'm' ''a't'n'e'm'e'l'p'm'i''''''''''''''''''''b'u'h't'i'g' 'n'o''''''' 'n' 'm'h't'i'r'o'g'l'a' 'T'D'R'C' ')'g'n'i't'e'p'm'o'c'(' 'r'e'h't'o'n'a' 's'i' ' 's'a' '''''''' 'n'e'''g'n'i''''''h'''t' 'd'n'a'''''''e'r'o''''g'n'i'''f'e'b''''''''''''''''''''''''''n'a'c' '''t'i' ''u'o'y' 'n'e'h'w'e't'u'p'm'o'c' 'e'h't'm''There's an old saying with performance tuning:'''''''''''''''''''''''''''''''''''''''''''''''''s'g'n'''''''''''''''''''''''''''''''''.'''':'W''m'a'e't' 'e'g'r'e'm'o't'u'a''''''''r'e'm'o'u't'a' 'e'h't' 'h't'i'w' 'e'e'r'g'a' 'I' ''i'h't' 'g'n'i'v'o'r'p'm'''''i' 'd'n'a' 'e'd'o'c''A''' 'e'h't' 'h'g'u'o'r'h't' 'g'''''''''''''t'h'g' 'n'i'o'g' 'm'o'r''''''''''x'i'f''''''''''''''''.'t'i' '''e'v'o'r'p'm'i'''''''m'I''' 's't'e''''''''''s't'E'L'''''''' ''''''''''''''''''s'i'h't' 'h't'i'w''''''''''''''''''d'e't'a'c'i'l'p'm'o'c' 'e'r'o'm' 's'''''''l' '''' 't'u'B'''''''''''''''''''y'b' 'd'e'r'e'e'n'o'i'p'''''''''''e'K' '''''''''''''t'u'o'b'a' 'g'n'i'k'''','''l'''''')'?'(' ''a't''''''''''''''''''''''''''''''''''y'a'r'r'a' 'e'h't' 'o't'n'i' 'g'n'i''''''''''y'l'e'r'a'r' 'o's'c'i'l'p's' ','e'r'e'h'''*''W'''e'r'''e im'''g'n'i'plement a li'*'st CRDT with a l'''''It sounds complicated - how do you figure out where the new item should go? But'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''I'.'s'k's'a't' 'g'n''''''''o't'''''''f'o' 'e'n'o'''''''''' 't'n'e'm'u'c'o'd''' '' 'e'v'a'h' ''i't'i'd'e'-'''''''e' 't'x'e't'-'n'o'n'''''''' 'f'u't's'''''''a'r'e't'n'i' 'r'o'f' 't's'a'f' 'e'b' 'd'l'u'o'h's'''''''''''''d'e's'u' 'e'b' 'l'l'i'w' 'e'd'o'c' 's'i'h't' 'd'n'A' '''''''n' '.' its complicated ''''r'u'o'y'like *math* is complicated. Its hard to unders'''''''''''''' 'm'o'r'f' 't's'u'j' ','tand, but when you do, you can do the whole thing i''''''''''''''''''''''s'r'a'''e'y' 'w'e'f' 't's'a'l' 'e'h't'.'E''''''''' 'n'i' '''''''','w''''''''''''''''''!'''''''''''''s'e'g'a'p'b'e'w' 'g'n'i'k'a'm' 'n'e'h''''e'w' 'n'e'v'e' ','n about 20 lines of code.'n'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''[''''''''''' 'l'l''https://github.com/josephg/reference-crdts/blob/main/crdts.ts'a''''''''https:''''''''''''''''''''''' ''''''''''''''''''''.'l'i'a't'e'd' 'e'r'o'm' 'n'i' 's'i'h't' 'd'''' 'n'a't's'r'e'd'n'u'''''''''''''''''''''m' 'n'i' 't'u'o' 's'i'h't' 'e'r'u'g'i'f'//github.com/josep'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e'c'n'e'r'e'f'f'i'd' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h't' '''''''''''''''''''''''''''''''''e'c'n'a'm'r'o'f'r'e'p'''''''''''''''''''''''''''''''''''''''''''t'u'o'b''''''''''''''''''''y'r'o'm'e'm''' 'n'i'a'm' 'm'o'r'f' 'a' '''n'i' 'm'e't''.'''''','n'i'a'g'A''i'''''''i't' 'y'n'a' 'd'n'i'f' 'n'a'''''''''''''''''''''''''''' 'a' 'n'i' 'g'n'i'h't'y'r'e'v'e' 'g'n'i'l'f'f'u'h's''c' ''''c'e'w' 's'n'a'e'm' 't'a'h't' '' 's'''s'j'y' '''''''''''''l'a'c'i't'n'e'd'i' 'e'r'a''d'n'a' 'e'g'r'e'm'o't'''''''t'o'u'a'''''''''''''''''''' 's'c'i't'n'a'm'e's' 'T'D'R'C' 'e'h't'''''''''''''''' 'e'c'n'e'r'e'f'f'i'd' 'e'h't''''''''''''e' 'e'h't' 'l'l'''''''''.'t'e'y''''''''''t'e'u' 't'i' '''a''''' ''','s'i'h't' 'e'k'i'l' 'd'e't'n'e'm'e'l'p'm'I'''''''''''''''''''''''''''''''''''' ''''''''''''''' 'f'o' 'k''''''''''''''''''''''''''''''''y'r'o'm'e'm' 'n'i' 'r'e'h't'e'g'o't' 'd'e'k'c'a'p' 'l'l'a' ','c'o'l'b' 'a''s'e'''e'''''''''' 'l'l'a' ',''''''e'r't'-'b' 'y'm' 'n'i' 'e'd''''e'o'n' 'f'a'e'l' 'h'''''''''''''''''''t'o'N' '.'''e'l'c'y'c' 'k'c'o'l'c'c'a'E'''r'e'm'o't'u'A''''C' ''''''''''''''''''' 'h't'o'B' 'hg/referen'''''''''''''''' 'o't' 't'n'a'w' 'u'o'y' 'f'i' 'ce-crdt')'s'(']'e'''n'n'n''''r'e'h' 's'i' '''e'd'o'c' 'e'h'T' '.'''''''''''''''''''''''''''''''''''''''d'l'u'o'c' 'I' 'e'v'o'r'p' 'o't'''' ''''''''''''''''''''''d'n'a't's'r'e'd'n'u' 'd'l'u'o'c' 'I' 'o's' ','e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 's'''''''''''''''''''''''''''''''''''e'h't''' 't''''''''''''''' 't's'e't' 's'i'''''''''''' '?'t's'a'f' 'w'o'H''h't' 'n'i''''''''''''''''''''''y'a'w'y'n'a' 'l'a'c'i't'n'e'd'i' 's'i' 'u'B'''''''''''''''''''''''''''''''''.'e'c'n'a'm'r'o'f'r'e'p' 'l'a'c'i't'n'e'd'i' 'e'v'a'h' 'y'e'h'T''''' 't'u'B' '.')'s'j'y'''''''s'j'(' 'A'T'A'Y''''''''''''''''(' 's'j'y' 'd'n'a' ')'e'g'r'e'm'o't'u'a'(''c'i't'n'a'm'e'''''''a'm's' 'e'h't'''''''''''''''''''u'a'(' 'A'G'R' 'h't'o'b'''''''s'y' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'n'a' 'e'v'a'h' 'I' 'e's'a'b'e'd'o'c' 's'i'h't' 'n'I''''B'n'''s'''I made'' Implemented like this, the automerge and yjs's performance''a'b'e'd'o'c'''''' 'T'D'R'C' 'y'o't' 'a' 'n'i' 'h'c'a'o'r'p'p'a' 's'i'h't' 'g'n'i's'u' 'f'l'e's'y'm' 'e'g'r'e'm'o't'u'A' 'd'n'a' 's'j'Y' 'h't'o'b' ''''''''''''''o'w't' 'e'r'a' 'e'r'e'h'T'''d'e't'n'e'''''''''''''''''''x'i'f' 'o't' 'd'e'e'n' 'e'w' 'e'd'o'c''m'e'l'p'm'i' 'I''''''''''f'f'e' 'n'a' 'n'''''''''''w''' 'y'a's' 's't'e'L''''L'I'n''n'ist. Geniu''s'S'''!' 't' ''h'''''''''''''''''''''t' 's't'I'n'n''c'i''''''''' 'y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'k'i'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''n'n'n''t'u'o'b'a' 'n'i' 'g'n'i'h't' '''S''''''''''''s''' 't'a'h't' 'e't'o'N'n'''' Some of thos''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''' 'm'''I' ''''''''''''''''''''''''t's'o'p' 's'i'h't'5''''''''''y'a'r'r'a' ' 'n'i''''''''''''''''''''''''''''s'r'e't'c'a'r'a'h'c''''''''''''''t' 'f'I'''''''''''''''''''''''''''''''''''''''.'d'e't'e'*'''''''''' 't'n''*'e'm'u'','w''''''''c'o'd'''''''''''''''''''''''''''w''''''''' ','t'u'o' 'd'n'i'f' 'o'T''''''t'n'e'm'u'c'o'd' 'r'u'o'''l'''e'd'''''''''''''''''''''''''n''''''i''' 'o'S''o'i't'a'c'o'l' 'y'a'r'r'a' 't'h'g'i'r' 'e'h't' '' 'n'e'e'b' '''''t'''n'e'v''''''''''''' 'g'n'i'h't'e'm'o's' 'r'o''a'h' 'h'c'i'h'w' 's'm'e't'i' '0'''' '0'0' '0'0'1' 'g'n'i't'n'e'''''''''''''''''''''''s'e'k'i'y' 'e'l'b'u'o'd' 's'i' 'h'c'i'h'w' ',''s'e'r'p'e'r' ',''''''''''''M' '.''''''''''''5'''''''''''.'w'o'n' 'r'o'f' 't'a'h't' 't'u'o'b'a' 'y'r'r'o'w' 't'o'n' 's't'e'l' 't'u'B' ''a'r'D'''''''''''''''''y'a'r'r'a' 'y'm' 'n'i' ''''''''' '.'g'n'a'D''''''!'')'s'p'o'O'(' '.'m'e'h't' 'n'o' 'd'n'e'p'e'd' 't'h'g'i'm' 's't'r'e's'n'i'''''''''''''''''''''a' 't'r'e's'n'i' 't'h'g'i'm' 's'r'e'e'p' 'r'e'h't'o' 'e's'u'a'c'e'b' 'y'a'r'r'a' 'e'h't' 'm'o'r'f' 'm'e'h't' 'e'v'o'm'e'r' 't's'u'j' 't'''n'a'c' 'e'W' ''e'n'o' 'h'c'i'h'w' 'k'r'a'm' 'o't' ''.'''''''''''''''''''''''.'h'c'u's' 's'a''''s' 'm'e'h't' 'k'r'a'm' 'o't' 'g'a'l'f' '`'d'e't'e'l'e'D's'i'`' 'n'a' 'd'e'd'd'a' 'e'v'''I' 'o's' ','''e items might h'I'''''ave been deleted:'n''e'l'''''''''''' 'l'e'o'h'w' 'e'h't' 'o'd' '''n''''''.'o'o't' '''a'c' 'u'o'y'''''''''''''''''''''''''''' 'u'o'y' ','o'd' 'u'o'y' 'n'e'h'w' 't'u'b' ','d'n'a't'''''s'r'e'd'n'u' 'o'''t' 'd'r'a'h' 's't'I''.'d''''.'e't'a'c'i'l'p'm'o'c' 's'i''''''''''''''''''''''''''''''''''d'e't's'e'r'e't'n'i' 'e'r'''u'o'y' 'f'i' '''f' 'u'o'y' 'e'c'n'o''''' 'e'h't' '-' '''''''''''''''''''''''''''''''''''' i' yo' wan' to.'t'u'f',''''''''''''''''''''''''''''.'o't' 't'n'a'w' 'u'o'y' 'f'i' ',''''''''''''''t'r'o'h's' 'n'I''W'''''' We'' impleme'n'nt a list CRDT with a list. Genius!'n'''''This approach is better for lots of reas''o''' We implement a list CRDT with a list. Genius!'ns :n''''This app'''''s'e'o'd' 'roach''''.'''''''''''l'l'a' 'e'r'''''''r'e'v'e'e'W'''''''''''''''''''''''''''''''''r'e'v'o' 's's'e's'b'o' 'e'w' 't'a'h'w''''''''''''''''''''''''''''''''''''''.'''''''''''c''''h'''''''''''''''''''''''''''''p'u' 'd'e'x'i'm' 'r'e'b'm'''''''''''''''' 'r'e'm'b'u'c'u'c' 'd'n'a' 'i'n'i'c'c'u'z' 't'e'g' 'l'l'i't's' 'I''''''t'''n'''''''t'''o'd' 't'u'b' ','''' 'h'g'u'o'n'e' 'l'l'e'w''''p' 'e'd'o'c' 'n'a'c' 'I' '''r'u'o'''''''s'e'i'''''''''''h''' 'e''''''''''e'r'''e'''h's''''h'a''w' 't'u'b's'u'a'c'e'''''''''''''''''''''''''''''''''' 'd''''''''''''''''''l'u'f'e's'u' 'y'l'l'a'c'i't'c'a'r'p''n'a' 'w'''''''''''''l'u'f'e's'u''''''''''l'''a'c'i't'c'a'r'''p' 'e'b' 'o't'o'l's' 'o'o't' 'e''''''''''''''''' 'l'a'c'i't'c'''''''''' 'd'e's's'i'm's''''m'i'd''a'r'p' 'r'o'f' ''r'e'''''''''''''''''''o't' 's'e'm'o'c' 't'i' 'n'e'h'w'w'''''''''''''' 'd'n'a' 'g'n'i'd'a'e'r'''''''''''''''''''''''d'n'a'(' 'g'n'i't'i'r'w' ' 's'm'h't'i'r'o'g'l'a' 'e'h't'B'''''''''''''''','''''''e'''''e'k'a'm'w' 'n'e'h'w''''''''''''k'r'o'w' ''''''''t'n'e'm'u'c'o'd' 'a' 'n'i' '''i'''''''e'r'e'h' 'n'o'i''''''''''''n'i'o't'a'z'i'm'i't'p'o' 'a'r't'x'e' ' '''bette' 'r''beautiful 'is ' 'bet''ter for lots of reas''ons :n''''''''''''''''''''''''' 'r'e't't'e'b''''''' '''''''''''.'s't'n'e'm'e't'a't's' 'f'i' 'w'e'f' 'a' 't's'u'j''' ''''l'2' 'g'n'i'e'b' 'p'u' 's'd'n'e' 'g'n'i'r'e'd'r'o' 'r'o'f' 'c'i'' made'g'o'l''''' '?'''''''''''''''s'd'i''''''-' ''k' 'h't'i'w' 'e'n'i'''''''''' 'e'r'a'w't'f'o's''''p'f' ''e'M''''M''''''''''''t'a' 'k'o' 'm'''''''''''''''''''''''''''''s'd'i'k' 'd'n''''k'i'm' 't'''n'o'd' 'I' '?'e'm' 't'u'B''''''''''''''''''''''''''''e'n' 'y'm' 'h't'i'w' 'h'g'u'o'n'e' 'l'l'e'w' 'o'd' 'I' 'e'h'T' '.'*'h't'a'm'*' 'e'k'i'''''''e'd'a'm' '''''''''''''''''' 'e'd'i's'n'i''''' the'''''''e''''''''''''''''' 's'T'D'R'C' 't's'a'f' 'f'o'h't' ''.'r'o'f' ''''''' I''n th''''''''''''''''''''','e's'a'c' 's'i'h't' 'n'I' '''''''''''h't' 'n'I' '.'g'n'i'k'o'o'l' 'o'g''''o'''l' 'd'e't'a'c'i'l'p'm'''o'c' 'y'l'''n'''''''''''''''''''''''''''''''d'l'r'o'w' 'e'h't' 'r'o'f' 's'T'D'R'C' 't's'a'f' 'r'e'p'u's' ''o' 's'''''''' a'''''a' 'e'd'a'm' 'I'''' 't'i' 't'u'B' '''?'o'g' 'd'l'u'o'h's' 'm'e't''''''h'c'''''''h'v'i'h'w' ''i' 'w'e'n' 'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'S' ''''''''''''e'w' '''''''''''''' 'n'e'h'w' ''.'t''''c''''f'i'c'''''''''''''''''''''''t'a'h't' 'e'k'i'l' 'g'n'i'h't'e'm'o's' 'r'o' ''i'l'p'm'i' 's'i' 's't'n'e'm'e'''''s'j'Y' '''''''n'n''''s'l'e' 'l'a'n'r'e't'n'i' 'e'h't' 'f'o' 's't'n'e'r'a'p' 'd'n'a' 'q'e's' ','d'''''e's'e'''''''''''''''''''''''''''''''''''''''''''''''''''p''''''''r'u'o' 'n'I'n'n''''u' 'e'n'i'l' '''''''i'l't'''n'o'w' '''' 's'r'e'b'm'u'n'''''''''''''''n'o'w' 'r's'e'b'm'u'n' 'e'c'n'e'u'q'e's' 'd'n'a' 'd'i' 'e'h't' 'e'c'n'i's' '-' 'h't''i''''p' 'e'h't' 't'u'b' '-' 'e'v'o'b'a' 'n'o'i's'r'e'v' 'd'e'd'n'a'p'x'e' 'e'h't' 'o't' 't'n'e'l'a'v'i'u'q'e''''''''''''''''s' 'e'h't' 's'i' 's'i'h't' 'y'l'l'a'c'i't'n'a'm'e'S'n'n''''''''''''''''''''''''''''''''''''''' truly'''d'n'a''I''' ''''''I''n'n'' 'e'r'a'r' '''''''' 'y'l'u'r't''''''''.'n'e'd'l'o'g' 'e'r'a' 's'i'h't' 'o'd' 'h'c'i'h'w' 's'a'e'd'I'''''''''''''''e'a'd'i' 'e's'e'h'T' '.'''' '''''''''''''''''''''''''''''''''''''''''''u'o'y' 's'e'k'a'm' 't'a'h't' 'a'e'd'i' 'f'o' 'd'n'i'k''' 'e'h't' 's'i' 'h'c'i'h'w' ',''''''''''''''''''''''''r'i'e't'n'o'r'f' 'e'h't' 'g'n'i'v'o'M' '.''''''''''''''''''''''s'y'a's' 'n'i'v'e'K''''''' 'I''w' '-' ''''''''''''''''''''''''''''''''''''' 't'u'o' 'e'r'u'g'i'f' '''''''''''''''''''''''''''''.'''''t's'a'f' 'o's' 'n'u'r' 'e'd'o'c' 's'i'h't' 'e'k'a'm'''''''''''''''s'a'f' 'e'h't' 'd'n'i'f' '''''''''''''''''''''''''''''n'o'i't'r'e's'n'i' 'r'u'o'y'''''s'e'o'''d' '' 't'u'o' 'g'n'i'p'p'a'w''''''''''p'p'a's''''''''''''''''''''''''''''''''''''.'n'o'i't'c'n'u'f' 'n'o'i't'r'e's'n'i'''''''''''''e't'n'i' 'r'u'o'y' 'g'''''i''' 'o'S'''' ''I'n'i'g'n''''''''''''''''''t's'a'f' 'y'l'l'a'e'r' 's't'i' ','a'h'c' 't's'u'j' 'y'b''''y' 's'n'o'i't'a't'n'e'm'e'l'p'''''''e'l'm'i' 'p'a'w's' ')'y'l't's'o'm'(' ''''')'M'T'(' ''n'''' We implement a list CRDT with a list. Genius!'a'c' 'u'o'Y''''''''''''' 'r'o'F''''d'e'd'i's'-'y'b'-'e'd'i's' 'h't' 'e'r'e'h'w' 't'u'o' 'e'''r'u'g'i'f' 'u'o'y' 'o'd' 'w'o'h''''' '''''''''''''''''''''''''''''''''''s'''e'h'''''''''''''''''''''''''''''''w'o'n' 's'''e'H' '.'n'r'u't' 'n'i' 'h'c'a'o'r''''''''''''''''''''''''''''''''''''''''''.'e'c'n'a'm'r'''''''a'r'o'f'r'e'p' 'n'i' 'e'm' 't'a'e'b' 'n'a'c' 'e'h' 'f'i' 'e'e's' 'o't''''''' 'h'c'i'h'w' 'p'p'a' 'y'm'' '''''d'n'a' ','o'o't' 'w'o'n' 's'i'h''''''''''''''''''''''''''''''''''''''''''s'r'e't'n'i'o'p' 'y'b' 'd'''' '''' 'e't'a'r'a'p'e's' 's't'r'a'p' 'e'h't' 'l'l'a' 'h't'i'w' 't' 's'w'o'n'k' ''-' 't't'e'r'p''h'w' ',''''.'''''''n'a'c' 'u'o''''''''''''''''''' 'e''''r'u't'c'u'r't's' 'a't'a'd'Y''''''''''''''''''' 's'a'h' 'd'l'e'i'f' 'e'h't' 'n'i'''n'a'c' 'e'W' ''''''''''''''''''''''''s'e'o'd' 'e'g'r'e'm'o't'u'a' ''''''''''''' 's't'e'L' 'f' 'nn> You can't make a program faster. You can only make it do less work.n'''n''''i't' 'e'h't' 't'a'o'i't'a't'n'e'm'e'l'p'm'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e's'u'a'c''''' 't'a'l'f''e'b' 't's'a'f' 'e'd'o'c' 't'p'i'r'c's'a'v'a'j' 'e'h't' 'g'n'i'k'a'm' 'd'e'r'e'h't'o'b' 't'''n'e'v'a'h' 'y'e'h't' 'e'm'i't'n'a'e'm' 'e'h't' 'n'i' 'd'n'A' ' 'n'e'm'e'c'a'l'p'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'e'y' 'd'e'g'r''' '''''''''''''''''''''''''''''''''''h''' 't'u'b' ','e'l'p'm'i's' 's'k'o'o'l' 't'a'h'T'''''''''''''''':'y's'a'e' 's't'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'n'i' 'n'o'i't'a''3.'''(' Traverse up through the tree to figure out the insert position of the new'''''''''''' update'' o''''''' 'l'a'u't'c'a'ur copy ''''''''''''''Y''''''.'''''''''' '/' 'r'o't'i'd'e' 'r'u'o'y' 'n'i' 'of the document. (Automerge also sto'''''''''' 'd'd'a' '''n'a'c' 'u'o'y' 'o's' ' item, and update our copy of the document. (Automerge also sto'''''''''''''''''''''''''h'g'u'o'r'h't' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'B'''''')'s'c'i't'n'a'm'e's' 'e'h't' 'g'n'i'''''''''''''''''''''''' 's'j'y' 'r'o' 'e'g'r'e'm'o't'u'a' 'r'''''''''''''''n'o'i't'c'n'u'f' 't'r'e's'n'i''o'f' ''t'a'l's'n'a'r't' 'y'r'i'a'h' 't'i'b' 'a' 's'i'''''''i's' 't'i' 'd'n'a'''''''t'i' 'd'n'A'(' ''''''''''''''''''''''''''''''''pretty''''''''''''' 'f'o' 's'''''''''''''''''''''''s'n'o's'a'e'r' 'f'o's' 't'o'l' 'r'o'f' ' '''''''''''''''''''''l'u'f'i't'u'a'e'b' 'y't't'e'r'p' 's'i' 'h'c'a'o'r'p'p'a' 's'i'h'T'''''''''''''''''''''''''''''''''''''''''''''''o't's' 'o's'l'a' 'e'g'r'e'm'o't'u'A'(' '.'t'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'y'p'o'c' 'r'u'o' '''''''''''''''''e't'a'd'p'u' 'd'n'a' ','m'e't'i' 'w'e'n' 'e'''''''e''''e' 'h't' 'f'o' 'n'o'i't'i's'o'p' 't'r'e's'n'i' 'e'h't''''''' 'e'r'e'h'w' 't'u'o' 'e'r'u'g'i'f' 'o't' 'e'e'r't' 'e'h't' 'p'u'''''''a'w'k'c'a'b'''''''''e'e'r't' 'e'h't' 'e's'r'e'v'a'r'T''''S'''h'U' '.'3'n''''.''c'o'''''s'j'y''''''''''j'y't' 'l' 't'h'g'i'r'''''''''' slightly''H''Th'''''''''p'e'e'K'(' '.'''''''''''''''''''''''''.'d'e't'r'o's' 'm'''''r'o's' '''''' 'e'r'e'h'w''e'h't' 'g'n'i'p'e'e'k''I''''''''!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''.'e'r'e'h't' 't'''''''''''''''''''''''''t'u'o'b'a'''''''d'n'a' ','' 's'i' 'h'c'a'o'r'p'p'a' 's'i'h'T'h'g'i'r' ','l'i'a'r'g' 'y'l'o'H''''''' 's't'I'''''''''''''''''''h''' 'e'h't' 's'y'a'w':''l''':''a''''''''''''l'a'w' 's't'a'h'T''''''''''''.'l'i'a'r'g' 'y'l'o'H' '.'r'e'l'p'm'i's' '*'d'n'a'*' 'r'e't's'a'f' 's't'I' '.'5'n'h'c'a'o'r'p'p'a' 's'i'h't' ','y'l'''''''''''''''''''''''''''''''''''''y''' 't'u'b' ','d'e'''''''''''S' ':'e't'o'N' '>''t'a'c'i'l'p'm'o'c' '''e's'f'o' 't'r'o's' 's'd'n'u'o's'''''''''''''''''''''''''' 'n'i'''''''Some of these performance i''''''''''''''''s''''''''' 'y'l'b'a'b'o'r'p'''''''''''''''''''''''''.'''e'c'n'a'm'r'o'f'r'e'p''W'''''''''' 't'a'h't''''''''''''''' 't'c'e'r'''''''''''''''''''''''''''''''''''''''''''''''I' '.'*'t's'a'f'*'''''g'i'b' ' 't'o'''''''''''''''''''''''''''''m'h't'i'r'o'g'l'a' 's'i'h't' 'n'i' 's'k'c'e'n'e'l't't'o'b''n' 'l'l':''''''''.''''W''i't's' ''''s's'i' 'n'','o'i't'a't'n'e'm'e'l'p'm'i' 'e'h't' 't'u'b' ','''''''''' ','''r'o'c''''''''''''''''''''''''''''''''''r'u'o' '' 'o't' 'e'm'i't' 's't'i' '''','''''''''''''''''''''''''''''''''''.'''''''''''''''n'o'i't'c'a'r't's'b'a' '/' '''*'t's'a'f'*' 't'o'n' 'l'l'i't's' 's't'i' 't'u'b' ','r'e't'''''''''i'''i' '''''''''y'l'l'a'u't'c'a' '','e'e'S''''T''t'e'b' 's'i' 's'i'h'T'n''n'' 'n'o' 't'c'a'p'm'i''nThis is better, but its still not *fast*.''i''n'''''''''g'n'i''''I'performance''''''''''''''''n'e'l'''''''''''''''''''''''''''''''.'e'c'n'e'r''n'e'e''f'f'i''l'd' 'e'c''''''' 'e'n'a'm'r'o'''f'r'e'''' 'n'e'l''p' 'g'i'b'''''''''''''''''''''''''''''''t'n'e't'n'o'c' ''''.'d'e't'e'l'e'd' '=' 'e'v'i't'a'g'e'n' '/'/' ' 'a' 'e'k'a'm' 'o's'l'a' 'l'l'i'w' 'h'c'i'''''''''r'o'F''h'w' '-' 'e'r'e'h' '''m'''''''''''''''e'r'e'h' '''provements com'''''''''s'i'h't' 'r'o'f' 'e from the fact I'm a'''''''''''''''''''''''' 't's'u'j'''''''''''''''''''''n'n'''''''''''''''''''''a' 'y'l'l'a's'r'e'v'i'n'u''''''' '''''''''''' 'o't' 's'n'o'i't'a'r'e'p'o' 'y'b'r'a'e'n''''''''''''r'e's's''u' 'e'h't' '''''''h't' 't'a''''''''' 'h't''''''''''''''''''.'M'A'R' 's's'e'l'''''''w'o'n' ' 'e's'u' 'e'w' ',''i'w''''''''''''y'e'p'o'r' 'g'n'i's'u' 'o'S'''''''''''''''''''' 's''''''''''''''''''''''''''''''''''''''''''''''''(' ''>'-'''')''''' 'o'S'''g'i'b' 's'a' 'e'c'i'w't' 'e'l'd'n'u'b' 'm's'a'w' 'e'h't' 's'e'k'a'm' 't'i' 'd'n'a' ','''a'''''',' 'e'c'i'w't' 'n'a'h't' 'e'r'o'm''''''''''x'+'2'''''''''''''''' 'e'r'o'm' 'k'o'o'l' 'a' 'e'k'a't'''''''''''''''''''''''''''''''''''''''''.'m'e'.''''t'i' 'w'e'n' 'e''''i'h't' 'f'o' 't'n'e''''''''''''''''''s'i'h't' 's'e'o'd' 'e'''''''d' 'd'o'c' 'e'h't''r''t'a'p' 'e'h't' 't'u'o' 'e'''' '''''''''''''''' 't'u'o'e'r'u'g'i'f' 'o't' 'd'e'e'n' 'o's'l'a' 'e'W' '.'''lso not us'''''''''''''''''''''m'e't'i' 'w'e'n' 'e'''''''''''''y'a'r'r'a' 'e'h't' '''''''''''''''e'd'o'c' 'e'v'i't'a'n' 'n'i' ''n'i' ''h't' '*'''''''''''''''''''''''''''''''''''''''''''''''''''y'n'a'm' 'o's''''a'''''''''''''''''''s'm'''''''':'e'd'i's'A''''''''''t'a'h''''''''''''''''''''''''''''''''''''''t'n'e'm'u'c'o''''''''''e'k'a't' 'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'v'o'm'e'r' 'y'l'l'a'e'r' 't'''n'e'r'a' 's'm'e't'i' 'd'e't'e'l'''''''''''''*'*'''''''''s'p'e't's' 'n' 'e'k'a't' 'l'l'i'w' '''e'd' 'e's'u'a'c''''''''''''''''''''''''''i''' ','n'*'*'''o'i''''''''''''''''''''''''''''''''''''''w'o'n' 's't'i' 't'u'b' ',''''s's's'e'l'e's'u' 'f'o' 'd'n'i'k' ''''''''''''''''''''''''''''''''''''''''''''''''''' 's'i'h't' 'h't'i'w'''''''''''''''''''''''.'e'r'a'p's' 'o't' 'U'P'C' 'e'v'a'h' 'd'n'a' 'n'o'i't'c'e'n'n'o'c' 't'e'n'r'e't'n'i' 'y'm' 'e't'a'r'u't'a's' 'd'l'u'o'c' 'I''''''''''''''''''''''''''''''''''''''''''''s'e't'a'd'p'u' ''''''' 'u'e'e'r't'-'''''''''''''' 'e'r'''''''''''''''''''''''''o't' 'n'w'o'd' 's'm'5'6'''''''4'5' 't'a'h't' 's'g'n'i'r'b' '''''''''''''''''''''' 's'g'n'i'r'b''''u't'u'f' 'y'm' 'n'i''''''''''''''''''k'r'''''t's'u'j' ''o'w' 'd'l'u'o'h's' 'h'c'i'h'w' '''''''''''''c'i'h'w''''b' 'e'h't''''b' 'g'n'i'v'a'e'l'r'e't'n'i' 'y'b' ''''''''''''''' 'e't'a'r'u't'a's' 'd'l'u'o'c' 's'i'h'T''''s't'I''This is''''''''''''''''''''''''''s't'i'd'e' 's's'e'c'o'r'p' 'n'a'c' 'I's'i' 's'i'h'T' 't'a'''''''''''''''''''''''''n'o'i't'c'e'n'n'o'c' 't'e'n'r'e't'n'i' 'y'm't'o'''n' 'O'-'g''''*'''i''n'B''*' 'n'I''u'a'e''''''''''''''''''''''''''''''!''''''''''''''t' 'd'e'e'n' 'e'W'n'a'c' 'e'w' 's'e'Y' '?'s'i'h't' 'x'i'f' 'e'w' 'n'a'C'n''n'b' ''''I'''''''g'n'i'.'t'a'h't' 'n'a'h't' 'e's'r''*'''o'w' '*''s't'''i''' ','e'p'o'N'l'i'w' '', the computer does about *n* steps'''' ''''d' 'a' 'o't'n'i'''''''''k'a't' 'l'l'i'w' 'm'e't'i' 'n'a' 'g'n'i'''' 't'r'e's'n'I'n'n't''''''''''''''''''''''''''''''''''''''''''''*'*'''''''''s'm'e't'i' 'n' 'h't'i''*'*''w' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'W''''''d'n'u'o'r'a' 's'm'e't''''''''''''t'n'e'v'n'i' 'o't' ''i' 'g'n'i't's'i'x'e' 'e'h''''''''''''''''''''''''''allow inse'''''''''''''''''''''''''''''e'''m''''''''s'd'd'a' '''''''i''' ','l'l'e'W''i't'''''g'n'i'h't'' ')'1'('O' 'n'i' 'e'l'd'd'i'm' 'e'h't' 'n'i' 's't'r''c''''''''''''r'e's'n'i' 'w'o'l'l'a' 's't's'i'l' 'd'e'k'n'i'l' 'e's'u'a'c'e'b' '-' 't' 'l'l'a' 'g'n'i'y'p'o'c''''''''' 'g'n'i'd'i'l's' 't'u'o'h't'i'w' ','''''''''''''''''''''''''''''''e'v'a'h' 'e'r'''''''''' 's'm'e't'i' '*''''''''''''''''''''''''''''''''''''''''''''''''d'e'v'''''''''''m'h't'i'r'o'g'l'a' 'o'm'e'r' 'y'l'l'a'e'r' 'r'' '''e'v'e'n' 'e'r'a' 's'm'e't'i' 'd'e't'e'l'e'd' 'e's'u'a'c'e'b' ',''''''''''D' '.'''''''''''''''d' '-' ''n'*''e'h't' 'e'r'e'h'w' 't'n'e'm'u'c'o'd' 'a' 'o't'n'i' 't'r'e's'n'i' 'e'w' 'e'm'i't''''''''''''''''''' ')'s'T'D'R'C' 't's'a'f' ''''''' 'e'v'a''''''S' '''' ''h' '''r'''e'p'u's'('' 'y'r'e'v''''e'e''''''''''''k'''''''f''''''''t'x'e'n' ' 'h'a'a'A'''r'o'w' 'f'o' 's'p'e't's' 'n'''t''''''w''''''''''''''y'l'e't'a'n'u't'r'o'f'n'u' '''' 'e't'o'N''n'e'm'u'c'o'd' 'a' 'o't'n'i' ''''''''''''s't'r'e's'n'i't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''n'n''''n'e'm't'r'a'p'a' 'y'm' 'o't'n'i' 'g'''' 'n'i'm'o'c' 't''''''o'''''''k'o'o'l' ''!'''' 'd'n'A'e'n'r'e'h't'e' ''''''''''''l' 't'I''r'e'b'i'f' 'e'h't' 'n'a'h't' 'r'e''''''''''''''''''''''''''''''h' 'y'm' 't'a'h't''''''' 'e'b'''''''''''''''''''''''''''''''.'t'e'n'r'e'h't'e' 't'i''*'b''*'a'g'e'm' '0'0'1'''''''e'm''''' '''''''b'm'0'0'1' 'e't'a'r'u't'a's' 'o't' 'h'g'u'o'n'e' 't's'a'f' 's'i' 's'i'h'T' '''''''''''''''''p'u' 'e'n'i''y'''''''''''''''''''''''''''''o't' 'd'e'e'n' 's'e'm'i't'e'm'o's' 'o's'''l'a' 'l'l'''e'W''T'l'''''''''''''''r'u'o' 'f''''''''''''''''''''''''''a't'a'd' 'k'r'a'm'h'c'n'e'b' 's'i'h't' 'h't'i'w' ','' in Mart''in's edi''''''''''''''''''''''''''''''s'c'i't'n'a'm'e's' 't'n'e'm'u'c'o'd' 'f'o' 'd'a'e't's'n'i' '''ting trace''''o' 'e'n'o'''''''''''''''''''''''''s'j'Y' '?'w'''''''''''''s'e''''s's'u' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e's'u' 'y'l'n'o' 't'i' 'd'n'a' ','n'o'i't'a't'n'e'm'e'l'p'm'i' 's't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'e'h't' 'n'a'h't' ':':'''o'n''' ''':''''t'i' 's'i' ':''''t's'a'f' 'w'o'H'' 'l''''''o's'l'a' ''''''''e'r'a''''''''p'u' 'e'n'i'l' ''''''''''m'e't'i' 'e'l'g'n'i's' 'a' 'o't'n'i' ''r'e's'n''' 'o'S''i'''''''''''''3''''2'''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''l'a'i'''''''''''''' 'y'l't's'e'''''''''''''''''''''''''''f'o' 's'u'o'i'c'i'p's'u's' 'e'l't't'i'l' 'a' 'd'n'a' ''n'o'H'''''''e'd's''o''''''''''y'k'c'i'r't' 'c' 'e'h't''''''''''''''''''''''''''''''''have been'''''e'r'e'w''''''2'''''''''''''''''''''h'c'u'm' ''''''''''''''''''''''''!''''''c''' 't'u'B''C''''''c'''''''y'''''''''' ' doubt'''''''''''''''' 'e'r'u'p'''''''''''''''''''''''g'n'i'n'n'u'''''''''''''''''''e'k'a't's'i'm' 'a' 's'a'w' 't'a'h'T'r' 't'u'o'''''b'a' 's'u'o'v'r'e'n' 'm''''''''''''''''''''''''e'k''''''' 'e'r'u'P'''''e'a'm' '''n'''a'c'''''''''''''''''''''''''''d'i'd' 'n'i'v'e'K' 'n'a'h't' 'r'e't's'a'f' 'y'n'a' ' 'I' 't'b'u'o'd'y'l't's'e'n'o'H'a'w'y'n'a' '''' 't'u'B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!'e'v'i's's'e'r'p'm'i' 'r'e'p'u's' 's't'I''''''''''r'e'p'u's' 's'T'I' '''' '.'l'l'e'w' 'o''!'s' 'k'r'o'w' ''''''''''''''t's'a'f' 't'a'h't' 'o'g' 't'i' 'e'k'a'm' 'o't' 'r'e'd'r'o' 'n'i' 's'e'm''''''''''s'e'v'i't' '''''''''''''''o't' 'e'v'i'g' 'n'a'c' 'e'w' ''1'1' 't'u'o'b'a''(''''('''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''s'')'T'D'R'C''k'a''''''''''!'''k'e'm' 'n'a'c' 'I' 't's'a'f' 'w''''s'o'h' 't'u'o' 'k'c'e'h'c' 't'u'b' ','t'a'e'r'g' '''''''''h' 'd'n'a' ',''''''s'''''''''''' 'd'n'A''''t'''a'h'T''''' ''''''''''''''''''''''''''''''''''t'u'b' ','y't'i'x'e'l'p'm'o'c' 'd'd'a' 'd'l'u'o'w' 't'I'n'a''e'''''''''''g'n'i'h't'e'm'o's''c''''' ''?'e'M''''''''''''''' 'g'n'i''''''''''''''''t's'a'f' 'y'l'l'a'e'r' 'o'g''''o''''o' 'k'a'm''' ''''''''''''e'r'a'w't'f'o's' ''''''''''''''''''''''''''''''''''s'i'h'''''t's'a'f' ''''''''''''''''''''''''''''h'c'u'm' ''''''''''''''''''''''''''d'n'a' 'y's'u'b'''''''b'''''''u'b's' 's'a'w' 'I' ','''k'''''' 'r'o'w' 't'a'h't' 'g'n'i'o'd'''''''''g'n'i'''''''''''''''''''k'c'a'b' 't'i' 'g'n'i'r'b'''''''''''''d''' '''l'a'c'i't'c'a'r'P' ' 'd'n'a' 'r'e't'' '''''''n'n'''n'e' 'f'o' 'd'a'e't's'n'I'''t''' 'e''''''''''''' 'g'n'i'k'a'm''''''''''''''''''g'n'i'n'u't' 'e'c'n'a'm'r'o'f'r'e'p' 'e'r'a'w't'f'o's' 't'u'o'b'a' 'g'n'i'k'n'i'h't'''''''b'o'''''''''''''.'e'c'n'a'm'r'o'f'r'e'p' 'e'k'i'''''''k'o'l' ''''''I' '.'s't'n'e'r'a'p' 't'a'e'r'g' 'e'r'a' 'e'l'p'o'e'p' 'e'm'o'S' '' 'n'e't't'i'r'w'e'r' 'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e't's'a'f' 'n''*'e'v''*'e' 'e'm'o'c'e'b' 'd'l'u'o'h's'''''' 'l'l'i'w' 't'i' 'n'o'o's''''''''a'u't'n'e'v'e' 'd'n'a' 't's'a'f' 's'n'u'r' 'y'd'a'e'r'l'a' 's'j'Y' ''e'e'b' 'e'v'a'h' 's'j'y' 'f'o' 's't'r'a'p' 'e'm'o's' 'y'l't'n'e'r'a'p'p'''''' '>'''''''''''''''''''''''''''' 'e'r'e'h' 'e's'n'e't' 't's'a'p' 'e'h't' 'e's'''''''''''''''''''''.'s'i'h't' 't'o'g' 's'a'h' 'n'i'v'e'K' 'u'''''''''''''''https://github.com/yjs/y-crd'''''''''''' 'n'w'o' ''''''''''')'!''''''''''''''''''' 't'a'''''''''' 't'a'h't' 's'j'Y' 'f'o' '''''''''''''''''''''''''''''''''''''''.'T'O' 'f'o''''p' 'p'o't' 'n'o' 'f'f'u't's' 's'i'h't' 's'e'o'd' 'h'c'i'h'w' ','''s'i'h''''''''''''t'r'o'p' '''''''''''''''''''''''''''e'r'u's'a'e'm' 'e'c'n'a'm'r'o'f'''''''f'o'r'e'p' 'r'e'''''''''''''w'o'h' 'h't'o' 't's'u'r' 'a' '-' ')'t'(']'s'r'Y'['''''''''''''''''''''''''''''''''''''''''''''''e'v'a'h' 's'n'o'i't'a'c'i'l'p'p'''''''''''''''''''''''''s't'c'e'j'b'o' 'e's'o'h't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'o' 'e's'a'b'''''','' 'a't'a'd' 'a''''''' ''''''' 'a'd' 'n'i' 't'c'e'j'b'o' 'e'l'g'n'i's' 'a' 'e't'a'd'p'u' 'o't' 't'n'a'w' 'u'o'y' 'f'I'n'n'''' ' 'h'c'a'E' '.''''a'''e'w' 'y'l'l'a'u's'U''''''''''''''''''''''''''''''''''''''' 'n'o' 'g'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'p'p'a' 't's'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''o' ''''''n''''j'''''''''n'n''''t' 'n'e't't'i'r'w' 'y'l'e'r'a'r' 'y'r'e'v'''''''''''''r'e'v'e'n' 't's'o'm'l'a' 's'i' 'h'c'i'h'w' 'f'o' 'h'c'a'e' ','s't'c'e'j'b'o' 'y'n'i't' 'f'o' '''''.'m'''''''''''''''''''''''''''''''''s'i'h't' 'n'a'h't' '''l'l'u'f' 's'e''''''''''''' 'n'o' 'g'n'i'k'r'o'w''s'a'b'a't'a'd'''''''''d'a' 'e'v'a'h' ''''t'a' 'y''''''e'r'e'h' 'e'h't' 'd'a'e't's''''''''''a'e't'n'I' '.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Holy cow, automerge's javascript is really slow!'''h'W'''''e'v'a's''''e' 'n'e'h't' 'd'n'a' 'n'e'p'o' 'p'e'e'k' ','e'c'n'o' 'd'a'o'l' 'n'a'c' 'u'o'y''''l' 't'n'e'm'u'c'o'd' 'e'n'o' 's'''e'r'e'h't' 'e'r'e'h'w' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'o't' 'n'e't't'i'r'w' 'y'l'e'r'a'r'''''' 'h'c'a'e' 'e'r'a' 'h'c'i'h'w' 's't'c'e'j'b'o' 'l'l'a'm's' 'f'o' 's't'o'l' 'e'v'a'h' 's'p'p'a''''''s'p'p'a'a' 't's'o'M' '''' '.'s'r'o't'i'''''''i't'd'e' 't'x'e't' 'e'v'i't'a'r'o'b'a'l'l'o'c' 't'''''' 'n'e'r'a' 's'n'o'i't'a'c'i'l'p'''p'a' 't's'o'M' ''n'''''''''''''''''''''''''''''''''''f'o'''s'' 'l'l'u'f''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''':'o't' 'd'e'e'n' 'u'o'y' 'y'a'd'o't' 'e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'y' 'h't'i'W' '.'y'l'k'c'i'u'q' 'm'''''''''''''''''''''''''''''''''''''''' ','w'o'l's' 'y'l'l'u'f'''''''f'u'w'a' 'e'b' 'o't' 'g'n'i'o'g' 's'i' 's'i'h'T'n'e'''''''e'm't'i' 'e'l'g'n'i's' 'a' 'e't'a'd'p'u' 'o't' 'e'l'b'a' 'e'b' 'o't' 't'n'a'w' 'I'' 'e's'a'b'''' 'a't'a'd' 'e'l'o'h'w' ' ':'s'w'e'n' 'd'a'B''i'k'r'o'w''''''''''k'r'o' 'd'n'a' ','k''''''''''''''''''''''''''''''''''''''l'g' 'w''''''h'c'i'h'w' ''''e'f' 'a' 'e'd'a'm' 'e'v'''I' '.'w'o'n'k' 'I' ','s'e'Y'c'a'b' 't'h'g'i'r' 'e'm' 'g'n'i'y'p'o'c' 's'i''''h' 'n'i'v'e'K' 'e's'u'a'c'e'b' '*'w''''w'e'n'k''''n'*' 'y'a''''''''''y'a'w's''''k' 'I'('n'n''A' ' ''t''''''' 'n'i'a''''''''''confused''b''''b'''''''''d'e's'u'''''''e'm'o's' ''''f'n'o''''s'i''''g'n'i''' '''c' 'd'n'a' ''g'''Can we still go faster? Yjs is very we'''.'''''''''''n'e't'''f'o' 'l'l'i'w'.'.'ll optimized already, and I ''When I told Kevin that I t''''''''''''''' 'a'''''T'D'R'C''''a' 'e's'''' '''''''''''''''''''''''''''''''''s'e'o'd' 'r'e't'u'p'm'o'c' 'r'u'o'y''''t' 'g'n'i'h't'y'r'e'v'e''' 'y'a'w'''''''s'e'o'g' ''k'a'm' 'd'l'u'o'c'Y'''''''''''''''' 't'''''''''''''''''''''''''t'o'l' 'a' ''' 'l'''''''''''n'''''''''''''''''''''''''''''''''''''''''''Yeah, well spotted. Each of these tests changes multiple variables. Maybe my reference implementation is faster than automerge simply''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'p'm'i's' 'e'g'r'e'm'o't'u'a' 'n'a'h't' 'r'e't's'a'f' 's'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'c'n'e'r'e'f'e'r''''d' 'y'm' 'e'b'y'a'M' '.'s'e'l'b'a'i'r'a''''e'v' 'e'l'p'i't'l'u'm' 's'e'g'n'a'h'c' 's't's'e't' 'e's'e'h't' 'f'o' 'h'c'a'E' '.'d'e't't'o'p's' 'l'l'e'w' ','h'a'e'Y'g'n'i'g'n'a'h'c' 's'e'l'b'a'i'r'a'v' 'y'n'a'm' 'o'o't' 'e'v'a'h' 'u'o'Y'''''''''''''''''' 't'''n's'e'o'd' 's'i'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n's'e'g'n'a'h'c' 'e'l'p'i'''''''p'i't'l'u'm' 'm'o'r'f' 't'l'u's'e'r''''e' 'e'h't' 'w'o'h's' 's'k'r'a'm'h'c'n'e'b' 'e's''''''' 'e'e'h't' 'f'o' 'l'l'A'''''''n'o' '#'#'#'n'n'''''t'i'b' 'e'l't't'i'l' 'a' ''l'e'A''w''''''''''''''''''''''''''''y'l'b'a'''b'o'r'p''''''''''''''''''''''''o't' 'e's'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''s'i'''a' 'n'o' 'e't'o'n' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'O''''Y''''''e's'u'o'h' 'r'u'o'y' 'n'i' 'e'r'e'h'w'e'm'o's' 's'e'm'L''a'n' 't's'i'l' 'g'n'i'p''m'''''p'''o'h's' 'r'u'o'y' 'n'o' 'm'e't'i' 'h'c'a'''E'''''''''''''''''''''''g'''''''''''''''s'e'g'a' ''n'i'k'a'e'p's' 'y'l'e'v'i't'a'l'e''''''''''''''''''''''''''''''''''''''''''o'g' 'e'n'o' 'n'i' 'l'''l'a' 't'i''''''''''''''''''''''''''''''''''''''''d'l'r'o'w' 'l'a'e'r' 'e'h't' 'n'i' 'd'e's'u' 'r'e'v'e'n''' '''''' '''''t's'o'm'l'a' 'e'r'a' '' 'h'c't'e'f' '''''''''e's'u'a'c'e'b' 'n'a'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e's'o'h't''''''''''''''''.'''d'l'r'o'w' '''''''''''''''''''f''' 'h't'i'w' 'm'e'l'b'o'r'p' 'e'h''''''''''''''''''' 'p''''g'n'i'u' 'd'n'e' 'u'o'y' 't'a'h't' 's'i''T'l'a'e'r' 'e'h't' 'n'i' 'e'c'n'a'm'r'''o'f'r'e'p' 's'n'i'u'r'''''''''''''''''''''''''''''' 'k'r'o'w' 't'a'h't' 'l'l'a' 'f'o'''''''''''''''''''''''''''''''''''g'n'i'n'''''''y'a'w'y'n'a''''''''''''''''''''''''''''''''''''''''''''r'e't's'a'f' 'y'n'a' 'n'e't't'o'g' 'y'l'l'a'e'r' ''''''''''''''''''n'i' 'r'e't's'a'f' 'n'e't't'o'g' 't'''n's''''n'a'h' 't'i' 'y'h'w' 'd'n'a' ','' ''n'u'r' 'p'u' 'd'n'e' 'n'e't'f'o' 's'm'a'r'g'o'r'p' 'r'u'o'y' 't'l'u's'e'r' 'a' 's'a'''''''u's' 'n'o'i't'a't'n'e'm'g'a'r'f' 'y'r'o'm'e'm' '-' 't'i''''u' 's'i' 's'i'h't' 'd'n'a' ' 'r'e't'u'p'm'o'c' ''''''''''''''''u'p'm'o'c'e'h't'r'(''''''''''''''''''')'r'e't'u'p'm'o'c' 'r'u'o'y' 'r'o'f' '''''''''''''''''''''''''''''''''''''''''''''' '''f'o' ''''''s'n'a'p's' ''''k'n'u'h'c' ''''''''''''''''''''''''''''''y'''r'o'm'e'm' 'n'i' 's'u'o'u'g'i't'''''''i'g'n'o'c' 'l'l'a' ',''a'''''''''''''''''''''''''''''a' ',''''')'!'(' 's't'r'e's'n'i' 'f'o' 's'n'a'p's' '2'3' 'e'r'o't's' 'e'w'''''''''' 'w'e' ','f'a'e'l' 'h'c'a'e''''l' 't'a' 'd'n'A' ''''u'o'y''''''''''''e'm'a'n' 'e'h'''''' 't'u'o'b'a''T''y'l''''''''''''''''''''''y'u'b' 'o't' 'd'e'e'n' 'u'o'y' 'g'''' 'n'i'h't'n'o' '''''''r'e't'f'a' ','''''''''''''''''''''''''''' ','''d'a'e'r'''''''''''''''''''f'o' 's'e'i'r'e's''s' 'a' 's'''t's'i'l''''''''''s'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'i'f' 'u'o''''''''''''''''''''''''''''d'e'e'n'''''''''''''''''o's'l'a' '''' '' 'u'o'y' 's'y'a's' 'y'l'l'a'u't'c'a' 'h'c'i'h'''''''w''y' 'l'''''s'e'g'a' ''l'i'w' 'e'r'e'h't' 'd'n'u'o'r'a' 'h'c'r'''''''''''''''''''''''''''''' 'd'e'k'c'a'p''''''''y'a'r'r'a' '''''''''''''''''''''e'd'o'''n'''''''''''n'i' 't'l'u's'e'r' ''' 'f'a'e'l' 'h'c'a'e' 'n'i' 'e'n'i'l'n'i' 'n'a' 'g'n'i'r'o't's' 'm'''I'''a'e's'''''''s''''''''''''''''''''''''''t'a'e'b't'r'a'e'h' '''''''' 'c'i'p'e' ''r'e'p' 's'e't'y'b' 'w'e'f' 'a't'i' ''''''''''''''''''''''''''''''''''''''' ''''''''''d'e's's'e'r'd'd'a'o''''''''''''''''''''''''''''''''''''''''''''''' 'y'l't's'o'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'v'e'r'o'f' ','d'n'u'o'b' 't'u'o'h't'i'w' 'w'o'r'g' 's'o'p'e'r' 't'i'g' 'r'i'e'h't' 't'a'h't' 'e'r'a'c' 'o't' 's'm'e'e's' 'y'd'o'b'o'n' '-' '''''''''''''''''''''''''''''''''''''l''' ','h's'o'G''''''''''''''''''''.'h'c'u'm' 'o'o't' 'd'n'i'm' 'o't' 's'm'e'e's' 'y'd'o'b'o'N' ''s'e'o'd' 't'i'g' 'e'k'i'l' 't'i' 'e'r'o'n'g'i' 't's'u'j' 'd'l'u'o'c' 'u'o'y'''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''g'n'i'h't'y'r'e'v'e' 'o't' '''' 'l'a'n'o'g'o'h't'r'o' 's't'a'h't' 't'u'B'n'n'.''e'r'a'c' 'y'd'o'b'o'n' 'd'n'a' 'r'e'v'e'r'o'f' 's'w'o'r'g' '')'t'i'G''''g' 'g'e'(' 'd'e'r'o'n'g'i' 'r'O' ''''''''''''''' 'd'e'd'n'''''''' '5''''e'h't''r'o'f''e'm'm'o'c'e'r' 'y'l'''''''''''''''''''e'v'i't'a'r'o'b'a'l'''l'o'c''' 't'''''''l't'n'e'r''''e'r'''''-' '''u'''c''''''''''''''''''y''' 't'a'h't' 'w'o'l'f'k'r'o'w' 'e''''''''''''''''''''''h''''' 'r'u'o'''''''r'u'y' 'e's'u' 'd'l'u'o'c' 'e'W'''''''''''''!'e's'a'e'l'p' ''''!'p'l'e'H' '.'''h't''''s' 's'i' 's'i'h'T'''t' 'd'e's'o'p'p'o' 's'a' ','''d'''''r'o'w' 'r'e'p' ''''''''n''' 's't'I'''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't's'i'l' 'd'e'k'n'i'l' 's'e's'u' 'y'd'o'b''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''' '''''t'u'b' ','e's'a'b'a't'a'd' 'a' 'f'o' 'p'o't' 'n'''''''' 't'a' 'l'l'a'o' 'g'n'i'h't' 'f'o' 't'r'o's' 's'i'h't' 'g'n'i'o'd' 'o't' 's'e'h'c'a'o'r'p'''''''''''''a'o'p'r'p'a' 'r'e't't'e'b''''e' 'e'r'a' 'e'''' 'r'e'h'T' ''o'n' 't's'o'm'''''''o'n'l'a' 'y'h'w' 'n'o's'a'e'r' 'a' 's'''e'r'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'*''s'e''*'c'o'r'p' 'n'a'c' 't'I' '.''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'n'o'c'e's' 'y'r'e'v'e' 's'n'o'i't'a'r'e'p'o''''p' 'n'o'i'l'l'i'm' '3'.'4' 't'u'o'b'a' 'r'o' ',''''.'e'g'r'e'm'o't'u'a' 'h't'i'w' 'd'e't'r'a't's' 'e'w' 'e'r'e'h'w''''e'h't' 'n'a'h't' 'r'e't's'a'f' 'x'0'0'5''''''''''0'0'4'4' 's't'a'h'T' ''h'T'''''''''''''''''''d''*'e'k'n'i'l'''''*'' 'y'h'w' 's'i' 's'i'h'T' ''''n'n'n''''''''o's'l'a' ''''''''''''''''''''''y'r'o'm'e'm' 'n'i' 'r'e'h't'e'g'o't' 'l'l'a' 's'i' 'a't'a'd' 'r'u'o' 'o's' '' 'u'o'y' 'n'e'h'w' 'y'l'n'o' 'd'n'a' '-' ''''h' '''B' ','k'l'i'M' ','e's'e'e'h'C'''''''''''''''''''''''''''''''''''''''''''''''''''r'o'''''''''''''''?'''''''s''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'a't'r'o'p'm'i' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'k'i'l'''''''''''''''''''''''''''''''''''''''t'doc = { content: [' '''doc '''n '''''''''''' { item: 'hello', isDeleted: false, id: ['seph', 0]' ', seq, parent: null },n'n '[' ':'''''d'l'r'o'w''t'n''''e'u'r't'''''e'k'i'm'''''] }'''e't'n'o'c' '''''''''''''''''''''''''''''''''''''s'''t''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'i' 's't'i' 'w'o'N' '.'e'r'o'm'y'n'a' 's'm'e't'''''''''s'i'h't' 'r'o'f''https://crates.io/crates/ropey' ''i' 'f'o' 't's'i''''''' 't'e'y'''''''''''''''''y'l't'n'''''''''''''''s'''t''''''''t'n'e't'n'o'c' ''n'e'm'u'c'o'd' 'e'h't' ''e'i'c'i'f'f'e' '''''' 't'e'l''''''s'm'e't'i' '''e'h't' 'n'i' 'e'v'i'l' 't'''n's'' '''e'''''''''''''''' 'e't'y'b''''''''g'n'i'k'c'a'p''''''''''''''a'c' 'h''''''''''' 's'i'h't' 'e'k'i'l'c'i'h'w''o'd' ''n'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l't'n'e'r'a'p'p'a'''''''''''''''''''''''''''''e'm'o's''''')'!'e'd'o'c' '''''''''''''''m''' 't'u'B'''''''''''''''''''''''''''''''''y'a'w'y'n'a' ''.'s't'n'e't'n'o'c' 's'''t'n'e'm'u'c'o'd' 'e'h't' 't'u'o'b'a' 'e'r'a'c' ''y'm' 'n'a'h't' 'r'e't'h'g'''''w'o'H''''' 'n'a'c' '?''i't''''''''''''''''''''n'a'h't' 't'n'e'i'c'i'f'f'e' 'e'r'o'm' 'y'a'w' 's't'i'''''T'D'R'C' '-' 't'n'e'm'u'c'o'd' 'e'l'o'h'w' 'e'h't' 'e'r'o't's' 'o't''''''''' 'e'h't' 'r'o'f' 'b'k'0'0'2' 's'e's'u' 'y'l'n'o' 'y'e'p'o'R'(' ''m'u''''''''''''''''d'e'l'l'u'p' 'n'e'e'b' 's'a'h'''''''''''''' 'm'''I' '.''''' 's'i' ''c'o'd' 'e'h''''e't' 'e'c'i't'o'N''''''''''' 'o't' 'r'e's'o'l'c''''''''''e'k'i'l' 'e'r'o'm''''l' 'g'n''''n '''''''''''''''''''''''''''''''n '''n ' ''' '''''''n'''''s''''''''''e'n clients: ['seph', 'mike'],''{''''e'','r'T''R'''''''n'a'c' ''C'e'g'n'n''a'R''''''e'e'' 'W' ''''''''''h'c'u'W''m' '''r''n'''''''' 'n''''g'n'i'e'h'w' ' items: RangeTree {['T'B''''''''''''r''''R''''''''''s'i'h'T' '.''''''''''''''''''''s'e'l'b'u'o'd''''''''''''''''''''''''''e'''- There's a bunch of use cases where we don't''''''''''''''''''''''''''''''''''''''''''''''' 't'''n'o'd' 'e'w''''''''''n'o'd' 'e'r'e'h'w' 's'e's'''''''''''''''''''''''''''''''k'''''''''''''''''''''''''''''''''''!'''s'''w'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't'''''''s'''' ''''s'''''''i' '''''''''''''''s'''e'e'r't'-'B' 'o'w't' 'e's'e'h't'''''''' 's'e's'o'h't' 'n'e'e'w't'e'b' 'g'n'i'c'n'u'o'b' 'y'''b''''''' 't's'u'j'''''w' ''.'e'h'c'a'c' 'U'P'C' 'e'h't' 'g'n'i'h's'a'r'h't' 'y'l'b'a'b'o'r'p' 'm'''I''''''''' 's'''e'r'e'h'T''''''''''''''''''''''''t' 'g'n'i'e'e's' 'y'l'b'a'b'o'r'p' 'e'r'''e'W' '''''<''''r''' 'e'e'r''''''''''''''''n'a'h't' 's's'e'l' 's'i''''''h't' 't's'a'l' 'e's'o'h't' 't'a' '''''''''''' 'o't' 't's''''''''''''n'o's'a'e'r' 'e'h'T' '''''''''''''*' 'a' 'l'l'e''*'m's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''','l'l'a' 'd'n'a' 'e'p'o'r' ','''''''''s'n''m'2'5' 'n'i' 'e'c'a'r't' 's'i'h't' 's's'e'c'o'r'p' 'n'a'c' 'h'c'i'h'w''''''''''''''''''0'2' '*'r'e'h't'o'n'a'*' 'h't'i'w' '''e'r'u't'u'f' 'y'm' 'n'i' ''I''''''''''''''''''a' 'e'k'i'l' 's'k''-''''' ''''o'o'l'''''''''''y't'''''''''n'e'v'e' 'e'v'a'h' 'd'l'u'''o'w'' 't'I''''''''''W''''''''''''''''d'e'd'e'e'n' 'y'l'l'a'e'r'''''''''''''r'e'p''''''''''e'b' 't'h'g'i'm' ''''''''''''''''''''''''''''''''''''''''''i''' '''t'u'b' ','s'r'e'p'a'p' 'c'i'm'e'd'a'c'a' 't'a' 'e'l'b'i'r'''''''b'i'r'e't' 'm''''''''''''''''''''''''''''''''''' 'd'n'a' '''''''''''''s'r'e'h'c'r'a'e's'e'r' '''s'l'l'i''''''''''''''''''''''''''''g'n'i't'i'd'e' 'e'v'i't'a'I''r'o'b'a'l'l'o'c' 'P'2'P'k's' 'y'm''''''''''''''''''''''''''''''''''''t'u'B' '.'s'c'i't'n'''''''''''''''''''''''''t'h'g'i'm''''''''''''''''''''''''''''''''''''g'n'i't'i'd'e' 't'x'e''''''''''''''''' ','d'r'o'c'e'r' 'e'h't' 'r'o'F't' 'r'o'f' ''e't''''''''''''''''''''''''''''l'l'a' 'o'd' '''''''''''''''''''''''''''''''''''''' '.'s'a'm'r'a'''''''''''''e'h'T''''''''''''''''''''''''''r'o'o'd''''' 'y'm' 't'a' 'g'n'i'k'c'o'n'k' 'e'm'a'c' ''''''''''''''''''''''''''''''''W' '.'''''''s'i'h't' '''''''''''''''''''''''''''''s'i'That pa'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r''' 'd'e'z'i'l'a'r't'n'e'c'e''''''''''''''''''''''''''''''''''''''''':'A' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'v'i't'a'r'o'b'a''''''''''''''''''''''''''''''''''''''''s'T'D'R'C' 'f'o' 'p'o't' 'n'o' 't'i' 'o'd' 'o't'''''''''''''t' 'i't' 't'n'a'w' 'u'o'y' 'd'n'a' ','l'l'o'c' 'd'e's'a'b' 't'n'e'm'u'c'o'd'''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't' '''''''''''n'o' 'g'n'i'k'r'o'w' ''''s'i'h't' ''''''' '''''''t' 's's'e's'u' 'e'H' '.'s'n'o'i't'a'c'i'l'p'p'a' 's'u'o'i'r'a'v' 'o't'n'i' 's'j'y' 'g'n'i''''e't'a'r'g'e't'n'i' 'p'l'e'h' 'r'o'f' 'e'g''''n'n'a''''''''' 'f'o' 's'''' 't'o'l' ''h'c'x'e' 'n'i' 'y'e'n'o'm' 's't'p'e'c'c'a' 's'e'm'i't'e'm'o's''''''''''''''''''''''''''t'r'o'p'p'u's'''''''''''''''''''''''g'n'i'''''''''''''''''''')'k'r'o'w''''''''''''''''''''''''''''''''''''''''''''' 'l'l'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'j'y' 'e'k'i'l' '''''''''''''''''','''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'u'o'Y''''''e's'e'h'T''''''''''''''''''''''''''''' '/' '''''''''f'o' 'e'l'p'u'o'c''''''''''''''g'n'i'd'a'e'l's'i'm' '/' ''d'r'i'e'w''''''''g'n'o'r'w' 'e'r'a' 's'k'r'a'm'h'c'n'e'b' 'r'u'o'Y' ':'B' 'g'n'i'd'n'e'p'p'A' '''''''''''''''''''''''''''''''''''''''''''''''' 'w'o'n'k' 'I' 's'a' 'r'a'''''''''''''''''''''''''''''''''''['''''''''https://github.com/sh''''''''''''' 's'i'h't' 'g'n'i'o'D''''I'are/sharedb''.''''''''''''''''' 'A'G'R' 'd'n'a' 'A'T'A'Y' 'r'o'f'''''''n'a'c' ''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'c'n'a'm'r'o'f'r'e'p' 'n'o'i't'a't'n'e'm'e'l'''''''''t'a' 'd'e'k'''''''''''''''''''''''''''''''''''''''I' 'e's'u'a'c'e'b' '''m'i'a'l'c' 's'i'h't' 'n'i' 't'n'e'd'i'f'n'o'c' 'l'e'e'f' ''''o'o'l''''n''p'm'i' 'r'u'o'y' 'r'o' ','n'o'i't'a't'n'''''''''''''''''''''''''''''''''' ')'h't'a'p'e'd'o'c' 'l'a'c'i't'n'e'd'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'''''o's'l'a' ''''.'''e'c'''i't'c'a'r'p'''''''a'r' 'n'i' 'e'r'a'r' 'y'l'e'm'e'r''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'o't' ','t'i' 'o'd' 'd'''u'o'y' 'w'o'h' 'w'o'n'k' 'I'g'n'i't'l'u's'e'r' '''''''''''''e'c'n'a'm'r'o'f'r''''f'e'p' 's'''s'j'y' 'g'n'i'g'n'a'h'c' 't'u'o'h't'i'w' ','t'x'e' 's't'a'h't' 't'u'b' '-' 's'e'c'a'r't' 'g'n'i't'i'd'e' 'y'v'a'e'h'-'t'c'i'l'f'n'o'c' 'h't'i'w' 's'e'c'n'e'r'e'f'f'i'd''''''g'n'a'h'c''''W''''.''' '''''e''''''''''''''''''a' 'e'h' 'c'''''''''''''''''o't'n'i' '''t'''''''''''''''''''''''''''''''''''''''''''''.'r'o'f' 's'k's'a' 'y'l'l'a'u't'c'a' 'y'd'o'b'''''''b'o'y'n'a' 'e'r'u't'a'e'f' 'a' 't'o'n' 's't'I' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' ','''''''''''''e'r'e'h't' ''nYes, I know and I agree''''''''''''''''''''''''''''''''''''''''''''''' 'y'r'o'm'e'm' 'd'n'a''''''''''''''''''''''''''''''''e''''''''''''''''''a''' ','y'l'b'a'u'g'r'a' 't'u'B' ''''''''g'a's'u' 'M'''''''''o'm' 'f'o' 'A'R' 'g'n'i't'l'u's'e'r' 'e'h't' 'd'n'a' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'u'o'b'a's'''''''o' 't'o'l' 's'''e'r'e'''''''''''''''''''''''''''.'h'g'u'o'h't' 'n'u'f' 'y'l'l'a'e'r' 's'i''' 't'I'''''''''e'm'i't' 'h'c''''''''''''''r'o' 'k's'i'd' 'n'o''''c'u'u'm''n'n'''' '''' 'h'T' '.'e'c'a''The *act''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'w'o'l'e'b' 'e'r'o'm'(' '''''(' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n'i'v'i'l' 'd'n'a' 'd'e''''''''''g'n'i't'i'd'e' 'y'l't'n'e'u'q'e'r'f'n'i' 's'i' 't'n'e'm'u'c'o'd' 'a' 'g'n'i'm'u's's'a'(' 't's'e'r' 't'a' 't'n'e'm''''''''''n'm'e'u'c'o'd' 'a' 'e't'a'd'p'u' 'o't' 'n'e'k'a't' 'e'm'i't' 'e'h'T'''''''''''''''' 'n'e'k'a't' 'e'm'i't' 'e'h'T''''T' '-'n'''ually important*''B'r't''*''''(' 'g'n'i't'i'*''d'n- How much time the document takes to save and load from disk''e' 'l'a'c'o'l' 'a'''' 'n'a' 'y''''c'a'l'p'e'r' 'o't' 'n'e'k'a'''''''a'o't' 'e'm'i't' 'e'h't' 's'''' 'e'r'u's'a'e'm' 'y'l'n'o' 't's'o'p' 's'i'h'T' '.'''d'n'a' '-' 'k'r'o'w' 'f'o' 't'o'l' 'a' 's'i' 'r'a'l'u'c'i't'r'a'p' 'n'i' 't'a'm'r'o'f' 'y'r'a'n'i'b' 'e'h't' 'g'n'i'g'n'a'h'C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e't'n'e'm'e'''''''''''''''''''''''''''''''''''''''''''''' ''''y'm' '''''''''''''''''''''''''''''''''' did''''I'd'''''''''''''d'l'u'o'w'''''''''''''''''''''o's' ''.'S'''''''''t'''''''''''''' 'g'n'i't'l'u's'e'r' 'e''''''''''''''''''''''''n'-'-'-'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'l'o'h'w'''''''''''''''''''''''''''''''''''''''''''''''y'l'e'm'e'r'''''''''''''''''s'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'r'o'p''''''''''''''t'u'b' ','g'n'i't'i'd'e' 'p'u's' 'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'T'''''''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't''''''''''''''''''''''''''''''''''''''''''''''''''''''''c' 't'p'i'r'c's'a'v'a'j' 's''''''''''''''''''''''''!''''''''''''''''''''y'l'l'a'e'r''''e' '''''''''''''''''''''''''''''''''''''''''''''''''n':'e'd'o'c' 's'i'h't' 't'a' 'k'o'o'L' '.'t's'a'f' 'e'b' 'o't' 'g'n'i'y'r't' 'n'e'v'e' 't'o'n''''''''''''t's'u'j' 'y'l'l'a'e'r' 's't'''''''''' 'd'y'I'''''''''''''''' 't'a' 'k'''''''''' 'k'o'o'o'l' 'a' 'e'k'a'T' '!'!'w'o'n'k' 'I'n''''w'o'l's' 'y'l'l'a'e'r' 's'i' 'e'g'r'e'm'o't'u'a' ','w'o'c' 'y'l'o'H' ':'C' 'x''''g'i'd'n'e'p'p'A' '#'#'#'n's'i'l' 'e'v'''I' 's'e'h'c'a'o'r'p'p'a' 'e'h't' 'f'o' 'y'n'a' 'h't'i'w' 'k'r'o'w' 'd'l'u'o'h's' 's'g'n'i'h't''''a''B'''''''''e'r'a''')''''''''''''''''''''''''e'v'o'b'a' 'g'n'i'o'd' 'm'''I' 't'a'h'w' 'o't' ''r'e't't'a'm'i't'n'A' 'r'o' ',''''''''''''' 'r'o' 'm'h't'i'r'o'g'l'a' 'C'G' 's'''s'j'Y' 'g'e'(' ''''''''''''''''''s'e'x'i'f' 'e's'e'h't''''' 's't'i' ''''''''''''''''''''''''''''''''.''''''''''o' 'o't' 'l'a'n'o'g'o'h't'r'o' 's'i' 's'i'h't' 'g'n'i'x'i'f' 't'u'b' ','d'e'x'i'f' 'e'b' 'n'a'c' 's'i'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a' 't'u'B' '.'e'm'i't' 'o't' 'e'm'i't' 'm'o'r'f' 'e'z'i's' 't'n'e'm'u'c'o'd' 'e'h't' 'n'w'o'd' 'g'n'i'm'm'i'r't' 'd'n'a' ','''' 's'i'h't' 'g'n'i'x'i'f' 'r'o''''r'f' 's'm'h't'i'r'o'g'l'a' 'e'm'o's' 'e'r'a' 'e'r'e'h'T''''''''''' 't'''n'o'd' 'u'o'Y'''''''''''''''''''''''d'e'e'n' 'y'l'l'a'u't'c'a' 't'''n'o'd' 'e'W''''T'''''''''''''''''e'c'i't'c'a'r'p' 'n'i' ''''''''''''''''''''''''''''''''''''''''o't' 'h'g'u'o'r'h't' 's'l'l'a'c' 'M'S'A'W''''''' 's'l'l'a'c' ''''''''''''''''''''''''''''i' '''''''''''''''''''''https://github.com/automerge/''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!''''''''''''n'u'R' '.'o'o't' 'w'o'n'k' 'o't' 'e'v'o'l' 'd'''I''''''' 'e'b'y'a'm'''''''o'l' 'd'''I' '-' 'n'o'i't's'e'u'q'''''''e'u' 'd'o'o'G' '?'e'r'a'p'm'o'c' 's'r'-'e'g'r'e'm'o't'u'a' 's'e'o'd'''''''''''u'a' 's'i' 't's'a'f' 'w'o'H' '!'s'i'h't' 'g'n'i'd'a'e'r' 'e'r'''u'o'y' 'e'm'i't' 'e'h't' 'y'b' 'automerge-r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e'd'n'a'l' 's't'i' 'e'b'y'a'M' '.'s'h't'n'o'm' 'r'o'f' '''w'o'n' 'n'o''''n'o's' 'l'a'e'r''' 'n'e'e'b' 's't'I'''''''''''''''''''''k'e'e'w' 's'i'h't' 'e'b'y'a'M'(' '.'s'd'n'a'l' 'y'l'l'a'n'i'f' 't'a'h't' 'r'e'v'e'n'e'''''''''''''r'e'v'''''''e'n'e'h'w' ',')'s'(']'s'r'-'e'g'r'e'm'o't'u'a'[' 'y'b' 'd'e'c'a'l'p'e'r' 'e'b' ''''''''''''''''e'r' 'e'b'o't' 'g'n'i'o'g' 'l'l'a' 's'i' 'e'd'o'c' 's'i'h't' 't'u'B''''T'n'''''''''''''''' 'e'm'o's' 'e'r'a' 'e'r'e'h'''T'''''''i' 's'i'h'T' '.')'s'm'e't'i' 'd'e't'e'l'e'd' 'l'l'a' 'm'o'r'f' 's'e'n'o't's'b''''s'm'o't' 'p'e'e'k' 'e'w' 'e'c'n'i's'(' 'e'm'i't' 'r'e'v'o''u' 'w'o'r'g' 's'i'h't' 'e'k'i'l' 's'T'D'R'C' '.'g'n'i'n'u'r'p' 'o't'n'i' 'g'n'i'k'o'o'l' 't'o'n' 'o's'l'a' ''-'-'-'n'n'''I'm''''' 'm'''I'n'n'.'t'n'e'm'o'm' 'e'h't' 't'a' 'm'e'l'b'o'r'p' 's'i'h't' 't'u'o'b'a' 'g'n'i'k'n'i'h't' 's'i' 'y'd'o'b'o'n' ','w'o'n'k' 'I' 's'a' 'r'a'f' 's'A'n'n''''t'''''''''''t'n'e'r'r'u'c'n'o'c' 't'n'a'w' 't'h'g'i'm' ''''''''''''''''''''''''''''''''''''.'s'r'o't''''o'''''''i't'i'd'e' 't'x'e't' 'e'v'i't'a'r'o'b'a'l'l'o'c' 't'''n'e'r'a' 'h'c'i'h'w' 'e'r'e'h't' 't'u'o''''a' 's'n'o'i't'a'c'i'l'p'p'a' 'f'o' '%'9'9' 'e'h't''''''''' 'e'h't' 'l'l'a'l'l'''i'w'''''''''''''''''''''''''''w' 'f'i' 'y'l'l'a'i'c'e'p's'E' '.'''''''''''e'p's'E' '.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a'''''''''''''''''a'h't' 's'n'i'o't'a'c'i'l'p'p'a' 'e'r'o'm' 'o't' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'd'd'a' 'e'w' 'g'n'i'p'o'h' 'e'r''''''''''''''u'o'y' ')'e'm' 'e'k'i'l'(''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'g'n'i't'i'd'e' 't'x'e't' 'f'o' 't'x'e't'n'o'c' 'e'h't' 'e'd'i's't'u'o' 'l'u'f'e's'u'''''''o'm''''u''''u'''''''''g'n'i'h't'y'n'a' 'e'b' 'o't' 's'T'D'R'C' 't'n'a'w' 'e'w' 'f'i' ''''''''''''''''''''''''' 'e'w' 'f'i' '''''''(' 's'n'o'i't'a'c''''i'l'p'p'a' 'l'l'a'e'r' ''''''' 'e'm'o's' 'r'o'f' 's'''' 'r'e't't'a'm' 't'i' 'd'n'a''''n' ','t'x'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'i'c'i'f'f'e'n'i' 'y'l'l'a'e'r' 'y'l'l'a'u't'c'a' 's'i' 's'i'h'T'''''''''''''''' 'r'o'f' 's'i'h't' 'o'd' 'e'W'''''s'i'h'T'n'n'n'i'a'g'a' 'k's'i'd' 'o't' 'k'c'a'b' 't'n'e'm'u'c'o'd' 'e'l'o'h'w' '''3. Save the''''''''''''' ''''''' 'w'e'h't' 'e'v'a'S' '.'3'n'e'g'n'a'h'c' 'r'u'o'y' 'e'k'a'M' '.'2'n'M'A'R' 'o't'n'i' 't'n'e'm''''''''''n'm'e'u'c'o'd' 'e'h't' 'd'a'o'L' '.'1'n'n':'o't' 't'''''''t' '''''''t' 'n'a'w' 'u'o'y' 'g'n'i'm'u's's'a'''' 'o't' 'n'e't't'i'r'w' 'e'r'a''''''''''''''''''''''i'r' 'e'h't' 'e'm'u's's'a' 'o't' 'm'e'e's' 'e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'y''''a' ','y'l't'n'e'u'q'e'r'f'n'i' 'o't' 'n'e't't'i'''''''r'w'''''''''''''''''''''''r'w' 'y'l't'n'e'u'q'e'r'f'n'i' 'y'r'e'v' 's't'i' 'd'n'a' ','s'e'r'g't's'o'p''''P' 'n'i' 'd'e'r'o't's''i'l'''''' 'T'D'R'C' 'a' 'e'v'a'h' 'I' 'f'I' '.'t's'e'r' 't'a' 't'n'e'm'u'c'o'd' 'a' 'g'n'i't'''''''''''''g't'n'i'a'd'p'u' 's'i' 't'u'o'b'a' 'g'n'i'k'n'i'h't' 'e'b' 'o't' 's'm'e'e's' 'y't'i'n'u'm'm'o'c' 'e'h't' 'n'i' 'y'd'o'b'o'n' 'n'o'i't's'e'u'q' 'e'h'T'n''n'''''''''''''''''''s'n'o'i'''''''''''''''''''')''''''''''''''''''''''''' 'g'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h'T'n'n''''''(' ''.'d'e't'e'l'e'd' 'n'e'e'b' 's'a'h' 'm'e't'i' 'e'h't' '*'f'i'*''''i' 't's'u'j' 't'o'N' '.'d'e'n'e'p'p'a'h' 'e't'e'l'e'd' 'h'c'a'e' '*'n'e'h'w'*' 'e'r'o't's' 'o't' 'd'e'e'n' 'u'o'y' 'e'g'r'e'm'o't'u'a' 'r'o'f' 'e's'u'a'c'e'b' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'e't'e'l'e'd''''''''.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''I' ''''''''''''r'e'v'e't'a'h'w' 't'u'b' ','n'o'i't'a't'n'e'm'e'l'p'm'i' 'f'o'''''''''' 'f'p' 's'm'r'e't' 'n'i' 's'n'o'i't'a'c'i'l'p'm'i'''''''''''' 'd'l'r'o'w'-'l'a'e'r' 'e'm'o's' 's'a'h' 'y'l'b'a'b'o'r'p' 's'i'h'T' '''''''''''''''''''''''')'g'o'l' 'n'o'i't'a'r'e'p'o' 'e'h't' 'o't'n'i' 't'a'h't' 's'''''''a' 't'u'p' 'e'g'r'e'm'o't'u'A' '.''''''' '.'e'r'u't'c'u'r't's' 'n'o'i's'r'e'v' 'e'h't' 'o't'n'i' 'n'o'i't'a'm'r'o'f'n'i' 't'a'h't' 's''''a'k'c'a'p' 'd'n'a' 'm'e'h't' 's'e'd'o'c'n'e'-'h't'g'n'e'l'''''''l'e'-'n'u'r''''''''''''''''e'-'E'L'R''''''s'k'c'a'p' 's'j'''''''s'h''''s'Y'(' '''' '.'y'''''''.'t'l't'n'e'r'e'f'f'i'd' 'y'l't'h'g'i'l's''''l' 's'm'e't'i' 'd'e't'e'l'e'd' 't'u'o'b'a' 'n'o'i't'a'm'r'o'f'n'i'''''''''''''''b'a' 'n'i'o't'a'm'r'o'f'n'i'''''e'l'e'd' 't'a'e'r't' 'e'g'r'e'm'o't'u'a' 'd'n'a'''''''''''''''''''''''''''''''''''''''''s't'n'e'm'e'l'e'''''''''' 's't'n'm'e'e'l'e' 'd'e't'e'l'e'd' 't'u'o'b'a' 'n'o'i't'a'm'r'o'f'n'i'''''''h't' 's''''a'k'c'a'p' '''''''''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'f'o' 'g'n'i'd'o'c'n'e' 'h't'g'n'e'l'-'n'u'r' 's'e'o'd' 't'a'm'r'o'f' 'y'r'a'n'i'b' 's'''s'j'y' '-' 'r'e't't'a'm' 't'h'g'i'm' 'h'c'i'h'w' 'e'c'n'e'r'e'f'f'i'd' 'e'n'o' 's'i' ''e'h't' 'o't' 'r'a'l'i'm'i's' 'y't't'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'e'c'n'e'r'e'f'f'i'd' 'l'l'a'm's' 'w'e'f' 'a' 's'''e'r'e'h'T''''''' 'I'n'n'.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'd'r'o' 'n'i' 'd'e'r'o't's' 'y''''''''''t's' 'd'a'e'r'l'a' 's'i' 't'n'e'm'u'c'o'd' 'e'h't' 't'a'm'r'o'f' 's'i'h't' 'n'i''''' 'e'h't'''''''''''''''''''''o'r'p' 'o't' 'e'v'a'h' 'y'l'n'o' 'u'o'y' 'e's'u'a'c'e'b''''e' 'r'e't's'a'f' 't'i'b' 'a' 'y'l'b'a'b'o'r'P' ''''''''''b'a'b'o'r'P' 'r'p' '''i'v'a's' 'd'n'a' 'g'n'i'd'a'o'l' 'r'o'f''m'i'a'l'c'(' 't'c'e'p's'u's' ''t'a't'n'e'm'e'l'p'm'i' 'e's'e'h't' 'f'o' 'l'l'a' 'n'e'e'w't'e'b' ''h't''c'e'p'x'e' 'I' '''''e'r'''y'e'h't' 'e's'u'a'c'e'b' '' 't'i'''e'''''d'o'c' 't'a'h't' 'e't'o'r'w' '''''''''''''''''''' 'y'l'b'a'b'o'r'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''k'n'i'h't' 'I' 'd'n'A' '.'l'a'c'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'o'f'e'b' 'g'n'o'r'w' 'n'e'e'b' 'e'v'''I' 't'u'B' '''n'n'''.'s'e'c'a'r't' 'g'n'i't'i'd'e'''''''''''''''''''''''''''' '-' 'e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't' 's's'e'c'o'r'p' 'o't' 'n'e'k'a't' 'e'm'i't' 'e'h't' 'o't''''w' 'l'a'n'o'i't'r'o'p'o'r'p'''' 'n'i''t'n'e'd'i' 'e'b' 'd'l'u'o'w' 'e'z'i's' 'o's' '-' ''''''''''''''''''')'t'c'a'p'm'o'c' 'y'l'e'm'e'r't'x'e' 'e'r'''y'e'h't'(' 's't'a'm'r'o'f' 'y'r'a'n'i'b' 's'''e'g'r'e'm'o't'u'a' '&' 's'j'y' 'y'p'o'c' 'd'''I' ',''''n'd'i'd' 'I' 'f'I''''''''''''''''''''''''' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h't''''''''''''''''''''' 'y'l'h'g'u'o'r' 'e'b' 'd'l'u'o'w' 't'i' 'k'n'i'h't' 'I' ''n'.'e'd'o'c' ''n'o'i't'a't'n'e'm'e'l'p'm'i''''''''t's'u'r' 'r'o' 's't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'y'm' 'n'i' 't'a'm'r'o'f' 'l'p'm'i' 't'''n'e'v'a'h''''''''''''''''''''''''y'r'a'n'i'b' 'a' 'e'v'a'h' 't'''n'o'd' 'I' '''''''''''''''''''''' 't'''n'o'd' 'I''''''''''''''''e'r' 'y'M' '-'n'''''''''y''' 'e'h'T''''''''''''''''''''' 'h't'o'b'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a't'n'e'm'e'l'p'm'''''''m'n'i' 'y'n'a' 'o't' 's't'a'm'r'o'f' 'g'n'i'k'c'a'p' 'y'r'a'n'i'b' 'e's'o'h't' 't'r'o'p' 'd'l'u'o'c' 'u'o'y' 'k'n'i'h't' 'I' '-' '''''''h' 'e'm' 'r'o'f' 'h'g'u'o'n'e' 's'i' 'f'o'o'r'p' 'e'c'n'e't's'i'x'e' 'n'A'''h'T' '.'''''''''''s'n'o'i't'a't'n'e's'e'r'p'e'r' 'y'r'a'n'i'b' 't'c'a'p'm'o'c'''''t's'a'f' 'y'r'e'v' 't'n'e'm'e'l'p'm'i' 's'e'i'r'a'r'b'i'l''''''''''''''''''''''''''''n't'm'e'e'l'p'm'i' 'h't'o'b' 'e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'Y' '-'n'n':''''''''''''''''''''''''s't'd'r'c'-'e'c'n'e'r'e'f'e'r' 'y'm' 'e's'u'a'c'e'b'''''''''''''' 'h't'o'b' 'e'u's'a'c'e'b' 'y'a'w' 's'i'h't' 't'i' 'd'i'd' 'I'n'n''''''' 'f'o' 't'o'l' 'a' 's't'I' '''''''''' '''''''''''''' 'f'o' 't'r'o's' 'I' ''r'o'p'p'u's' 'A'G'R'n'a'm'r'o'f'r'e'p' 'e'm'o's' 'e'b' 't'h'g'i'm' 'e'r'e'h'T' '-'t's'o'm'l'a' ''''''''''i' 'n'a' 'd'n'a'(''e'm'e'l'p'''m'i' 'r'u'o'y' 'g'n'i''''e'g'n'a'h'c' 't'u'o'h't'i'w' ''''T'D'R'C' 'n'e'e'w't'e'b' ''''''' 'b'd'e''''''d'r'a'h's')'/'(']' '''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'r'o'p'p'u's' 'P'2'P' 't'n'a'w' 'u'o'y' 'f'I'n'n''''''''''''''''''''''P'2'P''''''''''''''''' 'd'n'a' 'g'n'i't'i'd'e' 'p'2'p' 's't'r'o'p'p'u's'''''' 's'e's'u'''''''''''''''''''''''''''''''.'t'r'o'p'p'u's' 'T'D'R'C' 'l'l'u'f' 'd'e'n'n'a'l'p' 's'a'h''''''''l'p'm'i' 's'i'''''''''' 's'e's'i'm'o'r'p' 'h'c'i'h'w' '-' ''''''''''''''''''''''' ','d'r'a'w'r'o''['f' 'g'''https://github.com/redwood/redwoo')'d'(']''n'i'k'o'o'L' ''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''.'d''''r'o'o'w'd'e'R' 'r'o'f' 'd'e't'i'c'x'e' 'm'''I''''''''''''''''''''''''''''''''' '.')'n'e'h't' 'e'c'n'i's' 's'r'o't'u'b'i'r't'n'o'c' 'f''''''' 'c'o' 'y'm'r'a' 'n'a' 'y'b' 'd'e'v'o'r'p'm'i' 'y'l'l'a'u'n'i't'n'o'c' 'n'e'e'b' 's'a'h' 'd'n'a' ','o'g'a' 's'r'a'''''''r's'e'y' 'e't'o'r'w' 'I' 'h'c'i'h'w'(' 'y'm''''''''B'D''''d'e'r'a'h'S' 'e's'u' 'n'a'c' 'u'o'Y' '.'t'e'y' 's'T'D'R'C' 'f'o' 'p'o't' 'n'o'f' 's'a'''''''''''''''''''''''''''''''.'t'e'y' 'l'l'e'w' 's'i'h't' 'e'n'o'd''''m' 's'a'h' 'y'd'o'b'o'n''''''''n'a'c'''''''a'n' 'u'o'y' ','g'n'i't'i'd'e' 'e'm'i't'l'a'e'r' 'r'o'f' 's'c'i't'n'a'm'e's' 'e'k'i'l' 'e's'a'b'a't'a'd' 't'n'a'w' 'u'o'y' 'f'I'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''I' 'd'n'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'a'c'o'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'l'a'u't'c'a' ''''''' 'e'r'o'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' 'e'v'a's' '''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'e's' 'r'o'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'c'n'a''''''''''' 'e'k'a'm' 's'r''.'e's'u''m'r'o'f'r'e'p''''''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 'n'e'p'p'a'h' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'n'e'h'w' '''''''''''''''''''''''''s'w'o'd'a'h's' 'e'h't' 'n'i' 'g'n'i'k'r'u'l' 's'e's'a'c' 'l'a'c'i'g'o'l'o'h't'a'p' 'e'b' 'd'l'u'o'c''''''' 't'h'g'i'm' 'e'r'e'h'T' '.'''''''''' '-' 's't'i'd'e' 'g'n'i'k'a'm' 'r'e's'u' 'e'l'g'n'i's' 'a' 's'a'h' 'y'l'n'o' 'o's'l'a' 'e'r'e'h' 'g'n'i's'u' 'm'''I' 'e'c'a'r't' 'g'n'i't'i'd'e' 'e'h'T'''''''''''''' 'e's'e'h't' 'f'o' 'l'l'A'''''''''' 'o's'l'a' 'm'''I'''''''e'W'n'n' 'e'r'o't's'''''' 'd'n'e's'''''''n'e' 'o't'''''''''''''''''k'r'o'w't'e'n'''''e'r'i''''o'w' 'e'h't' 'r'e'v'o' 's'e'k'a't' 't'n'e'm'u'c'o'd' 'a' 's'e't'y'b' 'y'n'a'm'''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'm'u'c'o'd' 'e'h't' 'e'v'i'e'c''''v'e'r' 'd'n'a' 'd'n'e's' 'o't' 's'e'k'a't' 't'i'''''''o'd' 'e'h't' 'e'c''''e'a'p's' 'h'c'u'm' ''''m'w'o'H' '''''''''''''''''''-''' '-'n'k's'i'd' 'm'o'r'f' 'd'a'o'l' 'o't' 's'e'k'a't' 't'n'e'm'u'c'o'd' 'e'h't' 'g'n'o'l' 'w'o'H' '-'n'n''''''''''':'e'r'a' 's'c'i'r't'e'm' 't'n'a't'r'o'p'm'i' 'e'h'T'n'n'.'r''''.'e't't'a'm' 't'''n's'e'o'd' 'y'l'b'a'b'o'r'p' 'r'e't's'a'f' 'g'n'i'o'g' ','s'm'1' 'r'e'd'n'u''''''''''''' 'n'i' 't'i'd'e' 'r'e's'u' 'y'n'a' 'e'l'd'n'a'h' 'n'a'c'''''' 's't'e'g' 'T'D'R'C'''''''R'c' 'a' 'e'c'n'o' 'o's' '-' 't's'a'f' 'y'r'e'v' 'e'p'y't' 't'''n'o'd' 'y'l'p'm'i's' 's'r'e'g'n'i'F' '.'*'''''' 'h'g'u'o'n'e' 't's'a'f' 'n'e'p'p'a'h' 'o't' 's'd'e'e'n' 'y'l'n'o' ''''o'r'e's'u' 'e'h't' 'm'o'r'f' 's'e'g'n'a'h'c' 'g'n'i'm'o'c'n'i' 'g'n'i't'p'e'c'c'A'' 'w'o'n'k' '''''''''''The''''' 'e'h'T'n'n'.'e'e'r'g'a' 'I' ','s'e'Y'n'n'e'c'n'a'm'r'o'f'r'e'p' 'f'o' 'e'r'u's'a'e'm''''''''''k'r'a'm'h'c'n'e'b' 'g'n'o'r'w' 'e'h't' 's'i' 's'i'h'T' ''''''''.'n'o' 'o's' 'd'n'a' ')'s'n'o'i't'i's'o'p' 'r'o's'''''''s'o'r'u'c'(' 'e'c'n'e's'e'r'p' ','s'e'r'u't'c'u'r't's' 't's'i'l'-'n'o'n' 'r'o'f' 't'r'o'p'p'u's' ','s'l'o'c'o't'o'r'p' 'k'r'o'w't'e'n' ','''''''''' 'd'n'a' 'g'n'i'd'o'c'n'e' 'y'r'a'n'i'b' 'g'n'i'd'u'l'c'n'i' ','''''''''''''''' '.'l'l'e'w' 'o'd' 'o't' 's'd'e'e'n' 't'i'''''''''''''###'' '' 't'i' ' 's'g'n'i'h't' 'r'e'h't'o' '0'0'1' 'e'r'a' 'e'r'e'h't' 'y't'i'l'a'n'o'i't'c'n'u'f' 'n'o''''''''''' 'e'r'a' 'e'r'e'h't' 's'j'y' 'h't'i'w' 'e't'e'p'm'o'c' 'o't' 'e'l'b'a'''''''''''' 'e'l'b'i't'a'p'm'o'c' 'e'b' 'o'T''''''''''''''''''''''''''''''''' 't'a'h't' 's'g'n'i'h't' 'r'e'h't'o' '0'0'1' 's'''e'r'e'h'T''''''''''''''''''''e'v'a'h' 't'''n'o'd' 'y'l'p'm'i's' 'I' '.'y'r'a'r'b'i'l' 'T'D'R'C' 'e's'o'p'r'u'p' 'l'a'r'e'n'e'g''''r' 'l'u'f'e's'u'''''''''e'l'b'a'i'l'e'r' 'a' 'o't'n'i' 'n'r'u't' 'r'e'v'e'n' 'w'''''''''y'l'b'a'b'o'r'p''''m' 't'i' 't'u'b' ','t's'a'f' 'y'l'l'a'e'r' 's'i' 'e'd'o'c' 't's'u'r' 'y'M'n'n'''p' 't'n'e'c'a'j'd'a' 'd'n'a'(' ''k'r'o'w' 'd'n'u'f' 'o't'''''''''''''''''''''''''''''''''.'e'm'i't' 'l'''' 'l'u'f' 's'j'y' 'n'o' 'k'r'o'w' 'n'a'c' 'e'h'''''''e'k' 'o's''''''''''''''''''''''' 'r'o'f' 'e'g'n'a'h'c'x'e' 'n'i' 'k'r'o'w' 'd'i'a'p' 'e'm'o's' 's't'p'e'c'c'a' ''''s'j'y''''''''''''''''''''''''''''''''s'n'h'a'J' 'n'i'v'e'K' 'h't'i'w' 't'c'a''''e't'n'o'c' 'n'i' 't'e'g' 'o'c''''''''''''''''''''' 'o't' 'e'l'b'a' 'e'b' 't'h'g'i'm'a' '''''''''''''''''''''''''''''''''''u''' 'd'l'u'o'h's' 'u'o'y' 'y'a'd'o't''''''''''''''''''''''d'n'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'i'v'e'K' ','n'o'i't'a'c'i'l'p'p'a' 'r'u'o'y' 'n'i' 's'j'y' 'g'n'i't'n'e'm'e'l'p'''''''''''''m'l'p'e'm'i' 'p'l'e'h' 't'n'a'w'''''''''''y'e'n'o'm' 'e'v'a'h' 'u'o'y' 'f'I''''''''''''' 'u'o'Y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'l'i'w' ')'e'm'i't' 's'a'h' 'n'i'v'e'K' 'f'i'(''''g' 'h'c'i'h'w' '-' 't'n'a'w' 'u'o'y' 'f'i''''''t' 's'j'y' 'f'o' 'r'o's'n'o'p's' 'a' 'e'm'o'c'e'b''''''t'e'g' 'o's'''''''''''''''t'i' 'd'e'e'n' 'u'o'y' 'f'i'l'a' 'n'a'c' 'u'o'Y''''''' 'n'i'v'e'K' '.''''''''''''''''''''''''''''''''''''''''d'e'e'n' 'u'o'y''''''''t'n'a'w' 'u'o' 'f'i' 't'r'o'p'p'u's' 'd'i'a'p' '+'(' 't'r'o'p'p'u's' 't'a'e'r'g' ','e'g'a's'u' 'y'r'o'm'e'm' 'w'o'l' ','' 'n'o'i't'a'c'i'l'p'p'a' 'n'a' 'g'n'i'd'l'i'u'b' 'e'r'''u'o'y' 'f'I'''''''''''''''''''''''''''''''''''''''e'c'n'a'm'r'o'f'r'e'p' 't'n'e'l'l'e'c'x'e' 's'a'h' 's'j'Y' '.'s'j'y' 'e's'U'n'n'?'o'd' 'I' 'd'l'u'o'h's' 't'a'h'W' '.'n'o'i't'a'c'i'l'p'p'a' 'y'm' 'r'o'f' 'T'D'R'C' 'a' 'e's'u' 'o't' 't'n'a'w' 'I' '?'w'o'n' 't'a'h'W''''''''''o'o'c' 's't'a'h'T''''''''''''''''''''''e's'u' 'o't' 't'n'a'w' 'I' 'f'i' 't'a'h'W' '#'''#''''''''''''''''''''''y'm' 'n'o' 'n'o'i't'a'm'r'o'f'n'i' 'e'r'o'M''''Appending A: ''''''''''''h'W' '#'n'n'x'''''''g'n'i'd'n'e'p'p'A' '#'n''n'''''''''''''''''''''''''''''''''''''''''''''''''''a' 'e'r'a' 'e'r'e'h''''''''''''''''''''''''''''''''''' 'o't' 'p'''''''''''''''''''''''''''e's'e'h't' 'e'r'a''''A' '-' 'n'o' 'g'n'a'H'''''''''''''''''''''''''''''''''''?'''e'''''m'a's' 'e'h't' 'y'l'l'a'''''''l'l'u't'c'a' 's'T'D'R'C' 'e's'e'h't' 'e'r'A''''''''='='=' 's'j'Y' '#'#'#''n'n''''''''''''''''''''''' 't's'o'p' ''''n'n'.'''s'''i'h't' 'h'g'u'o'r'h'T'''''''''''''''''''''''''''''''''''''e'm'a's' 'e'h't' 'y'l'l'a'c'i'''''''i'''''''i'a'c's'a'b' ''''''''''''''''''''''''''''''''''''''''''''''f'o'''''''m'''''''''''''''''''''''''' 'k'n'i''''''''''''''''''''''''n'n'''.'''e'r'o'f'''e''''''''''y't'r'e'p'o'r'p' '''''''''''''''''''r'e'p'o'r'p'''b' 'd'e'r'e'v'o'c's'i'd' 's'a'h''h't' 'I'''''''' 'y'd'o'b'o'n' 't'a'h't' 'a''''''''r'e'h't'i'e' 'e'd''s''''i' 'l'e'v'o'n''''''''''''''''''''''''' 'I' 'k'n'i'h't' 'I' 't'a'h't''''''''''''''' 'I' 'k'n'i'h't' 'I' 'd'n'a' '''''''''''''''''a''''-'C''''n'Y''''n':''h't' 'a'e'd'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''S' '-'n'''s't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'r'o'f'''''S' '-'''n''' 'c'i'g'o'l' 't'n''''''''''''''''''''''''e't'''''C''' ''''''''''' 's'''s'j'y'-'n'''a''n'n''''''''''a'o'd' 'o't' 'p'u' 't'i' 'p'e'e'k' 'd'n'a' ',''e'r'e'f'f'''''''''''''''''''''''''''''''''''''''y''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''###''''' '#'#'#'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'c'i't'n'a'm'e's' 'e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'y' 'n'e'e'w't'e'b' 's'e'h'c't'i'w's' 'h'c'i'h'w' 'r'e't'e'm'a'r'a'p' 'e'p'y't' 'a' 't'p''''e''''''''''''''''a' 't'p'c'e'c'c'a'''''''a'h' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'T'D'R'C' 'y'm' 'e'k'a'm''''''' 'a' 'd'd'a' 't'n'i'o'p' 'e'm'o's' 't'a' 'l'l'i'w' 'y'l'b'a'b'o'r'p' 'I' ','e'd'o'c' 't's'u'r' 'y'm' 'r'o'F'n'n''r'a'r'b'i'l' 's'i'h' 'o't'n'i' 'e'g'n'i'h' 's'i'h't' 'g'n'i'd'd'a' 'n'i' '''' 'i'd' 'y'l't'h'g'i'l's' 'd'e's'u' 'h'c'i'h'w' ')'''''''''''''''o't'u'a'''t'a' 'h't'i'w' 'e'v'i't'a'n'r'e't'l'a' 'n'a' 'e'k'a'm' 'r'o'(' '' 'w'e'n' 'a''''''i' 's'''''''''''''''''!'''''',''d'l'o'b' 'g'i'b' ''''''''''e''''''''''''''''''''''e'h't''''a''''''''''' 'e'h't''''''''''''''''''e'''''''''''''t'a'h't' ''''''''''''''''t'h'a' 't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'s'e'c'a'r't' 'g'n'''''''l'e'v''.''''''''''''n'e'v''''''''''''''''''e'u'r't' 's'i' 's'i'h't' 't'a'h't' ''o'n' '''''''''''''n'i'k' 'i't'i'd'e' 'r'e's'u'''''''''''''''''''''''''''''''''''''''''''''''''''r'o' 'g'n'''''''''''s''''''''''''''''''''y' 't'n'e'd'i'f'n'o'c' 'm'''''''''''''''y''' 'k'n'i'h't' 'I' 'd'n'A'c'i't'n'a'm'e's''''a' 'i's'u' 'n'e'h'w''''''''''''''''''''''e'g'r'e'm'o't'u'a' 'd'n'a' 's'j'y' 'r'o'f' 'e'c'n'a'm'r'o'f'r'e'p' 'l'a'c'i't'n'e'd'i' 's'a'h' 'h'c'i'h'w' ','' 'e'l'g'n'i's' 'r'o'f' 't's'a'e'l' 't'a'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'h'c'i'h'w' '-' '''m'i'a'l'c''''l' 'd'l'o'b' 'a' 'y'l'l'a'u't'c'a' 's'i' 's'i'h'T''''''''''''''''''''Y''''''''''''''''d'e'c'n'i'v'n'o'c' 'm''''''''''''''''''''''''''''''''''''''''''''''''''o't' ''.'Y''''''d'''e't'n'a'w' 'u'o'y' 'f'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''h'c'a'e''','' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t''''''''''''''''''''''''''''''''''''''''''''''' ','l'o'o'c' 'e'''' 'y'n'a''''' 'e'h'''''''''''''''''''''''''''e'l'b'i't'a'p'm'o'c' 's'j'y' 'g'n'i'k'a'm''''''n'i'd'd'a'''''''g'n'i'k'a'm' 'f'o' ''t''l'i'h'w''''''''''''' 'n'i' ' ','''''''''''''''''''''''''''''.'t'n'i'o'p' 'y'n'a''''t' 'e'e's' 't'''n's'e'o'd' 'e'h' 'd'n'a' 's'i'h't' 't'u'o'b'a' 'n'i'v'e'K' 'o't' 'd'e'k'l'a't' 'I'a'm'r'o'f' 'g'n'i'd'o'c'n'e' 'y'r'a'n'i'b' 'e'h't' 'e'g'n'a'h'c''''h' 'd'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e't'a'd'p'''''''''''''''''''''e'h'T'''''' 's'i'h'T' '.'t'n'e'm'u'c'o'd' 'e'h't' 'n'i' ''u' 'd'n'a' ''''''''''*'q'e'S'x'a'm'*' 'e'r'o't's' 'd'n'a' '*'m'e't'I'*' 'n'i' '*'t'h'g'i'R'n'i'g'i'r'o'*' 'f'o' 'd'a'e't's'n'i'''''''''''f'o' 'd'a'e't'n's'i' '*'q'''''''e's'''''''a'm'*' 'e'r'o't's' 'd'n'a' ','d'o'h't'e'm' '*'e't'a'r'g'e't'n'i'*' 's'''s'j'y' '''''''''''''''''''''''''''''''''''e'g'n'a'h'c' 'o't' 'e'v'a'h' 't's'u'j' 'd'''u'o'y' '-' 's'c'i't'n'a'm'e's' 'A'G'R' 't'n'e'm'e'l'p'm'i'''''''''t'n'e'm'e'p'm'i' 'o't' 's'j'y' 'y'f'i'd'o'm' 'o't' 'h'c'a'o'r'p'p'a' 'e'm'a's' 'e'h't' 'e's'u' 'd'l'u'o'c' 'u'o'y' 'e'v'e'i'l'e'b' 'I''''' 'u'o'Y''''' 'd'n'A' '.''''''''''''''''''' 'y't'r'e'p'o'r'p''''''''''''''''''''''''' 'y'm' 'n'i' 'y't'i'l'i'b'a'g'n'a'h'c'r'e't'n'i' 's'i'h't' 'd'e't'a'r't's'n'o'm'e'd' 'e'v'''I''.'e'g'n'a'h'c' 't'''n'o'w' 'e'c'n'a'm'r''''''''''a'r'm'o'f'r'e'p' 'e'h't' ','s'c'i't'n'a'm'e's' 'p'a'w's' 'u'o'y' 'f'i''''''''''''''''e'c'n'a'm'r'o'f'r'e'p' 'e'h't' 'd'n'a' ','''''e'l'b'a'g'n'a'h'c'r'e't'n'i' 'e'r'a' ''''''''''''''' 's'c'i't'n'a'm'e's''''''''''''''''''''''''' 't''' 's's'i'l'''''T'D'R'C' 'l'l'a' ','s't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'o'n' 'e'r'a' 'e'r'e'h't' 'n'e'h'W'''''' 'A'T'A'Y' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''r'''''e'''h't'o' 'h'c'a'e' 's'a' 't's'a'f' 's'a' 't's'u'j' 'n'u'r' 's'm'h't'i'r'o'g'l'a' 'h't'o'b' 't'a'h't' 'n'o'i't'p'm'u's's'a' 'e'h't' 'n'o' 's't's'e'r' 's'i'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'''''e'l'b'a'g'n'a'h'c''''n'r'e't'n'i' 'e'r'a' 's'm'h't'i'r'o'g'l'a' 'e'h't' '''f'i' 'e's'n'e's' 's'e'k'a'm' 'y'l'n'o' 's'i'h'T' ''y'l'b'a'g'n'a'h'c'r'e't'n'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'f'o' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h't' 'g'n'i'r'a'p'm'o'c' 'y'l't'c'e'r'i'd'''''''''''''p'm'o'c' 'm'''I''''''''''''''''''h't' 'n'e't't'i'r'w' 'e'v'''''''''''''''''''''''''''''''''''''''''''','s'r'e'b'm'u'n' 'h't'i'w' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'n'e'r'e'f'''''''''''''''''''''''''''''n'o'i't'a't'n''''' 'e'h't'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''['''''''''''''''']''''''''''''''https://github.com/josephg/reference-crdt')'s'(']''''''''''''''''''''''''''' ','e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't''''''' 'a' 'h't'i'W'''''''''''''''''''A' '.'s'i' 't'i' ','''' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'T'D'R'C' 'e'c'n'e'r'e'f'e'r' 'y'm' 'n'i' 'e's'u'a'c'e'b' '-' 'l'a'c'i't'n'e'd'i' 's'i' 'd'e'e'p's' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'h't''''''''''''''''''''''' 'e'r'a' 's'm'h't'i'r'o'g'l'a' 'h't'o'b' 't'a'h't' 'm'e'l'p'm'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'p'm'u's's'a' 'n'' 'a' 'g'n'i'k'a'm' 'm'''I'''''''''' 'm'i'a'l'c' 'y'M'''''''''''''''''''i' 's'i'h'T' '.')'e'd'o'c' 't's'u'r' 'y'm' '+' 's'j'y'(' 'A'T''''''''''A'T'R'A'Y' 'd'n'a' ')'e'g'r'e'm'o't'u'a'(' 'A'G'R''''Y' ':'f'i'd' 'e's'u' 'h'c'i'h'w' 's'n'o'i't'a't'n'e'm'e'l'p'm'i' 'g'n'i'r'a'p'm'o'c' 'y'l't'c'e'r'i'd''''''''''''''''''''''''s'c'i't'n'a'm'e's'''''''r'i'o'g'l'a' 'T'D'R'C' 'o'w't' 'h't'i'w' 'e's'o'o'l' 'd'n'a' 't's'a'f' 'd'e'y'a'l'p' 'e'v'''I'''''''''''''''''''''''''b' 't's'o'p' 's'i'h't' 'n'e't't'i'r'w' 'e'v'''I'''''''''I' '.'1'n'n'.'u' 's's'e'f''''''''''''''''''e'f'n'o'c''''f'''''''''''''''''d'n'e'f'e'd' 'd'n'a' ''''''''''''e'f'e''''''i't's'u'j' ','t'i'm'd'a' 'o't' 't'n'a'w' 'I' 't'a'h't' 'e'v'o'b'a' '''T'''''''''''''''''''''''''''''''''s'd'n'a'h' 'f'o' 's't'h'g'i'l's'''''''' 's'h't'i'l'g''''''''''i'g'l' 'w'e'f' 'a' 'e'n'o'd'''''''a' 'e'n'd'o' 'e'v'''I'n'n's'k'r'a'm'h'c'n'e'b' 'h't'i'w' 'g'n'i'y'L' '''' ':'A''''X' 'g'n'i'd'n'e'p'p'A' '#'''''n'n'n'.'u'o'y' 'r'o'f' 'g'n'i'm'o'c' 'e'r'''e'W' '?''D'''''''''''''''''''''''''''''''g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'e'm'i't'l'a'e'R''''P'2'P' '.'w'o'n' 't'i' 'd'n'u'o'f' 'e'v'''e'w' 't'u'B'n'n'.'e'd'i's'n'i' 'e'r'u's''''t'a'e'r't' 'e'h't' 'd'n'i'f' 'o't' ''''s'e'd'a'c'e'd' 'r'e'h't'o'n'a' 'e'm' 'k'o'o't' 't'i'''''''' 't'''n'd'i'd' 'd'n'a' ','e'v'a'c' 's'''n'o'g'a'r'd' 'e'h't' 'r'e't'n'e' 't'''n'd'i'd' 'I' ''''''''''''''''i'd' 'I' '.''''''' '.'y'a'w'a' 'd'e'n'r'u't' 'per was really a call to adventure. It was the world saying was saying 'Hey Seph, we need your help over here. Your skills are a piece of this puzzle, and we can't get it working without you.' In my youthful arrogance I'''''t'a'h'T''''''''''' 'y'l'l'a'e'r''''''''''''''''''e'h't' '''''' 's'a'w' 't'I'''''S''''''''''''''''''''''''''''''''''''''''''''''''''e'r'a' 's'l''''s'l'i''''''''''''''''''''''''''''''''''''''''''u'o'y' 't'u'o'h't''''''''''''' 'I' 'e'c'n'a'g'o'r'r'a'i'w' 'g'n'i'k'r'o''''i'w''''''''g'n'i'k'r'w'o' 't'i' 't'e'g' 't'''n'a'c' 'e'w' 'd'n'a' ','k's' 'r''''''''''''''''''''''''''''s'i'h't'''''''''''''''''' 'l'u'f''''n'h't'u'o'y'''''''u'o' 'y'm' 'n'I' ''''''''''e'l'z'z'u'p' 'e'h't' 'f'o' 'e'c'e'i'p' 'a' 'g'n'i'd'l'o'h' 'e'r'''u'o'Y' '.'e'r'e'h' 'r'e'v'o' 'p'l'e'h' 'r'u'o'y' 'd'e'e'n' 'e'w'''''''''' 'e'W'''''''' ','h'p'e's' 'y'''' 'e'H''''''','t'i'r'i'p's' 's'i'h't' 'n'I'' 't'a'h't' 't'a'h'w'''''''h't' 't'u'o' 'e'r'u'g'i'f''''''''t'''T'''''''''''''''''''''''''''''''''''T'''''''''''''''''''''''''g''''h'n'i'y'a's' ''''''''''''.'e'r'e'h' 'd'e'd'e'e'n''''''''''''n'a' ''''''''''W' '.'e'l'b'a'u'l'a'v''s'a'w' ''''''''''''''''''''''''''''''''''''''e'r'a'r' 'e'r'a' 's'l'l'i'k's' 'r'u'o'Y''' 'g'n'i'y'a's' 'd'l'r'o'w' 'e'h't' 's'a'w' 't'a'h'T' '.'''' 'e'r'u't'n'e'v'd'a' 'o't' 'l'l'a'c' 'a' 's'a'w' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'v'a'h''''n' 'd'l''''d'u'o'h's' 'I' ','r'e'p'a'p' 't'a'h't' 't'a' 'd'e't'a'r't's'u'r'f' 'g'n'i'e'b' 'f'o' 'd'a'e't's'n'I'n'n''i' 'd'n'i'f' 'n'a'c' 'e'w' 'f'i' ','''d'l'r'o'w' 'e'h't' 'r'o'f' 't'f'i'g' 'n'w'o' 'r'u'o''h'd' 't'n'e'r'e'f'f'i'D' ''''''' 'e'W' ''''' '.'o'g'a' 'e'd'a'c'e'd' '''a' 's'T'D'R''''D'C' 'e'l'b'a'k'r'o'w' ','t's'a'f' 'd'a'h''''f' 'e'v'a'h' 'd'l'u'o'c' 'e'w' ','d'i'd' 'I' 'f'i''''''' 'I' 'd'n'A''''''!'s'p'o'O' ''''a'm'e's' 'T'D'R'C' 'g'n'i't'n'e'v'n'i' 'f'o' ' 'e's'u''''''*'''''''''o'h'w' 'w'o'n'k' 't'''n'o'd' '''''''''' 'm'''I'''''''''''''' ''''m''''t'u'o' 's'n'r'u't' 't'I''u's''''''''''''''''''''''''''''''''''''''''''''''.'e'g'r'e'm'e' 'o't' 'd'e't'r'a't's' 's'T'D'R'C''''''''''''r'e't's'a'f' 'h't'i'w' ''''''' 's'd'o'h't'e'm' ')'(''''''''''''e'k'i'l' 'd'e''''d'm'e'e's''''''''''''''''''''''''''''''''''e'r'''y'e'h'''''''!'w''''1'o'n' ''t' 'd'n'a' '-' 'l'a'e'd' 'g'i'b' '''y'l'a' '''''''''''''''''''''''''''''''''''''''''''''A''''''''''''''''''''''''''I'''''''d'e'm'u's's'a'' '-' 'e'k'a't's'i'm' 'g'i'b' 'a' 'e'd'a'm''S' ''''''''''''' 'a' 'e'd'a'm' ' '''''.'''','''g'''n'i't'i'd'e' 'd'l'r'o'w' 'l'a'e'r' 'r'o'f' 'e'l'b'a's'u''''i'n'u' 'y't't'e'r'p'''' 'a'e'r'e'w' ''e'''t'a'd'p'u'_'h'c't'a'b' 'a'''''''''''''''''''''''''''''''''''''''''.'e'c'n'a'm'r'o'f'r'e'p' 'e'r'o'm' 'n'e'v'e' 'r'o'f' 's'e'i't'i'n'u't'r'o'''''''o'p'p'p'o'''''''''''''''''''' 'e'c'n'a'm'r'o'f'r'e'p' 'r'e't's'a'f'''''e'r'o'm' 'l'l'e'm's''''' 'n'a'c' 'I''''''''k'o'o'l' 't'I' '''u''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''t'i'd'e' ''g'n'i's's'e'c'o'r'p' 'y'b''''''''''''''''''''''''''''''''''e'm'i't' 'a' 't'a' 'r'e't'c'a'r'a'h'c' 'e'n'o' 'g'n'i't'r'e's'n'i' 'e'h'c'a'c' 's'''U'P'C''''''''''''''''c' 'U'P'c' 'e'h't' 'g'n'i'h's'a'r'h't' 'y'l'b'a'b'o'r'p' 'm'''I''' 'I''j' '''''''''''''''l'l'i'f' 'y'l'b'a'b'o'r'p' 'd'n'A'n'n''r'o'w' 's's'e'l' 'o'd' 'r'e't'u'p'm'o'c' 'e'h't' 'e'k'a'm' ''a'c' 'e's'u' 'f'o'''Oh look - 29ms + 23ms != 65ms. We're''''''''''k'o'o'l' 'h'O''''''''''''''''''''''''''''''''''''''' 'e'r'''e'W''''''''''''''''' '''' 's't'i' 'f'i' 'r'e'd'n'o'w' 'I' '.'s'm'5'6' '='''' '!' 's'm'3'2' '+' 's'm'9'2' '-' 'd'r'i'e'W''''''''''' 't'''n'o'd''is it'''''''''' 'o't' 'r'e't's'a'f' slower''d'''''''''''''r'e'w'o'l's' 't'i' 's'i' 'y'h'W'(''''('n' 'h'c'n'u'b' 'a' 's'''e'r'e'h'T''''''''''''''''''s'n'o'i't'a'c'i'l'p'p'a' 't's'o'M''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'e'h'w' 'e'k'i'l' '-' 'l'l'a' 't'a' 't'n'e't'n'o'c' 't'x'e't' 'e'h't' 'd'e'e'n' 't'''n'o'd' 's'e'm'i't'e'm'o's' 'e'W' '-'n'''''h't' 'f'''o' 'e'z'i's' 'e'.''h't' 's'e's'a'e'r'c'n'i' '''o's'l'a' 't'I' '''''''''' '''''''''''''''''''y'e'p'o'r' 'n'o' 'g'n'''r'u'o''i'd'n'e'p'e'D'o'T''' '''''''' 't'n'e't'n'o'c''e'''I'm still not sur''''''''''''''''''''''''''''''.'h'c'a'o'r'p'p'a' 's'i'h't' 'e'k'i'l' 'I' 'r'e'h't'e'h'w'''''''''''''''''''''''.'e'g'n'a'h'c' 's'i'h't' 'e'k'i'l' 'I' 'f'i' 'e'''''''''''''''''''' 'e'r'u's' 't'o'n' 'l'l'i't's' 'm'''I'n'n''''''''''''''''''''' 'e'w' 's'e'm'i't'e'm'o'S' '-'n'''''''''''''''''''''''''''' 'n'o'i'''''''''''''''t'n'i'o'p' 's'i'h't' 't'a' 't'a't'n'e'm'e'l'p'm'i' 'T'D'R'C'.''e'r'T'e''''''''''''''' 'y'e'p'o'R'''''''''''s'i'''''d'n'a' ' 'h'''''''''''''''s'''t'n'e'm'u'c'o'd' 'e'h't' ''c'i'h'w' '-' ''''g'n'a''n''''e't'o'N'''''''''''t'x'e't' 'e'h't''''''''''' 'e'n'O' // No string conte''nt!'R''''''''''' 'g'i'b' 'e'n'O''''''''''''''''''''''''''''''''''''''''''''''t'u'B' ''''''''''''''' 'r'a'l'u'c'i't'r'a'p' 'n'i'.''''''''n''' ''''''''''''''''''''e'h't' 'h't'i''''''.'e'r'e'h' ''''w' 'd'i'd' 'I' '''t'a'h'w'''t''t'u'' ','''''''''''''''''''''''''''''''''''''''''''''''''''a't'a'''d' ''''''''''''''''''''''''''''s't'n'e'm'e'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''.''''''''''''''''''''''''''''''''' 'e'h't'''''''''''''''''''''''''''''''''''''''''e'h'T'''''''''''''''''s'e's'a'e'r'c'n'''- It also makes it way faster to read off''''I'''''o's'l'a' '| *JS baseline* | 0.61s | 0.1 MB | *(none)* |'| Rust (Called from JS via WASM) | 0.20s | ??? | B-Tree |'| Rust (native) | 0.065s | 2.3 MB | B-Tree |n'n'n'''''''''''''')'t's'u'r'''''''''''''''''''9'''2''2'''0''''''(' 'y'e'p'o'R''''''''''''''''''''''''''''''''''''''''''''' 'f'f'o' 'd'a'e'r' 'o't' 'r'e't's'a'f''''a' 'y'a'w' 't'i' 's'e'k'a'm' 't'i' 't'u'B' '-'n'i'''''''''''''''''''''''''''.'y'e'p'o'R' 'n'o' 'd'n'e'p'e'd' 'e'w' 'n'e'h'w' ''''''''''''''''''''''''''.'b'k'0'2'1' 'o't' 'b'k'0'6' 'm'o'r'f' 's'e'o'g' 'e'l'd'n'u'b' '.'b'e'w' 'e'h't' 'n'o' 's'r'e't't'a'm' 'h'c'i'h'w' ','''''''''''''' 'm's'a'w' 'h't'i'w' '-' 'y'r'a'n'i'b' ' 'f'o' 'e'z'i's'''''''''d'e'l'i'p'm'o'c' 'e'h't' 's'e'l'b'u'o'd' 't'i''''''b' 'e'h't' 'd'n'A' '''''''''''''''t'a' 'd'e'v'i'r'r'a' 'y'l'e't'a'n'u't'r'o'f'n'u' 'e'v'a'h' 'e'W''n'i'w' 't'e'n' 'a' 't'''n's'i' 's'i'h'T' '.'''s't'r'e's'n'i' 't'x'e't' 'e'g'a'n'a'm' 'y'l't'n'e'i'c'i'f'f'e' 'o't' '''' ''''''t' 'p'''m'''i' 'y'e'p'o'R' '.'''''''''''''''''''''''''' 'd'''''''d' 'e'l'l'a'c' 'y'r'a'r'b'i'l' 't''''''''''''''''''''''''''''''''''''!'e'e'r't'-'b' '*'r'e'h't''''''''''''''e'l'b'a't'r'o'f'm'o'c'n'U' ''o'n'a'*' 's't'n'e'm'e'l'p''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'''''o't' ''w'o'l'l'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t's'u'j' ''''''''''''''''''''''''''-''' '-'n'''r'e''''''' 'e's'a'c' 's'i'h't' 'n'i''''''''''''''''''''''''''''''e'b' 'd'l'u'o'c' 't'i' 's'a' 'w'o'l's' 's'a' 'e'c'i'w't' '''' '''''''''''''''''''''''''''n'a'h't' 'e'r'o'm' 'g'n'i'h't'y'r'e'v'e' 's'e'k'a'm' 'h'c'i'h'w' ','1' 'f'o' 'd'a'e't's'n'i' ''''''''''''''''p'o'R' '.'s'e'r'u't'c'u'r't's' 'a't'a'd' '2' 'e't'a'd'p'u' 'o't' 'd'e'e'n' ''''''e'w' 't'r'e's'n'i' 'h'c'a'''''''h'c'e' 'h't'i'w'''''''i'e''''''''''''''''''''h't'o'b' 'o't'n'i' 'g'n'i't'r'e's'n'i' 't'u'B' '''''''''''''''''''''''''''.'y'a'w' 's'i'h't' 'm'a'r' 's's'e'l' 't'o'l' 'a' 'e's'u' 'e'w' 's'i' 'e'g'a't'n'a'v'd'a' 't's'e'g'g'i'b' 'e'h'T''''''''''''''''''''''-''' '-'n'.'m'a'r' 's's'e'l' 'e's'u' 'e'w' 'o'S' '.'''''''''''''''''''''''''''''a'r'a'h'c' 'e'h't' 'l'l'a' 'g'n'i'k'c'a'p' 'e'k'i'l' ','''''''''''''''''''''''''''''''''''s'n'o'i't'a'z'i'm'i't'p'o' 'c'i'f'i'c'e'p's'-'t'x'e't' 'o'd' 'n'a'c' 'y'e'p'o'r''''' 'e'h't' 's'n'a'e'm' 's'i'h't' 'e'k'i'l' 'd'e'n'i'a't'n'o'c' 'f'l'e's' 't'n''''e't'n'o'c' 't'x'x'e't' 'e'h't' 'g'''' 'n'i'v'a'H' ''m'i'''''''''''''*' 's'''' 'i' 'h'c'i'h'w' ','')''s'u'r' ''''''''''''''''t's'i'l' 'a' 'g'n'i's'u''''U''[Ropey](https://docs.rs/ropey/1.2.0/ropey/)'(' ''''''' '''' '('e't'a'r'a'p'e'''''L''''''''''''''''''''''''T''' 'g'n'i'r'e'e'n'i'g'n'E' 'f'o' ''''s'd'n'a'l' 'e'h't''s' 'a''' '''''''''''''''''''''''''''''' 'o't' 'e'm'o'c'''''''m'o'l'e'W'''''''''''''''''[Ropey](https://docs.rs/ropey/1.2.0/ropey/)''''''''''-''' '-'n'n':'f'f'o'e'd'a'r't' 'a' 's'i' 's'i'h'T''''''''''''' 't'i'f'e'n'''''''n'e'e'b' 'e'h'T' '.'e'r'u't'c'u'r't's' 'n'w'o' 's't'i' 'o't'n'i' 't'u'o' 't'i' 'd'e'l'l'u'p' '''''''''' 's't'I' '?'t'n'e't'n'o'c' ''b' ','e'r'e'h' 's'k'a'e'w't' 'l'l'a'm's' 'f'o' 'h'c'n'u'b' 'a' 's'''e'r'e'h'T''''''''''''''''t'x''''t'e't' 'e'h't' 'e'c'i't'o'N'n''''''''''''''''''''''''''''''''''''' 't'u'b' ','e'r'e'h' 's'k'a'e'w't' 'w'e'f' 'a' 's'''e'r'e'h'T'n''n''''''n''m'e't'''''T'O'''O'R'''''l'l'u'n'''''''''''''L'L'U''n { length: 5, id: [0, 0], seq, parent: ROOT },'N'i' ',']'''e'k'i'''''''''i'''m'm''''' ','''h'p'e's''''n { length: -5, id: [1, 0], seq, parent: [0, 0] },'[' ':'s't''n ...'n'e''0'i'n ]},''l''n'c' 'i'h''}'t'e'm'''''''1'-'''''''''''''' 't'o'o'r' '/'/' ' ',''''''''''']''''''''''''''{' 'e'p'''}' 'o'R' 'y'' 'e'p'o'''R''0' ',''''''''''-' ','1'-'[''''o's' '''''''''''''''''''''' 'f'1''o'''''n```javascriptndoc'n ''' ='0' { co' 'nten'n '''''''''''''''''' '''''!'t'n'e't'n'o'c' 'g'n'i'r't's' 'o'N' '/'/' 't: [n' ''''''''''5''' ':'h't'g'n'e'l' { item: 'hello', i' 's'' ''''n'''''''''''''''''''''''''''''''''''''''r''''''''''''''''''''''.'g'n'i'r't's' 'a' 't'o'n' ','e'p'o'R'''''e'p'o'r' 'a' 'n'i' 'y'l'l'a'u't'c'A' '/'/' '''o'l'l'e'h''' ':'t'n'e't'n'o'C't'x'e't' 'n ' ',''''n ''n '''Del''''''''' '''5'''-' ':'h't'g'n'e'l'''eted: false, id: ['seph', 0], seq, parent: null },n { item: 'world', isDeleted: true, id: ['mike', 0], seq, parent: ['seph', 0] },n ...n]}n```'n''n' 't'n'e'l'a'v'i'u'q'e' 'e'h't'''''']'0'n ''''' ''''''''''''''''''''''''''''''':'s'i'h't' 'g'n'i'o''nIn javascript we have this:nn```javascriptndoc = { content: [n { item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },n { item: 'world', isDeleted: true, id: ['mike', 0], seq, parent: ['seph', 0] },n ...n]}n```n'd' 'm'''I' 't's'u'r' 'n'I'n'n'`'`'`'n'}'n ']'n '.'.'.' '' ','''h'p'e's'''[''''{' ''''{'''='''['''p'''''n'.'i'r'c's'a'v'a'j'''''''' '=' 'c'o'd''{ item: 'hello', isDeleted: false, id: ['seph', 0], seq, parent: null },'n'`'`'`'n'n':'s'i'h't' 'e'v'a'h' 'e'w' 't'p'i'r'c's'a'v'a'j' 'n'I'n'n'.'t'i' 'e'k'i'l' 'I' 'f'i'''''''''e'k'i'l' 'I'f'i' 'e'r'u's' 't'o'n' 'm'''I' 'd'n'a' '-' 'e'g'n'a'h'c' 'l'l'a'm's' 'r'e'h't'o'n'a' 's'a'h''''''t'''n's'i' 'n'o'i't'a't'n'e'm'e'''''''e'm'l'p'm'i' 's'i'h'T' '.'''''''''''''t' '-' 'e'r'e'h' 'd'n'a'h' 'f'o' 't'h'g'i'l's' 'a' 'g'n'i'o'd' 'm'''I'n''n''t'c'u'r't's' 'f'o' 'y'a'r'r'A' 's'v' 's'y'a'r'r'a' 'f'o' 't'c'u'r't'S' ''''#'#'#''''''''''''''''''''''''''''''''''''a' 's'e's'u' 'n'o'''''''''h'c'a'o'r'p'p'a' ''i't'a't'n'e'm'e'l'p'm''''''''''''''''''''''''''''''''''''''e'l'o'h'w'''''''''''''s'k'o'o'l' '''e't'e'l'p'm'o'c' 'e'h'T''''''''''''h't'g'n'''e'{id, length, parent}''l' ','''''''''''''n'e'l' ''''''''''''''.'.'.' ','t'n'e'r'a'p' ','d'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'c'n'a'f' ''''''''' '.''''''''''''''''''''''e'r'e'h' ''''''?'t'i' 't'e'G' '.'')'s'g'n'i'r't's' 't''''''''''''''''''''''t'a'e'r'g' 's'k'r'o'w' 'h'c'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'g'n'i''''''''''' 't'o'n' 's't'I''W'''''h't' 'g'n'i't'a'd'p'u'''''''''y'e'p'o'r''''''y'e'p'o'r' 'n'i' 't'n'e'p's' 's'i' 'e'm'i't' 's'''m'h't'i'r'o'g'l'a' 'e'h't' 'f'o' 't's'o'm''t'a''''''''''''''''''''''''g'n'i't'a'n'i'm'o'd' 'y'l'l'a'u't'c'a' 's'i' '''' 'h't' 't's'a'f' 'o's' 'h''''''''''k'r'o'w' ','''r'''a'm's' 'e'r'a' 's'e'p'o'R''''''t'r'a'm'S'(' '.'''' 'y'r'a'r'b'i'l' 'e'p'o'r' 'a' 'o't'n'i' 't'u'o' 'd'e'l'l'u'p' 's'i' 'f'l'e''''''''''f'e'l's't'i' 't'n'e't'n'o'c' 't'x''''t'e't' 'e'h't' 'l'l'A'n''n'}'{''' '.'t'n'e't'n'o'c' 'g'n'i'r't's' 'e'h't' 'r'o'f' ''i' 's'i'h'T'n't'''n''a' ''u'h' 'r'e'g'n'e'v'a''Y' ''c's'''''''''''''''''''''''''''''''''''''''''''''''*''''''''''''''''''''''''''''''''''''''''''''''''''.'t'i' 'n'o' 'e't'o'n' 'l'a'u't'c'a' 'e'h't' 'h't'i'w' 'r'e'p'a'p' 'f'o' 'e'c'e'i'p' '*''''''''''''''''''''''''''''''''''''''''''''e'g'r'e'm'o't'u'a' 'n'a'h't' ''''''''''''''''''''''''''''''''''.'d'n''''''''''''''''s'i' ','s'd'n'I'm''''''''''''t'i'b' 'e'l't't'i'l' 'a''' ''k''i''n''d'' ''of grateful for that silly academic paper now. I used to think'' that a'''''''e'r'e'w' 'cademics''''''''''''''''''''''''''''''''''d'n'u'o'r'a' 'e'l'p'o'e'p' 't's'e't'r'a''''''s'g'u'm' 'm's' 'e'''h't' '''''''y'l'l''''j'a'e'r' ''e'b' ''''''''''''''''''''''e'v'i's'''''''s'i's'a'm' 'a' 't'a'h't' 's'I'(' '''''''''''''''' 'o'g'a' 'e'''d'a'c'e'd' 'A'''''''''''s'''g'' So'''u''''''''y'l'l'a'e'r' 'm'''''''''g'n'''''e'[''h't'''https://hal.inria.fr/inria-00432368/documen')'t'('['']'''https://hal.inria.fr/inria-00445975/documen')'t'(']''' 'i'l'''''''''''''o'g'a' 's'r'a'e'y' '2'1' ''d'd'''''''s'T'D'R'C' 'i'm' ''''t's'u'm''''''r'i'''''''''''''o'S'''''''o's' ''''''''' 'e'h'''''r'o'f' 't''''Google wave, a'''''''''''''y't'i'l'a'u'''''''''y'l'l'a't'o'''''''''''''''''''b'a'l' 'e'h't' 'f'o' 'e'd'i's't''' 'o's''u'o' ''t''''''''''''''''''n'''''''''''''''''''''''''''''''''.''But I was wrong. I might not be any good at inventing CRDTs, but I am pretty good at making code run fast. A''nd here, in my own field, I *didn'''''''''e'g'n'a'r'''''''''''''e'g'a'r't's' 't even try* to help those academics improve their implementations. They were doing their part in this dance, and I wasn't doing mine. They figured out the semantics, but they'm'e'h't' 'd'e'r'o'n'g'i' 'I' 'd'n'A''''''''''''''''''''m'e'h't' 'd''''''''''''''''''''t''''g'n'i'''a''' 'd''''d'n'A'o'o'g' 'y't''''y','''',''t'e'r'p' 'm'a' ''''o'd' ''e'r'''n'g'i'''''''''''''r'i'e'h't' 'e'v'''o'r'p'm'i'' 'I' 'o''really'''''''''''''''''''''''''''''''''','d'l''''''''''''''''''''''''''''''''''''''''''' 'y'''' 'e'h't' 't'u''''''''''''''''t' 't'u'n'b''''''''''''''''t' 't'u'n' ','s'c'i't'n'a'm'e's''''''''''s'c'i't'a'n'm'e's' 'e'h't' 't'u'o' 'd'e'r'u'g'i'f' 'y'e'h'T' 'e'i'f' 'n'w'o' 'y'm' 'n'i' ','e'r'e'h' '''''''''r'i'e'h't' 'y'''''''''''l'l'e'w' 'k'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''A' '.'y't'i'c' 'e'h't' 'r'e'v'o' 'g'n'i's' 'o't' 'g'n'o's' 'a' 's'a'h''''a' 's'u' 'f'o' 'h'c'a'E''''''''''''''''''''''''''''''''''''g'n'i's' 'o't' 's'g'n'o's' 't'n'e'r'e'f'f'i'd' 'e'v'a'h' 'l'l'a' 'e'W' '.'s't's'e'r'e't'n'i' 'd'n'a' 's'e'i't'i'v'i'l'c'o'r'p' 't'n'e'r'e'f'f'i'd' 'e'v'a'h' 'o'w' 'l'd'i'p'u't's'''''''y'l'l'a'e'r' ''''''''''''''''''I think the idea that everyone has some hidden talent is tosh. But I do think we all'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'l'a' 'e'w' 'k'n'i'h't' 'o'd' 'I' 't'u'B' '.'''''''' 'f'o' 't'i'b' 'a'''''h's'o't' 's'i' 't'n'e'l'a''''e't' 'n'e'''''''e'n'd'd'i'h' 'e'm'o's' 's'a'h' 'e'n'o'y'r'e'v'e' 't'a'h't' 'a'e'd'i' 'e'h't' 'k'n'i'h't' 'I''''I''''''' 'I'.' 'I' 'o'S' '''''' 'g'n'i'b'i'''''''''d'o'o'g' 'e'k'a'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'n'i'm' 'g'n'i'o'd' 't'''n's'a'w' 'I' 'd'n'a' ','e'c'n'a'd'''i'b' 's'i'h't' 'n'i' 't'r'a'p' 'r'i'e'h't' 'g'n'i'o'd''''t' 'e'r'e'w' 'y'e'h'T' '''r'c's'e'd' '''''''''''''''''''''''''''''''''''''''''''''t's'u'j' ''''''''''''''''''d'e'r'u'g'i'f' 'I' ''''''''''''''''''''''''''''''''''''''''''''I' 't'u'B'''''''''''''''''''''''''''''t'a' 'd'''g'n'i'','b'''''''''o'o'g' 'y'n'a' 'e'b' 't'o'''''''''*'''''''''''''''*'''*'''''*'''''''''''''''''''''''''''' 's'''''''''''''''''''s'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''''''''''''''''''.'s'm'h't'i'r'o'g'l'a' 'r'i'e'h't' 'p'u' 'x'i'f''''''''' 'e'v'o'r'p'm'i' 'd'n'a' ''c'i'm'e'd'a'c''''l'a' 'e's'o'h't''''t'u'o' 'p'l'e'h' 'o't' 'y'r't' 'n'e'v'e' 't'''n'd'i'd' 'I' 't'u'B' '''n''''''''''''y'e'h'T' '.'e'r'e'w' 's'm'h't'i'r''''''''d'n'a' '-' ''''o''''i'g'l'a'''''''''' 'm''''''''''''h't'r'i'o'g'l'a' ''''''''''''''''''''''''''''''''' 'o'''''t's'''''' 'w'o'h' 'a'e'd'i' 'o'n' 'e'v'''''''y'l'l'a'''e'r'''''''' 'y'l't'''''''''e'n'o'y'r'e'v'e' ''e'i'u'q'' ''a'h' 't'''''''''.'e'r'e'h' ''''''''''''''''m' 'o't' ''''''''''''' 'n'i' '''h''''''''''e'n'o'y'r'e'v'e''g'i'm' 'I''M''''''''''m''' 'f'''''''''''''''''''''''''''''''''''''''' 'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'.'t'r'a'p' 'y'm' 'g'n'i'o'd' 'd'n'a' 'p'u' 'g'n'i'w'o'h's' 't'o'n' 'y'''' 'b' 'n'r'u't' 'n'i' 's'c'i'm'e'd'a'c'a' 'e'h't' 'n'w'o'd' 'g'n'i't't'e'l' 's'a'w' 'I' 'd'n'A' '.'t's'a'f' 'n'u'r' 'e'd'o'c' 'e'k'a'm' 'o't' 'w'o'h' 'w'o'n'k' 'o'd' 'I' 't'u'B' '.'o' 's'e's's'a'l'c' 'w'e'n' 'g'n'i't'n'e'v'n'i'''''T'D'R'C' 'e'b' 't'o'n' 't'h'g'i'm''''''t'''n's'i' 'o' 't'''''''t' 'r'a'P'''''''''''''''''''''d'l'r'o'w' 'e'h't' 'o't' 't'f'i'g' 'y'M' '.'r'i'e'h't' 't'n'e'i'c'i'f'f'e'n'i' 'd'n'a' 'w'o'l's' 'w'o'h' 'd'e's'i'l'a'e'r' 'I' 'n'e'h'w' 't's'u'd' 'o't' 'd'e'n'r'u't' 't'n'e'm'e't'i'c'x'e''''''''''' 't'n'e'm'''''''''''''''' 'n't'm'e't'i'c'x'e' 't'a'h't' 't'u'B' '.'s'r'e'p'a'p''e'h'w' 'd'e't'i'c'x'e' '''t'o'g' 'I'''''w''' 'o'S''''''''''['''''' 'e'v'a'w''''''''''https''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'c'u'm'r'' 'o''''''d'o'o'g'W'' 's' 'n'e'e'b' 'e'v'a'h' 'd'l'u'o'w' 'g'n'i'h't' 'e'l'o'h'w' 'e'h'T'y'l'r'e'p'o'r'p' 'd'e'k'r'o'w' 'r'e'v'e'n' 't'i''''''''''''''''I' '.'y'g'g'u'b' 'y'l'l'a'e'r' 'd'n'a' '''' '://web.archive.org/'''''''''''''''''''''''''''''e'l'b'a'k'r'o'w'n'u' 'e'r'e'w' 'y'e'h't' 'w'o'l's' '''' 'o's' 'web/20130330144116/http://www.waveprotocol.org/federatio')'n'(''''https://web.archive.org/web/20130330144116/http://www.waveprotocol.org/federation']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''w''' 'o'S''''''t''a'b'''''''b'''u'B' '.'T'D'''t'o'g''R'C' 'a'''''''a' ' 'h't'i'w' 'e'l'p'm'i's' ''''''' 'd'n'A''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','o'''f'''' 'e'h't''''i' ''g' ''''''h't''r'e'v'e' 'd'l'u'o'c' 's'm'h't''n'n''''i'r'o'g'l'a' 'e's'o'h't' 's'a' 't's'a'f' 's'a' 's'a'w' 't'a'h't''''''''a'c'a' 'e'h't' ''o''''''''''''a' 'e'h't' 't'n'a'e'm''''a'e'm' ''s' 'n'e'e'b' 'e'v'a'h''''b' 'd'l'u'o'w' 't'i' 'd'n'a' ','s'r'e'k'n'o'b' 's'a'w' 'l'e'd'o'm' 'n'o'i't'a'r'e'd'e'f' 'r'u'O' ''q' 'd'o'o'g' 'll those years ago, really ne'B'eded a hi''''''''''''''''o't' 'e'g'a'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'u'b' '-' 'd'e't'i''''e'c'x'e' 's''.'''a'w' 'I''''''''''''''''' 'e'h't'''''''''''d'e'v'l'o'v'n'i' '''''''''''''''''''''''''''' ','y'l'w'o'l's' 'y'l'l'a'e'r' 'n'a'r' 's'm'h't'i'r'o'g'l'a' 'r'i'e'h't' 'd'n'a' 't'u'o' 'e'm'a'c' 'T'O'O'W' 'd'n'a' 'T'O'O'G'O'L' 'e'k'i'l' 's'r'e'p'a'p' 'n'e'h'W''a'm' 't'''n'd'i'd'gh performance list CRDT. And back then I wasn't smart enough to invent one. I assumed that because academics couldn't make their CRDTs run fast, nobody could. That was wrong - my forte isn't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'c'n'a'm''''''''''''''''n'e'h't' 'k'c'a'b' '' 'd'n'A''''''''''''''''''''''''''t'a'h'''t''' 'd'e''''''''''' '''''''r'i'e'''''n'u'r' '''h't' 't'''''''''''''''''''''''''''''''''''' 't'''n's'i' 'e't'r'o'f' 'y'm''''''' 'I' '-' 'g'n'o'r'w' 's'a'w' 't'a'h'T' '''n'n'''n'd'l'u'o'c''m'u's's'a' 'I''''''''''''''''''''''''''''''''' 't'u'b' ','f'l'e's'y'm' 'f'o' 'y'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''n'i' 'o't' 'h'g'u'o'n'e' 'r'e'v'e'l'c' 'e'b'''''''''' 'e'm' 't'o'n' '' ','t'u'B''''''''t'h'g'i'm' 'I' '''''' '.'d'l'u'o'c' 'y'd'o''''d'b'o'n' 'd'e'm'u's's'a' 'I' ','t's'a'f' 's'T'D'R'C' 'e'k'a'm' 't'''n'd'i'd' 's'c'i'm'e'd'a'c'a' 'e'h't' 'e's'u'a'c'e'b' 'd'n'A' ''''' 'o'S' '''' '.'n'e'h't' 'k'c'a'b' ''h'g'i'h' 'y't't'e'r'p' 'k'n'i'h't'''''''i'l' 'I''''''''''''''''''''''''''''''''''''e'n'o' 't'n'e'v'n'i' 'o't' 'h'g'u'o'n'e' 't'r'a'm's' 't'''n's'a'w' 'I' '.'r'o'f'r'e'p' 'h'g'i'h' 'd'e'd'e'e'n'''''''a'w' 'y'l'l'a'e'r' ','''' 'o'g'a' 's'r'a'e'y' 'e's'o'h't' 'l'l'a' ','e'v'a'w' 'e'l'g'o'o'G''''''''a'e'r'a' 't's'e'r'e''''''''''''''e'v'a'W' 'n'o'''''''''''''''''''' 'a' 'd' ''''e'd'e'e'n' 'y'l'l'a'e'r' 'e'W'''''''''''''''''''''''''''' 's'T'D'R'C''''''''''D'R'c' 't's'i'l' 'd'e't'n'a''''a'w' 'y'l'l'a'e'r' 'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'r'o'f' 's'c'i't'n'a'm'e's' 'e'h't' 't'u'o' 'e'r'u'g'i'f' 'o't' '' 'h'g'u'o'n'e' 't'r'a'm's' 't'''n's'a'w' 'I't'''''''''''''''''''''Invent''''''T'D'R'C' 'a'''ing the semantics for peer-to-peer concurrent editing sounds terrifying a CRDT'''''''''''''''''''''''''''''''''''''''''' 'r'e'e'p'-'o't'-'r'''''''''''''''''g'n'i'y'f'i'r'r'e't' 's'd'n'u'o's''e''''r'e'p''''''''''''''''''''''''''''s'd'n'u'o's'''''''''''''''''''''''' 'd'r'a'h' 'y'l'l'a'e'r' 's'i' 'g'n'i't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'r'o'f' 's'c'i't'n'a'm'e's' 'e'h't''''''''''''''l'a' 'T'D'R'C' 'a' 'g'n'i't'n'e'v'n'I'n'n'.'e's'l'e' 'e'r'e'h'w'y'r'e'v'e' 'n'i' 'l'a'i'c'e'p's''''''i'r'e'h't' '' ''''''''''t'''''''''''n'o'i's's'e's'b'o' 'a' 't'a'e'r'g'were really clever (and maybe I'll just never be that smart)!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'b'i'r'r'e't' '''f'o' 'd''''''' 'f'n'i'k' 'd'n'a' ','n'i'a'm'o'd' 'e'n'o' 'n'i' 't'r'a'm's' 'e'r'''y'e'h'T' '.''''''''''''''''' 'd'e's's'e's'b'o' '-' 's'u' 'f'o' 't's'e'r' 'e'h't' 'e'k'i'l'''' 's'''' 'a' 't's'u'j' 'e'r'''y'e'h't''''t' 't'a'h't' 'e's'i'l'a'e'r' 'o't' 'g'n'i't'r'a't's' 'm'''I' 't'u'B' Now I know that''e'i'r'f' 'y'm'''''''''''''''''I'm kind of grateful for that silly academic paper now. I used to think th'''''''''''''''''''''''''''''''''''''''''t'''''''''''''''''' 't'a'h't' 'w'o'n'k' 'I' 'w'o'N' 'r'a'm's' 't'a'h't' 'e'b' 'r'e'v'e'n'''''''''e'b' 'r'e'v'n'e' 't's'u'j' 'l'l'''''''' 't'''''''''''''''!'''''!'.''')'h'g'u'o'n'e' 't'r'a'm's's'u'j'''''''''t'a'h't' 't'o'n' 'm'''I' 'e'b'y'a'm' 'd'n'a'(' '''at academics were really clever, but apparently being good at writing papers is a'''''''''''''''''''''''''''''''''''''''''''''' 'c'i'm'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'a' 's'i' 's'r'e'p'a'p' 'g'n'i't'i'r'w' 't'a' 'd'o'o'g' 'g'n'i'e'b' 'y'l't'''''''l'y'n'e'r'a'p'p'a''''''''''''''''''t'a'h't''''''''''''''''''''''''''''''''''''''''''''''e'h't' ''''''''''''''''''''' '-' 'e'm' 't'o'n' 'l'l'e'W'''''''''''''''''''o'n' 'm'''I'(' '' 's'a' 'e'v'i's's'e's'b'o' 'd'n'a' 'c'i'p'o'y'm' 's'a'''''''''''''''''''''.'s'u' 'f'o' 't's'e'r' 'e'h't' 'e'k'i'l' 't's'u'j' 'e'r'''y''''''''''''e'r'e'h't' 't'u'o' 's'n'r'u't' 't'i' 't'u'b' ','r'e'v'e'l'c' 'y'l'l'a'e'r' 'e'r'e'w' 's'c'i'm'e'd'a'c'a' 't'a'h't' 'k'n'i'h't' 'o't' 'd'e's'u' 'I' 'd'a'c'a' 'y'l'l'i's'''''''''''''''''''''''''''''''''''k'i'l' 't'''n'o'd' 'u'o'y' ','n'a'e'm' 'I' ''''''''''''I' '.'w'o'n' 'r'e'p'a'p' 't'a'h't' 'r'o'f' 'l'u'f'e't'a'r'g' 'f'o' 'd'n'i'k'''''''''g' 'y'l'l'a'e'r' 'm'''I'n'n'n'o'i's'u'''''''''''''''''''n'o'i't'u'i'l''''o'c'n'o'C' '#'n' ',''''o'c'e's''''e' '/' 's'n'o'i't'a'r'e'p'o' 'n'o'i'l'l'i'm' '1'1' '''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'h't'o'n'a' 'd'n'i'f' 'u'o'y' 'e'r'e'h't'''''''''''''''''''e'r'e'h't''''''''''''''''''''i'p' 'a' 'd'n'i'f' 'u'o'y' '*'n'e'h't'*' 'd'n'a' 'd'n'u'o'r'a' 'h'c'r'a'e's' ','e'r'e'h't' 'o'g' 'o't' 'e'v'a'h' 'u'o'y' 'n'e'h'T' '.'e's'u'o'h' 'r'u'o'y' 'n'i' 'n'o'i't'a'c'o'l' ''''''''''''''''a'c's' 'a'h't'i'w' 'r'e'p'a'p' 'f'o' 'e'c'e'i'p' 'a' 'g'n'i'd'a'e'r' 'd'n'a' ','r'e'p'a'p' 'f'o' 'e'c'e'i'p' 'a' 'g'n'i'd'a'e'r' 'n'e'e'w't'e'b' 'e'c'n'e'r'e'f'f'i'd' 'e'h't' 's't'I'n''n''d'n'o'c'e's' '5'.'0' 's'v' 's'd'n'o'c'e's' '0'0'1' 'g'n'i'w'o'h's' 's'i'v' 'e'v'i't'c'a'r'e't'n'I' '>'n'n''l'c' ''''''''''''''''!'s'y'a'd'knew'''''w'o'n'k'' 'e's'e'h't' 't's'a'f' 'y'l'l'a'e'r' 's'i' '8'V' ''''''''V' ''''''''''''''''''''''''''''''''''''''''''''o's'l'a' 's'''' 't'I' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' 'd'n'a' 's'n'o'i't'a'c'o'l'l'a' 'l'o'r't'n'o'c' 'o't' 'd'e'e'n' 'e'w' 's'l'o'o't' 'e'h't' 's'u' 's'e'v'i'g' 't'a'h't' 'd'n'a'.'*'r'e't's'a'f'*' 't's'u'j' 't'''n's'i' 't's'u'R' ''''y'c''''''''''''''''''''''''''''''''''''''' 's'm'h't'i'r'o'g'l'a' 'r'u'o' '''''s'j'y' 'g'n'i'k'a'm' 'p'e'e'k'''''''''''''''''''''''''''''''''t'o'n' '''''''''''''' 'o'g' 't'''n''''.'o'w' 't'i'''''R''''''''n'i'v'e'''''w'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'e'r'u't'c'u'r't's' 't'n'e'r'e'h'o'c' 'e'h'c'a'c' 'd'n'a''''c' 'n'o'i't'a't'n'e'm'g'a'r'f' 'y'r'o'm'e'm' 't'u'o'b'a' 'w'e'n'k' 'I' ''o'n'k' ''K'''B'''''''''.'t's'u'r' 'o't' 't'i' 't'r'o'p' 't's'u'j' 'u'o'y' 'f''''''' 'n'i' '''''''''''''''''''''''''''''!'r'e't's'a'f' 't'o'l' 'a' 't'o'n' 't'u'b' '.'.'.'r'e't's'a'f' 'e'l't't'i'l' 'a' 'e'b'y'a'M''' ''''But I knew something he didn't:''''''''''''''''''''''''''''''''''''''''''''''''''''''l'''''''''e'h't' 'y'a'w' 'o'r't'n'o'c' 'n'a'c' 'e'w' 'f'I'''''''''''''''''''' 'o't' 't's'u'r' 'e's'u' 'n'a'c' 'e'W''''U'''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'p'u'k'o'o'l' 'y'r'o'm'e'm' 'd'n'a' 'y'r'o'm'e'm' 's'e'z'i'n'a'g'r'o' 'r'e't'u'p'm'o'c' 'e'h't' 'y'a'w' 'e'h'T' ':'t'''n'd'i''''d'd' 'e'h' 'g'n'i'h't'e'm'o's''''''t'u'o'b'a' 'w'e'n'k' 'I' 't'u'B'n'n'' '''''''''''''''''''''''''t'''n''''''''''''''''e'l''''l''''e'b'i's's'o'p''''''''''''''''''''''''''''.'e'l'b'i's's'o'p'm'i' 'y'l'l'a'c'i's'a'b' 'e'b' 'o't' 'g'n'i'o'g' 's'a'w' 'r'e't's'a'f' 'n'e'v'e' 'g'n'i'o'g''''''''''''''''''' 'h'c'u'm' 't'''n's'a'w' 'e'r'e'h't'''''''''''''''''i' 'd'e't'b'u'o'd' 'e'h'''''''But I've done one last thing. I don't know if its a good idea, but I did it anyway because it sounded clever and I couldn't help myself. In this implementation, I split out the document's text content into a separate data structure. The reason is that when you're actually doing collaborative editing, you probably want all the characters in your document to be stored in an actual array, or in VS Code's editor or something. I don't think it makes sense to duplicate the document's content in my library too.nn'n'''''''''''''''''''''''''''''''''''''''''e'h' ','d'e'z'i'm'i't'p'o' 'o's' 'y'd'a'e'r'l'a' 's'a'w' 's'j'y' 'd'i'a's' 'e'H'''''''H'E' '.'e'm' 'e'v'e'i'l'e'b' 't'''n'd'i'd' 'e'h' ','s'j'y' 'n'a'h't' 'n'e'w' 't'a'h't' '' 'I'''''''''''''''''''''''''''''''''''''''''''r'e't's'a'f' 'o'g' 'd'l'u'o'w' 'n'o'i't'a't'n'e'm'e'l'p'm'i'''''''''''''''n'o'i't'a't'n'm'e'e'l'p'm'i' 't's'u'r' 'd'o'o'g' 'a'hought '''' 'e'w' 'I could'''''''''''''''''''''''''''''''''''''''''' 'd'l'u'o'c' 'I' 't'h'g'u'o'h't' 'I''''h' 't'a'h't' 'n'i'v'e'K' 'd'l'o't' 'I' 'n'e'h'W''''''' 'I''n'n'suspect we can't make javascript run much faster in this test'''''''''''''''''''''''''''''''''''e'b' 'n'a'c' 'e'w' 'e'b'y'a'm' 't's'u'j' '.'.'e'b'y'a'm' 't'u'B' '.''Can we still '' 'a'go fast''''''''''''''''''''n'a'c' '''e'w' 'o's''''''''''''''d'e'e'n' 'e'w' 'd'n'a' ','e'g'a'u'g'n'a'l' 'er? Yj''If we want to continue to improve performance, we need to go lower level. We need control over the memory layout.'n's is very well optimized alread''Y''''y, and I suspect we ca'''''''s'i' 's'i'h'T'n't make javascript run much faster in this test.'' If we want to continue to improve performance, we need''''''''''''''''''''''''''''d'e'e'n' 'e'W' '''''''W' '.'l'e'v'e'l' 'r'e'w'o'l' 'o'g' 'o't' more control over the memory layou'.'''t 'F'- which we can do in' ''' ''a systems language like Rust.''Can we still go faster?''C''''''c''' 't'u'B''C'''''''''''''''''''''?'r'e't's'a'f'''''''' 'o'g' 'l'l'i't's' 'e'w'''n'n''' '''''''''''''''''''''''s'd'a'e'r' 'y'r'o'm'e'm' 'n'i'a'm' 'e'r'a' 'n'a'c' '''''''''' '?'w'o'l's' 'w'o'H''t'u'B'n''n'''''''''''W''''''''''''d'l'u'''o'w' ''''''''''''''''''t'''''''n'a'm'u'h' 'u'o'b'a' '-' ''''''''''''''''''''''y'r'e'v'e'' 'r'e't'u'p'''''l'l'i''''l'w' ''m'o'''''''' 't's'o'm''''''''''''''''''''''''' 'f'o' 'd'a'e't's'n'i' 'e'n'i'g'a'm'I' '!'''''''''''''''''''''''''''''''''d''o 'o'''th''e ''do''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''' Arranging'''''' 'n'I' '.'t'p'i'r'c's'a'v'a'j' 's'n'u'r' 't'i' 'n'e'h'w' 'r'e't'u'p'm'o'c' 'e'h't' 'o't'''''''o'd'''''''' 'e'h''''o't' 'o'd' 'o'd' 'e'w' 't'''a'h'w' 's'i' 's'i'h'T''''l'a'c''''''''''p'm'o' 'e'h'T' '.'''''''r'e't's'a'f' '''o'g' 'n'a'c' 'e'w' 't'u'B'''''''e'W'''''''e'w' 't'u'B'n'a'n'''e'u'q'e's' '''e'r'''''''''''f''' 't'i' 'g'n'i'k'a'M'''''''''''''''''''''''t''Yjs is very well optimized already,'''''''''''''''''''''''''''e'n''k''n'a'm' 't''''n'u'r' ''''n'''''''''''''t''n## Making it faster than Javascript' '''n''''''n'n'''''I's'e't' 's'i'h't' 'n'i'a'c' 'e'w' '''j''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t's'u'R' 'e'k'i'l' 'e'g'a'u'g'n'a'l'''''''' 's'm'e't's'y'''''''t's's''''''r'e'w'o'l' 'a' 'n'i' 'o'd' 'y'l'n'o' 'n'a'c' 'e'w' 'h'c'i'h'w' '-' 't'u'o'y'a'l' 'y'r'o'm'e'm' 'e'h't' 'r''''''''''y'r'o'm'e'm' ''''''''''''' 'y'''','y'a'w' 'e'h't' 'y'B'''''''''''''''''''''''a''' 'e's'u'a'c'''''''''''''''''''' 'l'l'a' 's't'I' '.''''''''''''''''''''''''''''''s'i'h't' 'e'k'i'l' 'a't'a'd' 'e'g'n'a'''''''''''' 'e'n'o' 'y'b' 'e'n'o''''''''''''''m'e't'i' 'h'c'a'e' 'r'o'f' ''''''''''' 'a't'a'd' 'a'r't'x'e'''r'''r'a''''''''''''''''''''s't'c'e'j'''' 'l'l'b'o' 'e's'o'h't''''''''d'i''''n'a' ',''''''I' '.''' 'f'o' 'l'l'a''''''''''y'r'o'm'e'm' 'n'i' ''' '''' '-' 'd'e't'n'e'm'''g'''''''''l''''''''e'w' 'f'I'l'e'w' 's'a' 'a'r'f''e'b''' 'e'l'b'i'r'r'e't' 's't'I''''''''''''' 's't'''','''''I'n'i' ''e'v'o' '''''''t'u'o'b'a' 'l'' '-'''''''-' ''''o''''''''''''''''''' ','n'o's'i''''''''''''s'n'o'r'a''''s'p'm'o'c' 'n'I'''''''''''''''''''n'n'''''''' ','d'e'e'p's' 's'i'h't''''''''''''''''''''''''''g'n'i't'i'.'B''''''''''''''''''r'e't'u'p'm'o'c' 'e'h't' 's'e'k'a't' '''''''''''' 'g'n'i'p'p'o'h's' '' 't'''a' ''''''''''''''''''''''''''''''''''''s'e'm'a'n' 't'n'u'h' ''''''''''''''''''n'e'''''''e'n'd'd'i'h' 'a' 'h''''''''''''' 'r'e''''''''''''''''''''r''' ','y'a's' 'o't' '''''''''''''''''''''r'e''''''''''''''''''''.')'e'm'i't' 'r'e't'u'p'm'o'c' 'n'i'(' ''''''''''(' 't'u'p'm''''''''''o't' 't'n'a'w' 'I'o'c' 'e'h''.'A''''''t''' 's'e'k'a't' ''s's'e'l'd'e'e'N' '.'''' '''''''''nnReading the whole list would take ages.'''''' '''v'e't'a'h' (With linked lists'''''''''''''''''''''''d'a'e'r' '''''u'o'y' 'y'r'o'm'e'm' 'a' 'r'u'c'n'i' 'u'o'y' we do that scavenger hunt each time we move between items!)''''w' 'r'o't'i'w' ','''r'''''e'''g'n'e'v''''''''''''''''''''''''''s't'c'e'j'b'o' 'a'r't'x'e'''''''''''''''''''''''''n'e't'f'o' 's'i' 't'''''''''''' 's'i' 's'i'h'T''l'u's'e'r' 'e'h't' '''o's' 'e's'o'h't' 'l'l'A'a'c's' 'e'h''''''''''''''''''' 's't''''''''''''''''y'l''''''''''''''''''''''''''''''''''','o'g' '*'y'l'l'a'e'r'*' 'n'a'c' 'e'':'w' ':''t'''s'a'f''' 'w'o'h' 'e'e's' 'o'T''b'm'e's's'A'b'e'W't'a'h't' ''s'i'l' 'd'e'k'n'i'l' ''3'h'''''''2''''''''''''''''''''''','b''''''s'j'y' 's'a' 'e'm'a's' 'e'h't' 's'k'r'''''''''''y'l'l'a'n'r'e't'n'i' ''o'w''''''''''''''''''''''''''''''''''''''''''''' 's'u'o'i'v'e'r'p' 'e'''''''''''''n'e'm'e'l'p'm'i' ''h't'''''''''t'o'l' 'a' 't'F''a'h't' 'o'd' 'e'w' 'd'n'a' ','s''''''''''''''''''''d'r'i'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't's'a'f' 't'o'n' ','r'e''''''' ','w'o'' '''l'''s' 's'g'n'i'''''''' 'n'e'v'''''''''''''''''''''''''''''''''''''.'m'e't'i' 'y'n'a'''''''''''''''e'r'''''''''''s'e'''t'a'd'p'U''''''''''n'i'a'g'a' ''''''''''''''''e'n'o'd' 'e'r'''e'w' 'd'n'a' 'o's'' '.''o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(' 'D'I' 'r'i'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''g'n'i's'u' 't'o'n' 'm'''I'o'o't' ','t's'a'''''''''''''''''''t'''''''''''''''''''''' '''?'p'l'e'h' 'd'l'u'o'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l't'h'g'i't' 'n'i' 'g'n'i'h't'y''''''''' 'f'o' 'n''''''''''''''''''''''M'A'R' 'n'i' 't'n'e'c'a'j'd'a'''''''d'e'k'c'a'p' 'l'l'a' ','''' '''u'r' 'a''r'e'v'e' 'k''''''''''''''''s'y'a'w'l'a' 's'i' 'y'p'c'm'e'M''''''' 's't'i'''''''''''''''''''''' 'e'h't'''''''''''''''''''''''''''''p'u'k'o'o'l' 'y'r'o'm'e'm' 'n'i'a'm' 'a' 'f''''''''''''''''''''''''''o't' 'e'd'o''''''''''''''''''''''''''''''t'p'i'r'c's'a'v'a'j' 'm'o'r'f' 't'i' 'e'v'i'r'd' 'd'n'a' ''''''''''''''''''''''''''''''''''''''''''''''''t'i' 'l'l'a'c' 'd'n'a' 'e'd'o'c' 'e'v'i't'a'n' 'o't' 't'i''*' 'e'l':''i'p'm'o':'''''.'''':'''*''''c' 'e'w' 'f'i' 'd'n'A'c' 's'i'h't' 'e'l'i'p'm'o'c' 'e'w' 'f'I''''''''''''' 'm'o'r'f' ''o't''n'e'v'i'r'D'''3'o' ''''''''''2''''''''''''''''''''''''.'t'n'u'h' ''''''''''''''''''''''''''''''''''''''''n'i' 'e'c'a'r't' 'e'l'o'h'w' 'e'h't' 's'''' 's'e'c'o'r'p' 'w'o'n' 'n'a'c' 'e'w'r'e'g'n'e'v'a'c's' 'a' 't'o'N' '.'s't'a'e'b' 't''''b'r'a'e'h' 'w'e'f' 'a' 's't'i' '-' '''''c'a'p' 'n'a'c' 'e'w' 'o's' ','t'u'o'y''''t'a'l' 'y'r'o'm'e'm' 'e'h't' 'r'e'v'o' 'l'o'r't'n'o'c' 'l'a't'o't' 's'u'''''''''''''h'g'u'o'r'h't''t'''''''''''''x'3' '''''''''''' ','''''''''''e'v'i't''''i'a'n' ''' '''''' '''t'u'B'n'y'l'b'm'e's's'a'b'e'w' 'm'o'r'f' 'n'e'v'E''''''''''''''''''''''''''''''''''''''''''''d'e'd'n'u'o's' '''''''''l'a'm'r'o'n' 'g'n'i't'i'd'e''''''''''''''''''''t'u''''''''''''s'''t'n'e'm'u'''c'o'd' 'o' 't'i'l'p's'''''''''''''''''''''.'g'n'i'r't's' 't'p'i'r'c's'a'v'a'j' 'w'a'r' 'a' 'g'n'i's'u' 'n'a'h't' 'r'e't's'a'f' 's'i' 'e'd'o'c' 's'i'h'T''''''''''i'h'T'n''n'' 's'e'v'i'g' '' lets us ''''-'-'-'n''n'p'''''''''''' 'e'n'o'd' '''e'v'''I'ack all the items tightly in memory''''''''''''' 's'd'i'o'v''n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'm''''t'i'w' ',''''''M' ''''''''''''g'n'i'''''m''' 'o'S''''''.'h'c'a'o'r'p'p'a' '''s't'c'u'r't's' 'f'o' 'y'a'r'r'a''' 'n'a'h't' 'r'e'h't'a'r' '''s'y'a'r'r'a' 'f'o' 't'c'u'r't's''' 'a' 's't'I' '''' ''''''''''''''''''''''''''''f''''''''''''''''''''''''' ','n'o'i't'''''t'x'e't' ''a't'n'e'm'e'l'p'''m'i' 's'i'h't' 'n''''''''''''''''''''t'w''''a'h't' 's'i' 'n'o's'a'e'r''''''' '''''l''' 'o'S'm'''I' 'e'h'T' 'I'l'e's'y'm' 'p'l'e'h' 't'''n'd'l'u'o'c' 'I' 'd'n'a' ''a' '''' 't'i' 'e'''''''''''''''''''w' 't'i'e' 'b'y'a'M'e'''''' 't's'u'j'y' '''''''''''''''''''''''''''''''''''''|' '' ''''''''''''''''''''''''''''e'| -------------------------- '---------''''''|'-'-'-'-'-'''-'' | --------''' | ---------- | --------- '''''' ''''''''''''''|' ' ' ' ' 'e'e'r't'-'e'v'i'a'N''''T'''| ------''''''''''''''''''''''''''''|' ' ' ' ' ' ' ' ' ' 'y'a'r'r'A'''-'-'-'-'-'-'-'-' '|' ''''-'-'-''''''''''''''''|' '*'' ' ' 't's''''''*'i'l' 'd'e'k'n'i'L'''--''r'u't'c'u'r't's' 'a't'a'D''*''''''''''''*'''''''''''|'| Rust (Called from JS via WASM) | 0.20s | '''''''''''''''''|'| Rust (native) | 0.065s | 2.3 MB | B-Tre' |'e'' ' ' ' ' ' ' ' ' 'e'e'r'T'-'B' '??? |'' ' ' ' ' ' ' ' ' ')'' |'e'n' ''o'n'(''' '|' ''''''e'e'r'T'-'B''e'g''''n'n''n'n'n''a'u'g''''S'J'''''''''''''t'p'i'r'c's'a'v'a'J' '''''''e'e'r'T'-'B'n'a''''''''''g'n'A'''''''''''''|' ' ' ' '''S'J' '' ' ' ' ''''''''' '-'-'-'-'-'-'-'-'-' 'L' '|' 's'c'i't'n'a'm'e'''''''''''S'J' '|' ' ' ' ' ' ' ''S' 't'i's'' 'k'n'i''''|' ''''A'G'R'''''''M'A' 'h't' 't'''n'o'd' ''''.'t'i' ''t'o'n' 't's'a'e'''''''''''A'T'A'Y' '/' 'A'G'R' ''''''''''A'G'R''l' 't'''y'M'''a'''''m'''''''''A'T'A'Y' ''''''''''''''''' 't'i' 'e'k'a'm'''''o'o't''<'''''''''''''''')'e'n'o'n'(' ''''''''''n'a'p''''''n'''a''','>'''p's' 's' '''''''''''A'T'A'Y' ''','''''''''']'.'.'.' ','''m'e't'i' 'm'e't'i' ','m'e''''''A'T'A'Y' 't'i'[''''{' 'f'o' '''e'e'r't'B'''''''i'[''' ' 't'h'g''''''A'T'A'Y' 'i'm' 'h'c'i'h'w' '-' ''f' 's'i'h't' 'e'k'a'm' 'o't' 'x'e'd'n'i' 'n'a' 's'a'h' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 't's'u'r' 'y'M' ''h't' 'y'b' 's'm'e't'i' 'd'n'i'f' 'o't' 'd'e'e'n' 'o's'l'a' 'e'w' 's't'i'd'e' 'e't'o'm'e'r' 'g'n'i'g'r'e'm'''''''''''''''''''''''''''''''''.'T'D'R'C' 'a' 't'n'e'm'e'l'p'm'i' 'u'o'y' 'w'o'h' 's't'a'h'T' '.'''' 'n'e'h'w' 't'u'b' ','e'r'e'h' 'y'a'l'p' 'o't'n'i' 'e'''''''e'p'm'o'c' 't'''n's'e'o'd' 't'I''''''''e'w' 'n'e'h'W'n''n'm' 'y'n'a' 't'p'i'r'c's'a'v'a'j' 'e's'u' 'o't' 'e'v'a'h' 't'''n'o'd' 'e'w' 'e'h't' 'e'k'a'm' 'n'a'c''''''s'e'k'a'm' 'h'c'i'h'w' ',''' '''''''''' 'a' 's't'I' '.'''''''''''''''''''''''''''''''''' 'e'h't' 'g'n'i'k'a'm' 'e'r'''e'w' 's'a' 'n'e'v'e' ','e's'r'o'w' 'n'o'''i't'a't'n'e'm'g'a'r'f' 's'e'k'a'm' 't'a'h't' 'd'n'A''''''''''''''' 't'p'i'r'c's'a'v'a'j' 'n'I''''''e's'e'h'T' '.''')'s'y'a'r''''a'r'a' 'e'z'i's' 'd'e'x'i'f' 'e'k'i'l'(' ''''''''''''''''''''''p'u' 'd'n'e' '''''''''n'e'l'l'i'w' 'h'c'i'h'w' ','''w' '''''''''''''''''''''''s'''e'r'e'h't' 'o'S' '.''''''''''e'w' 'o's' '''''' ','s't'c'e'j'b'o' 'f'o' 't'o'l' 'a' 'd'e'e'n' ''m'e't'i' 'n'e'e'w't'e'b''t'i'W''''F't' '''n'i' ''''''''''i'l' 'd'e'k'n'i'l'm'e't'i' 'd'n''''''''''t' 't'A''r't'n'o'c' 'e'r'o'm'''' 't'c''''''t'''n'a'c'e'p''''''''''''''''''''''''o'd' 'y'l'n'o' 'n'a'c' 'e'w' 'h'c'i'h'w' '-''''w' '''s'u's'''''b'u'o'd' 'I' 'd'n'a' '''p'i'r'c's'a'v'a'J' 'n'a'h't' 'r'e't's'a'F'''''''''''''t'p'i'r'c's'a'v'a'J''Ev'''''d'i''''n'a' ','''erything is faster in Rust, with B-Trees''''s't'I''Everything is faster in Rust, with B-Trees''''''''''' 'g'n'i'v'a'e'L''a' 's't'n'''''''a' 'e'''''''''''''''''''''''''''''' ','e'c'a'r't' 'g'n'i't'i'd'e' 's'''n'i't'r'a'M' 'n'i''''''''''''''''''''''''' ','e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't' 'r'o'f''' 't'''r'''a'p' 'd'n'a' 's'D'I''''''''''s'e'i'r't'n'e'''''D'i' 'e'h't''s'm'e't'i' 'f'''o' 's'n'u'r' 'e's'p'a'l'l'o'c' 'y'l'n'o' 'n'a'c' 'e'W'''''l'l'o'C' '.'' 'e'w' 'e'm'i't' 'y'r'e'v'E' 'e'r'e'h' '''Well, '''''n'i' ''''''w''' 't'u'B''''''''''t'u'g''''u''''''there'''''''th'''''''h't' 'n'i'e't'i' 'f'o' 's'd'n'a's'u'o'h't' 'g'n'i'v'o'm' 'e'r'''e'w' 'n'e'h'w' 'w'o'l's' 'y'l'b'a'b'o'r'p' 'l'l'i't's' 's't'i''r'e't'f'a'''''''' ','l'l'e'W''''''8'V'''''''8'v' ''''' 'm''''''.'W''''e'r'e'h'''I'(' ''''''''''''''''T' '>'n'n''''''*''' 'ing immutablejs. ' ''''''''''''''s't'n'e'm'm'o'c'''''''o' 's't'o'l' 'h't'i'w' ',''' '''''o't''''s' ','''''''''''''''''''''''''''''''''''' 's'i'h't'''''''''''''t'''n'e'r'a' 's'''''''''''''''''''''''''g'n'i'h't' 'e'n'o' 't's'u'j' 'r'e''''''''''j' 'r'v'e'n' 's'i' 'e'c'n'e'r'e'f'f'i'd' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h'T' '.'''''''''''''''s't'i' 'o's' ','m'h't'i'r'o'g'l'a' 'e'h't''''a' 's'''e'r'e'H'' 't'I'l'a'i't'n'e's's'E'''''''''''''''a' 't's'u'j' '''s'i' 's'i'h'T't'i' '''''''''i''' ','''''''''''''''''''''''''.'s'i'h't' 'e'k'i'l' 's'T'D'R'C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'l'p'''s''i't'l'u'm' 'f'o' 's'c'i't'n'a'm'e's' 'e'h't' 't'n'e'm'e'l'p'm'i' 'u'o'y' 's't'e'l' 'y'a'w' 's'i'h't' 't'i' 'g'n'i'o'D' '.'2'n'''''M' '.''''u'o'y''''''''o't' '''''d'''''e'e'n' '' ''s'''''''''''''s''3'''''''''''''''''''''''''''''''''''''''''''''e'c''''r'a' 'e'r'e'h't' 'n'e'h'w' 'n'w'o'''''''''''''s't'a'h't' 't'u'B''''''-' 'u' '.''d' 's'w'o'l's' 'y'l'n'o''''''''''''''t's'a'f' 'r''I'''e'p'u's' ''''s's'i' 'm'.''''h't'i'r'o'g'''e'''*''h't''l'a' ''''''''*'e'h'T' ''''''y' '''s'i' ''d'n'a' ','k'r'o'w''''''''''''''''''''''''''''''''''''''''9'''[''F'''(''''''''''https://github.com/josephg/reference-crdts/blob/main/reference_test.t''')'s'('''''''''''''y'''''''t'''''i''' 'e'W'n'a'g'e'l'e''l'l'a'e'r'' Genius!'''' Genius!'''.'''' 'o'''s'l'a'''''''''''''t'u'o'b'a' 's't'''''''''''''a' 's'T'I''d'n'i'k' ':'''']'''''''')'M'T'(' 'd'e'i'f'i'''''''i'f'r'e'v' ''''c'n'y's' 'd'n'a' 's'j'y''')'.''' '''d'n'a' ','e'g'r'e'm'o't'u'a' 'l'a'u't'c'a' 'o't' ' 'l'l'a' 's''''R' 'f'o' 's't'o'l' ''h'u' 'd'n'A' ','''e question is'''''T'D'R'C' ', how do you insert a'' new item into a list like this' ?'.''''.''''''''''''''''the'''i'''''''''''''''''''s''' ','u'o'y' 'd'n'i'M'''''''''''''' ''answer is'''y'b' 't'r'e's'n''4'''i' 'e''''i'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e't's'e't' 'g'n'i'e'b' 's'e's'a'b'e'd'o'c' 't'n'e'r'e'f'f'i'd' 'y'l'e't'e'l'p'm'o'c' 'e'r'a' 'e's'e'h'T''''''' 'e's'e'h'T'''''' 's'i'h'T' '''''''' '.'y'l't'h'g'i'l's' ''''.'s'e'g'n'a'h'c' 's'm'e't'i' 't'r'e's'n'i' 'e'w' 'y'a'w' 'e'h't''You can't tell from looking at this method, but insertionsAfter' ','e'r'u''5'''t'c'u'r't's' 's'i'h't' 'h't'i'W''''''''''e'r'e'h't' 't'e'g' 'l'l'''''''''u'b' ','''e'''''m' 'n'e'e'b' 't'''n's'a'h' 't'i' 't'u'b' ','m'h't'i'r'o'g'l'a' 'e'h't' 'r'o'f' '''''''''d'n'e'k'c'a'b''' 't's'u'r' 'a' 'n'o' 'g'n'i'k'r'o'w' 's'i' 'm'a'e't' 'e'g'r'e'm'o't'u'a' 'e'h'T' ''''''''''''''''''''''''''''''''''''''!'s'r'e'l'i'o'p'S' '.'e't'a'i'r'p'o'r'p'p'a' 's't'a'h't' 'n'e'h'w' '2'5'.'1' 'c't's'u'r' 'd'n'a'ejs 16.1 ' 'h't'i'w' ',''''''''''''''''''''''''''''''''''.'n'o'i't'a't's'k'r'o'w' 'x'0'0'8'5' 'n'e'z'y'r' 'k'n'o'h'c' 'y'k'n'o'h'c'''''''c'h' 'y'm' 'n'o' '1'.'6'1' 's'j''''s'e'd'o'N' 'g'n'i's'u' 'e'n'o'd' 'e'r'a' 'e'r'e'h' 's'k'r'a'm'h'c'n'e'b' 'e'h't' 'l'l'A' '.')'s'(']'e'r'e'h' '''e't'i'u's' 'g'n'i'k'r'a'm'h'c'n'e'b' 'e'v'i's'n'e't'x'e' 'e'r'o'm'''''''r'e't't'e'b' 'h'c'u'm' 'a' 's'a'h' ')'r'o'h't'u'a' 's'j'Y' 'e'h't'(' 's'n'h'a'J' 'n'i'v'e'K' ' '''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'm'e't'i' 'f'o' 'e'e'r't' 'a' 'g'n'i'd'l'i'u'b' 'y'b' 's'k'r'o'w'''''''''''s't'n'e'm'e'l'p'm'i' 'y'r'a'r'b'i'l' 'e'g'r'e'm'o't'u'a' 'e'h'T' '.'r'e'v'e't'a'''''''a't'h'W''''''''''''''''''''''''''''''''''''''''s't'n'e'm'e'l'p'm'i' 'y'r'a'r'b'i'l' 'e'g'r'e'm'o't'u'a' 'e'h't' ','s'e'Y''''''''k'n'i'h't' 'I' '''j'''Y'('n''n'''''''''''''''''''''''''''''''''''''''''' 's't'i' 't'u'b' ','h'c'a'o'r'p'p'a' 't'n'e'r'e'f'f'i'd' 'a' 's'a'h' 's'j'Y' '.'''' ','e'g'n'a'h'c' 'a' 'e'k'a'm' 'u'o'y' 'n'e'h'W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'e'e's' 'r'e'v'e' 'e'v'''u'o'y' 'r'e'b'm'u'n' 'e'c'n'e'u'q'e's' 't's'e'g'g'i'b' 'e'h't' 'n'a'h't' 'r'e'g'g'i'b' '1'''i'b' 's'i' 'r'e'b'm'u'n' 'e'c'n'e'u'q'e's' 'e'h'T' '.'t' 'g'n'i't'r'o's' ''o'g' 'e'n'o' 'h'c'i'h'w' ','n'o' 'g'n'a'H' 'js''''''''''''y'l'l'a'u't'c'a' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','y'a'd'o't' 'n'o'i't'a't'n'e'm'e'l''''''' ','h'g''''''''''y'l'l'a'u't'c'a' 'r'a'p'm'i' ''''''''' 'e's'u'a'c'e'b' ''''T'D'R'C' 'e'd'a'r'g' 'n'o'i't'c'u'd'o'r'p' 'a' 't'n'a'w' 'u'o'y' 'f'I' '.'t'i' 'g'n'i's'u' 'd'n'e'm''''''''''d'n'e'm'o'c'e'r' 't'''n'o'd' 'I''''I'n'n'language I w'['ant to progra'''https://martin.kleppmann.com/2020/07/06/crdt-hard-parts-hydra.htm')'l'(']'m something I already understand, in order to get a sense of things.'''''''''''''p'u' 'd'e'''g'n'i''''''d'n'e' '''''' '''''''''''','''''''o't'''n',''''''''''''''t'''''''''''''''''''''t't''''u'b' '-' 'm'h'''t'''''''''''e's'o'l'c' 'n'e'v'e' ''i'r'o'g'l'a'''''''''''''''''''''''''''''0'0'0' ''''k''''''''i'r'g'l'a' ''''''''''''''''''''''''''''''''''''''' ','s'k'' function in''''''s'n''''''''''''s'n'o'i't'a'r'e't'i''''''''''''s'n'o'''!''i't'a'r'e't'n'i' 'u'r'''''s'e'o'd'''''''''''i' 's''''''''''e'e'r't' 'a' 's't'I''''''''''''''''''''''''''!'g'w'a'd' ','e'e'r't' 'a' 'e'k'i'l' 's'd'n'u'o'S''n'u'''''''u'r''''''''''''e'd'o'c' 'c'i''''''''''c''''''y'z'a'r'c'i'a'r't' 'n'o'i't'a't'''''''''''s'a'w' 'e'r'e'h't' 'n'e'm'e'''''''m'e'l'p'm'''''''''''''s'i' 's'i'h't' 't'u'B''''''a' 'h''''''''''''''''n'e'r'e'h' 'm'a'r'g'a'i'D' '>'n''a'H'''''''''''''''''''-' '''''d'r'!''''a'w'k'w'a''''w' 'a'h'a'H''''''''''''''''''n'e'e'b' 'e'v'''!'s'p'o'O' '''i' '''''''''''''''''''''''''s'm'h't'i'r'o'''''''''''' 't'n'a'e'm' 't'a'h't'g'l'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''g'n'i'n'n'u'R''g'n'o'r'w' 'r'e'p'u'S' ''''''''''''''''''''''.'t'n'e'i'c'i'f'f'e'''''''''''' 'y'l'l'a'u't'c'''''''''''''''''''''1'9'2''''''''''''''''''''''''''''''''''''''''https://martin.kleppmann.com/'')'(']'r'e'h'c'r'a'e's'e'r'''''r'e'v'o' '' 'r'a'l'u'p'o'p' 'a''7''''6'2'''''''6''''5'''2''''[' 'y'b' 'n'e't't'i'r'w' ','''''''''''*''''''*'o's'l'a' ''''''''''''''a''''''''''''''''''' '''''''''''''''''''Y'(' ''''n'e'h'W''x'0'0'0'0'1' '-' 'n'a'c'''''''.'''e'd'o'c' 'e'''''' '''''u'''''''' 'r'i'e'h''''''''''g'n'i''''''''''''''''''''''''''''''''''' '''y'b' 'e'd'a'm' 'e'b' 'n'a'c' ')'t'n'e'm'u'c'o'd' 't'x'e't''''d' 'r'o'(' ''t'l'u's'e'r' ''t''o'y' 'w'o'h''''c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'e'r't' 'a' 's'a' 'a't'a'd' 'e'h't' 'l'l'a''''''' '''''a''''' '''''e'''''r'o't's' 'o't' 's'i' 'h'c'i'h'w' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''w''' 'd'n'A''''''''''''''''''''''''''''''''''''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''s'a''''''''''''''''''''''''''''''''''e's'u' 'o't' 'g'n'i'o'g' '''k'r'a'm'h'c'n'e'b' 'e'l'p'm'i's' 'a' 'r'o'f''''t' 'o'S'''''o'T' '''''''''''''''m'e'h't''' 'f'''''''''f'l'e's'm''''''''''e'r'e'h'w' ''i'h' 'o' 'l'l'a''''''''''''''y'n'a' 't'''n'e'r'a' ''' '''''.''''''''''''''''''''''m'o'r'f' 's't'i'.'B'''''''d'e' 's'a'h'''''-'u'''''''''''''''''''''''''y'l'l'a'u't'c'a' ''''''''''''''''''''''''''''''''''''e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'o'd' 'l'l'''t'''''''t'i'''''''''' 's't'i''''.'h'e''''''''''''h'g'u'o'n'e' 'd'o'o'g''''''''''''''''''''''''''''''''u'o' ','f'f'u't's' 'd'o'o'g' 'e'h't' 't'n'a'w' 'u'o'Y' '.'h'e' 't'u'b' ','l'a'e'd'i' 't'o'N' '.'*'y'l'l'a'c'o'l'*' 'e'c'a'r't' 's'i'h't' 'g'n'i'y'l'p'p'a' 'm'o'r'f' 'e'm'i't' 'e'h't' 'g'n'i't'n'u'o'c' 't's'u'j' 'm'''I' 'd'n'A' ''''''''''''''''''''.''''''''''''''' 't'r'''''''''''''''''''.'e'm'i't' 'e'm'a's' 'e'h't' 't'a' '''a't's' 'd'n'a' 'e'c'a'l'p' 'e'm'a's' 'e'h't' 'y'l't'c'a'x'e' 't'''''''t' 'a' 's'r'o's'r'u'c' 'r'i'e'h't' 't'u'p''' 'r'e'v'e'n' 't's'o'm'l'a' '' '''''''a'j' ''''''''p'p'a' 'c'i'''''''''e'r'e'h' 's'm'h't'i''''h'r'o'''''''i'r'g'l'a' 't'n'e'r'e'f'f'i'd' 'f'o' 't'o'l' 'a' 'h'g'u'o'r'h't' 'o'g' 'o't' 'g'n'i'o'g' 'e'r'''e'W''''''''''''''''o'p' 's'i'h't' 'h'g'u'o'r'h'T'n''''''''''''''')'?'e'c'a'l'p' 'e'h't' 'r'e'v''''''''''t' 'f'o' 'l'l'a' 'g'n'i'o'd' 's'y'a'r'r'A'8't'n'i'U' 'e's'o'h't' 'l'l'a' 'e'r'a' 't'a'h'W'(' ''''''''''''h'W'(' '''''''''''''''''''''''''''''''''''''''''''''''''''''y'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's't'I'''''''''''''''''''''' 'd''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e't'c'a'r'a'h'c''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''- Insert 'a' id `(seph, 0)` after `ROOT`'- Insert 'b' id `(seph, 1)` after `(seph, 0)`n'n''''''''c''''''b''''''2'''''''''''1'''`'1''''''''''''''''''''''''''''!'e'e'r't' 'a' 's'a'''''''' 'a' 'e'k'i'l' 't'a'h't''''t' 'w'a'r'd' 'n'a'c' 'e'W''How should you represent that? A tree of course!nn> Diagram her''en'n''n''''''e'k'i'M's'' ''''''''''''''''X'''''''''''''e'w'''''''''''' ''''''*'*''''''b'''''''''''''''''''''''''''''''''''- Insert 'a' id `(se'''''''0' ','e'k'i'm'ph, 0)` after `R'X'''OOT`n''''n- In'x'''sert 'a' '3'''id `(s''''''''0' ','h'p'e's'('eph,')' 0)` afte'Note the 'x' and 'b' both share the same parent. This will sometimes happen when users concurrently type in the same location, and we can resolve that by comparing their item IDs. But we don't want to do that in this case! In this case no matter what the IDs are we should always end up with 'aXbc'. RGA solves this by adding '''''''''''''''''r'e'g'e't'n'''''''''''''''''''''''''''':''''''''''I' '.'''':'n- Insert 'a' id `(seph, 0)` after `ROOT''''''''*'''*'0' ':'q'e's' ','`n- Insert 'X' id `(mike, ', seq: '3'''*0*'0)` after `(seph, 0)`n- Insert 'b' id `(seph', seq: '1'''*0*', 1)` after `(seph, 0)`n''-'''''''''''''')'A'G'R'(' ''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i't'c'e'n'n'o'c' ''''','''''''''' 'y'b' ''''''''''e'l'p'So how should you *implement* automerge? The automerge library does it in the obvious tree based way. At least I think so '''''''''''''''''''''c'b'a''' ''''''g'n'i'p'y't' 'r'e't'f'a' '''[''''''''''''''''''''*'f'o' ''''*'''''''o' 'e'm'o's'*'''''''s's' '''''''''''''''''''''''''''''''''https://gist.github.com/josephg/0522c4aec5021cc1dddb60e778828db')'e'(']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 'n'o' 'g'n'i'o'g' 's't'a'h'w' 'a'e'd'i' 'o'n' 'e'v'a'h' 'I' ','h'a'e'Y'''''''!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Holy cow! ~~Thats nearly as much ''as slack.~~' '''n'n'.'M'A'R' 'f'o' ''''''' '.'B'M'0'8'8' ','p'e'y' '-' 't'a'h't' 's'i' 'w'o'w' 'd'n'A' '''''''''''''''''''''''''''''''''''''''''''''''''''''!'t's'a'f' 'y't't'e'r'p' 's'i' '8'V'''''''''''t'p'i'r'c's'a'v'a'J' '.''''''''''''''''''''n'n'''.'y'a'w'y'n'a' 'e'r'a'r' 'r'e'p'u's' 's'i' 'n'o'i't'a'c'o'l' 'e'm'a's' 'e'h't' 'n'i' 'g'n'i'p'y't' 'y'l't'n'e'r'r'u'c'n'o'c'''''''' 'g'n'i'''''''''''''|' 'e'| -------------------------- | ---------- | ----''|' '-----''g'a's'u'''''d'e's'u' 'M'A'R' 'p'y''880M''''''|'| JS baseline '' '' '' '' '' '' '' | 0.61s | 0.1 MB |'' ' ' ' ' 'B' ''t' 's'r'''''''''''' '-'-'-'''''''''''''|' ' ' ' ' ' ' ' ' ' ' '-'-'-'-'-'-' 'e's'U' '''''''''''.'''''''''''''''''''''''''''''' 'y'a'w'''''''''''':'t'i' 'o''''''''''''''''''' ' ' ' ' ' ' ' ' ' ' ' ' ' '''''''''''''''''''-'-'-'-'-'-'-'-'-'-'-'-'-'-'-'-''''''''''''''w'e'l's' 'e''1'''''l'o'h'w' '-'-'-'''' '' ' ' ' ''''''' ' ' ''' ' ' ' ''t'n'i' 'e'c' ''''''''2''''''''''' ' 'n'''''''''''''''''''''''''''''''There's an old saying with performance tuning:nn> You can't make a program faster. You can only make it do less work.nn''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'k'r'o'w' 's's'e'''l' 'o'd' 't'i' 'e'k'a'm' 'y'l'n''n1. Automerge makes heavy use of immutable.js. Immutablejs is a library which gives you clojure-like copy-on-write semantics for javascri''p''t objects. This is a cool set of functionality, but the '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''B'K''''''''''''''''''t'n'e'm''''''B'M'0'8''''~'~'''''''`'`''Thats nearly as'~~'''''-'-'''''''~'~' much as slack.''~'''''''''''''''''''''''''''''''.'k'c'a'l's' 's'a' 'h'c'u'm' 's'a' 'y'l'r'a'e'n'''''''' 'y'l'a'r'e'n' 's't'a'h'T' '''''''''''''''''''''''''''''''''''!'g'i'b' 'y'r'e'v' 'n'e'v'e' 't'''n's'i' 't'n'e'm'u'c'o'd' 'e'h'T' '''''''''''''''''''''''''''''''' 's'a' 'm'a'r' 'h'c'u'm' 's'a' 'y'l'r'a'e'n' 's't'a'h'T' '8'''u'''''c'o'd' 'b'k''''''''''!'w'o'c' 'y'l'o'H' '''''h'''''''b'l'0'0'1' 'a' 'e'c'u'd'o'r'p' 'o't' ''''''''''''''''''''''''''''''''''''''''!'!'''' 'm'a'So how do we make the computer do less work here? There's lots of performance wins to be had, but with this sort of thing its always best to start with macro optimizations. There's no point optimizing code you might be about to delete.'n'''r' 'f'o' 'B'G'7''''6'.'1' 's'e'm'u's'n'o'c' 'e'g'r'e'm'o't'u'a' 'n'i' 'e'c'a'r't' '''''''''''' 'I' 'd'n'A' 'g'n'i't'i'd'e''''a'r't' 'e'l'p'm'i's' 's'i'h't' 'g'n'i'n'n'u'r''''''''''''''''''''''''''''T''''''''' 's'e'k'a''.'''''''''','l'l'a' 'r'e't'f'A''''m''''n''n'o'c' 'e'c'a'r't' 'g'n'i't'''''''e't'e'l'e'd'i'd'e' 'e'l'p'm'i's' 't'a'h''''h't' '-' 'e'g'a's'u' 'y'r'o'm'e'm' 'r'O' 'V8 optimizer & GC struggles to optimize code that uses immutablejs. As a result, it increases memory usage and decreases performance.'o' 'n'a'c' 'u'o'Y' '.'r'e't's'a'f' 'm'a'r'g'o'r'p' 'a' 'e'k'a'm' 't'''n'a'c' 'u'o'Y' '>'n'n'''' ''''''''''''''''''''''''''''''''''''''''''''''''''w' 't'u'b' ','d'a'h' 'e''''''''''''''''''o't' 't's'e'b' 's'y'a'w'l'a' 's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y''I'a'w'y'n'a' 't'u'o' 'w'o''''''''''''''''''''''''''''''''''''''e'r'u't'c'u'r't's' 'a't'a'd' 'e'h't' 'g'n'i'v'o'r'p'm'I'''''''''''''''''''''''''''''e'r'u't'c'u'r't's' 'a't'a'd' '/' ''''''''''''''s't'n'e'm'e'v'o'r'p'm'i' 'c'i'm'h't'i'r'o'g'l'A' '#'#'#'n'n'n'r'h't' 'o't' 't'u'o'b'a' 'e'b' 't'h'g'i'm' 'u'o'y' 'e'd'o'c' '''''''''''t''' ','y'l'i'k'c'u'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'T'D'R'C' '''':'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i's'u' 'y'b' 'e'r'e'h't' 't'o'g' 't'I' '.'t's'a'f' 'y''''''' 't'd'a'e'r'l'a' 's't'i' 'e's'u'a'c'e'b' 'r'e't's'a'f' 't'i' 'e'k'a'm' 'o't' 'w'o'h' 't'u'o'b'a' 't's'o'p' 'g'o'l'b' 'e'l'o'h'w' 'a' 'd'e'e'n' 't'''n's'e'o'd' 's'j'Y'''''''''s'e'o'd' 's'h'''''''s'h'Y't'i'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'u'j'''''''''''''''''''''''''''''''''''':'s'i'h't' 'e'k'i'l' 'e'e'r't' 'a' 's'a' 'T'D'R'C' 'e'h't' 'g'n'i't'n'e'm'e'l'p'm'i' 'f'o' 'd'a'e't's'n'I' '.'d'e'c'i't'o'n' 'e's'l'e' 'e'n'o'y'n'a' 'k'n'i'h't' 't'''n'o'd' 'I' 't'a'h't' 'k'c'i'r't' 's'u'o'i''''''''''''''''''''e'h't' 't'u'p' ','o'S'n'n'v'b'o' ','r'e'v'e'l'c' 'a' ''''s'j''s'Y's'''''''''''''o's'l'a' ''' 'a' 'e'k'a'''m'''r'o'v'a'f' 'y'm' 'n'i' 'e'e's' '''''''''''''''''''''''''''''''''''''''i''' ','m'e't'i' 't'n'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'e't'r'e's''''''''''''|' 'e'g'a's'u' 'M'A'R' ''n'i' 'e'b' 'd'l'u'o'h's' '''''''''''''|' '-'-'-'-'-'-'-'-'-' 'm'e't'i' 'w'e'n' 'e'h't' 'n''''''''''''|' ' ' ' 'B'M' '0'8'8' ''o'i't'a'c'o'l' 'e'h't' 'd'''''''''''''''| JS baseline | 0.61s | 0.1 MB |'B'M' '8''''7''''3'2'''''''''''''''|' ' ' ' ' ' ' ' ' ' ' 'n'i'f' 'e'w' 'l'i't'n'u' ''''''''''''''|' ''''|' ' ' ' ' ' ' ' ' ' '''.''''p'i'k'S'''''r'a'p' 'e'h't' 'r'e't'f'a' 't'h'g'i'r' 'g'n'i't'r'a't'S''n'a'c' 'e'w'''''''''''''']'0' ','''h'p'e's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'r'e'''''''3. Walk up the tree to figure out''''''''''''''''''''''''''''''''''''''''g'n'i't'r'e's'n'i' 'y'l'l'a'u't'c'a' 'e'r'''e'w' 'e'r'e'h'w' '''''''(''''''''''''''''''g'n'i'n'n'a'c's' 'g'n'i'v'o''''''''''''''''''''e'r'u't'c'u'r't's' 'a't'a'd' 'e'r'o''''''''''''''''''''''''''''':'''.'1'''s't'o'p's't'o'h' 'e'c'n'a'm'r'''.'2'''o'f'r'e'p' 'o'w't' 'x'i'f''c' ''m'e'R'''''''''''''''''''e'm'i't' 'r''''''''' 'o't' 'd'e'e'n'''''''a'c'a'e'n'i'l' 'g'n'i'x'i'F' 'x'e'd'n'i' 'e'h't'''''''''''''''''g'n'''''''g'a''''n'i'''i'i's'o'p''''''''''o'p'm'o'r'p''''w'e'''''f''' '' '''''''''s'''' '-'n''''''' '-'n''''t'o'p's't''''d'n'A''''''a' '''' '-'''''''''''''''''y'a'r'r'a' 'e'h't' 'o't'n'i' ''n''''''o'h' ''m'''I''''''''''''''''''''''' 'y'l'l''''''''''''''e's'o'h'''''''''''''''' 'e'v'a'h' 'o's'l'a' 't'h'g'i'm''''''''''n'e'e'b''''''' ',' 'e'v'a'h''t' 'f'o' 'e'm'o's'a'.''u't'c'a''''''''''g'n'i't'r'e's'n'i' 'd'n'a' ','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'a'p'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''':'s'i'h't' 'o'd' 'e'w' ','t'r'e's'n'i' 'y'l'l'a'u't'c'a'''''''''''''''' '''!'s'e'k'i'y' 'e'l'b'u'o'D'n''n' 'e'w' 'n'e'h'w' '''''l'l'i'''w' ''n'e'h't''''''' 'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'f'o'o' 'l''''''' ','l'i't's' 't'u'b' ','+'+'C' 'm'o'r'f' 's'n'e'p'p'a'h' '''''''''''''''''''''''''''''''''''''''''''''''''.'e''''e''' 'o'S''r'e'h't' '''''''''''''''''''s'e'o'd' 'r'e't'u'p'm'o'c' 'e'h't''n'w'o'''d''' 'n'o' 'g'n'i'''''''''''''''''''''t's' 'y'n'a'm' 's'a' ','y'r'r'o'S''o'g' 'y'l'l'a'e'r' 's't'a'h'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'k'a't' 'l'l'i'w' 's'r'''''n'n'''e''''''''''''''''''''''''''''''''''''''' 's'm'e'l'b'o'r'p' 'e's'e'h't' 'f'o' 'h'''''''''''''''''''''''''''''''''''''''' ''''g'n'i'''y''*'b' 'm'e'l'b'o'r'p'*'' 'g'n'i'n'n'a'c'''''''d'e't'i'd''.'W''''e' ''s' 'e'h't' ''''''''''''''''''''y'e'h't' 'e'p'o'h'''s'a'h'' 'n'a'c' 'e'w' 'e'v'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'i'b' 'e'l't't'i'l' 'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Yjs does these two optimizations and one more bonus optimization: Humans type in runs of characters.'''''''''''''''''''''''''''''''''''''''''```javascriptnstate = [' { item: 'h', isDeleted: false, id: ['seph', 0], seq, parent: null },' { item: 'e''''h', isDeleted: false, id: ['s'1'''eph', 0], seq, parent'']'0''': ['seph', 1 },' { i'l'''tem: 'e''''h', is'''''''''''''''''''''''''''''' 'y'k's'e'p' 'e's'o'h't'''''''''''''''''''''''''''''n'n'''!'t's'a'f' 'e'b' 'l'l'i'w' 's't'n'e'v'e' 'e'''''''s'd'l'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'n'a''''''''''''''''''''''''''''''''s''''''e'g'n'a'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'c'a'o'r''''o'p'p'a' 's'i'''''' 'h'c'i'h'w''h't''' 'h't'i'w' ''''''''''''''''''''''''''''''''''''''''''''''''R'''''''''''''' 'h't'i'w' ','t's'u'r' 'n'i' 'r'e't's'a'f' 's'i' 'g'n'i'h't'y'r'e'v'E'''''''''''''''''s''''e'e'e'r'T'''''''r't'-'B' 'd'n'a' 't's'u'R'''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'e'm''.'''e'r't'x'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'n'u'o'r'-'''' 'l'l'a' 'e'v'i's''''i's'e'r'p'm'i' 's't'I' '.'e'l'b'i's's'o'p' 's'i'h't' 's'e'k'a'm' 'h'c'i'h'w' 'd'n'a't's'r'e'd'n'u' 't'''n'o'd' 'I' 't'a'h't' '8'V' 'n'i' 'y'r'd'r'a'z'i'w' 'f'o' 's't'r'o's' 'l'l'a' 's'''e'r'e'h't' 'e'r'u's' 'm'''I''''''' 's't'I' '.''''''''''''n'.'s'i'h't' 'r'o'f' 's'e's'u' 's'j'y' 'm'a'r' 'e'l't't'i'l' 'w'o'h' 'd'e'k'c'o'h's''''''''d'e'k'c'o'h'c' 'm''''''''''''y'l't's'e'n'o'h'''''''''' 'y't'l's'e'n'o'h' 'I'n''''''''Moving away from Javascript, and moving away fr'''''''''''''''''''-' 't'i' 'd'e's''''''''['''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''](https://gist.github.com/hellerbarde/2843375)'''t'A'''']'''''''''''''''''''''''''''''''h'c'a'e' ','''e'l's''a'c''''''''''''''''''''''h'c''''''''''h'a'e' 'd'n'A'''''h'c'a'E'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'k'i'l' 's'i' 'e'r'e'h' 's'e'o'd' 't'p'i'r'c's'a'v'a'j' 'e'k'''''''''''''','''''''''''''''''''''''''a' 'y'l'l'a'u''''''''''''''s'e'u'l'c' 'f'o' 'l'l'u'f' ''''t'c'a'''''''''''''''''''''''''''''''''''''''''d'n'i'f' 'l'l'''u'o'y' '''''''''''''''e's''''n'n'''''e'e'e'h'C''' 'r'o' 'e'r'e'h't' '''o'g' 'u'o'y' 'f'i' 'd'n'a' '-' '''''''''''''''''''''''''''''h's'i'u'q's''''.'''''''''''''''''''''''''''' 'e'r'e'h'w''''''''''''y'n'i'''''''g'n'i'y'a's' ''''t' 'a' 'h't'i'w'e'm'o's' 's'e'm'a'n''''T' '.''''''''''''''''''''''''''''''''''''.'s'''''''''' 'w'o''''''''''''''''''''o'd' 'e'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!'')'s't's'i'l' 'd'e'k'n'i'l' 'h't'i'w' 'm'e't'i' 't'x'e''''''''''''''''n' 'e'h't' 'o't' 'e'v'o'm' 'e'w' 'e'm'i't' 'h'c'a'e' 't'n'u'h' 'r'e'g'n'e'v'a'c's' 'a' 's't'i' ','r'e'b'm'e'm'e'R'(' 'l's' 'g'n'o'l'''''''l's''e'o'd' 't'p'i'r'c's'a'v'a'J' 't'a'h'w' 's't'a'h't' 'd'n'a' ','''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''t's'u'r' 'n'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i' '''T'D'R'C' 'a'''''''''''''''''''''''''''''''''''''''''''''e'm'i't' 's'i'h't' ','n'o'i't'a't'n'e'm'e'l'p'm'i'''''''''''s't'i' 'f'o' 'l'''''''''' 'l'a'n'r'e't''''''''''n'r'e'n'i'l'a''''''''m'e'l'p'e'm'i' 'T'D'R'C' 'r'e'h't'o'n'a' 't'e'y''g'n'i'd'l'i'u'b' 'y'l't'e'i'u'q' 'n'e'e'b' 'e'v'''I' 'o'S''''''''''''''''' 'n'e'e'b' 'e'v'''I' 'o'S''' 'e'u'l'c' 'h'c'a''''''''''''' 'h'a'c'''''''''''''''''''' 'n'w'o'd' 'd'n'a' 's's'o'r'c'a''E''''s'e'u'l'c' 't'n'u'h' 'r'e'g'n'e'v'a'c's' 'f'o' 'l'l'''''''''''''''''''''''''''''''''''''''''''.'m'e't'i' 'e'h't' 'd'n'i'f' 'o't' 's'd'a'e'r' '5' 'd'e'e'''''''''' ''''''' 'o's''''''' 'r'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'i'f' 'y'l'k'c'i'u'q''''''''''''''.'''''''''''''''''n'e'v'e'''''I' 'f'i' '' ' '>'-' ''''''f'o' '''g'n'i''''d'n'i'f'''''''''''''''''''''''''''''''''''''''''''''''s'u' 's't'e'l' 't's'u'R'''''''''''''')'*''''(']'0'0'1' ',''''''''s'e'r'o't's'''''''''''''''''''''''''''''''I'''''''''''''''''s'i'h't' 'e'k'i'l' ''I''.'''s'u'o'u'g'i't'n'o'c' 'g'n'i'h't'y'r''''n''''''''''s'y'a'w'''''''I' ''''''''''''e'b''''''''''''''''','t's'a'f' 'f'o' 'g'n'i'k'a'e'p'S'' 'l'l'i'w' 't'i' '''''o's'l'a' 'e'v'e' 'h't'i'w' ','''''h'p'e's'''''''''''''''h'p'e'S'[''''('*'('''''''('*''''(' 'D'I' 'r'i'e'h't' ''''t'y'b' 's'm'e't'i' 'p'u' 'k'o'o'l''''''''''' 'd'n'i'f' 'y'l'i's'a'e' 'n'a'c' 'e'w' 'o's' ','''' '''''c'a'b' 'x'e'd'n'i' 'n'''' 'a' 'g'n'i'r'o't's' 'o's'l'a' 'm'''I'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'a' 'k'c'i'r't' 's'''s'j'y' 'e's'u''''''''''''''We can also pack all the items tightly in memory. Each leaf in the b-tree is stored in a single block of memory. At that block we store 32 entries - each storing in''''''''' ' ' ' '?'?'?' turn a span of characters. So inserting *does* need some memcpy-ing, but a little bit of memcpy is fine. Its seriously faster than you think.'n'n''''W'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''W''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n| Test | Time taken | RAM usage |n|''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''''''''''.'y'r'a'r'b'i'l' 'y'm' 'n'i' ''''''''.'t'n'e't'n'o'c' 't'n'e'm'u'c'o'd' 'e'h't' 'e't'a'c'i'l'p'u'd' 'o't' 'e's'n'e's' 'e'k'a'm' 't'''n's'e'o'd' 't'I''''''''''''''u'r't's' 't'a'h't' 'd'n'A' ' -------------------------- | ---------- ''''''''''''''''''''''''' 't'u'b' '.'.''''''e'e'r't'-'B''.'t's'a'f' 'y't't'e'r'p' 's't'I'| -----'*''''''''*'''' 'y'l'l'a'u't'c'a'---- |n| autome''v'''('''rge @ 1.0.0''')'-pr' index''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''?'o'g' 'y'l'l'a'e'r' 'n'a'c' 'y'p'p'u'p' 's'i'h't' 't's'a'f' 'w'o'h' 'e'e's' 'o't' ''''''''''''','>'e'd'o''''''''!'i'a'''''''''''''''''''''''''''''''''''''''''https://docs.rs/ropey/1.2.0/ropey''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'i''''''''''''m'''I' 'w'o'n'k'''''''''' '.'.'.' 't's'u'j' 'I' ','k'o'o'L''''''''''''''''''''w''' 't'u'b' ','g'n'i't'a'e'h'c' 's't'I'''''''''''''''''''''''''''''''''?'f'f'o' 't'a'h't' 'n'r'u't' 'I' 'f'i' 's'n'e'p'p'a'h' 't'a'h'W' '.'y'a'w'y'n'a' ''''''''''''''''''''''''''''''''''d'e's'i'm'o'r'p' 's'a' ';''.'r'e't's'a'f' 'x'''' '0'0'0'4'1' '''n'n'.'m'o'o'B'n'm'e'l'b'o'r'p' 's'''e's'l'e' 'e'n'o'e'm'o's'''''''''''''''''''''''''s'''e's'l'e' 'e'n'o'e'm'o's' 'n'i' 'd'e'r'o't's' 'e'b' 'o't' 'g'n'i'o'g'''''''' 'd'e'r'o't's' 's'i' 't'n'e't'n'o'c' 't'a'h't' 'd'n'A' '''n| Test '''''' ' ' '?'?'?' | Time taken | RAM usage |n| -------------------------- | ---------- | '| Rust'' (n'''''''''''t'''''''''n'e't'n'o'c' 'c'o'd'ative) ')' | 0.065s | 2.3 MB |n'--------- |n|''''''''''''' 't'n'e't'n'o''3'2''''''c'1'''''''''''''''''' ' ' ' ' ' ' ' 'g'n'i'r't's' ''''''''''''''''o't's' 't'o'n' ',' automerge (v1.0.0-preview2) | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | 28 MB |n| Yjs (v13.5.5) | 0.97s | 3.6 MB |n| JS baseline | 0.61s | 0.1 MB |n| Rust (Called from JS via WASM) | 0.20s | 2.3 MB |n| Rust (native) | 0.065s | 2.3 MB |n'''''''''''''''''''f'f'o' 't'i' 'n'r'u't' 'I' 'f'I' '''''''''' 'd'n'A' '.'y'e'p'o'r' 'n'a'h't' 'r'e't's'a'f' 's'i' 'e'd'o'c' 'y'M''''I' '?'t'a'h'w' 's's'e'u'g' 't'u'B' '.')'/'(']'y'e'p'o'R'[' 'g'n'i's'u' 'm'''I' 't'n'e't'n'o'c' '''''' 'm'''I' 't'x'e't' 'e'h't' 'r'o'F''''''''''''s'''' 's'e'u'g' 't'u'B'n''h' 'h'o'n' 'e'e'r't'-'b' '>'='''''''''' '>'-'''''''''' '>'=' 'D'I' 'f'o' 'x'e'd'n'I'''''''n'i'<' ':'eview2 '' | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | 'v''' 28 '(''''''''' ' 'MB'''''''''''''''''''' ' ' ' ' ' ' ' ' ' ' ')'5'.'5'.'3'1'@''''#''''$''''&'(' |n| Yjs | 0.97s | 3.6 MB '''| Rust '''''''''''m'o''''a'i'v'''''''''''0''''0'2'''''''''''''''''''''''r'f' 'd'e'l'l'a'C'''''''''+' 'S''0'J''' 'a'i'V'(thro'n| Rust (Called from JS via WASM) | 0.20s | 2.3 MB |'ugh WASM) | 0.65s | 2.3 MB |n''' |n''''''e'n| Rust (native) | 0.065s | 2.3 MB |''''''' ' ' ' ' ' ''v'i't'a'n'| JS baseline |'''''''''''''''''''|' ' ' ' 'B'M' '3'.'2' '|' ''''''''''''''''''''''''''''''''''''''''''''''''n ''''''''''''''''''''''''''''''''''''' index: 't'n'e't'n'o'c' 'e'h't' 'g'n'i'r'o't's' 'e'e'r't'-'B''''''''''''''''''''''''''''''''''''''''''''''h'c'u's' 'd'n'a' 's't'e's'f'f'o' 'd'n'a' 's'n'a'p's' 'g'n'i'r'o't's' 'e'e'r't' 'e'g'n'a'R'<' ':'e'e'r't' ''' '''''''''''','''c'b'a''''''''''''''''''''''''n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'p'o'R'''''''R'<' ':'t'x'e't' '''''''`'`'`'n'}''n 'n ' '{'n'`'`'`'n'n':'s'i'h't' 'e'k'i'l' 's'k'o'o'l' 'e'r'u't'''''''t'u'c'u'r't's' 'a't'a'd' 'e'h't' 'o'S''''S''''''''''''''''''''''''''' 'r'u'o'y' 'e'm'u's's'a' 's'e'm'i't' 'e's'e'h'T'n'n'''' ' ' ' ' ' 0.61s | 0.1 MB '''''''''''''''''''''''''''''''''''''''''''''n| JS baseline | 0.61s | 0.1 MB |'s'5'6'.'0' '|' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ')'M'S'A'W' 'h'g'u'o'r'h't'('''''''''''''''''S'J' 'm'o'r'f' 'd'e'l'l'a'c''''''''b'e'w' 'a'i'v' 't's'u'R' '|'n' |''n'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o''''''''''''''''''''''''' 'y'l's'u'o'i'r'e's''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'm'i't' 'e'''' 't'u'o''h't' 't'a' 'r''''''''''''''''nWe can also pack all the items tightly in memory. Each leaf in the b-tree is stored in a single block of memory. At that block we store 32 entries - each storing in turn a span of characters. So inserting *does* need some memcpy-ing, but a little bit of memcpy is fine. Its seriously faster than you think.'a't'n''a'd' 'e'''''''w''' ','e'e'S't'a'r'a'p'e's' 'a''e'v'e'l'c' 'd'e'm'e'e's' 't'i' 'e'''s'u'a'c'e'b' ''''''''''''''''' 'd'e'r'o't's' 'e'','''b' 'o't'''''''''''''''''''''''''g'n'i'h't'e'm'o's' 'r'o''''''' 'r' 'r'o't'i'd'e'''''''''''''''''''''''''''''''''''s'''e'r'o't's' 'T'D'R'C' 'y'm''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'c'i'w't' 't'n'e't'n'o'c''' ''nThere's one last thing I've done. I don't know if its a good idea, but I did it anyway because it seemed clever. I moved the content itself out into a separate data structure. See, when you're actually doing collaborative editing, you probably want all the characters in your document to be stored in an actual array, or in VS Code's editor or something. It doesn't make sense to store the content twice. So I made it so my CRDT stores'''''n''''''''' 'o't''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'.'s'e'g'n'a'h'c' 'e'g'r'e'm' 'n'a'c' 't'i' 't'a'h't' 'h'g'u'o'n'e' 't's'u'J' '.'h'c'u's' 'd'n'a' 's'n'a'p's' 'e'h't' '''''' 's'd'e'e'n'''''''' 's'e'r'o't's' ''e'h't' 'e'r'o't's' 'o't' 'e's'n'e's' 'e'k'a'm' 't'''n's'e'o'd' 't'I' '.'r'e'v'e't'a'h'w''''h' 'r'o' 's'e'r'u't'c'u'r't's' 'a't'a'd' 's'''e'd'o'C' 'S'V' 'n'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o't' 't'n'a'w' 'y'l'b'a'b'o'r'p' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'''''''l'o'n'o' 'e'r'u't'c'u'r't's' 'a't'a'd' 'T'D'R'C' 'e'h't' 'o's' 't'i' 'e'd'a'm' 'I' 'o'S' '.'g'n'i'h't'e'm'o's' 'r'o' 'g'n'i'r't's' 'l'a'u't'c'a' 'n'a' 'r'o' ','y'a'r'r'a' 'l'a'u't'c'a' 'n'a''''''''''''''''''''''''''''''''''' 'n'i' 't'n'e'm'u'c'o'd'''''w'n'd'o' 'r'u'o'y' 'n'i' 's'r'e't'c'a'r'a'h'''''''r'a'c' 'e'h't' 'l'l'a' 'e'v'a'h' 'u'o'y' ','''' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c' 'g'n'i'o'd' 'y'l'l'a'u't'c'a' 'e'r'''u'o'y' 'n'e'h'W''''S' '.'''''''.'s'e'r'u't'c'u'r't's' 'r'e'h't'o'n'''' 'a' 'o't'n'i' 'f'l'e's't'i' 't'n'e't'n'o'c' 't'x'e't' 'e'h't' 'd'e'v'o'm' 'I' '''''''n'n'.'y'a'w'y'n'a' '''' 't'i' 'd'''''''i' 'i'd''''''''''''''' 's't'i' 't'c'e'p's'u's' 'I' 't'u'b' ','a'e'd'i' 'd'o'o'g' 'a' 's't'i' 'f'i' 'w'o'n'k' 't'''n'o'd' 'I' '.'e'n'o'd' 'e'v'''I' 'g'n'i'h't' 't's'a'l' 'e'n'o' 's'''e'r'e'h'T'n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i'l'l'i'm' '0'0'2' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'n'A' '.'s'd'n'o'c'e's'i'l'l'i'm''''n' '5'6'''''''''''''''''''''''''''''''''''' 'n'i' 'e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't' 's's'e'c''''e'o'r'p' 'n'a'c' 'e'w''''t' ','t's'u'r' 'm'o'r'f' 'y'l't'c'e'r'i'd' 'd'e'l'l'a'C' '.'s'd'n'o'c'e's' '2'.'0' 'o't' 'n'w'o'd' 'e'r'''e'w''''''''''''''k'r'a'm'h'c'n'e'b' 'e'h't' ','y'l'b'm'e's's''''p'a'b'e'w' 'h'g'u'o'r'h't' 't'p'i'r'c's'a'v'a'j' 'm'o'r'f' 'd'e'l'l'a'C'n'n'?'o'g' 't'i' 's'e'o'd' ''''?'t's'a'f''''m' 'w'o'h' ','y'a'w'y'n'A'n'n'.'''''''''''''''''''''k'n'i'h't' 'u'o'y' 'n'a'h't' 'r'e't's'a'f' 's't'I' '.'e'n'i'f' 's'i' ' 't'i'b' 'e'l't't'i'l' 'a' ''''''''''y'p'c'm'e'm'''''''''''-' 'e'n'''''' 'l'l'i't's''i'f' 's'''''''g'n'i'o'd' 't'i' '''''''''''''''''''''''''''''''''''''''''''''y'l'e'v''''e'''i'''t'i'u't'n'i'''''''i'u' ''''''''''''''''''''''''''r'e't's'a'f' 'h'c'u'M' '.'s'i' 't'i' 'k'n'i'h't' 'u'o'y' 'n'a'h't' 'r'e't's'a'f' 'y'l's'u'o'i'r'e's' 's't'a'h't''''''''''m'''I''''''s't'a'h't' 't'u'b' ','g'n'i'-'y'p''''''''''y'p'o'c'm'e'm' 'e'm'o's'''''''''''''y'p'c'm'e'm' 'w'e'f' 'a' 'd'e'e'n' '*'s'e'o'd'*' 'g'n'i't'r'e's'n'i' 'o'S'''''' 's'i'h'T' ''''''''''h'T' '.'s'r'e't'c'a'r'a'h'c' 'f'o' 'n'a'p's' 'a' 'n'r'u't' 'n'i' 'g'n'i'r'o't's' 'h'c'a'e' '-' 's'e'i'r't'n'e' '2'3' 'e'r'o't's' 'e'w' 'k'c'o'l'b' 't'a'h't' 't'A'''''''''''' 'k'c'o'l'b' 't'a'h'T' '.'y'r'o'm'e'm' 'f'o'''''''o'f' 'k'c'o'l'b' 'e'l'g'n'i's' 'a' 'n'i' 'd'e'r'o't's' 's'i' 'e'e'r't'-'b' 'e'h't' 'n'i' 'f'a'e'l' 'h'c'a'E' '.'y'r'o'm'e'm' 'n'i' 'y'l't'h'g'i't' 's'm'e't'i' 'e'h't' 'l'l'a' 'k'c'a'p' 'o's'l'a' 'n'a'c' 'e''''In Javascript we can't even pack a single item into contiguous memory. In rust we can pack groups of 32 items all together in chunks. This will result in some memcpy-ing when we insert, but thats faster than you think.n'''''e'W'''''''' 't's'a''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n''''''n'''n'.'y'a'w'y'n'a' 't's'a'f' 'y'l'l'a'e'r' 's't'i' 't'u'B' '.'t'e'y' 't'a'h't' 'd'e'i'r't'''''''''h't' 'd'e'u'r't' 't'''n'e'v'a'h' 'I' '.'l'''''''''n'o'i't'a'c'o'l' 'e'h't' 'e'h'c'a'c' '*'o's'l'a'*' 'o't' 't'e'y''''''n'''''n''e''n't' 'r'e't's'a'f' 'e'b'''''''l'a' 't'h'g'i'm' 't'I'n'n'.'y'a'r'r'a' 't'p'i'r'c's'a'v'a'j' 't'a'h't''''''''''''''e'''' 'd'e'e'n' 'e'w''''n' 'n'e'h'w''''e'e'n' 'n'a'h't' '''e'm'a's' 'e'h't'''n' 'y'l'n'o' 'e'w' 'o's' ',''''u'f' 's'i' 't's'i'l' 'r'''t''e'v''''s'i'l' 'r'u'o'y' 'n'i' ''i'l' 'y'r'o'm'e'm' 'g'n'i'g'n'a'r'r'A' ''''.'''' 'd'n'A'''')'t'a'e'b' 't'r'a'e'h' 'a' 't'u'''''''''''s'e't'u'n'i'm' '2''''''o'b'a'(' ''a't's' 'e'm'i't' 's'i'h't' 'n'O' '.'e'v'i't'i'u't'n'i' 'e'r'o'm' 't'i' 'e'k'a'm' 'o't' 'n'o'i'l'l'i'b' '1' 'y'b' 'e'm'i't' 'r'e't'u'p'm'o'c' 'p'u' 'e'l'a'c's' 'n'a'c' 'e'W''s'e'u'g'''''''''i' 'd'e's'e'u'g' 'u'o'y' '-' 'om linked lists'''''''''' 'r'e't't'e'B''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't'u'b' 't'i' 'y'a's' 'o't' 'd'a's' 'm'''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''' 'o't' 'e'u'n'i't'n'''''o'c''''''''''''''''''''''''''''''''''''''''' 'e'n'i'g'a'm'I''''''''''''''''''t''''''javascript'''''n'o's'j'''''''''''t'p'i'r'c's'a'v'a'j'''{ ''*'''''r'u'o'Y''''C''''''''*'''''''''''''''''''''''''''''''''''''''.'s'r'''''''''''''''''l'l'a' '''''''''''''s'e'x'o'b' 'e's'e'h't' 'o't'n''''''''s'i'h'T'''''n't''''e'h'T' '' '.''''i' 'a't'a''''' 'p'e'''f'o' ''e'k''''''''''''' 's'i' 'h'''''''''''''e'w' 'r'e't'a'L''O'c'i'h''''''''''''''''''''''''''''''''''''''' '.'*'e'r'e'h'w'y'n'a'*' 'e'b' 'd'l'u'o'c' 't'i' 'd'n'a' ','''a''',''''''t'a'd' 't'a'h't''w' ','''''' '''d'''''''''''''o't' 'g'n'i'o'g' 'e'r''' 't'u'p''e't'n'i'o'p' 'y'b' 'd'e't'a''''''''''''''''''t'i' 'd'a'e'r' 'o't' 'd'e'e'n' 'e'w''''r'a'p'e's'''''''''''''''''''''''''a' 'e't'o'r'w''''''''''''''''''''''''''''''''''''''''e'm'i't' 's'i'h'T' '.''''''''' ','m'e't'i' 'h'c'a'e''''''''''''''''''''''''''''''''''''B' '.')'s'n'a'p's' 's'''s'j'y' 'g'n'i'd'u'l'c'n'i'(' '''''''''''' '''''''n'n'''''''''''''''''''''''''''''''''''''''''''''''''M'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'o'g''''''''''''''''''''''''''''''''''''' '-'n'n':'''''''''''''' 'e'''''''''''''n'o'i't'''i's'o'p' 't'a' 'h't''''o't' 'a't''''''r'u'o''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e's'a'c' 's'''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n'e'v'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'k'n'i'h't' 'u'o'y' 'n'a'h't' 'r'e't's'a'f' 's't'a'h't''''''''''''''''''''''''''' 'n'a'h't' 'r'e't's'a'f' 'y'a'w' 's'i' 'y'p'c'm'e'm' 't'u'b' ','t'r'e's'n'i' 'e'w' 'n'e'h'w' 'g'n'i'-'y'p'c'm'e'm' 'e'm'o's''''''''''''''''y'p'''''''p'o'c'm'e'm' 'f'o' 't'i'b' 'a' 'n'i' 't'l'u's'e'r' 'l'l'i'w' 's'i'h'T' '.'s'k'n'u'h'c' 'n'i' 'r'e'h't'e'g'o't' 'l'l'a''''t' 's'p'u'o'r'g' 'k'c'a'p' ''''''''''''''''''n'a'c' 'e'w' ','t'c''''''''''''''''''''h't'i'w'''A''''''''A' '.'' 'e'e'r't' 'r'u'o''''r' 'n'i' 'a'f' 'n'I' '!'''''''''''''''''''''h'c'a'e' ''''''''''''''''''''''''''''' 'r'e'h't'e'g'o't' 'l'l'a''.''' 's'm'e't'i' '2'3' 'h't'i'w'''''''''''''''''''''''''''''k'n'u'h'c' 'y'r'o'm'e'm' 'e'l'g'n'i's' 'a' 'o't'n'i' 'k'c'a'p' 'n'a'c' 'e'w' 't's'u'r' 'n'I' '.'y'r'o'm'e'm' 's'u'o'u'g'i't'n'o'c''''e'h't' 'o't'n'i' 'm'e't'i' 'e'l'g'n'i's' 'a' 'k'c'a'p' 't'''n'a'c' 'e'w' 't'p'i'r'c's'a'v'a'J' 'n''''''''''j' 'n'I'''''n'n'!'y'a'r''''a'r'a' 't'p'i'r'c's'a'v'a'j'''' ' 'r'u'o' 'n'i' 'm'e't'i'''''''i't' 'y'r'e'v'e' 't'f'i'h's' 'o't' 'g'n'i'd'e'e'n' 'n'a'h't' 'r'e't't'e'b' 'h'c'u'M' ''n'e'p'p'a'h' 'i'h't' 'n'i''''''''''''''''.'t'a'h'w' 'r'e't't'a'm' 'o'n' 's'p'e't's' '5' 't'u'o'b'a' 'r'o' '-' ')'h't'p'e'd'('O' 's'e'k'a't' 't'i' '-' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'l'i'l'p's' 'e'w' ','e's'a'c' 't's'r'o'w' 'e'h't' 'n'I'''''''''''''''''e's'a'c' 't's'r'o'w' 'e'h'T' '.'t'n'e'r'a'p' 'e'h't' 'n'i' 't'r'e's'n'i' 'd'n'a' 'm'e't'i' 't'n'e'r'r'u'c' 'e'h't' 't'i'l'p's' ''''''''' 'e'w' ','t'o'n' 'f'I' '.'e'r'e'h't' 't'n'e't'n'o'c' 'w'e'n' 'e'h't' 't'r'e's'n'i' 't's'u'j' 'e'w' ','m'e't'i' 't'n'e'r'r'u'c' 'e'h't' 'n'i' 'm'o'o'r' 's'''e'r'e'h't' 'f'I' ''''''''''''''''''''''''n'i' 't's'u'j' 'n'a'c' 'e'w' 'y'l'l'a'u's'U' '.'o'o't' 't's'a'f'''''' 'y's'a'e' 's'i' 'e'e'r't' 'e'h't' 'n'i' 'g'n'i't'a'd'p'U' '-'n''e'''n'''''a'c' 'e'w' '''''''''t's'u'j' 'n'i''''''''''''''''''''''''''''''''''''''''''''''''''s'l''''r'u'o' ''e'v'e'l' '5''''''' '4' 's'd'e'e'n' 'y'l'n'o''''''''''''''''''''''''''''''''''''''''''''*'''''''''''''e's'o''.'s''''h't' 'o'd' '*''''''''' 'n'a'c's' 'r'e'v''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' ','r'e'z'i'm'i't'p'''''''''''''''''''''''''''''y'r'o'''m'e'm' 'n'i' 'e'c'''''a'l'p' ''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'W' '.'b'e'w' 'e'''''''''''https://github.com/josephg/text-crdt-rust''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''i''' '''''''''''''''- It''''''''''t'-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d''' 'e'e'r't'-'B'''''''''''''e'r'e'h' 'm'a'r'g'a'i'D' '>'n'n''''This solves both of our linear scanning problems from earlier. When we want to find item 50 000 in the list, we can just tr''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'y'r'o'm'e'm' 'f'o' 'k'n'u'h'c' 'e'm'a's' 'e'h't' 'o't'n'i' 's'm'e't'i' '2'3' 'f'o' 'p'u'o'r'g' 'e'l'o'h'w' 'a' 's'k'c'a'p' ')'a't'a'd' 'l'a'u't'c'a' 'e'h't' 'e'r'o't's' 'e'w' 'e'r'e'h'w'(' 'e'd'o'n' 'f'a'e'l' 'h'c'a'E''''''''''''' 'a'e'W'n'n'.'e'e'r't' 'e'h't' 'n'i' 's'r'e'y'a'l''''l' '5' 's'd'e'e'n' 't's'u'j'''''''j' ' 't'n'e'm'u'c'o'd' 'e'l'o'h'w''''''''''o'h's' 's'i'h't'averse down the tree. Trees are very tidy - storing all these items we just need 5''This solves both of our linear scanning problems from earlier'''''''''''''''''''''''''w''''''''''0'0'0'0' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '5' 'd'e'e'n' 't's'u'j' 'e'w' 's'm'e't'i' 'e's'e'h't' 'l'l'a' 'g'n'i'r'o't's' '-' 'y'd'i't' 'y'r'e'v''''''''''''''''''''''''''''''''''''''s'm'e'''''''e'm't'i' 'e's'e'h't' 'l'l'a' 'g'n'i'r'o't's' '-' 'y'd''''y'i't' 'y'l'l'a'e'r' 'e'r'a' 's'e'e'r'T''''' 'e'h'T' '.'e'e'r't' 'e'h't' 'n'w'o'd' 'e's'r'e'v'a'r't' 't's'u'j' 'n'a'c' 'e'w' ',''0'5'''''''''''''0'0'0'1' ''''''''''''''''''''''''t's'i'l' 'e'h't' 'n'i' 'm'e't'i' 'h'c'i'h'w'''''''''''''''''''''''''''''' ','t'r'e's'n'i' 'o't' 't's'i'l' 'e'h't' 'n'i' 'e'r'e'h'w' 'd'n'i'f' 'o't' 't'n'a'w' 'e'w' 'n'e'h'W' '.'n'n'''''''''''''''''''''''.'n'e'r'd'l'i'h'c' 's'''m'e't'i' 't'a'h't' 'f'o' 'l'l'a' 'f'o' 'h't'g'n'e'l'''''''''''''''''''''''''''.'r'e'i'l'r'a'e' 'm'o'r'f''''''''''m'o'r' 's'm'e'l'b'o'r'p' 'g'n'i'n'n'a'c's' 'r'a'e'n'i'l' 'r'u'o' 'f'o' 'h't'o'b' 's'e'v'l'o's' 's'i'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'r'e'b'm'u'n' 'e'h't' 'e'r'o't's' 'e'w' 'e'e'r't'-'b' 'e'h't' 'f'o' 'e'd'o'n' 'h'c'a''''c'e' 't'A'''''''''''' 'e'e'r't'-'b' 'e'h'T'''''''a' 's'i'h'T' '.'s'm'e't'i' 'e'h't' 'e'r'o'''''''o'r't's' 'o't' 't's'i'l' 'd'e'k'n'i'l' 'a''''''''''' 'f'o' 'd'a'e't's'n'i' 'e'e'r'T'-'B' 'a' 's'e's'u' doesn't'''''''''''''' 't'''n's'e'o'd' 't'I' '-'n'n':'t'u'b' 's'j'y' 's'a' 'e'm'a's' 'e'h't' 'y'l'l'a'i't'n'e''''n's's'e' 's'i' ''''''''''''''''''''''''' 's'''s'j'y' 's'e'o'D' '-'n'n':'''''''''''''''''l'l'a' 's'a'h' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 's'i'h'T' '.'t's'u'R' 'n'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''t'n'e'm'l'e'p'm'i' 'T'D'R'C'''''''''''''''n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'e'h't'o'n'a' 't'e'y' 'g'n'i'd''''d'l'i'u'b'''''''''''a' 'g'n'i'd'i'l'u'b' 'y'l't'e'''''''e't'i'u'q' 'n'e'e'b' 'e'v'''I' ')'/'(']'e'r'e'H'['''''''e'['n'n'h't' 'n'o' 'n'e'v'e' ',''''''' '.'e'r'o'm' 'y''''''''''o'm't'n'a' 't'p'i'r'c's'a'v'a'j''''''''p'p'a' 'b'e'w' 'e't'i'r'w' 'o't' 'd'e'e'n' 't'''n'o'd' '''''''''''''''''''.'y'l'b'm'e's's'a'b'e'w' 'e'v'a'h' 'e'w' ''''''''''''''''''' 'e'r'o'm' 'e'n'o' 's'''e'r'e'h't' ','k'o' 's't'i' 't'u'B''''B'n'n''''a'h' ''e'h't' 'r'e'v'o' 'l'l'a''''o' ''o' 'e'h't' 'e's'u'f'n'o'c' '''''''''''''''''''''''''''''''''''''e'r'o''''''''''''''n'o'i't'a't'n'e'm'g'a'r'f' ''m' 'd'n'a' 's't'c'e'j'b'o' '''''''''''''''''''''''''''''''''''''''''''e'h't' 'f'o' 't'r'o's' 's't''''s''''''' 'n'I' '.''''''''''''''''''''''''s'e'r'u't'c'u'r't's' 'a't'a'd' 'r'e'v'e'l'C' '.''''y'r'o'm'e'm' 'd'e't'n'e'm'g'a'r'f' 'e'r'o'm' 'n'e'v'e' 'h't'i'w''''a'r'f' 'p'u' 'd'n'e' 'e'w''''''''''''''''''''''''''''' 'o't' 's'u' 's'e'c'r'o'f''''''''''''''(' 's'u' 's't'h'g'i'f' 'e'g'a'u'g'n'a'l' 'e'h't' ','t'p'i'r'c's'a'v'a'j' 'n'i' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'y'c'n'a'f''''e' 'o't' 't'n'a'w' 't'''n'o'd' 'e'w' 'd'n'a' 't'n'e'm'u'c'o'd' 'e'h't' 'd'n'u'o'r'a' 'p'o'h' 's'e'm'i't'e'm'o's' '*'s'e'o'd'*' 'r'e's'u' 'e'h't' ','e'r'a' 'y'e'h't' 's'a' 'r'e'v'e'l'c' 's'a' '-' 's't's'i'l' 'd'e'k'n'i'l' 'm'o'r'f' 'y'a'w'a' 'e'v'o'm' 'o't' 'd'e'e'a'd' '''''''''''''''''''''''''''''''''''''n' 'e'w' 'd'n'A' '.'r'e'h't'e'g'o't' 's'd'l'e'i'f' 'e'h't' 'l'l'a' 'e'v'o'm' 'o't' 'd'e'e'n' 'e'w' ','r'e't's'a'f' 'n'u'r' 'o'T''''''''' 'y'l'l'a'e'd'I'n''n''.'''s'e'g'a' 'e'k'a't' 'd'l'u'o'w' 't's'i'l' 'e'l'o'h'w' 'e'h't' 'g'n'i'd'a'e'R' ''''''.'n'e'd'd'i'h' 's'i' 't'i' 'n'o' '''k'l'i'm''' 'h't'i'w' 'e't'o'n' 'e'h't' 'e's'u'o'h' 'r'u'o'y' 'n'i' 'e'r'e'h'w' 'g'n'i'b'i'r'c's'e'd' '''''''''''''''''''''''t'n'u'h' 'r'e'g'n'e'v'a'c's' 'e'l't't'i'l' 'a' 'd'a'h' 'u'o'y' '''k''''i'l'i'M''''i''''''''''l'i'm''' 'g'n'i't'i'r'w' 'f'o' 'd'a'e't's'n'i' 't'u'b' ',' ''''''''''''''''''t's'i'l' 'g'n'i'p'p'o'h's' 'r'u'o'y' 'f'i' 'e'k'i'l' 's't'I' ' '*''s'i' 'a''''''''''''''''''''''''''''''''''y'l'l'a'u''''''''''''''t'i' 'h'c't'e'f''''''''''''''''''''w'o'l's' 'o's'l'a''''a' 's'i' 'h'c'i'h'w' ','' 'o'g' ''s'u' 'r'e't'u'p'm'o'c' 'r'u'o'y' ','t'i' 'd'a'e'r' 'o'T''Y'*''t'a'd' '''''' ''''''''''''''''''''''y'''n''n'''We can't fix this in javascript. If we make our data structures more complex, we run into the same limitations Automerge has with immutablejs - which is, if we make our data structures complex,''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ','x'''','e'l'p'm'o'c''''o' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'r'u'o' 'e'k'a'm' 'e'w' 'f'i''''' 'e'h't' ','s'i' 'h'c'i'h'w' '-' 's'j'e'l'b'a't'u'm'm'i' 'h't'i'w' 's'a'h' 'e'g'r'e'm'o't'u'A' 's'n'o'i't'a't'i'm'i'l' 'e'm'a's' 'e'h't' 'o't'n'i' 'n'u'r' 'e'w' ','x'e'l'p'm'o'c' 'e'r'o'm' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'r'u'o' 'e'k'a'm' 'e'w' 'f'I' '.'t'p'i'r'c's'a'v'a'j' 'n'i' 's'i'h't' 'x'i'f' '''''''''''''''''''a'v'a'j' 'n'i' 'r'e't't'e'b' 'o'd' 't'''n'a'c' 'e'W'n'n'l'l'a'u's'u'l'l'i'w' ''e'h't' 'l'l'A'n''n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''''''''''''''''','l'l'e'w' ','e'r'e'h't' 's'i' 'a't'a'd'''e'm' 'e'h't' 'e'c'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'''o'r'f' 'd'''''''''''''''''''''''f'i' ','''''''''''e'k'a't' '''''f'i' 'e'm'i't' 'r'e't'u'p'm'o'c' 'n''''''' 'f'I'''''' 'n'I' ''a'e'r' 'o't' 's'd'e'e'n' 'r'e't'u'p'm'o'c' 'r'u'o'y' ','''a't'a'd' 't'a'h't' 'h'c't'e'f'''''d'a'e'r' 'o't' 'r'e'd'r'o' 'n'I' '.'e'r'e'h'w'y'n'a' 'e'b' 'd'l'u'o'c' 'r'e't'n'i'o'p' 'a' 'f'o' 'd'n'e' 'r'e'h't'o'''''''o'e' 'e'h't' 't'a' 'a't'a'd' 'e'h'T''o' 'd'n'A'n'')'w'o'l's' 'o's'l'a'(' 'g'n'i'''p'e'e''''''''''''''''''''''''a't'a'd' 't'a'h't' 'h'c't'e'f' 'd'n'a' 'o'g' 'k'''' 'k'o'o'b' 'e'm'o's' 'o'd' 'd'n'a' ''''''' ','y'r'o'm'e'm' 't'a'h't' 'k'c'a'r't'''''''''''' 'd'n'a't's'r'e'd'n'u' 'o't' 's'd'e'e'n' 'r'o'''''''d'e't'c'e'l'l'o'c' 'e'g'a'b'r'a'g' 'e'h'T' '.'w'o'l's' 's'i''''''l's' 'i's' 'h'c'i'h'w' ',''''''''''h't'i'w' 'y'r'o'm'e'm' 'e't'a'c'o'l'l'a' 'o't' 's'a'h' 'r'e't'u'p'm'o'c' 'e'h't' ','e'r'e'h't' 't'e'g' 'o'T'n'n'''''''''e''' ','e'e'''''' 't'a'h't'S'.'s'i'h't' 's'e'''t'a'h' 'r'e''''''''''''''''''''''''''''''''''''''''''''''''''''' 'y'l'l'''a'''''''a't'a'd' ''''''''''''''''''''''''''''''''k'o'o't' 's'd'''''''''''''''''''''''''y'r'o'm'e'm' ''''''' ''2't'u'o'b''n'i'a'm'''''''m'a' 'm'o'r'f' 'g'n'i'd'a'e''''''n'n''r' ''a'e'r' 'e'h'c'a'c' '1'L''''''''''''''''''''''''''''''''''''''''','s'd'n'o'c'e's' '5'.'0' 'k'o'o't' 's'e's's'e'c'c'a' 'y'r'o'm'e'm' 'l'a'm'r'o'n''''''' 'y'r'e'v'e' 'f'I' '.'''''''''e'r' ''u's'u'''''''''''' 'o't' 's'd'e'e'n' 'r'e't'u'p'm'o'c'''''''e't'u'p'o'c''''o' 'r'u'o'y' ','r'e't'n'i'o'p' 'a' 'w'o'l'l'o'f' 'o't' 'r'e'd'r'o' 'n'I't'u'p'm'o'c' 'e'h'T''''''''''''''''''''''''''''''''.'r'e't'u'p'm'o'c' 'e'h't' 'r'o'f' 'l'u'f'w'a' 's'i' 's'i'h'T'n''n'i'Each part of the data structure is connected to the rest via pointers. In modern computers, following pointers is really slow. If the computer did 1 clock cycle every second, reading data from main memory would take a [couple of minutes](https://gist.github.com/hellerbarde/2843375).''''''0'0'1'''tem: ''''''''''']'2' ','''e'k'i'm'''''''''e's'[''''hello', isDeleted: fa'''''''''''''''''''''''''''''''''''''y'l'''''''''''''''''''''d'i'd' 'r'e't'u'''''y'''r'e'v'e''''''''''''''''''''''''''''''''''''''''''['''''''''''''''''''https://gist.github.com/hellerbarde/284337''' '.')'5'(']'''s'e't'u'n'i'm' 'f'o' 'e'l'p'u'o'c'''''''''''''''.'s'e't'u'n'i'm' 'w'e'f' 'a' '''''e'k'a't' 'd'l'u'o'w' 'y'r'o'm'e'm' 'n'i'a'm' 'm'o'r'f' 'a't'a'd' 'g'n'i'd'a'e'r'''p'm'o'c' 'e'h't' 'f'''''' 'g'n'i'o'd''I''''''''''''''''''''t' 'r'e't'u'p'm'o'c' 'e'h't' 'y'l'a'e'r' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''(' 'r'e't'n'i'o'p' 'a' 'g'n'i'w'o'l'l'o'f' ','d'n'o'c'e's' '1' 's'a'w' 'e'l'c'y'c' 'k'c'o'l'c' '1' 'f'I' '.'w'o'l's' ''''''' 's'y'r'e'v' 'y'l'l'a'u't'c'a' 's'i' 's''''e'r'e't'n'i'o'p' 'g'n'i'w'o'l'l'o'f' ','s'r'e't'u'p'm'o'c' 'n'r'e'd'o'm' 'n'I'''''''''''''''' ','y'l'e't'a'n'u't'''''''n'u'r'o'f'n'U' '.'s'r'e't'n'i'o'p' 'a'i'v' 't's'e'r' 'e'h't' 'o't' 'd'e't'c'e'n'n'o'c''''''''''''''''''''''''t's'e'r' 'e'h't' 'm'o'r'f' 'd'e't'a'r'a'p'e's' 's'i' 'e'r'u't'c'u'r't's' 'a't'a'd'''''''t'c'e'j'b'o' 'e'h't' 'f'o' 't'r'a'p' 'h'c'a'E''''''''''''''' '''''''''''''''''''''''''''''''''''''''Note how each''''''''''''''' 'h'c'a'e' 'w'o'h' 'e't'o'N'n'n''''''''''.'.'.'m'a'r'g'a'i'D' '>'n'n':'s'i'h't' 'e'k'''''''k'e'i'l' 's'k'o'o'l' 'y'l'l'a'u't'c'a' 't'c'e'j'b'o' 's'i'h'T'n'n'lse, id: ['seph', 0], seq, parent: null ''''`'`'`'n'}'n'`'`'`'n'p'i'r'c's'a'v'a'j' 'n'i' '''''''''''''''''''''''''''''''''''''''n'n':'s'i'h't' 'e'k'i'l' 't'c'e'j'b'o' 'n'a' ','t'p'i'r'c's'a'v'a'j' 'n'I'n'n'.'y'r'o'm'e'm' 'f'o' 'e's'u' 'r'e't't'e'b' 'e'k'a'm''''''''''''y'r'o'm'e'm' 'k'c'a'p' 'o't'''''''''''''''''''''''''''''''''''''''''''y'r'o'm'e'm' 'n'i' 's'd'a'e'r' 'r'e'w'e'f' 'o'd' 'o't' 'r'e't'u'p'm'o'c' 'e'h't' ''' '''o't' 't'n'a'w' 'e'w' 'f'I'''''''''''''''''''' 'd'n'a' ',''''.'y'd'a'e'r'l'a' '''','''' 'd'e'z'i'm'i't'p'o' 'l'l'e'w' 'y'r'e'v' 's'i' 's'j'Y' 'I''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'o' 'r'e'b'm'u'n' 'e'h't' 'g'n'i's'a'e'r'c'e'd' 't'r'a't's' 'o't' 'd'e'e'n' 'e'w' ','e'r'o'm' 'e'c'n'a'm'r'o'f'r'e'p' 'e'v'o'r'p'm'i' 'o'T' '.'s'i'h't' 'n'a'h't' 'r'e't's'a'f' 'h'c'u'm' 'o'g' 't'''n'o'w' 't'p'i'r'c's'a'v'a''''''''''''' 't's'u'J''''''''''''t'''n's'i' 'e'r'e'h'T'''''''''''''''''''o'f'r'e'p' 'g'i'b' 't'x'e'n' 'e'h'T'n'n's't's'i'l' 'd'e'k'n'i'l' 'm'o'r'f' 'y'a'w'a' 'g'n'i'v'o'm' 'd'n'a' ','t'p'i'r'c's'a'v'a'J''''''''f'c's'a'v'A'J' 'm'o'r'f' 'y'a'w'a' 'g'n'i'v'o'M' '#'#'#'n''n'c''''''k'c'i'r't''i'h't' ','e'n'o'd' 'd'n'a' 'd'i'a''''''''''''' 'd''''''''''''''''''''''''''''''''''''''''''''s'i' 't'l'u's''''''''''''''''''''''''''''''''''':'M'A'R' 'h'c'u'm' 's'a''''o' '%'0'1' 't'u'o'b'a''''g'n'i's'u' 'e'r'''e'w' ''e'r' 'e'h'T' '.''''''''''''''''''' 'd'n'a' ','t'a'e'r'g' 'm'r'o'f'r'e'p' 's'e'g'n'a'h'c' 'e's'e'h'T''i'a's' 's'i' 'l'l'a' 'n'e'h'w'p's' 'e's'e'h't' 'f'o' 'e'n'''''''''' 'n'e'o''''''''''i'l' 'n'a'p's' 'a' 'f'o' 'e'l'd'd'i'm' 'e'h't' 'n'i' 'g'n'i'h't'e'm'o's' 's't'r'e's'n'i' 'r'e't'a'l' 'r'e'''s'''''B'M'''1'.'0''''''u' 'e'h't' 'f'i' 't'u'o' 'k'c'a'b' 's'm'e't'i' 't'i'l'p's' 'o't' 'c'i'g'o'l' 'l'a'i'c'e'p's' 'e'm'''''''e' 'o's' 'd'e'e'n' 'l'l'''e'w' 'd'n'A' '.'''i'''''''i'''''''''''''s'd'l'i'e'f' ''t's'a'p' 'y'l'l'a'n'i'F' '''''''''''''k'n'i'l' 'a' 'n'i' 't'u'B'n'n'Deleted:'2''' '''2'false, id']': ['seph', 0], seq, par'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'''f''''u'B' '.'s'i'h't' 'e'k'i'l''''''''''i'l' ''''r'u'o' 'I''p'u' 'e'n'i'l'''''''''''''''r'e''''''''''''''''''''''''''''''''''''''''''''''':'M'A'R' 'h'c'u'm' 's'a' 'h't'0'1'/'1' 'r'e'v'o' 't's'u'j' 's'e's'u' 'd'n'a' ''''''''''''''''''''''''''''''''''''''':'r'e't's'a'f' 'x'0'3' 's't'i' '-' '''':'*'t'a'e'r'g'*' 's'm'r'o'f'r'e'p' 't'i' 'd'n'A'n'n''''| Test | Time taken | RAM usage |n| -------------------------- | ---------- | '''''B'M' '8''''7'2'--------- |n| automerg'| reference-crdts (automerge / yjs) | 31s | |n'''''''''''''''''''''''''''''''''' ' '''''s'7'9'.''''6''''7'.''''B'M' '3'0'''''' '''''''''.'0' '''''' ''' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's'j'Y'e @ 1.0.0-preview2 | 291s | 880 MB |n| reference-crdts (automerge / yjs) | 31s | |n| JS baseline | 0.61s | |n'n'n'''t'f'a' 'e'n'o' 'e'm'o'c' 's'm'e't''''i''''''''''e'm't'i' 'e'h't' 'l'l'a' 'n'e'h'w' 's'k'r'o'w' 'y'l'n'o'''''''o'i' 's'i'h't' '-' 's'i'h't' 'e'k'i'l' 't's'i'l' 'e'l'o'h'w' 'e'h't' 'e's'p'a'l'l'o'c' 't'''n'a'c' 'e'W' 'ent: ''''' 's'i'h't'['sep'''''''''''''n'o'i't'a'z'i'm'i't'p'o' 'h', 'l'''1 },' { item: '3''''h', isDelet'']'2'''ed: false, id: ['seph', 0], seq, parent: ['se'o'''ph', 1 },n'4''''n'n''']'3'''n'n'''''''''''''''''':''```javascriptnstate = [n { item: '''''o'l'l'e'h', isDeleted: false, id: ['seph', 0], seq, parent:'' nul''Aaah much better! For our benchmark, this reduces the number of items in the list from 180 000 down to about 40 000. And it''''''''''''''''''''''''''''''''''''','t''''k'r'a'm'h'c'n'e'b' 'r'u'o' 'r'o'F' '''''''''''''''''''''''''''''''''''''''''''''' 't'i' 'd'n'A' '.'''0'0'0' '0'4' 't'u'o'b'a' 'o't' 'n'w'o'd' '0'0'0' '0'8'1' 'm'o'r'f' ''''''''''''''''''''''''''''''''''''''''''''t's'i'l' 'e'h't' 'n'i' 's'm'e't'i''i' 'f'o' 'r'e'b'm'u'n' 'e'h't' 's'e'c'u'd'''''''c'u'e'r' 's'i'h'T' '!'r'e't't'e'b' 'h'c'u'm' 'h'a'a'A'n''n'l },n { item: 'e', isDeleted: false, id: ['seph', 1], seq, parent: ['seph', 0] },n { item: 'l', isDeleted: false, id: ['seph', 2], seq, parent: ['seph', 1] },n { item: 'l', isDeleted: false, id: ['seph', 3], seq, parent: ['seph', 2] },n { item: 'o', isDeleted: false, id: ['seph', 4], seq, parent: ['seph', 3] },n]n```'n''s'e'r'o't's' 't's'u'j' 's'j'Y'n'n' { item: 'h''''a', isDeleted: false, id: ['seph', 0], seq, ''''''''''1' ''','''h'p'e's'''['''parent: null },n { i'e'''tem: 'X', isDeleted: false, id, seq, parent: ['seph', 0] },n'l''' { item: '''''e'''s'l'a'f''b', isDeleted: true, id, seq, parent:' { item: 'l', isDeleted: false, id, seq, parent: [..] },n' ['seph','o''' 0'l'''] },n { item: 'c', isDeleted: fal''s''e, id, seq, parent: [..] },n ...n]n```n'n'n':'g'n'i'r'o't's' 'f'o' 'd'a'e't's'n'i' ','''o'l'l'e'h''' 'e'p'y't' 'I' 'f'I' Instead of typing'' a''Yjs does these two optimizations and one''''' 'e'r'o'm' bonus optimizat''i''on: Humans also type in runs of characters. Instead o'''''''' ' 'a'''''''' 'a' 'g'n'i'p'y't' 'f''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'd'a'e't's'n'I' '.'s'r'e't'c'a'r'a'h'c' 'f'o' 's'n'u'r' 'n'i' 'e'p'y't' 'o's'l'a' 's'n'a'm'u'H''''U'''''''''''''''''''g'n'i'r'o't's' 'f'o' 'd'a'e't's'n'I' ':'n'o'i't'a'z'i'm'i't'p'o' 's'u'n'o'b' 'e'n'o' 'd'n'a' '''' 's'n'o'i't'a'z'i'm'i't'p'o' 'o'w't' 'e's'e'h't' 's'e'o'd' 's'j'Y'n'n'.')'k'r'o'w' 'o't' 'g'n'i'n'n'a'c's' 'e'h't' 'r'o'f'''' 'o't' 't's'i'l' 'd'e'k'n'i'l'-'y'l'b'u'o'd' 'a' 'e'b' 'o't' 'e'v'a'h' 'o't' 'g'n'i'o'g' 's't'I'(''''''''''s't'I' '.'y'l'b'u'o'd''''''''''''t's'i'l' 'd'e'k'n'i'l' 'a' 'h't'i'w' 'y'a'r'r'a' 'e'h't' 'g'n'i'c'a'l'p'e'r'''''''l'p' 'y'b' 't'a'h't' 'o'd' 'n'a'c' 'e'w' ','l'l'e'W''''''''''''''''''y'b' 't'a'h't' 'o'd' 'n'a'c' 'e'W' '.'y'l't'n'e'i'c'i'f'f'e' 't'r'e's'n'i' 'o't' 'd'e'e'n' 'e'w' 'n'e'h'T'n'n'''''''''''''''''''''''''''''''''''''.'e'c'i't'c'a'r'p' 'n'i' 't'a'e'r'g' 's'k'r'o'w' 't'i' 't'u'b' ','y'g'd'o'd' 'f'o' 'd'n'i'k' 's'd'n'u'o's' 's'i'h'T' '''' '.'''''''''''''''''''i'f' 'o't' 'e'r'e'h't' 'm'o'r'f' 's'd'r'a'w'k'c'a'b' 'r'o' 'd'r'a'w'r'o'f' 't'i'b' 'a' 'n'a'c's' 't's'u'j' 'd'n'a' '''l'o's' 'n'a'c' 'e'W't'o'b' 'x'i'f' 'n'a'c' 'e'W'n''n'''L'n''n''t'c'a'r'a'h'c' 'n' 'g'n'i't'r'e's'n'I''''''''''''.')'2'^''''%'n'('O' 's't'I' 'e'''u'r't' 'y'l'l'a'u't'c'a' 's't'a'h't' 'f'i' 's'w'o'n'k' 'o'h'w' 'd'n'a' ',''t'r'a'p' 's'i'h'T''''' 's't'I''''f'o'O' '' '''.'d'r'a'w'r'o'f' 'e'c'a'p's' 'e'c'n'o' 'l'g'n'i's'' 'd'n'A'n'n'!'s'e'k'i'Y' '!'n'o'i't'i's'o'p' 't'r'e's'n'i' 'e'h't' 'd'n'i'f' 'o't' 's'm'e't'i''''''''''' '0'0'0' '0'6' 't'u'o'b'a' 'n'a'c's' 'o't' 'e'v'a'h' 'y'l'b'a'b'o'r'p' 'l'l'''e'w' ','0'0'0' '0'5' 'n'o'i't'i's'o'p' 't'a' 't'r'e's'n'i' 'y'e'h't' 'f'I'''''''''''''''' 'o't' 'g'n'i'o'g' 's't'a'h'T'n'n'.'t'n'e'r'a'p' 's't'i' 'e'm'a'n' 'o't' 'y'b'r'a'e'n' 's't'a'h'w' 'e'e's''''l'''''''''' 's't'i' 't'a'h'w' 'd'n'a' ','s'e'o'g' 'm'e't'i' 'w'e'n' 'e'h't' 'e'r'e'h'w' 't'u'o' 'e'r'u'g'i'f' 'o't' ')'s'm'e't'i' 'd'e't'e'l'e'd' 'g'n'i'p'p'i'k's'(' ''''''''n'i'f' 'o't' 't'n'e'm'u'c'o'd' 'e'h't' 'h'g'u'o'r'h't' 'n'a'c's' 'o't' 'd'e'e'n' 'l'l'''e'W' '''' '?'t'a'h't' 's'i' 'h't'r'a'e' 'n'o' 'e'r'e'h'W''''''''''''''''''''''''''''''''.''''''' ','''''''''''''''''' 'g'n'i'd''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''e'w' '''''''n '''.'.'.' ','''''''''''d'e'e'n' ''t'u'b' 'e'v'o'b'a' 's'i'h't' 'n'o'i't'n'e'm' 't'''n'd'i'd' 'I'''''''''''''''''''''e'v'o'b'a' 'e'k'i'l'n'u' 'd'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'''.'n'i' 'm'e't'i''''s'e'o''''''g'n'i's'u' ''d'''''' ',''''' 'w'e'n'''''s'e'o'd' 'e'h't' '''''''''i' 'e'c'i'l'p's' 'd'n'a' 't's'i'l' 'e''''''''''''''''s'i'l'e' 'h''''''''''''n'e'e'b' 't'''n'e'v'a'h''t' 'n'i' 't'n'e'r'a'p' 't'a'h't' 'd'n'i'f' 'o't' 'd'e'e'n' 'e'w' ','t'r'e's'n'i' 'e'w' 'n'e'h'w' 'n'e'h't' 'd'n'A' ''''n'n''''.'e'b' 'd'l'u'o'h's' 't'n'e'r'a'p' 's't'i' 't'a'h'w' 't'u'o' 'e'r'u'g'i'f''*''''*'''''''''.'w'o'l's' ')'n'('O' ''''''''''''''''''''''''''''''''''' 'm'e't'i' 'e'h't' 'm'o'r'f' 'D'I' 't'n'e'r'a'p' 's't'i' 'y'p'o'c''''''''''''''''''''''p' 's't'i' 't'a'h'w' 't'u'o' 'e'r'u'g'i'f'''''''''''''''''''''t'n'e'r'a'p' 's't'i' 't'a'h'w' 'w'o'n'k' 'o't' 'd'e'e'n' 'e'''''','l'l'e'W'w' 't'a'h't' 'r'o'f' 'd'n'a' '-' 'm'e't'i' 'w'e'n' 'a' 'e't''V'a'e''''''' 'y'l'l'a'e'''''''''''''''''''''''''''''''''take about as many steps''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''x'i'f' 'x'i'f' 'y'x'i'F' '#'#'#'#'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''simplest''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'r'e'v''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h'w''''''''''''''''g'n'i'h't'e'm'o's' 'd'e'p'y't' 'r'i'a'p' ')'n'o'i't'i's'o'p' ','x'e'd'n'i'('''''''''''''''''i's'o'p' 'd'n'a' 'x'e'd'n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'k'c'a'r't' 't's'u'j' 'n'a'c' 'e'w' 'n'o'i't'i's'''''''t'i'o'p' 'r'o's'''''''r'o'r'u'c'''''''t'r'e's'n'i' 'd'l'o' 'e'h't' 'o't' 'e's'o'l'c' 't'r'e's'n'i' 'y'e'h't' 'f'i' ',''''''''''e'w' 'n'i'a'g'a' 't'r'e's'n'i' 'y'e'h't' 'n'e'h'w' 'd'''''''''' 'd'a'n'a' ','d'e't'r'e's'n'i' 'r'e's'u' 'e'h't' 'n'o'i't'a'c'o'l'''''''''l' '''''''d'e't'r'e's'n'i' 't's'a'l' 'e'h't' 'e'h'c'a'c' 'n'a'c' 'e'W' '''''M' '.'h'c'u'm' 't'a'h't' 't'n'e'm'u'c'o'd' 'e'h't' 'd'n'u'o'r'a' 'e'v'o'm' 'y'l'l'a'u't'c'a' 't'''n'o'd' 'y'e'h't' ','g'n'i'p'y't' 's'i' 'n'a'm'u'h' 'a' 'n'e'h'w' 'y'l'l'a'u's'U''''''''''''''''''''''''d'e't'r'e's'n'i' 'e'r'a' 's'm'e't'i' 'n'e'h'W''''''''''m'e't'i' 'n'h'e'W'''''''''''''''''' 'n'a' 'd'n'i'f' 'o'T' ': Replacing the array with a linked list.nnThis has a few benefits:nn-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-''' '-'n'n':'s't'i'f'e'n'e'b' 'w'e'f' 'a' 's'a'h' 's'i'h'T'n'n'.'t's'i'l' 'd'e'k'n'i'l' 'a' 'h't'i'w' 'y'a'r'r'a' 'e'h't' 'g'n'i'c'a'l'p'e'R' ':'t's'e'l'p'm'i's''''''''s'u'o'i'v'b'o' 'e'h't' 'h't'i'w' 't'r'a't's' 's't'e'l' 't'u'b' ','s'i'h't' 'o't' 's'n'o'i't'u'l'o's' 'w'e'f' 'a' 's'''e'r'e'''''''i'e'h'T'''''''' 's'j'Y'n'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'r'e'w'o'l's' 'g'n'i't't'e'g' 'd'n'a' 'w'o'l's' 's't'I' '.'w'o'l's' 't's'u'j' 't'''n's'i' 's'i'h'T'''''''''''n'o'l' 'e'h't' 'o'S' '.''''''''''' 'e's'u'a'c'e'b''''s'(' 't'n'e'm'u'c'o'd' 'e'h't' 'n'i' '*'n'e'e'b' 'r'e'v'e'*' 'e'v'a'h' 'h'c'i'h'w' 's'r'e't'c'a'r'a'h'c' ','l'l'e'W' '.'t'n'e'm'u'c'o'd' 'e'h't' 'n'i' 's'r'e't'c'a'r'a'h'c''''i' 'e'r'a' 'e'r'e'h't' 's'a' '''''p'o'o'l'''''''''''''''''''''''''' 's'p'e't's' 'y'n'a'm'''''' 'y'n'm'a' 's'a' 't'u'o'b''''s'a' 'e'k'a't' 'o't' 'd'e'e'n' 'e'w' ','t'r'e's'n'i' 'e'w' 'e'm'i't' 'h'c'a'E'''''''''''''e'm'i't' 'h'c'a'e' 'o'S''r''r'c' 't's'r'i'f'''''''''''t'u'o' 'e'r'u'g'i'f' 'o't' 'd'e'e'n' 'e'W' ''a' ','h'O' '''''''''''e'r'''e'w''''g'n'i''' 'd'n'A'm'''''s'i'h''''''''''s'h'i't'e't'.''''''''''''''''''' 's'i'h't'''''''''o't' 'x'e'd'n'i' 'e''''i'h't'''o't' 'd'''''''''' 'e'h't' 'y'p'o'c'e'e'n' 'e'W'''''i'':'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'h't' 'd'n'a' ','t'i' 'n'i' 's'm'e't'i' '0'0'0' ''''0'0'0'1' 's'a'h''0' '' 't'n'e'm'u'c'o'd' 'e'h't' 'e'n'i'g'a'm'i' 's't'e'L'n'''''':'s'i'h't'''' { item: 'X'''''''''''''''''' ','e's'l'a'f' ':'d''''D'e't'e'l'e'D's'i'', '''''''''' 'd'e'e'n' 'e'w'''''''''''''''''''''''''''''''''''''')'!'m'e't'i' 'g'n'i'd'e'e'c'e'r'p' 'e'h't' 'f'o' 'd'i' 'e'h't' ''''''''''''''''''''' 'h't'i'w' 's'i'h't' 's't'n'e'm'e'''l'p'm'i''s't''''''''''' 'h't'i'w' 's'i'h't''''''''''h't' 'i'('''''''o'(' ''''''d'n'W''a''''''''''''' ' ''t'0''s'i'l' 'e'h't' 'n'i' ','id, seq, parent: ['seph', 0]' ' ',''' '0'}'e','s'n'l'''a' 'f''' 'e':'''d'k'i'''l'D'''e' 't''' '0'''''e' ''u'r't'''e','l'''' 'e'''0' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''The''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''doc.content.splice'destIdx''''''0'0'0'''''''''''''''' ''''''''''''''''''''''''e'm'l'p'm'i' 's'i''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'''''''''''''''''''g'n'i'm'u'''''''''' 'y'l'l'a'u't'c'a's's'a' 's'i'''' 's't'i'' 's'i'h'T'w'o'l's' 'o's'l'a' 's'i' 's'i'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''-' ''''''''''''''''''''''')'!'x'e'l'p'm'o'c' 's'i' '8'v' '-' 's'e'o'd' 'y'l'l'a'u't'c'a' 't'i' 't'a'h'w' 's'w'o'n'k' 'o'h'W' '.'s't's'i'l' 'r'o'f' 'y'l'l'a'n'r'e't'n'i'''''''''''''''''' '.'s't's'i'l' 'r'o'f' 'y'a'r'r'a' 'n'a' 's'e's'u' 't'p'i'r'c's'a'v'a'j' 'f'i' ','l'l'e'W'(' '.'e'c'a'p's' 'e'n'o' 'y'b' 'd'r'a'w'r'o'f' '0'0'0' '0'6' 'n'o'i't'i's'o'p' 'm'o'r'f' 'm'e't'i' 'y'r'e'v'e' 'e'v'o'm' 'o't' 's'd'e'e'n'''''''''e's'u' 't's'i'l' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'd'e'e'n' ')'y'l'l'a'u't'p'e'c'n'o'c'(' 't'p'i'r'c's'a''''s'v'a'j' ','s'm'e't'i' '0'0'0' ''''''' '0'0'0'1' 's'a'h' 'y'l't'n'e'r'r'u'c' 'y'a'r'r'a' 'e'h't' 'f'I''''''r'e's'n'i' '/'/' '0'6'(destIdx, 0, newItem''''''n'n'`'`'`'n')'n't'p'i'r'c's'a'v'a'j'`'`'`'n'n':'n'i' 't'i' 'e'c'i'l'p's' 'o't' 'd'e'e'n' 'e'w' ','n'o'i't'a'c'o'l' 'w'e'n' 'e'h't' 'd'n'u'o'f' 'e'v'''e'w' 'r'e't'f'a'''''''h't' 'n'''''' 'n'e'h'T'n'n'.'w'o'l's' 'e'b' 'o't' 'g'n'i'o'g' 's'y'a'w'l'a' 's'i' 's'i'h't' 't'u'b' ','n'a'c' 't''''''' 'c'i' 't'a'h'w' 'o'd' 'l'l'i'w' 'r'e'z'i'm'i't'p'o' 's'''t'p'i'r'c's'a'v'a'J''''''''''''''''''''w'o'l's' 'y't't'e'r'p''''l' 's'i' 's'i'h'T' '''',''D''e'''s's'' ''l'i'''a'f'o'f'' ''''''''''''''''''''''''''''''''''''''''''''''''''''''My implementation does a linear scan through the document to find this location.'''''''''''''''y'a's' 'o't' 's'i'''''''''''''''e's'u' 'I' ','s'n'a'e'm' 'h'c'i'h'W''I' That sounds fancy - its a `for()` loop. We count all the not-deleted items until we've counted past 5000 items which aren't deleted and ret'''''''''''' 'n'o'i't'a'n'i't's'''e'd'urn t''h''e resulting index. If 1000 characters have been deleted before position 5000, the index position might be 6000. Unfortunately for us, this is'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''`'s't'i' 't'u'b' '-' 'y'c'n'a'f' 's'd'n'u'o's' 't'a'h'T' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'g'n''''''''''''''''''''s'r'e't'c'a'r'a'h'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'i' 's'i'h't' ','s'u' 'r'o'f' 'y'l'e't'a'n'u't'r'o'f'n'U''''''''''r'o'f'n'u' 't'u'B' '''''''''''''.'0'0'0'6' 'e'b' 't'h'g'i'm' 'n'o'i't'i's'o'p' 'x'e'd'n'i' 'e'h't' ','0'0'0'5' 'n'o'i't'i's'o'p' 'e'r'o'f'e'b' 'c''''''''''''''''''''''''d'e't'e'l'e'd' 'n'e'e'b' 'e'v'a'h' 's'm'e't'i' '0'0'0'1' 'f'I' '.''''''''''''''''''''i'b' 'e'b' 'l'l'i'w' 'h'c'i'h'w' '-' ''''''''''''''''''''''0'0'0''''5'5'5' 'g'E'(''''E' '.'''''''''''''g'e'(' ''i't'l'u's'e'r''''''''' 'x'e'd'n'i' 'e'h't' 'n'r'u't'e'r' 'd'n'a' 'd'e't'e'l'e'd' 't'''n'e'r'a' 'h'c'i'h'w' 's'm'e't'i' '0'0'0'5'''''''0'1' 't's'a'p' 'd'e't'n'u'o'c' 'e'v'''e'w''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'l'i't'n'u' 's'm'e't'i' 'd'e't'e'l'e'd'-'t'o'n' 'e'h't' 'l'l'a' 't'n'u'o'c' 'e'W'''''''''' 'e'w' '.'p'o'o'l' ')'('r'o'f' 'a' 's't'I' '.'n'o'i't'a'c'o'l' 's'i'h't' 'd'n'i'f' 'o't' 't'n'e'm'u'c'o'd' 'e'h't' 'h'g'u'o'r'h't' 'n'a'c's' 'r'a'e'n'i'l' 'a' 's'e'o'd' 'n'o'i't'a't'n'e'm'e'l'p'm'i'''''''''''t'a't'n'e'm'e'l'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''y'l'''''''''''n''''''m'i' 'y'M'i' 'd'e'c'i'l'p's'l'a'u't'c'a' '''''''''''''d'e't'r'e's'n'i' 'e'b' 'l'l'i'w' 'm'e't'i' 'w'e'n' 'e'h't' 'e'r'e'h'w' 'n'e'h't' 'd'n'a' '-'n'e'b' 'd'l'u'o'h's' 't'n'e'r'a'p' 's'''m'e't'i' 'w'e'n' 'e'h't''''''''w'e'n' 'r'u'o' 't'a'h'W''''''''''t' 'e'r'e'h'W' '-'n'n':'t'u'o' 'e'r'u'g'i'f' 'n'a'c' 'e'w' 'o's' ','m'e't'i' 't's'i'l' 'a' 'h't'i'w' 'n'o'i't'i's'o'p' 't'a'h't' 'e't'a'l'e'r'r'o'c'' 't''''''''''''''''t'r'e's'n'i' 'o't' 'e'r'e'h'w''''' 'e'h't'''s':''i''d'l' 'a''' '' 's''D'','i' 'e'e'''h'''s't'c'i'l''e''''a'n'l' 'f' {'e'' ' it'D':''em:''d's' 'X'i'''', id''''''''''' ','e'k'i'l' 't'a'''''''''''''''''''''''''' 's'i'h't' ','t'n''''''''''''''''''''e' 'h't' 'n'i' 'm'e't'i' 'h'c'i'h'w' 'e'm'u'c'o'd' 'l'a'e'r' 'a'''''''''''''''''''a'e'r' 'a'r' 'n'i', 'D'seq, 'e'paren't't: [''e'seph''l', 0] 'e'},'h''D'''w' 's'',''''i''u'l'c'n'I'''''''''''''''''''''''''''''''''''''''''''d'e't'e'l'e'd' 'e'r'a' 's'm'e't'i' 'h'c'i'h'w' 's'k'r'a'm''''''''l'e'd' 's'a'h' 'o's'l'a' 't'i' ','h'O''''(' '.''''''w'o'n' ','''''''''''''''''''''''''''''''''''n':'s'i'h't' 'e'k'i'l' 't'n'e'm'u'c'o'd' 'a' 'e'v'a'h' 'e'w' 'o'S'n'''```javascriptnstate = [n { item: 'a', id: ['seph', 0], seq, parent: null },n { item: 'X', id, seq, parent: ['seph', 0] },n { item: 'b', id, seq, parent: ['seph', 0] },n { item: 'c', id, seq, parent: [..] }n]n```'n''n'''So imagine the user types an 'a' in the middle of the document (at position 5000). My reference-crdts implementation needs to find''So imagine the user types an 'a' in the middle of the document (at position 5000)' '''.''''''''''''''''''''''''''''''''''''''''''' 'd'n'i'f' 'o't' 's'd'e'e'n' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.')''''0'0'0'0'5' 'n'o'i't'i's'o'p' 't'a'(' 't'n'e'm'u'c'o'd' 'e'h't' 'f'o' 'e'l'd'd'i'm' 'e'h't' 'n'i' '''a''' 'n'a' 's'e'p'y't' 'r'e's'u' 'e'h't' 'e'n'i'g'a'm'i' 'o'S'n''n'''''''''''''''''''''.'t'n'e'r'e'f'f'i'd' 's'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'e'h't' 'S''Well, some of the performance improvements might also come from the''''' 'o's'l'a' fact I'm n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''My reference-crdts implementation''''''''''''''''''''''''''''''''''' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 's't'd'r'c''''C'-'e'c'n'e'r'e'f'e'r' 'y'M'''''' 's'i'h'T'n'n'.'t'r'e's'n'i' 'o't' 'n'o'i't'a'c'o'l' 'e'h't' '''''''h't'g'n'i'd'n'i'F' ':'e'c'n'a'm'r'o'f'r'e'p' 'n'i' 't'o'p's't'o'h' 'w'e'n' 'a' 'e'v'a'h' 'e'w' ','n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'u'o' 'n'i' 'm'h't'i'r'o'g'l'a' 't'h'g'i'r' 'e'h't' 'g'n'i's'u' 'e'r''''''''''''''''o'g' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''b'o'r'p' 'g'i'b' 'r'e'h't'o'n'a' 's'''e'r'e'h't' ','e'r'u't'c'u'r't's' 'a't'a'd''''m'e's' 'r'u'o' 'd'e'k'c'i'p' 'd'n'a' 's'n'o'i't'a'z'i'm'i't'p'o' 'o'r'c'a'm' 'e'h't' 'd'e'r'e'v'o'c' 'e'v'''e'w' 'w'o'N'n'n'''''''''''''''n'i'w' 'e'h't' 'r'o'f' 's'n'o'i't'a'z'i'm'i't'p'o' 'o'r'c'i'M' ''''''' '#'#'#'#'n'''n'n'''''''''''t'u'B' '.'ot using i'''''e'r'e'h' 'mmutablejs''''''''''''''' 'f'o' 'e'm'o's'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'j'e'l'b'a't'u'm'm'i''''''''''''e'g'r'e'm'o't'u'a' 'g'n'i's'u' 't'o'n' 'm'''I' 't'c'a'f' 'e'h't' 'm'o'r'f' 'e'm'o'c' 'o's'l'a' 't'h'g'i'm' 's'''''''''''''''''t'n'e'm'e'v'o'r'p'm'i' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h't'''t'i' ','l'l'e'W'','e'm'a's' 'e'h't' 'e'r'a' 's'c'i't'n'a'm'e's' 'e'h'T' ''''''''''''''''''''''''''''''''''''''''''n'o'i't'c'n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''3''''''''''','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''o'y''''S' '.'''''''''''''''''''''''''''''''''''''''''''''''''t's'i'l' '!''a' 'h't'i'w' 'T'D'R'C' 't's'i'l' 'a' 't'n'e'm'e'l'p'm'I'''''''''''''s'u'o'i'v'b'o' 'd''''''''''''''''''''''''''''''''''''''.'e'r'e'h' 't'a'h't' 'g'n'i''''''' 'e'r'u's'a'e'm' 't'o'n' 'm'''I' 'h'g'u'o'h't' ',''''''R'C' 'n'a' ''''''''''''''''''''''''''''''''''''''''''!'s'u'i'n'e'G' '?'t's'i'l' 'a' 't'n'e'm'e'l'p'm'i' 'o't' 't's'i'l' 'a' 'e's'U' '!'t'a'e'n' 's't'I' '.'4''''''n' 'd'n'a' ','e'c'i't'c'a'r'p' 'n'i' 'e'r'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''''''''y'l'l''''''''''''e'c'i't'c'a'r'p' 'n'i' ''a'e'r' '''''s't'i' 'o'S''''I''''''''''''''''''''!'t's'a'f' 't'i' 's'e'k'a'm' 's'i'h'T' ''n'u'r'''''''''''''''.'g'n'i'h't'y'n'a' 's'e'o'd''l' 'r'e'v'e'n' 't's'o'm'l'a' 's'i''''''''x'e' 's't'e'g' 'p'o'o'l' 'e'h't'''''''''''t's'o'm'l'a' 's't'i' ','p'o'o'l' ')'e'm'i't' 'r'a'e'n'i'l'(' 'a' 's'a'h' 'm'h't'i'r'o'g'l'a' 's'i'h't' 'h'g'u'o'h't'l'A' 'a'r' 'r'e'p'u's' 'e'r'a' 'n'o'i't'a'c'o'l' 'e'm'a's' 'e'h't' 'n'i''''''''''''e'm'a's' 'e'h' 't'n'i' 's't'r'e's'n'i' 't'n'e'r'r'u'c'n'o'C'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'m'e't'i' 't'n'e'r'a'p' 'e'h't' 'r'''''''t' 'e't'f'a' 't'h'g'i'r'''''''' 'e'h't' '''''''t'h't'a' 't'r'e's'n'i' 't's'u'j' 's'y'a'w'l'a' 't's'o'm'l'a' 'u'o'Y'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e't'a'r'e't'i' 'o't' 'e'v'a'h' 't'''n'o'd' 'u'o'y' ','n'o'i't'a'c'o'l' 't'''''''''''''o'l't' 'a'h't' 'n'i' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'o'n' 'e'r'a' 'e'r'e'h't' 'n'e'h'W' '.'2'''''''''' '.'3'n''''''''''''''''''''''''''''''''''''''''''''''''''https://github.com/josephg/reference-crdt''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')'e't'a'r'''2.'''''''''''''''''''''''''''''''''''''''''''''''''''''''s''''''''h'c'a'o'r'p'p'a''i'h't' ''','t'n'''','e'r'e'f'f'i'd' 'y'r''''''''''''''''' 'r'e't's'a'f'''''''''''''''''''''r'''''''''''''''''''''''''''''''''''''.''''| ------------------------''''''' ' ' ' ' ' ' '-- | ---------- |'''| automerge @ 1.0.' '0' '-' 'p' 'r' 'e' 'v' 'iew2 | 291s 'n| -----'''' ' '-' '''---' '---' '---' '---' '---' '---' '-- | ------'''' ' '---- |' ''|n'n''''''''''''''''.'r'e'l'l'a'''''''' ' ' ' ' ' ' 'm's' 'd'n'a''n| automerge @ 1.0.0-preview2 | 291s |' '''t'''n'e'i'c'i'f'f'e'-'y'r'o'm'e'm'''''''m'e' 'e'r'o'm' 'h'c'u'm' 'o's'l'a' 's't'I' ''e't's'a'f''''''''''h'c'a'o'r'p'p'a' 's'i'h't' 's'i' ''''''''''''''''''''.'r'e't't'e'b' 'x'0''''0'1' 't'u'o'b'A'''''''k'a't' 't'I' '?'r'e't't'e'b' 'h'c'u'm' 'w'o'H'n'''n| Test ''''''''''' 'e'g'r'e'm'o't'u'a'''' 'M'A''''''''''''''''')'s'j'y' '/' 'e'g'r'e'm'o't'u'a'(''' | Time taken |n| -------'| automerge @ 1.0.0-preview2 | 291s |n''''''''''''''''s''''''''''' '''1' ''3'''''''1'3' ' ' ' ' ' ' ' ' ' ''t'd'r'c'-'e'c'n'e'r'e'f'e'r'------------------- | ---------- |n| automerge @ 1.0.0-preview2 | 291s |n| JS baseline | 0.61s |nn''''''n'n'n''''''-'-'-'n'n'n'n'e'v'''''''i'd' 's'i' 'n'o'i't'a't'n'e'm'''e''''''''''''' 'e'h't' 'e'r'a'''s'i' 'o'S''l'p'm'i' 's'i'h't' 'h'g'u'o'h't' 'n'e'v'E''' This is This is *sem''''''''''''''''''''''''''''''''''''''''''''''t'i' '''''''''''' ''''T'.''''''')'r'e'z'z'u'f' 'a' 'h't'i'w' 'd'e'k'c'e'h'c' 'I'(' '.'e'g'r'e'm'o't'u'a' 'l'a'e'r' 'e'h't' 'o't' 'l'a'c'i't'n'e'd'i'antically* the same''2. This is ''''''''''''''''''''t'n'a'm'e's' 's'i' 's'i'h'T''''''''''''''''''' '.'3'n'r'e't's'a'f' 's't'I' '.'2'n'g'e't'n'i'(' '''''''''''.'n'o'i't'c'n'u'f' 't'r'e's'n'i' 'e'h't' 't'u'o' 'g'n'i'p'p'a'w's' 't's'u'j' 'y'l't's'o'm'''''' 't's'u'j' ',''''''''''''''''' 'e'm'a's' 'e'h't' 'g'n'i's'u' 's'm'h't'i'r'o'g'l'a' 'e's'o'h't' 'f'o' '3' 'l'l'a' 's't'n'e'm'e'l'p'm'i' 't'c'e'j'o'r'p' ')'s'(']'s't'd'r'c'-'e'c'n'e'r'e'f'e'r'[' 'y'M'''''''''''''''''''''''a'h' 't'c'e'j'o'r'p' 'b'u'h't'i'g' 't'a'h'T' '.'e's'a'b'e'd'o'c' 'e'm'a's' 'e'h't' 'n'i' 's'c'i't'n'a'm'e's' 'r'e'h't'o' 'd'''''''''n'a' '9'c'n'y'S' 'd'n'a' 'e'g'r'e'm'o't'u'A' ','s'j'Y''''C' 't'n'e'm'e'l'p'm'i' 'n'a'c' 'u'o'Y' '.'1'n'n':'h'c'a'o'r'p'p'a' 's'i'h't' 't'u'o'b'a' 's'g'n'i'h't' 'l'u'f'i't'u'a'e'b' 'w'e'f' 'a' 's'''e'r'e'h'T''''''''''''''''''''g'n'i'h't' 'l'u'f'i't'u''''''''''i't'u'a'e'b' 'e'h'T'n'n'u''''''''''*''''''''''''*''''''''''''e'm'a's' 'e'h't' 'y'l'l'a'c'i't'n'a'm'e's' 's'i'''''''m'e'l'p'm'i' 's'i'h'T'f' ''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'e'm' 'f'o' 's's'o'b' 'e'h't' 't'o'n' 'e'r'''u'o'Y' '.'t'i' 'e'k'i'l' 'l'e'e'f' 'I' 'f'i' '''''''''''''''''''''m'o'c''''''''v' 'e'b' 'o't' 't'n'a'w' 'u'o'y' 'f'i' '''' 's'e'n'i'l' '0'5' 'r'O''''n'o'i't'r'e's'n'i''''''''''''''''''' 'n'i' 'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''m'h't'i'r'o'g'l'a' 'e'l'o'h'w' 'e'h't' 'e't'i'r'w' 'n'a'c' 'u'o'Y'''''''''''''''''''''''g'n'i't'r'e's'n'i' 'y'l'l'a'u't'c'a' 'e'r'''e'w' 'e'r'e'h''This code sounds complex, but it ends up being about 20 lines of code, [written in long form here](https://github.com/josephg/reference-crdts/blob/fed747255df9d457e11f36575de555b39f07e909/crdts.ts#L401-L459).'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''['''''''''''''''''''''''''''https://github.com/josephg/reference-crdts/blob/fed747255df9d457e11f36575de555b39f07e909/crdts.ts#L401-L45''''''''''''''e'd'o'c' 's'i'h'T' '.')'9'(']'e'r'e'h' '''']'''m'r'o'f' 'g'n'o'l' 'n'i''''''' 'g'n'i's'u' 'n'e't't'i'r'w'''''''i'r' ','e'd'o'c' 'f'o' 's'e'n'i'l' '0'2' 't'u'o'b'a' 'g'n'i'e'b' 'p'u' 's'd'n'e' 't'i''''s't'i' 't'u'b' ','x'e'l'p'm'o'c' 's'd'n'u'o's' 'e'd'o'c' 's'i'h'T'n''w' the positional insert location'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i't'a'c'o'l' 't'r'e's'n'i' 'l'a'n'o'i't'i's'o'p'''n'i' 'e'h't' 't'u'o' 'e'r'u'g'i'f' 'o't' 'e'e'r't' 'e'h't' 'p'u' 'k'l'a'W' ''''W'.'3'n's'n'I'''''''o't'n'i' '''''''''''''''''''''n'e'r'd'l'i'h'c' 'f'o' 't's'i'l''''''''''''''''.'1'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'e'r't' '''''''''''h't'i'w' 'n'o'i't'a'''s'''''''e'g'r'e'm'o't'u'A' 'e'c'a'l'p'e'r' 'o't' 'g'n'i'o'g' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'''''''y'c'n'a'f' 'a''n''''n'n'n'n''i't'n'e'm'e'l'p'm'i'''''''''''''''''''''''''.'t'r'o's' 'n'o'i't'r'e's'n'i' 'n'a' 'g'n'i'o'd' 'e'r'''e'w' 'y'l'l'a'c'i's'a'B'n'n'e'r'e'h't' 't'i' '''s''''''g'n'i'p'' '''''''''''''''''''''''''''''''''''''''''''''''''t'r'e's'n'I' '.'3'n'm'e't'i' 'w'e'n' 'e'h't''''t' 'e'r'o'f'e'b' 'e'm'o'c'''''''m'o' 'd'l'u'o'h's' 'h'c''''''' 'h'i'h'w' ','t's'i'l' 'e'h't' 'h'g'u'o'r'h't' 'e't'a'r'e't'I''''''''''''''''s'm'e't'i' 'r'e'v'o' 'p'i'k'S'''''' 'n'a'c'S' '.'2'n'm'e't'i' 't'n'e'r'a'p' 'e'h't' 'd'n'i'F' '.'1'n'n':'s't'i' ''''''''''''''''''''''''''''''''''''''''''''''h'c'a'o'r'p'p'a' 't's'i'l' 'e'h't' 'h't'i''''t'W'n'n't'o'p's' 't'h'g'i'r'''''''p'o'r'p'p'a' 'e'h't' 'n'i' 'n'e'r'd'l'i'h'c' '''s't'n'e'r'a'p' 'e'h't' 'o't' 'm'e't'i' 'w'e'n' 'e'h't' 'd'd'A'''''d'n'i'F''''d'd'A' '.'2'n'm'e't'i' 't'n'e'r'a'p' 'e'h''''''''t' 'd'n'i'F' '-'n'n':'s'i' 'r'e'w''''e's'n'a' 'e'h't' 'e'g'r'e'm'o't'u'a' 'h't'i'W' '?'s'i'h't' 'e'k'i'l' 't's'i'l' 'a' 'o't'n'i' 'm'e't'i' 'w'e'n' 'a' 't'r'e's'n'i' 'u'o'y' 'o'd' 'w'o'h' ','s'i' 'n'o'i't's'e'u'q' 'e'h'T''''[' ':' 'h'c'i'h'w' ''''''l'l'u'n' '''''''''''']'0' ','''h'p'e's'''[':'',''''''''': ['seph', 0]'''''''''''''''''''''''''''l'l'u''''''']'.'.'[' ''''''''''' 'y'''l'l'a'u't'c'A'('''''''''''''''''''''''''''''''''''''''''''''''t'I' '.'y'l'''''''''''''''''''''''''''''''''''''y'l't'h'g'i'l's' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n')'!'''''''''''''''''''''''''''''''''''.'d'a'e'h'a' 'g'n'i'p'm'u'j' 'e'r'''e'w' 't'u'b' ','y'a'r'r'a' 'n'a' 'f'o' 'd'a'e't's'n'i' ''''''' ','t's'i'l' 'd'e'k'n'i'l' 'a' 's'e's'u' 't'i' 'd'n'A''''''t'u'B' '.'''''''''t'h'g'i'l's''''b' ',''''''''''''''''''''A'G'R' 'n'a'h't' '')'s'c'i't'n'a'm'e's' 't'n'e'r'e'f'f'i'd' 's'a'h' 't'i''''d' 'o's'(' 'T'D'R'C' 't'n'e'r'e'f'f'i'd' 'a'''''''g'l't'n'e'r'e'f'f'i'd' 's'g'n'i'h't' 'w'e'f' 'a' 's'e'o'd' 'y'l'l'a'u't'c'a' ''''''''''''''''''''''''t'n'e'r'e'f'f'i'd' 'a' 's't'n'e'm'e'l'p'm'i' 's'j'Y'n''''''''''''''.'.'.' ':'n' ':'''''''''''''''''''''''''''''b' ','s'i'h't' 'd'e't'n'e'v'n'i' 'I' 'm'i'a'l'c' 'd'l'u'o'c' 'I' 'h's'i'w' 'I' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 's'j'Y' '.'s'j'Y' '-' 'n'o'i't'a't'n'e'm'e'l'p'm'i' 'T'D'R'C' 'e't'i'r'o'v'a'f' 'y''''''' 't'm''''''' '-' 's'j'Y' 'm'o'r'f' 'l'a'e't's' 'n'a'c' 'e'w' 'h'c'i'h'w' 's'T'D'R'C' 't'n'e'm'e'l'p'm'i' 'o't'L'g'n'i'z'i'm'i't'p'o' 't'n'i'o'p' 'o'n' 's'''e'r'e'h't''''''''''r'c'i'm'm' 'e'h't' 'e'c'n'i's' ',''t'i''b' 'o't' 's'n'i'w' 'e'c'n'a'm'r'o'f'r'e'p' 'f'o' 's't'o'l' 's'''e'r'e'h'T' '':'g'n'i'n'u't' 'e'c'n'a'm'r'o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s't'i' 's'i' 'm'e'l'b'o'r'p' 't's'e'g''''''''''''''''''''' 'y'a'w' 'r'e't't'e'b' 'a' 's'''e'''''''''''''a' 's'''r'e'h'T'''''t''' 'o'S''g'i'b' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'p'i'r'c's'a'v'a'j'''''''''''''''''''''0' ',''''0' ':'''h'p'e's'''']'['''''''}'{''''''']'.'.'[' ':' ':'''''''''''''''''''''''''''''''']'.'.'[' ':'''''''''X''''''''''' '''''''''']'.'.'[' ':''''''',''''''''''''''''''''e'k'i'l' ''''''''''''''''e'k'i' 'l'g'n'i'h't'e'm'o's' 'n { item: 'b', id, ''''''''''''''''''''''''''''',''''''''''''''''''''':''```javas','criptnstate ='[''' {n { item: ',''a', id,''''''''}' '' ''''''' ''','':'t'n'''''e'r'a'p''children'' '':'}' ' '['''''''''''t'' ' ''':'n't'''' 'n'e'e'''}''r'''' 'r'a''a'''p' seq'', c'' 'p'h':''}'ild't' ''ren'n': ''['e'n 'r''' {'a'' ' item':': 'X''t', id,'n' seq,'e' chil'r''p'dr'a'en: []},n { item: 'b', id, seq, chi'p'ldren: [n { item: 'c', id, seq, children: []}n ]}']'''n ]}n}n```n't's'i'l' 't'a'l'f' 'e'l'g'n'i's' 'a' 'n'i' 's'm'e't'i' 'e'h't' 'l'l'a' 't'u'p' 'l'l'''e'W'n'n'seq, children: [''n { item: 'c', id, seq, children: []}'''''''''''''''''''' { item: 'a', id, seq, children: [' { item: 'b', id, seq, children: [' { item: 'c', id, seq, children: '''' '}'''')']'n '}''[ ]'n'n'' '' '' ''c''''''''b''''''''''''''' ]''''''' ','q'e's''''' '}']''n 'n ' '[' '' ','d'i'''''''''':'n'e'r'd'l'i'h'c' ','''a''' ':'m'e't'i' ''''''n '' ''''i'{' '''''}''n 'n ' '{' '=' 'e't'a't's''''''`'`'`'n'n'n'`'`'`'n'n':'f'o' 'd'a'e't's'n'i' 'o'S' '.'t's'i'l' 'a' 'h't'i'w' 'e'e'r't' 's'''e'g'r'e'm'o't'u'a''''''''r'e'm'o't'u'A' 'g'n'i'c'a'l'p'e'r' 's'i' 'e'r'e'h' 'e'k'a'm' 'l'l'''e'w' '''''''''''''''' 'e'r'a' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'x'e'l'p'm'o'C' '''''''''''''''''''e'g'n'a'h'c' 't's'r'i'f' 'e'h'T'''''''''''''''''''' 'r'e't't'e'b' 'a' 's'''e'r'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''T'D'R'C' ')'r'e't't'e'b' 'h'c'u'm'(' 'r'e'h't'o'n'a''''''''''(' 'r'e't'h'o'n'''''''(' '''' 'a' 'e't'o'r'w' 'o'h'w' '-' 's'n'h'a'J' 'n'i'v'e'K' '.'t'h'g'i's'n'i' 's'i'h't' 'r'o'f' 't'i'd'e'r'c' 'e'k'a't' 'd'l'u'o'c' 'I' 'h's'i'w' 'I'n'n'.'e'r'u't'c'u'r't's' 'a't'a'd' 'd'e's'a'b' 'e'e'r't' 'x'e'l'p'm'o'c' 's'''e'g'r'e'm'o't'u'a''''''''''e'g'r'e'm'o't'u'A' 's'i' 'm'e'l'b'o'r'p' 't's'e'g'g'i'b' 'e'h't' ','e's'a'c' 's'i'h't' 'n'i' 'd'n'A''''''' 'n'i' 's'A' '.'s'n'o'i't'a'z'i'm'i't'p'o' 'o'r'c'a'm' 'h't'i'w' 't'r'a't's' 'o't' 'e'v'a'h' 's'y'a'w'l'a' 'e'w''''''''''''''''''''''''''s'a'h' 's'y'a'w'l'a' 'p'e't's' 't's'r'i'f' 'e'h't' 'g'n'i'h't' 'f'o' 't'r'o's' 's'i'h't' 'h't'i'W''''i'''''''''''''''''''t'n'a't'r'o'p'm'i' 't's'o'm' 'e'h'T''''n''n''''n'n'n'n'f'r'e'p' 'h't'i'w' 'g'n'i'y'a's' 'd'l'o' 'n'a' 's'''e'r'e'h'T''''''''''''''''''''''''''''''''''''''g'n'i'n'u''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'n'i'm' 'n'i' 'e'c'n'a'm'r'o'f'r'e'p' 'h't'i''''''''''''' 'h'i't'w' 'n'e't't'i'r'w' 'r'e'v'e'n' 't's'u'j' 's'a'w' 't'i' ','y'l'l'a'e'R'n'n't' 'e'c'n'a'm'r'o'f'r'e'p' 'h't'i'w' 'y'h'p'o's'o'l'i'h'p' 'y'M''''''p' 'e'h'T'''''''''r'e'v'e'n'e'h'W''''''''e'v'e'n'e'h'w'n'n'''''''''''''''''''''''''''''''''There's an old saying with performance tuning:nn> You can't make a program faster. You can only make it do less work.'''''''''''''''''''''''''''''''''''''''''''''''''''n''''''''''''''''''''''''' 'k'o'o'l' 'a' 'e'k'a'T' ':'''':'A' 't'i'b'i'h'x'E''''T''?'e'r'e'h' 'k'r'o'w' 's's'e'l''''''''''''''''' 'f'o' 'k'r'o'w' 'e'h't' 'l'l'a' 'o'd''''c'''''''''''''l' 'o'd''''''''''*' 'o'd'*' 'r'e't'u'p'm'o'c' 'e'h't' 'e'k'a'm' 'e'w' 'o'd' 'w'o'h'''''''n'a'w' 'e'w' 'o'S'n'''nn'n'''''''' 'f'o' 'l'u'f'd'n'a'h' 'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'r'e'h'T''n'n''''''''''''''j'''''''''''''''''''''' 'e't'i'r'w'-'n'o'-'y'p'o'c''''''''''''''''''''''''''''''''''''''''''''''''''''''o't' 's'e'l'g'g'u'r't's''''''''''''V'''''' '8''''''C'G' '&' ''''''s'e's'u' 'v'''''''''''''''''''''''''''''''''''''''''t't''''u'b' ','s'i' 't'i' 't'o'h' 'w'o'h' 'w'o'n'k' 't'''n'o'd' 'I' '''''''''''''*''''''''''''''*''''''''''''''''''''''''''' 'g'n'o'r'w' 'e'h''''''''''''''''''''''''''''!'n'o'o's' 's'i'h't' 't'u'o'b'a' 'k'l'a't' 'l'l'''e'w' ''t' 's'k'c'i'p'''''''''''''''''''''''''''''''''''''''''''''''''''''o't' '''''''''g'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'i' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 't's'r'i'f' 'd'n'a'''''''' 'e'r'o'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'s'i'h't' 'o'd' 'o't' 'y'a'w' 'r'e't't'e'b' 'a' 's'''e'r'e'h't' 't'u'b' ','s't's'i'l' 'd'e't's'e'n' 'f'o' 'h'c'n'u'b' 'a' 'e'r'o't's' 'o't' 's'm'e'e's' 'e'g'r'e'm'o't'u'A'''''''''''''e'g'r'e'm'o't'u'a' 'n'I''''''''''''''' '.'e'r'u't'c'u'''''''u'c''''u'r't's' 'a't'a'd' '&' '''''''''''''''''''''''''''''''''''''''''''h'T' '.'m'h't'i'r'o'g'l'a' 'e'h't' 's'i' 'x'''''''i' 'i'f' 'o't' 'g'n'i'h't' 't's'e'g'''' 'g'i'b' 'e'h'T' '.'n'o'i't'c'a'r't's'i'd' 'g'i'b' 'a' 'l'l'a' 's'i' 's'i'h't'''''''''''l'a''''''''''''''''''''''''''''a' 'e'h't' 's'i' 'e'r'e'h' 'x'i'f' 'o't' 'g'n'i'h't' 'e'r' 'e'h't' 't'u'B''''''''''t's'r'i'f' 'e'h'T''''''''''''''''''''''''''''''''''''''''''''''''o's''''d'a'e'r' 'l'a'e'r' 'e'h'T' '.'g'n'i's's'e'r'd' 'w'o'd'n'i'w' 's'i' 's'i'h't' 'l'l'a' 't'u'B'''''''''' 'e'k'a'm' 'r'o'''''T'''''t''' 'f'I'''''''' 'a''''''''''''''''''''''''''''''''''.'Y'''''''''''''''d'e't'r'o's' 'y'd'''a'e'r'l''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''`'''''''''''''''''''''''''''n'e'h't' '''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'a'h't' 's'i' 'w'o'l's' 's'i' 'e'g'r'e'm'o't'u'''''''u't'a' 'n'o's'a'e'r' 't's'e'g'g'i'b' 'e'h'T'''''''''''''''''''''''''''n'o's'a'e'r' 'r'e'g'g'i'b' 'h'c'u'm' 'e'h't' 't'u'B'''n'n's'e'r'u't'c'u'r't's' 'a't'a'D''''g'l'A' '#'''' '#'#'#'n'n'''''''!'!'!''''p'p'o't'S' '!'o'o'o'N'''''''''''''''!'t'a'h't' 'o'd' 't'''n'o'D''''''''''''''''''''''''''''''''''''''t''''n'n'n'a't'u'p'm'o'c' ''''''''''''.'e'l'b'a'd'i'o'v'a' 'l'l'a' 's'i' 'k'r'o'w' 's'i'h'T' '''' '.'n'i'a'g'a' 't'i' 's'p'a'r'w'n'u'''''' 't's'u'j' 'h'c'i'h'w' '-' '''`'e'r'a'p'm'o'C't'r'o'p'm'a'l' 's'e'h'c't'a'm' 't'n'e'm'u'g'r'a' 'e'h't' 'o's' 't's'u'j' ','p'a'M' 's'j'e'l'b'a't'u'm'm'i' 'n'''' 'a' 'o't'n'i'''''' 'h't'i'w' 'd'I'd'l'i'h'c' 's''''''''''d'e'p'p'a'r'w' 'e'd'o'c' 's'i'h'T' '-'n''a' 'n'a'''''''''''''''' 'e'l'g'n'i's''''''''''''''''''''''''''''''' 'r'e't's'a'f' 'h'c'u'm'''''''''''''''''.'p'o'o'l' 'r'o'f' 'a' 'h't'i'w' 't'a'h't' 'o'd' 'n'a'c' 'u'o'y' ','t'''''''''''''''t's'i'l' 'e'h't' 'o't'n'i' 'm'e't'i' 'w'e'n' 'e'h't' 't'r'e's'n'i' 'o't' 's'i' 'l'a'o'g' 'e'h'T' '-'n' ',''''''''''''''''''''''''''''''''''''''''.')'e'u'l'a'v' 'n'r'u't'e'r' 'e'h't' 'e'''''''e' 't'a'g'e'n' 'r'o'(' '`'e'r'a'p'm'o'C't'r'o'p'm'a'l'`' 'f'o' 's't'n'e'm'u'g'r'a' 'e'h't' 't'r'e'v'n'i' 't's'u'j' 'd'l'u'o'h's' 'e'd'o'c''''''''''''j' 'd'l'u'o'c' 's'i'h't' ','g'n'i''')'('e's'r'e'v'e'r' 'n'e'h't' ','g'n'i't'r'o's' 'n'a'h't' 'r'e'h't'a'R'''n'i'h't'y'n'a' ''y'a'w' '''''''''''''''''''''''''''''''''''''''''''''''j' 'e'h't' 'p'a'w's' 't's'u'j' 'y'l'i's'a'e' 'd'l'u'o'c' 'e'd'o'c' 'e'h'T''''''''''''''''''''''t's'u'j' 'y'l'i's'a'e' 'd'l'u'o'c' 'u'o'Y' '.'t'r'o's' 't's'e'w'o'l's' 'e'h't'''''w'o'l's' 's'i' 't's'i'l' 'd'e't'r'o's'-'i't'n'a' 'n'''''''''''''' 's'i' ''' 'f'o' 'e's''''''''''''''''' ','t'l'u's'e'r' 'a' 's'A' '.''u' 'y'v'a'e'h' 's'e'k'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''m'o'r'f''''r'''''n'i' 'e'd''function lamportCompare(op1, op2) {n return opIdCompare(op1.get('opId'), op2.get('opId'))n}n'n''o'c''''''''''''''''''''''''':'e'g'r'e'm'o't'u'a' 'm'o'r'f' 'n'o'i't'c'n'u'f' 's'i'h't' 't'a' 'k'o'o'L''.'t'p'i'r'c's'a'v'a'j''''''s'a'v'j'a' 'n'i' 'w'o'l's' 'a'r't'x'e' 'e'r'a' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'x'e'l'p'm'o'C'''''''''''t'p'i'r'c's'a'v'a'J'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''w'o'l's' 'e'r'a' 's'n'o'i't'a'r'e''!''''''''''''''''''''''''''''''''''''''''''''''''''''' 'f'o' 'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'o'i''''''''''n'i'o't'c'n'u'f' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''7''''6''' 't'o'p's' 'n'a'c' '''''''t'''''''''''''''''''s'e'r'u's'o''''''''y'd'a'e'''''''''''-'e's'r'e'v'''e'''r''-' ''''r'l'a' '')'('''')'''l'c' '2'('''' 'e'h't' '''''''''''''''''''''`''''''''''''''''''''''''''`'n'I''''O't'e'g'`' 'o't''''''''''''''t'c'e'f'f'e' 'o'n' 's'a'h' 't'n'e'm'u'g'r'a' '''`')'('t's'i'L' 'e'h'T' '-'n''''''''''''''''''''''''''''''''''''''''''f'o' 'e's'r'e'v'n'i' 'e'h't' '''' ''''''''''''''''''''''''''t's'i'l' 'a' 'g'n'i't'r'o'S' '.''''''''''''''''''''''''''''''''''''d'e'l'l'a'c' 's'i' 'd'o'h't'e'm' 's'i'h't' 'e'r'o'f'e'b' '''''''''''e'r'a'p'm'o'C't'r'o'p'm'a'l' 'y'b' 'd'e't'r'o's' 'y'd'a'e'r'l'a' 'e'r'a' 's'm'e't'i' 'e'h'T' '-'n''')'''''''''''''''''''''.')'d'e't's'i'o'h' 'e'b' 'd'l'u'o'h's' '2' 'h'g'u'o'h'T'(' '''''''''''''''''''''''''''''''''''''''''''s''('''e'r'''''d'n'i'f'u's'o'l'c' 'o'w't' 'e'h't' 'e'd'u'l'c'n'i' 't'''n'o'd' 'u'o'y' 'f'i' '5' '.'''' 'I' ''''''' 'I'''''''''''''''''''''''''''''''''''''''''''''('''''''''''''''''''''')'?'l'l'a' 'm'e'h't' 't'o'p's' '''u'o'y' 'n'a'C' '.'n'o'i't'c'n'u'f' 's'i'h't' 'n'i' 's'n'o'i't'a'c'o'l'l'a' '6''''''''''''s't'c'e'j'b'o' '5' 'e'r'a' 'e'r'e'h'T' '-'n'n':'s'i'h't' 't'u'o'b'a' 'w'o'l's' 's'g'n'i'h't' 'y'n'a'm' 'o's' 'e'r'a' 'e'r'e'h'T' '''''''''''''''''''''''''function insertionsAfter(opSet, objectId, parentId, childId) {n let childKey = nulln if (childId) childKey = Map({opId: childId})nn return opSetn .getIn(['byObject', objectId, '_following', parentId], List())n .filter(op => op.get('insert') && (!childKey || lamportCompare(op, childKey) < 0))n .sort(lamportCompare)n .reverse() // d''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'d'e't'r'o's' 'e'b' 'd'l'u'o'h's' 'm'e't'i' 'n'a' 'f'''''''f'n'o' 'n'e'r'd'l'i'h'c' 'e'h't''''''''''t'r'o's' 'o't' 'w'o'h' 't'u'o' 'e'r'u'g'i'f' 'o't' ','t'r'e's'n'i' 'h'c'a'e' 'n'o' 'd'e'l'l'a'c' 's'i' 's'i'h'T'n'n'escending ordern .map(op => op.get('opId'))n}'''`'`'`'n''''n'n't'p'i'r'c's'a'v'a'j'`'`'`'n'n':'e'g'r'e'm'o't'u'a' 'm'o'r'f' 'n'o'i't'c'n'u'f' 's'i'h't' 'n'i' 'n'o' 'g'n'i'o'g''''o' 'f'f'u't's' 's'i'h't' 'f'o' 't'o'l' 'a''''''''''''''''''''''''''''''''' 't'a' 'g'n'i'k'o'o'l' 's'e'u's's'i' 'e's'e'h't' 'f'o' 'e'm'o's''''''''''''''e's'e'h't' 'f'o' 't's'o'm' 'e'e's' 'n'a'c' 'u'o'Y'n'n's'u'a'c'e'b' 'w'o'l's' 'a'r't'x'e' 'e'r'a' 's'e'r'u't'c'u'r't's' 'a't'a'd' 'x'e'l'p'm'o'C'p'o' 'e't'''''''''''''''''''''''''''''''''y'a'w'y'n'a' ''''''' 'e't's'a'f' 'y'r'e'v' 't''''''''''''''' 't'''n'n''''n's'i' 't's'u'j' 's'a'p'+'y'p'o'c' 'e'r'e'h'w' ','''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'p'i'r'c's'a'v'a'J' '.'4''''n'n'.''''!'e'k'a't's'i'm' 'e'm'a's' 'e'h't' 's'e'k'a'm' 'e'g'r'e'm'o't'u'A' '?'r'e'i'l'r'a'e' 't'u'o'b'a' 'd'e'k'l'a't' 'I' 'r'e'p'a'p' 't'a'h't' 'r'e'b'm'e'm'e'R' '.'m'e't'i' 'e't'a'r'a'p'e's' 'a' 's'a' 'r'e't'c'a'r'a'h'c' 'd'e't'r'e's'n'i' 'h'c'a'e' 's't'a'e'r't''''''''''''s''''3. Automerge is written''''''''''''''''''''''''' 'n'e't't'i'r'w''''s' 's'i' 'e'g'r'e'm'o't'u'A'''''''''g'r'e'm'o'u't'A' '.'3'n''''''''''''')'!'!'(' 'A'G'R' 'r'o'f' 'e'r'u't'c'u'r't's' 'a't'a'd' 'g'n'o'r'w' 'e'h't' 's'e's'u' '''''s data structures aren't very good.'''''''''''''''''''''''''''''''''''''''''' 'a't'a'd' 'f'o' 't'o'l' 'a' 'o'd' 'o't' 's'd'e'e'n' 'a'm' 't'a'h't' 'e'd'o'c''''''''''''s'j'e'l'b'a't'u'm'm'i' 'e'z'i'm'i't'p'o' 'o't' 'w'o'h' 'a'e'd'i' 'o'n' 's'a'h''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' 'e'g''''''''''''.''''''''''''''''''''''''''''''''''''''''''''''''.'d'o'o'g' 'y'r'e'v' 't'''n'e'r'a' 's''''s'e'r'u't'c'u'r't's' 'a't'a'd' 's''''''' 'd'''''e'g'r'e'm'o't'u'A' '.'2'n'e'c'n'a'm'r'o'f'r'e'p''a's'u' 'y'r'o'm'e'm' 's'e's'a'e'r'c'n'i'''''''''''''' '''''''''''' 's'e's'a'e'r'c'e'd' 'y'l'l'a''''''' 's'c'i't'a'm'a'r'd' 't'i' 'd'n'a' 's'j'e'l'b'a't'u'm'm'i' 'y'b' 'd'e's'u'f'n'o'c' 'y'l'l'a'e'r' ''''''''''''s't'e'g'''''''''''''s'i'h't' '*'s'e't'a'h'*' 'r'e'z'i'm'i't'p'o' 'e'h't' 't'u'b' ','y't'i'l'a'n'o'i't'c'n'u'f' 'f'o' 't'e's' 'l'o'o'c' 'a' 's'i' 's'i'h'T''''' 'e'h'T' '.''''''''''r'o'f' ''''''''''''s't'c'e'j'b'o' ''''''''''''t'p'i'r'c's'a'v'a'j' 'n'i' 's'c''''''' 's'i't'n'a'm'e's'''''' 'e'k'i'l'-'e'r'u's'o'l'c' 'u'o'y' 's'e'v'i'g' 'h'c'i'h'w' 'y'r'a'r'b'i'l' 'a' 's'i' 's'j'e'l'b'a't'u'm'm'I' '.'s'j'.'e'l'b'a't'u'm'm'i' 'f'o' 'e's'u' 'y'v'a'e'h' 's'e'k'a'm'''''' 's'e's'u' 'e'g'r'e'm'o't'u'A' '.'1'n'n':'s'n'o's'a'e'r' '3' 'r'o'f' 'w'o'l's' 's'i' 'e'g'r'e'm'o't'u'A''''A'n''?'w'o'l's' 'e'g'r'e'm'o't'u'a''''''''r'e'm'o'u't'a' 's'i' 'y'h'W' '#'#'#' ' ''''' ' ' ' ' '' ' ' ' ' ' ' ' ' ' ' ''s'u'o'i'v'b'o' 'e'h't' 'n'i''| automerge @ 1.0.0-preview2 |'''1'9'2'''' 'S'J''''''''''1'6'.'0''''e'n'i'l'e's'a'b''' 270s |n''''''''''''t'i'l'p's''' 'd'n'a' 'g'n'i'r't'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s' 't'p'i'r'c's'a'v'a'j' 'a' 'e't'a'e'r'c'''''''''''''''''' 's''''''''''''''''''' '2'w'e'i'v'e'r'p'-'0'.'0'.'1' '@''''''''''s't'p'i'r'c's'a'v'a'j' 'e's'u'''''''''' ')'('e'c'i'l'p's' 't's'u'j' 'e'w' 'e'r'e'h'w' ','n'o's'i'r'a'p'm'o'c' 'e'n'i'l''''o'e's'a'b' 'e'l'p'm'i's' 'a' 'e'd'u'l'c'''''''c' 'n'i' 'o't' 'g'n'i'o'g' 'o's'l'a' 'm'''I' '.'''':'e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't' 's's'e'c'o'r'p' 'o't' 's'e't'u'n'i'm' '5' 'r'e'd'n'u' 'e'l't't'i'l' 'a' 's'e'k'a't' 'e'g'r'e'm'o't'u'a' ','e'r'o'f'e'b' 'd'i'a's' 'I' 's'A''''w'o'n' 'r'o'f' 'e'n'i'f' 'y'l'b'a'b'o'r'p' 's't'a'h't'''''''''''''''''' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c''''''''''''' 's't'i' 't'u'b' ',')'r'e's'u' 'e'l'g'n'i's' 'a' 't's'u'j' 's't'i'(' 'e'c'a'r't' 's'i'h't' 'n'i' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'o'n' 's'''e'r'e'h'T' '''''''''''''''''''''''''''''''''''''''''''''''''''''f'r'e'p'-'e''''''h''' 'o'S' How does'''''' '|'''''''''''''''''''''| ------- | ---------- |n''''''''''e'g''''s'0'7''''6'2''''r'e'm'o't'u'a'''''''''''''''''''''''''|' '-'-'-'-'-'-'-'-'-'-' '|' '-'-'-'-'-'-'-' '|'n'|' 'n'e'k'a't' 'e'm'i'T' '|' ' ' ' '''''t's'e'T'n'''''''e'g'r'e'm'o't'u'a''' it do?'''g'''r'e'm'o't'u'a'''''''''a'r'e'm'o'u't'a' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'?'o'd' 't'i' 's'e'o'd' 'w'o'H' '''' '.'r'e'p'a'p' 'c'i'm'e'd'a'c'a' 'n'a' 'g'n'i't'i'r'w' 'e'l'i'h'w' 'e'k'o'r't's'y'e'k' 'h'c'a'e' 'd'e'd'r'o'c'e'r' ''''''t's'u'j' 'n'i't'r'a'M''''m' 'e'r'e'h'w' 'y'r'o't's'i'h' 'g'n'i't'i'd'e' 'n'a' 's'i' 's'i'h'T'''''''''''c'e'r' 'n'i't'r'a'M' '.'''''''''''https://github.com/automerge/automerge-perf')'/'(']'e'c'a'r't' 'g'n'i't'i'd'e' 's'''n'i't'''''''n'i'r'a'M'[' 'g'n'i's'u' 'm'''I' ','g'n'i'k'r'a'm'h'c'n'e'b' 'r'o'F'''''''''' 'e'W'''''n'n'n'n'n''s'e'k'i'Y' '.'''''''''''''c'b'a''' 'g'n'i'p'y't' 'r'e't'f'a' 'e't'a't's' 'l'a'n'r'e't'n'i' 's''''''s'e'g'r'e'm'o't'u'a' 's'i' 's'i'h't''''''''''''''''e'v'a'h' 'y'l't's'e'n'o'h''''h' 'I' '-''i't'l'''''''''''''*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '-' 'o's' 'k'n'i'h't' 'I' 't's'a'e'l' 't''''c'A' '''''''''''''''''''''''''''''''''''''''''''''p'u' 'k'o'o'l' 'e'w' ','s'n'e'p'p'a'h' 't'r'e's'n'i' ''n'n'a' 'e'm'i't' 'h'c'a'E' '.'y'a'w' 'd'e's'a'b' 'e'e'r't' 's'u'o'i'v'b'o' 'e'h't' 'n'i' 't'i' 's'e'o'd' 'y'r'a'r'b'i'l' 'e'g'r'e'm'o't'u'a' 'e'h'T' '?'e'g'r'e'm'o't'u'a' '*''''''''''n'''''''''''''''''''''''''n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'n'e'm'e'l'p'm'i' 'u'o'y' 'd'l'u'o'h's' 'w'o'h' 'o'S'''''''''''.'n''l'a's'r'e'v'a'r't' '''''''''.'h'c'r'a'e''''o's' 't's'r'i'f'-'h't'p'e'd' 'a' 'h't'i'w' 'e'e'r't' 'e'h't' 'g'n'i'n'e't't'a'l'f' 'm'o'r'f' 't'e'g' 'u'o'y' 'r'e'v'e't'a'h'w' 's'i' ''''''''''''' 's'i' 'e'u'l'a'v' 's'''''' 't's'i'l' 'e'h'T' '-''n'n'.'D'I' 'y'b' 'n'e'h't' 'r'e'b'm'u'n' 'e'c'n'e'u'n''q'e's' 'y'b' 't's'r'i'f' 'm'e'h't' 't'r'o's''u'm' 's'i'h't' 's'e'v'l'o's' 's'j'Y' '.'h'c'a'o'r'p'p'a' 'y'l'n'o' 'e'h't' 't'''n's'i' 's'i'h'T''''s'j'Y'n''n' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'- Whenever an item has children, put all the''p''''''''''''''''''''''''''''''''''''''''''' 'e'h't' 'l'l'a' 't'u'p' ','n'e'r'd'l'i'h'c' 's'a'h' 'm'e't'i' 'n'a''''''h' 'u'o'y' 'r'e'v'e'n'e'h'W''u'''''''''''''n''''e'v'a'h' 's'm'e't'i' 'o''n'w't' '' 'y'a'w' 'e'h't' 'l'l'a' ','s't'n'e'r'a'p' 's't'i' 'o't' 'm'e't'i' 'h'c'a'e' 'm'o'r'f' '''- If'''''' 'f'I' '-'n'e'e'r't' 'e'h't' 'd'l'i'u'B'''''''''''''''''e'e'r't' 'e'h't'n'' 'e'n'i'g'a'm'I'''''''''''''''''''''n''''''''''''''''''''t'n'e'r'a'p' ''''''' 'e's't'i' 'r'e't'f'a' 't'h'g'i'r''''''''''s't'i' 'r'e't'f'a' 's'e'o'g' 'g'n'i'h't'y'r'e'v'E' '-'n'n':'e'r'a' '*'s'c'i't'n''n'a'm'e's'*' 's'''e'g'r'e'm'o't'u'A'Insert 'c' id `(s'n'e', '2'''seq: *0*'ph, 2)` after `(seph, 1)`n''*'r'n''e'b'm'u'n' 'e'c'n'e'u'q'e's'*' 'a' 'd'e'''' 'l'l'a'c' '''',''''i' 'a'r't'x'e' 'n'a tiny bit more data to each item.'r `ROOT`n- Insert 'b' id `(seph, 1)` after `(seph, 0)`n- Insert''Note the 'x' an''''''''''''''''''''''t'n'e'r'a'p''''''''''s'e'm'i't'e'm'o's' '' ''''r'e'm'a's' 'e'h't' 'e'r'a'h's''''''''''''''''''''''''''''''t'a'h't' 'o'd' 'o't' 't'n'a''''*'w' 't'''n'''o''*'d' 'e'w' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'m'e't'i' 'h'c'a'e' 'o't' 'a't'a'd' 'e'r'o'm' 't'i'b' 'y'n'i't' 'a'''''''''''''''''' 'o't' 'm'e't'i' 'a'r't'x'e' 'n''''''''''u'q'e's' 'a'''''''''''''''''n'o'i't'a'm'r'o'f'n'i' 'e'r'o'm' 'g'n'i'd'd'a' 'y'b' 's'i'h't' 's'e'v'l'o's' 'A'G'R' '.'''c'b'X''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a''' 'h't'i'w' 'p'u' 'd'n'e' 's'y'a'w'l'a' 'd'l'u'o'h's' 'e'w' 'e'r'a' 's'D'I' 'e'h't' 't'a'h'w' 'r'e't't'a'm' 'o'n'''''''''''''''''''''' 'd'l'u'o'h's' 'm'e't'i' 'w'e'n' 'y'm''''''' 'I' 'e's'a'c' 's'i'h't' 'n'I' '!'e's'a'c' 's'i'h't' 'n'i' 't'o'n' 't'u'B' '.'s'D'I' 'm'e't'i' 'r'i'e'h't' 'g'n'i'r'a'p'm'o'c' 'y'b' 't'a'h't' 'e'v'l'o's'e'r' 'n'a'c' 'e'w' 'd'n'a' ',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'p'y't' 'y'l't'n'e'r'.''r'u'c'n'o'c'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''h'w'''''''''''''n'i' 'h'c'i'h'w' 't'u'o' 'e'r'u'g'i'f' 'o't' 's'D'I' 'm'e't'i' 'e'h't' 'e'r'a'p'm'o'c' 'y'l'l'a'm'r'o'n' 'e'w' 'd'n'a' ','n'o'i't'a'c'o'l' 'e'm'a's' 'e'h't' 'n'i' 'e'p'y't' 's''''t'r'e's'u''''c' 'n'e'h'w' 'n'e'p'p'a'h' 'l'l'i'w' 's'i'h'T''''S' '.'n'o'i't'a'c'o'l' 'e'm'a's' 'e'h't' 't'a' 't'r'e's'n'i' 'd 'b' both''''''''''''''''''''''''''''' 'h't'o'b' '''b''' 'd'n'a' '''x''' 'e'h't' 'e't'o'N'''''''''''''''o'o'g' 't'''n's'i' 's'i'h'T'n''n' 'c' id `(seph, 2)` after `(seph, 1)`'n'n':'e'v'a'h' 'e'w' 'n'e'h'T'''''''h'W''''''''''''''''''':'s'm'e't'i' 'e's'e'h't' 't'e'g' 'I' '.'''c'b'X''''b'a''' 't'e'g' 'I' 'o's' ',''*''''''''*''''''''''''''''''''''b' 'd'n'a' 'a'''''' 'n'e'e'w't'e'b' '''x''' 'n''''''''' 'a' 't'r'e's'n'i''''''''''d'n'u' 'I'''' ' 'y'a's' 's'''''''s' 't'e'L'n''n'''''How should ''''''''''''''''''''''''''''''' 'a' 's't'i' ','l'l'e'W' '''''''''''''''''''''''''''''''''''e'r'e'h' 'm'a'r'g'a'i'D' '>'n'n'!'e's'r'u'o'c' 'f'o' 'e'e'r't' 'A' '?'t'a'h't' 't'n'e's'e'r'p'e'r' 'you'''''''''''''''' 'u'o'y' 'd'l'u'o'h's''''w' 'w'o'H'n'n''''''''''''''''')'0' ','h'p'e's'('''''''''''''''`'''''''''`'''')'T'O'O'R'(' 'r'e't'f'a' '''`')'0' ','h'p'e's'(' 'd'i' '''a''' 't'''' 'r'e's'n'I' '-'n'n':'s'm'e'''''''e''''e'm't'i' '3' 's'e't'a'e'r'c' 'e'g'r'e'm'o't'u'a' ','''c'b'a''' 'e'p'y't' 'I' 'f'i' 'g'E' '.'r'e't'f'a' 'g'n'i't'r'e's'n'i' 'e'r'''u'o'y' 't'a'h'w' 'e'm'a'n' 'u'o'y' ','g'n'i'h't'e'm'o's' 't'r'e's'n'i''''''''''''' 'u'o'y' 'r'e'v'e'n'e'h'w'''''''''r'e'v'e'e'n'h'w''''''''''''''''''''''''h'c'i'h'w' 's'e'm'a'n'''''''''''''''''w''''''n'i' 't'i' 't'a'h't' 's'e'i'f'i'c'e'p's' 't'r'e's'n'i' 'h'c'a'e' 'd'n'a' ',''''''''''''' 'n'o' 'd'e's'a'b' '''''''''''''''' isn't as bad as you think,'''''''''a'c' 'e'w' '''''''''''''''''''''''''''','k'n'i'h't' 'u'o'y' 's'a' 'd'a'b' 's'a' 't'''n's'i' 'h'c'i'h'w' '-' ''''''''''''''' 'n'o' 'd'e's'a'b''''(' 'D'I' 'e'u'q'i'n'u' 'a' 's't'e'g'''''''''''''''''''' 'a' 'o't'n'i' 'd'e't'r'e's'n'i' 's'i'''''''''''''''''''''''''''''''''' 't'n'e'm'u'c'o'd' 'e'h't' 'n'i' 'm'e't'i' 'd'e't'r'e's'n'i' 'h'c'a'E'''''''''''s'r'e's'u' 'n'e'h'W''' '.'s'r'e't'c'a'r'a'h'c' 'f'o' 't's'i'l' 'a' 's'a' 't'n'e'm'u'c'o'd' 'd'e'r'a'h's' ''''''''''t's' 'a' 'f'o' 'k'n'i'h't' ')'''' 's'T'D'R'C' 'r'e'h't'o' 'd'n'a'(' 'e'g'r'e'm'o't'u'A'''''''''''''e'k'i'L''''''''''''''''''''''''''''''''''''''''''e'g'r'e'm'o't'u'a' 'n'i' ''''''''''''''''''''''''''''''''''''''''''''t's'i'l' 'a' 's'a' 'g'n'i'r't's' 'a' 't'u'o'b'a' 'g'n'i'k'n'i'h't' 'y'b' 's'k'r'o'w' 'g'n'i't'i'd'e' 't'x'e't' 'e'v'i't'a'r'o'b'a'l'l'o'C''''C'''''''''''' 'g'n'i'o'd'''''''''''g'n'i's's'e'c'o'r'p' 'n'e'h'W'n'n'.'g'n'i'h't' 'f'o' 't'r'o's' 't'a'h't' 'o't'n'i' 'e'r'''u'o'y' 'f'i' 'r'e'p'a'p' 'a' 'n'i' 't'u'o'b'a' 'd'a'e'r' 'n'a'c' 'u'o'y''''c' 'h'c'i'h'w' ',''e'l'l'a'c' 'm'h't'i'r'o'g'l'a' 'n'''''' '''''''''''''o'g'l'a' 'n'a' ' '.'s'k'l'a't' 't'n'e'l'l'e'c'x'e' 'd'n'a' 'k'o'o'b'''''''''''''k'o'o'B' 's'i'h' 'm'o'r'f' 's'u'o'm'a'f' 't'i'b' 'e'l't't'i'l' 'a' 's'''o'h'w' ','n'n'a'm'p'p'e'l'K' 'n'i't'r'a'M' 'y'b' 'n'e't't'i''''t'r'w'''''''''''''A'G'R' 'n'o' 'd'e's'a'b' 's't'I' '.'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c'''''c'n'o'c' 'o'd' 'u'o'y' 'p'l'e'h' 'o't' 'y'r'a'r'b'i'l' 'a'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'g'r'e'm'o't'u'A' '.'p'l'e'h' 't'''n's'e'o'd' 't'a'h't' 's'p'o'O''''S' '.'T'D'R'C' 'A'G'R' 'e'h't' 'f'o' 'n'o'i't'a't'n'e'm'e'l'p'm'i''''''''''m'h't'i'r'o'g'l'a' 'n'a' 's'i' 'e'g'r'e'm'o't'u'A''w'y'n'a' '''''''''''''''n'n''''''?'e'g'r'e'm'o't'u'a' 'n'a' 's'i' 'h't'r'a'e' 'n'o''''a' 't'a'h'W' '#'#'n'n'h't'i'w' 't'r'a't's' 's't'e'l' ','y'l'l'a'u't'c'a' 'l'l'e'W'n'n'.'t's'a'f' 't'i' 'e'k'a'm' 't'a'h'''''''''' 't'a't' 's'p'e't's' ''''''''''e' 's'e'h't' 'l'l'a' 'd'n'a' ','w'o'l's' 's'i' 'e'g'r'e'm'o't'u'a' 'y'h'w' 't'u'o'b'a' 'k'l'a't' 's't'e'L'n''n'o'i't'a'z'i'm'i't'p'o' 't'u'o'b'a' '''''''''''''''g'n'i'k'n'i'h't' 's'e'd'a'c'e'd' 't'n'e'p's' 'e'v'''o'h'w' 's'e's'u'i'n'e'g' 'r'e'p'u's' 't'''n'e'r'a''A'''''''''''''''''''''''''''''''t'''n'o'd' 's'r'e'h'c'r'a'e's'e'r' 'S'C' 'f'o' 's't'o'L'''''' 't's'o'M' '' '*'s'n'o'i't'a't'n'e'm'e'l'p'm'i'*' 'e'h't' 'e'k'a'm' 'o't''''e'h't' 'w'o'h' 't'u'o'b'a' 'g'n'''i'h't'y'n'a't'n'e'r'e'f'f'i'd' 'f'o' 'w'e'f' 'a' 'g'n'i's'u' 'y'b'e'm'a'S' '.'''*'s'c'i'''''n'a'r''t'''n'a'm'e's'*'''''''''''''''''''''''''''''''''''''''''''''''k'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ',')'(']''''''''''''''''''''''''''''''''''''''I have a new implementation that can'''''''s's'e'c'o'r'p' run the same ed''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'i' 'y'b' 'd'e't'h'g'i'l'e'd' 'y'l'r'e't't'u' 'm'''I'''''''''''''''''!'''''!'*'l'u'f't'h'g'i'l'e'd'*' 's't'i' 'd'n'a' '-' 'k'r'o'w' 'n'o'i't'a'z'i'm'i't'p'o' 'm'o'r'f' 'n'e't't'o'g' 'r'e'v'e' 'e'v'''I' 'p'u' 'd'e'e'p's' 't's'e'g'r'a'l' 'e'h't' 's't'I' '''''''T' '.'r'e't's'a'f' 's'e'm'i't' 'd'n'a's'u'o'h't' 'n'e't'''' ''''''''' 'x'''' '0'0'0' '0'1' 't'u'o'b'a' 's't'a'h'T' '.'s'd'n'o'c'e's' '3'2'''''''''' '2'3'''iting trace'''''l'l'e'W' ' in''''''''''''''.'s'd'n'o'c'e's' '5'6'0'.'0'''''''''''''s'm'5'6' '''''''''''''''''''''''''''''''''''' 't'a'h't' 'n'o'i't'a't'n'e'm''''' 'n'i' 'e'l'p'm'i''''e' 'w'e'n' 'a' 'e'v'a'h'''''''''''''''''''''''''''''''e'c'a'r't' 'g'n'i't'i'd'e' 'e'm'a's' 'e'h't' 'n'u'r' 'n'a'c' ''''' 'e'v'''I' '.'s'd'n'o'c'e's' '0'7'2' 's'e'k'a't' ')'T'D'R'C' 'r'a'l'u'p'o'p' 'a'(' '''''''')'('e'c'a'r't' 'g'n'i't'i'd'e' 's'i'h't'[' 'n'u'r' 'o'T''''''''''e'g'r'e'm'o't'u'A' ''''n'''' '?'g'n'o'r'w' 'w'o'H'n'n'''''''T' '.'g'n'o'r'w' 'r'e'p'u's' 's'a'w' 'I' 't'u'o' 's'n'r'u't' 't'i''' 't'u'B' '.'''' '*'y'l'w'o'l's'*' 'k'r'o'w' 'd'l'u'o'h's' 'y'e'h't' ','s'i' 't'a'h'T'r'o'w' 'd'l'u'o'h's' '*'s'n'o'i't'a't'n'e'm'e'l'p'm'i'*' 'e's'o'h't' 'w'o'h'''''''''''' 'e's'o'h't' 't'a'h'w''''w'o'h' 'w'e'n'k' 'e'w'''' 'e'm'a'S'f'i'w'S'''''''s't'a'h'T' ' 'd'n'''''''''''''''''''''''''''''['''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'n'.'g'n'o'r'w' 'o's' 's'a'w' 'I' 't'u'B' '.'''w'o'l's' 's'i' '''m'h't'i'r'o'g'l'a' 'e'h't' 'e's'u'a'c'e'B' '.'y'a'w' 'w'o'l's' 'A' '.'y'a'w' 'n'i'a't'r'e'c' 'a' 'd'e't'n'e'm'e'l'p'm'i' 'e'b' 'o't' 'd'e'd'e'e'n' 's'm'h't'i'r'o'g'l'a' 'e's'o'h't' 't'n'a'e'm' 't'a'h't' 'g'n'i'm'u''''m's's'a' 'd'n'a' '*'s'c'i't'n'a'm'e's'*' 'e'h't'''''''e'h' 't'u'o'b'a' 'g'''''''g' 'n'i'k'l'a't' 's'r'e'p'a'p' 'g'n'i'd'a'e'r'''''''''' 'g'n'i'm'u's's'a' 's'a'w' 'I' '.'s'r'e'h'c'r'a'e's'e'r' 'e's'o'h't' 's'a' 's'e'k'a't's'i'm' 'e'm'a's' 'e'h't' 'g'n'i'k'a'm' 's'a'w' 'I' ','s't'n'e'v'e' 'f'o' 'n'r'u't' 'g'n'i's'i'r'p'r'u's' 'a' 'n'i'''''''i'r'p'r'u's' ','y'a'w'y'n'A' '.')'s'p'o'o'(' ''''''''''(' '.'''m'h't'i'r'o'g'l'a' 'e'h't''' 'h't'i'w' ''''''''''''''''''''''t' 'h'i't' 'w'm'e'l'b'o'r'p' 't'n'e'r'e'h'n'i' 'e'm'o's' 's'a'w'''''''w'a' 't'a'h't' 'd'e'm'u's's'a'''''''''''''''''''' 'o't' 'p'u' 't'a'h't' 'd'e'k'l'a'h'c' 's'y'a'w'l'a' 'I' 'd'n'a' ','w'o'l's' 'r'e'p'u's' 'e'r'a' 's'T'D'R'C''''c' 't's'o'M' '.'y'l'e't'a'l' 's'''' 'T'D'R'C' 'n'i' 'd'e't's'e'r'e't'n'i' 'g'n'i't't'e'g'''''''''''''' 'h't'i'w' 'g'n'i'y'a'l'p' 'n'e'e'b' 'e'v'''I' ',')'(']'''w'o'n'k''''n' 'y'a'm' 'u'o'y' 's'a' 'o'S'n'n'e'g'r'e'm'o't'u'A' '#'#'''''''''' 'o'S'n''''''''''''' 'o's'n'n'-'-'-''''S'n'n'''!''''a' 'i' 'e'd'o'c''I' 'o'S' I translate'''y'm' '''d''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'd'e't'a'l's'n'a'r't' 'I' '.'s'g'n'i'h't' 'f'o' 'e's'n'e's' 'a' 't'e'g' 'o't' 'r'e'd'r'o' 'n'i' ','''' 'd'n'a't's'r'e'd'n'u' 'y'd'a'e'r'l'a' 'I' 'g'n'i'h't'e'm'o's' 'm'a'r'g'o'r'p' 'o't' 't'n'a'w' 'I' 'e'g'a'u'g'n'a'l' 'w'e'n' 'a' 'p'u' 'k'c'i'p' 'I' 'n'e'h'w' 's'e'm'i't'e'm'o'S'''''' 'n'e'h'W'n''e'h'c'r'a'e's'e'R' 'S'C''''''''''''.')'t's'i't'n'e'i'c''''''''''n'c'i'S' 'h'c'n'e'r'F' 'r'M'''''''''' 'r'm' '*'u'o'y'*' 't'a' 'g'n'i'k'o'o'l' 'm''''''''I'(' '''''''''''''''''''''''''''''''' 'r'M' '?''''''''''''''''' 'o'g'a' 's'r''a'''h't'a'e'y' 'w'e'f' 'A''I't'u'o'b'a' 'g'n'i'k'l'a't' 'n'e'v'e' ''''''''''''''g'n'i't't'e'g'''''''t'a''''e'h't' '''''''''''''''''''''o't'n'i' 'd'e't'a'l's'n'a'r't' ''' 'g'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'n''''''''''' 'r'e'p''''''''''''''''''.'w'o'W' '.'r'e't's'a'f' 'x'0'0'2' '' '''s'e'm'i't' ''u'r'''o'd''' 'd'l'u'o'c'''''''''''''''''''''''''''''.'d'n'o'c'e's'/'M'0'2' 'f'o' 'e't'a'r' 'a' 't'a' 'n'a'r' 'C' 'n'i' 'n'o'i't'c'n'u'f'''''e'd'o'c' 'e'm'a's' 'e'h't' 't'u'B' '!'d'a'b' 't'o'N' '.'d'n'o'c'e's' 'r'e'p' 's'e'm'i't' '0'0'0' ''''0'0'0'1' 't'u'o''''''''''t'o'u'b'a' 'n'o'i't'c'n'u'f' 'm'r'o'f's'n'a'r't' 'y'm' 'n'u'r' 'd'l'u'o'c' 'I' 't'p'i'r'c's'a''''s'v'a'j' 'n'I' '.'t'o'n' 'y'l'e't'u'l'o's'b'a' 's'a'w' 'e'c'n'a'm'r'o'f'r'e'p' 'e'h'T' '.'e'm'a's' 'e'h't' 'e'r'a' 's'c'i't'n'a'm'e's' 'e'h'T''''''r'e't'f'a'e'w' 'e'r'a' 't'a'h'w' ','w'o'l's' 's'i' '''m'h't'i'r'o'g'l'a''' ''''''''''O''' 'n'''''''''''''''' 's'i' 'm'e't's'y's' 'a' 'y'a's' 'e'w' 'n'e'h'W'n'n''''''''''''''''''''''''''''' 'e'l'p'm'i's''''''''''m'h't'i'r'o'g'l'a' '' 'a''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''R'''''''''''''''''''''''''''''''''''''''''''''''''''''''m'r'o'f's'n'a'r't' 'e'h'T' '.'e'c'a'l'p' 'h'c'a'e' 'n'i' 'm'h't'i'r'o'g'l'a' 'e'm'a's' 'e'h't' 's't'I'''''''''' 'e'm'a's' 'e'h'T'''''''''''''''m'h't'i'r'o'g'l'a' 'e'm'a'S' '.''''''t's'''''''''''''u'r' 'd'n'a' 'o'G' 'd'n'a' 't'f'i'w'S'''''f'i'w's''''''''''''''''d'n'a' ','t'p'i'r'c's'e'p'y'T' 'd'n'a' ','t'p'i'r'c's'a'v'a'J' 'd'n'a' ','C' 'n'i' 'e'k'i'l' 'k'o'o'l' 'd'l'u'o'w' 'e'd'o'c' 'e'm'a's' 'e'h't''''''''''''''''l' 'k'o'o'l' 'd'l'u'o'w' 't'i' 't'a'h'w' 's'u'o'i'r'u'c' 't'o'g' 'I' 'e's'u'a'c'e'b' ',''.'''''''-'''n'i'a'l'p''' 'd'''''''''''''''''''''''''''''''''''''' '.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''n'r'a'e'l' 'o't' 't'n'a'w' 'I''''w' 'e'g'a'u'g'n'a'l' 'a' 'f'o' 'e's'n'e's' 'a' 't'e'g''''''e'g'a'u'g' 'o't' 'y'a'w' 'a' 's'a' 't'i' 'e's'u' 'I' '-' '''' 's'e'g'a'u'g'n'a'l' 't'n'e'r'e'f'f'i'd' 'f'o' 'h'c'n'u'b' 'a' 'n'i'''e't'n'e'm'e'l'p'm'i' 'e'v'''I''''''''''''''''''''''''''''''''''''''''''o'g'a' 's'r'a'e'y' 'w'e'f' 'a' 'm'o'r'f' 'm'h't'i'r'o'g'l'a' 'T'O' 't'x'e't' 'y'M''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''g'n'i's'u' 'e'w' 'e'r'a''''''''''''''''''''''''''''''''''''''''''''''''''''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''r'e'v'''''''r'f' 't'n'e'r'e'f'f'i'd' 'a' 't'a' 'g'n'i'k''''''''''''' 'g'n'i'o'o'l' 'p'u' 'd'n'e' 'l'l'''I' '.'e'g'r'e'v'n'o'c' 't'''n'o'w' 's't'i'd'e' '''s'r'e's'u' ','t'c'e'r'r'o'c'n'i''''''''t'c'e'r'r'o'c' 'e'r'a' 's'c'i't'n'a'm'e's' 'e'h't' 'f'I'n'n'?'s'o'i'r'a'n'e'c's' 't'a'h'w' 'r'o'f' 'd'n'a''''' 'r'o'f' ','t'i' 's'i' 'd'e'z'i'm'i't'p'o' 'l'l'e'w' 'w'o'H' '' ''''''''''''''''''''''''''' '?'s'e'r'u't'c'u'r't's' 'a't'a'd' 't'a'h'W' '?'e'g'a''''a''''e'u'g'n'a'l' 't'a'h'W' '.'m'e't's'y's' 'e'h't' 'f'o' '*'n'o'i''''''''''''' 'n'i'o't'a't'n'e'm'e'l'p'm'i'*' 'e'h'T' '.'2''''''''''.'2'n'n''''''''''''t'n'e'm'happens'''''''''''''''''''''''''''''''''''''''''''''''''''''?'n'o'i't'a'u't'i's' 'e'h't'''t'i' 'e'v'l'o's'e'r' 't'i' 's'e'o'd' 'w'o'H' '?'w'o'n'k' 't'i' 's'e'o'd' 'w'o'H' '?'''o'h''u'c'o'd' 'e'h't' 'n'i' ''''''''''''''''?'s'n'e'p'p'a'h' 't'a'h'w''''''''''''''''''''''' 't'a'h'W' '?'l'l'e't' 'e'w' 'n'a'c''''d' 'w'o'h' ','e'c'a'l'p' 'e'm'a's' 'e'h't' 'n'i' 'n'e'p'p'a'h' 's't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'n'e'h'W' '.''''''''''''''''''''''''' 'e'b'i'r'c's'e'd' 'n'a'c' 'e'w' 'h'c'i'h'w' ','m'e't's'y's' 'e'h't' 'f'o' 's'c'i't'n'a'm'e's' 'e'h'T' '.'1'n'n':'''s't'r'a'p' 'e't'a'r'a'p'e's' 'y'r'e'v''''''''''''''''n'o' 'g'n'i'o'g' 's'g'n'i'h't' 'o'w't' 's'''e'r'e'h't' 'y'l'l'a'e'r' 't'u'b' '-' '''m'h't'i'r'o'g'l'a''' 'n'a' 's'a' 'm'e't's'y's' 'h'c'a'e' 'e'b'i'r'c's'e'd' 'e'W' '.'s'd'r'o'w' 'h't'i'w' 'm'e'l'b'o'r'p' 'a'''''''a' ' 'e'v'a'h' 'e'w' 's'm'e't''''e's''''''''''t's't'y's' 'g'n'i't'i'd'e' 'e'v'i't'a'r'o'b'a'l'l'o'c'''''''''''''''''''' 'g'n'i't'i'd'e' ''''''''''g'n'i't'n'e'r'r'u'c'n'o'c' 'r'e'h't'o' 'd'n'a' 's'T'D'R'C' 't'u'o'b'a' 'k'n'i'h't' 'e'w' 'n'e'h'W'n'n'!'h'g'r'A' '.'''n''''''n'n''i'p'p'i'l'f'''''''''''''''''''''''''''''''''''''''''''''''''''''''.'t'i' 't'u'o'b'a' 'e'm' 'g'n'i'k's'a' 'd'n'a' 'r'e'p'a'p' 'e'h't' 'g'n'i'd'a'e'r' 'd'e't'c'e'p's'e'r' 'I' 'e'l'p'o'e'p' 'e'v'a'h' 't'''n'd'i'd' 'I'''''''''' 'I' 'e'l'p'o'e'p' 'f'i' 'h'c'u'm' 'o's' 'd'n'i'm' 't'''n'd'l'u'o'w' 'I' '''d'o'd''''r'''''''''''''''''r'e'h'c'r'a'e's'e'r' 'r'm' 'u'o'y' '''h't'i'w' 'm'e'l'b'o'r'p' 'a' 't's'u'j' 's'i' 's'i'h'T' '.'m'h't'i'r'o'g'l'a' 'e'''''''i'e'h't' 'h't'i'w' 'm'e'l'b'o'r'p' 'a' 't'''n's'i' 's'i'h'T'''t' ''''''''''''''''''''''''''''''''''''''''''''' 'm'h't'i'''' 'r'o'g'l'a' 'e'h't' 't'u'o'b'a'''''''''''!'''t'a'h't' 'm'o'r'f' 'g'n'i'h't'y'n'a' 'n'r'a'e'l' 't'''n'a'c' 'e'w'''''d'e'd'e'e'n' 'h'c'i'h'w'''''''''s't'i' 'h't'i'w' 'h'c'a'e' '-' 's'n'o'i't'a'r'e'p'o' ''''0'0'0'0'1' 'o't'n'i' 't'r'e's'n'i' 'e'h't' '''''' ''''','''t'a'r'e'p'o' '1' 'g'n'i't'a'e'r'c''r'a'h'c' ''''''''''''''''''''''''n'i' 's'r'e't'c'a'r'a'h'c' '0'''''''''''''''''''''''''''r'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''d'n'a' '1' 'n'a'h't' 'r'e'h't'a'r' 's'n'o'i't'a'r'e'p'o' '0'0'0'1' 'g'n'''''''''''''''''''''''''''''''''''d'a'b'e''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''.'*'u'o'y'*' 't'u'o'b'a' 'g'n'i'h't'e'm'o's' 's'u' 's'l'l'e't' 't's'u'j' 't'I' '.'t's'e't' 'o't' 'g'n'i'y'r't' 'e'r'''u'o'y' 't'a'h'w' 't'u'o'b'a' 'g'n'i'h't'y'n'a' 's'u' 'l'l'e't' 't'''n's'e'o'd' 't'a'h'T'''''''''''e'l' 't'''n'a'c' 'I' ''t'o'r'w' 't's'u'j' 'u'o'Y' '.'e'c'n'e'i'c's' 't'''n's'i'''i's's'e'c'o'r'p' 'e'r'e'w' 'y'e'h'T' '.'n'o'i't'a'r'e'p'o' 'g'n'i'''t'i'd'e' 'n'w'o' 's't'i' ''t'c'a'r'a'h'c' 'h'c'a'e' 'g'n'i't't'i'l'p's'''0'0'1' 'e's'o'h't''0'0'0'1' ','y'a's'(' 't'x'e't'u'h'c' 'g'i'b'''''''''''''''''''''''t'n'e't'n'o'c' '''t'a'h't' 'f'o' 'l'l'a' '''''''''''''''''''''''''''''''''''''''''''''''''e'n'o' 'h'c'''a'e''n'o'i''''''''''n'i'o't'a'r'e'p'o' 'e'n'o' 'n'i' 'g'n'i'''''''n'o'r't's' 't'a'h't'''e'd'o'c' 'f'o'''''''''''''c' 'o'f'''''''''' 'o'f' 'k'c'o'l'b' 'a' 'd'e't's'a'p' 'r'e's'u' 'a''''''''''''''''e' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'e'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t'g''''u'B' '!'t'a'h't' 'o'''''''''''''''''''h'c'a'o'r'p''''''''''''''''''''''''''.'*'e'd'o'c' 'r'u'o'y'*' ''''''' 'i'h't'i'w' 'm'e'l'b'o'r'p'p'a'''''''''''''''''''''' 'a' 's'i' '''''''s'i's'i'h'T' '.'m'h't'i'r'o'g'l'a' 'e'h't' 'h't'i'w' 'd' 'u'o'y' 'f'i' 'w'o'l's' 'e'b' 'l'l'''t'i' 'e's'r'u'o'c' 'f'o' '-' ''''''' '-'h'a'e'y' ','n'a'e'm' 'I' ''''''''''''''''''''''''''''m'e'l'b'o'r'p' 'a' 't'''n's'i' 's'i'h't' '~''''''' '-' 'h'a'G' '.'e'r'u't'c'u'r't's' 'a't'a'd' 'w'o'l's'''''' 'w'o's'l' 'y'z'a'r''''a'c'''''''u'o'i'v'b'o' 'r'i'e'h't' 'o''''i't'n'i' 'm'e'h't' 'g'n'i''''e't'r'e's'n'i' 'd'n'a' 'e'n'o' 'y'b' 'e'n'o' 'r'e't'c'a'r'a'h'c' 'w'e'n'''''''''' 'd'e't'r''''''''''''''''''''''''''''''m'e'h't' 'g'n'i'''''''d'e't'r'e's'n'i' 'd'n'a' 'e'n'o' 'y'b' 'e'n'o' ''e's'n'i''''''''''r'e't'c'a'r'a'h'c' 'h'c'a'e' 'g'n'i'k'a't'd'o'c''''''''''''''' 's'a'w' 'm'h't'i'r'o'g'l'a' 'r'i'e'h't' ','t'x'e't' 'f'o' 'k'c'o'l'b' 'e'n'o' 'g'n'i't'r'e's'n'i' 'f'o' 'd'a'e't's'n'i' ','d'e'n'e'p'p'a'h' 't''''''''n'e'v'e' 't's'a'p' 'e'g'r'a'l' 'a' 'n'e'h'W' ' hour in their implementation.'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '.'n'o'i't'a't'n'e'm'e'l'p'm'i' 'r'i'e'h't'''''''''m'i' 'r'e'i'h't' 'n'i' 'r'u'o'h' 'r'u'e't'a'm'a' 's'a'w' 't'i' 'e'k'i'l' 'd'e'm'e'e's' 't'i' 'd'n''''d'a' 'k'o'o'l' 'r'e's'o'l'c' 'a' 'k'o'o't' 'I''''''''' 'y'l'i'k'c'u'L'''''o'l' 'I'n'n'?'n'o' 'g'n'i'o'g' 's'a'w' 't'a'h'W' '.'s't'n'e'v'e' 'e't's'a'p' 'e'g'r'a'l' 's's'e'c'o'r'p' 'o't' 's'd'n'o'c'e's' '3' 'e'k'a't' 't'''n'd'i'd' 't'c'a'f' 'a' 'r'o'f' 'w'e'n'k' 'I' 'm'h't'i'r'o'g'l'a' 'e'h'T' '.''l'e'W'i'Y' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''e'v'a'W' 'e'l'g'o'o'G' 'r'o'f' 'd'e's'u' 'e'w' 'm'h't'i'r'o'g'l'a' 'e'h'T' '.'''' '''''''''''''''''''''''''''''''l''''''''''''''''''''''''''''''''''''''''' And'''''t'u'B' '''A' '.''''''''''''s'd'n'o'c'e's' '3'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''S'J''''D'e'r'a'h'S' 'r'o'f' 'g'n'i's'u' 's'a'w' 'I' 'm'h't'i'r'o'g'l'a' 'e'h't' 's'a'w' 't'i' 't'u'b' '-' 't'i' 't'n'e'v'n'i' 't'''n'd'i'd' 'I' ','l'l'e'W' '.'e'n'i'M''''I' '?'t'a'h't' 's'a'w' 'm'h't'i'r'o'g'l'a' 'h'c'i'h'W'n'n''n'o'i's''''''''''n'o'i's'e's' 'g'n'i't'i'd'e' 'd'l'r'o'w' 'l'a'e'r' 'r'i'e'h't' 'f'o' 'e'n'o' 'm'o'r'f' '''0'''''''''''''' 's's'e'c'''o'r'p''''''''''''''''''''''''''''''''''''''.'n'o'i't'a'r'e'p'o' 'e't's'a'p'+'y'p'o'c' 'e'l'p'm'i's' 'a' 'e'l'd'n'a'h' 'o't''' 's''''x'm'0'3' 'f'o' 's'd'r'a'w'p'u' 'k'o'o't' ''''''''''''''''s'r'e'h't'o' 'd'n'A' '.'l'l'e'w' 'y'l'b'a'n'o's'a'e'r' 'd'e'k'r'o'w' 's'm'h't'i''''t'r'o'g''''''''''i'r'o'l'a' 'e'm'o'S' '''n'n''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''f'''''''t' 'o' 'e'n'o' 'g'n'i's'u' ')'g'n'i't'i'd''''''''''''''''t'n'i'd'i'e' 'e'v'i't'a'r'o'b'''''''o'b'a'l'l'o'c' 'r'o'f' 'y'r'a'r'b'i'l' 't'p'i'r'c's'a'v'a'j' 'a'(' 'S'J'e'r'a'h'S' 'g'n'i't'n'e'm'e'l'p'm'i'e'r' 'p'e'e'd' 'e'e'n'k' 's'a'w' 'I' 'd'n'a' 'e'r'o'f'e'b'''''''b'a' 's'r'a'e'y' 'w'e'f' 'a' 'e'v'a'W' 'e'l'g'o'o'G' 'n'o' 'g'n'i'k'r'o'w' 'd'e'p'p'o't's' 'd'''I' '''''''''''''''f'o'h'c'n'u'''''''''''''''''''''''''''''''''''''''''''''''''''''t'h'g'u'o'h't' 'I' 't'a'h'w' 'g'n'i'k's'a' 'r'e'p'a'p' 'e'h't' 'o't' 's''''e'k'n'i'l' 'e'm' 't'n'e's' 'l'l'a' ''b' 'A''''''''''''''''''''''w'e'n'k' 'I' 'e'l'p'o'e'p' 'f'o' 's't'o'L'''''''''''''''''''' 'e'd'a'm' 'r'e'p'a'p' 'r'i'e'h'T' ''l'a' ''.'m'e'h't' 'd'e''''s'k'r'a'm'h'c'n'e'b' 'y'e'h't' 'd'n'a' ','g'n'i't'i'd'e' 't'n'e'r'r'u'c'n'o'c' 'r'o'f' 'w'o'l'l'a' 'o't' 'd'e't'n'e'm'e'l'p'm'i' 'e'b' 'd'l'u'o'c' 's'm'h't'i'r'o'g'l'a' 'T'O' 'd'n'a' 'T'D'R'C''''o' 's'y'a'w' 'f'o' 's't'o'l' 'g'n'i'w'o'h's' ''''''''n'o's'i'r'a'm'o'c' 'a' 'r'e'h't'e'g'o't' 't'u'p' 'e'c'n'a'r'F' 'n'i' 's'r'e'h'c'r'a'e''''''''''a'r'e's'e'r'''''''''''''''''''''' 'n'i' 's't'n'e'd'u't's' 'e't'a'u'd'a'r'g' 'e'm'o'S' '.'r'e'p'a'p' 'c'i'm'e'd'a'c'a' 'n'a' 'y'b' 'd'e'r'e'h't'o'b' 'y'l'l'a'e'r' 's'a'w' 'I' 'o'g'a' 's'r'a'e'y' 'w'e'f' 'A'''''n'n'n'n''Automerge is too slow and clunky. Martin (its principle architect and programmer) recorded himself typing an academic paper. Running his editing history through automerge (his own code) takes 490 seconds, which is a bit less than 10 minutes. Once processed, the editing trace sits on 1.1 GB of RAM. The newly merged performance branch (designed to fix a lot of these problems) is even slower - taking 750 seconds (12.5 minutes) to process the same editing trace.nI managed to get that 10 minute time down to 70ms (0.07 seconds). Thats the best result I've ever gotten from optimization work, and I'm delighted by it. Let me tell you what I did!nWhat does automerge do?nBefore we can go into detail about how I made automerge fast, we have to spend a moment talking about how automerge itself works.nAn automerge document is actually a tree of inserted characters. Each character in the document has the following properties:nA unique ID, made up of a tuple of (client ID, sequence number)nThe ID (or a pointer to) its parent item, which is the item directly before that character when it was inserted.nThe character itself ('A')nThere's a couple more fields (eg to mark when characters have been deleted), but essentially thats it. When a character is inserted in the document, automerge figures out the ID of the character immediately before the new character, and inserts the new character as one of its predecessor's *children*. If you just type a linear sequence of characters (as I'm doing right now), you'll end up with a big long chain of characters going down like a linked list.nSo why is automerge so slow?nWhen optimizing, I imagine myself manually doing all the work the computer is doing, one step at a time. Then I imagine asking: 'When I get bored, how would I speed this job up?'.nAutomerge is slow for 3 main reasons:nIts written in javascript and uses complex data structures. Javascript is reasonably fast for math, but slow and inefficient when using complex data structures.nAutomerge uses a complex and inefficient data structurenAutomerge makes extremely heavy use of immutablejsnEach of these issues accounts for about an order of magnitude slowdown in performance. You can see all 3 issues showing up in this method from the automerge source tree, which is called on each keystroke. Automerge uses this method to figure out where each new character should be placed in the resulting document:nfunction insertionsAfter(opSet, objectId, parentId, childId) {n let childKey = nulln if (childId) childKey = Map({opId: childId})nn return opSetn .getIn(['byObject', objectId, '_following', parentId], List())n .filter(op => op.get('insert') && (!childKey || lamportCompare(op, childKey) < 0))n .sort(lamportCompare)n .reverse() // descending ordern .map(op => op.get('opId'))n}nWhats wrong with this method?nThis method allocates all over the place. I can spot 5 allocations, not counting any extra nonsense immutablejs is doing. The call to List() has no effect as far as I can tell from reading immutablejs's documentation.nThe document is always kept in a sorted order anyway, so the calls to sort() and reverse() are unnecessary. The algorithm only needs to figure out where the new child should be inserted. Re-sorting all children is entirely avoidable. Sort functions are often fast when the input is sorted already, but in this case because the sorting function is inverted, the computer always has to sort the entire list.nYou can't tell from looking at this method, but insertionsAfter nDespite CRDTs being the 'new hotness' in the collaborative editing game for years, I've been resisting them. As I said in my [recent blog post about CRDTs](https://josephg.com/blog/crdts-are-the-future/), they've been generally unworkable for real world collaborative editing because:nThey take up too much space on disk and in memory. (Automerge takes 1.1GB in RAM to store a 100kb document)nThey consume way too much CPU to process editsnUntil these issues are addressed, I can't recommend CRDTs for use in general computing.n' \ No newline at end of file diff --git a/svelte_gap.txt b/svelte_gap.txt deleted file mode 100644 index e69de29..0000000 diff --git a/utils.sml b/utils.sml index dac78e2..e68663d 100644 --- a/utils.sml +++ b/utils.sml @@ -27,33 +27,36 @@ fun runTxnsTime arr = end fun compareTxns arr = - Vector.foldli (fn (idx, (pos, delNum, insStr), (rope, gapBuffer)) => - let - val strSize = String.size insStr + Vector.foldli + (fn (idx, (pos, delNum, insStr), (rope, gapBuffer)) => + let + val strSize = String.size insStr - val rope = if strSize > 0 then TinyRope.insert (pos, insStr, rope) else - rope - val gapBuffer = if strSize > 0 then GapBuffer.insert (pos, insStr, - gapBuffer) else gapBuffer + val rope = + if strSize > 0 then TinyRope.insert (pos, insStr, rope) else rope + val gapBuffer = + if strSize > 0 then GapBuffer.insert (pos, insStr, gapBuffer) + else gapBuffer - val ropeString = TinyRope.toString rope - val gapBufferString = GapBuffer.toString gapBuffer - in - if ropeString = gapBufferString then - (rope, gapBuffer) - else - let - val _ = print ("difference detected at txn number: " ^ (Int.toString idx) ^ "\n") - val _ = print "rope string: \n" - val _ = print (ropeString ^ "\n") - val _ = print "gap string: \n" - val _ = print (gapBufferString ^ "\n") - val _ = raise Empty - in - (rope, gapBuffer) - end - end - ) (TinyRope.empty, GapBuffer.empty) arr + val ropeString = TinyRope.toString rope + val gapBufferString = GapBuffer.toString gapBuffer + in + if ropeString = gapBufferString then + (rope, gapBuffer) + else + let + val _ = print + ("difference detected at txn number: " ^ (Int.toString idx) + ^ "\n") + val _ = print "rope string: \n" + val _ = print (ropeString ^ "\n") + val _ = print "gap string: \n" + val _ = print (gapBufferString ^ "\n") + val _ = raise Empty + in + (rope, gapBuffer) + end + end) (TinyRope.empty, GapBuffer.empty) arr fun runToString rope = GapBuffer.toString rope @@ -77,26 +80,21 @@ fun write (fileName, rope) = () end -fun loop () = loop() +fun loop () = loop () fun main () = let (* Timing benchmarks. *) - val _ = runTxnsTime SvelteComponent.txns - val _ = runTxnsTime rust_arr - val _ = runTxnsTime seph_arr - val _ = runTxnsTime automerge_arr + val svelte = runTxnsTime SvelteComponent.txns + val rust = runTxnsTime RustCode.txns + val seph = runTxnsTime SephBlog.txns + val automerge = runTxnsTime automerge_arr (* Tests for correctness; will fail if incorrect. *) - val svelte = runTxns SvelteComponent.txns - val rust = runTxns rust_arr - val seph = runTxns seph_arr - val automerge = runTxns automerge_arr - - (* Tests for insertion correctness (compare against rope). *) + (** Tests for insertion correctness (compare against rope). **) val _ = compareTxns SvelteComponent.txns - val _ = compareTxns rust_arr - val _ = compareTxns seph_arr + val _ = compareTxns RustCode.txns + val _ = compareTxns SephBlog.txns val _ = compareTxns automerge_arr (* Tests for line metadata. *) @@ -107,10 +105,10 @@ fun main () = val _ = Rope.verifyLines automerge *) - val _ = write ("svelte_gap.txt", svelte) - val _ = write ("rust23_gap.txt", rust) - val _ = write ("seph23_gap.txt", seph) - val _ = write ("automerge_gap.txt", automerge) + val _ = write ("out/svelte_gap.txt", svelte) + val _ = write ("out/rust23_gap.txt", rust) + val _ = write ("out/seph23_gap.txt", seph) + val _ = write ("out/automerge_gap.txt", automerge) in loop () end